第7章 基于EDA的时序电路设计、综合及验证(7.1-7.5).docVIP

第7章 基于EDA的时序电路设计、综合及验证(7.1-7.5).doc

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

PAGE 42 PAGE 43 基于EDA的时序电路设计、综合及验证 学习基础: 第3章介绍了时序逻辑电路的基础知识。学习本章前,应先掌握第3章的知识。 第4章介绍了Verilog HDL的基本语法及简单设计的建模方法。 5.5~5.7的综合实例,介绍了EDA工具Libero IDE的使用。本章所有综合和验证均基于Libero IDE环境实现。 阅读指南: 本章讲述内容对应第3章的知识,把相应功能通过Verilog HDL语言进行实现。 本章多处对同一个设计提供了多种设计思路和实现方法,并不是所有都是最优的方法,只是方便对比和学习。读者可根据情况选择合适的方法。 7.4、7.6、7.7中讨论了第3章中没有涉及的理论知识和多个综合例子,这些知识和例子综合性强,较难理解,但却是数字系统实际开发中非常重要和实用的内容,对于想进入数字系统设计实践阶段的读者来说很有实际意义。 锁存器 基本RS锁存器(一) 1.使用Verilog进行描述 module rs_1(R,S,Q,Qn); input R,S; output Q,Qn; // Qn表示,而不是时序电路中的现态。 reg Q; assign Qn=~Q; always @(R or S) // 通过case语句,按真值表方式写出程序逻辑。 case({R,S}) 2b01:Q=1; 2b10:Q=0; 2b11:Q=1bx; endcase endmodule 读者在一开始看这种程序时很容易产生疑问:触发器是存放数字电路中基本二进制信号的单元电路,也就是寄存器变量Q的值是需要使用触发器来存放,而触发器是由锁存器所构成,用触发器存放的Q来实现一个锁存器显然是不合理的。 这就需要读者理解在Verilog HDL中,采用行为风格编写代码,是为了让程序编写者可用更趋向行为的方式更方便的编写代码,而不需考虑具体的物理细节。虽然在程序中指定要使用一个寄存器变量Q,但在使用EDA工具进行综合的时候,是不会也不可能用触发器来实现锁存器的,通过综合结果可看出。 2.综合结果 第7章的工艺视图不一定要给学生讲,各位老师自行处理 3.测试平台设计 `timescale 1ns/1ns module testbench (); reg r,s; wire q,qn; rs_1 test_rs(r,s,q,qn); initial begin r=0;s=0; #10 s=1; #10 r=1; #10 s=0; #10 r=0; #10; end endmodule 4.功能验证 综合前仿真 综合后仿真 波形说明: 综合前仿真(功能仿真)的结果中,在0~10ns和20~30ns之间,q和qn都是x态。0~10ns之间产生的x态是因为r和s的值为0,q保持原态;20~30ns之间产生的x态是因为r和s的值为1,代码中规定了处理为x态。 综合后仿真的结果中,20~30ns之间q和qn并不是x态(都为0),具体状态视20ns时r、s、q的值而定。 基本RS锁存器(二) 1.使用Verilog进行描述 module rs_2(R,S,Q,Qn); input R,S; output Q,Qn; nor (Q,R,Qn); nor (Qn,S,Q); endmodule 2.综合结果 测试平台与设计一相同。 3.功能验证 波形分析:对比设计一和设计二的波形,可发现在设计一中,当r,s为1时,Q和Qn均为x,而在设计二中Q和Qn均为0。由于对RS锁存器来说,R,S同为1是不允许的,故可忽略之。 门控D锁存器 1.使用Verilog进行描述 module latch_1_a(Clk,D,Q); input Clk,D; output Q; reg Q; always @(D or Clk) if (Clk) Q=D; endmodule 程序说明: (1)当Clk为高电平时,输出Q的数值会随D输入的数据更新,而当Clk为低电平时将保持其高电平时锁入的数据。 (2)Clk由0变为1时,满足if语句的条件,语句“Q=D”被执行,将D的数值赋值给Q;Clk由1变为0时(无论D是否变化),都将执行if语句,但此时Clk=0,语句Q=D不被执行,于是Q保持原值不变。 (3)如果敏感信号D发生变化,但Clk为0,Q保持原值不变;如果敏感信号D发生变化,且Clk为1,则执行语句Q=D。 2.综合结果 \ 3.测试平台设计 `timescale 1ns/1ns module testbench_latch;

文档评论(0)

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

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

1亿VIP精品文档

相关文档