HDL Test Bench Properties

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

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

Задайте эти свойства как аргументы имя-значение для generatehdl функция. Name - имя свойства и 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 - имя сгенерированной сущности VHDL или модуля Verilog. Вы можете настроить это имя путем установки Name свойство. Кодер добавляет расширение типа файла к имени испытательного стенда, как указано в VerilogFileExtension или VHDLFileExtension свойства. Испытательный стенд расположен в папке, заданной TargetDirectory свойство.

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

Зависимости

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

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

  • CastBeforeSum

  • OptimizeForHDL

  • FIRAdderStyle установлено на 'tree' или 'pipelined'

  • AddPipelineRegisters с конечной импульсной характеристикой, асимметричными конечными импульсными характеристиками и симметричными конечными импульсными характеристиками фильтрами

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

Зависимости

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

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

  • my_fir_filt_tb - Испытательный стенд

  • my_fir_filt_tb_pkg - Пакет функций Helper

  • 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'.

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

Зависимости

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

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

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

  • 'off' - Вы должны управлять входными сигналами синхроимпульса от внешнего источника.

Зависимости

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

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

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

  • 'off' - Вы должны управлять входными сигналами включения синхроимпульса от внешнего источника.

Зависимости

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

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

На рисунке испытательный стенд отключает сигнал сброса активный-высокий после интервала, обозначенного Hold Time. Затем испытательный стенд устанавливает активацию синхроимпульса через дополнительный интервал времени, обозначенный Clock enable delay.

Зависимости

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

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

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

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

Зависимости

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

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

Следующие рисунки показывают применение времени удержания, thold, для входных сигналов сброса и данных. Сигналы вынуждены быть активными высокими и активными низкими. The 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 битом в секунду (Fs/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'.

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

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

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

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

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

Смотрите Свойства Генерации кода для Farrow Filters.

Зависимости

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

Входной стимул скорости для фильтров Cascaded Integrator-Comb (CIC), заданный как коэффициент изменения максимальной скорости или целое число. Если вы не задаете TestBenchRateStimulusкодер принимает, что фильтр разработан с максимально ожидаемой скоростью. Коэффициент десятикратного уменьшения (для CIC дециматоров) или коэффициент интерполяции (для CIC интерполяторов) устанавливается на этот коэффициент изменения максимальной скорости.

См. Раздел «Переменная скорость CIC-фильтров».

Зависимости

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

Cosimulation

расширить все

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

Зависимости

Для этой функции требуется лицензия HDL Verifier™.

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

Смотрите Генерацию модели Simulink для косимуляции с помощью Симулятор HDL.

Зависимости

Для этой функции требуется лицензия HDL Verifier.

Совет

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

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