Talaan ng mga Nilalaman:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 Mga Hakbang
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 Mga Hakbang

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 Mga Hakbang

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 Mga Hakbang
Video: Mark Geisbrecht "Eigenvalues, invariant and random integer matrices" 2024, Nobyembre
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Ipinapakita sa iyo ng itinuturo na tutorial na ito kung paano gumawa ng isang 2 by 2 matrix solver sa pamamagitan ng pagpapatupad ng UART Serial terminal module pati na rin ang isang matrix solver module. Magagawa ng gumagamit na magpasok ng isang 2 by 2 matrix at pagkatapos ay ipataw ng ipinatupad na disenyo ang solusyon sa linear system.

Upang magamit ang code na ito, kakailanganin mo ang:

- Isang Digilent Basys 3 FPGA Board

- Computer na may Xilinx Vivado Software (gagana ang Webpack Edition). Para sa modyul na ito, ginamit namin ang bersyon na 2017.2.

- Isang Micro USB Cord (May kakayahang paglipat ng data)

Mga May-akda: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Class: Digital Design

- EE / CPE 133 Tagapagturo: Joseph Callenes

Pinagmulan:

  • UART_TX, UART_RX mula sa:
  • Pag-debit mula sa:

Pag-andar para sa paghahati ng dalawang hindi naka-sign na numero:

Hakbang 1: Hakbang 1: Paano Ito Gumagana

Hakbang 1: Paano Ito Gumagana
Hakbang 1: Paano Ito Gumagana
Hakbang 1: Paano Ito Gumagana
Hakbang 1: Paano Ito Gumagana

Mga input: Ang gumagamit ay nag-input ng isang linear na sistema sa terminal ng computer at pagkatapos ay isang UART Module ang nagko-convert sa kanila sa isang array para sa manipulasyong module ng matrix upang manipulahin. Ang module ng UART ay nakikipag-ugnay sa gumagamit at pinapayagan silang ipasok ang naaangkop na matrix pati na rin gabayan ang mga ito sa maayos na pag-input ng data. Ang system ay mayroon ding reset / paganahin ang switch na nai-map sa kaliwang switch ng Basys3 board.

Mga Output: Ang mga resulta mula sa matrix solver ay ipinapasa sa interface ng module ng UART at pagkatapos ay ipinapakita sa terminal ng computer kasama ang mga solusyon na nakalista sa screen. Ang matrix solver ay naglalabas ng hindi naka-sign na karaniwang mga vector vector sa module ng UART na nagko-convert sa mga ito sa higit pang mga madaling gamitin na output ng gumagamit para pahalagahan ng gumagamit. Ang kasalukuyang matrix solver ay magagawang magkaroon lamang ng mga numero hanggang sa 15 na ipinasok at ang resulta ng output ay dapat na isang malinis na integer o hindi maipapalabas ng programang solver ng matrix ang tamang solusyon.

Nangungunang Antas na "Serial Control" na Modyul: Inilalagay ng gumagamit ang kanilang ninanais na linear system sa modyul na ito sa pamamagitan ng mga module ng UART_TX at UART_RX at pinapalitan nito ang mga input mula sa terminal ng computer sa isang hanay ng mga karaniwang vector vector na naproseso ng matrix solver module. Pagkatapos ay ibabalik ng matrix solver module ang isang hanay ng mga karaniwang vector vector na ipinapakita sa screen ng UART serial interface. Ang paglilipat at pagtanggap ng data sa pamamagitan ng mga module ng UART ay nagagawa sa pamamagitan ng paggamit ng isang napakahabang FSM sa modyul na ito.

UART_TX Modyul: Nag-input ang gumagamit ng 8 bit na karaniwang vector vector at isang send signal upang magpadala ng data sa pamamagitan ng interface ng USB. Habang nagpapadala ito ng data, ang signal ng TX_Active ay mataas. Matapos nitong maipadala ang data, ang mga pulso ng signal na TX_Done.

UART_RX Modyul: Ang gumagamit ay tumatanggap ng 8 piraso ng data nang paisa-isa mula sa USB interface. Ang isang pulso mula sa RX_DV ay isang pahiwatig na natanggap ang data at mabasa ang RX_Byte vector na lohika.

Matrix Solver Module: Ang matrix solver ay tumatanggap ng isang imputed na array mula sa module ng UART na kumakatawan sa matrix. Pagkatapos ay binago ng matrix solver ang bawat numero sa linear system sa mga integer upang gawing mas madali itong mapatakbo sa kanila. Sa loob ng matrix solver module mayroong maraming mga sub module. Ang unang sub module ay ang inverse_matrix_1 na kumukuha ng matrix at pagkatapos ay ibibigay ang kabaligtaran ng matrix na ibinigay. Ang susunod na module ng sub ay ang multiplier na nagpaparami ng total_matrix ng kabaligtaran na matrix gamit ang karaniwang mga pagpapatakbo ng matrix. Sa pangkalahatan, ang master module ay pinagmapa ang mga ito nang magkasama upang mag-output ng isang solong sagot.

Hakbang 2: Hakbang 2: Pagprogram ng Basys 3 Board

Sa sandaling nakuha mo ang source code mula sa ibaba i-upload ito sa basys 3 board upang magamit ang interface.

referensi.digilentinc.com/basys3/refmanual

Hakbang 3: Hakbang 3: Paano Ito Magagamit

Gumamit ng isang serial interface sa 9600 baud upang makipag-usap sa Basys3 UART. Gumamit ako ng screen sa linux na may sumusunod na utos:

screen / dev / ttyUSB1 9600

Upang magawa ito sa linux, kinailangan kong idagdag ang aking gumagamit sa pangkat na "dialout". Sa Windows, dapat gumana ang masilya, at sa MacOSX, dapat itong maging isang katulad na proseso sa linux.

Ang pag-flipping ng left left sa on na posisyon ay nagsisimula ang matrix solver. Ang paglipat nito sa off ay nag-reset ng matrix solver.

Inirerekumendang: