Кодер поддерживает генерацию кода для многократного каскада объектов фильтра (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
чтобы открыть диалоговое окно Генерация HDL, передав в каскадном фильтре System 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')
Следующие правила и ограничения применяются к каскадным фильтрам при использовании для генерации кода:
Можно сгенерировать код для каскадов, которые объединяют следующие типы фильтров:
Дециматоры и/или односкоростные фильтрующие структуры
Интерполяторы и/или односкоростные фильтрующие структуры
Генерация кода для каскадов, которые включают как дециматоры, так и интерполяторы, не поддерживается. Если неподдерживаемые структуры фильтра или комбинации структур фильтра включены в каскад, генерация кода возвращает ошибку.
Для генерации кода разрешена только плоская (одноуровневая) структура каскада. Вложение каскадных фильтров запрещено.
По умолчанию сгенерированный HDL-код исключает входной и выходной регистры из каскадов, кроме:
Вход первого каскада и выход последнего каскада.
Входные регистры каскадов интерполятора.
Чтобы сгенерировать выходные регистры для каждого этапа, выберите опцию Add pipeline registers в диалоговом окне Генерация HDL. При использовании этой опции могут также добавляться регистры внутреннего трубопровода, в зависимости от структур фильтра.
Когда каскадный фильтр передается в fdhdltool
, FIR adder style опции отключена. Если для конечной импульсной характеристики фильтров в каскаде требуются древовидные добавки, выберите опцию Add pipeline registers (поскольку трубопроводы требуют древовидного стиля конечной импульсной характеристики добавок).
Кодер генерирует отдельные файлы HDL-кода для каждого этапа каскада, в дополнение к коду верхнего уровня для самого каскадного фильтра. Файлы кода каскада фильтра идентифицируются путем добавления вектора символов '_stage1'
, '_stage2'
, ... '_stageN'
в имя фильтра.
Рисунок показывает настройки по умолчанию диалогового окна Генерация HDL опций для каскадного создания фильтра.