HDL Test Bench Properties

Сгенерируйте и настройте испытательный стенд HDL

Со свойствами испытательного стенда HDL можно включить и настроить генерацию испытательного стенда.

Задайте эти свойства в качестве аргументов значения имени к generatehdl functionName имя свойства и Value соответствующее значение. Можно задать несколько аргументов значения имени в любом порядке как 'Name1',Value1,...,'NameN',ValueN.

Например:

fir = dsp.FIRFilter('Structure','Direct form antisymmetric');
generatehdl(fir,'InputDataType',numerictype(1,16,15), ...
    'GenerateHDLTestBench','on','MultifileTestBench','on');

Общий

развернуть все

Сгенерируйте испытательный стенд HDL для своего кода фильтра HDL в виде 'off' или 'on'. Испытательный стенд применяет сгенерированные входные стимулы для сгенерированного кода фильтра и сравнивает выход с сохраненными результатами симуляции MATLAB®.

Имя файла сгенерированного испытательного стенда в виде filtername_tb, вектор символов или строковый скаляр. filtername имя сгенерированного модуля сущности или Verilog VHDL. Можно настроить это имя путем установки Name свойство. Кодер добавляет расширение типа файла имени испытательного стенда, как задано VerilogFileExtension или VHDLFileExtension свойства. Файл испытательного стенда расположен в папке, заданной TargetDirectory свойство.

Если вы задаете значение, которое является зарезервированным словом на выходном языке, кодер добавляет постфиксный _rsvd к этому значению. Можно обновить постфиксное значение при помощи ReservedWordPostfix свойство. Для получения дополнительной информации смотрите Решение Конфликтов Зарезервированного слова HDL.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Допуск на погрешность для сравнения испытательного стенда в битах в виде 4 или положительное целое число. Испытательный стенд сравнивает результаты с опорными сигналами. Следующая оптимизация HDL может сгенерировать код испытательного стенда, который приводит к числовым результатам, которые отличаются от результатов, приведенных исходной функцией filter:

Допуск на погрешность задает приемлемое минимальное количество битов, которыми могут отличаться числовые результаты, прежде чем испытательный стенд выдает предупреждение.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Сгенерируйте многофайловый испытательный стенд в виде 'off' или 'on'. Когда это свойство установлено в 'on', кодер генерирует отдельные файлы для кода испытательного стенда, функций помощника и данных об испытательном стенде вместо одного файла. Имена файлов выведены из TestBenchName и TestBenchDataPostfix свойства. Например, если именем сгенерированного модуля сущности или Verilog VHDL является my_fir_filt, имена файлов испытательного стенда по умолчанию:

  • my_fir_filt_tb — Код испытательного стенда

  • my_fir_filt_tb_pkg — Помощник функционирует пакет

  • my_fir_filt_tb_data — Блок данных тестового вектора

Кодер добавляет к этим именам файлов расширение типа файла, заданное VerilogFileExtension или VHDLFileExtension свойства.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Постфикс к имени файла данных об испытательном стенде в виде '_data', вектор символов или строковый скаляр. Кодер генерирует файл данных испытательного стенда с именем файла, полученным путем добавления этого постфикса к TestBenchName значение свойства.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench и MultifileTestBench свойства установлены в 'on'.

Постфикс к опорному сигналу называет в виде '_ref', вектор символов или строковый скаляр. Кодер применяет этот постфикс к ссылочному выходному сигналу в испытательном стенде. Кодер представляет данные об опорном сигнале как массивы.

CONSTANT filter_out_expected : filter_in_data_log_type :=
    (
         -2.4228738523269194E-03,
         -2.0832449820793104E-03,
         6.7703446401186345E-03,...
Для сравнения испытательный стенд получает доступ к одному значению массивов за один раз.
 SIGNAL filter_out_ref                   : real := 0.0; -- double
...
 filter_out_ref <= filter_out_expected(TO_INTEGER(filter_out_addr));

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Часы и сброс

развернуть все

Период, в который испытательный стенд управляет входными сигналами часов высоко (1) в нс в виде 5 или положительная скалярная величина. Можно задать целое число или значение с плавающей точкой с двойной точностью, имеющее до 6 значительных цифр после десятичной точки.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench и ForceClock свойства установлены в 'on'.

Период, в который испытательный стенд управляет входными сигналами часов низко (0) в нс в виде 5 или положительная скалярная величина. Можно задать целое число или значение с плавающей точкой с двойной точностью, имеющее до 6 значительных цифр после десятичной точки.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench и ForceClock свойства установлены в 'on'.

Испытательный стенд обеспечивает входные сигналы часов в виде одного из следующего:

  • 'on' — Испытательный стенд обеспечивает входные сигналы часов. Значения ClockHighTime и ClockLowTime свойства управляют формой волны часов.

  • 'off' — Необходимо управлять входными сигналами часов из внешнего источника.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Часы сил испытательного стенда включают входные сигналы в виде одного из следующего:

  • 'on' — Силы испытательного стенда часы включают входные сигналы. Полярность активна высокий (1). Этот сигнал также выполняет установку HoldTime свойство.

  • 'off' — Необходимо управлять часами, включают входные сигналы из внешнего источника.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Такты между deassertion сброса и утверждением часов включают в виде 1 или положительное целое число. Испытательный стенд ожидает это количество циклов между deasserting сигнал сброса и утверждением, что часы включают сигнал. HoldTime свойство также применяется.

На рисунке испытательный стенд deasserts возбуждаемый высоким уровнем сигнала сигнал сброса после того, как интервал пометил Hold Time. Испытательный стенд затем утверждает, что часы включают после дальнейшего интервала, пометил Clock enable delay.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Испытательный стенд обеспечивает входные сигналы сброса в виде одного из следующего:

  • 'on' — Испытательный стенд обеспечивает входные сигналы сброса. Можно также задать время задержки, чтобы управлять синхронизацией сброса путем установки HoldTime свойство.

  • 'off' — Необходимо управлять входными сигналами сброса из внешнего источника.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Время задержки для значений входных данных и обеспеченного сброса сигнализирует в нс в виде 2 или положительная скалярная величина. Испытательный стенд содержит сигналы ввода данных фильтра и обеспеченные входные сигналы сброса для интервала требуемого времени мимо возрастающего фронта синхроимпульса. Можно задать целое число или значение с плавающей точкой с двойной точностью, имеющее до 6 значительных цифр после десятичной точки.

Следующие рисунки показывают приложение времени задержки, thold, для сигналов ввода данных и сброса. Сигналы обеспечены к активному, высокому и активному низко. ResetLength свойство установлено в 2 цикла, и испытательный стенд утверждает сигнал сброса для в общей сложности 2 циклов плюс thold.

Время задержки для входных сигналов сброса

Время задержки для сигналов ввода данных

Зависимости

Это свойство применяется только когда GenerateHDLTestBench и ForceReset свойства установлены в 'on'.

Количество тактов, что испытательный стенд утверждает сигнал сброса в виде 2 или положительное целое число.

Испытательный стенд по умолчанию утверждает возбуждаемый высоким уровнем сигнала сигнал сброса для 2 тактов.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Испытательный стенд содержит входные данные разогнанных, просачивается допустимое состояние в виде 'off' или 'on'. Последовательные архитектуры и распределенные арифметические архитектуры реализуют внутренние тактовые частоты выше, чем входной уровень. В таких реализациях фильтра основные часы запускают N циклы (N >= 2) для каждой входной выборки. Это свойство относится к количеству тактов, что испытательный стенд содержит входные данные в допустимом состоянии.

  • 'off' — Испытательный стенд содержит значения данных в допустимом состоянии для одного такта. Для следующего N-1 циклы, данные находятся в неизвестном состоянии (описанный как 'X'). Принуждение входных данных к неизвестному состоянию проверяет что сгенерированные кодовые регистры фильтра входные данные только на первом цикле.

  • 'on' — Испытательный стенд содержит значения входных данных в допустимом состоянии через N такты.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Инициализируйте вход испытательного стенда в виде одного из следующего:

  • 'off' — В начале симуляции испытательный стенд управляет неизвестным состоянием (описанный как 'X') к входным портам.

  • 'on' — В начале симуляции испытательный стенд управляет нулями к входным портам.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Стимул

развернуть все

Входные стимулы применились к сгенерированному фильтру в виде {'impulse','step','ramp','chirp','noise'}, массив ячеек из символьных векторов или массив строк. Массив ячеек или массив строк должны быть подмножеством набора по умолчанию стимулов. Можно задать комбинации стимулов в любом порядке. Например:

generatehdl(filt,'InputDataType',numerictype(1,16,15), ...
    'GenerateHDLTestbench','on', ...
    'TestBenchStimulus',{'ramp','impulse','noise'})
Можно задать пользовательский входной стимул при помощи TestBenchUserStimulus свойство. Когда TestBenchUserStimulus непустой вектор, он берет приоритет над TestBenchStimulus.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Пользовательский входной стимул в виде одного из следующего:

  • [] (пустой вектор) — Испытательный стенд использует TestBenchStimulus свойство сгенерировать входные данные.

  • Вектор из входных данных — испытательный стенд применяет этот входной стимул для сгенерированного фильтра. Можно задать вектор как вызов функции, возвращающий вектор.

    Например, этот вызов функции генерирует прямоугольную волну с демонстрационной частотой 8 бит в секунду (Фс/8).

    repmat([1 1 1 1 0 0 0 0],1,10)
    
    Задайте этот стимул при вызове generatehdl.
    generatehdl(filt,'InputDataType',numerictype(1,16,15), ...
       'GenerateHDLTestbench','on', ...
       'TestBenchUserStimulus',repmat([1 1 1 1 0 0 0 0],1,10))

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Содействующий стимул для КИХ или БИХ фильтрует в виде одного из следующего:

  • [] (пустой вектор) — Испытательный стенд использует коэффициенты объекта фильтра и обеспечивает входные стимулы. Эта последовательность показывает ответ на входные стимулы и проверяет, что интерфейс пишет один набор коэффициентов в содействующую память как ожидалось.

  • Вектор из коэффициентов (КИХ фильтрует только) — фильтр обрабатывает входные стимулы дважды: однажды с коэффициентами объекта фильтра и однажды с содействующим стимулом. Испытательный стенд проверяет, что интерфейс пишет два различных набора коэффициентов в содействующую память. Для получения дополнительной информации смотрите Генерацию Испытательного стенда для Программируемых КИХ-Коэффициентов.

  • Массив ячеек коэффициента и значений шкалы (БИХ фильтрует только) — Задает стимул как вектор-столбец значений шкалы и матрицы секции второго порядка (SOS). Фильтр обрабатывает входные стимулы дважды: однажды с коэффициентами объекта фильтра и однажды с содействующим стимулом. Испытательный стенд проверяет, что интерфейс пишет два различных набора коэффициентов в содействующую память. Для получения дополнительной информации смотрите Генерацию Испытательного стенда для Программируемых БИХ-Коэффициентов.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on' и CoefficientSource свойство установлено в 'ProcessorInterface'.

Дробный стимул задержки для односкоростной Фэрроу фильтрует в виде одного из следующего:

  • Постоянное числовое значение — испытательный стенд управляет дробным сигналом задержки входа с постоянным значением, полученным из объекта фильтра.

  • Вектор из числовых значений — испытательный стенд управляет дробным сигналом задержки входа от этого вектора. Можно задать вектор как вызов функции, возвращающий вектор. Вектор должен иметь ту же длину как входной сигнал испытательного стенда.

  • 'RandSweep' — Испытательный стенд управляет дробным сигналом задержки входа при помощи вектора из значений, инкрементно увеличивающихся по диапазону от 0 до 1. Этот сигнал стимула имеет ту же длительность как входной сигнал к фильтру, но изменяется на более медленном уровне. Каждое дробное значение задержки, полученное из вектора, сохранено на 10% общего времени входного сигнала.

  • 'RampSweep' — Испытательный стенд управляет дробным сигналом задержки входа при помощи вектора из случайных значений от 0 до 1. Этот сигнал стимула имеет ту же длительность как входной сигнал к фильтру, но это изменяется на более медленном уровне. Каждое дробное значение задержки, полученное из вектора, сохранено на 10% общего времени входного сигнала.

Смотрите свойства генерации кода для неоплодотворенных фильтров.

Зависимости

Это свойство применяется только когда GenerateHDLTestBench свойство установлено в 'on'.

Уровень ввел стимул для фильтров Каскадной расчески интегратора (CIC) в виде максимального фактора изменения уровня или целого числа. Если вы не задаете TestBenchRateStimulus, кодер принимает, что фильтр спроектирован с максимальным ожидаемым уровнем. Коэффициент децимации (для CIC decimators) или коэффициент интерполяции (для интерполяторов CIC) установлен на этот максимальный фактор изменения уровня.

Смотрите CIC-фильтры с плавающей ставкой.

Зависимости

Это свойство применяется только к CIC-фильтрам с плавающей ставкой, когда GenerateHDLTestBench и AddRatePort свойства установлены в 'on'.

Cosimulation

развернуть все

Сгенерируйте модель Simulink HDL блоки Cosimulation в виде 'off' или 'on'. Сгенерированная модель Simulink содержит два HDL блоки Cosimulation: один для Mentor Graphics® ModelSim® и один для Cadence Incisive®. Кодер конфигурирует эти блоки, чтобы соответствовать порту и интерфейсу типа данных выбранного фильтра. Используйте эти блоки для cosimulate ваш проект с желаемым симулятором HDL в Simulink.

Зависимости

Эта функция требует лицензии HDL Verifier™.

Сгенерируйте модель Simulink реализованного фильтра и блока HDL Cosimulation в виде 'none', 'ModelSim', или 'Incisive'. Когда вы устанавливаете это свойство на 'ModelSim' или 'Incisive', кодер генерирует и открывает модель Simulink. Модель содержит HDL cosimulation блок для выбранного средства моделирования и поведенческая реализация создания фильтра. Модель применяет сгенерированные входные стимулы и сравнивает выход средства моделирования EDA с выходом поведенческой подсистемы фильтра. Можно настроить входной стимул и допуск на погрешность с помощью тех же свойств, как вы были бы для сгенерированного испытательного стенда HDL.

Смотрите генерацию модели Simulink для Cosimulation с симулятором HDL.

Зависимости

Эта функция требует лицензии HDL Verifier.

Советы

Если вы используете функцию fdhdltool чтобы сгенерировать HDL-код, можно установить соответствующие свойства на вкладке Test Bench в диалоговом окне Generate HDL.

Представлено до R2006a