HDL et vérification
Quel circuit obtient-on en synthétisant la description ci-dessus, qui compte les 1 dans d sur 8 bits ?
always @(*) begin
count = 0;
for (i = 0; i < 8; i = i + 1)
count = count + d[i];
end
- AUn circuit séquentiel comptant un bit par cycle sur 8 cycles d'horloge
- BUn circuit combinatoire où la boucle est déroulée en 8 itérations, avec des additionneurs alignés
- CUne erreur, car une boucle for n'est pas synthétisable
Afficher la réponse et l'explication
Réponse : B. Un circuit combinatoire où la boucle est déroulée en 8 itérations, avec des additionneurs alignés
Une boucle for en HDL ne réutilise pas un même circuit de façon répétée comme en logiciel : la synthèse logique la déroule en autant de circuits que d'itérations. Cet exemple donne un circuit combinatoire de 8 additionneurs alignés, qui calcule tout en un seul cycle d'horloge. Un grand nombre d'itérations agrandit le circuit et allonge le délai, ce qui demande de la vigilance. Pour calculer avec moins de circuit en prenant du temps, on l'écrit sous forme de machine d'états cadencée.