Перво-наперво, возможно, имеет смысл включить тактовый сигнал.Если вы не хотите задействовать свою логику на этапе сброса (что вы можете сделать, но вряд ли).
Что касается проблем в коде, вы никогда не определяете сброс, вы используете '==' для назначениязначение должно быть '<=', и вы пропускаете много точек с запятой. </p>
Уже поздно, поэтому это редактирование, скорее всего, не сработает, но оно должно дать вам несколько указателей.
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.