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
- ASie ist nicht synthetisierbar und führt zu einem Fehler
- BEs werden 256 unabhängige Addierer
- 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.