Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Встроенный

Начало FPGA-разработки: построение 4-битного сумматора на Xilinx Artix-7

Начало FPGA-разработки: построение 4-битного сумматора на Xilinx Artix-7Примечание редактора: По мере эволюции продвинутых алгоритмов, embedded дизайнеры часто борются за удовлетворение вычислительных требований современных приложений. Field-Programmable Gate Arrays (FPGA) предоставляют необходимую производительность, и недавние достижения в железе и тулчейнах сделали FPGA-разработку доступной для более широкой аудитории. Эта статья, четвёртая в серии из «Architecting High-Performance Embedded Systems» Джима Ледина, предлагает практическое пошаговое руководство по построению простого но полного FPGA-проекта.


Разработка вашего первого FPGA-проекта

Мы построим 4-битный бинарный сумматор на Xilinx Artix-7 FPGA в плате разработки Digilent Arty A7. Доступны две вариации платы: стоимостно-эффективная 35T модель (US $129) и более мощная 100T модель (US $249). Единственное различие — вариант FPGA, влияющий на доступные логические ресурсы. 100T предпочтительна для будущих проектов, требующих больше ресурсов, таких как пример digital oscilloscope в последующих главах.

Варианты покупки: Digilent Store, Amazon и другие ритейлеры.

Для этого туториала мы сфокусируемся на FPGA core, четырёх user switches, четырёх pushbuttons и пяти LED. Шаги ниже покрывают установку тулсьюта Vivado, создание проекта, написание VHDL кода и загрузку битстрима на плату — как в volatile configuration memory, так и во onboard flash для персистентной работы.

Обзор проекта

Дизайн реализует 4-битный сумматор. Четыре переключателя дают первый 4-битный операнд, четыре кнопки — второй. FPGA непрерывно складывает эти операнды и отображает 4-битную сумму на четырёх LED, с пятым LED индицирующим carry-out. Этот прямолинейный дизайн позволяет сфокусироваться на workflow тулчейна вместо сложной логики.

Установка Vivado

Мы используем Xilinx Vivado, доступный бесплатно для Windows и Linux. Следующие инструкции предполагают Windows; Linux установка аналогична.

  1. Создайте аккаунт пользователя Xilinx: https://www.xilinx.com/registration/create-account.html
  2. Залогиньтесь на https://xilinx.com и перейдите на страницу загрузки.
  3. Скачайте Xilinx Unified Installer (Windows Self-Extracting Web Installer). Для согласованности с книгой выберите версию 2020.1; иначе используйте последний релиз.
  4. Запустите установщик (например, Xilinx_1_0602_1208_Win64.exe). Если Windows блокирует загрузку, выберите «Install anyway».
  5. Нажмите Next на приветственном экране.
  6. Введите учётные данные Xilinx и нажмите Next.
  7. Примите лицензионные соглашения и нажмите Next.
  8. Выберите Vitis как продукт (Vitis включает Vivado и дополнительные инструменты). Нажмите Next.
  9. Примите дефолтные выборы компонентов и нажмите Next.
  10. Выберите директорию назначения (например, C:\Xilinx) и нажмите Next.
  11. Просмотрите сводку и нажмите Install. Установка может занять несколько минут.

После установки запустите Vivado из ярлыка на рабочем столе или меню Start.

Создание проекта

  1. Откройте Vivado и нажмите Create Project в панели Quick Start.
  2. Введите ArtyAdder как имя проекта, выберите директорию (например, C:\Projects) и отметьте Create a subdirectory for this project. Нажмите Next.
  3. Выберите RTL Project и отметьте Do not specify sources at this time. Нажмите Next.
  4. На вкладке Boards найдите «Arty» и выберите Arty A7-100 или Arty A7-35 в зависимости от вашего железа. Нажмите Next.
  5. Завершите визард для создания пустого проекта.

Добавление VHDL исходных файлов

  1. В панели Sources, правый клик Design Sources → Add Sources….
  2. Выберите Add or create design sources и нажмите Next.
  3. Выберите Create File, назовите FullAdder.vhdl, нажмите OK.
  4. Повторите для создания Adder4.vhdl, затем нажмите Finish.
  5. Игнорируйте диалог Define Modules; нажмите OK и подтвердите Yes.
  6. Откройте FullAdder.vhdl и вставьте следующий код:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity FULL_ADDER is port ( A : in std_logic; B : in std_logic; C_IN : in std_logic; S : out std_logic; C_OUT : out std_logic ); end entity FULL_ADDER; architecture BEHAVIORAL of FULL_ADDER is begin S <= (A XOR B) XOR C_IN; C_OUT <= (A AND B) OR ((A XOR B) AND C_IN); end architecture BEHAVIORAL;
  1. Откройте Adder4.vhdl и замените его содержимое на:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity ADDER4 is port ( A4 : in std_logic_vector(3 downto 0); B4 : in std_logic_vector(3 downto 0); SUM4 : out std_logic_vector(3 downto 0); C_OUT4: out std_logic ); end entity ADDER4; architecture BEHAVIORAL of ADDER4 is component FULL_ADDER is port ( A : in std_logic; B : in std_logic; C_IN : in std_logic; S : out std_logic; C_OUT : out std_logic ); end component; signal c0, c1, c2 : std_logic; begin FULL_ADDER0 : FULL_ADDER port map ( A => A4(0), B => B4(0), C_IN => '0', S => SUM4(0), C_OUT => c0 ); FULL_ADDER1 : FULL_ADDER port map ( A => A4(1), B => B4(1), C_IN => c0, S => SUM4(1), C_OUT => c1 ); FULL_ADDER2 : FULL_ADDER port map ( A => A4(2), B => B4(2), C_IN => c1, S => SUM4(2), C_OUT => c2 ); FULL_ADDER3 : FULL_ADDER port map ( A => A4(3), B => B4(3), C_IN => c2, S => SUM4(3), C_OUT => C_OUT4 ); end architecture BEHAVIORAL;

Следующие шаги

Следующая статья проведёт вас через симуляцию этого дизайна, синтез для Arty платы и программирование получившегося битстрима на FPGA.

Reprinted with permission from Packt Publishing. Copyright © 2021 Packt Publishing


Начало FPGA-разработки: построение 4-битного сумматора на Xilinx Artix-7Джим Ледин — CEO Ledin Engineering, Inc. Специализируется на встраиваемом ПО и аппаратном дизайне, разработке и тестировании, экспертизе в кибербезопасности встраиваемых систем, тестировании на проникновение и этическом хакинге. Джим получил B.S. в аэрокосмической инженерии от Iowa State University и M.S. в электротехнике и компьютерной инженерии от Georgia Institute of Technology. Лицензированный профессиональный электроинженер в Калифорнии, CISSP, CEH и CPT.

Связанный контент

Подпишитесь на еженедельную рассылку Embedded для больших инсайтов.

Встроенный

  1. Жидкое аддитивное производство: создание 3D-объектов из жидких материалов
  2. Проектирование встроенных систем: этапы, принципы и реальные применения
  3. Использование встроенного ИИ для превращения Big Data в действенные Smart Insights
  4. Arrow Electronics объявляет европейский FPGA‑конкурс — бесплатная отладочная плата и ценные призы
  5. MAXREFDES220# — Бесманжетный мониторинг артериального давления с оптическими датчиками
  6. Microchip запускает defense-grade PolarFire SoC FPGA с Early Access Program
  7. Создание робота на Raspberry Pi и Python: полное руководство
  8. Сборка самобалансирующегося Segway на Raspberry Pi
  9. Расширение GoPiGo v2 на Windows 10 IoT Core для Raspberry Pi 3
  10. Максимизация производства с передовым ПО для аддитивного производства