Pines de entrada en el módulo superior desconectados

3

Tengo un problema al conectar diferentes módulos en un módulo superior. Quiero hacer un PWM muy simple usando un contador y un comparador.

Contador:

module          counter
                #(parameter N = 6)
                (
                input wire clk,
                input wire enable,
                output wire [N-1:0] q
                );
reg             [N-1:0] r_reg=0, r_next=0;


always @(posedge clk) begin
    r_reg <= r_next;
end

always @(*) begin
    if (enable)
        r_next = r_reg +1;
    else
        r_next = r_reg;
end 

assign q = r_reg;

endmodule

comparador:

module          pwm
                #(parameter N = 6)
                (
                input wire [N-1:0] cin,
                output wire pwmsig
                );

reg             [N-1:0] threshold;
reg             d = 0;

initial         threshold = 6'b011111;

always @(*) begin
    if (threshold > cin)
        d = 1'b1;
    else
        d = 1'b0;
end

assign pwmsig = ~d;

endmodule

Los módulos funcionan bien y si pongo todo en un módulo, funciona según lo previsto. Pero si intento conectarlos en un módulo superior:

    module          top
                    #(parameter N=6)
                    (
                    input wire clk, enable,
                    output wire pwmled
                    );

    wire            [N-1:0] connection;

    counter         cnt1(
                    .clk(clk),
                    .enable(enable),
                    .q(connection)
                    );

    pwm             pwm1(
                    .cin(connection),
                    .pwmsig(pwmled)
                    );      
endmodule

Recibo un mensaje de error:

  

ERROR - El puerto 'clk' está desconectado.   ERROR: el puerto 'habilitar' no está conectado.

La simulación RTL funciona bien (solo estoy incluyendo el módulo superior en mi banco de pruebas). Simplemente no me deja conectar 'clk' y 'habilitar' a los pines reales.

Estoy usando Lattice Diamond 3.1.

Editar: recibo las siguientes advertencias en el informe del mapa:

ADVERTENCIA: mapa: falta el búfer de IO para el puerto de nivel superior ena ... la lógica será      descartado. ADVERTENCIA: mapa: falta el búfer IO para el puerto de nivel superior clk ... la lógica será      descartado.

Ejecuté el diseño a través de Quartus II y obtuve resultados de trabajo ... ¿Ideas en las que me estoy equivocando con Diamond?

    
pregunta user43321

2 respuestas

3

Me encontré con un problema similar. Mi problema era que había desconectado las salidas del submódulo del módulo principal durante la depuración. Cuando el optimizador ve que las salidas no están conectadas, asume que el módulo no es necesario, por lo que lo elimina para ahorrar espacio. Como resultado, las entradas se dejan flotando; esto causará los errores que estás viendo.

Si desea desconectar el módulo en algún momento, asigne una de las salidas del módulo a una carga ficticia (como un LED de depuración) y estará bien.

    
respondido por el Adam
0

También tuve este problema con la herramienta de síntesis Synplify pro. Resultó ser que había agregado un espacio en el nombre del puerto de la entidad antes de la pestaña.

    
respondido por el Earl

Lea otras preguntas en las etiquetas