HDL语言硬件设计基础第5章门级建模_第1页
HDL语言硬件设计基础第5章门级建模_第2页
HDL语言硬件设计基础第5章门级建模_第3页
HDL语言硬件设计基础第5章门级建模_第4页
HDL语言硬件设计基础第5章门级建模_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 HDL语言硬件设计语言硬件设计第五章 门级建模Page 2 Verilog模型可以是实际电路不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种:(1)系统级(system)(2)算法级(algorithmic)(3)RTL级(Register Transfer Level):(4)门级(gate-level):(5)开关级(switch-level) 当前的数字电路设计,绝大多数都是建立在门级或更高的抽象层次上的。在门级抽象层次上,电路是用表示门的术语来描述的,如用and(与门),nand(与非门)等来描述。这种设计方法对于具有数字逻辑设计基础知识的用户来说是很直观的,在Veri

2、log描述和电路的逻辑图之间存在着一一对应的关系。Page 35.1 门的类型门的类型 Verilog语言中常用的门包括如下几种(以二输入为例):1.与与/或门或门Page 4 在Verilog语言中,我们可以调用(实例引用)这些逻辑门来构造逻辑电路。在门的实例引用中,输入端口的数目可以超过两个,这时只需将输入端口全部排列在端口列表中即可,Verilog会根据输入端口的数目自动选择引用合适的逻辑门。注意,在门级原语实例引用的时候,我们可以不指定具体实例的名字,这一点为设计师编写需要实例引用几百个门的模块提供了方便。 格式: ,;Page 52.缓冲器缓冲器/非门非门 与and/or门相反,bu

3、f/not门具有一个标量输入和多个标量输出。端口列表中的最后一个终端连接至输入端口,其他终端连接至输出端口。在这里,我们只讨论具有一个输入和一个输出的buf/not门,其原语和逻辑符号如下: Buf/not的引用实例如下:Page 6带控制端的缓冲器带控制端的缓冲器/非门非门 除buf和not门之外,Verilog还提供了其他4个带有控制信号端口的buf/not门,这四种类型的门只有在控制信号有效的情况下才能传递数据;如果控制信号无效,则输出为高阻抗z。这些门的原语和逻辑符号如下:Page 7 在控制信号有效的情况下,这些门才能传递信号。在某些情况下,例如当一个信号由多个驱动源驱动时,我们可以

4、这样来设计驱动源:让它们的控制信号的有效时间互相错开,从而避免一条信号线同时被两个源驱动。这时就需要使用带有控制端的缓冲器/非门来搭建电路。引用的实例如下:Page 83.实例数组实例数组 在许多情况下,我们需要对某种类型的门进行多次调用(实例引用),这些门实例之间的区别仅仅在于它们分别连接在不同的向量信号位上。为了简化,Verilog允许用户自己来定义门实例数组。如下例:Page 94.举例举例 门级多路选择器门级多路选择器 在本例中,我们设计一个带有两个控制信号的四选一多路选择器,并且假设控制信号s1和s0不能为x或z值。Page 105.1 门的类型门的类型 举例(续)举例(续) 采用V

5、erilog门级描述,得到如下代码:Page 115.1 门的类型门的类型 举例(续)举例(续)仿真结果输出Page 12 用门级结构描述用门级结构描述D触发器触发器ndataPage 13module flop(data,clock,clear,q,qb);inputdata,clock,clear;outputq,qb;wire a,b,c,d,e,f,ndata,nclock;nand nd1(a,data,clock,clear), nd2(b,ndata,clock), nd3(c,a,d), nd4(d,c,b,clear), nd5(e,c,nclock), nd6(f,d,nc

6、lock), nd7(q,e,qb), nd8(qb,q,f,clear);not iv1(ndata,data), iv2(nclock,clock);endmodulePage 14由已经设计成的模块来构成更高一层的模块由已经设计成的模块来构成更高一层的模块clrdqclkclrdqclkclrdqclkq0d0clrdqclkd3d2q2q3q1d1clrbclkf4f3f2f1图4.1.3四位寄存器电路结构图Page 15module hardreg(d,clk,clrb,q);inputclk,clrb;input3:0d;output3:0q;flopf1(d0,clk,clrb,

7、q0,), f2(d1,clk,clrb,q1,), f3(d2,clk,clrb,q2,), f4(d3,clk,clrb,q3,);endmodule注意:当f1到f4实例引用已编模块flop时,由于不需要flop端口中的qb口,故在引用时把它省去,但逗号仍需要留着。Page 165.2 门延迟门延迟1.上升、下降和关断延迟上升、下降和关断延迟 上升延迟上升延迟: 在门的输入发生变化的情况下,门的输出从0,x,z变化为1所需的时间称为上升延迟。 下降延迟下降延迟: 下降延迟是指门的输出从1,x,z变化为0所需的时间。 关断延迟关断延迟: 关断延迟是指门的输出从0,1,x变化为高阻抗z所需的

8、时间。Page 172.延迟声明延迟声明 如果用户只指定了一个延迟值,那么对所有类型的延迟都使用这个延迟值 如果用户指定了两个延迟值,则它们分别代表上升延迟和下降延迟,两者中的小者为关断延迟 如果用户指定了三个延迟值,则它们分别代表上升延迟、下降延迟和关断延迟。 如果未指定延迟值,那么默认延迟值为0。Page 185.2 门延迟门延迟 最小最小/典型典型/最大延迟最大延迟 最小值:最小值:设计者预期逻辑门所具有的最小延迟。 典型值:典型值:设计者预期逻辑门所具有的典型延迟。 最大值:最大值:设计者预期逻辑门所具有的最大延迟。Page 193.门延迟举例门延迟举例 考虑一个简单的例子,说明如何使

9、用门延迟为逻辑电路建立时序模型。假设模块D实现逻辑功能: out = (a b) + c。 模块D的逻辑图如下,其中包含了一个延迟时间为5个单位的与门和一个延迟时间为4个单位的或门。Page 20Page 21Page 22习题习题1 利用双输入端的利用双输入端的nand门,用门,用Verilog编写自己的双输入端的与门、或门和非编写自己的双输入端的与门、或门和非门,把它们分别命名为门,把它们分别命名为my_or,my_and和和my_not,并通过激励模块验证,并通过激励模块验证这些门的功能。这些门的功能。Page 23module my_and(in1,in2,out);input in1

10、,in2;output out;wire out1;nand a1(out,out1,out1);nand a2(out1,in1,in2);endmodulemodule my_or(in1,in2,out);input in1,in2;output out;wire out1,out2;nand o1(out,out1,out2);nand o2(out1,in1,in1);nand o3(out2,in2,in2);endmodulemodule my_not(in, out);input in;output out;nand n1(out,in,in);endmodulePage 24

11、习题习题2 使用上题中完成的使用上题中完成的my_or,my_and和和my_not门构造一个双输入端的门构造一个双输入端的xor门,其功能是计算门,其功能是计算z = xy + x y,其中,其中x和和y为输入,为输入,z为输出;编写激励模为输出;编写激励模块对块对x和和y的四种输入组合进行测试仿真。的四种输入组合进行测试仿真。Page 25module my_xor(in1,in2,out);input in1,in2;output out;wire not_in1,not_in2,out_a1,out_a2;my_not mynot1(in1,not_in1);my_not mynot2

12、(in2,not_in2);my_and myand1(in1,not_in2,out_a1);my_and myand2(in2,not_in1,out_a2);my_or myor1(out_a1,out_a2,out);endmodulePage 26module test52;reg x,y;wire z;initialbegin x=0;y=0;#10 x=0;y=1;#10 x=1;y=0;#10 x=1;y=1;#10 $stop;endinitial$monitor($time,“x=%b,y=%b, z=%b,x,y,z);my_xor myxor(x,y,z);endmodulePage 27习题习题3 带有延迟的RS锁存器如下图所示,写出其带有延迟的Verilog门级描述。编写其激励模块,根据下面的输入-输出关系表对其功能进行验证。resetsetqqbar#1#1setresetqn+100qn01010111?Page 28module my_rs(reset,set,q,qbar);input reset,set;output q,qbar;nor #(1) nor1(q,reset,qbar);nor #(1) nor2(qbar,set,q);endmodulemodule test54;reg set,reset;wi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论