Кодер поддерживает генерацию кода для многоскоростного каскада объектов фильтра (dsp.FilterCascade
).
Инстанцируйте этапов фильтра и расположите каскадом их в рабочей области MATLAB®.
hm1 = dsp.FIRDecimator('DecimationFactor',12); hm2 = dsp.FIRDecimator('DecimationFactor',4); my_cascade = dsp.FilterCascade(hm1,hm2);
dsp.FilterCascade
в документации DSP System Toolbox™.Кодер в настоящее время налагает определенные ограничения на типы фильтра, позволенные в каскадном фильтре. Смотрите Ограничения для Генерации кода с Каскадными Фильтрами прежде, чем создать ваши этапы фильтра и расположите каскадом объект фильтра.
fdhdltool
ФункцияВызовите fdhdltool
открыть диалоговое окно Generate HDL, передающее в каскадной Системе фильтра object™ и тип входных данных фиксированной точки.
fdhdltool(my_cascade,numerictype(1,16,15))
generatehdl
ФункцияВызовите generatehdl
сгенерировать HDL-код для вашего фильтра, передающего в каскадном Системном объекте фильтра, типе входных данных фиксированной точки и свойствах генерации кода, как желаемый.
generatehdl(my_cascade,'InputDataType',numerictype(1,16,15), ... 'Name','MyFilter','TargetLanguage','Verilog', ... 'GenerateHDLTestbench','on')
Следующие правила и ограничения применяются к каскадным фильтрам, когда используется для генерации кода:
Можно сгенерировать код для каскадов, которые комбинируют следующие типы фильтра:
Decimators и/или структуры односкоростного фильтра
Интерполяторы и/или структуры односкоростного фильтра
Генерация кода для каскадов, которые включают и decimators и интерполяторы, не поддерживается. Если неподдерживаемые структуры фильтра или комбинации структур фильтра включены в каскад, генерация кода возвращает ошибку.
Для генерации кода позволена только плоская (одноуровневая) каскадная структура. Вложение каскадных фильтров запрещено.
По умолчанию сгенерированный HDL-код исключает регистры ввода и вывода из этапов каскада, за исключением:
Вход первой стадии и выход заключительного этапа.
Входные регистры этапов интерполятора.
Чтобы сгенерировать выходные регистры для каждого этапа, выберите опцию Add pipeline registers в диалоговом окне Generate HDL. При использовании этой опции внутренние конвейерные регистры могут также быть добавлены, в зависимости от структур фильтра.
Когда каскадный фильтр передается fdhdltool
, опция FIR adder style отключена. Если вы требуете, чтобы древовидные сумматоры для КИХ просочились каскад, выберите опцию Add pipeline registers (поскольку конвейеры требуют древовидных КИХ-сумматоров стиля).
Кодер генерирует отдельные файлы HDL-кода для каждого этапа каскада, в дополнение к коду верхнего уровня для самого каскадного фильтра. Файлы кода этапа фильтра идентифицированы путем добавления вектора символов '_stage1'
, '_stage2'
... '_stageN'
к имени фильтра.
Рисунок показывает настройки по умолчанию опций диалогового окна Generate HDL для каскадного создания фильтра.