- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In the attached project I'm getting warnings about asynchronous clock paths and setup time violations.
In general:
- how do I interpret the warnings, based on the timing report?
- are there any standard recipes to fix the underlying problems?
And specifically: how do I fix the timing issues in the attached project?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello ChRe_4711096
Please refer to the appnote on Digital design best practices which mentions in detail about setup time violation, STA reports and setup time violation. Link to the appnote: https://www.cypress.com/documentation/application-notes/an81623-psoc-3-psoc-4-and-psoc-5lp-digital-d...
Though the appnote is for psoc 3, 4 and 5lp. The concepts in the appnote will apply to PSoC 6 as well.
The asynchronous path error generally differences between the clocking network and the DSI. You should add Sync Components to block outputs that are routed to inputs of UDB-based Components.
Best Regards
Ekta
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello ChRe_4711096
Please refer to the appnote on Digital design best practices which mentions in detail about setup time violation, STA reports and setup time violation. Link to the appnote: https://www.cypress.com/documentation/application-notes/an81623-psoc-3-psoc-4-and-psoc-5lp-digital-d...
Though the appnote is for psoc 3, 4 and 5lp. The concepts in the appnote will apply to PSoC 6 as well.
The asynchronous path error generally differences between the clocking network and the DSI. You should add Sync Components to block outputs that are routed to inputs of UDB-based Components.
Best Regards
Ekta
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The best practices appnote is certainly helpful, but to be honest it seems that correct placement of sync blocks is a bit of a guessing game especially in systems with closed loops that involve async components.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
In the project, the component "Adc_Filter_UDB_1" does not seem to be able to operate at a high frequency of 72 MHz due to some internal delays in the component. A screenshot of the project's STA report below shows this:
I tried reducing its clock "clk_udb" by half using a divider of 2 on Clk_Peri. After this, the project builds without STA warnings, as attached. Would this be acceptable for your application ?
Best Regards,
Prem Sai
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It would probably be acceptable to reduce clock speed for this component.
Let's add more context: the Adc_Filter_UDB contains a 16-bit datapath that receives ADC samples and then evaluates them based on sign and value - like a comparator with configurable deadband. It's surrounded by a 4:1 mux/demux and of course the ADC and in the actual target application serves 4 other moderately complex components (BLDC ESCs). If I'm interpreting the timing report correctly, the setup time _within_ the 16-bit datapath is too long, indicating routing congestion within that component. That's somewhat in line with the target design barely fitting into the available routing.