Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21335 Discussions

multicycle special case

Altera_Forum
Honored Contributor II
1,301 Views

Hi, 

I have a special case of multicycle. 

The source data is changing long after the destination register sampling the data.  

I attached figure for details. 

Please help me to define the timequest proper constraints. 

I tried to define: 

 

set_multicycle_path .... -setup 156 

set_multicycle_path .... -hold 155 

 

and received hold violation, but as you can see there is no way there is an hold problem
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
393 Views

I'm not following the diagram, specifically what the setup requirement should be(and if they're edge aligned). Specifically I see the source data changing but don't see when it is latched. Let's say it is latched in the destination on the next latch edge(i.e. the default). Let's say the previous data is latched 20 clock cycles before that. Then you would do something like: 

 

set_multicycle_path -hold -end 20 

 

Now, I believe the data is latched much later. So let's pretend it's 100 cycles later. Then it would be: 

 

set_multicycle_path -setup -end 100 

set_multicycle_path -hold -end 120 

 

I would suggest looking at the TimeQuest User Guide on alterawiki.com, specifically Section 2 on Multicycles. Also, a good way is to put in a multicycle and run report_timing -setup and report_timing -hold on that path to see what the setup and hold relationships are. If they're not what you want, start changing the values(do the setup first, since hold changes with it). You don't have to re-fit, just re-run TimeQuest. It might take a few iterations but should be pretty quick
0 Kudos
Reply