MATLAB/simulink HDLCoder生成DDS quartus项目

文章目录

  • 前言
  • 一、什么是HDL Coder
  • 二、使用步骤
    • 1.搭建simulink模型
    • 2.HDL Coder使用
  • 总结


前言

为了提升FPGA学习过程的生活品质,在此记录一下使用simulink搭建模型以后直接使用HDL Coder生成Quartus 项目的过程。

一、什么是HDL Coder

HDL Coder 通过从 MATLAB 函数、Simulink 模型和 Stateflow 图中生成可移植、可综合的 Verilog® 和 VHDL® 代码来支持 FPGA、SoC 和 ASIC 的高层设计。您可以将生成的 HDL 代码用于 FPGA 编程、ASIC 原型构建和产品级设计。

HDL Coder 包括工作流顾问,可用于在 Xilinx®、Intel® 和 Microchip 板上通过生成的代码自动进行原型构建,并为 ASIC 和 FPGA 工作流生成 IP 核。您可以以速度和面积为目的进行优化,突出显示关键路径,并在综合之前生成资源利用率估计值。HDL Coder 提供 Simulink 模型与生成的 Verilog 和 VHDL 代码之间的可追溯性,因此支持对遵循 DO-254 及其他标准的高完整性应用进行代码验证。

二、使用步骤

选择带有HDL的库中的模块,HDL库中的模块在generate时才能生成代码

1.搭建simulink模型

  1. 在DSP HDL Toolbox中找到NCO模块
    MATLAB/simulink HDLCoder生成DDS quartus项目_第1张图片
    将NCO中phase increment设置为 Input port
    MATLAB/simulink HDLCoder生成DDS quartus项目_第2张图片

  2. valid端放置constant模块,数据类型设置为Boolean;inc端放置in模块,数据类型设置为uint16
    MATLAB/simulink HDLCoder生成DDS quartus项目_第3张图片
    采样时间设置为1,采样率为1Hz,便于计算。
    MATLAB/simulink HDLCoder生成DDS quartus项目_第4张图片
    3.添加输出端口
    MATLAB/simulink HDLCoder生成DDS quartus项目_第5张图片此时基本模型已经搭建完成


2.HDL Coder使用

  1. 在任务栏的APP中选择HDL Coder
    MATLAB/simulink HDLCoder生成DDS quartus项目_第6张图片
  2. 点击workflow
    MATLAB/simulink HDLCoder生成DDS quartus项目_第7张图片
  3. 选择Target workflow为图上所示选项,选择编译器和FPGA的型号后点击运行此任务,
    MATLAB/simulink HDLCoder生成DDS quartus项目_第8张图片
    运行以后就会在slx保存目录下新建一个hdl_prj文件夹保存生成的文件

将Target Frequency设置为FPGA工作频率
MATLAB/simulink HDLCoder生成DDS quartus项目_第9张图片

  1. 该部分点击运行后大概率会有一个warning,只需点击下面的Modify All后再次运行即可
    MATLAB/simulink HDLCoder生成DDS quartus项目_第10张图片
  2. 选择目标语言为Verilog语言后点击运行
    MATLAB/simulink HDLCoder生成DDS quartus项目_第11张图片
    也可以选择生成Testbench,但是需要配置Modelsim,本人还没有学会。。
    MATLAB/simulink HDLCoder生成DDS quartus项目_第12张图片
  3. 运行完4.1步后Quartus项目生成完毕
    MATLAB/simulink HDLCoder生成DDS quartus项目_第13张图片
  4. 会在刚开始指定的文件夹内生成一个hdlsrc和quartus_prj文件夹,其中hdlsrc文件夹内是生成的.v文件,quartus_prj内是qsf文件
    MATLAB/simulink HDLCoder生成DDS quartus项目_第14张图片
    MATLAB/simulink HDLCoder生成DDS quartus项目_第15张图片
    成功!

总结

本文简单介绍了simulink中HDL Coder的使用,给博主还在军训的兄弟提供一点参考,希望退伍老兵在使用HDLCoder时少走弯路。

你可能感兴趣的:(FPGA学习,matlab,fpga开发,开发语言)