Las bibliotecas de Vivado no funcionan en simulación

0

Estoy tratando de usar algunas de las bibliotecas de vivado integradas para generar dos relojes. Nunca he usado ninguna de las funciones incorporadas antes.

wire clkfb;
wire clk_324p;
wire clk_324n;
wire clk_200p;
wire clk_200n;
MMCME2_BASE#
(
    .CLKFBOUT_MULT_F(52.0),
    .CLKIN1_PERIOD(10.0),

    .CLKOUT1_DIVIDE(16),
    .CLKOUT2_DIVIDE(26)
)
clkgen
(
    .CLKFBIN(clkfb),
    .CLKFBOUT(clkfb),

    .CLKIN1(clk_100),
    .PWRDWN(1'b0),
    .RST(1'b0),

    .CLK_OUT1(clk_200p),
    .CLK_OUT1B(clk_200n),
    .CLK_OUT2(clk_324p),
    .CLK_OUT2B(clk_324n)
);

wire sys_clk_p;
wire sys_clk_n;
wire clk_ref_p;
wire clk_ref_n;

BUFG sys_clkp_buf(.I(clk_324p), .O(sys_clk_p)); 
BUFG sys_clkn_buf(.I(clk_324n), .O(sys_clk_n)); 
BUFG ref_clkp_buf(.I(clk_200p), .O(ref_clk_p)); 
BUFG ref_clkn_buf(.I(clk_200n), .O(ref_clk_n)); 

Cuando intento ejecutar la simulación obtengo los errores ...

  

ERROR: [VRFC 10-426] no puede encontrar el puerto CLK_OUT2B en este módulo   [/home/chase/workspace/SVESample/src/top.v:53] ERROR: [VRFC 10-426]   no se puede encontrar el puerto CLK_OUT2 en este módulo   [/home/chase/workspace/SVESample/src/top.v:52] ERROR: [VRFC 10-426]   no se puede encontrar el puerto CLK_OUT1B en este módulo   [/home/chase/workspace/SVESample/src/top.v:51] ERROR: [VRFC 10-426]   no se puede encontrar el puerto CLK_OUT1 en este módulo   [/home/chase/workspace/SVESample/src/top.v:50] ERROR: [VRFC 10-2063]   Módulo no encontrado al procesar la instancia del módulo      [/wrk/2018.1/nightly/2018_04_04_2188600/data/verilog/src/unisims/MMCME2_BASE.v:111]   ERROR: [VRFC 10-2063] Módulo no encontrado al procesar el módulo   instancia [/home/chase/workspace/SVESample/src/top.v:61]   ERROR: [VRFC 10-2063] Módulo no encontrado al procesar el módulo   instancia [/home/chase/workspace/SVESample/src/top.v:110]   ERROR: [XSIM 43-3322] Elaboración estática del diseño Verilog de nivel superior   La (s) unidad (es) en el trabajo de la biblioteca falló.

Parece que el simulador no conoce las bibliotecas integradas. ¿Necesito incluirlos de alguna manera en el proyecto o algo? Pensé que podía usarlos directamente.

    
pregunta chasep255

1 respuesta

1

Probé tu código y, después de algunos problemas iniciales, obtuve diferentes errores. Lo más notable fue Module "<MMCME2_ADV> not found while processing module instance <mmcm_adv_1> " , que si abre el módulo MMCME2_BASE.v está dentro de él.

Entonces decidí trabajar muy meticulosamente, así que copié los puertos del código fuente de MMCME2_BASE.v Xilinx y conecté el módulo exactamente de esa manera. Eso lo hizo funcionar.

Comparé el código y encontré que los nombres de sus puertos son incorrectos:
CLK_OUT1 debe ser CLKOUT1
CLK_OUT1B debe ser CLKOUT1B
etc.

Esto funciona:

   .CLKFBOUT (clkfb), 
   .CLKFBOUTB(),
   .CLKOUT0  (),  
   .CLKOUT0B (), 
   .CLKOUT1  (clk_200p),  
   .CLKOUT1B (clk_200n), 
   .CLKOUT2  (clk_324p),  
   .CLKOUT2B (clk_324n), 
   .CLKOUT3  (),  
   .CLKOUT3B (), 
   .CLKOUT4  (),  
   .CLKOUT5  (),  
   .CLKOUT6  (),  
   .LOCKED   (),   
   .CLKFBIN  (clkfb),  
   .CLKIN1   (clk_100),   
   .PWRDWN   (1'b0),   
   .RST      (1'b0) 
    
respondido por el Oldfart

Lea otras preguntas en las etiquetas