Altera_Forum
Honored Contributor
17 years agoProblem with SDRAM Timing
Why does my design only work with the “syn_keep” attribute and the delay chain “clk_sdram <= sdram_clk”?
My project is the design from a Digital Camera. I just constrained my clocks, see sdc file. As a result I don’t get any corrupted data. I can’t see white spots in my test pattern image. When I remove only the attribute “syn_keep” I get white spots in my test pattern image. Without any doubt this comes because the SDRAM timing is violated. When I remove only the delay chain “clk_sdram <= sdram_clk” I get white spots in my test pattern image. Without any doubt this comes because the SDRAM timing is violated. Can anybody explain what’s happens when I remove the attribute or the delay chain. What is the best way to analyze my design to find out what happens? What is the best way to constrain my design/ SDRAM. I just constrained my clocks because every time I assign input and output delay’s (setup and hold time) for the SDRAM I completely messed up my design so that nothing worked anymore. following my .sdc file: # ************************************************************** # Create Clock # ************************************************************** create_clock -add -name {IFCLK_IN} -period 20.83 -waveform {0 10.416} [get_ports {IFCLK_IN}] derive_pll_clocks -use_tan_name following parts of my top level: attribute syn_keep: boolean; attribute syn_keep of clk_sdram : SIGNAL is true; . . DCM1 : PLL1 PORT MAP ( areset => '0', -- pll_reset, inclk0 => IFCLK_IN, -- 48MHz c0 => clk_pixel, -- 24MHz, c1 => sdram_clk, -- 96MHz c2 => clk_sample, -- 192MHz, locked => nlock1 ); clk_sdram <= sdram_clk; -- keep delay chain doesn't work without ??? Tks!