【问题标题】:Simulating simple boolean logic模拟简单的布尔逻辑
【发布时间】:2015-09-01 16:19:41
【问题描述】:

我正在尝试在 ModelSim PE Student Edition 10.4a (Verilog) 中实现简单的布尔逻辑。

即x = A*B+C' y = C'

这是我在 verilog 中使用的代码

module smpl_circuit(A,B,C,x,y);
  input A,B,C;
  output x,y;
  wire e;
  and g1(e,A,B);
  not g2(y,C);
  or g3(x,e,y);
endmodule

我在模拟上述逻辑时得到以下输出。我无法理解为什么我得到直线。

有没有这样我可以将布尔值 (0/1) 输入到 wave 中并获得布尔输出?

【问题讨论】:

    标签: verilog


    【解决方案1】:

    看来您需要一个测试平台。测试台是另一个 Verilog 模块,它为您的设计(在您的情况下为simpl_circuit)提供激励(输入),甚至可以为您检查输出。 Verilog 的大部分过程不仅是编写您的设计,还包括测试机制以显示系统的工作原理。

    现在,有一些方法可以使用 Modelsim 中的控制台来强制各种线高低。在 sim 提示符下,您可以使用 force smpl_circuit/A 1 将 A 保持在逻辑一(我不习惯 Modelsim,所以我不能给您确切的语法/说明)。但是,一堆force 命令确实不能替代一个好的测试平台,所以在你有相对简单的设计的时候学习编写它们!

    有关测试平台的更多信息: https://embeddedmicro.com/tutorials/mojo/writing-test-benches

    对于强制: http://www.csse.monash.edu.au/courseware/cse2306/2006/Pracs/force.pdf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-02
      • 2011-12-22
      • 2011-08-17
      • 1970-01-01
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多