Décrire la logique combinatoire
Utiliser assign et always @* pour produire une sortie qui dépend uniquement des entrées actuelles.
Ce qu'est un circuit combinatoire
Un circuit combinatoire ne garde pas d'état. Pour une combinaison d'entrées donnée, ses sorties ont toujours la même valeur, après le délai de propagation physique.
Un multiplexeur, un décodeur et une addition sont des exemples classiques. En Verilog, on peut les décrire avec une affectation continue ou un bloc procédural combinatoire.
L'affectation continue assign
assign convient bien à une expression courte. La cible est un réseau, généralement déclaré wire.
module alarm_logic (
input wire i_smoke,
input wire i_overtemp,
input wire i_service_mode,
output wire o_alarm
);
assign o_alarm = (i_smoke | i_overtemp) & ~i_service_mode;
endmoduleL'expression est active en permanence. Quand une entrée change, la simulation recalcule o_alarm.
Plusieurs affectations continues décrivent plusieurs chemins logiques en parallèle :