Inhoudsopgave:
- Stap 1: Stap 1: Hoe het werkt
- Stap 2: Stap 2: Programmeren van het Basys 3-bord
- Stap 3: Stap 3: Hoe het te gebruiken?
Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Deze instructieve tutorial laat je zien hoe je een 2 bij 2 matrixoplosser kunt maken door de UART seriële terminalmodule en een matrixoplossermodule te implementeren. De gebruiker kan een matrix van 2 bij 2 invoeren en vervolgens zal het geïmplementeerde ontwerp de oplossing uitspugen naar het lineaire systeem.
Om deze code te gebruiken, heb je nodig:
- Een Digilent Basys 3 FPGA-bord
- Computer met de Xilinx Vivado-software (Webpack-editie werkt). Voor deze module hebben we versie 2017.2 gebruikt.
- Een micro-USB-kabel (geschikt voor gegevensoverdracht)
Auteurs: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Class: Digital Design
- EE/CPE 133 Instructeur: Joseph Callenes
bronnen:
- UART_TX, UART_RX van:
- Debounce van:
Functie voor deling van twee niet-ondertekende nummers:
Stap 1: Stap 1: Hoe het werkt
Ingangen: de gebruiker voert een lineair systeem in de computerterminal in en vervolgens converteert een UART-module ze naar een array die de matrixoplossermodule kan manipuleren. De UART-module communiceert met de gebruiker en stelt hen in staat om de juiste matrix in te voeren en hen te begeleiden bij het correct invoeren van gegevens. Het systeem heeft ook een reset/enable-schakelaar die is toegewezen aan de meest linkse schakelaar van het Basys3-bord.
Uitgangen: de resultaten van de matrixoplosser worden door de UART-module-interface geleid en vervolgens weergegeven op de computerterminal met de oplossingen op het scherm. De matrixoplosser voert niet-ondertekende standaard logische vectoren uit naar de UART-module, die ze omzet in gebruiksvriendelijkere outputs die de gebruiker kan waarderen. De huidige matrixoplosser kan alleen getallen tot 15 invoeren en het uitvoerresultaat moet een schoon geheel getal zijn, anders kan het matrixoplosserprogramma niet de juiste oplossing uitvoeren.
"Serial Control"-module op het hoogste niveau: de gebruiker voert zijn gewenste lineaire systeem in deze module in via de UART_TX- en UART_RX-modules en converteert de ingangen van de computerterminal naar een reeks standaard logische vectoren die worden verwerkt door de matrixoplossermodule. De matrixoplossermodule retourneert vervolgens een reeks standaard logische vectoren die vervolgens op het scherm worden weergegeven door de UART seriële interface. Het verzenden en ontvangen van gegevens via de UART-modules wordt bereikt door het gebruik van een zeer lange FSM in deze module.
UART_TX-module: de gebruiker voert een 8-bits standaard logische vector en een verzendsignaal in om gegevens via de USB-interface te verzenden. Terwijl het gegevens verzendt, is het TX_Active-signaal hoog. Nadat het de gegevens heeft verzonden, pulseert het TX_Done-signaal.
UART_RX-module: de gebruiker ontvangt 8 bits aan gegevens tegelijk van de USB-interface. Een puls van RX_DV is een indicatie dat gegevens zijn ontvangen en dat de vectorlogica RX_Byte kan worden gelezen.
Matrix Solver Module: De matrix solver ontvangt een geïmputeerde array van de UART-module die de matrix vertegenwoordigt. De matrixoplosser converteert vervolgens elk getal in het lineaire systeem naar gehele getallen om het gemakkelijker te maken om ermee te werken. Binnen de matrixoplossermodule zijn er verschillende submodules. De eerste submodule is de inverse_matrix_1 die de matrix neemt en vervolgens de inverse van de gegeven matrix geeft. De volgende submodule is de vermenigvuldiger die de totale_matrix vermenigvuldigt met de inverse matrix met behulp van standaardmatrixbewerkingen. Ten slotte brengt de mastermodule ze samen om één enkel antwoord uit te voeren.
Stap 2: Stap 2: Programmeren van het Basys 3-bord
Zodra u de broncode van hieronder hebt verkregen, uploadt u deze naar het basys 3-bord om de interface te gebruiken.
reference.digilentinc.com/basys3/refmanual
Stap 3: Stap 3: Hoe het te gebruiken?
Gebruik een seriële interface op 9600 baud om te communiceren met de Basys3 UART. Ik gebruikte scherm op linux met het volgende commando:
scherm /dev/ttyUSB1 9600
Om dit op linux te doen, moest ik mijn gebruiker toevoegen aan de groep "dialout". Op Windows zou putty moeten werken, en op MacOSX zou het een soortgelijk proces moeten zijn als Linux.
Door de meest linkse schakelaar in de aan-positie te zetten, wordt de matrixoplosser gestart. Als u deze uitschakelt, wordt de matrixoplosser gereset.
Aanbevolen:
Game Design in Flick in 5 stappen: 5 stappen
Game-ontwerp in Flick in 5 stappen: Flick is een heel eenvoudige manier om een game te maken, vooral zoiets als een puzzel, visuele roman of avonturengame
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: 3 stappen
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: In deze Instructable gaan we gezichtsdetectie uitvoeren op Raspberry Pi 4 met Shunya O/S met behulp van de Shunyaface-bibliotheek. Shunyaface is een bibliotheek voor gezichtsherkenning/detectie. Het project streeft naar de hoogste detectie- en herkenningssnelheid met
Doe-het-zelfspiegel in eenvoudige stappen (met LED-stripverlichting): 4 stappen
DIY make-upspiegel in eenvoudige stappen (met behulp van LED-stripverlichting): In dit bericht heb ik een doe-het-zelfspiegel gemaakt met behulp van de LED-strips. Het is echt gaaf en je moet ze ook proberen
Hoe plug-ins in WordPress te installeren in 3 stappen: 3 stappen
Hoe plug-ins in WordPress te installeren in 3 stappen: In deze tutorial laat ik je de essentiële stappen zien om de WordPress-plug-in op je website te installeren. In principe kunt u plug-ins op twee verschillende manieren installeren. De eerste methode is via ftp of via cpanel. Maar ik zal het niet opsommen, want het is echt compl
Akoestische levitatie met Arduino Uno stap voor stap (8 stappen): 8 stappen
Akoestische levitatie met Arduino Uno Stap voor stap (8-stappen): ultrasone geluidstransducers L298N Vrouwelijke DC-adapter voeding met een mannelijke DC-pin Arduino UNOBreadboardHoe dit werkt: eerst upload je code naar Arduino Uno (het is een microcontroller uitgerust met digitale en analoge poorten om code te converteren (C++)