【问题标题】:Basic Verilog Circuit Questions基本的 Verilog 电路问题
【发布时间】:2018-11-27 19:04:43
【问题描述】:

我正在尝试使用 Quartus Prime 作为教授的副项目在 Verilog 中编写一个基本电路。也就是说,我在使用 Verilog 语法时遇到了问题。我想要制作的电路是 AND 和 OR 门的集合,它们在理论上确定电动引擎是否要打开。如果 a) 一只脚踩在刹车上,b) 钥匙在车里,并且 c) 电池电量充足,则发动机将启动。如果 a) 电池充电,并且 b) 将钥匙插入秘密插槽,则工程师也将打开。对于汽车设计来说是不切实际的,但它符合我的目的。首先,我的真值表:

The Engine Truth Table

现在,我的代码:

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。摆脱它。

标签: verilog hdl quartus


【解决方案1】:

首先,包含时钟信号可能是有意义的。除非您想在重置时触发您的逻辑(您可能会这样做,但不太可能)。

至于代码中的问题,您从未定义重置,您使用 '==' 来分配值应该是 '

已经很晚了,所以这个编辑可能不起作用,但它应该会给你一些指导。

module ignition (
key,
foot,
batt,
secr,
powr,
clk //clock input
);

//--INPUTS/OUTPUTS--
input key, foot, batt, secr;
output powr;

//--DATATYPE--
reg key, foot, batt, secr, powr;

//--LOGIC--
always @ (posedge clk) //assuming you want to use clock, else switch to whatever you want
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, clk;

always @* begin
    #5 clk <= ~clk;
end

initial begin
    $monitor ("key=%b,foot=%b,batt=%b,secr=%b,powr=%b");
    key <= 0;
    foot <= 0;
    batt <= 0;
    secr <= 0;
    powr <= 0;
    //add some new values after a delay (#5) to test if it works.      

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多