¿Cuál es la diferencia entre reg y wire después de sintetizar?

6

Suponiendo que tengo estos dos códigos:

module wire_example( a, b, y);
  input a, b;
  output y;

  wire a, b, y;

  assign y = a & b;

endmodule

y el segundo es:

module reg_combo_example( a, b, y);
input a, b;
output y;

reg   y;
wire a, b;

always @ ( a or b)
begin   
  y = a & b;
end

endmodule

mi pregunta es cuál es la diferencia en la lista de la red, ambos tendrán una puerta, pero el módulo con reg y tendrá un flip flop o un pestillo para retener los datos mientras que wire y no ¿Tienes algún pestillo?

    
pregunta 0x90

2 respuestas

8

Ninguno de sus ejemplos contendrá ningún cierre o flip-flops. El bloque always en su segundo ejemplo es combinacional, no secuencial (si fuera a sintetizar un pestillo, ¿qué reloj controlaría ese pestillo?). Debe usar un tipo reg para y simplemente porque aparece en el lado izquierdo de una instrucción de asignación dentro de un bloque always . Mucha gente considera que esto es una desventaja de Verilog, que es difícil de discutir. En VHDL, se usaría un tipo signal en lugar de wire y reg , eliminando la confusión.

    
respondido por el Thorn
1

cable: es una red que representa las conexiones entre componentes. Se utiliza para la asignación continua, es decir, el cable tiene su valor impulsado continuamente por las salidas de los dispositivos conectados a ellos. Reg: Se utiliza para la asignación de procedimientos. Reg no siempre significa un fracaso. reg puede mantener su valor hasta que se coloque otro valor en los registros.

    
respondido por el user102458

Lea otras preguntas en las etiquetas