Настройте перезаписываемую рабочую папку вне своей папки установки MATLAB®, чтобы хранить файлы, которые будут сгенерированы, когда вы завершаете свою учебную работу. Учебные инструкции принимают, что вы создаете папку hdlfilter_tutorials
на диске C.
Этот раздел принимает, что вы знакомы с интерфейсом пользователя MATLAB и Filter Designer. Следующие инструкции проводят вас по процедуре разработки и создания основного КИХ-фильтра с помощью Filter Designer:
Запустите программное обеспечение MATLAB.
Установите свою текущую папку на папку, в которой вы создали, Создают Папку для Ваших Учебных Файлов.
Запустите Filter Designer путем ввода команды filterDesigner
в Окно Команды MATLAB. Диалоговое окно The Filter Design & Analysis Tool появляется.
В диалоговом окне Filter Design & Analysis Tool проверяйте, что следующие опции фильтра установлены:
Опция | Значение |
---|---|
Response Type | Lowpass |
Design Method | FIR Equiripple |
Filter Order | Minimum order |
Options | Density Factor: 20 |
Frequency Specifications | Модули: Fs: Fpass: Fstop: |
Magnitude Specifications | Модули: Apass: Astop: |
Эти настройки для проекта фильтра по умолчанию, который Filter Designer создает для вас. Если вы не должны изменять фильтр, и Design Filter отображается серым, вы сделаны и можете пропустить, чтобы Квантовать Фильтр.
Если вы изменили опции, перечисленные на шаге 4, нажмите Design Filter. Filter Designer создает фильтр для заданного проекта и отображает следующее сообщение в строке состояния Filter Designer, когда задача завершена.
Designing Filter... Done
Для получения дополнительной информации о разработке фильтров с Filter Designer см. документацию DSP System Toolbox™.
Необходимо квантовать фильтры для генерации HDL-кода. Квантовать ваш фильтр,
Откройтесь основной КИХ-фильтр разрабатывают вас созданный в Проекте, КИХ Просачивается Filter Designer.
Нажмите кнопку Set Quantization Parameters на панели инструментов левой стороны. Filter Designer отображает меню Filter arithmetic в нижней половине его диалогового окна.
Выберите Fixed-point
из списка Filter arithmetic. Затем выберите Specify all
из списка Filter precision. Filter Designer отображает первую из трех панелей с вкладками параметров квантования через нижнюю половину его диалогового окна.
Используйте опции квантования, чтобы протестировать эффекты различных настроек на производительности и точности квантованного фильтра.
Установите параметры квантования можно следующим образом:
Вкладка | Параметр | Установка |
---|---|---|
Coefficients | Numerator word length | 16 |
Best-precision fraction lengths | Selected | |
Use unsigned representation | Cleared | |
Scale the numerator coefficients to fully utilize the entire dynamic range | Cleared | |
Input/Output | Input word length | 16 |
Input fraction length | 15 | |
Output word length | 16 | |
Filter Internals | Rounding mode | Floor |
Overflow mode | Saturate | |
Accum. word length | 40 |
Нажмите Apply.
Для получения дополнительной информации о квантовании фильтров с Filter Designer см. документацию DSP System Toolbox.
После того, как вы квантуете свой фильтр, вы готовы сконфигурировать опции кодера и сгенерировать код VHDL для фильтра. Этот раздел проводит вас по запуску пользовательского интерфейса Filter Design HDL Coder™, установке опций, и генерация кода VHDL и испытательного стенда для основного КИХ фильтрует вас разработанный и квантованный в Проекте, КИХ Просачивается Filter Designer и Квантует Фильтр.
Запустите пользовательский интерфейс Filter Design HDL Coder путем выбора Targets> Generate HDL в диалоговом окне Filter Designer. Filter Designer отображает диалоговое окно Generate HDL.
Найдите, что Filter Design HDL Coder онлайн помогает.
В окне MATLAB нажмите кнопку Help на панели инструментов или нажмите Help> Product Help.
В панели Contents браузера Help выберите запись Filter Design HDL Coder.
Минимизируйте браузер Help.
В диалоговом окне Generate HDL нажмите кнопку Help. Маленькое контекстно-зависимое окно справки открывается. Окно отображает информацию о диалоговом окне.
Закройте окно Help.
Установите свой курсор на метку Folder или текстовое поле в панели Target диалогового окна Generate HDL, и щелкните правой кнопкой. Кнопка What's This? появляется.
Нажмите What's This? The контекстно-зависимая информация об отображениях окна справки, описывающая опцию Folder. Сконфигурируйте содержимое и стиль сгенерированного HDL-кода, с помощью контекстно-зависимой справки, чтобы получить больше информации, как вы работаете. Тема справки доступна для каждой опции.
В текстовом поле Name панели Target замените имя по умолчанию на basicfir
. Эта опция называет сущность VHDL и файл, который содержит код VHDL для фильтра.
Выберите вкладку Global settings пользовательского интерфейса. Затем выберите вкладку General раздела Additional settings пользовательского интерфейса. Введите Tutorial - Basic FIR Filter
в текстовом поле Comment in header. Кодер добавляет комментарий в конец блока комментария заголовка в каждом сгенерированном файле.
Выберите вкладку Ports раздела Additional settings пользовательского интерфейса.
Поменяйте имена портов ввода и вывода. В текстовом поле Input port замените filter_in
на data_in
. В текстовом поле Output port замените filter_out
на data_out
.
Снимите флажок для опции Add input register. Панель Ports теперь похожа на следующее.
Кликните по вкладке Test Bench в диалоговом окне Generate HDL. В текстовом поле File name замените имя по умолчанию на basicfir_tb
. Эта опция называет сгенерированный файл испытательного стенда.
Нажмите Generate, чтобы запустить процесс генерации кода.
Кодер отображает сообщения в Окне Команды MATLAB, когда оно генерирует фильтр и файлы VHDL испытательного стенда:
### Starting VHDL code generation process for filter: basicfir ### Generating: C:\hdlfilter_tutorials\hdlsrc\basicfir.vhd ### Starting generation of basicfir VHDL entity ### Starting generation of basicfir VHDL architecture ### HDL latency is 2 samples ### Successful completion of VHDL code generation process for filter: basicfir ### Starting generation of VHDL Test Bench ### Generating input stimulus ### Done generating input stimulus; length 3429 samples. ### Generating Test bench: C:\hdlfilter_tutorials\hdlsrc\basicfir_tb.vhd ### Please wait ... ### Done generating VHDL Test Bench
Как сообщения указывают, кодер создает папку hdlsrc
под вашей текущей рабочей папкой и помещает файлы basicfir.vhd
и basicfir_tb.vhd
в той папке.
Заметьте, что сообщения включают гиперссылки на файлы испытательного стенда и сгенерированный код. Путем нажатия на эти гиперссылки можно открыть файлы кода непосредственно в редактора MATLAB.
Сгенерированный код VHDL имеет следующие характеристики:
Сущность VHDL назвала basicfir
.
Регистры, которые используют асинхронный сброс, когда сигнал сброса активен высокий (1).
Порты имеют следующие имена:
Порт VHDL | Имя |
---|---|
Входной параметр | data_in |
Вывод | data_out |
Вход Clock | clk |
Часы включают вход | clk_enable |
Вход Reset | reset |
Выводится дополнительный регистр для обработки фильтра.
Вход часов, часы включают вход и сбросили порты, имеют тип, STD_LOGIC
и ввод данных и выходные порты имеют тип STD_LOGIC_VECTOR
.
Коэффициенты называют
, где coeffn
n
является содействующим номером, начиная с 1.
Безопасное с точки зрения типов представление используется, когда нули конкатенированы: '0' & '0'
...
Регистры сгенерированы с оператором ELSIF clk'event AND clk='1' THEN
, а не с функцией rising_edge
.
Постфиксный '_process'
добавлен, чтобы обработать имена.
Сгенерированный испытательный стенд:
Портативный файл VHDL.
Часы сил, часы включают и сбросили входные сигналы.
Силы часы включают входной сигнал к активному высоко.
Управляет входным сигналом часов высоко (1) в течение 5 наносекунд и низко (0) в течение 5 наносекунд.
Обеспечивает сигнал сброса для двух циклов плюс время задержки 2 наносекунд.
Применяет время задержки 2 наносекунд к сигналам ввода данных.
Для КИХ-фильтра, применяет импульс, шаг, пандус, щебет и белые шумовые типы стимула.
Когда вы закончите генерировать код, нажмите Close, чтобы закрыть диалоговое окно Generate HDL.
Познакомьтесь со сгенерированным кодом VHDL путем открытия и просматривания файла basicfir.vhd
в редакторе симулятора HDL или ASCII.
Откройте сгенерированный файл фильтра VHDL basicfir.vhd
.
Ищите basicfir
. Эта строка идентифицирует модуль VHDL, с помощью значения, которое вы задали для опции Name в панели Target. Смотрите, что шаг 5 в Конфигурирует и Генерирует Код VHDL.
Ищите Tutorial
. Этот раздел - то, куда кодер помещает текст, вы ввели для опции Comment in header. Смотрите, что шаг 10 в Конфигурирует и Генерирует Код VHDL.
Ищите HDL Code
. Этот раздел перечисляет опции кодера, в которых вы изменили, Конфигурируют и Генерируют Код VHDL.
Ищите Filter Settings
. В этом разделе описываются проект фильтра и настройки квантования, когда вы задали в Проекте, КИХ Просачивается Filter Designer и Квантует Фильтр.
Ищите ENTITY
. Эта строка называет сущность VHDL, с помощью значения, которое вы задали для опции Name в панели Target. Смотрите, что шаг 5 в Конфигурирует и Генерирует Код VHDL.
Ищите PORT
. Это объявление PORT
задает часы, часы включают, сбрасывают, и ввод данных и выходные порты. Порты для часов, часы включают и сбросили сигналы, названы с векторами символов по умолчанию. Порты для ввода данных и вывода называют, когда вы задали на Input port и опциях Output port на вкладке Ports диалогового окна Generate HDL. Смотрите, что шаг 12 в Конфигурирует и Генерирует Код VHDL.
Ищите Constants
. Этот раздел задает коэффициенты. Их называют с помощью схемы именования по умолчанию,
, где coeffn
n
является содействующим номером, начиная с 1.
Ищите Signals
. Этот раздел кода задает сигналы для фильтра.
Ищите process
. Имя блока PROCESS
Delay_Pipeline_process
включает блок PROCESS
по умолчанию, снабжает постфиксом '_process'
.
Ищите IF reset
. Этот код утверждает сигнал сброса. Значение по умолчанию, активное высокий (1), было задано. Также обратите внимание, что блок PROCESS
применяет асинхронный стиль сброса по умолчанию при генерации кода VHDL для регистров.
Ищите ELSIF
. Этот код проверяет на возрастающие ребра, когда фильтр работает с регистрами. Оператор ELSIF clk'event
по умолчанию используется вместо дополнительной функции rising_edge
.
Ищите Output_Register
. Этот раздел кода пишет данные о фильтре в выходной регистр. Код для этого регистра сгенерирован по умолчанию. На шаге 13 в Конфигурируют и Генерируют Код VHDL, вы очистили опцию Add input register, но оставили Add output register выбранным. Также обратите внимание, что имя блока PROCESS
, Output_Register_process
включает блок PROCESS
по умолчанию, снабжает постфиксом '_process'
.
Ищите data_out
. Этот раздел кода управляет выходными данными фильтра.
Этот раздел объясняет, как проверить сгенерированный код VHDL для основного КИХ-фильтра со сгенерированным испытательным стендом VHDL. Этот пример использует программное обеспечение Mentor Graphics® ModelSim® в качестве инструмента для компиляции и симуляции кода VHDL. Можно также использовать другие пакеты инструмента симуляции VHDL.
Чтобы проверить код фильтра, завершите следующие шаги:
Запустите свое средство моделирования Mentor Graphics ModelSim.
Установите текущую папку на папку, которая содержит ваши сгенерированные файлы VHDL. Например:
При желании создайте библиотеку проекта, чтобы сохранить скомпилированные сущности VHDL, пакеты, архитектуру и настройки. В средстве моделирования Mentor Graphics ModelSim можно создать библиотеку проекта с командой vlib
.
Скомпилируйте сгенерированный фильтр и файлы VHDL испытательного стенда. В средстве моделирования Mentor Graphics ModelSim вы компилируете код VHDL с командой vcom
. Следующие команды компилируют фильтр и фильтруют код VHDL испытательного стенда.
vcom basicfir.vhd vcom basicfir_tb.vhd
Следующее отображение на экране показывает эту последовательность команды и информационные сообщения, отображенные во время компиляции.
Загрузите испытательный стенд для симуляции. Процедура для загрузки испытательного стенда отличается в зависимости от средства моделирования, которое вы используете. В средстве моделирования Mentor Graphics ModelSim вы загружаете испытательный стенд для симуляции с командой vsim
. Например:
vsim work.basicfir_tb
Следующие данные показывают результаты загрузки work.basicfir_tb
с командой vsim
.
Откройте окно экрана для контроля симуляции, когда испытательный стенд запускается. В средстве моделирования Mentor Graphics ModelSim используйте следующую команду, чтобы открыть окно wave и просмотреть результаты симуляции как формы волны HDL.
Следующие отображения окна wave.
Чтобы начать запускать симуляцию, дайте команду симуляции запуска для своего средства моделирования. Например, в средстве моделирования Mentor Graphics ModelSim, можно запустить симуляцию с команды run
.
Следующее отображение показывает команду run -all
, используемую, чтобы запустить симуляцию.
Когда ваша симуляция испытательного стенда запускается, см. за сообщениями об ошибке. Если сообщения об ошибке появляются, интерпретируют их, когда они принадлежат вашему проекту фильтра и опциям генерации HDL-кода, вы выбрали. Определите, ожидаются ли результаты на основе индивидуальных настроек, которые вы задали при генерации кода VHDL фильтра.
Следующее окно wave показывает результаты симуляции формами волны HDL.