Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Altera_Forum
Honored Contributor I
879 Views

TimeQuest Quad-SPI Constraints Analysis

Hi all, 

 

I've been looking at using a MAX II CPLD plus Quad-SPI flash for use as Passive Serial (PS)/Fast Passive Parallel (FPP) configuration controller. 

 

The TimeQuest constraints for the interface require the use of multi-cycle constraints and generated clocks. I'd never used those constraints before, so I've put together a document and simplified design available for download here; 

 

http://www.ovro.caltech.edu/~dwh/correlator/pdf/timequest_quad_spi_flash.pdf 

http://www.ovro.caltech.edu/~dwh/correlator/pdf/timequest_quad_spi_flash.zip 

 

The design starts by using a virtual clock constraint to figure out how to get the multi-cycles correct, and then it re-does the constraints with a generated clock. 

 

The analysis is complete, but I did have a couple of questions. 

 

1. generated clock names 

 

On p17 of the PDF (and in the spi.sdc file), I create a generated clock via 

 

# SPI clock (at the register output internal to the design) create_generated_clock -divide_by 2 -source clk -name spi_clk_50MHz_internal # SPI clock (at the I/O pin) create_generated_clock -source -name spi_clk_50MHz  

 

Note how the second generated clock refers to the same register as the first generate clock via [get_fanins {spi_sck}].  

 

What I thought should have been possible for the second clock is this  

 

# SPI clock (at the I/O pin) create_generated_clock -source spi_clk_50MHz_internal -name spi_clk_50MHz  

 

where the name of the previously generated clock is used as the argument to -source. Quartus does not like it though. Wrapping it in a call to [get_clocks {}] does not help either. 

 

Any idea why this doesn't work? 

 

2. the generated spi clock shows up in "report unconstrained paths" with the message 

 

"spi_sck No output delay, min/max delay, false-path exception or max skew assignments found. This port has clock assignment." 

 

What is the correct constraint needed to clear this warning? 

 

Please feel free to offer feedback on the document. 

 

Cheers, 

Dave 

 

NOTE: for the Tcl geeks among us, the scripts associated with the document show how to use the low-level TimeQuest Tcl API to extract the timing parameters visible in the waveform window (which is useful when you want to automate something that would normally require using the TimeQuest GUI).
0 Kudos
1 Reply
Altera_Forum
Honored Contributor I
93 Views

Ping. I just noticed Rysc responding to another thread, and am pinging this thread in the hope that he might comment :)

Reply