Настройте порты, идентификаторы и комментарии
С портом 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),'ClockInputPort','clk_input');
ClockEnableInputPort
— Имя часов включает входной порт'clk_enable'
(значение по умолчанию) | вектор символов | строковый скалярИмя часов включает входной порт в виде 'clk_enable'
, вектор символов или строковый скаляр.
Если вы задаете значение, которое является зарезервированным словом на выходном языке, кодер добавляет постфиксный _rsvd
к этому значению. Можно обновить постфиксное значение при помощи ReservedWordPostfix
свойство. Для получения дополнительной информации смотрите Решение Конфликтов Зарезервированного слова HDL.
ClockEnableOutputPort
— Имя часов включает выходной порт'ce_out'
(значение по умолчанию) | вектор символов | строковый скалярИмя часов включает выходной порт в виде 'ce_out'
, вектор символов или строковый скаляр. Это свойство применяется только к Многоскоростным фильтрам, которые используют одни входные часы (поведение по умолчанию ClockInputs
). Для примера смотрите Порты Часов для Многоскоростных фильтров. Для получения дополнительной информации см. Опции Генерации кода для Многоскоростных фильтров.
Если вы задаете значение, которое является зарезервированным словом на выходном языке, кодер добавляет постфиксный _rsvd
к этому значению. Можно обновить постфиксное значение при помощи ReservedWordPostfix
свойство. Для получения дополнительной информации смотрите Решение Конфликтов Зарезервированного слова HDL.
ClockInputPort
— Имя входного порта часов'clk'
(значение по умолчанию) | вектор символов | строковый скалярИмя входного порта часов в виде 'clk'
, вектор символов или строковый скаляр.
Если вы задаете значение, которое является зарезервированным словом на выходном языке, кодер добавляет постфиксный _rsvd
к этому значению. Можно обновить постфиксное значение при помощи ReservedWordPostfix
свойство. Для получения дополнительной информации смотрите Решение Конфликтов Зарезервированного слова HDL.
InputPort
— Имя входного порта фильтра'filter_in'
(значение по умолчанию) | вектор символов | строковый скалярИмя входного порта фильтра в виде 'filter_in'
, вектор символов или строковый скаляр.
Если вы задаете значение, которое является зарезервированным словом на выходном языке, кодер добавляет постфиксный _rsvd
к этому значению. Можно обновить постфиксное значение при помощи ReservedWordPostfix
свойство. Для получения дополнительной информации смотрите Решение Конфликтов Зарезервированного слова HDL.
InputType
— Тип данных входного порта фильтра'std_logic_vector'
(значение по умолчанию) | 'signed/unsigned'
| 'wire'
Тип данных входного порта фильтра в виде одного из следующего:
'std_logic_vector'
или 'signed/unsigned'
(когда выходной язык является VHDL),
'wire'
(когда выходным языком является Verilog),
OutputPort
— Имя выходного порта фильтра'filter_out'
(значение по умолчанию) | вектор символов | строковый скалярИмя выходного порта фильтра в виде 'filter_out'
, вектор символов или строковый скаляр.
Если вы задаете значение, которое является зарезервированным словом на выходном языке, кодер добавляет постфиксный _rsvd
к этому значению. Можно обновить постфиксное значение при помощи ReservedWordPostfix
свойство. Для получения дополнительной информации смотрите Решение Конфликтов Зарезервированного слова HDL.
OutputType
— Тип данных выходного порта фильтра'Same as input data type'
(значение по умолчанию) | 'std_logic_vector'
| 'signed/unsigned'
| 'wire'
Тип данных выходного порта фильтра в сгенерированном HDL-коде в виде одного из следующего:
'Same as input data type'
, 'std_logic_vector'
, или 'signed/unsigned'
(когда выходной язык является VHDL),
'wire'
(когда выходным языком является Verilog),
ResetInputPort
— Имя фильтра сбросило порт'reset'
(значение по умолчанию) | вектор символов | строковый скалярИмя фильтра сбросило порт в виде 'reset'
, вектор символов или строковый скаляр. Используйте ResetAssertedLevel
свойство управлять поведением этого порта.
Если вы задаете значение, которое является зарезервированным словом на выходном языке, кодер добавляет постфиксный _rsvd
к этому значению. Можно обновить постфиксное значение при помощи ReservedWordPostfix
свойство. Для получения дополнительной информации смотрите Решение Конфликтов Зарезервированного слова HDL.
RemoveResetFrom
— Подавите генерацию сброса от сдвиговых регистров'none'
(значение по умолчанию) | 'ShiftRegister'
Подавите генерацию сброса от сдвиговых регистров в виде 'none'
или 'ShiftRegister'
. Чтобы не использовать сигналы сброса от сдвиговых регистров, установите это свойство на 'ShiftRegister'
. Отключение сигналов сброса от сдвиговых регистров может привести к более эффективной реализации FPGA. Для получения дополнительной информации смотрите Генерацию Подавления Логики Сброса.
ResetAssertedLevel
— Утверждаемый (активный) уровень входного сигнала сброса'active-high'
(значение по умолчанию) | 'active-low'
Утверждаемый (активный) уровень входного сигнала сброса в виде одного из следующего:
'active-high'
— Чтобы сбросить регистры в создании фильтра, входной сигнал сброса должен управляться высоко (1).
Например, этот код проверяет ли reset
активно высоко прежде, чем заполнить delay_pipeline
регистр.
Delay_Pipeline_Process : PROCESS (clk, reset) BEGIN IF reset = '1' THEN delay_pipeline(0 TO 50) <= (OTHERS => (OTHERS => '0'));
'active-low'
— Чтобы сбросить регистры в создании фильтра, входной сигнал сброса должен управляться низко (0).
Например, этот код проверяет ли reset
активно низко прежде, чем заполнить delay_pipeline
регистр.
Delay_Pipeline_Process : PROCESS (clk, reset) BEGIN IF reset = '0' THEN delay_pipeline(0 TO 50) <= (OTHERS => (OTHERS => '0'));
ResetType
— Сбросьте стиль для регистров'async'
(значение по умолчанию) | 'sync'
Сбросьте стиль для регистров в виде одного из следующего:
'async'
— Кодер использует асинхронный сброс. Блок процесса HDL не проверяет на активные часы прежде, чем выполнить сброс. Например:
delay_pipeline_process : PROCESS (clk, reset) BEGIN IF Reset_Port = '1' THEN delay_pipeline (0 To 50) <= (OTHERS =>(OTHERS => '0')); ELSIF Clock_Port'event AND Clock_Port = '1' THEN IF ClockEnable_Port = '1' THEN delay_pipeline(0) <= signed(Fin_Port); delay_pipeline(1 TO 50) <= delay_pipeline(0 TO 49); END IF; END IF; END PROCESS delay_pipeline_process;
'sync'
— Кодер использует синхронный стиль сброса. В этом случае, проверки блока процесса HDL на фронт прежде, чем выполнить сброс. Например:
delay_pipeline_process : PROCESS (clk, reset) BEGIN IF rising_edge(Clock_Port) THEN IF Reset_Port = '0' THEN delay_pipeline(0 To 50) <= (OTHERS =>(OTHERS => '0')); ELSIF ClockEnable_Port = '1' THEN delay_pipeline(0) <= signed(Fin_Port); delay_pipeline(1 TO 50) <= delay_pipeline(0 TO 49); END IF; END IF; END PROCESS delay_pipeline_process;
BlockGenerateLabel
— Постфикс к меткам блока-участка'_gen'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс к блоку-участку помечает в виде '_gen'
, вектор символов или строковый скаляр. Это свойство применяется только, когда выходной язык является VHDL. Кодер добавляет этот постфикс к меткам блока-участка VHDL GENERATE
операторы.
InstanceGenerateLabel
— Постфикс к экземпляру разделяет метки'_gen'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс к экземпляру разделяет метки в виде '_gen'
, вектор символов или строковый скаляр. Это свойство применяется только, когда выходной язык является VHDL. Кодер добавляет этот постфикс к меткам раздела экземпляра VHDL GENERATE
операторы.
OutputGenerateLabel
— Постфикс, чтобы вывести присвоение блокирует метки'outputgen'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс, чтобы вывести присвоение блокирует метки в виде 'outputgen'
, вектор символов или строковый скаляр. Это свойство применяется только, когда выходной язык является VHDL. Кодер добавляет этот постфикс к выходным меткам блока присвоения VHDL GENERATE
операторы.
ClockProcessPostfix
— Постфикс к HDL синхронизирует имена процесса'_process'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс к HDL синхронизирует имена процесса в виде '_process'
, вектор символов или строковый скаляр. Кодер использует блоки процесса HDL, чтобы изменить содержимое регистров в фильтре. Метка блока выведена из имени регистра и этого постфикса. Например, в следующем объявлении блока, кодер выводит метку процесса из имени регистра delay_pipeline
и постфиксный '_process'
по умолчанию.
delay_pipeline_process : PROCESS (clk, reset) BEGIN
CoeffPrefix
— Префикс для содействующих имен фильтра'coeff'
(значение по умолчанию) | вектор символов | строковый скалярПрефикс для коэффициента фильтра называет в виде 'coeff'
, вектор символов или строковый скаляр. Кодер выводит содействующие имена путем добавления специфичных для фильтра характеристик к этому префиксу.
Отфильтруйте тип | Содействующее имя |
---|---|
КИХ | Кодер добавляет содействующий номер к CoeffPrefix , Начиная с 1. Например, значением по умолчанию для первого коэффициента является coeff1 . |
БИХ |
Кодер добавляет следующие символы к
Например, значением по умолчанию для первого коэффициента числителя третьего раздела является |
Например:
firfilt = design(fdesign.lowpass,'equiripple', ... 'FilterStructure','dfsymfir','SystemObject',true); generatehdl(firfilt,'InputDataType',numerictype(1,16,15), ... 'CoefficientSource','Internal','CoeffPrefix','mycoeff');
Кодер заменяет содействующий префикс имени по умолчанию на пользовательское значение:
ARCHITECTURE rtl OF firfilt IS -- Local Functions -- Type Definitions TYPE delay_pipeline_type IS ARRAY (NATURAL range <>) OF signed(15 DOWNTO 0); -- sfix16_En15 -- Constants CONSTANT mycoeff1 : signed(15 DOWNTO 0) := to_signed(-159, 16); -- sfix16_En16 CONSTANT mycoeff2 : signed(15 DOWNTO 0) := to_signed(-137, 16); -- sfix16_En16 CONSTANT mycoeff3 : signed(15 DOWNTO 0) := to_signed(444, 16); -- sfix16_En16 CONSTANT mycoeff4 : signed(15 DOWNTO 0) := to_signed(1097, 16); -- sfix16_En16 ...
Это свойство применяется только, когда вы устанавливаете CoefficientSource
к 'Internal'
.
ComplexImagPostfix
— Постфикс к мнимой части комплексных имен сигнала'_im'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс к мнимой части комплексного сигнала называет в виде '_im'
, вектор символов или строковый скаляр. Смотрите Используя Комплексные данные и Коэффициенты.
ComplexRealPostfix
— Постфикс к действительной части комплексных имен сигнала'_re'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс к действительной части комплексного сигнала называет в виде '_re'
, вектор символов или строковый скаляр. Смотрите Используя Комплексные данные и Коэффициенты.
EntityConflictPostfix
— Постфикс, чтобы скопировать сущность или имена модуля'_block'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс, чтобы скопировать сущность или имена модуля в виде '_block'
, вектор символов или строковый скаляр. Кодер добавляет этот постфикс, чтобы разрешить дублирующиеся имена модуля сущности или Verilog VHDL. Например, если кодер обнаруживает две сущности с именем MyFilt
, кодер называет первую сущность MyFilt
и второй экземпляр MyFilt_block
.
InstancePrefix
— Префикс для имени экземпляра компонента'u_'
(значение по умолчанию) | вектор символов | строковый скалярПрефикс для имени экземпляра компонента в виде 'u_'
, вектор символов или строковый скаляр.
PackagePostfix
— Постфикс к имени файла пакета VHDL'_pkg'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс к имени файла пакета VHDL в виде '_pkg'
, вектор символов или строковый скаляр. Кодер выводит имя пакета путем добавления этого постфикса к имени фильтра. Эта опция применяется, только если файл пакета требуется для проекта.
ReservedWordPostfix
— Постфикс к зарезервированным словам'_rsvd'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс к зарезервированным словам в виде '_rsvd'
, вектор символов или строковый скаляр. Это свойство применяется к имени, постфиксу или значениям метки, заданным как вектор символов или строковый скаляр в Name,Value
парные аргументы к generatehdl
. Если заданное значение является зарезервированным словом на выходном языке, кодер добавляет этот постфикс к значению. Например, если вы вызываете generatehdl
с парой аргумента 'Name','mod'
, кодер формирует имя mod_rsvd
в сгенерированном коде фильтра. См. Таблицы Зарезервированного слова.
SplitEntityArch
— Разделите сущность VHDL и код архитектуры'off'
(значение по умолчанию) | 'on'
Разделите сущность VHDL и код архитектуры в виде 'off'
или 'on'
. Когда это свойство установлено в 'on'
, кодер генерирует сущность VHDL и код архитектуры фильтра в двух отдельных файлах. Кодер выводит имена файлов из имени фильтра путем добавления постфиксов _entity
и _arch
к основному имени файла. Чтобы задать пользовательские постфиксные значения, установите SplitEntityFilePostfix
и SplitArchFilePostfix
свойства.
SplitArchFilePostfix
— Постфикс к имени файла архитектуры VHDL'_arch'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс к имени файла архитектуры VHDL в виде '_arch'
, вектор символов или строковый скаляр.
Это свойство применяется только, когда вы устанавливаете SplitEntityArch
к 'on'
.
SplitEntityFilePostfix
— Постфикс к имени файла сущности VHDL'_entity'
(значение по умолчанию) | вектор символов | строковый скалярПостфикс к имени файла сущности VHDL в виде '_entity'
, вектор символов или строковый скаляр.
Это свойство применяется только, когда вы устанавливаете SplitEntityArch
к 'on'
.
UserComment
— Добавьте комментарии пользователей в сгенерированный HDL-кодДобавьте комментарии пользователей в сгенерированный HDL-код в виде вектора строки или вектора символов. Комментарии пользователей появляются в блоке комментария заголовка наверху сгенерированных файлов, которым предшествуют путем продвижения символов комментария, характерных для выходного языка. Когда вы включаете новые строки или переводы строки в комментариях пользователей, кодер испускает однострочные комментарии для каждой новой строки. Например:
firfilt = dsp.FIRFilter; generatehdl(firfilt,'InputDataType',numerictype(1,16,15), ... 'UserComment','This is a comment line.\nThis is a second line.')
firfilt
следующие:-- ------------------------------------------------------------- -- -- Module: firfilt -- Generated by MATLAB(R) 9.1 and the Filter Design HDL Coder 3.1. -- Generated on: 2016-11-08 15:28:25 -- This is a comment line. -- This is a second line. -- -- ------------------------------------------------------------- -- ------------------------------------------------------------- -- HDL Code Generation Options: -- -- TargetLanguage: VHDL -- Name: firfilt -- InputDataType: numerictype(1,16,15) -- UserComment: User data, length 47 -- GenerateHDLTestBench: off -- ------------------------------------------------------------- -- HDL Implementation : Fully parallel -- Folding Factor : 1 -- ------------------------------------------------------------- -- Filter Settings: -- -- Discrete-Time FIR Filter (real) -- ------------------------------- -- Filter Structure : Direct-Form FIR -- Filter Length : 2 -- Stable : Yes -- Linear Phase : Yes (Type 2) -- Arithmetic : fixed -- Numerator : s16,15 -> [-1 1) -- -------------------------------------------------------------
VectorPrefix
— Префикс для вектора VHDL сигнализирует об именах'vector_of_'
(значение по умолчанию) | вектор символов | строковый скалярПрефикс для вектора VHDL сигнализирует об именах в виде 'vector_of_'
, вектор символов или строковый скаляр.
Если вы используете функцию fdhdltool
чтобы сгенерировать HDL-код, можно установить соответствующие свойства в диалоговом окне Generate HDL.
Свойство | Местоположение в диалоговом окне |
---|---|
Input data type Output data type Clock enable output port Input port Output port | Вкладка Global Settings> вкладка Ports |
Дополнительный порт и свойства идентификатора |
Главный раздел вкладки Global Settings и вкладки Global Settings> вкладка General |
Проверьте основную вкладку Global Settings, и Ports и вкладки General вкладки Global Settings.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.