Hardwarebeschreibungssprachen und Verifikation

Wie wird die obige Beschreibung bei Logiksynthese für FPGAs im Allgemeinen behandelt?

reg [7:0] mem [0:255];
always @(posedge clk) begin
    if (we) mem[addr] <= din;
    dout <= mem[addr];
end
  1. ASie ist nicht synthetisierbar und führt zu einem Fehler
  2. BEs werden 256 unabhängige Addierer
  3. CSie wird als Speicher mit 256 Wörtern zu 8 Bit abgeleitet und dem im FPGA eingebauten Block-RAM zugewiesen
Antwort und Erläuterung anzeigen

Antwort: C. Sie wird als Speicher mit 256 Wörtern zu 8 Bit abgeleitet und dem im FPGA eingebauten Block-RAM zugewiesen

Wird ein reg-Array in der üblichen Form geschrieben, die taktsynchron schreibt und liest, erkennt (inferiert) das Logiksynthesewerkzeug es als Speicher und weist es dem Block-RAM des FPGAs oder einem Speicherbaustein des ASIC zu. Der Kniff zur Anpassung an Block-RAM ist, auch das Lesen taktsynchron zu machen; bei asynchronem Lesen kann es aus vielen Flipflops oder einem anderen Speichertyp aufgebaut werden.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Hardwarebeschreibungssprachen und Verifikation

  1. Welche Aussage zum Vergleich einer langen Kette aus if-else-if und einer case-Beschreibung mit sich nicht überlappenden Bedingungen in einer kombinatorischen Schaltung ist korrekt?
  2. Welche Aussage zum Unterschied zwischen den Gleichheitsoperatoren „==“ und „===“ in Verilog ist korrekt?
  3. Welche Aussage zum wesentlichen Unterschied zwischen einer in einer HDL wie Verilog geschriebenen Beschreibung und einem Softwareprogramm, etwa in C, ist korrekt?
  4. Was ist der Zweck von module in Verilog?
  5. Welche Aussage zum Unterschied zwischen den Typen wire und reg in Verilog ist korrekt?

Vergleiche zu diesem Thema