Ich möchte einen Halbaddierer mit FPGA implementieren. Dafür muss ich CLB entwerfen, genauer gesagt LUT für Halbaddierer. Ich weiß, LUT gibt nur einen Ausgang. Aber für einen Halbaddierer erhalten wir zwei Ausgänge. Einer für Sum und der andere für Carry.
Wie kann ich CLB für Halbaddierer entwerfen?
Wie kann ich zwei Ausgaben von LUT erhalten? Was mache ich falsch?
Aus der Studie habe ich über FPGA verstanden, dass dieses Bild einen Baustein von FPGA darstellt, der CLB ist. CLB besteht aus LUT, D-Flipflop und MUX.
LUT wird verwendet, um jede Art von Logikgattern zu konfigurieren. UND, ODER, NICHT oder jedes andere komplexe Logikgatter. Durch die Verwendung des Programms speichern wir die Ausgabe der Wahrheitstabelle für beispielsweise ein UND-Gatter in LUT. Und während wir dem FPGA Eingaben geben, durchläuft es die LUT über die Adressleiste und greift auf eine bestimmte Speicheradresse in der LUT zu. Und dann geht die Ausgabe der LUT durch zwei Pfade. Hier müssen wir wählen, ob wir unsere Ausgabe über eine kombinatorische Schaltung oder eine sequentielle Schaltung wünschen. Wir verwenden MUX für diesen Auswahlzweck. 0 für Kombischaltung und 1 für Folgeschaltung.
Habe ich richtig verstanden, was ich bisher verstanden habe?
Wann müssen wir eine sequentielle Schaltung und eine kombinatorische Schaltung wählen?
Sie haben ein Zynq-7020-Gerät, das einen Artix-7-FPGA-Chip enthält. Der CLB für dieses FPGA wird hier beschrieben . Es ist viel komplexer, als Sie es sich vorgestellt haben. Der CLB enthält zwei Slices, und jedes Slice hat 4 LUTs und 8 Speicherelemente (Flip-Flops oder Latches).
Die Scheibe sieht in etwa so aus
Außerdem hat jede LUT zwei Ausgänge, O5 und O6. O5 ist mit einer "Übertragskette" verbunden, die eine sehr kurze Verbindung zu einer benachbarten Nachschlagetabelle, einem Slice oder CLB bereitstellt. Dies ist speziell als Übertragsausgang eines Addierers oder Zählers ausgelegt.
Wie von Chris in den Kommentaren erwähnt, erzielen Sie mit modernen Synthesewerkzeugen (dh Werkzeugen, die in den letzten 20 Jahren entwickelt wurden) normalerweise bessere Ergebnisse, anstatt zu versuchen, all diese Komplexität selbst zu bewältigen, indem Sie einfach in Ihr Verilog schreiben, als zu versuchen, es zu assign X = A + B;
konfigurieren den CLB selbst.
Das Photon
Chris Stratton
FC Akhi
Mitu Raj