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
  1. AZe kan niet worden gesynthetiseerd en geeft een foutmelding
  2. BEr ontstaan 256 onafhankelijke optellers
  3. 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.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Hardwarebeschrijvingstalen en verificatie

  1. Welke uitspraak is juist bij vergelijking in een combinatorische schakeling van een lange keten if en else if met een case-beschrijving waarvan de voorwaarden elkaar niet overlappen?
  2. Welke uitspraak over het verschil tussen de gelijkheidsoperatoren '==' en '===' in Verilog is juist?
  3. Welke uitspraak over het belangrijkste verschil tussen een beschrijving in een HDL zoals Verilog en een softwareprogramma in bijvoorbeeld C is juist?
  4. Welke uitspraak over het doel van het gebruik van een module in Verilog is juist?
  5. Welke uitspraak over het verschil tussen het wire-type en het reg-type in Verilog is juist?

Vergelijkingen bij dit onderwerp