Cuprins:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 pași
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 pași

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 pași

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 pași
Video: Mark Geisbrecht "Eigenvalues, invariant and random integer matrices" 2024, Noiembrie
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Acest tutorial instructabil vă arată cum să realizați un rezolvator de matrice 2 pe 2 prin implementarea modulului terminal UART Serial, precum și un modul de rezolvare a matricei. Utilizatorul va putea introduce o matrice 2 pe 2 și apoi proiectul implementat va scuipa soluția sistemului liniar.

Pentru a utiliza acest cod, veți avea nevoie de:

- O placă FPGA Digilent Basys 3

- Computer cu software-ul Xilinx Vivado (Webpack Edition va funcționa). Pentru acest modul, am folosit versiunea 2017.2.

- Un cablu micro USB (capabil de transfer de date)

Autori: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Clasa: Design digital

- EE / CPE 133 Instructor: Joseph Callenes

Surse:

  • UART_TX, UART_RX de la:
  • Debounce de la:

Funcția de divizare a două numere nesemnate:

Pasul 1: Pasul 1: Cum funcționează

Pasul 1: Cum funcționează
Pasul 1: Cum funcționează
Pasul 1: Cum funcționează
Pasul 1: Cum funcționează

Intrări: utilizatorul introduce un sistem liniar în terminalul computerului și apoi un modul UART le convertește într-o matrice pentru ca modulul de rezolvare a matricei să fie manipulat. Modulul UART se interacționează cu utilizatorul și le permite să introducă matricea corespunzătoare, precum și să îi îndrume către datele de introducere corespunzătoare. De asemenea, sistemul are un comutator de resetare / activare mapat la comutatorul din stânga al plăcii Basys3.

Ieșiri: Rezultatele rezolvării matricei sunt transmise prin interfața modulului UART și apoi afișate pe terminalul computerului cu soluțiile listate pe ecran. Solverul matricial transmite vectori logici standard nesemnați către modulul UART, care îi convertește în ieșiri mai ușor de utilizat, pentru ca utilizatorul să le aprecieze. Rezolvatorul de matrice curent este capabil să aibă numere de până la 15 introduse, iar rezultatul de ieșire trebuie să fie un întreg curat sau programul de rezolvare a matricei nu poate să scoată soluția corectă.

Modulul "Control serial" de nivel superior: utilizatorul introduce sistemul liniar dorit în acest modul prin modulele UART_TX și UART_RX și convertește intrările de la terminalul computerului într-o matrice de vectori logici standard care sunt procesate de modulul de rezolvare a matricei. Modulul de rezolvare a matricei returnează apoi o serie de vectori logici standard care sunt apoi afișați pe ecran de interfața serială UART. Transmiterea și primirea datelor prin modulele UART se realizează prin utilizarea unui FSM foarte lung în acest modul.

Modul UART_TX: utilizatorul introduce un vector logic standard pe 8 biți și un semnal de trimitere pentru a trimite date prin interfața USB. În timp ce trimite date, semnalul TX_Active este ridicat. După ce a trimis datele, semnalul TX_Done pulsează.

Modul UART_RX: utilizatorul primește câte 8 biți de date odată din interfața USB. Un impuls de la RX_DV este o indicație că datele au fost primite și că logica vectorială RX_Byte poate fi citită.

Modulul de rezolvare a matricei: Solverul de matrice primește o matrice imputată de la modulul UART care reprezintă matricea. Solverul matricial convertește apoi fiecare număr din sistemul liniar în numere întregi pentru a ușura operarea acestora. În interiorul modulului de rezolvare a matricei există mai multe sub module. Primul submodul este inverse_matrix_1 care ia matricea și apoi dă inversul matricei date. Următorul submodul este multiplicatorul care înmulțește matricea_totală cu matricea inversă folosind operații matriciale standard. În mod final, modulul master le mapează împreună pentru a produce un singur răspuns.

Pasul 2: Pasul 2: Programarea plăcii Basys 3

După ce ați achiziționat codul sursă de mai jos, încărcați-l pe placa de bază 3 pentru a utiliza interfața.

reference.digilentinc.com/basys3/refmanual

Pasul 3: Pasul 3: Cum să îl utilizați

Utilizați o interfață serială la 9600 baud pentru a comunica cu Basys3 UART. Am folosit ecranul pe Linux cu următoarea comandă:

ecran / dev / ttyUSB1 9600

Pentru a face acest lucru pe linux, a trebuit să-mi adaug utilizatorul la grupul „dialout”. Pe Windows, chitul ar trebui să funcționeze, iar pe MacOSX, ar trebui să fie un proces similar cu Linux.

Rotirea comutatorului din stânga în poziția pornită pornește soluția de matrice. Dacă îl opriți, resetați rezolvatorul de matrice.

Recomandat: