Altera_Forum
Honored Contributor
15 years agoSource-synchronous constraints with the -reference_pin option
Hello All,
I have a Cyclone III with a large number of source-synchronous inputs and outputs that need to be constrained in the SDC file. I have tried to constrain then using the -reference_pin option as follows: # main OSC create_clock -period 10.000 -name CLK_100MHZ [get_ports {CLK_100MHZ}] # Memory Source Sync Interface set_output_delay -clock [get_clocks {CLK_100MHZ}] 1.000 [get_ports {SRAM0_CLK}] set_output_delay -clock [get_clocks {CLK_100MHZ}] -reference_pin [get_ports {SRAM0_CLK}] 1.000 [get_ports {S0DATA [*]}] set_output_delay -clock [get_clocks {CLK_100MHZ}] -reference_pin [get_ports {SRAM0_CLK}] 1.000 [get_ports {SRAM0_OEN}] set_output_delay -clock [get_clocks {CLK_100MHZ}] -reference_pin [get_ports {SRAM0_CLK}] 1.000 [get_ports {SRAM0_ADD [*]}] set_output_delay -clock [get_clocks {CLK_100MHZ}] -reference_pin [get_ports {SRAM0_CLK}] 1.000 [get_ports {SRAM0_BW*}] set_output_delay -clock [get_clocks {CLK_100MHZ}] -reference_pin [get_ports {SRAM0_CLK}] 1.000 [get_ports {SRAM0_CS*}] set_output_delay -clock [get_clocks {CLK_100MHZ}] -reference_pin [get_ports {SRAM0_CLK}] 1.000 [get_ports {SRAM0_CEN}] set_input_delay -clock { CLK_100MHZ } -reference_pin [get_ports {SRAM0_CLK}] 0.200 [get_ports {S0DATA [*]}] The problem is when I run it through timequest I get a bunch of the following warnings: Warning: Reference pin SRAM0_CLK is invalid. It is not clocked by the clock specified in set_input_delay/set_output_delay's -clock option. But when I look at it in the technology map viewer, CLK_100MHZ is tied directly into the input pin of an IO_OBUF then to the SRAM0_CLK pin. I am wondering here if the problem is that SRAM0_CLK is not a clock pin? I am in the process of switching back to the generated clock method but I've had just as many problems with that. I noticed that a lot of people use a PLL for something like this, I dont understand how that would benifit me. In my case, I just pass the input clock to the output pin, is this the correct way to do it, or should I be using a PLL for some reason? Thanks alot! Jason