valor de la variable en Veriog no definido

-2

Estoy analizando un archivo verilog para siempre.

en esto, ¿cuál debería ser el valor de "en" en caso de que primero y luego en segundo?

always @(in1, in2, en) begin
    out = in2;
    if(en) begin

        out = in1; 

donde in1, in2 y en son tres entradas ya declaradas y out por salida.

¿será 0 en el primer caso y 1 en el segundo?

    
pregunta shailendra

2 respuestas

0

Los valores de registro no definidos generalmente comienzan en el valor especial "X", y los cables no conectados en "Z".

No puedo entender su pregunta, porque dice que "en" es una entrada ya definida y luego pregunta cuál debería ser su valor.

El fragmento de bloque que se muestra establecerá out en el valor de in1 si en no es cero. Si en es cero, entonces establecerá out en el valor de in2 .

    
respondido por el pjc50
0

No estoy seguro de lo que estás preguntando aquí, el título no parece coincidir con la pregunta.

Pero su ejemplo es el mismo equivalente a:

always @(in1, in2, en) begin
  if(en == 1'b1) begin
    out = in1; 
  end
  else begin
    out = in2;
  end
end

Espero que esto quede claro que, a menos que en es 1, se asignará el valor de in2.

Personalmente, cambiaría la lista de sensibilidad de @(in1, in2, en) a @* , esto evita que aparezcan simulaciones de simulación por señales faltantes.

    
respondido por el pre_randomize

Lea otras preguntas en las etiquetas