Hardwarebeschrijvingstalen en verificatie
Hoe wordt de bovenstaande beschrijving in het algemeen behandeld bij logische synthese voor FPGA's?
reg [7:0] mem [0:255];
always @(posedge clk) begin
if (we) mem[addr] <= din;
dout <= mem[addr];
end
- AZe kan niet worden gesynthetiseerd en geeft een foutmelding
- BEr ontstaan 256 onafhankelijke optellers
- CZe wordt afgeleid als een geheugen van 8 bits × 256 woorden en toegewezen aan het ingebouwde block RAM van de FPGA
Antwoord en toelichting tonen
Antwoord: C. Ze wordt afgeleid als een geheugen van 8 bits × 256 woorden en toegewezen aan het ingebouwde block RAM van de FPGA
Als een array van reg in een vaste vorm wordt geschreven waarbij synchroon met de klok wordt geschreven en gelezen, herkent (infereert) de synthesetool dit als geheugen en wijst het toe aan het block RAM van de FPGA of een geheugencomponent van de ASIC. De truc om aan block RAM te voldoen is ook het lezen met de klok te synchroniseren; bij een asynchrone leesbeschrijving kan het worden gemaakt van veel flipflops of een ander soort geheugen.
Verder: nog 9 vragen over Hardwarebeschrijvingstalen en verificatie