FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
5690 Discussions

Setting Tco and Tsu constraints, DE0-nano

Honored Contributor II

Hi All, 


As part of the process of attaching University Program -> Memory -> SD Card Interface SOPC IP module to a NIOS processor I noted " it is important to set Tco and Tsu constraints for the SD card ports. Both parameters should be set to not more than 10ns" from the document "Altera University Program Secure Data Card IP Core". 


The SD card interface is implemented using 4 pins, (CLK, output from NISO II), and (DAT0, DAT3 and CMD, all BIDIR to/from NIOS II). 


Using the TimeQuest wizard, su/th 8ns was entered for the BIDIR pins, the resulting SDC file is shown below. Is this the correct process for entering these parameters ? 


To further complicate the issue, the SOPC has a clock module "Clock Signals for DE-series Board Peripherals" which is used to shift the 50MHz input clock 3ns(?) as required by the University Program SDRAM interface. The module output is used to driver all NIOS components, as well as provide a skewed clock to the SDRAM. 


Given that SD card interface is driven with this skewed clock, presumably there is a further level of complexity associated with setting Tco and Tsu ? 


Thoughts and comments on these issues are most appreciated. 








SDC file settings: 

# Clock constraints 


create_clock -name "NIOS_clk" -period 20.000ns [get_ports {ext_clk_50}] 


# Automatically constrain PLL and other generated clocks 

derive_pll_clocks -create_base_clocks 

# Automatically calculate clock uncertainty to jitter and other effects. 


# tsu/th constraints 


set_input_delay -clock "NIOS_clk" -max 12ns [get_ports {SD_EXT_DAT3}]  

set_input_delay -clock "NIOS_clk" -min 8.000ns [get_ports {SD_EXT_DAT3}]  

set_input_delay -clock "NIOS_clk" -max 12ns [get_ports {SD_EXT_CMD}]  

set_input_delay -clock "NIOS_clk" -min 8.000ns [get_ports {SD_EXT_CMD}]  

set_input_delay -clock "NIOS_clk" -max 12ns [get_ports {SD_EXT_DAT0}]  

set_input_delay -clock "NIOS_clk" -min 8.000ns [get_ports {SD_EXT_DAT0}]
0 Kudos
2 Replies
Honored Contributor II

I believe tCO is meant for input state and tSU for output state (though the other way round is also allowed but unusual). 


if tCO is meant for input then the rule for set input delay is: 


set_input_delay <10 ...  


and so tSU is for output then the rule for set ouput delay is: 

set_output_delay -max <10 and add it to above 


if we go for the odd case of opposite sense then: 

set_input_delay –max < ui – tsu > i.e. unti interval minus tSU 


while set output delay relation to tCO is not documented as far as I am aware. 



0 Kudos
Honored Contributor II

This is going to be interesting... 


Just spotted the University forum, so have re-posted there just to see if there is anyone who has already dealt with this. 


Thanks for your help. 


0 Kudos