第5单元.门级建模jiao.pptVIP

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5单元.门级建模jiao

HDL语言硬件设计 第五章 门级建模 Verilog模型可以是实际电路不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种: (1)系统级(system) (2)算法级(algorithmic) (3)RTL级(Register Transfer Level): (4)门级(gate-level): (5)开关级(switch-level) 当前的数字电路设计,绝大多数都是建立在门级或更高的抽象层次上的。在门级抽象层次上,电路是用表示门的术语来描述的,如用and(与门),nand(与非门)等来描述。这种设计方法对于具有数字逻辑设计基础知识的用户来说是很直观的,在Verilog描述和电路的逻辑图之间存在着一一对应的关系。 5.1 门的类型 Verilog语言中常用的门包括如下几种(以二输入为例): 在Verilog语言中,我们可以调用(实例引用)这些逻辑门来构造逻辑电路。在门的实例引用中,输入端口的数目可以超过两个,这时只需将输入端口全部排列在端口列表中即可,Verilog会根据输入端口的数目自动选择引用合适的逻辑门。注意,在门级原语实例引用的时候,我们可以不指定具体实例的名字,这一点为设计师编写需要实例引用几百个门的模块提供了方便。 格式: 门的类型[驱动能力延时]门实例1[,门实例2,…门实例n]; 2.缓冲器/非门 与and/or门相反,buf/not门具有一个标量输入和多个标量输出。端口列表中的最后一个终端连接至输入端口,其他终端连接至输出端口。在这里,我们只讨论具有一个输入和一个输出的buf/not门,其原语和逻辑符号如下: Buf/not的引用实例如下: 带控制端的缓冲器/非门 除buf和not门之外,Verilog还提供了其他4个带有控制信号端口的buf/not门,这四种类型的门只有在控制信号有效的情况下才能传递数据;如果控制信号无效,则输出为高阻抗z。这些门的原语和逻辑符号如下: 在控制信号有效的情况下,这些门才能传递信号。在某些情况下,例如当一个信号由多个驱动源驱动时,我们可以这样来设计驱动源:让它们的控制信号的有效时间互相错开,从而避免一条信号线同时被两个源驱动。这时就需要使用带有控制端的缓冲器/非门来搭建电路。引用的实例如下: 3.实例数组 在许多情况下,我们需要对某种类型的门进行多次调用(实例引用),这些门实例之间的区别仅仅在于它们分别连接在不同的向量信号位上。为了简化,Verilog允许用户自己来定义门实例数组。如下例: 4.举例 门级多路选择器 在本例中,我们设计一个带有两个控制信号的四选一多路选择器,并且假设控制信号s1和s0不能为x或z值。 5.1 门的类型— —举例(续) 采用Verilog门级描述,得到如下代码: 5.1 门的类型— —举例(续) 用门级结构描述D触发器 module flop(data,clock,clear,q,qb); input data,clock,clear; output q,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,nclock), nd7(q,e,qb), nd8(qb,q,f,clear); not iv1(ndata,data), iv2(nclock,clock); endmodule 由已经设计成的模块来构成更高一层的模块 module hardreg(d,clk,clrb,q); input clk,clrb; input[3:0] d; output[3:0] q; flop f1(d[0],clk,clrb,q[0],), f2(d[1],clk,clrb,q[1],), f3(d[2],clk,clrb,q[2],), f4(d[3],clk,clrb,q[3],); endmodule 注意:当f1到f4实例引用已编模块flop时,由于不需要flop端口中的qb口,故在引用时把它省去,但逗号仍需要留着。 5.2 门延迟 1.上升、下降和关断延迟 上升延迟: 在门的输入发生变化的情况下,门的输出从0,x,z变化为1所需的时间称为上升延迟。 下降延迟: 下

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档