下面的是我写的用按键1和按键2来控制状态状态转移的程序<br>
不知道大家有没有去skywolf 大虾的网站上看见过 多功能时钟的设计 ,这就是我针对其中跑表那段设计的 <br>
大家帮我看看这个错误吧. <br>
error:<br>
Always Construct error: more than one register in the Event Control of an Always Construct is not used in the rest of the Always Construct<br>
_____________________________________________________________<br>
`timescale 1ns/1ns<br>
module stopwatch10(display_value,key2,key1,clk);<br>
output [7:0] display_value;<br>
input key1,key2,clk;<br>
reg [7:0] counter,holding_time;<br>
reg [1:0] present_state,next_state;<br>
parameter stopping = 2'b00,running=2'b11,holding=2'b01;<br>
always @(posedge key2 or posedge key1) //报错行<br>
begin<br>
present_state<=next_state;<br>
case(present_state)<br>
stopping:<br>
begin<br>
if(key2)<br>
next_state<=running;<br>
else <br>
holding_time<=8'b0;<br>
end<br>
running:<br>
begin<br>
if(key2)<br>
next_state <= stopping;<br>
if(key1)<br>
next_state<=holding;<br>
holding_time <= counter;<br>
end<br>
holding:<br>
begin<br>
if(key2)<br>
//refresh<br>
holding_time<=counter;<br>
if(key1)<br>
next_state<=running;<br>
end<br>
default: begin<br>
next_state <= stopping;<br>
holding_time <= 8'b0;<br>
end<br>
endcase<br>
end<br>
always @(posedge clk)<br>
begin<br>
if(present_state[0])<br>
begin<br>
counter <= counter+1;<br>
end<br>
else<br>
begin<br>
counter <= 8'b0;<br>
end<br>
end<br>
assign display_value = present_state[1]?counter:holding_time;<br>
endmodule<br> |