- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm struggeling with the tcl syntax of quartus. I learned just today that every tool has it's own packages. I'm using Quartus 13 I want to run quartus, and after quartus has compiled the complete design I want a timing report of a certain pin to two certain registers. Just for clarification, I don't want to run timequest by hand, I want the report after running quartus. To give an example, I have an rx pin, and I want to know the path delay from this rx pin to flipflop output sig_x and also from sig_y. See drawing below. It should show 4 square blocks representing a design. How to constrain that? And how to constrain that this, only appears in the TimeQuest Timing Analysis phase? In other words, how to use the Timequest package so that Analysis and Synthesis, and Fitter, don't start complaining that they don't understand this syntax.
+---------------------------------------------------------+
|TOP |
rx --->| |
| +-----------------------------------------------+ |
| |framehandler | |
| | | |
| | | |
| | | |
| | +----------------------------------------+ | |
| | |header_register | | |
| | | | | |
| | | | | |
| | | +-----------------------------------+ | | |
| | | |module_c | | | |
| | | | | | | |
| | | | +---+ | | | |
| | | | | |->sig_x | | | |
| | | | |> | | | | |
| | | | +---+ | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | +---+ | | | |
| | | | | |->sig_y | | | |
| | | | |> | | | | |
| | | | +---+ | | | |
| | | | | | | |
| | | +-----------------------------------+ | | |
| | | | | |
| | +----------------------------------------+ | |
| | | |
| +-----------------------------------------------+ |
| |
+---------------------------------------------------------+
Rgds, Kimberley
Link Copied
7 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Create a .tcl file(I always call it TQ_analysis.tcl) and put in a line:
report_timing -setup -npaths 20 -detail path_only -from [get_ports rx] -panel_name "s: rx -> *" -file "./TQ/rx_to_core.txt" Manually run TimeQuest and source this file from the Script pull-down to make sure it works. Change the options as appropriate and look at the output file in the TQ directory. If it's what you want, then in Quartus go to Assignments -> Settings -> TimeQuest and add the file. It will run automatically for the slow cold timing model. One other trick I sometimes do is add the following: set seed [get_global_assignment -name SEED] This just gets the seed setting, and I put it into the output file name: -file "./TQ/rx_to_core_seed$seed\.txt" You can then run a seed sweep and this path will be reported for each one. (I'm doing this on a design right now, which is why I mention it)- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As a side note - TimeQuest outputs every command you set up in the TCL command prompt - so if you run something in the GUI you want to script up, you can just copy/paste it into your TCL file.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- As a side note - TimeQuest outputs every command you set up in the TCL command prompt - so if you run something in the GUI you want to script up, you can just copy/paste it into your TCL file. --- Quote End --- That's what I did, but then quartus complains that the project settings are not correct. TimeQuest tcl from the gui uses a different packages then quartus_sta and quartus_fit. So the syntax is different?!?! between the two tooling.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Could you clarify what you did? (I do what I suggested quite a bit, so it should work).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I did the following: I can get my path in gui-version of TimeQuest Gui This also gives me the tcl command in one of the fields. (I have modified the path, because my real design is different then I described. I just need the syntax correctly)report_path -from -to -npaths 1 -panel_name {Report Path}
When I copy this into a tcl file which I source my qsf, quartus gives an error saying theresomething wrong in the settings. Then I thought, maybe the ~input is the problem, so I changed it into a wildcard. report_path -from -to -npaths 1 -panel_name {Report Path}
But that also doesn’t work. Rgds, Kimberley
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It can't be sourced by the .qsf file, as it's not a setting. Follow the instructions above to add it to Assignments -> Settings -> TimeQuest. What you have will then show up in the TimeQuest compilation report, or you can add a -file field to the report_timing to put the report into a text report too.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- It can't be sourced by the .qsf file, as it's not a setting. Follow the instructions above to add it to Assignments -> Settings -> TimeQuest. What you have will then show up in the TimeQuest compilation report, or you can add a -file field to the report_timing to put the report into a text report too. --- Quote End --- Thanks. It works now. In my qsf I now have a statement:
set_global_assignment -name TIMEQUEST_REPORT_SCRIPT my_paths.tcl
In my_paths.tcl I have my timequest tcl scripts Thanks again

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page