Tartalomjegyzék:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 lépés
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 lépés

Videó: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 lépés

Videó: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 lépés
Videó: Mark Geisbrecht "Eigenvalues, invariant and random integer matrices" 2024, November
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Ez az oktatható oktatóanyag megmutatja, hogyan készíthet 2 x 2 mátrixmegoldót az UART soros terminálmodul és a mátrixmegoldó modul segítségével. A felhasználó beírhat egy 2 x 2 mátrixot, majd a megvalósított terv kiköpi a megoldást a lineáris rendszerhez.

A kód használatához szüksége lesz:

- Digilent Basys 3 FPGA kártya

- Számítógép Xilinx Vivado szoftverrel (a Webpack Edition működni fog). Ehhez a modulhoz a 2017.2 -es verziót használtuk.

- Micro USB kábel (adatátvitelre alkalmas)

Szerzők: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Osztály: Digitális tervezés

- EE/CPE 133 Oktató: Joseph Callenes

Források:

  • UART_TX, UART_RX innen:
  • Visszakapcsolás innen:

Funkció két alá nem írt szám felosztására:

1. lépés: 1. lépés: Hogyan működik

1. lépés: Hogyan működik?
1. lépés: Hogyan működik?
1. lépés: Hogyan működik?
1. lépés: Hogyan működik?

Bemenetek: A felhasználó egy lineáris rendszert visz be a számítógép termináljába, majd egy UART modul átalakítja azokat tömbvé a mátrixmegoldó modul számára. Az UART modul kapcsolódik a felhasználóhoz, és lehetővé teszi a megfelelő mátrix megadását, valamint az adatok helyes bevitelét. A rendszer rendelkezik egy visszaállítás/engedélyezés kapcsolóval is, amely a Basys3 kártya bal szélső kapcsolójához van hozzárendelve.

Kimenetek: A mátrixmegoldó eredményei áthaladnak az UART modul interfészén, majd megjelennek a számítógép terminálján a képernyőn felsorolt megoldásokkal. A mátrixmegoldó aláíratlan szabványos logikai vektorokat bocsát ki az UART modulba, amely felhasználóbarátabb kimenetekké alakítja át a felhasználó számára. Az aktuális mátrixmegoldó csak legfeljebb 15 számot írhat be, és a kimeneti eredménynek tiszta egésznek kell lennie, különben a mátrixmegoldó program nem tudja kiadni a helyes megoldást.

Felső szintű "Soros vezérlés" modul: A felhasználó az UART_TX és UART_RX modulokon keresztül beviszi ebbe a modulba a kívánt lineáris rendszerét, és a bemeneteket a számítógép termináljából standard logikai vektorok tömbjévé alakítja, amelyeket a mátrixmegoldó modul dolgoz fel. A mátrixmegoldó modul ezután standard logikai vektorok tömbjét adja vissza, amelyeket az UART soros interfész jelenít meg a képernyőn. Az adatok UART modulokon keresztüli továbbítása és fogadása nagyon hosszú FSM használatával történik ebben a modulban.

UART_TX modul: A felhasználó 8 bites szabványos logikai vektort és küldési jelet ír be, hogy adatokat küldjön az USB interfészen keresztül. Adatok küldése közben a TX_Active jel magas. Miután elküldte az adatokat, a TX_Done jel pulzál.

UART_RX modul: A felhasználó egyszerre 8 bit adatot kap az USB interfészről. Az RX_DV impulzus azt jelzi, hogy adatok érkeztek, és hogy az RX_Byte vektor logikája olvasható.

Mátrixmegoldó modul: A mátrixmegoldó imputált tömböt kap az UART modulból, amely a mátrixot képviseli. A mátrixmegoldó ezután a lineáris rendszer minden számát egész számokká alakítja, hogy megkönnyítse azok működését. A mátrixmegoldó modulon belül több almodul található. Az első almodul az inverz_mátrix_1, amely felveszi a mátrixot, majd megadja a megadott mátrix inverzét. A következő almodul a szorzó, amely a total_mátrixot az inverz mátrixszal megszorozza standard mátrixműveletek segítségével. Végül a mester modul leképezi őket, hogy egyetlen választ adjon ki.

2. lépés: 2. lépés: A Basys 3 tábla programozása

Miután beszerezte a forráskódot alulról, töltse fel a basys 3 táblára a felület használatához.

reference.digilentinc.com/basys3/refmanual

3. lépés: 3. lépés: Hogyan kell használni

Használjon 9600 baudos soros interfészt a Basys3 UART kommunikációhoz. A képernyőt Linux alatt a következő paranccsal használtam:

screen /dev /ttyUSB1 9600

Ahhoz, hogy ezt linuxon megtehessem, hozzá kellett adnom a felhasználómat a "dialout" csoporthoz. Windows rendszeren a gittnek működnie kell, MacOSX rendszeren pedig a linuxhoz hasonló folyamatnak kell lennie.

A bal szélső kapcsoló bekapcsolása elindítja a mátrixmegoldót. Kikapcsolása visszaállítja a mátrixmegoldót.

Ajánlott: