Ich bin neu im FPGA und nehme derzeit an der HDL-Klasse (insbesondere Verilog) teil. Ich habe ausreichende Kenntnisse im Bereich digitales Design wie kombinatorische und sequentielle Schaltkreise.

Ich möchte ein Projekt erstellen, das dem in diesem YouTube-Video gezeigten ähnelt.

Ich weiß auch, dass Xilinx ISE Logiksignale verarbeiten und Wellenformen simulieren kann. Verfügt es über zusätzliche Funktionen wie das Abrufen der Eingangssignale über USB, Kamera usw. und das Ausgeben auf Ihrem Computer.

Ist die Ausführung möglich? Dieses Projekt (wie eine Simulation in einem Computer) ohne Kauf einer tatsächlichen FPGA-Karte? Ich meine, kann ich dieses Projekt in meinem Computer erstellen, codieren und ausführen und einfach meine Kamera über USB anschließen und dann die eingehenden Videosignale sein lassen verarbeitet von HDL-Simulatoren wie Xilinx ISE usw. (ohne wirklich eine FPGA-Karte zu kaufen und Ihr Projekt dort zu synthetisieren, habe ich derzeit nicht das Budget, um eine zu haben)

( Was ich wirklich meine, ist, das HDLl-Design in reale Quellen, C-Code usw. zu integrieren.)

Kommentare

  • Ich habe ‚ Ich weiß nicht, ob Sie das mit dem Simulator von Xilinx ‚ tun können, aber so etwas wie Icarus Verilog lässt Ihre Simluationsschnittstelle zu C-Code, von dem Daten abgerufen werden können reale Quellen; Es ist jedoch wahrscheinlich, dass es um Größenordnungen langsamer als in Echtzeit ausgeführt wird, sodass die Verarbeitung einer Live-Videoquelle schwierig wäre.
  • Oh, das ist der Ausdruck, den ich finde und der mit Quellen der realen Welt verbunden ist
  • @vvavepacket stimme den Kommentaren / Posts zu, um dem Kommentator / Poster zu danken.
  • Das FPGA im Video sieht aus wie Altera DE2. ‚ liegt je nach Lizenz und Chip zwischen 200 und 600 USD. Es gibt ‚ Simulatoren bei csc.kth.se/~emille/niisim
  • Terasic DE0-nano liegt in der Größenordnung von 80 US-Dollar und kann an Kameras und LCDs angeschlossen werden. Tatsächlich haben sie Demos davon auf ihrer Website. Nicht mit ihnen verbunden, aber das DE0-nano ‚ hat ein hübsches kleines FPGA auf einem Board mit angemessenem Preis. Ich ‚ habe es immer gehasst, wie teuer die meisten Entwickler-Boards sind.

Antwort

Die Xilinx-Tools können meines Wissens nicht in Echtzeit geschaltet werden, ModelSim (von Actels Libero IDE verwendet) auch nicht.
Ich weiß nichts über Open-Source-Simulatoren, es gibt eher einige exotische Projekte da draußen, also ist es möglich, dass es etwas gibt, das dies tun könnte.

Dies kann jedoch eine Antwort sein, nach der Sie nicht gefragt haben (ich werde sie löschen, wenn sie nicht hilfreich ist), aber ich würde in Betracht ziehen, Ihr eigenes FPGA-Board zu bauen, um dies zu tun, oder zumindest Ich habe mein erstes FPGA-Board geätzt und obwohl es sehr einfach war (das Board nicht der Prozess ;-)), hat es mir ziemlich schnell eine Menge beigebracht.

Vorteile:

  • Günstig
  • Springen Sie ganz in die Tiefe und lernen Sie alles, was Sie über die Hardware-Überlegungen wissen müssen. Erzwingt, dass Sie zuerst die meisten Datenblätter lesen und Ihre eigenen schreiben Startercode, der meiner Meinung nach oft besser ist als der Plug-and-Play-Dev-Board-Lernansatz.
  • Setzen Sie nur das auf das Board, was Sie brauchen.
  • Bringen Sie Sie weiter in Ihre Richtung Ziel eines real funktionierenden Designs mit möglicherweise dem gleichen Aufwand / der gleichen Forschung wie das Herausfinden, wie alles in Echtzeit simuliert werden kann.

Nachteile:

  • Sie müssen noch einen Programmierer kaufen, obwohl günstige Versionen der Xilinx / Altera-Programmierer bei eBay erhältlich sind.
  • Wenn Sie sich nicht auf das Design und die Probleme der Leiterplatten- / Signalintegrität konzentrieren möchten, sind Sie möglicherweise nicht an einem Großteil des Wissens interessiert, das Sie auf diese Weise gewinnen können.

Ich verstehe, dass das Ätzen Ihres eigenen Boards wahrscheinlich unnötig ist. Ich habe es nur getan, weil ich die FPGAs dort hatte, ungeduldig war und nicht 2 Wochen auf das Eintreffen einer Leiterplatte warten wollte. Hier gibt es extrem günstige Angebote für 2-Layer-Boards, mit denen Sie Ihr Design zumindest ausführen können (möglicherweise mit niedrigeren Geschwindigkeiten als letztendlich gewünscht – normalerweise beträgt die Mindestanzahl an Layern für ein Hochgeschwindigkeits-FPGA-Design 4, dies sind jedoch viel teurer)

Wie auch immer, Spirit Circuits bietet einen völlig kostenlosen 2-Lagen-PCB-Deal mit „nackten Knochen“ an (einen pro Monat, ein Design, keine Maske oder Siebdruck), der sich für ein einmaliges Design als nützlich erweist
Für richtige 2- und 4-lagige billige Prototyp-Boards kosten ITead und Seed Studio nur 10 US-Dollar für 10 Boards (oder möglicherweise 5 zu diesem Preis).

Kommentare

  • sehr interessante Einstellung dazu! und ermutigend auch

Antwort

Das Standard Xilinx ISE Webpack (die kostenlose Version, die Sie können von xilinx.com herunterladen) enthält einen Simulator namens iSim. Es ist kein großartiger Simulator, aber es ist voll funktionsfähig und der Preis stimmt.

Obwohl ich die Altera-Tools nicht verwendet habe, würde es mich überraschen, wenn kein Simulator enthalten wäre.

Aber … Sie müssen wissen, was ein Simulator kann und was nicht Für den Anfang kann es kein FPGA simulieren, das mit voller Geschwindigkeit läuft. Tatsächlich sind sie ziemlich langsam. Abhängig von der Komplexität des zu simulierenden FPGA würde es mich nicht überraschen, wenn es 1 Minute dauert, um 1 ms „simuliert“ zu simulieren Zeit „. Wenn Sie eine Stunde“ simulierte Zeit „simulieren möchten, sind 1000 Stunden Echtzeit erforderlich.

Außerdem kann ein simuliertes FPGA nicht direkt mit Dingen wie Ihrem USB-Anschluss kommunizieren. Das simulierte FPGA kommuniziert mit einer „Testbench“. Die Testbench ist ein Teil des VHDL- oder Verilog-Codes, der die Eingaben des FPGA (oder Teile des FPGA) speist und die Ausgabe Ihres FPGA überprüft. In einer Testbench können Sie einige ziemlich komplexe Dinge tun Verwenden Sie beispielsweise Gleitkommazahlen, lesen und schreiben Sie Dateien und führen Sie eine Logik aus, die nicht synthetisiert werden kann.

Kommentare

  • A. ltera ‚ hat kostenlose Ausgaben von Quartus, die ModelSim enthalten. Die kostenlose Version von ModelSim begrenzt Ihre Simulationsgeschwindigkeit, und die kostenlose Version von Quartus begrenzt die Anzahl der für die Synthese verwendeten CPU-Kerne, ist aber ansonsten voll funktionsfähig.
  • Altera ModelSim unterstützt keine Co-Simulation von VHDL und Verilog im gleichen Design.

Antwort

Ich kenne keinen Simulator, der eine direkte Schnittstelle bietet zu Signalen, die an einem USB-Port (oder einer anderen Hardware) ankommen.

Zumindest theoretisch wäre es möglich, eine Software zu schreiben, die an einem Port ankommende Signale aufnimmt und diese in eine Testbench-Datei übersetzt Ein Simulator könnte dies verarbeiten. Leider kenne ich keine vorhandene Software, um dies zu tun, und das Schreiben selbst wäre definitiv nicht trivial.

Kommentare

  • dann ist der beste Weg, ein kostengünstiges Einstiegs-Fpga-Board für n00bs wie mich zu bekommen.
  • Sie müssen nicht ‚ tatsächlich ein Testbench-Datei, wenn Sie einen Simulator haben h unterstützt eine Schnittstelle zu benutzerdefiniertem Code wie einem VPI. Da der Simulator jedoch um Größenordnungen langsamer als in Echtzeit ausgeführt wird, ist es möglicherweise einfacher, erfasste Daten in einer Datei zu verarbeiten, die mit der Geschwindigkeit der Simulation gelesen werden kann.
  • @ChrisStratton Ich bin an der Idee interessiert, Daten in einer Datei zu erfassen. Irgendwelche Ressourcen dafür? Danke
  • Es hängt ganz von den Peripheriegeräten ab, die Sie als Datenquellen verwenden möchten.

Antwort

Sie müssen eine Co-Simulationsschnittstelle (DPI, VPI, VHPI, FLI) verwenden, mit der Sie Code schreiben können, der sich in den Simulator einhakt und so eine Brücke zwischen der in der Simulation ausgeführten RTL und der realen Hardware auf Ihrem Computer schlägt

Die wesentlichen Probleme, auf die Sie stoßen werden (abgesehen von schlecht dokumentierten Schnittstellen), sind Synchronisation und Timing. RTL, das in der Simulation ausgeführt wird, ist viel langsamer als echte Hardware – Sie müssen in der Lage sein, die Interaktionen mit der externen Schnittstelle zu durchlaufen, um die Simulationsgeschwindigkeit zu erreichen. Einige Hardware-Schnittstellen werden dies nicht mögen! Wenn Sie beispielsweise TCP verwenden, müssen Sie möglicherweise die Timer im Kernel-Stack verfälschen, um falsche Neuübertragungen usw. zu vermeiden.

Icarus unterstützt den VPI und ist kostenlos, sodass Sie experimentieren können, ohne Geld für Lizenzen auszugeben. Möglicherweise möchten Sie sich vorhandene Frameworks ansehen, die einen Teil des Co-Simulations-Schwerhebens ausführen und dem Simulator eine sauberere Abstraktion bieten. Ein solches Framework ist Cocotb , eine Open-Source-Bibliothek, die eine Python-Schnittstelle zum Simulator bereitstellt. ( Haftungsausschluss: Ich bin einer der Entwickler von cocotb.)

Ein Beispiel, das relevant sein könnte: Gestern habe ich eine RTL aktiviert, um auf Ping-Anfragen zu antworten, und eine Testbench erstellt Dadurch wird eine TUN-Schnittstelle geöffnet. Sie können die Schnittstelle dann mit dem Befehl ping anpingen. Die in der Simulation ausgeführte RTL empfängt den Ping und antwortet. Die gesamte Testbench besteht aus weniger als 50 Zeilen Python! Der Quellcode für dieses Beispiel befindet sich auf Github und läuft unter Icarus unter Linux.

Antwort

In den allermeisten Fällen bleibt alles, was Sie in der Simulation tun, in der Simulation. Sie können von dort aus nicht auf echte Hardware zugreifen – Sie müssen über ein Simulationsmodell der realen Hardware verfügen.

Wenn Sie jedoch bereit sind, einige Anstrengungen zu unternehmen, verfügen die meisten Simulatoren über eine Schnittstelle zu beliebigem Code. In Verilog ist es „eine ziemlich standardmäßige Schnittstelle, wie ich es verstehe, so dass die Verilog-Seite der Dinge zwischen Simulatoren portiert wird. In VHDL-Land gibt es eine Standardmethode, aber mindestens einer der großen Anbieter hat seine eigene Methode Tun Sie es!

Denken Sie auch daran, dass eine Schnittstelle in Echtzeit (dh mit der Geschwindigkeit, mit der das FPGA dies tun würde) sehr unwahrscheinlich ist – und der Rest Ihrer Simulation (HDL) nicht in Echtzeit ausgeführt wird -Zeit auch nicht.Wie in den Kommentaren erwähnt, ist eine simulierte Echtzeitverarbeitung von Videos auf diese Weise nicht möglich.

Persönlich hatte ich nie die Notwendigkeit, dies zu versuchen, ich finde, ich bin produktiver als Schreibmodelle von Die Hardware und die Ausführung in VHDL.

Aber übersehen Sie nicht die Vorteile der Simulation – es ist eine viel schnellere Möglichkeit, festzustellen, ob die Dinge funktionieren (Kompilierungen dauern Sekunden), als Bitstreams zu erstellen (Kompilierungen dauern) Dutzende von Minuten bis Stunden) und versuchen Sie es in Hardware.

Kommentare

  • Unwahr, siehe Kommentare zur Frage.
  • OK, ich hätte ‚ klarer sein sollen – ich beschränkte meine Antwort auf “ I ‚ Ich bin neu im FPGA “ -Ebene 🙂 Antwort aktualisiert

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.