Если ваш проект фильтра и настройки HDL готовы, генерируют HDL-код для вашего проекта.
Когда вы генерируете HDL, или от пользовательского интерфейса или от командной строки, кодера
Применяет настройки опции генерации кода, которые вы изменили
Генерирует HDL-код и другие требуемые файлы, такие как испытательный стенд.
Чтобы сохранить ваши настройки кодера, используйте опцию Generate MATLAB code , как описано в Получении Настроек генерации кода. Generate MATLAB code доступен только в пользовательском интерфейсе. Функциональный generatehdl
не имеет эквивалентного свойства.
Этот раздел принимает, что вы открыли диалоговое окно 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.
Разработайте фильтр.
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/BR2019ad_1062519_57051/mlx_to_docbook2/tp818d85a2/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/BR2019ad_1062519_57051/mlx_to_docbook2/tp818d85a2/hdlfilter-ex97122369/hdlsrc/MyFilter_tb.v ### Creating stimulus vectors ... ### Done generating VERILOG Test Bench.