Showing results for 
Search instead for 
Did you mean: 
Honored Contributor I

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; 


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. 





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
Honored Contributor I

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