第二讲-Verilog语法的基本概念汇总课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第二讲-Verilog语法的基本概念汇总课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 Verilog 语法 基本概念 汇总 课件
- 资源描述:
-
1、TJIC第二讲第二讲 VerilogVerilog语法的基本概念语法的基本概念-模块与测试模块与测试天津大学电子科学与技术系史再峰天津大学电子科学与技术系史再峰1Verilog HDLVerilog HDL是一种用于数字逻辑电路设计的语言是一种用于数字逻辑电路设计的语言:-用用Verilog HDLVerilog HDL描述的电路设计就是该电路的描述的电路设计就是该电路的Verilog HDLVerilog HDL模型。模型。-Verilog HDL-Verilog HDL 既是一种行为描述的语言也是一种结构描述既是一种行为描述的语言也是一种结构描述的语言。的语言。这也就是说,既可以用电路的功
2、能描述也可以用元器件和它们之间的连接来建立所设计电路的Verilog HDL模型。Verilog模型可以是实际电路的不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种:一、概述:一、概述:Verilog HDL的应用的应用2 系统级(system):用高级语言结构实现设计模块的外部性能的模 算法级(algorithmic):用高级语言结构实现设计算法的模型。RTL级(Register Transfer Level):描述数据在寄存器之间流动和如何处理这些数据的模型。门级(gate-level):描述逻辑门以及逻辑门之间的连接的模型。开关级(switch-level):描述器件中三极
3、管和储存节点以及它们之间连接的模型。Verilog HDL的应用的应用3VerilogHDLVerilogHDL的抽象级别的抽象级别系统级算法级寄存器传输级门级开关级4ModelModel的抽象层次的抽象层次Behavioral Models(function only)if enable is true for (i=0;i=15;i=i+1)RTL Models(Register Transfer Level)always (posedge clock)result_register=a+b+carry;Gate Level Models(function+structure)Switch
4、 Level Models(function+structure)AbstractModelsDetailedmodelso5 Verilog HDL Verilog HDL的构造性语句可以精确地建立信号的的构造性语句可以精确地建立信号的模型。这是因为在模型。这是因为在Verilog HDLVerilog HDL中,提供了延迟和输出中,提供了延迟和输出强度的原语来建立精确程度很高的信号模型。信号值强度的原语来建立精确程度很高的信号模型。信号值可以有不同的的强度,可以通过设定宽范围的模糊值可以有不同的的强度,可以通过设定宽范围的模糊值来降低不确定条件的影响。来降低不确定条件的影响。Verilog
5、 HDL的应用的应用6 Verilog HDL作为一种高级的硬件描述编程语言,有着类似C语言的风格。其中有许多语句如:if语句、case语句等和C语言中的对应语句十分相似。如果已经掌握C语言编程的基础,那么学习 Verilog HDL并不困难,我们只要对Verilog HDL某些语句的特殊方面着重理解,并加强上机练习就能很好地掌握它,利用它的强大功能来设计复杂的数字逻辑电路。Verilog HDL的应用的应用7 一个复杂电路的完整一个复杂电路的完整Verilog HDLVerilog HDL模型是由若个模型是由若个 Verilog HDL Verilog HDL 模块构成的,每一个模块又可以由
6、若干模块构成的,每一个模块又可以由若干个子模块构成。个子模块构成。利用Verilog HDL语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构来描述极其复杂的大型设计。Verilog HDLVerilog HDL行为描述语言作为一种结构化和过程性行为描述语言作为一种结构化和过程性的语言,其语法结构非常适合于算法级和的语言,其语法结构非常适合于算法级和RTLRTL级的模型级的模型设计。这种行为描述语言具有以下八项功能:设计。这种行为描述语言具有以下八项功能:Verilog HDL的应用的应用8可描述顺序执行或并行执行的程序结构。用延迟表达式或事件表达式来明确地控制过程的启动时间。通过命名
7、的事件来触发其它过程里的激活行为或停止行为。提供了条件、if-else、case、循环程序结构。提供了可带参数且非零延续时间的任务(task)程序结构。提供了可定义新的操作符的函数结构(function)。提供了用于建立表达式的算术运算符、逻辑运算符、位运算符。Verilog HDL语言作为一种结构化的语言也非常适合于门级和开关级的模型设计。Verilog HDL的应用的应用9模块的抽象技术指标:技术指标:用文字表示用算法表示用高级行为的Verilog模块表示RTL/RTL/功能级:功能级:用可综合的Verilog模块表示门级门级/结构级:结构级:用实例引用的Verilog模块表示版图布局版图
8、布局/物理级:物理级:用几何形状来表示 行为综合逻辑综合综合前仿真综合后仿真布局布线10二、二、VerilogHDLVerilogHDL的模块的模块 Verilog HDL程序是由模块构成的。模块是可以进行层次嵌套的。正因为如此,才可以将大型的数字电路设计分割成不同的小模块来实现特定的功能,最后通过顶层模块调用子模块来实现整体功能。每个模块要进行端口定义,并说明输入输出口,然后对模块的功能进行行为逻辑描述。Verilog HDL程序的书写格式自由,一行可以写几个语句,一个语句也可以分写多行。除了endmodule语句外,每个语句和数据定义的最后必须有分号 可以用/*.*/和/.对Verilog
9、 HDL程序的任何部分作注释。一个好的,有使用价值的源程序都应当加上必要的注释,以增强程序的可读性和可维护性。11模块的结构Verilog的基本设计单元是“模块”。一个模块是由两部分组成的描述接口和描述逻辑功能,即定义输入是如何影响输出的。module block(a,b,c,d);input a,b;output c,d;assign c=a|b;assign d=a&b;endmodule abcd12简单的简单的VerilogHDLVerilogHDL模块模块例例2.1.1:2.1.1:module adder(count,sum,a,b,cin);input 2:0 a,b;input
10、 cin;output count;output 2:0 sum;assign count,sum=a+b+cin;endmodule 这个例子描述了一个三位的加法器。从例子中可以看出整这个例子描述了一个三位的加法器。从例子中可以看出整个个Verilog HDLVerilog HDL程序是嵌套在程序是嵌套在modulemodule和和endmoduleendmodule声明语句声明语句里的。里的。132.1.2模块的结构从上面的例子可以看出:从上面的例子可以看出:-VerilogVerilog模块结构完全嵌在模块结构完全嵌在modulemodule和和endmoduleendmodule声明语
11、句之间;声明语句之间;-每个每个VerilogVerilog程序包括四个主要部分:端口定义、程序包括四个主要部分:端口定义、I/OI/O说明、内说明、内部信号声明、功能定义。部信号声明、功能定义。端口I/O内部信号功能端口定义各信号的名称等I/O说明输入输出引脚性质内部信号声明;指电路内部线网和寄存器等功能定义,内部信号流实现逻辑功能14模块的端口定义模块的端口定义v模块的端口声明了模块的输入输出口。v其格式如下 module 模块名(端口1,端口2,端口3,端口4.);15模块内容模块内容v模块内容包括I/O说明,内部信号声明和功能定义及描述。每一语句后用;表示该语句结束vI/O说明的格式如
12、下:input 端口1,端口2.;/输入端口 output 端口1,端口2.;/输出端口 inout 端口1,端口2.;/双向端口v也可以写在端口声明语句中,如 module XXX(input port1,output port2);16功能定义功能定义v 用assign声明语句assign a=b&C;v 用实例化元件and u1(q,a,b);v 用always语句块或者initial语句块alwas(posedge clk)beigin if(clr)q=1b0;else q=a;end17课堂练习课堂练习(一一)v手写描述一个模块,要求:v模块名称:y_Multiply_Chipv输
13、入端口:CLK,reset,cand,cator,env输出端口:result,cout,18标识符所谓标识别符就是用户为程序描述中的所谓标识别符就是用户为程序描述中的Verilog Verilog 对象所起的名对象所起的名字。字。标识符必须以英语字母(标识符必须以英语字母(a-z,A-Za-z,A-Z)起头,或者用下横线符()起头,或者用下横线符(_ _)起头。其中可以包含数字、)起头。其中可以包含数字、$符和下横线符。符和下横线符。标识符最长可以达到标识符最长可以达到10231023个字符。个字符。模块名、端口名和实例名都是标识符。模块名、端口名和实例名都是标识符。VerilogVeril
展开阅读全文