3 votos

Uso de la sintaxis if/else para las sentencias de asignación

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

¿Existe alguna forma de sustituir las operaciones bit a bit por if/else o case para ayudar a la legibilidad y a la mantenibilidad?

4voto

maxpower47 Puntos 176

Claro que puedes, sólo tienes que usar el always @(*) (es necesario que sea un reg ). Puede manejar inout puertos fácilmente también.

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X