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

  • 11
  • 0
  • 约2.42万字
  • 约 44页
  • 2016-10-16 发布于贵州
  • 举报

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

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

基于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.综合结果 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; reg clk,D; wire

文档评论(0)

1亿VIP精品文档

相关文档