硬件描述语言.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GUET School of Information Communications GUET School of Information Communications GUET School of Information Communications 硬件描述语言 * GUET School of Information Communications * 第一页,共三十四页,2022年,8月28日 第二讲 Verilog语法 Verilog模块module Verilog语法要素 Verilog数据类型及逻辑系统 第二页,共三十四页,2022年,8月28日 2.1 模块module 1.模块:是verilog设计中的基本程序结构,定义设计的输入/出端口,I/O接口的类型和数量. module 模块名 ( 端口列 表 ); 端口声明,参数声明 wire,reg和其它类型 的变量声明 数据流语句 (assign) 低层模块实例 always和initial块,所有 行为语句都在块内 任务和函数  endmodule 必须出现 可选 第三页,共三十四页,2022年,8月28日 module能够表示: 物理块,如IC或ASIC单元 逻辑块,如一个CPU设计的ALU部分 整个系统 每一个模块的描述从关键词module开始,有一个名称(如SN74LS74,DFF,ALU等等),由关键词endmodule结束。 module内部的5个部分: 变量声明 数据流语句 低层模块实例 行为描述块 任务和函数 每一部分在module内部出现的顺序是任意的。 一个verilog源文件中可以有多个模块,且对排列顺序不做要求。 第四页,共三十四页,2022年,8月28日 2.端口(Terminal) 端口是模块与外界环境交互的接口.例如IC芯片的输入、输出引脚就是它的端口。对于外部环境来讲,模块内部是不可见的,对模块的调用(实例引用)只能通过其端口进行。这种特点为设计者提供了很大的灵活性:只要接口保持不变,模块内部的修改并不会影响到外部环境.我们也常常将端口称为终端(Terminal)。 模块端口等价于芯片的管脚(pin) 模块通过端口与外部通信 第五页,共三十四页,2022年,8月28日 端口列表和端口声明 端口在模块名字后的括号中列出 端口可以说明为input, output及inout 端口等价于硬件的引脚(pin) input  输入端口 output 输出端口 inout 双向端口 端口声明 第六页,共三十四页,2022年,8月28日 module adder ( cout,sum,a,b,cin ); input [2:0] a,b; input cin; output cout; output [2:0] sum; assign {cout,sum}=a+b+cin; endmodule 例设计三位全加器 这个例子描述了一个三位的加法器。从例子中可以看出整个Verilog HDL程序是嵌套在module和endmodule声明语句里的,只出现了一个assign语句。 adder sum[2:0] a[2:0] b[2:0] cin cout 模块名 端口列表 端口声明 数据流语句 第七页,共三十四页,2022年,8月28日 例SR触发器模块 //SR 触发器 module SR_FF (Q, Q_n,S,R); output Q, Q_n; //端口声明 input S,R; nand n1(Q, S,Q_n); nand n2(Q_n,R,Q); endmodule 模块中的5个部分并没全部出现,只出现在低层次模块实例化 nand为verilog中的与非门门级原语部件 第八页,共三十四页,2022年,8月28日 D触发器模块 //D 触发器 module D_FF (d, clk,clr,q,qb); output q, qb; input d,clk,clr; reg q, qb;//输出端口q, qb值保存 always @(posedge clk) begin if (clr) q=1’b0; else q=d; end not (qb,q); endmodule 该模块内包括always行为块语句 always块行为描述语句 第九页,共三十四页,2022年,8月28日 高层次模块对低层次模块的调用称为模块实例化。 可以将模块的实例通过端口连接起来构成一个大的系统或元件。 实例名是每个对象唯一的标记,通过这个标记可以查看每个实例的内部。 实例中端口的次序与模

文档评论(0)

努力奋斗的小玲 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档