Sommario:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 passaggi
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 passaggi

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 passaggi

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 passaggi
Video: Mark Geisbrecht "Eigenvalues, invariant and random integer matrices" 2024, Novembre
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Questo tutorial illustrativo mostra come creare un risolutore a matrice 2 per 2 implementando il modulo terminale seriale UART e un modulo risolutore a matrice. L'utente sarà in grado di inserire una matrice 2 per 2 e quindi il progetto implementato sputerà la soluzione al sistema lineare.

Per utilizzare questo codice, avrai bisogno di:

- Una scheda FPGA Digilent Basys 3

- Computer con il software Xilinx Vivado (funzionerà l'edizione Webpack). Per questo modulo abbiamo utilizzato la versione 2017.2.

- Un cavo micro USB (capacità di trasferimento dati)

Autori: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Classe: Digital Design

- EE/CPE 133 Docente: Joseph Callenes

Fonti:

  • UART_TX, UART_RX da:
  • Antirimbalzo da:

Funzione per la divisione di due numeri senza segno:

Passaggio 1: Passaggio 1: Come funziona

Passaggio 1: come funziona
Passaggio 1: come funziona
Passaggio 1: come funziona
Passaggio 1: come funziona

Ingressi: l'utente inserisce un sistema lineare nel terminale del computer e quindi un modulo UART li converte in un array per la manipolazione del modulo risolutore matrice. Il modulo UART si interfaccia con l'utente e gli permette di entrare nella matrice appropriata oltre a guidarlo per inserire correttamente i dati. Il sistema dispone anche di un interruttore di ripristino/abilitazione mappato sull'interruttore più a sinistra della scheda Basys3.

Uscite: i risultati del solutore a matrice vengono passati attraverso l'interfaccia del modulo UART e quindi visualizzati sul terminale del computer con le soluzioni elencate sullo schermo. Il risolutore a matrice emette vettori logici standard senza segno al modulo UART che li converte in output più user friendly che l'utente può apprezzare. Il risolutore di matrici corrente è in grado di inserire solo numeri fino a 15 e il risultato dell'output deve essere un intero pulito o il programma del risolutore di matrici non è in grado di fornire la soluzione corretta.

Modulo di "controllo seriale" di livello superiore: l'utente inserisce il sistema lineare desiderato in questo modulo tramite i moduli UART_TX e UART_RX e converte gli ingressi dal terminale del computer in una matrice di vettori logici standard elaborati dal modulo risolutore matrice. Il modulo risolutore a matrice restituisce quindi una matrice di vettori logici standard che vengono quindi visualizzati sullo schermo dall'interfaccia seriale UART. La trasmissione e la ricezione di dati attraverso i moduli UART è realizzata attraverso l'uso di un FSM molto lungo in questo modulo.

Modulo UART_TX: l'utente immette un vettore logico standard a 8 bit e un segnale di invio per inviare dati tramite l'interfaccia USB. Durante l'invio dei dati, il segnale TX_Active è alto. Dopo aver inviato i dati, il segnale TX_Done pulsa.

Modulo UART_RX: l'utente riceve 8 bit di dati alla volta dall'interfaccia USB. Un impulso da RX_DV è un'indicazione che i dati sono stati ricevuti e che la logica vettoriale RX_Byte può essere letta.

Modulo Matrix Solver: Il risolutore matrice riceve un array assegnato dal modulo UART che rappresenta la matrice. Il risolutore di matrici converte quindi ogni numero nel sistema lineare in numeri interi per semplificare l'operazione su di essi. All'interno del modulo risolutore matrice ci sono diversi sottomoduli. Il primo sottomodulo è l'inverse_matrix_1 che prende la matrice e poi dà l'inverso della matrice data. Il sottomodulo successivo è il moltiplicatore che moltiplica total_matrix per la matrice inversa utilizzando operazioni di matrice standard. Infine, il modulo master li mappa insieme per produrre un'unica risposta.

Passaggio 2: Passaggio 2: Programmazione della scheda Basys 3

Una volta acquisito il codice sorgente dal basso, caricalo sulla scheda basys 3 per utilizzare l'interfaccia.

reference.digilentinc.com/basys3/refmanual

Passaggio 3: Passaggio 3: come usarlo

Utilizzare un'interfaccia seriale a 9600 baud per comunicare con Basys3 UART. Ho usato screen su Linux con il seguente comando:

schermo /dev/ttyUSB1 9600

Per farlo su Linux, ho dovuto aggiungere il mio utente al gruppo "dialout". Su Windows, putty dovrebbe funzionare e su MacOSX dovrebbe essere un processo simile a Linux.

Spostando l'interruttore più a sinistra in posizione on si avvia il risolutore di matrici. Disattivandolo si ripristina il risolutore di matrici.

Consigliato: