带有always块的verilog语法错误
我是verilog的新手。我不知道我的代码到底出了什么问题。程序会显示给定时刻0到16小时的计数器值。带有always块的verilog语法错误,verilog,Verilog,我是verilog的新手。我不知道我的代码到底出了什么问题。程序会显示给定时刻0到16小时的计数器值。 键[2]是增加计数器的按钮,而sw[0]重置计数器 else if(sw[9:5]==5'b00100) begin counter = 0; hex2 = 7'b1000000; always@(negedge sw[0],posedge key[2]) begin if(~sw[0]) counter = 0; else if
键[2]
是增加计数器的按钮,而sw[0]
重置计数器
else if(sw[9:5]==5'b00100)
begin
counter = 0;
hex2 = 7'b1000000;
always@(negedge sw[0],posedge key[2])
begin
if(~sw[0]) counter = 0;
else if(key[2])begin
if(counter == 16'hFFFF) counter = 0;
else counter = counter +1;
end
end
end
我得到的错误是veriloghdl语法接近文本“总是”;应为“;”或“@”、或“end”或标识符(“始终”是保留关键字)、系统任务或“{”或顺序语句
my counter=0;
在我最上面的模块外的顶部定义为整数计数器
非常感谢您的帮助。在按顺序执行的if..else块中不允许始终块 您可以尝试的一种方法是: @(negedge sw[0],posedge键[2]) 这将触发上述两个信号的任何变化,但它将只检测到一个变化 看起来您希望在sw[9:5]==5'b00100时启用计数器
为什么不尝试在此处设置一个标志,然后使用always@flag块来实现运行计数器。能否粘贴完整代码?还有确切的错误?if..else块中不能有always块