模拟简单的布尔逻辑

时间:2015-09-01 16:19:41

标签: verilog

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

enter image description here

即。 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

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

enter image description here

无论如何,我可以向波浪输入布尔值(0 / 1)并获得布尔输出吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

on on force: http://www.csse.monash.edu.au/courseware/cse2306/2006/Pracs/force.pdf