Altera_Forum
Honored Contributor
9 years agoMultipath timing constraints not giving expected results
Hi all,
I am trying to constrain the timing for a design, where a part of the design resembles the included schematic. The paths which are failing timing are between two registers, where the launch register is driven by a slower clock (200MHz, 5ns), and the latch register is driven by a clock having twice the frequency (400MHz, 2.5ns). There is also a multiplexer before the latch register which selects the long, failing path for every other clock edge of the fast clock. This should mean that the long, failing, path should have 5ns, rather than the 2.5ns that TimeQuest is currently allowing it, as shown in the image. http://www.alteraforum.com/forum/attachment.php?attachmentid=13226&stc=1 As a result, after the design had compiled, I added the following multipath constraint:set_multicycle_path -from {design_top:u_d|proc:gen_proc
.u_p|source_reg
} -to {design_top:u_d|proc:gen_proc
.u_p|ram_true_dual:u_ram|altsyncram:*|*:*|*} -setup -end 2 This constraint appeared to work, since the paths now reported a small positive slack after refreshing TimeQuest. However, after re-running the synthesis again, the paths were failing timing, despite the multi-cycle constraint. At the bottom of the page are the reports for the path, after synthesis with and without the constraint. To further test what was happening, I replaced the clock of the destination register with the same clock as the source register, and removed the multipath constraint. After running synthesis again, the paths in question were not failing timing. Are there any other constraints that are needed in order to get Quartus to handle this path as intended? Thanks.
AFTER APPLYING MULTIPATH, AND REFRESHING TIMEQUEST
Path# 1: Setup slack is -0.597 (VIOLATED)
===============================================================================
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
; Path Summary ;
+------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
; Property ; Value ;
+------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
; From Node ; design_top:u_d|proc:gen_proc.u_p|source_reg ;
; To Node ; design_top:u_d|proc:gen_proc.u_p|ram_true_dual:u_ram|altsyncram:altsyncram_component|altsyncram_fur2:auto_generated|ram_block1a0~porta_datain_reg1 ;
; Launch Clock ; clk ;
; Latch Clock ; clk2x ;
; Multicycle - Setup End ; 2 ;
; Data Arrival Time ; 8.801 ;
; Data Required Time ; 8.204 ;
; Slack ; -0.597 (VIOLATED) ;
+------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
AFTER APPLYING MULTIPATH, AND RE-SYNTHESIS
Path# 1: Setup slack is -2.299 (VIOLATED)
===============================================================================
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
; Path Summary ;
+------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
; Property ; Value ;
+------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
; From Node ; design_top:u_d|proc:gen_proc.u_p|source_reg ;
; To Node ; design_top:u_d|proc:gen_proc.u_p|ram_true_dual:u_ram|altsyncram:altsyncram_component|altsyncram_fur2:auto_generated|ram_block1a0~porta_datain_reg1 ;
; Launch Clock ; clk ;
; Latch Clock ; clk2x ;
; Multicycle - Setup End ; 2 ;
; Data Arrival Time ; 10.459 ;
; Data Required Time ; 8.160 ;
; Slack ; -2.299 (VIOLATED) ;
+------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+