Оглавление:

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
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Это полезное руководство покажет вам, как создать матричный решатель 2 на 2, реализовав модуль последовательного терминала UART, а также модуль матричного решателя. Пользователь сможет ввести матрицу 2 на 2, и тогда реализованный дизайн выдаст решение линейной системы.

Для использования этого кода вам потребуется:

- Плата Digilent Basys 3 FPGA

- Компьютер с программным обеспечением Xilinx Vivado (подойдет Webpack Edition). Для этого модуля мы использовали версию 2017.2.

- Кабель Micro USB (с возможностью передачи данных)

Авторы: Дрю Миллер, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Класс: Цифровой дизайн

- Инструктор 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 осуществляется за счет использования в этом модуле очень длинного конечного автомата.

Модуль UART_TX: пользователь вводит 8-битный стандартный логический вектор и сигнал отправки для отправки данных через интерфейс USB. Пока он отправляет данные, уровень сигнала TX_Active высокий. После отправки данных сигнал TX_Done подает импульс.

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

Модуль Matrix Solver: Матричный Solver получает вмененный массив от модуля UART, который представляет матрицу. Затем решатель матриц преобразует каждое число в линейной системе в целые числа, чтобы упростить работу с ними. Внутри модуля матричного решателя есть несколько подмодулей. Первый подмодуль - это inverse_matrix_1, который берет матрицу, а затем дает обратную матрицу. Следующий подмодуль - это умножитель, который умножает total_matrix на обратную матрицу с использованием стандартных матричных операций. Наконец, главный модуль сопоставляет их вместе, чтобы вывести один единственный ответ.

Шаг 2: Шаг 2: Программирование платы Basys 3

После того, как вы получили исходный код снизу, загрузите его на плату basys 3, чтобы использовать интерфейс.

reference.digilentinc.com/basys3/refmanual

Шаг 3: Шаг 3: Как его использовать

Используйте последовательный интерфейс на скорости 9600 бод для связи с Basys3 UART. Я использовал screen в Linux со следующей командой:

экран / dev / ttyUSB1 9600

Чтобы сделать это в Linux, мне пришлось добавить своего пользователя в группу «dialout». В Windows шпатлевка должна работать, а в MacOSX процесс должен быть аналогичен процессу в Linux.

Установка крайнего левого переключателя в положение «включено» запускает матричный решатель. Выключение этого параметра сбрасывает решатель матриц.

Рекомендуемые: