我有一个基本的双稳态代码,我编译它没有任何错误,但是当我在运行(f9)后想要添加波形时,我的altera程序没有做任何事情...... 这是我的代码:
module bistable(input a,
input rst,
input ck,
output reg out);
always@(posedge ck)
if(!rst) out<=0;
else out<=a;
endmodule
测试模块:
module test();
reg a;
reg ck;
reg rst;
wire out;
bistable bis(.a(a),.ck(ck),.rst(rst),.out(out));
initial begin
ck=0;
forever ck=~ck;
end
initial begin
a=1;
rst=0;
#14 rst=1;
#20 rst=0;
#10;
$stop;
end
endmodule
我没有时钟的程序,我的波形看起来非常好,但这不是我认为是我的问题的原因。
提前感谢您的帮助!
答案 0 :(得分:0)
forever ck=~ck;
是零时无限循环。模拟将不会移动到下一个时间步,直到当前时间步的所有操作都完成为止(当零时无限循环时这是不可能的。)
为您的时钟添加时间延迟会有所帮助。例如:forever #5 ck=~ck;
检查您的日志文件。某些模拟器在遇到无限循环时会报告错误或警告。