Enviar señal desde una salida conectada a múltiples módulos

0

Hola, estoy aprendiendo a verilog y estoy tratando de encontrar una respuesta si tengo una salida de tipo reg en un módulo principal conectado a las entradas de múltiples módulos. ¿Cómo en verilog especificaría qué módulo quiero que reciba la señal del Reg reg salida para ir en función de alguna condición.

    module one(a,b)

        input a;
        output b;
        wire a,b;

        //do something
        assign b = some value;

    endmodule



    module two (a,b)

        input a;
        output b;
        wire a,b;

        //do something
        assign b = some value;


    endmodule



    module main(c)

        output c;
        input d;

        reg c;
        reg d;

        one mod1 (.a(c), .b(d));
        two mod2 (.a(c), .b(d));

            always(sens list)
            begin

                if(condition)
                    //send reg value to mod1;
                else
                    //send reg value to mod2;

            end

    endmodule

Pensaría que la salida del módulo principal AND'ed con una señal específica para ese módulo a la que quiero enviarlo se basa en alguna condición, pero no estoy seguro de cómo traducir eso a verilog. Gracias!

    
pregunta DSP_Student

1 respuesta

1

Supongo que tiene sus pines de entrada y salida en el módulo principal intercambiados. También presumo que el módulo principal debería tener tanto c como d en la definición. Supongo que está preguntando cómo asignar las salidas de los módulos a la salida d del módulo principal. Esta es la forma más sencilla de implementar eso:

wire c;
wire d1;
wire d2;
reg d;

reg select;

one mod1 (.a(c), .b(d1));
two mod2 (.a(c), .b(d2));

always @(*) begin
    if (select) begin
        d <= d1;
    end else begin
        d <= d2;
    end
end

Cambie la instrucción siempre a una instrucción siempre sincronizada si desea registrar la salida.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas