Съдържание:

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 стъпки
Видео: Щит и меч, 3 серия (реставрация 4К, реж. Владимир Басов, 1967 г.) 2024, Ноември
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Този инструкционен урок ще ви покаже как да направите матричен решател 2 на 2 чрез внедряване на UART сериен терминален модул, както и модул за решаване на матрици. Потребителят ще може да въведе матрица 2 на 2 и след това реализираният дизайн ще изплюе решението в линейната система.

За да използвате този код, ще ви трябва:

- Digilent Basys 3 FPGA Board

- Компютър със софтуера Xilinx Vivado (Webpack Edition ще работи). За този модул използвахме версията 2017.2.

- Micro 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: Потребителят въвежда 8 -битов стандартен логически вектор и сигнал за изпращане, за да изпрати данни през USB интерфейса. Докато изпраща данни, сигналът TX_Active е висок. След като изпрати данните, сигналът TX_Done пулсира.

Модул UART_RX: Потребителят получава 8 бита данни наведнъж от USB интерфейса. Импулс от RX_DV е индикация, че са получени данни и че векторната логика RX_Byte може да бъде прочетена.

Модул за решаване на матрици: Решетелят на матрици получава импутиран масив от модула UART, който представлява матрицата. Матричният решател след това преобразува всяко число в линейната система в цели числа, за да улесни работата с тях. Вътре в модула за решаване на матрици има няколко подмодула. Първият подмодул е inverse_matrix_1, който взема матрицата и след това дава обратната стойност на дадената матрица. Следващият подмодул е множителят, който умножава total_matrix по обратната матрица, използвайки стандартни матрични операции. В крайна сметка главният модул ги съпоставя, за да изведе един -единствен отговор.

Стъпка 2: Стъпка 2: Програмиране на Basys 3 Board

След като сте получили изходния код отдолу, качете го на дъската basys 3, за да използвате интерфейса.

reference.digilentinc.com/basys3/refmanual

Стъпка 3: Стъпка 3: Как да го използвате

Използвайте сериен интерфейс на 9600 бода, за да комуникирате с Basys3 UART. Използвах екран на Linux със следната команда:

екран /dev /ttyUSB1 9600

За да направя това в linux, трябваше да добавя моя потребител към групата "dialout". В Windows шпакловката трябва да работи, а в MacOSX процесът трябва да е подобен на Linux.

Превключването на най -левия превключвател във включено положение стартира матричния решател. Изключването му нулира матричния решател.

Препоръчано: