HDL Filter Configuration Properties

Сконфигурируйте коэффициенты, комплексные входные порты и дополнительные порты для определенных типов фильтров

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

Задайте эти свойства как аргументы имя-значение для 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'. Это свойство применяется только к программируемым коэффициентам фильтра для конечная импульсная характеристика и программируемым коэффициентам фильтра для БИХ.

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

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

    • coeffs_in - Input port для данных коэффициентов

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

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

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

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

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

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

  • '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

Для получения примера смотрите Clock Ports для Многоскоростных фильтров.

Сгенерируйте порты скорости, заданные как '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.

Тип фильтраСвойствоРасположение в диалоговом окне
Конечная импульсная характеристика или БИХ фильтр с программируемыми коэффициентамиCoefficient source Filter Architecture вкладку
Конечная импульсная характеристика с последовательной архитектурой и программируемыми коэффициентамиCoefficient memoryFilter Architecture вкладка, когда Coefficient source установлено на Processor interface
Фильтр со сложными входными даннымиInput complexityGlobal Settings вкладка > Ports вкладка
Многоскоростной фильтрClock inputsGlobal Settings вкладку
CIC-фильтрAdd rate portFilter Architecture вкладку
Односкоростной фильтр ФэрроуFractional delay portGlobal Settings вкладка > Ports вкладка

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