Kazalo:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 koraki
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 koraki

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 koraki

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 koraki
Video: Home Assistant. Урок 9.4 ADD-ON - Xiaomi Gateway 3, интеграция в zigbee2mqtt 2024, November
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Ta vadnica vam bo pokazala, kako narediti matrični reševalec 2 x 2 z uporabo serijskega priključnega modula UART in modula za reševanje matrik. Uporabnik bo lahko vnesel matriko 2 na 2, nato pa bo izvedena zasnova izpljunila rešitev v linearni sistem.

Za uporabo te kode boste potrebovali:

- Digilent Basys 3 FPGA plošča

- Računalnik s programsko opremo Xilinx Vivado (Webpack Edition bo deloval). Za ta modul smo uporabili različico 2017.2.

- Kabel Micro USB (prenos podatkov je mogoč)

Avtorji: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Razred: digitalno oblikovanje

- EE/CPE 133 Inštruktor: Joseph Callenes

Viri:

  • UART_TX, UART_RX od:
  • Zavrni od:

Funkcija za deljenje dveh nepodpisanih števil:

1. korak: 1. korak: Kako deluje

1. korak: Kako deluje
1. korak: Kako deluje
1. korak: Kako deluje
1. korak: Kako deluje

Vhodi: Uporabnik vnese linearni sistem v računalniški terminal, nato pa jih modul UART pretvori v matriko za manipulacijo z modulom matričnega reševalca. Modul UART se povezuje z uporabnikom in mu omogoča vnos ustrezne matrike ter jih vodi do pravilnega vnosa podatkov. Sistem ima tudi stikalo za ponastavitev/omogočanje, prikazano na skrajnem levem stikalu plošče Basys3.

Izhodi: Rezultati iz matričnega reševalca se prenesejo skozi vmesnik modula UART in nato prikažejo na računalniškem terminalu z rešitvami, navedenimi na zaslonu. Matrični reševalec oddaja nepodpisane standardne logične vektorje v modul UART, ki jih pretvori v uporabniku prijaznejše izhode, ki jih uporabnik ceni. Trenutni matrični reševalec lahko vnese samo številke do 15, izhodni rezultat pa mora biti čisto celo število ali pa program za reševanje matrik ne more izvesti pravilne rešitve.

Modul "Serijski nadzor" na najvišji ravni: uporabnik vnese v svoj modul želeni linearni sistem prek modulov UART_TX in UART_RX in pretvori vhode iz računalniškega terminala v niz standardnih logičnih vektorjev, ki jih obdeluje modul matričnega reševalca. Modul za reševanje matrik nato vrne niz standardnih logičnih vektorjev, ki jih nato na zaslonu prikaže serijski vmesnik UART. Pošiljanje in sprejemanje podatkov prek modulov UART se izvaja z uporabo zelo dolgega FSM v tem modulu.

Modul UART_TX: Uporabnik vnese 8 -bitni standardni logični vektor in signal za pošiljanje za pošiljanje podatkov prek vmesnika USB. Med pošiljanjem podatkov je signal TX_Active visok. Ko pošlje podatke, signal TX_Done utripa.

Modul UART_RX: Uporabnik hkrati prejema 8 bitov podatkov iz vmesnika USB. Impulz iz RX_DV je pokazatelj, da so bili podatki sprejeti in da je mogoče prebrati vektorsko logiko RX_Byte.

Modul Matrix Solver: Matrix Solver prejme imputirano matriko od modula UART, ki predstavlja matriko. Matrični reševalec nato pretvori vsako število v linearnem sistemu v cela števila, da olajša njihovo upravljanje. V notranjosti matričnega reševalnega modula je več podmodulov. Prvi podmodul je inverzna_matrika_1, ki vzame matriko in nato poda inverzijo podane matrike. Naslednji podmodul je množitelj, ki pomnoži total_matrix z inverzno matrico z uporabo standardnih matričnih operacij. Končno jih glavni modul preslika, da prikaže en sam odgovor.

2. korak: 2. korak: Programiranje plošče Basys 3

Ko pridobite izvorno kodo od spodaj, jo naložite na ploščo basys 3 za uporabo vmesnika.

reference.digilentinc.com/basys3/refmanual

3. korak: 3. korak: kako ga uporabljati

Za komunikacijo z Basys3 UART uporabite serijski vmesnik pri 9600 baud. Na Linuxu sem uporabil zaslon z naslednjim ukazom:

zaslon /dev /ttyUSB1 9600

Če želite to narediti v Linuxu, sem moral dodati svojega uporabnika v skupino "dialout". V sistemu Windows bi moral kit delovati, v sistemu MacOSX pa bi moral biti postopek podoben Linuxu.

S premikom skrajnega levega stikala v položaj za vklop se zažene matrično reševanje. Če ga izklopite, ponastavite matrično reševalno napravo.

Priporočena: