Генерация HDL-кода

Как только ваше создание фильтра и настройки HDL готовы, сгенерируйте HDL-код для вашего проекта.

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

Когда вы генерируете HDL, либо из пользовательского интерфейса, либо из командной строки, кодер

  • Применяет генерацию кода опции параметрам, которые вы отредактировали

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

Совет

Чтобы сохранить настройки кодера, используйте опцию Generate MATLAB code , как описано в Настройках Генерации Кода. Generate MATLAB code доступна только в пользовательском интерфейсе. Функция generatehdl не имеет эквивалентного свойства.

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

В этом разделе предполагается, что вы открыли диалоговое окно Генерация HDL. Смотрите Starting Filter Design HDL Coder.

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

### 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.