Используйте пользовательский интерфейс Filter Design HDL Coder™ или интерфейс командной строки, чтобы сгенерировать HDL-код для вашего создания фильтра и испытательного стенда. Пользовательский интерфейс генерирует файл испытательного стенда VHDL или Verilog, в зависимости от вашего выбора языка для сгенерированного HDL-кода. Можно задать различный язык испытательного стенда путем выбирания опции Test bench language в панели Test Bench диалогового окна Generate HDL. Вы не можете задать различный язык испытательного стенда при использовании интерфейса командной строки.
Следующий рисунок показывает настройки для генерации фильтра (VHDL) и испытательный стенд (Verilog) файлы MyFilter.vhd
, и MyFilter_tb.v
. Диалоговое окно также задает местоположение для сгенерированных файлов, в этом случае, папки hdlsrc
под текущей рабочей папкой.
После того, как вы нажимаете Generate, информация о прогрессе отображений кодера, похожая на следующее в Командном окне MATLAB®:
### Starting VHDL code generation process for filter: MyFilter ### Generating: C:\Work\sl_hdlcoder_work\hdlsrc\MyFilter.vhd ### Starting generation of MyFilter VHDL entity ### Starting generation of MyFilter VHDL architecture ### HDL latency is 2 samples ### Successful completion of VHDL code generation process for filter: MyFilter ### Starting generation of VERILOG Test Bench ### Generating input stimulus ### Done generating input stimulus; length 3429 samples. ### Generating Test bench: C:\Work\sl_hdlcoder_work\hdlsrc\MyFilter_tb.v ### Please wait ... ### Done generating VERILOG Test Bench
Примечание
Продолжительность входных выборок стимула варьируется с фильтра на фильтр. Например, значение 3429
в предыдущем сообщении не фиксируется последовательность; значение зависит от фильтра под тестом.
Если вы вызываете generatehdl
функция от интерфейса командной строки, кода набора и опций генерации испытательного стенда с именем свойства и парами значения. Можно также использовать функцию generatetbstimulus
возвратить стимул испытательного стенда для переменной рабочей области.
После того, как вы сгенерируете свой фильтр и файлы HDL испытательного стенда, запустите свое средство моделирования. Когда вы запускаете средство моделирования Mentor Graphics® ModelSim®, отображение на экране, похожее на следующее, появляется:
После запуска средства моделирования, набор текущая папка к папке, которая содержит ваши сгенерированные файлы HDL.
Используя ваш выбор компилятора HDL, скомпилируйте сгенерированный фильтр и файлы HDL испытательного стенда. В зависимости от языка сгенерированного испытательного стенда и средства моделирования вы используете, вам, вероятно, придется завершить некоторую настройку перед компиляцией. Например, в средстве моделирования Mentor Graphics ModelSim, вы можете принять решение создать библиотеку проекта, чтобы сохранить скомпилированные сущности VHDL, пакеты, архитектуры и настройки.
Следующая последовательность команды Mentor Graphics ModelSim изменяет текущую папку в hdlsrc
, создает библиотеку work
проекта, и код испытательного стенда фильтра и фильтра VHDL компиляций.
vlib
команда создает библиотеку проекта, работают и vcom
команды инициируют компиляции.
cd hdlsrc vlib work vcom MyFilter.vhd vcom MyFilter_tb.vhd
Примечание
Для кода испытательного стенда VHDL, который имеет (двойную) реализацию с плавающей точкой, используйте компилятор, который поддерживает VHDL-93 или VHDL-02. Например, в средстве моделирования Mentor Graphics ModelSim, задайте vcom
команда с -93
опция. Не компилируйте сгенерированный код испытательного стенда с компилятором VHDL-87. Испытательные стенды VHDL с помощью типов данных с двойной точностью не поддерживают VHDL-87. Код испытательного стенда использует атрибут изображения, который доступен только в VHDL-93 или выше.
Следующее отображение на экране показывает эту последовательность команды и информационные сообщения, отображенные во время компиляции.
Если ваши сгенерированные файлы HDL скомпилированы, загружают и запускают испытательный стенд. Процедура варьируется в зависимости от средства моделирования, которое вы используете. В средстве моделирования Mentor Graphics ModelSim вы загружаете испытательный стенд для симуляции с vsim
команда. Например:
vsim work.MyFilter_tb
Следующее отображение показывает результаты загрузки work.MyFilter_tb
с vsim
команда.
Если проект загружается в средство моделирования, рассмотрите открытие окна экрана для контроля симуляции, когда испытательный стенд запускается. Например, в средстве моделирования Mentor Graphics ModelSim, можно использовать add wave *
команда, чтобы открыть окно wave, чтобы просмотреть результаты симуляции как формы волны HDL.
Чтобы начать запускать симуляцию, дайте команду средства моделирования запуска. Например, в средстве моделирования Mentor Graphics ModelSim, можно начать симуляцию с run -all
команда.
Следующее отображение показывает add wave *
команда, используемая, чтобы открыть окно wave и -run all
команда, используемая, чтобы запустить симуляцию.
Когда ваша симуляция испытательного стенда запускается, см. за сообщениями об ошибке. Если сообщения об ошибке появляются, интерпретируют их, когда они принадлежат вашему созданию фильтра и опциям генерации кода, вы применялись. Например, некоторые опции оптимизации HDL могут привести к числовым результатам, которые отличаются от результатов, приведенных исходным объектом фильтра. Для испытательных стендов HDL сравнены ожидаемые и фактические результаты. Если они отличаются (исключая заданный допуск на погрешность), сообщение об ошибке, похожее на следующее, возвращено:
Error in filter test: Expected xxxxxxxx Actual xxxxxxxx
Необходимо определить, ожидаются ли фактические результаты на основе индивидуальных настроек, которые вы задали при генерации HDL-кода фильтра.
Примечание
Сообщение отказа, которое появляется в предыдущем отображении, не отмечает ошибка. Если сообщение включает текст Test Complete
, испытательный стенд выполнение до завершения, не сталкиваясь с ошибкой. Failure
часть сообщения связывается к механизму использование кодера, чтобы закончить симуляцию.
Следующее окно wave показывает результаты симуляции формами волны HDL.
Включить генерацию испытательного стенда HDL:
Выберите панель Test Bench в диалоговом окне Generate HDL.
Выберите опцию HDL test bench как показано в следующем рисунке.
Нажмите Generate, чтобы сгенерировать код испытательного стенда и HDL.
Совет
По умолчанию HDL test bench выбран.
Альтернатива командной строки: используйте generatehdl
функция со свойством GenerateHDLTestBench
сгенерировать испытательный стенд HDL.
Кодер выводит имя файла испытательного стенда путем добавления постфиксного _tb
к имени квантованного объекта фильтра. Расширение типа файла зависит от типа испытательного стенда, который генерируется.
Если испытательный стенд... | Расширение... |
---|---|
Файл Verilog | Заданный полем Verilog file extension в подпанели General панели Global Settings диалогового окна Generate HDL |
Файл VHDL | Заданный полем VHDL file extension в панели Global Settings диалогового окна Generate HDL |
Файл помещается в папку, заданную опцией Folder в панели Target диалогового окна Generate HDL.
Чтобы задать имя испытательного стенда, введите имя в поле Name панели Test bench settings как показано в следующем рисунке.
Примечание
Если вы вводите вектор символов, который является зарезервированным словом VHDL или Verilog, кодер корректирует идентификатор путем добавления постфикса зарезервированного слова к вектору символов.
Альтернатива командной строки: используйте generatehdl
свойство TestBenchName
задавать имя для вашего испытательного стенда.
По умолчанию кодер генерирует один файл испытательного стенда, содержа функции помощника испытательного стенда, данные и код испытательного стенда. Можно разделить эти элементы в отдельные файлы путем выбирания опции Multi-file test bench в подпанели Configuration панели Test Bench диалогового окна Generate HDL.
Когда вы выбираете опцию Multi-file test bench, опция Test bench data file name postfix включена. Имена файлов испытательного стенда затем выведены из имени испытательного стенда и постфиксной установки, TestBenchName_TestBenchDataPostfix
.
Например, если именем испытательного стенда является my_fir_filt
, и выходной язык является VHDL, имена файлов испытательного стенда по умолчанию:
my_fir_filt_tb.vhd
: код испытательного стенда
my_fir_filt_tb_pkg.vhd
: помощник функционирует пакет
my_fir_filt_tb_data.vhd
: блок данных
Если именем фильтра является my_fir_filt
и выходным языком является Verilog, имена файлов испытательного стенда по умолчанию:
my_fir_filt_tb.v
: код испытательного стенда
my_fir_filt_tb_pkg.v
: помощник функционирует пакет
my_fir_filt_tb_data.v
: данные об испытательном стенде
Альтернатива командной строки: используйте generatehdl
свойства MultifileTestBench
, TestBenchDataPostfix
, и TestBenchName
сгенерировать и назвать отдельные функции помощника испытательного стенда, данные и файлы кода испытательного стенда.
На основе настроек по умолчанию кодер конфигурирует часы для испытательного стенда фильтра, таким образом что это:
Часы сил включают входные сигналы к активному, высокому (1).
Утверждает, что часы включают такт сигнала 1 после deassertion сигнала сброса.
Силы синхронизируют входные сигналы низко (0) на срок 5 наносекунд и высоко (1) на срок 5 наносекунд.
Изменить эти параметры конфигурации часов:
Нажмите Configuration в панели Test bench диалогового окна Generate HDL.
В панели Test Bench выберите подпанель Configuration.
Сделайте следующие изменения конфигурации как описано в следующей таблице:
Если вы хотите... | То... |
---|---|
Отключите принуждение часов, включают входные сигналы | Очистите Force clock enable. |
Отключите принуждение входных сигналов часов | Очистите Force clock. |
Сбросьте номер наносекунд, что испытательный стенд управляет входными сигналами часов низко (0) | Задайте положительное целое число или дважды (имеющий до 6 значительных цифр после десятичной точки) в поле Clock low time. |
Сбросьте номер наносекунд, что испытательный стенд управляет входными сигналами часов высоко (1) | Задайте положительное целое число или дважды (имеющий до 6 значительных цифр после десятичной точки) в поле Clock high time. |
Изменитесь время задержки протекло между deassertion сигнала сброса, и утверждение часов включают сигнал. | Задайте положительное целое число в поле Clock enable delay. |
Следующая фигура подсвечивает применимые опции.
Альтернатива командной строки: используйте generatehdl
свойства ForceClock
, ClockHighTime
, ForceClockEnable
, и TestBenchClockEnableDelay
реконфигурировать часы испытательного стенда.
На основе настроек по умолчанию кодер конфигурирует сброс для испытательного стенда фильтра, таким образом что это:
Силы сбрасывают входные сигналы к активному, высокому (1). (Установите уровни на входе сброса испытательного стенда с опцией Reset asserted level).
Утверждает входные сигналы сброса на срок 2 тактов.
Применяет время задержки 2 наносекунд для входных сигналов сброса.
Время задержки является количеством времени, испытательный стенд содержит входные сигналы сброса мимо часов возрастающее ребро. Рисунок показывает приложение времени задержки (thold) для входных сигналов сброса в активных высоких и активных низких случаях. Испытательный стенд утверждает сброс после некоторых начальных тактов, заданных опцией Reset length. Reset length по умолчанию 2 тактов показывают.
Примечание
Время задержки применяется к входным сигналам сброса, только если принуждение входных сигналов сброса включено.
Следующая таблица обобщает параметры конфигурации сброса,
Если вы хотите... | То... |
---|---|
Отключите принуждение входных сигналов сброса | Очистите Force reset в панели Test Bench диалогового окна Generate HDL. |
Измените отрезок времени (за такты), во время которого утверждается сброс | Установите Reset length (in clock cycles) на целое число, больше, чем или равный 0. Эта опция расположена в панели Test Bench диалогового окна Generate HDL. |
Измените значение сброса в активный, низкий (0) | Выберите Active-low в меню Reset asserted level в панели Global Settings диалогового окна Generate HDL (см. Установку Утверждаемого Уровня для Входного сигнала Сброса), |
Установите время задержки | Задайте положительное целое число или дважды (имеющий до 6 значительных цифр после десятичной точки), представляя наносекунды, в поле Hold time. Когда Hold time изменяется, значение Setup time (ns) обновляется. Значение Setup time (ns), вычисленное как (clock period - HoldTime) в наносекундах. Эти опции находятся в панели Test Bench диалогового окна Generate HDL. |
Следующие фигуры подсвечивают применимые опции.
Примечание
Настройки времени задержки и времени установки также применяются к сигналам ввода данных.
Альтернатива командной строки: используйте generatehdl
свойства ForceReset
, ResetLength
, и HoldTime
реконфигурировать сброс испытательного стенда.
По умолчанию кодер применяет время задержки 2 наносекунд для сигналов ввода данных фильтра. Время задержки является количеством времени, что сигналы ввода данных состоят в том, чтобы считаться мимо часов возрастающим ребром. Следующий рисунок показывает приложение времени задержки (thold) для сигналов ввода данных.
Изменить настройки времени задержки,
Кликните по вкладке Test Bench в диалоговом окне Generate HDL.
В панели Test Bench выберите подпанель Configuration.
Задайте положительное целое число или дважды (имеющий до 6 значительных цифр после десятичной точки), представляя наносекунды, в поле Hold time. В следующем рисунке время задержки установлено в 2 наносекунды.
Когда Hold time изменяется, обновления значения Setup time (ns). Кодер вычисляет значение Setup time (ns) как (clock period - HoldTime)
в наносекундах. Setup time (ns) является полем только для отображения.
Примечание
Когда вы позволяете обеспечить входных сигналов сброса, настройки времени задержки и времени установки также применяются к сигналам сброса.
Альтернатива командной строки: используйте generatehdl
свойство HoldTime
настраивать время задержки, устанавливая.
Индивидуальные настройки, которые обеспечивают оптимизацию, могут сгенерировать код испытательного стенда, который приводит к числовым результатам, которые отличаются от результатов, приведенных исходным объектом фильтра. Эти опции включают:
Optimize for HDL
Набор FIR adder style к Tree
Add pipeline registers для КИХ, асимметричного КИХ и симметричных КИХ-фильтров
С учетом различий в числовых результатах рассмотрите установку допуска на погрешность для сгенерированного испытательного стенда. Допуск на погрешность является количеством младших значащих битов, которые испытательный стенд игнорирует при сравнении результатов. Установить допуск на погрешность:
Выберите панель Test Bench в диалоговом окне Generate HDL.
В панели Test Bench выберите подпанель Configuration.
Для фильтров фиксированной точки начальное поле Error margin (bits) имеет значение по умолчанию 4
. Чтобы изменить допуск на погрешность, введите целое число в поле Error margin (bits). В следующем рисунке допуск на погрешность установлен в 4
биты.
Альтернатива командной строки: используйте generatehdl
свойство ErrorMargin
задавать количество битов терпимой ошибки.
По умолчанию начальным значением, управляемым на входных параметрах испытательного стенда, является 'X'
(неизвестный). В качестве альтернативы можно указать, что начальным значением, управляемым на входных параметрах испытательного стенда, является 0
, можно следующим образом:
Выберите панель Test Bench в диалоговом окне Generate HDL.
В панели Test Bench выберите подпанель Configuration.
Установить начальное входное значение испытательного стенда 0
, выберите опцию Initialize test bench inputs.
Установить начальное входное значение испытательного стенда 'X'
, очистите опцию Initialize test bench inputs.
Альтернатива командной строки: используйте generatehdl
свойство InitializeTestBenchInputs
установить начальное входное значение испытательного стенда.
По умолчанию кодер генерирует испытательный стенд фильтра, который включает стимулы, которые соответствуют данному типу фильтра. Однако можно настроить настройки стимулов или задать пользовательские стимулы при желании.
Чтобы изменить стимулы, включенные в испытательный стенд, выберите один или несколько типов ответа на подпанели Stimuli вкладки Test bench диалогового окна Generate HDL. Фигура подсвечивает эту панель диалогового окна.
Если вы выбираете User defined response, задаете выражение или функцию, которая возвращает вектор из значений, которые будут применены к фильтру. Значения, заданные в векторе, квантуются и масштабируются на основе настроек квантования фильтра.
Альтернатива командной строки: используйте generatehdl
свойства TestBenchStimulus
и TestBenchUserStimulus
настраивать настройки стимулов.
Данные об опорном сигнале представлены как массивы в сгенерированном коде испытательного стенда. Вектор символов, заданный Test bench reference postfix, добавлен к сгенерированным именам сигнала. Значением по умолчанию является '_ref'
.
Можно установить постфикс на значение кроме '_ref'
. Изменить этот параметр:
Выберите панель Test Bench в диалоговом окне Generate HDL.
В панели Test Bench выберите подпанель Configuration.
Введите новый вектор символов в поле Test bench reference postfix как показано в следующем рисунке.
Альтернатива командной строки: используйте generatehdl
свойство TestBenchReferencePostfix
изменить постфиксный вектор символов.