Агуулгын хүснэгт:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 алхам
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 алхам

Видео: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 алхам

Видео: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 алхам
Видео: Mark Geisbrecht "Eigenvalues, invariant and random integer matrices" 2024, Арваннэгдүгээр
Anonim
Бүхэл тоо_матриц_хувилагч_UART_SERIAL_VHDL
Бүхэл тоо_матриц_хувилагч_UART_SERIAL_VHDL

Энэхүү зааварчилгааны заавар нь UART Serial терминал модуль болон матриц шийдвэрлэх модулийг ашиглан 2 -оос 2 матриц шийдэгчийг хэрхэн яаж хийхийг танд үзүүлэх болно. Хэрэглэгч 2 -оос 2 матриц оруулах боломжтой бөгөөд дараа нь хэрэгжүүлсэн загвар нь шугаман системийн шийдлийг гадагшлуулах болно.

Энэ кодыг ашиглахын тулд танд дараахь зүйл хэрэгтэй болно.

- Digilent Basys 3 FPGA самбар

- Xilinx Vivado програм хангамжтай компьютер (Webpack Edition ажиллах болно). Энэ модулийн хувьд бид 2017.2 хувилбарыг ашигласан.

- Микро USB залгуур (мэдээлэл дамжуулах чадвартай)

Зохиогчид: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Class: Digital Design

- EE/CPE 133 Багш: Жозеф Калленес

Эх сурвалж:

  • UART_TX, UART_RX:
  • Татгалзах:

Гарын үсэг зураагүй хоёр тоог хуваах функц:

Алхам 1: Алхам 1: Энэ нь хэрхэн ажилладаг талаар

Алхам 1: Энэ нь хэрхэн ажилладаг талаар
Алхам 1: Энэ нь хэрхэн ажилладаг талаар
Алхам 1: Энэ нь хэрхэн ажилладаг талаар
Алхам 1: Энэ нь хэрхэн ажилладаг талаар

Оролт: Хэрэглэгч шугаман системийг компьютерийн терминал руу оруулдаг бөгөөд дараа нь UART модуль нь матриц шийдвэрлэх модулийг удирдахын тулд тэдгээрийг массив болгон хөрвүүлдэг. UART модуль нь хэрэглэгчтэй харилцаж, зохих матриц руу орохоос гадна өгөгдлийг зөв оруулахад чиглүүлдэг. Систем нь мөн Basys3 самбарын хамгийн зүүн талын унтраалгатай зураг тохируулах/идэвхжүүлэх унтраалгатай.

Үр дүн: Матрицын шийдлийн үр дүнг UART модулийн интерфейсээр дамжуулж, дэлгэц дээр жагсаасан шийдлүүдийн хамт компьютерийн терминал дээр харуулна. Матриц шийдэгч нь гарын үсэг зураагүй стандарт логик векторуудыг UART модульд гаргадаг бөгөөд энэ нь хэрэглэгчдэд илүү ээлтэй гаралт болж хувирдаг. Одоогийн матриц шийдэгч нь зөвхөн 15 хүртэлх тоог оруулах боломжтой бөгөөд гаралтын үр дүн нь цэвэр бүхэл тоо байх ёстой эсвэл матриц шийдвэрлэх програм нь зөв шийдлийг гаргаж чадахгүй байна.

Дээд түвшний "Цуваа хяналт" модуль: Хэрэглэгч UART_TX ба UART_RX модулиар дамжуулан хүссэн шугаман системээ энэ модульд оруулдаг бөгөөд энэ нь компьютерийн терминал дахь оролтыг матриц шийдвэрлэх модулийн боловсруулдаг стандарт логик векторууд болгон хувиргадаг. Матриц шийдвэрлэх модуль нь UART цуваа интерфейсээр дэлгэц дээр гарч ирдэг логик векторуудын массивыг буцаана. UART модулиудаар өгөгдөл дамжуулах, хүлээн авах нь энэ модульд маш урт FSM ашиглан хийгддэг.

UART_TX модуль: Хэрэглэгч USB интерфэйсээр өгөгдөл дамжуулахын тулд 8 битийн стандарт логик вектор болон илгээх дохиог оруулдаг. Мэдээлэл илгээх явцад TX_Active дохио өндөр байна. Өгөгдлийг илгээсэний дараа TX_Done дохио импульс өгдөг.

UART_RX модуль: Хэрэглэгч USB интерфэйсээс нэг удаад 8 бит өгөгдөл хүлээн авдаг. RX_DV -ийн импульс нь өгөгдөл хүлээн авсан бөгөөд RX_Byte вектор логикийг унших боломжтой гэсэн дохио юм.

Матриц шийдэгч модуль: Матрицыг шийдэгч нь UART модулаас матрицыг илэрхийлсэн массивыг хүлээн авдаг. Матриц шийдэгч нь шугаман систем дэх тоо бүрийг бүхэл тоо болгон хувиргаж, ажиллахад хялбар болгоно. Матриц шийдвэрлэх модуль дотор хэд хэдэн дэд модуль байдаг. Эхний дэд модуль нь матрицыг авч, дараа нь өгсөн матрицын урвуу өгөгдлийг өгдөг inverse_matrix_1 юм. Дараагийн дэд модуль нь стандарт матрицын үйлдлийг ашиглан total_matrix -ийг урвуу матрицаар үржүүлдэг үржүүлэгч юм. Нэгдүгээрт, мастер модуль нь нэг хариуг гаргахын тулд тэдгээрийг нэгтгэн харуулдаг.

Алхам 2: Алхам 2: Basys 3 самбарыг програмчлах

Та доорх эх кодыг олж авсны дараа интерфэйсийг ашиглахын тулд basys 3 самбар дээр байршуулна уу.

reference.digilentinc.com/basys3/refmanual

Алхам 3: Алхам 3: Үүнийг хэрхэн ашиглах талаар

Basys3 UART -тэй холбогдохын тулд 9600 baud дээр цуваа интерфэйсийг ашиглана уу. Би дараах тушаалыг ашиглан линукс дээр дэлгэц ашигласан.

дэлгэц /dev /ttyUSB1 9600

Үүнийг linux дээр хийхийн тулд би хэрэглэгчээ "dialout" бүлэгт оруулах ёстой байсан. Windows дээр шаваас ажиллах ёстой бөгөөд MacOSX дээр энэ нь linux -тэй ижил төстэй процесс байх ёстой.

Зүүн талын шилжүүлэгчийг асаах байрлал руу шилжүүлснээр матриц шийдэгчийг эхлүүлнэ. Үүнийг унтраах нь матрицын шийдлийг дахин тохируулдаг.

Зөвлөмж болгож буй: