我正在尝试在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
)并获得布尔输出吗?
答案 0 :(得分:1)
好像你需要一个测试平台。测试平台是另一个Verilog模块,它为您的设计提供激励(输入)(在您的情况下为simpl_circuit
),甚至可以为您检查输出。 Verilog的大部分过程不仅是编写您的设计,还包括测试机制以显示系统的工作原理。
现在,有一些方法可以在Modelsim中使用控制台来强制各种线路的高低。在sim提示符下,您可以使用force smpl_circuit/A 1
将A
保留在逻辑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