欢迎来到天天文库
浏览记录
ID:50046143
大小:86.00 KB
页数:9页
时间:2020-03-08
《EDA 与数字系统设计 第2版 教学课件 作者 李国丽 等编著 CH3ch3-1.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章VerilogHDL硬件描述语言3.1VerilogHDL概述3.2VerilogHDL语言要素3.3VerilogHDL基本语句3.4VerilogHDL门元件和结构描述3.5仿真验证3.6可综合性描述3.7设计实例3.1VerilogHDL概述3.1.1VerilogHDL的特点3.1.2VerilogHDL的基本结构3.1.1VerilogHDL的特点能够在不同的抽象层次上,如系统级、功能级、RTL(RegisterTransferLevel)级、门级和开关级,对设计系统进行精确而简练的描述;2.能够在每个抽象层次的描述上对设计进行仿真验证,及时发
2、现可能存在的设计错误,缩短设计周期,并保证整个设计过程的正确性;3.由于代码描述与具体工艺实现无关,便于设计标准化,提高设计的可重用性。如果有C语言的编程经验,只需很短的时间内就能学会和掌握VerilogHDL。因此,VerilogHDL可以作为学习HDL设计方法的入门和基础。3.1.2VerilogHDL的基本结构Verilog程序体是由模块即module构成的。一个模块可以代表一个简单的门,一个32位计数器,一个存储器子系统甚至是计算机系统。模块的结构如下:module<模块名>(<端口列表>);<端口定义><模块条目>endmodule其中<模块名>是模
3、块唯一性的标识符,<端口列表>是输入输出和双向端口的列表,这些端口用来与其它模块进行连接;<定义>一段程序用来指定数据对象为寄存器型、存储器型和线型,以及过程块诸如函数块和任务块,而<模块条目>可以是initial结构,always结构,assign连续赋值或模块实例。基本结构module模块名(端口列表);moduleadder(in1,in2,sum);端口定义inputin1,in2;output[1:0]sum;数据类型说明wirein1,in2;reg[1:0]sum;parameterdatawidth=8;逻辑功能定义assignalwaysen
4、dmodule基本结构sumin1in2adder例:加法器的verilog描述/**********************************************************///MODULE:adder//FILENAME:adder.v//VERSION:v1.0//DATE:May5th,2003//AUTHOR:Peter//CODETYPE:RTL//DESCRIPTION:Anadderwithtwoinputs(1bit),//oneoutput(2bits)./******************************
5、****************************/moduleadder(in1,in2,sum);inputin1,in2;output[1:0]sum;wirein1,in2;reg[1:0]sum;moduleadder(in1,in2,sum);inputin1,in2;output[1:0]sum;wirein1,in2;reg[1:0]sum;always@(in1orin2)beginsum=in1+in2;endendmodule一段完整的代码主要组成部分:第一部分是代码的注释部分,内容为可选项,建议在设计中采用,以提高代码的可维护性。
6、第二部分是模块定义行。以module开头,然后是模块名和端口列表,标志着后面的代码是设计的描述部分。第三部分是端口类型和数据类型的说明部分,用于端口、数据类型和参数的定义等等。第四部分是描述的主体部分,对设计的模块进行描述,实现设计要求。模块中“always-begin”和”构成一个执行块,它一直监测输入信号,其中任意一个发生变化时,两个输入的值相加,并将结果赋值给输出信号。第五部分是结束行,用关键词endmodule表示模块定义的结束。模块中除了结束行以外,所有语句都需要以分号结束
此文档下载收益归作者所有