- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi: just wanted to check quickly that SDC (i.e. quartus sta) will honor a multicycle
exception that goes to the read or write enable of an altsyncram? i.e. if I say that the altsyncram to output is a multicycle path by using set_multicycle -from on the read-enable, will that work? (and similarly -to the write enable) thank you.Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Hi: just wanted to check quickly that SDC (i.e. quartus sta) will honor a multicycle exception ... --- Quote End --- The best way to check if any of your assignments work is to use the Timequest GUI. A multicycle exception consists of a setup and a hold exception. If you constrain the input (read_enable or write_enable) like the following:
set_multicycle_path -end -setup -to ] 2
set_multicycle_path -end -hold -to ] 1
This means that all paths in the fan-out of your *mem_clock_read_ena* register have a multicycle of 2 mem_clock. This *doesn't include automatically* the output of your memory. You'll have to check that. If you want to check wether that worked (and on which paths) you'll have to open the Timequest GUI, click "Report Timing..." and fill in ]
in the "From" and "To"-fields. Maybe you'll have to increase the value in the "Report number of paths"- field too. Now you can easily check weather you constrained paths obey to you multicycle. Note that you have to *take care in your hdl code* that this multicycle constrains makes sense.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, many thanks. But I am not sure I follow. If the timequest gui doesn't show the output
of the memory, then what do I do? Is there a fool proof way to set the multicycle path.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is definitely a way to show/constrain you memory output.
1. Identify the output of your memory via Timequest Name Finder. This is done by View -> Name Finder: Filter the search results the respective instances to your memory output (wildcards are allowed and should be used). 2. Select your memory output in the Name Finder and click the right arrow. Now you can copy the text in the Name Finder's bottom line with <ctrl>-<c>. 3. Click Custom Reports -> Report Timing. Paste the clipboard in the Targets "from" field. Apply "*" in the "To"-field. Increase the value in "Report number of paths" to be sure to get all (relevant) paths. This will show the paths fan out by the memory output. for the incoming paths flip the entries of the "From" and "To"-field. 4. Now you can see in the waveform tab, if your multicycle assigment was properly taken into account. 5. Repeat the procedure for the other signals you interested in (read_ena, write_ena). NB: if you write a multicycle assignment for a (set of) path(s) make sure that this paths exist.
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