exponenta event banner

Свойства конфигурации фильтра HDL

Настройка коэффициентов, сложных входных портов и дополнительных портов для определенных типов фильтров

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

Укажите эти свойства в качестве аргументов «имя-значение» для generatehdl функция. Name - имя свойства и Value - соответствующее значение. Можно указать несколько аргументов «имя-значение» в любом порядке как 'Name1',Value1,...,'NameN',ValueN.

Например:

fir = dsp.FIRFilter('Structure','Direct form antisymmetric');
generatehdl(fir,'InputDataType',numerictype(1,16,15),'CoefficientSource','ProcessorInterface');

Коэффициенты

развернуть все

Источник программируемых коэффициентов фильтра, указанный как 'Internal' или 'ProcessorInterface'. Это свойство применяется только к программируемым коэффициентам фильтра для фильтров FIR и программируемым коэффициентам фильтра для фильтров IIR.

  • 'Internal' - Кодер получает коэффициенты фильтра из объекта фильтра. Коэффициенты жестко кодируются в сгенерированном HDL коде.

  • 'ProcessorInterface' - Кодер генерирует интерфейс памяти для коэффициентов фильтра. Этот интерфейс можно управлять с помощью внешнего микропроцессора. Сгенерированный объект VHDL или модуль Verilog для фильтра включает в себя следующие порты для интерфейса процессора:

    • coeffs_in - Входной порт для данных коэффициентов

    • write_address - Адрес записи для памяти коэффициентов

    • write_enable - Сигнал разрешения записи для памяти коэффициентов

    • write_done - Сигнал, указывающий на завершение операции записи коэффициента

    При создании тестового стенда можно указать входной стимул для этого интерфейса с помощью TestBenchCoeffStimulus собственность.

    Для последовательного фильтра FIR можно также указать тип памяти для хранения программируемых коэффициентов, установив CoefficientMemory собственность.

Тип памяти для программируемых коэффициентов фильтра, указанный как 'Registers', 'DualPortRAMs', или 'SinglePortRAMs'. Это свойство применяется только к программируемым коэффициентам фильтра для фильтров FIR с полностью последовательной, частично последовательной или каскадной последовательной архитектурой.

  • 'Registers' Кодер генерирует файл регистра для хранения программируемых коэффициентов.

  • 'SinglePortRAMs' или 'DualPortRAMs' - Кодер генерирует соответствующий интерфейс ОЗУ для хранения программируемых коэффициентов.

Зависимости

Это свойство применяется только при установке CoefficientSource кому 'ProcessorInterface'. Если кодер не генерирует интерфейс для программируемых коэффициентов, это CoefficientMemory свойство игнорируется.

Дополнительные порты

развернуть все

Создание сложных портов входных данных, указанных как 'off' или 'on'. Используйте эту опцию, если конструкция фильтра требует сложных входных данных. См. Использование комплексных данных и коэффициентов. При установке для этого свойства значения 'on'кодер генерирует порты и сигнальные тракты для реальной и мнимой составляющих комплексного сигнала.

Можно настроить имена портов, установив ComplexRealPostfix и ComplexImagPostfix свойства.

Зависимости

Для создания сложных входных данных необходимо также задать CoefficientSource кому 'Internal'. Сложные входы не поддерживаются, когда коэффициенты фильтра получены из интерфейса процессора.

Тип генерируемых тактовых входов, указанный как 'Single' или 'Multiple'. Это свойство применяется только к многоскоростным фильтрам.

  • 'Single' - Генерируемый объект VHDL или модуль Verilog для фильтра имеет один вход тактового сигнала, связанный вход включения тактового сигнала и выход включения тактового сигнала. Сгенерированный код включает в себя счетчик, который управляет синхронизацией передачи данных на выход фильтра (для прореживающих фильтров) или на вход (для интерполяционных фильтров). Счетчик ведет себя как вторичный синхросигнал. Коэффициент прореживания или интерполяции определяет тактовую частоту счетчика. Эта опция обеспечивает автономное решение синхронизации для конструкций FPGA.

    Чтобы настроить имена этих тактовых входов и выходов, см. ClockInputPort, ClockEnableInputPort, и ClockEnableOutputPort свойства.

    Интерполяторы также проходят через входной сигнал разрешения синхронизации к выходному порту с именем ce_in. Этот сигнал указывает, когда объект принял входной образец. Этот сигнал можно использовать для управления восходящим потоком данных. Невозможно настроить это имя порта.

  • 'Multiple' - Генерируемый объект VHDL или модуль Verilog для фильтра имеет отдельные входы синхронизации для каждой скорости многоскоростного фильтра. Каждый вход синхронизации имеет соответствующий вход включения синхронизации. Кодер не генерирует выходной сигнал включения синхронизации. Обеспечьте входные тактовые сигналы, соответствующие требуемому коэффициенту прореживания или интерполяции.

    Эта опция обеспечивает большую гибкость, чем один вход тактового генератора. Однако несколько тактовых входов предполагают, что для управления входными часами фильтра предоставляется код HDL более высокого уровня. Кодер не генерирует синхронизаторы между несколькими доменами синхронизации. При создании тестового стенда проверьте clk_gen процессы для каждого синхросигнала.

    Следующие фильтры не поддерживают 'Multiple':

    • Фильтры с частично последовательной архитектурой

    • Многоступенчатые преобразователи частоты дискретизации: dsp.FIRRateConverter, dsp.FarrowRateConverter, или многоскоростной dsp.FilterCascade

Пример см. в разделе Порты синхронизации для многоскоростных фильтров.

Создать порты скорости, указанные как 'off' или 'on'. Это свойство применяется только к фильтрам CIC переменной скорости.

При установке для этого свойства значения 'on', кодер генерирует rate и load_rate порты для фильтра. Фильтр CIC с переменной скоростью имеет программируемый коэффициент изменения скорости. Когда вы утверждаете load_rate сигнал, rate загружается портом в коэффициенте скорости. Порты скорости можно создавать только для фильтра полной точности.

При создании тестового стенда можно настроить стимул порта скорости, установив TestBenchRateStimulus собственность.

Имя входного порта дробной задержки, указанное как 'filter_fd', символьный вектор или строковый скаляр. Это свойство применяется только к односкоростным фильтрам Farrow. Например:

farrowfilt = dsp.VariableFractionalDelay('InterpolationMethod','Farrow');
generatehdl(farrowfilt,'InputDataType',numerictype(1,18,17), ...
    'FractionalDelayDataType',numerictype(1,8,7), ...
    'FracDelayPort','fractional_delay');

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

Если вы создаете тестовый стенд, вы можете настроить дробный стимул задержки, установив TestBenchFracDelayStimulus собственность.

Совет

Если вы используете fdhdltool для создания кода HDL можно задать соответствующие свойства в диалоговом окне «Создание HDL».

Тип фильтраСобственностьРасположение в диалоговом окне
Фильтр FIR или IIR с программируемыми коэффициентамиИсточник коэффициента Вкладка «Архитектура фильтра»
КИХ-фильтр с последовательной архитектурой и программируемыми коэффициентамиПамять коэффициентоввкладка «Архитектура фильтра», если для параметра «Источник коэффициентов» установлено значение Processor interface
Фильтр со сложными входными даннымиСложность вводаВкладка «Глобальные параметры» > вкладка «Порты»
Многоскоростной фильтрВходные синхросигналыВкладка «Глобальные параметры»
Фильтр CICДобавить порт скоростиВкладка «Архитектура фильтра»
Односкоростной фильтр FarrowПорт дробной задержкиВкладка «Глобальные параметры» > вкладка «Порты»

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