Съдържание:
- Стъпка 1: Стъпка 1: Как работи
- Стъпка 2: Стъпка 2: Програмиране на Basys 3 Board
- Стъпка 3: Стъпка 3: Как да го използвате
Видео: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
Този инструкционен урок ще ви покаже как да направите матричен решател 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: Как работи
Входове: Потребителят въвежда линейна система в терминала на компютъра и след това 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.
Превключването на най -левия превключвател във включено положение стартира матричния решател. Изключването му нулира матричния решател.
Препоръчано:
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: 7 стъпки
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: Понякога вибрациите са причина за сериозни проблеми в много приложения. От валове и лагери на машината до работа на твърдия диск, вибрациите причиняват повреда на машината, ранна подмяна, ниска производителност и нанасят сериозен удар върху точността. Мониторинг
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: 3 стъпки
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: КУПЕТЕ (щракнете върху теста, за да закупите/посетете уеб страницата) STM32F767ZISUPPORTED SOFTWARE · STM32CUBE IDE · KEIL MDK ARM µVISION · EWARM IAR EMBEDDED WORKBENCH използва се за програмиране на STM микроконтролери
Как да направите 4G LTE двойна BiQuade антена Лесни стъпки: 3 стъпки
Как да направя 4G LTE двойна BiQuade антена лесни стъпки: През повечето време, с което се сблъсквах, нямам добра сила на сигнала за ежедневните ми работи. Така. Търся и опитвам различни видове антени, но не работи. След загубено време намерих антена, която се надявам да направя и изпробвам, защото тя не градивен принцип
Дизайн на играта с бързо движение в 5 стъпки: 5 стъпки
Дизайн на игра с Flick в 5 стъпки: Flick е наистина прост начин да направите игра, особено нещо като пъзел, визуален роман или приключенска игра
Система за предупреждение за паркиране на автомобил Arduino - Стъпки по стъпка: 4 стъпки
Система за предупреждение за паркиране на автомобил Arduino | Стъпки по стъпка: В този проект ще проектирам обикновена верига за сензори за паркиране на автомобил Arduino, използвайки Arduino UNO и HC-SR04 ултразвуков сензор. Тази базирана на Arduino система за предупреждение за автомобил за заден ход може да се използва за автономна навигация, измерване на роботи и други обхвати