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

Руководство для начинающих по использованию Modelsim для моделирования FPGA и ASIC

Учебное пособие. Использование Modelsim для моделирования для начинающих.

Modelsim — это программа, созданная Mentor Graphics и используемая для моделирования проектов VHDL и Verilog. Это наиболее широко используемая программа моделирования в бизнесе и образовании. В этом руководстве сначала объясняется, почему важно моделирование, а затем показано, как можно бесплатно приобрести Modelsim Student Edition для личного использования.

Моделирование является важным этапом проектирования FPGA и ASIC. Моделирование позволяет дизайнеру стимулировать свой проект и видеть, как написанный им код реагирует на стимул. Хорошая симуляция проверит все возможные состояния проекта, чтобы гарантировать правильную обработку всех входных сценариев. Вы где-то забыли оператор if? Вы не забыли дать каждому возможному назначению операторов случая? Это типы ошибок, которые очень легко допустить, если вы не моделируете свой проект. Давайте начнем.

У вас загружен и установлен Modelsim на вашем компьютере? Получите это здесь. Выполните установку с параметрами по умолчанию. Обратите внимание, что вам необходимо запросить лицензию у Mentor Graphics . В конце установки необходимо нажать «Готово», и откроется окно браузера с формой запроса лицензии. Нажатие на существующую ссылку запроса лицензии в закладке браузера или на ссылке, размещенной в Интернете, не сработает.

Код, который мы будем моделировать, представляет собой проект VHDL, представленный ниже. Фактический код не важен, поэтому, если вы изучаете Verilog, это нормально! Для работы с этим руководством вам не обязательно знать VHDL. Код VHDL создает простой логический элемент And и предоставляет ему некоторые входные данные через тестовый стенд. Скопируйте приведенный ниже код в and_gate.vhd, а тестовый стенд — в and_gate_tb.vhd.

and_gate.vhd:

library ieee;
use ieee.std_logic_1164.all;
entity and_gate is
 port (
 input_1 : in std_logic;
 input_2 : in std_logic;
 and_result : out std_logic
 );
end and_gate;
architecture rtl of and_gate is
 signal and_gate : std_logic;
begin
 and_gate <= input_1 and input_2;
 and_result <= and_gate;
end rtl;

and_gate_tb.vhd:

library ieee;
use ieee.std_logic_1164.all;
entity and_gate_tb is
end and_gate_tb;
architecture behave of and_gate_tb is
 signal r_SIG1 : std_logic := '0';
 signal r_SIG2 : std_logic := '0';
 signal w_RESULT : std_logic;
 
 component and_gate is
 port (
 input_1 : in std_logic;
 input_2 : in std_logic;
 and_result : out std_logic);
 end component and_gate;
 
begin
 
 and_gate_INST : and_gate
 port map (
 input_1 => r_SIG1,
 input_2 => r_SIG2,
 and_result => w_RESULT
 );
 process is
 begin
 r_SIG1 <= '0';
 r_SIG2 <= '0';
 wait for 10 ns;
 r_SIG1 <= '0';
 r_SIG2 <= '1';
 wait for 10 ns;
 r_SIG1 <= '1';
 r_SIG2 <= '0';
 wait for 10 ns;
 r_SIG1 <= '1';
 r_SIG2 <= '1';
 wait for 10 ns; 
 end process;
 
end behave;

Давайте откроем Modelsim. Вас приветствует окно, которое выглядит вот так

Главное окно Modelsim

Чтобы запустить симуляцию, вам необходимо создать проект. Нажмите Файл -> Создать -> Проект. Вы увидите окно, представленное слева. Выберите место для вашего нового проекта и дайте ему имя and_gate. Проекты в Modelsim имеют расширение файла .prj. Остальные настройки оставьте по умолчанию. Это всего лишь говорит о том, что весь код библиотеки будет скомпилирован в «работу».

Нажмите «Добавить существующий файл», как показано на рисунке справа. Перейдите в папку, где вы загрузили файлы and_gate.vhd и and_gate_tb.vhd, и добавьте их оба в свой проект. Остальные настройки оставьте по умолчанию. Нажмите «ОК», когда закончите.

Окно проекта Modelsim – файлы, добавленные в проект

Обратите внимание, что файлы успешно добавлены в ваш проект. Видите эти два синих вопросительных знака на рисунке окна проекта Modelsim выше? Это означает, что Modelsim еще не скомпилировал файлы. Вам нужно будет скомпилировать исходные файлы. Для этого щелкните правой кнопкой мыши and_gate.vhd, выберите «Компилировать», затем нажмите «Компилировать все». Вы должны увидеть в окне консоли сообщения зеленого цвета о том, что компиляция прошла успешно, как показано на снимке экрана ниже.

Результаты успешной компиляции

Чтобы начать симуляцию, нажмите «Имитировать» в строке меню, затем нажмите «Начать симуляцию». Откроется окно «Начать симуляцию». Нажмите на знак «плюс» рядом с словом «работа», затем нажмите на знак «плюс» рядом с «and_gate_tb». Убедитесь, что вы выбрали and_gate_tb, а не and_gate, поскольку мы хотим смоделировать проект на уровне испытательного стенда. Как только and_gate_tb будет выделен, нажмите OK.

Окно моделирования Modelsim – моделирование готово

Почти там! Симуляция готова и ждет. Теперь большая часть времени, которое вы используете Modelsim, будет потрачено на просмотр формы сигнала. Представление формы сигнала содержит волны (двоичные 0 и 1, шестнадцатеричные цифры, двоичные цифры, перечислимые типы и т. д.) для всех сигналов в вашем проекте. Он показывает, как ваш модуль реагирует на различные стимулы. На следующем рисунке показано, как выглядит представление формы сигнала, но сначала вам нужно добавить несколько сигналов для мониторинга. В этом примере мы будем отслеживать все сигналы на испытательном стенде. Для этого нажмите щелкните правой кнопкой мыши. на and_gate_tb в окне сима и нажмите Добавить волну . Вы также можете щелкнуть и перетащить сигналы в окно формы сигнала из других окон Modelsim.

Вот ваше окно формы волны. Все сигналы испытательного стенда добавлены в качестве сигналов, которые вы можете отслеживать. Чтобы запустить моделирование, щелкните значок с маленьким листком бумаги и стрелкой вниз рядом с временем 100 нс. Это запустит вашу симуляцию на 100 наносекунд. Посмотрите, как меняются сигналы! Поздравляем! Вы создали свою первую симуляцию Modelsim!

В этом руководстве показано, как создать собственный проект в Modelsim, добавить файлы в проект, скомпилировать исходные файлы, запустить моделирование и просмотреть формы сигналов. Вы готовы изучить все примеры на этой веб-странице и провести моделирование самостоятельно. Для навигации используйте боковую панель вверху страницы.


VHDL

  1. Курс FPGA — все, что вам нужно знать о курсе Dot Matrix VHDL
  2. Подписанный и неподписанный в VHDL
  3. Как создать процесс со списком конфиденциальности в VHDL
  4. Как генерировать случайные числа в VHDL
  5. Контроллер двойного 7-сегментного дисплея VHDL для твердотельного накопителя Pmod — простая интеграция с FPGA
  6. Как бесплатно установить симулятор и редактор VHDL
  7. Записи — пример VHDL
  8. Автоматизируйте разработку FPGA с помощью Jenkins, Vivado и GitHub на Linux VPS
  9. Файл стимула читается в тестовом стенде с помощью TEXTIO
  10. Как использовать нечистую функцию в VHDL