VHDL (язык описания аппаратных средств VHSIC (очень высокоскоростных интегральных схем)) - это стандарт IEEE-языка описания аппаратного обеспечения, используемый электронными дизайнерами для описания и моделирования своих микросхем и систем до их изготовления.
TINACloud теперь включает мощный цифровой механизм моделирования VHDL. Любая цифровая схема в TINACloud может быть автоматически преобразована в код VHDL и проанализирована как проект VHDL. Кроме того, вы можете анализировать широкий спектр оборудования, доступного в VHDL, и определять собственные цифровые компоненты и оборудование в VHDL. Большое преимущество VHDL состоит не только в том, что это стандарт IEEE, но также в том, что оно может быть реализовано автоматически в программируемых логических устройствах, таких как FPGA и CPLD.
TINACloud может генерировать синтезируемый код VHDL вместе с соответствующим файлом UCF, если в меню «Анализ / Параметры» установлен флажок «Создать синтезируемый код». Вы можете сохранить созданные файлы VHD и UCF с помощью команды «Создать файл VHD и UCF» в меню T&M. Вы можете прочитать эти файлы с помощью бесплатной утилиты Xilinx Webpack, сгенерировать файл битового потока, описывающий реализацию проекта, а затем загрузить его в микросхемы Xilinx FPGA.
Пример: следующая схема является счетчиком, определенным в VHDL.
Запустите симуляцию онлайн с TINACloud, нажав на картинку
Выполнение анализа / цифрового моделирования VHDL дает следующую диаграмму:
Если вы щелкнете блок «Счетчик» и в строке HDL нажмете кнопку…, вы увидите код VHDL, определяющий счетчик.
библиотека ieee; используйте ieee.std_logic_1164.all; используйте ieee.std_logic_arith.all; -------------------------------------------------- - Счетчик ENTITY - порт (часы: в std_logic; очистить: в std_logic; QA, QB, QC, QD: out std_logic); КОНЕЦ счетчика; -------------------------------------------------- - АРХИТЕКТУРНЫМ видом счетчика является сигнал Pre_Q: unsigned (от 3 до 0); BEGIN - поведенческое описание процесса счетчика (часы, сброс) начало, если clear = '1', то Pre_Q <= "0000"; elsif (clock = '1' and clock'event), затем QA <= Pre_Q (0); QB <= Pre_Q (1); QC <= Pre_Q (2); QD <= Pre_Q (3); Pre_Q <= Pre_Q + 1; конец, если; завершить процесс; END behv;
В TINA вы можете изменить код VHDL и сразу увидеть эффект.
Изменить строку Pre_Q <= Pre_Q + 1; выше, чтобы Pre_Q <= Pre_Q + 2; и закройте диалог.