По умолчанию кодер производит код, который включает в себя множители коэффициентов. Можно оптимизировать эти операции, чтобы уменьшить площадь и сохранить или увеличить тактовую частоту. Можно заменить операции умножения сложениями частичных продуктов, произведенных канонической цифрой со знаком (CSD) или факторизованными методами CSD. Эти методы минимизируют количество операций сложения, необходимых для постоянного умножения, путем представления двоичных чисел с минимальным количеством ненулевых цифр. Оптимизация, которую вы можете достичь, зависит от двоичного представления используемых коэффициентов.
Примечание
Кодер не использует операции умножения коэффициентов для многоскоростных фильтров. Поэтому опции Coefficient multipliers отключены для многоскоростных фильтров.
Для оптимизации множителей коэффициентов (для немультиратных типов фильтров):
Выберите CSD
или Factored-CSD
из меню Coefficient multipliers на панели Filter architecture диалогового окна Генерация HDL.
Для расчета числовых различий рассмотрите установку запаса по ошибке для сгенерированного испытательного стенда. При сравнении результатов испытательный стенд игнорирует количество наименее значимых битов, заданное в запасе ошибки. Чтобы задать поле ошибки,
Выберите панель Test Bench в диалоговом окне Генерация HDL. Затем перейдите на вкладку Configuration.
Установите поле Error margin (bits) в целое число, которое указывает на максимально допустимое количество бит различия в числовых результатах.
Продолжите установку других опций или щелкните Generate, чтобы инициировать генерацию кода.
Если вы генерируете код для КИХ-фильтра, смотрите Ввод и Вывод мультипликатора для КИХ-фильтров для получения информации о связанной оптимизации.
Альтернатива командной строки: используйте generatehdl
функция со свойством CoeffMultipliers
для оптимизации коэффициентных умножителей с помощью методов CSD.