pregunta de sintaxis de Verilog

2

Algo como esto:

a = b? c: d; haría a = c, si b = 1, de lo contrario a se haría igual a d;

Pero, ¿qué haría hacer lo mismo en una matriz? Así:

asigna a = (| b [10: 8])? 8'hff: b [7: 0]; // para limitar el valor máximo a 255 ¿Comprueba cada uno de los 3 bits, 8, 9 y amp; 10?

    
pregunta cheeky

1 respuesta

6
  

a = ( | b[10:8] ) ? 8'hff : b[7:0];

Cuando | se usa como prefijo, es un operador de reducción . Eso significa que opera en todos los bits del vector que lo sigue. Entonces, lo que está sucediendo aquí es que los bits del vector b [10: 8] se están combinando para obtener un resultado de un solo bit.

Ese resultado se usa para elegir si se asigna la constante 8'hFF o los 8 bits inferiores de b a a .

    
respondido por el The Photon

Lea otras preguntas en las etiquetas