Sisukord:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 sammu
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 sammu

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 sammu

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 sammu
Video: Mark Geisbrecht "Eigenvalues, invariant and random integer matrices" 2024, Oktoober
Anonim
Täisarv_maatriks_lahendaja_UART_SERIAL_VHDL
Täisarv_maatriks_lahendaja_UART_SERIAL_VHDL

See juhendatav õpetus näitab teile, kuidas teha 2 x 2 maatriksi lahendajat nii UART jadaterminali mooduli kui ka maatriksilahendusmooduli abil. Kasutajal on võimalik sisestada 2 x 2 maatriks ja seejärel sülitab rakendatud disainilahendus lineaarsüsteemi.

Selle koodi kasutamiseks vajate:

- Digilent Basys 3 FPGA -plaat

- arvuti Xilinx Vivado tarkvaraga (Webpack Edition töötab). Selle mooduli puhul kasutasime versiooni 2017.2.

- mikro -USB -juhe (võimeline andmeedastuseks)

Autorid: Drew Miller, EE major, Cal Poly SLO, Sukhdeep Singh, EE major, Cal Poly SLO klass: digitaalne disain

- EE/CPE 133 Juhendaja: Joseph Callenes

Allikad:

  • UART_TX, UART_RX saidilt:
  • Lahkuge siit:

Funktsioon kahe allkirjastamata numbri jagamiseks:

1. samm: 1. samm: kuidas see toimib

1. toiming: kuidas see toimib
1. toiming: kuidas see toimib
1. toiming: kuidas see toimib
1. toiming: kuidas see toimib

Sisendid: kasutaja sisestab arvutiterminali lineaarse süsteemi ja seejärel teisendab UART -moodul need maatriksilahendusmooduli massiiviks, mida saab manipuleerida. UART -moodul liidestub kasutajaga ja võimaldab tal sisestada sobiva maatriksi ning juhendada neid andmete korrektseks sisestamiseks. Süsteemil on ka lähtestamise/lubamise lüliti, mis on kaardistatud Basys3 plaadi vasakpoolseima lüliti külge.

Väljundid: maatriksilahendaja tulemused viiakse läbi UART -mooduli liidese ja kuvatakse seejärel arvutiterminalis koos ekraanil loetletud lahendustega. Maatriksilahendaja väljastab allkirjastamata standardloogika vektoreid UART -moodulisse, mis teisendab need kasutajasõbralikumaks väljundiks, mida kasutaja hindab. Praegune maatriksilahendaja saab sisestada ainult numbreid kuni 15 ja väljundtulemus peab olema puhas täisarv või vastasel juhul ei suuda maatriksilahendaja programm väljastada õiget lahendust.

Ülataseme "jadakontrolli" moodul: kasutaja sisestab sellesse moodulisse soovitud lineaarse süsteemi läbi moodulite UART_TX ja UART_RX ning teisendab sisendid arvutiterminalist standardsete loogikavektorite massiiviks, mida töödeldakse maatriksi lahendaja mooduliga. Seejärel tagastab maatriksilahendusmoodul massiivi standardseid loogikavektoreid, mis seejärel kuvatakse ekraanil UART jadaliidese kaudu. Andmete edastamine ja vastuvõtmine UART -moodulite kaudu toimub selles moodulis väga pika FSM -i abil.

UART_TX moodul: kasutaja sisestab 8 -bitise standardloogikavektori ja saatmissignaali, et saata andmeid USB -liidese kaudu. Andmete saatmise ajal on TX_Active signaal kõrge. Pärast andmete saatmist hakkab TX_Done signaal pulseerima.

UART_RX moodul: kasutaja saab USB -liideselt korraga 8 bitti andmeid. RX_DV impulss näitab, et andmed on vastu võetud ja et RX_Byte vektorloogikat saab lugeda.

Maatriksilahendaja moodul: maatriksilahendaja saab maatriksit esindavalt UART -moodulilt arvestusliku massiivi. Seejärel teisendab maatriksilahendaja iga lineaarsüsteemi numbri täisarvudeks, et oleks lihtsam neid kasutada. Maatriksilahendusmooduli sees on mitu alammoodulit. Esimene alammoodul on pöördmaatriks_1, mis võtab maatriksi ja annab seejärel antud maatriksi pöördvõrde. Järgmine alammoodul on kordaja, mis korrutab totaalse maatriksi pöördmaatriksiga, kasutades standardseid maatriksioperatsioone. Lõpuks kaardistab põhimoodul need kokku, et saada üksainus vastus.

2. samm: 2. samm: Basys 3 tahvli programmeerimine

Kui olete allika lähtekoodi omandanud, laadige see liidese kasutamiseks üles bass 3 tahvlile.

reference.digilentinc.com/basys3/refmanual

3. samm: 3. samm: kuidas seda kasutada

Kasutage 9600 baudiga jadaliidest Basys3 UART -iga suhtlemiseks. Kasutasin ekraani linuxis järgmise käsuga:

ekraan /dev /ttyUSB1 9600

Selleks, et seda Linuxis teha, pidin lisama oma kasutaja gruppi "dialout". Windowsis peaks kitt töötama ja MacOSX -is peaks see olema sarnane protsess Linuxiga.

Vasakpoolseima lüliti pööramine sisselülitatud asendisse käivitab maatriksi lahendaja. Selle väljalülitamine lähtestab maatriksi lahendaja.

Soovitan: