exponenta event banner

Создание кода HDL

После подготовки проекта фильтра и настроек HDL создайте код HDL для проекта.

Применение настроек

При создании HDL из пользовательского интерфейса или командной строки кодер

  • Применяет измененные параметры создания кода

  • Генерирует код HDL и другие запрашиваемые файлы, например, тестовый стенд.

Совет

Для сохранения настроек кодера используйте опцию Создать код MATLAB (Generate MATLAB code), как описано в разделе Захват настроек создания кода. Генерировать код MATLAB можно только в пользовательском интерфейсе. Функция generatehdl не имеет эквивалентного свойства.

Создание кода HDL из пользовательского интерфейса

В этом разделе предполагается, что открыто диалоговое окно Генерировать ЛПВП (Generate HDL). См. раздел Запуск кодера HDL для проектирования фильтров.

Чтобы инициировать генерацию кода HDL для фильтра и его тестового стенда из пользовательского интерфейса, нажмите кнопку Generate (Генерировать) в диалоговом окне Generate HDL (Генерировать HDL). По мере формирования кода в окне MATLAB ® Command Window появляется последовательность сообщений, аналогичная следующей:

### Starting VHDL code generation process for filter: iir
### Generating: D:\hdlfilter_tutorials\hdlsrc\iir.vhd
### Starting generation of iir VHDL entity
### Starting generation of iir VHDL architecture
### First-order section, # 1
### Second-order section, # 2
### Second-order section, # 3
### HDL latency is 3 samples
### Successful completion of VHDL code generation process for filter: iir

### Starting generation of VHDL Test Bench
### Generating input stimulus
### Done generating input stimulus; length 2172 samples.
### Generating: D:\hdlfilter_tutorials\hdlsrc\iir_tb.vhd
### Please wait .......
### Done generating VHDL test bench.

Сообщения содержат гиперссылки на сгенерированный код и файлы тестового стенда. Щелкните эти гиперссылки, чтобы открыть файлы кода в редакторе MATLAB.

Создание HDL из командной строки

Спроектируйте фильтр.

d = fdesign.lowpass('Fp,Fst,Ap,Ast',0.2,0.22,1,60)
d = 
  lowpass with properties:

               Response: 'Lowpass'
          Specification: 'Fp,Fst,Ap,Ast'
            Description: {4x1 cell}
    NormalizedFrequency: 1
                  Fpass: 0.2000
                  Fstop: 0.2200
                  Apass: 1
                  Astop: 60

Hd = design(d,'equiripple','filterstructure','dfsymfir','Systemobject',true)
Hd = 
  dsp.FIRFilter with properties:

            Structure: 'Direct form symmetric'
      NumeratorSource: 'Property'
            Numerator: [1x202 double]
    InitialConditions: 0

  Show all properties

Для генерации кода HDL для фильтра и его тестового стенда из командной строки используйте generatehdl функция. При вызове generatehdl укажите имя фильтра и (необязательно) пары требуемого имени свойства и значения свойства. Если фильтр является системным object™, необходимо указать свойство типа входных данных.

По мере формирования кода в окне команд MATLAB появляется последовательность сообщений. Сообщения содержат гиперссылки на сгенерированный код и файлы тестового стенда. Щелкните эти гиперссылки, чтобы открыть файлы кода в редакторе MATLAB.

generatehdl(Hd,'InputDataType',numerictype(1,16,15),'Name','MyFilter',...
               'TargetLanguage','Verilog','GenerateHDLTestbench', 'on')
### Starting Verilog code generation process for filter: MyFilter
### Generating: /tmp/BR2021ad_1655202_180016/mlx_to_docbook1/tp7b274b1c/hdlfilter-ex97122369/hdlsrc/MyFilter.v
### Starting generation of MyFilter Verilog module
### Starting generation of MyFilter Verilog module body
### Successful completion of Verilog code generation process for filter: MyFilter
### HDL latency is 2 samples
### Starting generation of VERILOG Test Bench.
### Generating input stimulus
### Done generating input stimulus; length 4486 samples.
### Generating Test bench: /tmp/BR2021ad_1655202_180016/mlx_to_docbook1/tp7b274b1c/hdlfilter-ex97122369/hdlsrc/MyFilter_tb.v
### Creating stimulus vectors ...
### Done generating VERILOG Test Bench.