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