【发布时间】:2018-11-27 19:04:43
【问题描述】:
我正在尝试使用 Quartus Prime 作为教授的副项目在 Verilog 中编写一个基本电路。也就是说,我在使用 Verilog 语法时遇到了问题。我想要制作的电路是 AND 和 OR 门的集合,它们在理论上确定电动引擎是否要打开。如果 a) 一只脚踩在刹车上,b) 钥匙在车里,并且 c) 电池电量充足,则发动机将启动。如果 a) 电池充电,并且 b) 将钥匙插入秘密插槽,则工程师也将打开。对于汽车设计来说是不切实际的,但它符合我的目的。首先,我的真值表:
现在,我的代码:
module ignition (
key,
foot,
batt,
secr,
powr,
);
//--INPUTS/OUTPUTS--
input key, foot, batt, secr;
output powr;
//--DATATYPE--
reg key, foot, batt, secr, powr
//--LOGIC--
always @ (posedge reset)
always begin
if (key == 1) && (foot == 1) && (batt == 1)
powr == 1;
else if (secr == 1) && (batt == 1)
powr == 1;
else
powr == 0
end
//--TESTBLOCK--
module ignition_tb;
reg key, foot, batt, secr, powr
initial begin
$monitor ("key=%b,foot=%b,batt=%b,secr=%b,powr=%b")
key = 0
foot = 0
batt = 0
secr = 0
powr = 0
我不确定从这里去哪里。我的代码是否为 verilog 正确设置?如何实施测试?
谢谢!
【问题讨论】:
-
在
always @...后面的代码中有一个额外的always。摆脱它。