Wednesday 28 December 2016

Moving Average Vhdl Code

Ich habe eine Frage im Zusammenhang mit kontinuierlichen Mittelung von ADCs Wert. Der Ansatz, den ich verwendete, ist die kontinuierliche Mittelung von Beispiel 256 Proben. Der Adcaout-Wert (angezeigt im Code unten), den ich auf meiner GUI empfange, schritt langsam. Als Beispiel, wenn ich erwarte Wert 100mA, Meine GUI zeigt 4mA, 8mA, 15mA. Und dann endlich nach 2 Minuten bekomme ich einen stabilen 100mA Wert. Ich möchte sehen, die 100mA direkt auf meiner GUI von adcaout statt Inkrement Werte und Stabilisierung nach einiger Zeit. Eine andere Frage ist, dass, kann ich irgendwie machen diesen Prozess schnell, so dass ich nicht für 3 Minuten für den Empfang stabil 100 mA von adcaout warten müssen. Die Clock im digitalen Design unten ist 20 MHz. Die Uhr zum Empfangen der ADC-Werte auf der FPGA-Platine beträgt 15 KHz. - die adc. vhd-Datei ist unten: Ihr Code wird wie folgt geändert: Die endgültige Ausgabe, die ich auf meiner GUI sehe, ist slvvalue1 und slvvalue2 Wie über dieses: am Rücksetzen (oder zu jeder anderen Zeit, wenn Sie wollen), weisen Sie die Datain-Wert für alle Elemente in Ihrem Array. Dies sollte sofort den Durchschnitt auf den aktuellen Wert einstellen: Das folgende Beispiel zeigt den kompletten Code für einen gleitenden Durchschnittsrechner. Mein Vorschlag ist, dass Sie es studieren, bis Sie es verstehen. Dann versuchen Sie es in Ihrem Design verwenden. Schließlich, und nur nachdem Sie eine grundlegende Schaltung arbeiten, können Sie es ändern, um Ihre Design-Einschränkungen (Datenbreite, Anzahl der Proben, Bereich der Ganzzahlen, die Verwendung von signierten vs Integer etc.) Endlich, wenn Sie verwenden möchten Den obigen Code, um zwei separate Mittelwerte für zwei verschiedene Signale zu halten, einfach Instanziieren der Mittelung Einheit zweimal: Edit: Wie ich aus Ihren Kommentaren zu verstehen, müssen Sie möglicherweise eine zusätzliche Eingabe, um den Durchschnitt sofort auf den aktuellen Eingangswert. In diesem Fall können Sie eine Lasteingabe wie unten gezeigt: beantwortet Nov 26 13 bei 15: 45VGA-Interfacing und Control mit MENTOR GRAPHICS quotHDL DESIGNERquot Software und dem quotAltera DE1quot Development Board. (SEHEN SIE MEINE DEVOTED DE1 SEITE AM LINK BELOW) Die in diesem Tutorial verwendete Software heißt "HDL Designerquot" von Mentor Graphics, zusammen mit den verschiedenen Companion-Programmen wie quotModelSimquot und quotPrecision Synthesisquot. Nur um euch zu informieren, bevor wir weiter gehen. Ich werde nicht geben die volle VHDL-Source-Code-Dateien zum Download bereit. Wenn Sie neu in VHDL-Programmierung sind, empfehle ich, dass Sie meine quotVHDLquot-Seite als eine Einführung überprüfen. Allerdings, wenn Sie bereits Programmierung und verstehen VHDL zu einem gewissen Grad können Sie das Intro überspringen und weiter zu bewegen. - Companion Lehrbuch für dieses Projekt - Ein sehr empfehlenswertes Lehrbuch für dieses Projekt ist eines der beiden Bücher unten gezeigt: RAPID PROTOTYPING von DIGITAL SYSTEMSquot Diese bestimmten Lehrbücher enthalten einige große Informationen über VGA-Interfacing und es bietet einige der Basic VHDL-Code für die Schaffung eines VGA-Controller. Ich empfehle Ihnen, dass Sie eines dieser Bücher kaufen, um Ihr Verständnis zu verfestigen. Dieses Tutorial zeigt Ihnen, wie Sie das Altera DE1 Development Board programmieren, um die erforderlichen VGA-Steuer - und Datensignale für die Darstellung von 2D-Farbgrafiken auf einem VGA-Computer-Monitor zu erzeugen. Dies wiederum ermöglicht es Ihnen, eine grundlegende 2D PONG-Stil Video Game zu produzieren. Viele VHDL PONG Stil Spiele wurden online demonstriert. Wie diese unten. Dies ist ähnlich, wie Ihr endgültiges Projekt aussehen wird wie einmal abgeschlossen. Allerdings können Sie dem Spiel weitere Features hinzufügen, wenn Sie vor dem Ende des Semesters Zeit dafür haben. Zusätzliche Funktionen können hinzugefügt werden, um Ihr Spiel für diejenigen von Ihnen, die über die Gliederung dieses Tutorials gehen wollen. Features wie ein Score Board, Time Limit, Sound-Effekte oder sogar ein Joystick / Game Pad Control Interface für zwei Spieler. Dies ist definitiv gefördert, da es dazu beitragen, verfestigen Sie Ihr Verständnis der VHDL-Code. Dieses Tutorial verwendet eine Bildschirmauflösung von (640 x 480) mit einer 60Hz Bildwiederholfrequenz. Wenn Sie alles ausprobieren möchten und eine höhere Auflösung wie (800 x 600), (1024 x 768) oder sogar (1600 x 1200) verwenden möchten, dann tun dies auf jeden Fall. Sie würden definitiv oben für einige Hauptprämipunkte sein, wenn Sie sie erhalten können, um zu arbeiten. Im folgenden Link finden Sie eine Auflistung der verschiedenen VGA-Signalzeiten für unterschiedliche Auflösungseinstellungen. Dieses Tutorial kann einfach auf andere Entwicklungsboards und andere VHDL-Softwarepakete angewendet werden. Boards wie die Altera DE2, Altera UP1, UP2, CPLDT-2 und viele mehr. Sie können sogar einen universellen Programmierer verwenden, um Ihre eigene CPLD oder FPGA zu programmieren. Es gibt auch die Möglichkeit, einen JTAG-Interface-Programmierer zu benutzen und ihn selbst mit einem JTAG-kompatiblen FPGA zu verdrahten. Dieses erlaubt Ihnen, einen 15.00 JTAG Programmierer wie das Altera quotUSB-BLASTERquot zu verwenden, um Ihr eigenes quotOff-das-Shelfquot CPLD oder FPGA zu programmieren. Solange die FPGA, die Sie kaufen, eine JTAG-Schnittstelle unterstützt, dann können Sie es selbst verkabeln und einfach Programmieren Sie es mit der gleichen Logik-Software, die Sie mit Ihrer DE1-Entwicklungsplatine verwenden. Für eine detaillierte Erklärung über die JTAG-Schnittstelle, Check out my quotJTAG Interfacequot-Seite und Instructional Video auf dem Link unten: Ich habe eine Reihe von Instructional Videos für dieses Projekt für Ihre Überprüfung vorbereitet. Die Videos werden die Konzepte für Sie zu kombinieren 10 separate VHDL-Blöcke in HDL-Designer, um ein PONG Style Video-Spiel auf Ihrem Altera DE1 Development Board zu produzieren. Sie werden Ihren DE1 an einen VGA-Monitor mit dem Onboard-DB-15-VGA-Anschluss anschließen. Nun, da dies ein beliebtes TERM-Projekt für viele Hochschulen und Universitäten ist. Ich werde nicht zur Verfügung stellen VHDL Source Code-Dateien für Sie nur herunterladen, kopieren und Einfügen in Ihr Projekt und dann senden Sie es an Ihren Professor und erhalten Sie eine kostenlose Fahrt für dieses Projekt. Ich habe verschiedene Instructionalvideos, die über die grundlegenden Konzepte des Projektes gehen werden und ich habe auch einige allgemeine VHDL quotARCHITECTUREquot und quotPROCESSquot Beispiele für jeden der 10 VHDL Blöcke. Es liegt an Ihnen, den Beispielcode auf Ihr eigenes Projekt anzuwenden. Ich glaube, es ist wichtig, dass Sie schreiben Ihren eigenen Code, Simulationen laufen und sehen, wie die Dinge funktionieren durch Versuch und Fehler. Denk dran. Du kannst das. Versuchen Sie, schreiben einige VHDL-Code selbst, führen Sie MultiSim-Simulationen und Sie werden sehen, wie schnell Sie lernen können. Also wieder, ich werde nicht geben die VHDL-Source-Code-Dateien zum Download bereit. Wenn Sie diese Webseite und meine Instruktionsvideos als Leitfaden verwenden, werden Sie es gut tun. ) Du kannst das. Nun, wenn ich die 100s von E-Mails, die Sie alle senden Sie mir, bitten um Hilfe mit Ihrem VHDL-Code zu beantworten, wäre ich nicht in der Lage, die Zeit zu arbeiten oder sogar essen zu finden. ) Also bitte registrieren, und fragen Sie alle Ihre VHDL Fragen zum edaboard CPLD / FPGA Digital Design Forum. Wenn Sie Hilfe mit Ihrem VHDL-Code oder anderen Engineering-bezogenen Projekten benötigen. Das edaboard forum ist der ort zu gehen. Sie können mit anderen Fachleuten in der Branche zu sprechen, um zu helfen, zu beheben und lösen Sie Ihre VHDL-Codierung Probleme. Ihr Forum web-basierte GUI ist mit sowohl quotCODEquot und quotCOMMENTquot Formatierung ausgestattet. Dies macht Ihre Nachricht Posts sehr klar und organisiert. Nachdem Ihre Nachricht Beiträge deutlich auf diese Weise formatiert, können andere Ihnen helfen, effizienter und in einer fristgerechten Weise. Dies ist eine fantastische Ressource und ich empfehle Ihnen, sich anzuschließen. Die VGA-Schnittstelle Die VGA-Schnittstelle wurde von IBM im Jahr 1987 mit Signalanforderungen zum Anzeigen von Farbbildern auf einem Cathode-Ray-Tube-Computermonitor oder (CRT) kurz beschrieben. Als LCD-Monitore später freigegeben wurden, nahmen sie den gleichen VGA-Signalstandard an, um mit der gegenwärtigen Computerinfrastruktur heraus in der Welt zu funktionieren. CRT - Kathodenstrahlröhre CRT amp LCD Unterschiede CRT amp LCD - Cutaway Diagramm LCD-Monitore haben einen internen Übersetzerstromkreis, der VGA-Signale in die erforderliche Liquid Crystal Displaysteuerung umwandelt Signale. Dies geschieht automatisch innerhalb der LCD-Monitore Schaltungen und es funktioniert uns alle gleich. Also müssen wir uns nicht darum kümmern. Wäre gut zu gehen Die VGA-Schnittstelle - Signalanforderungen Grundsätzlich gibt es 5 separate Signalanforderungen für die VGA-Schnittstelle zu funktionieren. Dies sind H-SYNC-Amp-V-SYNC-Auflösungssteuersignale und die ROTE. GRÜNE und BLAUE Farbdisplaysignale. Die Signale von H-SYNC amp V-SYNC, die Sie an den Monitor senden, bestimmen, welche Auflösung Sie verwenden möchten. Abhängig vom Monitor kann es nur eine bestimmte Auflösung unterstützen, wo andere Monitore mehrere unterstützen können. Der Monitor speichert das Referenzsignal Muster für alle verfügbaren Auflösungseinstellungen innerhalb eines EEPROM-Speicherchips, der Teil der internen Schaltkreise der Monitore ist. Jede Auflösungseinstellung erfordert eine spezifische H-SYNC-Amp-V-SYNC-Frequenz Pulsbreite und Duty Cycle. Diese Signalanforderungen wurden von IBM standardisiert. Wir verwenden die älteste und kleinste Bildschirmauflösung Größe, wie die meisten VGA-Monitore wird es unterstützen. Das ist die VGA 640 x 480 Auflösung mit einer 60Hz Bildwiederholfrequenz. Die ROTEN, GRÜNEN und BLAUEN Farbsteuersignalleitungen verwenden jeweils analoge Spannungspegel zwischen (0,0 bis 0,7 Volt DC), um die Menge der für jedes Pixel verwendeten Farbintensität zu bestimmen. Wie Sie wissen, bestehen alle Farben aus Mischung verschiedener Mengen von ROT, GRÜN und BLAU zusammen. H-SYNC-Verstärker V-SYNC Impulssignale Versuchen Sie die H-SYNC - und V-SYNC-Signale wie Custom quotCOUNTERSquot, die ständig laufen und bis zu ihrem MAXIMUM-deklarierten Wert zählen, auf Null zurücksetzen und dann wieder hochzählen. Jedes Mal, wenn der H-SYNC-Zähler auf Null zurückgesetzt wird, wird der V-SYNC-Zähler nur um 1 erhöht. Das nachstehend gezeigte animierte GIF-Bild zeigt, wie die V-SYNC-Signale des H-SYNC zusammen verwendet werden, um den Bildschirm-Refresh-Zyklus zu erzeugen. Wenn Sie diese Signale wie (X amp Y) Zähler betrachten, zählen sie im Wesentlichen durch jedes Pixel auf dem Schirm von der oberen linken Ecke ganz unten in der Reihenfolge zur unteren rechten Ecke. Dieser Vorgang wiederholt sich 60 Mal pro Sekunde, aufgrund der Tatsache, dass wir eine 60 Hz Bildwiederholrate verwenden. Die H-SYNC - und V-SYNC-Signalmuster, die wir beim Zusammenarbeiten an den VGA-Monitor senden, erzeugen den Zig-Zag-Scaneffekt wie unten dargestellt. Nun, abhängig von der Frequenz, Pulsbreite und Duty Cycle dieser Signalmuster. Können wir unterschiedliche Auflösungseinstellungen für den anzuzeigenden Monitor erstellen. So haben wir ein spezielles H-SYNC - und V-SYNC-Signal für die Erstellung des Zig-Zag-Zyklus einer Bildschirmauflösung von 640 x 480, und wir haben ein weiteres H-SYNC - und V-SYNC-Signal für einen 1600 X 1200-Bildschirm Auflösung, und vieles mehr. Das Bild oben ist eigentlich zeigen, was heißt Interlaced Frames. Sie müssen nicht wirklich um das jetzt jetzt sorgen, da wir dieses spezielle Format nicht verwenden. Das animierte Bild wird hauptsächlich verwendet, um Ihnen das grundlegende Konzept eines Bildschirms "Refresh Cyclequot" zu zeigen. Die Tatsache, dass wir eine Auflösung von (640 x 480) verwenden, bedeutet dies, dass wir 640 Pixel haben, die von der linken Seite unseres Bildschirms zur rechten Seite laufen. Dies bedeutet auch, dass wir 480 Pixel, die von der Oberseite des Bildschirms auf der Unterseite laufen. Mit anderen Worten, was wir hier haben, ist eine 640 x 480 Pixel Matrix. Sie können die obere linke Ecke des Bildschirms als Ausgangspunkt für Ihre H-SYNC und V-SYNC Zähler ab Zero betrachten. Der H-SYNC-Zähler schreitet dann durch alle 640 Pixel auf der ersten horizontalen Reihe von links nach rechts fort. Sobald es das Ende der Zeile erreicht, setzt es sich dann auf den Anfang zurück. Dieser Vorgang wiederholt sich jedoch, bis der V-SYNC-Zähler auf 479 ankommt, was ihn bis zur letzten Zeile am unteren Rand der Reihe bringt der Bildschirm. Wenn der H-SYNC-Zähler das letzte Pixel auf der rechten unteren Ecke des Bildschirms (639) erreicht, werden die Zähler H-SYNC und V-SYNC auf Null zurückgesetzt. Das bringt uns zurück zur oberen linken Ecke Pixel und die gesamte Zählung Prozess beginnt von vorn. Ein einzelner Durchlauf über dem gesamten Schirm wird ein quotScreen Refresh Cyclequot genannt und dieses wird 60mal pro Sekunde wiederholt, um den Schirm zu erneuern und jedes Pixel für eine bestimmte Farbe zu aktualisieren. Und wiederum erzeugt dies ein Bild auf dem Bildschirm. Überprüfen Sie die animierte GIF-Bild oben, um ein besseres Verständnis dieser quotScreen Refreshquot Prozess in Aktion zu erhalten. - Übersicht unserer Block 10 VHDL Schaltung - - VHDL BLOCKS - Architektur Beispiele - Im Folgenden werde ich einige VHDL quotArchitecturequot und quotPROCESSquot Beispiele zur Verfügung gestellt haben ähnlich, was Sie für jede der 10 VHDL-Blöcke müssten ihre spezifische Funktion zu erfüllen. Es liegt an Ihnen, herauszufinden, wie Sie den Code auf Ihr eigenes Projekt anwenden und die Signale erzeugen, die Sie benötigen. VHDL BLOCK 1 - Der Clock-Teiler Der Clock-Teiler sollte ein Schnappen für Sie herausfinden, so dass keine wirkliche Notwendigkeit für ein Beispiel. Für unser VGA-Projekt benötigen wir ein CLOCK-Signal von 25.175 MHz. 25 MHz in unserem Fall ist in Ordnung. Wir erreichen dies durch die Teilung der DE1 Boards 50MHz Taktsignal in der Hälfte. Für MultiSim-Simulationen: Für eine 50MHz CLOCK-Einstellung eine Taktperiode von 20ns verwenden. Für eine 25-MHz-CLOCK-Einstellung wird eine Taktperiode von 40 ns verwendet. VHDL BLOCK 2 amp 3 - Ein typisches MOD-Counter-Beispiel (My-MOD25-Zähler mit einer Power-ON-Reset-Leitung und einer 25-MHz-Uhr) Einzelmodulzähler Beispiel Wenn Sie Schwierigkeiten haben, die VGA-Controller-Impulse ordnungsgemäß zu funktionieren, Der MOD-Zähler. Versuchen Sie diese Zählerwerte unten und führen Sie einige Simulationen. MOD-800 Counts 0-793 MOD-525 Counts 0-522 VHDL BLOCK 4 Ampere 5 - Die Horizontal-Verstärker Vertikal Decoder State Machines (MOMENTARY IMPULSE FÜR Ausgangsleitungen) Beachten Sie, dass diese besondere VHDL Zustandsmaschine wird nur tastend Logik High erstellen Impulse an den Ausgängen. Die Ausgangs-STATE-Zeilen bleiben für nur 1 Taktimpuls auf der Grundlage der für diesen bestimmten VHDL-Block verwendeten Eingangs-CLK-Quelle HIGH. (Die STATE-Ausgangssignale müssen in einen Latchquot-Schaltkreis eingespeist werden, der für eine beliebige Zeitspanne auf HIGH gehalten wird.) Einzelzustandsmaschinenbeispiel Nachstehend sind einige Beispiele für verschiedene Zählerzustandsimpulse aufgeführt. Achten Sie in dem oben dargestellten Bildschirm Capture auf die Zeitdifferenz zwischen den beiden Markierungen und darauf, wie sie sich auf die anderen dargestellten Staaten beziehen. Die Horizontal-Verstärker Vertikal quotSYNCquot amp quotDISPLAYTIMEquot Signale (-Latchschaltung STATE MACHINES GEZEIGT WIE UNTEN) - Horizontale quotSYNCquot Signaltiming Waveforms - In den quotSIGNAL TIMINGquot Diagramme, die folgen, zeigen sie die Horizontale amp Vertikale quotSYNCquot Impulse und auch die horizontale und vertikale quotDISLAYTIMEquot Impulse. Diese Wellenformmuster treten in einer sich wiederholenden Folge auf und ich habe die Anfangs - und Endpunkte dieses sich wiederholenden Musters angegeben. Ich habe auch die H-DECODER - und V-DECODER-Momentaty-HOCHPULS-Zustände in Bezug auf das fragliche Wellenformmuster enthalten. - Horizontale quotDISPLAYTIMEquot Signalverläufen - - Vertikale quotSYNCquot Signalverläufen - - Vertikale quotDISPLAYTIMEquot Signalverläufen - (-Latchschaltung STATE MACHINES) Der VHDL-Code unten ist ein Beispiel für eine Latch-Schaltung, die ein Ausgangssignal wird aktiviert, entweder hoch oder niedrig für jede Länge zu bleiben Der Zeit, bis die betreffende Ausgabe zugewiesen ist, um ihren Zustand zu ändern (LATCH RESET). Eingangsimpulse werden als Trigger verwendet, um Änderungen zu initiieren. Dies ist im Wesentlichen die Art der Schaltung, die Sie für jedes der Signale implementieren müssen, wie in den obigen Waveform-Diagrammen gezeigt. Objekte auf dem Bildschirm anzeigen Jetzt wird es hier etwas komplizierter. Ich werde ein paar quotDISPLAY PROCESSquot Beispiele, um Sie auf dem Weg zu führen, aber es liegt an Ihnen, herauszufinden, wie die Bewegungs-Steuerelemente zu Ihren Objekten hinzuzufügen. ) Der beste Weg, um zu verstehen, wie grundlegende farbige Objekte auf dem Bildschirm angezeigt werden, ist wie folgt: Versuchen Sie, die Horz Blick. Und Vert. MOD-Zähler, eher wie ein (X amp Y) 2D-Koordinatensystem auf einer Karte. So stellen Sie sich unseren Horz vor. Und Vert. MOD-Zähler wie die X-Amp-Y-Positionskoordinaten für eine Taschenlampe, die den Bildschirm scannt. Diese Taschenlampe prüft Etiketten auf jedem Pixel, den es stößt. Die Etiketten geben an, welche Farbe das jeweilige Pixel anzeigen soll. Rot, Grün oder Blau oder eine beliebige Kombination der drei. Die Art und Weise, wie wir dies in VHDL tun, besteht darin, einen zusätzlichen Satz von stdlogicvektoren oder (COUNTERS) zu verwenden, genau wie der, der verwendet wird, um die Signale H-SYNC und V-SYNC zu erzeugen. Die Zählerpaare werden die (X amp Y) Referenzkoordinaten für jedes einzelne Objekt, das wir auf dem Bildschirm darstellen. Das bedeutet, dass wir für jedes einzelne Objekt, das wir auf dem Bildschirm haben, ein (X amp Y) Zählerpaar benötigen. Also, als unser Horz. Und Vert. MOD-Zähler laufen über den Refresh-Zyklus, wenn an jedem Punkt die Zähler genau die gleichen X - und Y-Koordinaten wie eines der neuen (X amp Y) Zählerpaare haben. (XREFERENCECOUNTER H-COUNTER) können wir diese Bedingung verwenden, um die RGB-Zeilen zu aktivieren, um die Anzeige einer bestimmten Farbe zu starten. ICH WIEDERHOLE. "STARTING" aus den Koordinaten (X amp Y). Dies bedeutet, dass Sie die Anzahl der (X amp Y) Pixel für das Objekt, das Sie anzeigen möchten, in die oben dargestellte Anweisung einfügen. Denn Sie haben im Wesentlichen nur gesagt, das System, wo zu beginnen Malerei die Farben, aber nicht wirklich, welche Art und Weise zu gehen. UP / DOWN / LINKS / RECHTS oder sogar, wo zu stoppen. (YREFERENCECOUNTER V-COUNTER. Qualität XREFERENCECOUNTER H-COUNTER Größe) Es gibt noch ein wenig mehr zu, so überprüfen Sie die quotDISPLAY PROCESSquot Beispiele, die ich unten zur Verfügung gestellt haben, und sehen, wenn Sie es herausfinden können. ) QuotBALLquot Anzeige PROCESS Beispiel - VHDL Block 7 quotPADDLE 1quot Anzeige PROCESS Beispiel - VHDL Block 8 amp 9 Siehe auch Seiten 208 und 209 aus dem begleitenden Lehrbuch, das ich bereits erwähnt habe. Im folgenden sind 2 quotPROCESSquot Beispiele, die Ihnen einige Ideen, um einen Ball bouncing auf dem Bildschirm erhalten könnte. Überprüfen Sie die beiden Beispiele, versuchen Sie den Code, manipulieren, ändern Sie es um mit Ihren eigenen Ideen. Versuchen verschiedene Dinge und sehen, ob Sie einen Ball zu zeigen und bounce auf dem Bildschirm erhalten können. Nun, um die Ball Collisions arbeiten mit den Paddles. Dies kann sich als schwieriger erweisen. Hoffentlich werden diese quotPROCESSquot Beispiele helfen Ihnen den Start und das Denken von besseren Möglichkeiten, Ihren eigenen VHDL-Code zu schreiben. (VIDEO-TEIL 4 - ZU BEZAHLEN) ZUSÄTZLICHE HINWEISE BEI ​​BALL COLLISONS: Die unten aufgeführten Details zu Paddle-Kollisionen könnten für die meisten von euch ein wenig übertrieben sein. Allerdings, wenn Sie ein Perfektionisten sind und werden immer frustriert, weil der Ball Kollisionen mit Ihren Paddeln nicht verhalten, wie Sie es wollen. Können Sie die folgenden Informationen lesen: Es ist wichtig zu erkennen, dass unabhängig davon, in welcher Richtung der Ball unterwegs ist, UP, DOWN oder auf einem Winkel die Bedingungen, die Sie auf jedes Paddle für einen Ball Collision jede Bedingung das gleiche bewirken Unabhängig davon, auf welcher Seite der Ball auf dem Paddel kollidiert. Dies liegt daran, es ist ein einziges Objekt. Die Kollisionsbedingungen für jedes Paddel basieren auf seinem Xampy-Zählerpaar. Um verschiedene Kollisionsantworten für jede der 4 Seiten haben, müssen Sie wiederum 4 separate Zähler Paare oder 4 separate Seiten, die ein Paddel. Der RGB-Verknüpfungsampel-Block Dieser Block ist einfach eine Gruppe von quadratischen Quotentoren, die sich zusammensetzen oder "CONCATENATE" anweisen, alle RGB-Farben zu einem MASTER RGB-Ausgang zusammenzufassen. So haben Sie im Wesentlichen eine Multi-Input quotandquot Tor für jede der einzelnen RGB-Farben. Eine für alle ROT-Farben, eine für alle GRÜNEN und eine für alle BLUE. Schließlich kann dieser MASTER RGB-Ausgang nur während der horizontalen Anzeigezeit quittiert werden und die vertikale Anzeigezeit. So wird noch ein weiteres quadratisches Tor verwendet, um den MASTER RGB Ausgang zu aktivieren. Wenn H-DISPAYTIME amp V-DISPLAYTIME in einem logischen HIGH-Zustand ist. Altera DE1 Karte - Nicht benutzte RGB-Leitungen müssen mit GND verbunden sein. Es ist wichtig, dass Sie alle nicht verwendeten RGB-Eingangsleitungen an GND binden. Da dies manchmal dazu führen kann, dass die unverbundenen Signale float, produzieren Störungen und Rauschen auf Ihrem VGA-Monitor. Nun, dass über Summen es Folks. ) Hoffentlich wird dieses Tutorial wird Ihnen zumindest ein wenig näher an die Finalisierung Ihrer VHDL PONG-Projekte


No comments:

Post a Comment