Open abregnsbo opened 2 years ago
The timing violations are not just in iir
and iq2
block, but in most blocks. Using Vivado 2020.1 on the python3-only
branch the post_route_timing_summary.rpt
says:
Clock WNS(ns) TNS(ns) TNS Failing Endpoints TNS Total Endpoints ----- ------- ------- --------------------- ------------------- adc_clk clk_fb pll_adc_clk -4.887 -15468.449 12225 34369 pll_dac_clk_1x 0.633 0.000 0 45 pll_dac_clk_2p pll_dac_clk_2x pll_pwm_clk -0.376 -0.783 4 440 clk_fpga_3 -0.344 -11.358 73 1713
ie. 12000 failing endpoints ! The violating paths are located in most blocks. Seen >3 ns violations in pid0/1, iq0/1 and asg. Many violations have a large net-delay (> 8 ns), which I guess is caused by the high 91% LUT utility. Vivado seem not to be able to report delay for typical corner, which could indicate how bad the situation is on a random RP board. Situation is similar on the master
branch.
Running fpga implementation with modified 0.9.3 rtl, that has 75% LUT utilization, only gives 350 failing endpoints mainly in iir block.
Has anybody seen a clean timing summary with the newest pyrpl rtl ?
When building an fpga image using rtl from either 'master' or 'pyton3-only' branch, there is a large timing violation in the iq2 demodulator block. The violating path is through low-pass filter and gain block. Reason could be that unlike iq0/iq1 which only have 2 stage low-pass filter, iq2 has a 4 stage low-pass filter.
Using Vivado 2020.1.