Ich arbeite an einem Projekt, bei dem wir Signale von einem ADC mit einem Virtex-5-FPGA erfassen und die Abtastwerte auf einem 128K x 256 SRAM gespeichert werden, von wo aus die Datenabtastwerte von einem PC erfasst werden. Ich glaube, dass der Virtex-5 eine Option für ein BRAM bietet, und obwohl ich verstehe, dass die Tiefe bei weitem nicht dem entspricht, was das SRAM bietet, möchte ich die BRAM-Option im Virtex-5 als Puffer zum Halten nutzen Proben vorübergehend, bis sie vom PC erfasst werden. Wie schwierig wäre die Umsetzung?
Gute Nachrichten. Dies ist eine sehr häufige Anwendung für ADC-Schnittstellen. Es ist eigentlich sehr einfach, den Block-RAM in Xilinx-Geräten einzurichten.
Sie sollten den "Block Memory Generator" Coregen von Xilinx ausführen, der im Grunde ein Blackbox-VHDL-Modul generiert, das Sie in Ihrem VHDL-Modul der obersten Ebene instanziieren können. Im Coregen können Sie Ihren Block-RAM so anpassen, dass er genauso "aussieht" wie Ihr vorhandener externer SRAM. Der einzige Unterschied besteht darin, dass Sie Signale in Ihrem Top-Level-Modul mit dem neuen Black-Box-Modul verbinden, das Sie instanziiert haben, anstatt mit Ihren externen Pins.
Ich bin mir nicht sicher, ob Sie eine Datenbreite von 256 erreichen können (meinten Sie wirklich 8?), aber ich denke, dass Sie auf den meisten Virtex-5-Geräten eine Tiefe von 128 KB erreichen könnten. Das Datenblatt mit der Virtex-5-Ressourcentabelle (wie viel BRAM verfügbar ist) ist hier verfügbar .
Das Datenblatt, das den Block Memory Generator erklärt, finden Sie hier . Es kann die Einstellungen usw. erklären.
Um den Blockspeichergenerator in ISE 14 zu starten, klicken Sie mit der rechten Maustaste in die Projekthierarchie und wählen Sie "Neue Quelle". Wählen Sie dann als Quelltyp "IP (Core...)" und wählen Sie dann Block Memory Generator als IP-Typ, wie unten gezeigt.
Sobald sich der "Block Memory Generator" öffnet, wählen Sie die gewünschten Optionen aus und klicken Sie dann auf "Konfigurieren". Es fügt Ihrem Projekt den Black-Box-Kern hinzu. Sie müssen es in Ihrem Top-Level-Modul instanziieren. Normalerweise können Sie die „Instanziierungsvorlage“ anzeigen, indem Sie in der Projekthierarchie auf den Kern klicken und im Fenster „Prozesse“ die Option „HDL-Instanziierungsvorlage anzeigen“ auswählen.
Block-RAMs sind sehr einfach, um die Tools zum Produzieren von HDL-Code zu erhalten - Sie müssen sich nicht mit Coregen anlegen.
Die Vorteile ohne Coregen sind:
Lesen Sie in Ihrem Synthesizer-Handbuch nach, wie Sie Code schreiben, der Block-RAM ableitet, und es gibt einige Beispiele in den Antworten auf diese Frage
FarhadA