Verilog: Módulo Geneator de reloj lento (1Hz de 50Mhz)

1

Escribí el módulo generador de reloj, no sé si es verdad pero el problema está en mi módulo de registro. El error es:

ERROR: HDLCompilers: 246 - "UpDownCounter.v" línea 74 La referencia al registro escalar 'clk_1Hz' no es un valor de red legal

ERROR: HDLCompilers: 102 - "UpDownCounter.v" línea 74 La conexión al puerto de salida 'clk_1Hz' debe ser un valor neto

1 HZ CLOCK GENERATOR

module slowClock(clk, reset, clk_1Hz);
input clk, reset;
output clk_1Hz;

reg clk_1Hz = 1'b0;
reg [27:0] counter;

always@(posedge reset or posedge clk)
begin
    if (reset == 1'b1)
        begin
            clk_1Hz <= 0;
            counter <= 0;
        end
    else
        begin
            counter <= counter + 1;
            if ( counter == 25_000_000)
                begin
                    counter <= 0;
                    clk_1Hz <= ~clk_1Hz;
                end
        end
end
endmodule   

Y aquí mi módulo Reg 4 bit

module Reg4(I, Q, clk, reset);
input clk, reset;
input [3:0] I;
output [3:0] Q;
reg [3:0] Q;


reg clk_1Hz = 1'b0;
slowClock clock_generator(clk, reset, clk_1Hz);

always@(posedge clk_1Hz) begin      
    if (reset == 1)
        Q <= 4'b0000;   
    else
        Q <= I;

end
endmodule

¿Puedes ver mi problema? :(

    
pregunta funky-nd

2 respuestas

1

En el módulo Reg4 , cambie:

reg clk_1Hz = 1'b0;

a:

wire clk_1Hz;
    
respondido por el toolic
1

En el código de 1Hz no le has asignado ningún valor a clk_1hz. Por lo tanto, no se le asignará ningún valor. Solo incluye asignar clk_1hz = contador [24]; fuera del bloque siempre.

    
respondido por el Bhumanyoo Varshney

Lea otras preguntas en las etiquetas