Turinys:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 žingsniai
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 žingsniai

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 žingsniai

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 žingsniai
Video: 3 точки, и пищеварение станет лёгким 2024, Lapkritis
Anonim
Sveikasis skaičius_matrica_sprendėjas_UART_SERIAL_VHDL
Sveikasis skaičius_matrica_sprendėjas_UART_SERIAL_VHDL

Ši pamoka parodys, kaip padaryti 2 x 2 matricos sprendėją naudojant UART serijinio terminalo modulį ir matricos sprendimo modulį. Vartotojas galės įvesti 2 x 2 matricą, o tada įgyvendintas dizainas išspjaudys sprendimą tiesinei sistemai.

Norėdami naudoti šį kodą, jums reikės:

- „Digilent Basys 3“FPGA plokštė

- Kompiuteris su „Xilinx Vivado“programine įranga („Webpack Edition“veiks). Šiam moduliui naudojome 2017.2 versiją.

- Mikro USB laidas (galima perduoti duomenis)

Autoriai: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Class: Digital Design

- EE/CPE 133 Instruktorius: Joseph Callenes

Šaltiniai:

  • UART_TX, UART_RX iš:
  • Išjunkite iš:

Dviejų nepasirašytų skaičių padalijimo funkcija:

1 veiksmas: 1 veiksmas: kaip tai veikia

1 žingsnis: kaip tai veikia
1 žingsnis: kaip tai veikia
1 žingsnis: kaip tai veikia
1 žingsnis: kaip tai veikia

Įvestys: vartotojas įveda linijinę sistemą į kompiuterio terminalą, o tada UART modulis jas konvertuoja į matricos sprendėjo modulio masyvą. UART modulis sąveikauja su vartotoju ir leidžia jam įvesti atitinkamą matricą, taip pat nurodo tinkamai įvesti duomenis. Sistema taip pat turi atstatymo/įjungimo jungiklį, susietą su kairiausiu „Basys3“plokštės jungikliu.

Išėjimai: matricos sprendėjo rezultatai perduodami per UART modulio sąsają ir tada rodomi kompiuterio terminale kartu su ekrane išvardytais sprendimais. Matricos sprendėjas perduoda nepasirašytus standartinius loginius vektorius į UART modulį, kuris paverčia juos vartotojui patogesniais išėjimais, kad vartotojas galėtų tai įvertinti. Dabartinis matricos sprendėjas gali įvesti tik iki 15 skaičių, o išvesties rezultatas turi būti švarus sveikasis skaičius, kitaip matricos sprendėjo programa negali išvesti teisingo sprendimo.

Aukščiausio lygio „Serijinio valdymo“modulis: Vartotojas įveda norimą linijinę sistemą į šį modulį per UART_TX ir UART_RX modulius ir konvertuoja įvestis iš kompiuterio terminalo į standartinių loginių vektorių masyvą, kurį apdoroja matricos sprendimo modulis. Tada matricos sprendimo modulis grąžina standartinių loginių vektorių masyvą, kuris ekrane rodomas naudojant UART nuosekliąją sąsają. Duomenys perduodami ir gaunami per UART modulius, naudojant šį modulį naudojant labai ilgą FSM.

UART_TX modulis: vartotojas įveda 8 bitų standartinį loginį vektorių ir siuntimo signalą, kad galėtų siųsti duomenis per USB sąsają. Siunčiant duomenis, TX_Active signalas yra didelis. Po to, kai jis išsiunčia duomenis, „TX_Done“signalas impulsuoja.

UART_RX modulis: vartotojas vienu metu gauna 8 bitų duomenų iš USB sąsajos. RX_DV impulsas rodo, kad duomenys buvo gauti ir kad galima nuskaityti RX_Byte vektorinę logiką.

Matricos sprendimo modulis: Matricos sprendėjas gauna priskirtą masyvą iš UART modulio, kuris vaizduoja matricą. Tada matricos sprendėjas kiekvieną linijinės sistemos skaičių paverčia sveikais skaičiais, kad būtų lengviau juos valdyti. Matricos sprendimo modulio viduje yra keli papildomi moduliai. Pirmasis antrinis modulis yra atvirkštinė_matrica_1, kuri paima matricą ir tada pateikia atvirkštinę matricą. Kitas antrinis modulis yra daugiklis, kuris padaugina total_matrix iš atvirkštinės matricos, naudodamas standartines matricos operacijas. Galiausiai pagrindinis modulis juos susieja, kad gautų vieną atsakymą.

2 veiksmas: 2 veiksmas: „Basys 3“lentos programavimas

Įsigiję šaltinio kodą iš apačios, įkelkite jį į „basys 3“plokštę, kad galėtumėte naudoti sąsają.

reference.digilentinc.com/basys3/refmanual

3 veiksmas: 3 žingsnis: kaip juo naudotis

Norėdami bendrauti su „Basys3 UART“, naudokite 9600 baudų serijos sąsają. Aš naudojau ekraną „Linux“su tokia komanda:

ekranas /dev /ttyUSB1 9600

Norėdami tai padaryti „Linux“, turėjau pridėti savo vartotoją prie grupės „dialout“. „Windows“sistemoje glaistas turėtų veikti, o „MacOSX“- tai turėtų būti panašus procesas kaip „Linux“.

Pasukus kairįjį jungiklį į įjungimo padėtį, prasideda matricos sprendimas. Jį išjungus iš naujo nustatomas matricos sprendimas.

Rekomenduojamas: