第3章3.1-3.2.pptVIP

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章3.1-3.2

3.1 Verilog HDL程序的基本结构 3.2 Verilog HDL的数据类型 3.3 Verilog HDL的运算符 3.4 Verilog HDL的基本语句 3.5 模块化程序设计 ;开关级:最低抽象层次,通过使用开关、存储节点及其相互连接关系来设计模块,需要了解开关级得实现细节。; Verilog允许设计者在一个模块中混合使用多个抽象层次。 寄存器传输级(RTL):描述能够被逻辑综合工具接受的行为级和数据流级的混合描述。 可以使用4种不同的抽象层次对各个模块进行描述,在经过综合工具综合之后,综合结果一般都是门级结构的描述。 一般来说,抽象的层次越高,设计的灵活性和工艺无关性就越强;随着抽象层次的降低,灵活性和工艺无关性逐渐变差,微小的调整可能导致对设计的多处修改。类似于C语言和汇编语言进行程序设计的对比。 ;设计方法学: ;四位脉动进位计数器 ; 可以用基本功能元件按照层次关系搭建脉动进位计数器,设计层次如下图: ;   模块通过接口(输入和输出)被高层的模块调用,但隐藏了内部的实现细节。这样使得设计者可以方便地对某个模块进行修改,而不影响设计的其他部分。;Verilog HDL程序由模块(module)组成, 模块的基本结构如图所示。 一个完整的模块由模块端口定义和模块内容两部分组成, 模块内容包括I/O声明、 信号类型声明和功能描述。 ;  例如, 定义一个1位全加器full_addr模块, 其输入/输出端口有5个: a、 b是全加器的两个加数输入; cin是低位的进位输入; s是全加器的和输出; cout是全加器向高位的进位输出。 其格式如下: module full_addr(s, cout, a, b, cin); //模块端口定义 input a, b, cin;       //I/O声明 output s, cout;  assign {cout, s}=a+b+cin;     //功能描述 endmodule;  模块的设计遵循以下规则:   (1) 模块内容位于module和endmodule之间; 每个模块都有一个名字,即模块名,如full_addr,模块名中可以包含英文字母、 数字和下划线, 并以英文字母开头。   (2)除endmodule外,所有的语句后面必须有分号“;”。   (3) 语句可以是单条语句, 也可以是用begin和end两个保留字包围起来的由多条语句组成的复合语句。   (4) 可以用“/*…*/”或“//…”对程序的任何部分作注释, 增加程序的可读性和可维护性。;3.1.1 模块端口定义  模块端口定义用来声明设计模块的输入/输出端口, 其格式如下:   module 模块名(端口1,端口2,端口3,…);   模块的端口是设计电路模块与外部联系的全部输入/输出端口信号,是设计实体的对外引脚,是使用时外界可以看到的部分(不包括电源线和地线),对模块的调用只能通过其端口进行。多个端口之间用逗号“,”隔开。; 如果模块与外部环境没有交换任何信号,则可以没有端口列表。 ; 脉动进位计数器、T触发器和D触发器都是模块的实例。 脉动进位计数器顶层模块 ;T_FF触发器 在模块T_FF中调用了D_FF,假设其为异步复位,则可以如下表示;D_FF触发器: 按照自顶向下的设计方法,对涉及的所有模块进行定义。完成设计块。;3.1.2 模块内容  模块内容用于对信号的I/O状态及信号类型进行声明, 并描述模块的功能。   1. I/O声明   模块的I/O声明用来声明各端口信号流动方向,包括输入(input)、 输出(output)和双向(inout)。 如果信号位宽为1位,那么声明格式为: input 端口1, 端口2, 端口3, …; output 端口1, 端口2, 端口3, …; inout 端口1, 端口2, 端口3, …;; 如果信号位宽大于1位,那么声明格式为:   input[msb:lsb] 端口1, 端口2, 端口3,…; output[msb:lsb] 端口1, 端口2, 端口3, …; inout[msb:lsb] 端口1, 端口2, 端口3, …; 其中, msb和lsb分别表示信号最高位和最低位的编号。 ;2.信号类型声明 说明电路的功能描述中所用信号的数据类型,常用的有连线型(wire)、寄存器型(reg)、整型(Integer)、实型(real)、时间型(time)等。

文档评论(0)

ddf55855 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档