FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5203 Discussions

Setting Tco and Tsu constraints, DE0-nano

Altera_Forum
Honored Contributor II
847 Views

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. 

 

Thanks, 

 

Mark 

 

=========== 

 

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. 

derive_clock_uncertainty 

# 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
Altera_Forum
Honored Contributor II
109 Views

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. 

 

 

Altera_Forum
Honored Contributor II
109 Views

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. 

 

-Mark
Reply