模拟简单的布尔逻辑
Simulating simple boolean logic
我正在尝试在 ModelSim PE 学生版 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
)到waves并得到布尔值输出?
看来您需要一个测试平台。测试台是另一个 Verilog 模块,它为您的设计提供刺激(输入)(在您的情况下为 simpl_circuit
),甚至可以为您检查输出。许多 Verilog 过程不仅是编写您的设计,而且是显示系统工作的测试机制。
现在,有多种方法可以使用 Modelsim 中的控制台来强制设置各种线的高低。在 sim 提示符下,你可以使用 force smpl_circuit/A 1
将 A
保持在逻辑一(我不习惯 Modelsim,所以我不能给你确切的 syntax/instructions)。然而,一堆 force
命令确实不能替代一个好的测试平台,所以现在就开始学习编写它们,同时你的设计相对简单!
有关测试台的更多信息:
https://embeddedmicro.com/tutorials/mojo/writing-test-benches
强制:
http://www.csse.monash.edu.au/courseware/cse2306/2006/Pracs/force.pdf
我正在尝试在 ModelSim PE 学生版 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
)到waves并得到布尔值输出?
看来您需要一个测试平台。测试台是另一个 Verilog 模块,它为您的设计提供刺激(输入)(在您的情况下为 simpl_circuit
),甚至可以为您检查输出。许多 Verilog 过程不仅是编写您的设计,而且是显示系统工作的测试机制。
现在,有多种方法可以使用 Modelsim 中的控制台来强制设置各种线的高低。在 sim 提示符下,你可以使用 force smpl_circuit/A 1
将 A
保持在逻辑一(我不习惯 Modelsim,所以我不能给你确切的 syntax/instructions)。然而,一堆 force
命令确实不能替代一个好的测试平台,所以现在就开始学习编写它们,同时你的设计相对简单!
有关测试台的更多信息: https://embeddedmicro.com/tutorials/mojo/writing-test-benches
强制: http://www.csse.monash.edu.au/courseware/cse2306/2006/Pracs/force.pdf