Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21599 토론

multicycle special case

Altera_Forum
명예로운 기여자 II
1,383 조회수

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 포인트
1 응답
Altera_Forum
명예로운 기여자 II
475 조회수

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 포인트
응답