Verilog硬件描述语言门级和数据流建模

上传人:xiao****1972 文档编号:245230352 上传时间:2024-10-08 格式:PPT 页数:24 大小:262.50KB
返回 下载 相关 举报
Verilog硬件描述语言门级和数据流建模_第1页
第1页 / 共24页
Verilog硬件描述语言门级和数据流建模_第2页
第2页 / 共24页
Verilog硬件描述语言门级和数据流建模_第3页
第3页 / 共24页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,西安邮电大学微电子系,第三章,门级和数据流建模,前言,Verilog,模型可以是实际电路不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种:,系统级(,system),算法级(,algorithmic),RTL,级(,RegisterTransferLevel):,门级(,gate-level):,开关级(,switch-level),对于数字系统的逻辑设计工程师而言,熟练地掌握门级、,RTL,级、算法级、系统级是非常重要的。而对于电路基本部件(如门、缓冲器、驱动器等)库的设计者而言,则需要掌握用户自定义源语元件(,UDP),和开关级的描述。,本章我们将通过实际的,Verilog HDL,模块的设计来学习如何从门级抽象的角度来设计数字电路。,3.1,门级结构描述,门级建模:电路是用表示门的术语来描述的。,一个逻辑网络是由许多逻辑门和开关所组成,因此用逻辑门的模型来描述逻辑网络是比较直观方法。,Verilog HDL,提供预定义的一些门类型的关键字(原语),可以用于门级结构建模。,1.与非门、或门和反向器等及其说明语法,Verilog HDL,中有关门类型的关键字共有26个之多,我们只介绍最基本的八个。有关其它的门类型关键字,,读者,可以通过翻阅,Verilog HDL,语言参考书,在设计的实践中逐步掌握。,下面列出了八个基本的门类型(,GATETYPE),关键字和它们所表示的门的类型:,and,与门,nand,与非门,nor,或非门,or,或门,xor,异或门,xnor,异或非门,buf,缓冲器,not,非门,门的说明语法可以用标准的声明语句格式和一个简单的实例引用加以说明。,门声明语句的格式如下:,,,,,;,门的类型是门声明语句所必需的,它可以是,Verilog HDL,语法规定的26种门类型中的任意一种。驱动能力和延时是可选项,可根据不同的情况选不同的值或不选。在,verilog,中通过,“,实例引用,”,这些逻辑门来构造电路。具体的例子:,nand#10 nd1(a,data,clock,clear);,这说明在模块中引用了一个名为,nd1,的与非门(,nand),输入为,data、clock,和,clear,输出为,a,输出与输入的延时为10个单位时间。,2.门级结构描述实例:,D,触发器:,下例是用,Verilog HDL,语言描述的,D,型主从触发器模块,module,flop(data,clock,clear,q,qb);,inputdata,clock,clear;,outputq,qb;,nandnd1(a,data,clock,clear),nd2(b,ndata,clock),nd4(d,c,b,clear),nd5(e,c,nclock),nd6(f,d,nclock),nd8(qb,q,f,clear);,nandnd3(c,a,d),nd7(q,e,qb);,not iv1(ndata,data),iv2(nclock,clock);,endmodule,门级多路选择器:,module twomux(out,a,b,sl);,input a,b,sl;,output out;,not u1(nsl,sl);,and u2(sela,a,nsl);,and u3(selb,b,sl);,or u4(out,sela,selb);,endmodule,超前进位加法器,和及进位输出方程:,若定义:,则:,推出,3.2,数据流建模,门级建模非常直观。但是如果电路功能比较复杂,使用门级描述不但繁琐而且容易出错。需要设计者从更高的抽象层次进行电路设计。将设计的重点放在功能的实现上。,在目前的数字设计领域,数据流建模是,RTL,级描述的重要的组成部分。,数据流建模:指根据数据在寄存器之间的 流动和处理过程对电路进行描述。,连续赋值语句(,assign,)是,verilog,数据流建模的基本语句。,assign delay LHS_net=RHS_expression;,半加器的例子,module HalfAdder(A,B,Sum,Carry);,input A,B;,output Sum,Carry;,assign Sum=AB;,assign Carry=A,endmodule,连续赋值语句的特点,;,1,、,assign,语的左值必须是一个线网而不能是寄存器。,2,、,assign,语句总是处于激活状态,即,:,只要任意一个操作数发生变化,表达式就会被,立即,从新计算,并将结果赋给等号左边的线网。,3,、操作数可以是线网型、寄存器型变量,也可以是函数调用。,隐式连续赋值,/,普通连续赋值,wire out,;,assign out=in1&in2,;,/,隐式赋值实现同样功能,wire out=in1&in2,;,1,、多路选择器:,/,用逻辑方程描述的多路选择器,module twomux(out,a,b,sl);,input a,b,sl;,output out;,as,sign out=sl,endmodule,数据流建模举例,/,使用条件操作符描述的四选一多路选择器,module mux4_1(out,i0,i1,i2,i3,s0,s1);,output out;,input i0,i1,i2,i3;,input s0,s1;,assign out=s1?(s0?i3:i2):(s0?i1:i0);,endmodule,2,、四位全加器,module fulladder4(sum,cout,a,b,cin);,output3:0 sum;,output cout;,input 3:0 a,b;,input cin;,assign cout,sum=a+b+cin;,endmodule,如何检查上述例子其功能是否正确?,需要有测试激励信号输入到被测模块,需要记录被测模块的输出信号,需要把用功能和行为描述的,Verilog,模块,转换为门级电路互连的电路结构(综合)。,需要对已经转换为门级电路结构的逻辑,进行测试(门级电路仿真)。,需要对布局布线后的电路结构进行测试。,(布局布线后仿真)。,模块的验证,被测模块,激励和控制信号,输出响应和验证,验证程序一般是指描述一个设计确定的输入序列和期望输出的响应的代码的集合。,Testbench,是完全封闭的,没有输入也没有输出。,验证模块常见的形式:,timescale,时间单位,/,时间精度,module t;,reg;/,声明连接变量,wire;/,声明连接变量,initial begin;end /,产生测试信号,always#delay begin;end /,产生测试信号,Testedmd m(.in1(ina),.in2(inb),.out1(outa),.out2(outb);,/,被测模块的实例引用,initial begin.;.;.end /,记录输出和响应,endmodule,端口与外部信号的连接:,1,、顺序端口连接,连接到模块实例的信号必须与模块声明时模块端口列表中的位置保持一致。,module fulladd4_tb;,reg3:0 A,,,B,;,reg C_IN;,wire3:0 SUM;,wire C_OUT;,fulladd4 uut(SUM,C_OUT,A,B,C_IN);,endmodule,module fulladd4(sum,c_out,a,b,c_in);,.,.,.,endmodule,2,、命名端口连接,:,在复杂的设计中,模块可能具有很多个端口,在这种情况下,要记住列表中的顺序是很困难的,而且容易出错,,verilog,提供了另一种端口连接方式。,fulladd4 uut(.c_out(C_OUT),.sum(SUM),.a(A),.b(B),.c_in(C_IN);,端口连接规则,从模块内部来讲,输入端口必须为线网型。从模块外部来看,输入口可以连接到线网或,reg,型变量。,从模块内部看,输出口可以是线网或,reg,型。但从模块外部来看,输出必须连接到线网型,而不能连接到,reg,型的变量。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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