Сгенерируйте и настройте испытательный стенд HDL
Со свойствами испытательного стенда HDL можно включить и настроить генерацию испытательного стенда.
Задайте эти свойства как аргументы name-value к generatehdl
functionName
имя свойства и Value
соответствующее значение. Можно задать несколько аргументов name-value в любом порядке как 'Name1',Value1,...,'NameN',ValueN
.
Например:
fir = dsp.FIRFilter('Structure','Direct form antisymmetric'); generatehdl(fir,'InputDataType',numerictype(1,16,15), ... 'GenerateHDLTestBench','on','MultifileTestBench','on');
GenerateHDLTestBench
— Сгенерируйте испытательный стенд HDL'off'
(значение по умолчанию) | 'on'
Сгенерируйте испытательный стенд HDL для своего кода фильтра HDL в виде 'off'
или 'on'
. Испытательный стенд применяет сгенерированные входные стимулы для сгенерированного кода фильтра и сравнивает выход с сохраненным MATLAB® результаты симуляции.
TestBenchName
— Имя файла сгенерированного испытательного стендаfiltername
_tb
(значение по умолчанию) | вектор символов | строковый скалярИмя файла сгенерированного испытательного стенда в виде
, вектор символов или строковый скаляр. filtername
_tbfiltername
имя сгенерированного модуля сущности или Verilog VHDL. Можно настроить это имя путем установки Name
свойство. Кодер добавляет расширение типа файла имени испытательного стенда, как задано VerilogFileExtension
или VHDLFileExtension
свойства. Файл испытательного стенда расположен в папке, заданной TargetDirectory
свойство.
Если вы задаете значение, которое является зарезервированным словом на выходном языке, кодер добавляет постфиксный _rsvd
к этому значению. Можно обновить постфиксное значение при помощи ReservedWordPostfix
свойство. Для получения дополнительной информации смотрите Решение Конфликтов Зарезервированного слова HDL.
Это свойство применяется только когда GenerateHDLTestBench
свойство установлено в 'on'
.
ErrorMargin
— Допуск на погрешность для сравнения испытательного стенда в битах
(значение по умолчанию) | положительное целое числоДопуск на погрешность для сравнения испытательного стенда в битах в виде 4
или положительное целое число. Испытательный стенд сравнивает результаты с опорными сигналами. Следующая оптимизация HDL может сгенерировать код испытательного стенда, который приводит к числовым результатам, которые отличаются от результатов, приведенных исходной функцией filter:
FIRAdderStyle
установите на 'tree'
или 'pipelined'
AddPipelineRegisters
с КИХ, асимметричным КИХ и симметричными КИХ-фильтрами
Допуск на погрешность задает приемлемое минимальное количество битов, которыми могут отличаться числовые результаты, прежде чем испытательный стенд выдает предупреждение.
Это свойство применяется только когда GenerateHDLTestBench
свойство установлено в 'on'
.
MultifileTestBench
— Сгенерируйте многофайловый испытательный стенд'off'
(значение по умолчанию) | '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'
.
TestBenchDataPostfix
— Постфикс к имени файла данных об испытательном стенде'_data'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс к имени файла данных об испытательном стенде в виде '_data'
, вектор символов или строковый скаляр. Кодер генерирует файл данных испытательного стенда с именем файла, полученным путем добавления этого постфикса к TestBenchName
значение свойства.
Это свойство применяется только когда GenerateHDLTestBench
и MultifileTestBench
свойства установлены в 'on'
.
TestBenchReferencePostfix
— Постфикс к именам опорного сигнала'_ref'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс к опорному сигналу называет в виде '_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'
.
ClockHighTime
— Период, в который испытательный стенд управляет входными сигналами часов высоко (1) в нс
(значение по умолчанию) | положительная скалярная величинаПериод, в который испытательный стенд управляет входными сигналами часов высоко (1) в нс в виде 5
или положительная скалярная величина. Можно задать целое число или значение с плавающей точкой с двойной точностью, имеющее до 6 значительных цифр после десятичной точки.
Это свойство применяется только когда GenerateHDLTestBench
и ForceClock
свойства установлены в 'on'
.
ClockLowTime
— Период, в который испытательный стенд управляет входными сигналами часов низко (0) в нс
(значение по умолчанию) | положительная скалярная величинаПериод, в который испытательный стенд управляет входными сигналами часов низко (0) в нс в виде 5
или положительная скалярная величина. Можно задать целое число или значение с плавающей точкой с двойной точностью, имеющее до 6 значительных цифр после десятичной точки.
Это свойство применяется только когда GenerateHDLTestBench
и ForceClock
свойства установлены в 'on'
.
ForceClock
— Испытательный стенд обеспечивает входные сигналы часов'on'
(значение по умолчанию) | 'off'
Испытательный стенд обеспечивает входные сигналы часов в виде одного из следующего:
'on'
— Испытательный стенд обеспечивает входные сигналы часов. Значения ClockHighTime
и ClockLowTime
свойства управляют формой волны часов.
'off'
— Необходимо управлять входными сигналами часов из внешнего источника.
Это свойство применяется только когда GenerateHDLTestBench
свойство установлено в 'on'
.
ForceClockEnable
— Часы сил испытательного стенда включают входные сигналы'on'
(значение по умолчанию) | 'off'
Часы сил испытательного стенда включают входные сигналы в виде одного из следующего:
'on'
— Силы испытательного стенда часы включают входные сигналы. Полярность активна высокий (1). Этот сигнал также выполняет установку HoldTime
свойство.
'off'
— Необходимо управлять часами, включают входные сигналы из внешнего источника.
Это свойство применяется только когда GenerateHDLTestBench
свойство установлено в 'on'
.
TestBenchClockEnableDelay
— Такты между deassertion сброса и утверждением часов включают
(значение по умолчанию) | положительное целое числоТакты между deassertion сброса и утверждением часов включают в виде 1
или положительное целое число. Испытательный стенд ожидает это количество циклов между deasserting сигнал сброса и утверждением, что часы включают сигнал. HoldTime
свойство также применяется.
На рисунке испытательный стенд deasserts возбуждаемый высоким уровнем сигнала сигнал сброса после того, как интервал пометил Hold Time
. Испытательный стенд затем утверждает, что часы включают после дальнейшего интервала, пометил Clock enable delay
.
Это свойство применяется только когда GenerateHDLTestBench
свойство установлено в 'on'
.
ForceReset
— Испытательный стенд обеспечивает входные сигналы сброса'on'
(значение по умолчанию) | 'off'
Испытательный стенд обеспечивает входные сигналы сброса в виде одного из следующего:
'on'
— Испытательный стенд обеспечивает входные сигналы сброса. Можно также задать время задержки, чтобы управлять синхронизацией сброса путем установки HoldTime
свойство.
'off'
— Необходимо управлять входными сигналами сброса из внешнего источника.
Это свойство применяется только когда GenerateHDLTestBench
свойство установлено в 'on'
.
HoldTime
— Время задержки для значений входных данных и обеспеченного сброса сигнализирует в нс
(значение по умолчанию) | положительная скалярная величинаВремя задержки для значений входных данных и обеспеченного сброса сигнализирует в нс в виде 2
или положительная скалярная величина. Испытательный стенд содержит сигналы ввода данных фильтра и обеспеченные входные сигналы сброса для интервала требуемого времени мимо возрастающего фронта синхроимпульса. Можно задать целое число или значение с плавающей точкой с двойной точностью, имеющее до 6 значительных цифр после десятичной точки.
Следующие рисунки показывают приложение времени задержки, thold, для сигналов ввода данных и сброса. Сигналы обеспечены к активному, высокому и активному низко. ResetLength
свойство установлено в 2 цикла, и испытательный стенд утверждает сигнал сброса для в общей сложности 2 циклов плюс thold.
Время задержки для входных сигналов сброса
Время задержки для сигналов ввода данных
Это свойство применяется только когда GenerateHDLTestBench
и ForceReset
свойства установлены в 'on'
.
ResetLength
— Количество тактов, что испытательный стенд утверждает сигнал сброса
(значение по умолчанию) | положительное целое числоКоличество тактов, что испытательный стенд утверждает сигнал сброса в виде 2
или положительное целое число.
Испытательный стенд по умолчанию утверждает возбуждаемый высоким уровнем сигнала сигнал сброса для 2 тактов.
Это свойство применяется только когда GenerateHDLTestBench
свойство установлено в 'on'
.
HoldInputDataBetweenSamples
— Испытательный стенд содержит входные данные разогнанных, просачивается допустимое состояние'off'
(значение по умолчанию) | 'on'
Испытательный стенд содержит входные данные разогнанных, просачивается допустимое состояние в виде 'off'
или 'on'
. Последовательные архитектуры и распределенные арифметические архитектуры реализуют внутренние тактовые частоты выше, чем входной уровень. В таких реализациях фильтра основные часы запускают N
циклы (N >= 2
) для каждой входной выборки. Это свойство относится к количеству тактов, что испытательный стенд содержит входные данные в допустимом состоянии.
'off'
— Испытательный стенд содержит значения данных в допустимом состоянии для одного такта. Для следующего N-1
циклы, данные находятся в неизвестном состоянии (описанный как 'X'
). Принуждение входных данных к неизвестному состоянию проверяет что сгенерированные кодовые регистры фильтра входные данные только на первом цикле.
'on'
— Испытательный стенд содержит значения входных данных в допустимом состоянии через N
такты.
Это свойство применяется только когда GenerateHDLTestBench
свойство установлено в 'on'
.
InitializeTestBenchInputs
— Инициализируйте вход испытательного стенда'off'
(значение по умолчанию) | 'on'
Инициализируйте вход испытательного стенда в виде одного из следующего:
'off'
— В начале симуляции испытательный стенд управляет неизвестным состоянием (описанный как 'X'
) к входным портам.
'on'
— В начале симуляции испытательный стенд управляет нулями к входным портам.
Это свойство применяется только когда GenerateHDLTestBench
свойство установлено в 'on'
.
TestBenchStimulus
— Входные стимулы применились к сгенерированному фильтру{'impulse','step','ramp','chirp','noise'}
(значение по умолчанию) | массив ячеек из символьных векторов | массив строкВходные стимулы применились к сгенерированному фильтру в виде {'impulse','step','ramp','chirp','noise'}
, массив ячеек из символьных векторов или массив строк. Массив ячеек или массив строк должны быть подмножеством набора по умолчанию стимулов. Можно задать комбинации стимулов в любом порядке. Например:
generatehdl(filt,'InputDataType',numerictype(1,16,15), ... 'GenerateHDLTestbench','on', ... 'TestBenchStimulus',{'ramp','impulse','noise'})
TestBenchUserStimulus
свойство. Когда TestBenchUserStimulus
непустой вектор, он берет приоритет над TestBenchStimulus
.
Это свойство применяется только когда GenerateHDLTestBench
свойство установлено в 'on'
.
TestBenchUserStimulus
— Пользовательский входной стимул[]
(пустой вектор) (значение по умолчанию) | вектор из входных данныхПользовательский входной стимул в виде одного из следующего:
[]
(пустой вектор) — Испытательный стенд использует 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'
.
TestBenchCoeffStimulus
— Содействующий стимул для КИХ или БИХ-фильтров[]
(пустой вектор) (значение по умолчанию) | вектор из коэффициентов (КИХ фильтрует только), | массив ячеек коэффициента и значений шкалы (БИХ фильтрует только),Содействующий стимул для КИХ или БИХ фильтрует в виде одного из следующего:
[]
(пустой вектор) — Испытательный стенд использует коэффициенты объекта фильтра и обеспечивает входные стимулы. Эта последовательность показывает ответ на входные стимулы и проверяет, что интерфейс пишет один набор коэффициентов в содействующую память как ожидалось.
Вектор из коэффициентов (КИХ фильтрует только) — фильтр обрабатывает входные стимулы дважды: однажды с коэффициентами объекта фильтра и однажды с содействующим стимулом. Испытательный стенд проверяет, что интерфейс пишет два различных набора коэффициентов в содействующую память. Для получения дополнительной информации смотрите Генерацию Испытательного стенда для Программируемых КИХ-Коэффициентов.
Массив ячеек коэффициента и значений шкалы (БИХ фильтрует только) — Задает стимул как вектор-столбец значений шкалы и матрицы секции второго порядка (SOS). Фильтр обрабатывает входные стимулы дважды: однажды с коэффициентами объекта фильтра и однажды с содействующим стимулом. Испытательный стенд проверяет, что интерфейс пишет два различных набора коэффициентов в содействующую память. Для получения дополнительной информации смотрите Генерацию Испытательного стенда для Программируемых БИХ-Коэффициентов.
Это свойство применяется только когда GenerateHDLTestBench
свойство установлено в 'on'
и CoefficientSource
свойство установлено в 'ProcessorInterface'
.
TestBenchFracDelayStimulus
— Дробный стимул задержки для односкоростных фильтров Фэрроу'RandSweep'
| 'RampSweep'
Дробный стимул задержки для односкоростной Фэрроу фильтрует в виде одного из следующего:
Постоянное числовое значение — испытательный стенд управляет дробным сигналом задержки входа с постоянным значением, полученным из объекта фильтра.
Вектор из числовых значений — испытательный стенд управляет дробным сигналом задержки входа от этого вектора. Можно задать вектор как вызов функции, возвращающий вектор. Вектор должен иметь ту же длину как входной сигнал испытательного стенда.
'RandSweep'
— Испытательный стенд управляет дробным сигналом задержки входа при помощи вектора из значений, инкрементно увеличивающихся по диапазону от 0 до 1. Этот сигнал стимула имеет ту же длительность как входной сигнал к фильтру, но изменяется на более медленном уровне. Каждое дробное значение задержки, полученное из вектора, сохранено на 10% общего времени входного сигнала.
'RampSweep'
— Испытательный стенд управляет дробным сигналом задержки входа при помощи вектора из случайных значений от 0 до 1. Этот сигнал стимула имеет ту же длительность как входной сигнал к фильтру, но это изменяется на более медленном уровне. Каждое дробное значение задержки, полученное из вектора, сохранено на 10% общего времени входного сигнала.
Смотрите свойства генерации кода для неоплодотворенных фильтров.
Это свойство применяется только когда GenerateHDLTestBench
свойство установлено в 'on'
.
TestBenchRateStimulus
— Уровень ввел стимул для CIC-фильтровУровень ввел стимул для фильтров Каскадной расчески интегратора (CIC) в виде максимального фактора изменения уровня или целого числа. Если вы не задаете TestBenchRateStimulus
, кодер принимает, что фильтр спроектирован с максимальным ожидаемым уровнем. Коэффициент децимации (для CIC decimators) или коэффициент интерполяции (для интерполяторов CIC) установлен на этот максимальный фактор изменения уровня.
Смотрите CIC-фильтры с плавающей ставкой.
Это свойство применяется только к CIC-фильтрам с плавающей ставкой, когда GenerateHDLTestBench
и AddRatePort
свойства установлены в 'on'
.
GenerateCosimBlock
— Сгенерируйте Simulink® модель HDL блоки Cosimulation'off'
(значение по умолчанию) | 'on'
Сгенерируйте модель Simulink HDL блоки Cosimulation в виде 'off'
или 'on'
. Сгенерированная модель Simulink содержит два HDL блоки Cosimulation: один для Mentor Graphics® ModelSim® и один для Острого Тактового сигнала®. Кодер конфигурирует эти блоки, чтобы соответствовать порту и интерфейсу типа данных выбранного фильтра. Используйте эти блоки для cosimulate ваш проект с желаемым симулятором HDL в Simulink.
Эта функция требует лицензии HDL Verifier™.
GenerateCosimModel
— Сгенерируйте модель Simulink реализованного фильтра и блока HDL Cosimulation'none'
(значение по умолчанию) | 'ModelSim'
| 'Incisive'
Сгенерируйте модель Simulink реализованного фильтра и блока HDL Cosimulation в виде 'none'
, 'ModelSim'
, или 'Incisive'
. Когда вы устанавливаете это свойство на 'ModelSim'
или 'Incisive'
, кодер генерирует и открывает модель Simulink. Модель содержит HDL cosimulation блок для выбранного средства моделирования и поведенческая реализация создания фильтра. Модель применяет сгенерированные входные стимулы и сравнивает выход средства моделирования EDA с выходом поведенческой подсистемы фильтра. Можно настроить входной стимул и допуск на погрешность с помощью тех же свойств, как вы были бы для сгенерированного испытательного стенда HDL.
Смотрите генерацию модели Simulink для Cosimulation с симулятором HDL.
Эта функция требует лицензии HDL Verifier.
Если вы используете функцию fdhdltool
чтобы сгенерировать HDL-код, можно установить соответствующие свойства на вкладке Test Bench в диалоговом окне Generate HDL.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.