Usando la sintaxis if / else para asignar sentencias

3

Tengo un wire al que asigno una expresión compleja del lado derecho con muchas operaciones a nivel de bits. Esta expresión del lado derecho se está volviendo rápidamente larga y difícil de mantener.

¿Hay alguna manera de reemplazar las operaciones bitwise por if/else o case para ayudar a mejorar la legibilidad y el mantenimiento?

    
pregunta Randomblue

1 respuesta

4

Claro que puedes, solo usa la construcción always @(*) (necesitas hacer que sea un reg ). También puedes manejar inout ports fácilmente.

reg res;
assign inout_port = dir_out? res: 1'bz;
always @(*) begin
    if (x == 42 && y != z)
        res = 10;
    else
        res = y * 12;
end
    
respondido por el avakar

Lea otras preguntas en las etiquetas