Innehållsförteckning:
- Steg 1: Steg 1: Hur det fungerar
- Steg 2: Steg 2: Programmering av Basys 3 -kortet
- Steg 3: Steg 3: Så här använder du det
Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Denna instruerbara handledning visar dig hur du gör en 2 till 2 matrislösare genom att implementera UART -seriell terminalmodul samt en matrislösarmodul. Användaren kommer att kunna mata in en 2 x 2 matris och sedan kommer den implementerade designen att spotta ut lösningen till det linjära systemet.
För att använda den här koden behöver du:
- En Digilent Basys 3 FPGA Board
- Dator med Xilinx Vivado -programvaran (Webpack Edition fungerar). För den här modulen använde vi 2017.2 -versionen.
- En mikro -USB -kabel (dataöverföring)
Författare: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Class: Digital Design
- EE/CPE 133 Instruktör: Joseph Callenes
Källor:
- UART_TX, UART_RX från:
- Debounce från:
Funktion för uppdelning av två osignerade nummer:
Steg 1: Steg 1: Hur det fungerar
Ingångar: Användaren matar in ett linjärt system i datorterminalen och sedan omvandlar en UART -modul dem till en matris för matrislösarmodulen att manipulera. UART -modulen har gränssnitt med användaren och låter dem ange lämplig matris samt vägleda dem till korrekt inmatning av data. Systemet har också en omkopplare för återställning/aktivering som är mappad till basen till vänster på Basys3 -kortet.
Utgångar: Resultaten från matrislösaren skickas genom UART -modulgränssnittet och visas sedan på datorterminalen med lösningarna listade på skärmen. Matrislösaren matar ut osignerade standard logiska vektorer till UART -modulen som omvandlar dem till mer användarvänliga utgångar för användaren att uppskatta. Den nuvarande matrislösaren kan bara ange siffror upp till 15 och utmatningsresultatet måste vara ett rent heltal eller så kan matrislösarprogrammet inte mata ut rätt lösning.
Toppnivå "Seriell kontroll" -modul: Användaren matar in sitt önskade linjära system i denna modul via UART_TX- och UART_RX -modulerna och det konverterar ingångarna från datorterminalen till en rad standard logiska vektorer som behandlas av matrislösarmodulen. Matrislösarmodulen returnerar sedan en uppsättning standard logiska vektorer som sedan visas på skärmen med UART seriellt gränssnitt. Överföring och mottagning av data via UART -modulerna åstadkoms genom användning av en mycket lång FSM i denna modul.
UART_TX -modul: Användaren matar in en 8 -bitars standard logisk vektor och en sändningssignal för att skicka data via USB -gränssnittet. Medan den skickar data är signalen TX_Active hög. När den har skickat data pulserar TX_Done -signalen.
UART_RX -modul: Användaren tar emot 8 bitar data åt gången från USB -gränssnittet. En puls från RX_DV är en indikation på att data har mottagits och att RX_Byte -vektorlogiken kan läsas.
Matrislösarmodul: Matrislösaren tar emot en tillräknad matris från UART -modulen som representerar matrisen. Matrislösaren omvandlar sedan varje tal i det linjära systemet till heltal för att göra det enklare att använda dem. Inuti matrislösarmodulen finns det flera delmoduler. Den första delmodulen är inverse_matrix_1 som tar matrisen och sedan ger inversen av den matris som ges. Nästa delmodul är multiplikatorn som multiplicerar total_matrisen med den inversa matrisen med hjälp av standardmatrisoperationer. Slutligen kartlägger huvudmodulen dem tillsammans för att mata ut ett enda svar.
Steg 2: Steg 2: Programmering av Basys 3 -kortet
När du har förvärvat källkoden underifrån ladda upp den till basys 3 -kortet för att använda gränssnittet.
reference.digilentinc.com/basys3/refmanual
Steg 3: Steg 3: Så här använder du det
Använd ett seriellt gränssnitt på 9600 baud för att kommunicera med Basys3 UART. Jag använde skärmen på Linux med följande kommando:
skärm /dev /ttyUSB1 9600
För att kunna göra detta på Linux, var jag tvungen att lägga till min användare i gruppen "dialout". På Windows bör kitt fungera, och på MacOSX bör det vara en liknande process som linux.
Matrix -lösaren startar om du vrider den längst till vänster till på -positionen. Om du stänger av den återställs matrislösaren.
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg
Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)