S
soxmax
Guest
On monday March 22, 2004
John_H wrote:
<<There's a disconnect between simulation and synthesis for INIT
values. Synthesis uses INIT attributes set with the "synthesis
attribute INIT_00" type comments.
Simulation uses defparams.
Getting the two to do the same thing requires intelligence not yet
designed into simulators or synthesizers. >>
I am trying to instantiate a DCM in a Spartan 3 FPGA. I am using
ModelSim as my simulation tool.
Question 1) Will the following provide me the same in synthesis AND
simulation: (the simulation seems to be working correctly. I don't yet
have hardware to test actual functionality)
// synthesis attribute CLK_FEEDBACK of DCM_INST is "1X"
// synthesis attribute CLKDV_DIVIDE of DCM_INST is "2.000000"
// synthesis attribute CLKFX_DIVIDE of DCM_INST is "25"
// synthesis attribute CLKFX_MULTIPLY of DCM_INST is "24"
// synthesis attribute CLKIN_DIVIDE_BY_2 of DCM_INST is "FALSE"
// synthesis attribute CLKIN_PERIOD of DCM_INST is "40.000000"
// synthesis attribute CLKOUT_PHASE_SHIFT of DCM_INST is "NONE"
// synthesis attribute DESKEW_ADJUST of DCM_INST is
"SYSTEM_SYNCHRONOUS"
// synthesis attribute DFS_FREQUENCY_MODE of DCM_INST is "LOW"
// synthesis attribute DLL_FREQUENCY_MODE of DCM_INST is "LOW"
// synthesis attribute DUTY_CYCLE_CORRECTION of DCM_INST is "TRUE"
// synthesis attribute FACTORY_JF of DCM_INST is "C080"
// synthesis attribute PHASE_SHIFT of DCM_INST is "0"
// synthesis attribute STARTUP_WAIT of DCM_INST is "FALSE"
// synopsys translate_off
defparam DCM_INST.CLK_FEEDBACK = "1X";
defparam DCM_INST.CLKDV_DIVIDE = 2.000000;
defparam DCM_INST.CLKFX_DIVIDE = 25;
defparam DCM_INST.CLKFX_MULTIPLY = 24;
defparam DCM_INST.CLKIN_DIVIDE_BY_2 = "FALSE";
defparam DCM_INST.CLKIN_PERIOD = 40.000000;
defparam DCM_INST.CLKOUT_PHASE_SHIFT = "NONE";
defparam DCM_INST.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS";
defparam DCM_INST.DFS_FREQUENCY_MODE = "LOW";
defparam DCM_INST.DLL_FREQUENCY_MODE = "LOW";
defparam DCM_INST.DUTY_CYCLE_CORRECTION = "TRUE";
defparam DCM_INST.FACTORY_JF = 16'hC080;
defparam DCM_INST.PHASE_SHIFT = 0;
defparam DCM_INST.STARTUP_WAIT = "FALSE";
// synopsys translate_on
Question 2: What happens if I don't use //synopsys translate_off & on?
(I have deleted them and it doesn't seem to make a difference.)
John_H wrote:
<<There's a disconnect between simulation and synthesis for INIT
values. Synthesis uses INIT attributes set with the "synthesis
attribute INIT_00" type comments.
Simulation uses defparams.
Getting the two to do the same thing requires intelligence not yet
designed into simulators or synthesizers. >>
I am trying to instantiate a DCM in a Spartan 3 FPGA. I am using
ModelSim as my simulation tool.
Question 1) Will the following provide me the same in synthesis AND
simulation: (the simulation seems to be working correctly. I don't yet
have hardware to test actual functionality)
// synthesis attribute CLK_FEEDBACK of DCM_INST is "1X"
// synthesis attribute CLKDV_DIVIDE of DCM_INST is "2.000000"
// synthesis attribute CLKFX_DIVIDE of DCM_INST is "25"
// synthesis attribute CLKFX_MULTIPLY of DCM_INST is "24"
// synthesis attribute CLKIN_DIVIDE_BY_2 of DCM_INST is "FALSE"
// synthesis attribute CLKIN_PERIOD of DCM_INST is "40.000000"
// synthesis attribute CLKOUT_PHASE_SHIFT of DCM_INST is "NONE"
// synthesis attribute DESKEW_ADJUST of DCM_INST is
"SYSTEM_SYNCHRONOUS"
// synthesis attribute DFS_FREQUENCY_MODE of DCM_INST is "LOW"
// synthesis attribute DLL_FREQUENCY_MODE of DCM_INST is "LOW"
// synthesis attribute DUTY_CYCLE_CORRECTION of DCM_INST is "TRUE"
// synthesis attribute FACTORY_JF of DCM_INST is "C080"
// synthesis attribute PHASE_SHIFT of DCM_INST is "0"
// synthesis attribute STARTUP_WAIT of DCM_INST is "FALSE"
// synopsys translate_off
defparam DCM_INST.CLK_FEEDBACK = "1X";
defparam DCM_INST.CLKDV_DIVIDE = 2.000000;
defparam DCM_INST.CLKFX_DIVIDE = 25;
defparam DCM_INST.CLKFX_MULTIPLY = 24;
defparam DCM_INST.CLKIN_DIVIDE_BY_2 = "FALSE";
defparam DCM_INST.CLKIN_PERIOD = 40.000000;
defparam DCM_INST.CLKOUT_PHASE_SHIFT = "NONE";
defparam DCM_INST.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS";
defparam DCM_INST.DFS_FREQUENCY_MODE = "LOW";
defparam DCM_INST.DLL_FREQUENCY_MODE = "LOW";
defparam DCM_INST.DUTY_CYCLE_CORRECTION = "TRUE";
defparam DCM_INST.FACTORY_JF = 16'hC080;
defparam DCM_INST.PHASE_SHIFT = 0;
defparam DCM_INST.STARTUP_WAIT = "FALSE";
// synopsys translate_on
Question 2: What happens if I don't use //synopsys translate_off & on?
(I have deleted them and it doesn't seem to make a difference.)