EDA与数字系统设计(第2版)教学课件作者李国丽ch3-1课件.pptVIP

EDA与数字系统设计(第2版)教学课件作者李国丽ch3-1课件.ppt

  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文档。上传文档
查看更多
EDA与数字系统设计(第2版)教学课件作者李国丽ch3-1课件.ppt

第三章 Verilog HDL硬件描述语言 3.1 Verilog HDL概述 3.2 Verilog HDL语言要素 3.3 Verilog HDL基本语句 3.4 Verilog HDL门元件和结构描述 3.5 仿真验证 3.6 可综合性描述 3.7 设计实例 3.1 Verilog HDL概述 3.1.1 Verilog HDL的特点 3.1.2 Verilog HDL的基本结构 3.1.1 Verilog HDL的特点 能够在不同的抽象层次上,如系统级、功能级、RTL(Register Transfer Level)级、门级和开关级,对设计系统进行精确而简练的描述; 2. 能够在每个抽象层次的描述上对设计进行仿真验证,及时发现可能存在的设计错误,缩短设计周期,并保证整个设计过程的正确性; 3.? 由于代码描述与具体工艺实现无关,便于设计标准化,提高设计的可重用性。 如果有C语言的编程经验,只需很短的时间内就能学会和掌握Verilog HDL。因此,Verilog HDL可以作为学习HDL设计方法的入门和基础。 3.1.2 Verilog HDL的基本结构 Verilog程序体是由模块即module构成的。一个模块可以代表一个简单的门,一个32位计数器,一个存储器子系统甚至是计算机系统 。 模块的结构如下: module 模块名 (端口列表); 端口定义 模块条目 endmodule 其中模块名是模块唯一性的标识符, 端口列表是输入输出和双向端口的列表,这些端口用来与其它模块进行连接;定义一段程序用来指定数据对象为寄存器型、存储器型和线型,以及过程块诸如函数块和任务块,而模块条目可以是 initial结构,always结构,assign连续赋值或模块实例。 基本结构 基本结构 例: 加法器的verilog描述 /**********************************************************/ // MODULE: adder // FILE NAME: adder.v // VERSION: v1.0 // DATE: May 5th, 2003 // AUTHOR: Peter // CODE TYPE: RTL // DESCRIPTION: An adder with two inputs (1 bit), // one output (2 bits). /**********************************************************/ ? module adder (in1, in2, sum);? input in1,in2; output [1:0] sum; wire in1,in2; reg [1:0] sum; ? module adder (in1, in2, sum);? input in1,in2; output [1:0] sum; wire in1,in2; reg [1:0] sum; always @ (in1 or in2) begin sum=in1+in2; end ? endmodule ? 一段完整的代码主要组成部分: 第一部分 是代码的注释部分,内容为可选项,建议在设计中采用,以提高代码的可维护性。 第二部分 是模块定义行。以module开头,然后是模块名和端口列表,标志着后面的代码是设计的描述部分。 第三部分 是端口类型和数据类型的说明部分,用于端口、数据类型和参数的定义等等。 第四部分 是描述的主体部分,对设计的模块进行描述,实现设计要求。模块中 “always-begin”和”构成一个执行块,它一直监测输入信号,其中任意一个发生变化时,两个输入的值相加,并将结果赋值给输出信号。 第五部分 是结束行,用关键词endmodule表示模块定义的结束。 模块中除了结束行以外,所有语句都需要以分号结束 * * endmodule assign always 逻辑功能定义 wire in1,in2; reg [1:0] sum; parameter datawidth=8; 数据类型说明 input in1,in2; output [1:0] sum; 端口定义 module adder (in1, in2, sum); module 模块名(端口

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档