求助 啊
RTL?还是仿真?感觉很奇怪的。
如果rtl不准使用#20这种概念哦。
用
always @(posedge clk or posedge rst)begin
if (rst== 1‘b1) outclock <= 1’b0;
else outclock <= ~outclock;
end
我猜是你仿真时间不够长。
run 1000ms看看。
你这能compile成功么,clock重复定义了;
而且如果是写tb,也没用必要把它作为output;
写的有点乱!
我都仿真1s了啊,还是没反应。
是不是在软件编译和仿真的时候因为始终输入口没有信号才导致不能用#20时延啊。
clock没有重复定义,我把它注释了啊。
这样吧,你先别产生方波了,你先试试工具有没有工作,直接赋值试试
initial begin
clk <= 1'b0;
#5 clk <= 1'b1;
end
对了把`timescale 也改改试试,这个有时候也会有影响吧
回复:仿真时时间精度和最小单位时间不要随便写,会影响仿真时间的。建议修改为“`timescale 1ns /100ps”
直接用modelsim跑了一下这段代码
reg clock;
always
begin
#20 clock = 1;
#20 clock = 0;
end
可以生成方波
仿真的始终产生要在testbench里面写,不要在代码里写产生时钟,引个端口进来就ok啦
产生始终的方式(我自己的)
initial clk = 1‘b1;
always #20 clk=~clk;
用上面的这两句就ok啦,亲
是啊,在modelsim中可以生成,在quartus中报错,并且不能生成方波。
我自己来回来吧,这个语句是不可综合的。用单纯的仿真时可以实现的,但是一旦综合就不行,硬件完成不了这样的电路。
