fft程序使用modelsim仿真逻辑正确,下载错误。求解!
用verilog编写了fft程序,仿真时钟10ns,下载时钟50ns。
我有下面这几个问题,请大家指点一下,谢谢!
1.其中用到了很多延时,延时在下载后还会实现延时的功能吗?
比如 #3 i=i+1;是否还能实现在3个时钟后i自增?
2.下载后应该怎样读程序的逻辑,是用signal Tap吗?
3.`timescale 1 ns / 1 ps 这句下载时是不是就没有用了,可否去掉?
1,没有这样的功能了,会用实际电路的器件延时和线路延时来替代,当然你的延时要是计算的很牛,那么仿真和实际结果应该是一样的。
2,这是一种方式。
3,虽然确实不影响下载,但修改了又要重新编译,所以不用多此一举了。
Thanks a lot!
对于第一个我不是很明白,际电路的器件延时和线路延时在这里可以等效成至少3个时钟吗?
我今天看了一下时序仿真的波形,和之前的功能仿真完全不同,用#设置的这些延时完全没有起作用,请问这是咋回事啊?
我复制一下简单的部分程序
always @ (posedge clk)
case(state)
.......
8'd3:
if(f_R_addr<=N-2)
begin
f_R_wren=1;
intin_data= AD1_q;
#70 .....
#20 f_R_addr=f_R_addr+1;
end
else.....
这部分是状态机state==8’d3时的程序,我想要实现在AD1_q赋给intin_data之后的第9个时钟上升沿,f_R_addr自增.但是波形却是这样的
很明显,当state变成3后,地址不是等待9个时钟后自增,而是马上执行自增。难道延时这么用是错的吗?
混点经验╮(╯▽╰)╭
混点经验╮(╯▽╰)╭
本论坛帖子:
http://bbs.eetop.cn/viewthread.php?tid=359411
http://bbs.eetop.cn/viewthread.php?tid=330975
你还需要好好学习FPGA设计流程除了编写代码外,其他部分的知识,#延时是一种不可综合的表达式,底层电路没有对应的结构来实现它,因为内部不可能做到很精准的延时,都是取决于你的布局布线和资源占用情况等。首要记住VERILOG是硬件描述语言,不是设计语言,不能凭空创造实际不存在的电路。
不等于,不能用这个概念去等价。
嗯,明白了,谢谢你!
#3 i=i+1不可综合
所以只能仿真,综合后该部分就被综合掉了
