ModelSim Altera 10.1d - verilog 我无法获得波形
ModelSim Altera 10.1d - verilog I can't get wave forms
我有一个基本的双稳态代码,我编译它没有任何错误,但是当我想在我点击 运行(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
我在没有时钟的情况下编写程序,我的波形显示得很好,但我认为这不是问题的原因。
在此先感谢您的帮助!
forever ck=~ck;
是零时间无限循环。在当前时间步上的所有操作完成之前,仿真不会进入下一个时间步(这在存在零时间无限循环时是不可能的)。
为您的时钟添加时间延迟会有所帮助。例如:forever #5 ck=~ck;
检查您的日志文件。有些模拟器在遇到死循环时会报错或警告。
我有一个基本的双稳态代码,我编译它没有任何错误,但是当我想在我点击 运行(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
我在没有时钟的情况下编写程序,我的波形显示得很好,但我认为这不是问题的原因。
在此先感谢您的帮助!
forever ck=~ck;
是零时间无限循环。在当前时间步上的所有操作完成之前,仿真不会进入下一个时间步(这在存在零时间无限循环时是不可能的)。
为您的时钟添加时间延迟会有所帮助。例如:forever #5 ck=~ck;
检查您的日志文件。有些模拟器在遇到死循环时会报错或警告。