第二讲-Verilog语法的基本概念汇总课件

上传人:沈*** 文档编号:244046204 上传时间:2024-10-02 格式:PPT 页数:39 大小:717.19KB
返回 下载 相关 举报
第二讲-Verilog语法的基本概念汇总课件_第1页
第1页 / 共39页
第二讲-Verilog语法的基本概念汇总课件_第2页
第2页 / 共39页
第二讲-Verilog语法的基本概念汇总课件_第3页
第3页 / 共39页
点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,TJU.ASICCenter-ArnoldShi,*,单击此处编辑母版标题样式,TJIC,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,TJU.ASICCenter-ArnoldShi,*,第二讲,Verilog,语法的基本概念,-,模块与测试,天津大学电子科学与技术系史再峰,1,第二讲 Verilog语法的基本概念-模块与测试天津大学,Verilog HDL,是一种用于数字逻辑电路设计的语言,:,-,用,Verilog HDL,描述的电路设计就是该电路的,Verilog HDL,模型。,-Verilog HDL,既是一种行为描述的语言也是一种结构描述的语言。,这也就是说,既可以用电路的功能描述也可以用元器件和它们之间的连接来建立所设计电路的,Verilog HDL,模型。,Verilog,模型可以是实际电路的不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种:,一、概述:,Verilog HDL,的应用,2,Verilog HDL是一种用于数字逻辑电路设计的语言:一、,系统级,(system):,用高级语言结构实现设计模块的外部性能的模,算,法级,(algorithmic):,用高级语言结构实现设计算法的模型。,RTL,级,(Register Transfer Level):,描述数据在寄存器之间流动和如何处理这些数据的模型。,门级,(gate-level):,描述逻辑门以及逻辑门之间的连接的模型。,开关级,(switch-level):,描述器件中三极管和储存节点以及它们之间连接的模型。,Verilog HDL,的应用,3,系统级(system):用高级语言结构实现设计模块的外部性,VerilogHDL,的抽象级别,系统级算法级,寄存器传输级,门级,开关级,4,VerilogHDL的抽象级别系统级算法级寄存器传输级门级开,Model,的抽象层次,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 Level Models,(function+structure),Abstract,Models,Detailed,models,5,Model的抽象层次Behavioral ModelsRTL,Verilog HDL,的构造性语句可以精确地建立信号的模型。这是因为在,Verilog HDL,中,提供了延迟和输出强度的原语来建立精确程度很高的信号模型。信号值可以有不同的的强度,可以通过设定宽范围的模糊值来降低不确定条件的影响。,Verilog HDL,的应用,6,Verilog HDL的应用6,Verilog HDL,作为一种高级的硬件描述编程语言,有着类似,C,语言的风格。其中有许多语句如:,if,语句、,case,语句等和,C,语言中的对应语句十分相似。,如果已经掌握,C,语言编程的基础,那么学习,Verilog HDL,并不困难,我们只要对,Verilog HDL,某些语句的特殊方面着重理解,并加强上机练习就能很好地掌握它,利用它的强大功能来设计复杂的数字逻辑电路。,Verilog HDL,的应用,7,Verilog HDL作为一种高级的硬件描述编程语言,,一个复杂电路的完整,Verilog HDL,模型是由若个,Verilog HDL,模块构成的,每一个模块又可以由若干个子模块构成。,利用,Verilog HDL,语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构来描述极其复杂的大型设计。,Verilog HDL,行为描述语言作为一种结构化和过程性的语言,其语法结构非常适合于算法级和,RTL,级的模型设计。这种行为描述语言具有以下八项功能:,Verilog HDL,的应用,8,一个复杂电路的完整Verilog HDL模型是由若个 V,可描述顺序执行或并行执行的程序结构。,用延迟表达式或事件表达式来明确地控制过程的启动时间。,通过命名的事件来触发其它过程里的激活行为或停止行为。,提供了条件、,if-else,、,case,、循环程序结构。,提供了可带参数且非零延续时间的任务,(task),程序结构。,提供了可定义新的操作符的函数结构,(function),。,提供了用于建立表达式的算术运算符、逻辑运算符、位运算符。,Verilog HDL,语言作为一种结构化的语言也非常适合于门级和开关级的模型设计。,Verilog HDL,的应用,9,可描述顺序执行或并行执行的程序结构。Verilog HDL的,模块的抽象,技术指标:,用文字表示,用算法表示,用高级行为的,Verilog,模块表示,RTL/,功能级:,用可综合的,Verilog,模块表示,门级,/,结构级:,用实例引用的,Verilog,模块表示,版图布局,/,物理级:,用几何形状来表示,行为综合,逻辑综合,综合前仿真,综合后仿真,布局布线,10,模块的抽象技术指标:行为综合逻辑综合综合前仿真综合后仿真布局,二、,VerilogHDL,的模块,Verilog HDL,程序是由模块构成的。模块是可以进行层次嵌套的。正因为如此,才可以将大型的数字电路设计分割成不同的小模块来实现特定的功能,最后通过顶层模块调用子模块来实现整体功能。,每个模块要进行端口定义,并说明输入输出口,然后对模块的功能进行行为逻辑描述。,Verilog HDL,程序的书写格式自由,一行可以写几个语句,一个语句也可以分写多行。,除了,endmodule,语句外,每个语句和数据定义的最后必须有分号,可以用,/*.*/,和,/.,对,Verilog HDL,程序的任何部分作注释。一个好的,有使用价值的源程序都应当加上必要的注释,以增强程序的可读性和可维护性。,11,二、VerilogHDL的模块 Verilog HDL程序是,模块的,结构,Verilog,的基本设计单元是,“,模块,”,。一个模块是由两部分组成的描述接口和描述逻辑功能,即定义输入是如何影响输出的。,module,block(a,b,c,d);,input,a,b;,output,c,d;,assign,c=a|b;,assign,d=a,endmodule,a,b,c,d,12,模块的结构Verilog的基本设计单元是“模块”。一个模块,简单的,VerilogHDL,模块,例,2.1.1:,module,adder(count,sum,a,b,cin);,input,2:0 a,b;,input,cin;,output,count;,output,2:0 sum;,assign,count,sum=a+b+cin;,endmodule,这个例子描述了一个三位的加法器。从例子中可以看出整个,Verilog HDL,程序是嵌套在,module,和,endmodule,声明语句里的。,13,简单的VerilogHDL模块例2.1.1:modul,2.1.2,模块的结构,从上面的例子可以看出:,-,Verilog,模块结构完全嵌在,module,和,endmodule,声明语句之间;,-,每个,Verilog,程序包括四个主要部分:端口定义、,I/O,说明、内部信号声明、功能定义。,端口,I/O,内部信号,功能,端口定义,各信号的,名称等,I/O,说明,输入输出,引脚性质,内部信号,声明;,指电路内部,线网和寄存器等,功能定义,内部信号流实现逻辑功能,14,2.1.2模块的结构从上面的例子可以看出:端口I/O内部信号,模块的端口定义,模块的端口声明了模块的输入输出口。,其格式如下,module,模块名,(,端口,1,,端口,2,,端口,3,,端口,4.),;,15,模块的端口定义模块的端口声明了模块的输入输出口。15,模块内容,模块内容包括,I/O,说明,内部信号声明和功能定义及描述。每一语句后用,;,表示该语句结束,I/O,说明的格式如下:,input,端口,1,端口,2,.;/,输入端口,output,端口,1,端口,2,.;/,输出端口,inout,端口,1,端口,2,.;/,双向端口,也可以写在端口声明语句中,如,module XXX(input port1,output port2,);,16,模块内容模块内容包括I/O说明,内部信号声明和功能定义及描述,功能定义,用,assign,声明语句,assign a=b ,用实例化元件,and u1(q,a,b);,用,always,语句块或者,initial,语句块,alwas(posedge clk),beigin,if(clr)q=1b0;,else q=a;,end,17,功能定义用assign声明语句17,课堂练习,(,一,),手写描述一个模块,要求:,模块名称:,y_Multiply_Chip,输入端口,:CLK,reset,cand,cator,en,输出端口:,result,cout,18,课堂练习(一)手写描述一个模块,要求:18,标识符,所谓标识别符就是用户为程序描述中的,Verilog,对象所起的名字。,标识符必须以英语字母(,a-z,A-Z,)起头,或者用下横线符(,_,)起头。其中可以包含数字、,$,符和下横线符。,标识符最长可以达到,1023,个字符。,模块名、端口名和实例名都是标识符。,Verilog,语言是大小写敏感的,因此,sel,和,SEL,是两个不同的标识符。,19,标识符所谓标识别符就是用户为程序描述中的Verilog 对象,合法和非法标识符,合法的:,shift_reg_a,busa_index,bus263,非法的:,34net,/,不能用数字开头,a*b_net,/,不能含有非字母符号*,n263,/,不能含有非字母符号,Verilog,是大小写敏感的。所有的,Verilog,关键词都是小写的。,20,合法和非法标识符 合法的:非法的:Verilog 是大小写敏,课堂练习(二),建立该模块的,verilog,描述,未确定的模块名和端口名称自己定义。,A_bus,D_bus,21,课堂练习(二)建立该模块的verilog描述,未确定的模块名,空格和注释,Verilog,是一种格式很自由的语言。,空格在文本中起一个分离符的作用,,别的没有其他用处。,单行注释符用,/*,与,C,语言一致,多行注释符用,/*-*/,与,C,语言一致,22,空格和注释 Verilog 是一种格式很自由的语言。22,特别的标识符,特别标识符是用,“,”,符开始,以空格符结束的标,识符。它可以包含任何可打印的,ASCII,字符。,但,“,”,符和空格并不算是标识符的一部分。,特别标识符往往是由,RTL,级源代码或电路图类型的,设计输入经过综合器自动综合生成的网表结构型,Verilog,语句中的标识符。,举例说明:,#sel,bus+index,A,B,T1,/,在层次模块中的标识名,23,特别的标识符 特别标识符是用“”符开始,以空格符结束的,例,2,module,compare(equal,a,b);,output,equal;/,声明输出信号,equal,input,1:0 a,b;/,声明输入信号,a,b,assign,equal=,(,a=b,)?,1,:,0;,/*,如果两个输入信号相等,输出为,1,。否则为,0*/,endmodule,这个程序描述了一个比较器,.,在这个程序中,/*.*/,和,/.,表示注释部分,注释只是为了方便程序员理解程序,对编译是不起作用的。,24,例2module compare(equal,a,例,3,module,trist2(out,in,enabl
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!