Hardwarebeschrijvingstalen en verificatie
Wat voor schakeling ontstaat als de bovenstaande beschrijving, die het aantal enen in de 8-bits d telt, logisch wordt gesynthetiseerd?
always @(*) begin
count = 0;
for (i = 0; i < 8; i = i + 1)
count = count + d[i];
end
- AEen sequentiële schakeling die in 8 klokken bit voor bit telt
- BEen combinatorische schakeling waarin de lus voor 8 keer is uitgerold en optelschakelingen naast elkaar staan
- CEen foutmelding, want een for-lus is niet te synthetiseren
Antwoord en toelichting tonen
Antwoord: B. Een combinatorische schakeling waarin de lus voor 8 keer is uitgerold en optelschakelingen naast elkaar staan
Een for-lus in HDL gebruikt niet zoals in software dezelfde schakeling herhaald, maar wordt door logische synthese uitgerold tot het aantal schakelingen dat overeenkomt met het aantal herhalingen. In dit voorbeeld ontstaat een combinatorische schakeling waarin 8 optelschakelingen naast elkaar staan, en alles wordt binnen één klok berekend. Bij veel herhalingen worden de schakeling groot en de vertraging lang, dus daar moet op worden gelet. Wil men met een kleine schakeling over langere tijd rekenen, dan schrijft men het als toestandsmachine die op de klok werkt.
Verder: nog 9 vragen over Hardwarebeschrijvingstalen en verificatie