Cuando se ejecutan simulaciones con el software ModelSim*-Intel FPGA Edition en la PI UniPHY DDR3 con el ejemplo testbench o el conjunto de archivos _name>_sim <IP, la simulación puede generar mensajes de tipo".
Nota: La frecuencia de entrada en la instancia del DLL <IP_name>_example_sim.e0.if0.dll0.dll_wys_m.inst ahora coincide con la frecuencia de reloj especificada.
Advertencia: Infracción de frecuencia de entrada en la instancia del DLL <IP_name>_example_sim.e0.if0.dll0.dll_wys_m.inst. El período de entrada especificado es de 2500 ps, pero real es de 3750 ps
y la simulación nunca completa la calibración.
Esto puede ocurrir con algunas combinaciones del editor de parámetros DDR3 UniPHY -> parámetros de configuración PHY para "Frecuencia de reloj de memoria" y "frecuencia de reloj de referencia PLL".
Es debido a un problema de rounding en el código fuente del reloj testbench DDR3 IP UniPHY.
La solución alternativa para el ejemplo de diseño testbench es la siguiente:
Verilog:
En el archivo <IP_name>_example_sim.v, para la instancia de pll_ref_clk de altera_avalon_clock_source, en la línea de código
CLOCK_RATE (x) donde x es un cambio de valor de frecuencia x para ser la frecuencia especificada como la configuración DE PHY DDR3 mega claras -> "frecuencia de reloj de referencia PLL"
VHDL:
- En el archivo submodules/altera_avalon_clock_source.vhd, cambie la línea:
genérico (CLOCK_RATE: entero:=10); -- tasa predeterminada de 10 MHz (100 ns)
Para:
genérico (CLOCK_RATE: real:=10.0); -- velocidad predeterminada 10 MHz (100 ns)
- En el archivo <IP_name>_example.vhd, cambie:
component altera_avalon_clock_source es
genérico (
CLOCK_RATE: positivo:= 10
);
puerto (
clk: fuera std_logic -- clk
);
componente final altera_avalon_clock_source;
Para:
component altera_avalon_clock_source es
genérico (
CLOCK_RATE: real:= 10.0
);
puerto (
clk: fuera std_logic -- clk
);
componente final altera_avalon_clock_source;
- En el archivo <IP_name>_example.vhd, cambie la frecuencia de entrada x al valor especificado en la configuración de PHY del editor de parámetros DDR3 -> "frecuencia de reloj de referencia PLL". Por ejemplo, si la frecuencia de entrada es de 100 MHz, ponga 100 para el valor de x.
Cambio
pll_ref_clk: component altera_avalon_clock_source
mapa genérico (
CLOCK_RATE = > x
)
mapa de puertos (
clk = > pll_ref_clk_clk_clk -- clk.clk
);
Para:
pll_ref_clk: component altera_avalon_clock_source
mapa genérico (
CLOCK_RATE = > "frecuencia de reloj de referencia PLL"
)
mapa de puertos (
clk = > pll_ref_clk_clk_clk -- clk.clk
);
Este problema se corrigió a partir de la versión 12.0 del software Quartus® II.