Как только ваше создание фильтра и настройки HDL готовы, сгенерируйте HDL-код для вашего проекта.
Когда вы генерируете HDL, либо из пользовательского интерфейса, либо из командной строки, кодер
Применяет генерацию кода опции параметрам, которые вы отредактировали
Генерирует HDL-код и другие запрашиваемые файлы, такие как испытательные стенды.
Совет
Чтобы сохранить настройки кодера, используйте опцию Generate MATLAB code , как описано в Настройках Генерации Кода. Generate MATLAB code доступна только в пользовательском интерфейсе. Функция generatehdl
не имеет эквивалентного свойства.
В этом разделе предполагается, что вы открыли диалоговое окно Генерация 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.
Проектируйте фильтр.
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.