Sadržaj:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 koraka
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 koraka

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 koraka

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 koraka
Video: По Законам Военного Времени 3. 1-4 Серии. Военно-историческая драма. StarMedia 2024, Novembar
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Ovaj vodič koji vas može uputiti pokazat će vam kako napraviti matrični rješavač 2 po 2 primjenom UART serijskog terminalnog modula, kao i modula rješavača matrica. Korisnik će moći unijeti matricu 2 x 2, a zatim će implementirani dizajn ispljunuti rješenje u linearni sistem.

Za korištenje ovog koda trebat će vam:

- Digilent Basys 3 FPGA ploča

- Računar sa Xilinx Vivado softverom (Webpack Edition će raditi). Za ovaj modul koristili smo verziju 2017.2.

- Micro USB kabel (moguć prijenos podataka)

Autori: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Klasa: digitalni dizajn

- EE/CPE 133 Instruktor: Joseph Callenes

Izvori:

  • UART_TX, UART_RX sa:
  • Odbijte od:

Funkcija podjele dva nepotpisana broja:

Korak 1: Korak 1: Kako to funkcionira

Korak 1: Kako to funkcionira
Korak 1: Kako to funkcionira
Korak 1: Kako to funkcionira
Korak 1: Kako to funkcionira

Ulazi: Korisnik unosi linearni sistem u terminal računara, a zatim ih UART modul pretvara u niz za manipulaciju modulom matričnog rješavača. UART modul se povezuje sa korisnikom i omogućava mu da unese odgovarajuću matricu, kao i da ih vodi do pravilnog unosa podataka. Sistem također ima prekidač za resetiranje/omogućavanje preslikan na krajnji lijevi prekidač Basys3 ploče.

Izlazi: Rezultati iz matričnog rješavača prolaze kroz sučelje UART modula i zatim se prikazuju na računarskom terminalu s rješenjima navedenim na ekranu. Matrični rješavač šalje nepotpisane standardne logičke vektore u UART modul koji ih pretvara u izlaz prilagođeniji korisniku koji će korisnik cijeniti. Trenutni matrični rješavač može unijeti samo do 15 brojeva, a izlazni rezultat mora biti čist cijeli broj ili program za rješavanje matrica ne može prikazati ispravno rješenje.

Modul "Serijska kontrola" najviše razine: Korisnik unosi svoj željeni linearni sistem u ovaj modul putem modula UART_TX i UART_RX i pretvara ulaze s računarskog terminala u niz standardnih logičkih vektora koje obrađuje modul matričnog rješavača. Modul za rješavanje matrica tada vraća niz standardnih logičkih vektora koje zatim prikazuje UART serijsko sučelje na ekranu. Prijenos i prijem podataka putem UART modula postiže se upotrebom vrlo dugotrajnog FSM -a u ovom modulu.

UART_TX modul: Korisnik unosi 8 -bitni standardni logički vektor i signal za slanje kako bi poslao podatke putem USB sučelja. Dok šalje podatke, signal TX_Active je visok. Nakon što pošalje podatke, signal TX_Done pulsira.

UART_RX modul: Korisnik prima 8 bita podataka odjednom s USB sučelja. Impuls iz RX_DV pokazatelj je da su podaci primljeni i da se vektorska logika RX_Byte može pročitati.

Modul Matrix Solver: Matrix Solver prima imputirani niz od UART modula koji predstavlja matricu. Matrični rješavač zatim pretvara svaki broj u linearnom sistemu u cijele brojeve radi lakšeg rukovanja. Unutar matričnog modula za rješavanje postoji nekoliko podmodula. Prvi podmodul je inverzna_matrica_1 koja uzima matricu, a zatim daje inverz date matrice. Sljedeći podmodul je multiplikator koji pomnoži total_matrix s inverznom matricom koristeći standardne matrične operacije. Konačno, glavni modul ih preslikava kako bi se dobio jedan jedini odgovor.

Korak 2: Korak 2: Programiranje ploče Basys 3

Nakon što ste stekli izvorni kod odozdo, prenesite ga na basys 3 ploču za korištenje sučelja.

reference.digilentinc.com/basys3/refmanual

Korak 3: Korak 3: Kako ga koristiti

Koristite serijsko sučelje na 9600 bauda za komunikaciju s Basys3 UART. Koristio sam screen na linux -u sa sljedećom naredbom:

screen /dev /ttyUSB1 9600

Da bih to učinio na linuxu, morao sam dodati svog korisnika u grupu "dialout". Na Windowsima bi kit trebao funkcionirati, a na MacOSX -u bi trebao biti sličan proces kao i na Linuxu.

Pokretanjem krajnjeg lijevog prekidača u položaj za uključivanje započinje rješavanje matrice. Isključivanjem se resetuje matrični rešavač.

Preporučuje se: