Obsah:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 kroky
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 kroky

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 kroky

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

Tento inštruktážny návod vám ukáže, ako vytvoriť maticový riešič 2 x 2 implementáciou sériového koncového modulu UART a modulu maticového riešiteľa. Užívateľ bude môcť zadať maticu 2 x 2 a potom implementovaný návrh vyplivne riešenie lineárneho systému.

Na použitie tohto kódu budete potrebovať:

- Doska FPGA spoločnosti A Digilent Basys 3

- Počítač so softvérom Xilinx Vivado (Webpack Edition bude fungovať). Pre tento modul sme použili verziu 2017.2.

- Micro USB kábel (schopný prenosu dát)

Autori: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Trieda: digitálny dizajn

- EE/CPE 133 Inštruktor: Joseph Callenes

Zdroje:

  • UART_TX, UART_RX z:
  • Odchod z:

Funkcia na rozdelenie dvoch nepodpísaných čísel:

Krok 1: Krok 1: Ako to funguje

Krok 1: Ako to funguje
Krok 1: Ako to funguje
Krok 1: Ako to funguje
Krok 1: Ako to funguje

Vstupy: Užívateľ zadá lineárny systém do počítačového terminálu a potom ho modul UART prevedie na pole, s ktorým môže modul maticového riešiteľa manipulovať. Modul UART je v rozhraní s užívateľom a umožňuje mu zadať príslušnú maticu a naviesť ho na správne zadávanie údajov. Systém má tiež spínač reset/povolenie namapovaný na spínač úplne vľavo na doske Basys3.

Výstupy: Výsledky z maticového riešiča sa prenášajú cez rozhranie modulu UART a potom sa zobrazujú na termináli počítača s riešeniami uvedenými na obrazovke. Riešenie matice odosiela štandardné logické vektory bez znamienka do modulu UART, ktorý ich prevádza na užívateľsky príjemnejšie výstupy, ktoré užívateľ ocení. Aktuálny maticový riešiteľ môže zadať iba čísla do 15 a výstupný výsledok musí byť čisté celé číslo, alebo program na riešenie maticových matíc nemôže vydať správne riešenie.

Modul „Sériové ovládanie“najvyššej úrovne: Užívateľ do tohto modulu zadá požadovaný lineárny systém prostredníctvom modulov UART_TX a UART_RX a prevádza vstupy z počítačového terminálu na pole štandardných logických vektorov, ktoré sú spracované modulom maticového riešiteľa. Modul maticového riešiteľa potom vráti pole štandardných logických vektorov, ktoré sú potom zobrazené na obrazovke sériovým rozhraním UART. Prenos a príjem údajov prostredníctvom modulov UART sa dosahuje použitím veľmi dlhého FSM v tomto module.

Modul UART_TX: Užívateľ zadáva 8 -bitový štandardný logický vektor a signál na odosielanie, aby mohol odosielať údaje cez rozhranie USB. Počas odosielania údajov je signál TX_Active vysoký. Potom, čo pošle údaje, signál TX_Done pulzuje.

Modul UART_RX: Používateľ dostáva z rozhrania USB naraz 8 bitov údajov. Pulz z RX_DV je indikáciou, že boli prijaté údaje a že je možné prečítať vektorovú logiku RX_Byte.

Modul maticového riešiteľa: Maticový riešiteľ prijíma imputované pole z modulu UART, ktorý predstavuje maticu. Riešiteľ matice potom prevedie každé číslo v lineárnom systéme na celé čísla, aby sa s nimi dalo jednoduchšie pracovať. Vnútri modulu riešiteľa matice je niekoľko čiastkových modulov. Prvý submodul je inverzná_matica_1, ktorý vezme maticu a potom dá inverznú hodnotu danej matice. Ďalším čiastkovým modulom je multiplikátor, ktorý vynásobí maticu total_matrix inverznou maticou pomocou štandardných operácií matice. Nakoniec ich hlavný modul spoločne zmapuje a poskytne jednu jedinú odpoveď.

Krok 2: Krok 2: Programovanie dosky Basys 3

Akonáhle získate zdrojový kód zdola, nahrajte ho na základnú dosku 3, aby ste mohli používať rozhranie.

reference.digilentinc.com/basys3/refmanual

Krok 3: Krok 3: Ako ho používať

Na komunikáciu s Basys3 UART použite sériové rozhranie s rýchlosťou 9600 baudov. Na linuxe som použil obrazovku s nasledujúcim príkazom:

obrazovka /dev /ttyUSB1 9600

Aby som to mohol urobiť na linuxe, musel som pridať svojho používateľa do skupiny „dialout“. V systéme Windows by mal tmel fungovať a v systéme MacOSX by to mal byť podobný proces ako v systéme Linux.

Prepnutím prepínača úplne doľava do polohy zapnuté sa spustí maticové riešenie. Vypnutím resetujete maticový riešič.

Odporúča: