取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
bivistaual
Visitor
Visitor
1,015 次查看
注册日期: ‎07-25-2019

post-implemetaion timing仿真 FFT IP 输出未知状态X

 

测试一个简单的256点FFT ip,顶层设计就只有一个ip的调用,没加任何其他的逻辑。

实现完成了,时序检查都MET了,后仿功能仿真输出结果没有任何问题。但是timing仿真就各种 DSP48E1 和 RAMB18E1 timing violation,并且FFT的data输出端口m_axis_tdata都是未知态,m_axis_tuser却能正确输出FFT后的index。

类似"WARNING: "/tools/Xilinx/Vivado/2019.1/data/verilog/src/unisims/DSP48E1.v" Line 2119: Timing violation in scope /TESTBED/u_fft256/u_fft/U0/i_synth/xfft_inst/non_floating_point.arch_d.xfft_inst/pe_gen[0].natural_order_input.PE/has_TW_mult.MULT/i_cmpy/three_mult_structure.use_dsp.i_dsp48/mult2_preadder_d_plus_a.mult2/mult/use_prim.appDSP48[0].bppDSP48[0].use_dsp.use_dsp48e1.iDSP48E1/TChk2119_48822 at time 1575546 ps $setuphold (posedge CLK,posedge D,(0:0:0),(0:0:0),notifier,d_en_p,d_en_p,clk_dly,d_dly)".

 

附件为RTL代码,TESTBED,约束文件,DRC报告, TIMING报告,以及仿真日志。

 

另外附上整个工程的网盘连接,有40 MB:

链接: https://pan.baidu.com/s/1Gx-udje2NA7cAh3NCmqwtw 提取码: i8h1

 

0 项奖励
回复
6 回复数
nathanx
Moderator
Moderator
957 次查看
注册日期: ‎08-02-2007

警告信息已经很明确的给出了timing violation, 你指的timing met是静态时序分析? slack有多少? 跑多快? 什么FPGA器件?speed grade是? DSP48E能跑多快.

0 项奖励
回复
bivistaual
Visitor
Visitor
947 次查看
注册日期: ‎07-25-2019

建立工程的时候选择的xc7vx485tffg1761-2。仿真以及时钟约束设置的时钟频率为50MHz,就是周期20ns,implementatoin之后setup slack有 10.545ns,hold slack,0.056ns。DSP48E怎么看速度啊。学生党第一次使用FPGA,很多都不懂。。。

0 项奖励
回复
viviany
Xilinx Employee
Xilinx Employee
886 次查看
注册日期: ‎05-15-2008

时序报告贴上来看看吧

-vivian

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
回复
bivistaual
Visitor
Visitor
869 次查看
注册日期: ‎07-25-2019

这条回复下面的附件是implementation之后report timing sumary出来的报告。

原帖子底下的附件fft.zip里还有我的RTL,约束文件,测试平台以及一些其他报告。

0 项奖励
回复
graces
Moderator
Moderator
709 次查看
注册日期: ‎07-17-2008

如果想手动检查DSP为终点的路径,可以Open Implemented Design后运行report_timing:

e.g. report_timing -to [get_pins <DSP48 full hierarchical name>/D] -max_paths 50 -delay_type min_max

仿真的时序检查基于SDF文件,跑一次仿真默认用最大值用于setup检查,也可以设选项用最小值做hold检查。静态时序分析工具会对setup和hold检查做min/max组合,取slow和fast corner两相比较的较差结果。以下文章对这部分内容有所讨论:

https://forums.xilinx.com/t5/Adaptable-Advantage-Blog/Mismatch-in-Timing-Numbers-between-SDF-and-STA/ba-p/823362

两者可能存在差异,以静态时序为最终结果。

 

回到你这个仿真的问题,如果一直保持X输出,并且已经在运行了一段仿真时间,并不像是时序问题导致。你可能需要逐级查看信号源看是否能做进一步分析。如果可以附上整个工程(File > Project > Archive),也可以本地帮你看一看。

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
bivistaual
Visitor
Visitor
577 次查看
注册日期: ‎07-25-2019

 

非常感谢您的回复!我已经把工程文件附在了下面,文件40 MB,超过附件限制,所以放在了网盘上,请谅解。请您帮我看一下是哪里出的问题,谢谢!

 

链接: https://pan.baidu.com/s/1Gx-udje2NA7cAh3NCmqwtw 提取码: i8h1

0 项奖励
回复