Реклама

Генерация Verilog-кода из моделей в среде Engee

#Генерация #Verilog-кода #Engee #ПЛИС #Разбираем
Генерация Verilog-кода из моделей в среде Engee

Как перенести работающую модель из Engee в ПЛИС? Разбираем весь путь: от выбора форматов с фиксированной точкой до генерации Verilog-кода, его проверки и подготовки к синтезу. На примерах регулятора, калькулятора и КИХ-фильтра показываем, какие решения приходится принимать за пределами самой модели и на что обратить внимание при реализации в железе. Читать далее

Предположим, мы построили в Engee модель регулятора или фильтра, подали тестовые сигналы и убедились, что алгоритм работает. Теперь нужно перенести эти вычисления в программируемую логическую интегральную схему — ПЛИС (FPGA). Это необходимо, когда требуется параллельно обрабатывать поток данных и выдавать результаты в заданном темпе. Однако работающая модель ещё не определяет всех деталей будущей аппаратной реализации. Нужно выбрать, как представлять числа, какие операции выполнять одновременно и где хранить результаты предыдущих шагов. Пройдём этот путь на примерах Engee: выберем форматы с фиксированной точкой, получим Verilog-код, проверим его поведение и разберём, что необходимо для реализации в ПЛИС.

Сначала разберёмся, что именно мы переносим в ПЛИС. Программа для процессора задаёт последовательность команд. Описание ПЛИС задаёт цифровую схему: вычислительные узлы, связи между ними и регистры для хранения данных. Независимые узлы такой схемы могут работать одновременно. Чтобы описать их работу, используют языки описания аппаратуры, например Verilog и VHDL. По этому описанию можно сначала проверить поведение устройства в симуляции, а затем построить схему средствами проектирования. В статье будем использовать Verilog и разбирать его конструкции по мере появления в примерах.

Чтобы перейти от вычислений к схеме, нужно явно определить, где хранятся данные и когда они изменяются. Такое описание называют RTL — уровнем регистровых передач (Register Transfer Level). Например,…

Нетл…