简单数字电路设计组合电路.pptVIP

  • 34
  • 0
  • 约6.44千字
  • 约 26页
  • 2017-07-17 发布于北京
  • 举报
简单数字电路设计组合电路

* Verilog HDL语言 华中科技大学计算机科学与技术学院 主讲:胡迪青 Email: hudq024@mail.hust.edu.cn QQ: 121374333 简单数字电路设计 设计验证与仿真 Verilog HDL不仅提供描述设计的能力,而且提供对激励、控制、存储响应和设计验证的建模能力。 激励和控制可用初始化语句产生。验证运行过程中的响应可以作为“变化时保存”或作为选通的数据存储。 最后,设计验证可以通过在初始化语句中写入相应的语句自动与期望的响应值比较完成。 要测试一个设计块是否正确,就要用Verilog再写一个测试模块。这个测试模块应包括以下三个方面的内容: 测试模块中要调用到设计块,只有这样才能对它进行测试; 测试模块中应包含测试的激励信号源; 测试模块能够实施对输出信号的检测,并报告检测结果。 * Simulating/Validating HDL The sad truth… 10% design, 90% validation If you do it right you will spend 9X more time testing/validating a design than designing it. Design Under Test (verilog) Stimulus Generation (verilog) Output Monitoring Self Checking (verilog) file file Verilog test bench shell Testbenchs are written in verilog as well. Testbench verilog is not describing hardware and can be thought of as more of a program. Testbench Example (contrived but valid) module test_and; integer file, i, code; reg a, b, expect, clock; wire out; parameter cycle = 20; and #4 a0(out, a, b); // Circuit under test initial begin : file_block clock = 0; file = $fopen(compare.txt, “r” ); for (i = 0; i 4; i=i+1) begin @(posedge clock) // Read stimulus on rising clock code = $fscanf(file, %b %b %b\n, a, b, expect); #(cycle - 1) // Compare just before end of cycle if (expect !== out) $strobe(%d %b %b %b %b, $time, a, b, expect, out); end // for $fclose(file); $stop; end // initial always #(cycle /2) clock = ~clock; // Clock generator endmodule 组合逻辑设计 组合逻辑电路 可以有若个输入变量和若干个输出变量,其每个输出变量是其输入的逻辑函数,其每个时刻的输出变量的状态仅与当时的输入变量的状态有关,与本输出的原来状态及输入的原状态无关,也就是输入状态的变化立即反映在输出状态的变化。 逻辑电路的各种运算可以用布尔代数来描述 狄摩根定律 利用狄摩根(DeMorgan)定律可以将积之和形式的电路转换为和之积形式的电路,或反之。 组合逻辑的三种通用表示方法 结构化(即门级)原理图 真值表 布尔方程式 实例:半加器 1 1 0 0 b 二进制输入 1 0 1 0 a 0 1 1 0 s 和输出 1 0 0 0 co 进位输出 Combinational Circuits Component Instantiations Circuit – A connection of modules – Also known as structure – A circuit is a second way to describe a module ? vs. using an always procedure, as earl

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档