使用计数器:
首先要知道芯片晶振是多少。在这里我假如是 30M;如果要延时0.3秒,则应该用0.3*30000000=9_000_000;例如b延时0.3秒等于a;
reg [23:0] count;
always @(posedge clk )
begin
if(count=24'd9_000_000)
count<=24'b0;
else
count<=count+1'b1;
end
always @(posedge clk )
begin
if(count==24'd9_000_000)
b<=a;
end
追问你说的这个我懂,我意思是可不可以写一段延时的代码,不用always块来实现,要是能够嵌套在always块里面,比如:
always @(posedge clk)
begin
a <= b;
一段延时程序
a <= c;
end
追答这样的话我感觉像单片机了,就体现不出fpga的并行优势了;
而且在fpga是不赞成这样写 delay函数的,我觉得你还是在另外一个always模块里写延时,在另外一个模块你作为触发就是了。
当然我也是菜鸟,可能有不准确,建议你问下老师吧。
本回答被提问者采纳