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

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

Применение ваших настроек

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

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

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

Совет

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

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

Этот раздел принимает, что вы открыли диалоговое окно Generate HDL. См. Стартовый Filter Design HDL Coder.

Чтобы инициировать генерацию HDL-кода для фильтра и его испытательного стенда от пользовательского интерфейса, нажмите Generate на диалоговом окне 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: [-0.0011 -0.0017 -0.0025 -0.0031 -0.0031 -0.0024 ... ]
    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/BR2021bd_1751886_255755/mlx_to_docbook1/tp658a2b87/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/BR2021bd_1751886_255755/mlx_to_docbook1/tp658a2b87/hdlfilter-ex97122369/hdlsrc/MyFilter_tb.v
### Creating stimulus vectors ...
### Done generating VERILOG Test Bench.