Hardwarebeschreibungssprachen und Verifikation
Welche Wirkung hat die obige generate-Anweisung?
genvar i;
generate
for (i = 0; i < 4; i = i + 1) begin : g
fifo u_fifo (.clk(clk), .din(din[i]), .dout(dout[i]));
end
endgenerate
- AEin fifo wird in 4 Takten viermal wiederverwendet
- BNur in der Simulation wird das fifo viermal angezeigt
- CDas fifo-Modul wird viermal erzeugt, und jedes wird mit einem anderen Element von din und dout verbunden
Antwort und Erläuterung anzeigen
Antwort: C. Das fifo-Modul wird viermal erzeugt, und jedes wird mit einem anderen Element von din und dout verbunden
Ein for in einer generate-Anweisung entfaltet den Inhalt für jeden Wert von genvar und erzeugt so die Schaltungsbeschreibung wiederholt. In diesem Beispiel entstehen vier fifo-Instanzen von g[0].u_fifo bis g[3].u_fifo, die jeweils mit din[i] und dout[i] verbunden sind. Ändert man die Zahl der Kanäle oder Bits über parameter, ändert sich auch die Zahl der erzeugten Instanzen, sodass sich regelmäßig aufgebaute Schaltungen kurz beschreiben lassen.