- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
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링크가 복사됨
1 응답
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
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