从零开始利用MATLAB进行FPGA设计(四)生成优化HDL代码

news2024/12/23 8:14:00

文章灵感来源于MATLAB官方免费教程:HDL Coder Self-Guided Tutorial

考虑到MATLAB官网的英文看着慢,再加上视频讲解老印浓浓的咖喱味,我决定记录利用MATLAB&Simulink&SystemGenerator进行FPGA数字信号处理的学习过程。

往期回顾:

从零开始利用MATLAB进行FPGA设计(二)用于HDL代码生成的Simulink模型并用于流水线设计

从零开始利用MATLAB进行FPGA设计(三)将Simulink模型转化为定点数据类型

目录

1.检查模型在代码生成方面的兼容性

2.生成HDL代码(HDL Workflow Advisor)


1.检查模型在代码生成方面的兼容性

本章内容将要生成的是前文模型中的脉冲检测子系统。右击模块,在HDL Code选项下选择HDL Code Advisor

该功能可确保子系统中使用的模块兼容HDL,并确保这些模块的设置、端口和配置不会产生低效的硬件,浮点检查和行业标准检查不适用于本例,所以进行忽略。运行选定的检查后,不符合的状态将显示为警告或失败:

警告可以通过报告的连接直接跳转,可以使用“Modify Settings”自动更正警告。

在HTML报告中会显示每次运行模型检查器的结果和时间戳。

2.生成HDL代码(HDL Workflow Advisor)

要综合生成HDL代码,需要使用vivado。在命令行中使用:

hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath','Xilinx bin的位置')

将综合工具写入MATLAB系统路径。

右键单击子系统,启动HDL Workflow Advisor:

HDL Workflow Advisor会一步一步完成生成HDL代码的各个阶段最终完成FPGA设计。

首先进行FPGA的硬件信息定义:

本文使用的是ZYNQ7000系列芯片。需要注意的是,创建的文件目录总长度不能超过80个字母,否则在后续生成中非常容易出错(若在MATLAB的默认目录下进行创建很容易出现这个问题)。

与全局设置和报告生成有关的设置在3.1菜单中点击“HDL Code Generation Settings”:

全部设置完毕后运行至任务3.2以启动HDL代码的生成。任务完成后即可看到生成的HDL代码:

代码生成报告中包含了资源利用率估算值和优化选项:

要进行仿真操作,必须安装ModelSim

生成HDL代码后,可以继续在Workflow Advisor中创建FPGA综合工程,也可以在Vivado中继续设计。

若在生成过程中报错找不到Vivado中的文件,可以尝试打开Vivado进行生成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1521121.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣大厂热门面试算法题 36-38

36. 有效的数独,37. 解数独,38. 外观数列,每题做详细思路梳理,配套Python&Java双语代码, 2024.03.16 可通过leetcode所有测试用例。 目录 36. 有效的数独 解题思路 完整代码 Java Python 37. 解数独 解题思…

MySql入门教程--MySQL数据库基础操作

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

【C++从练气到飞升】03---构造函数和析构函数

🎈个人主页:库库的里昂 ✨收录专栏:C从练气到飞升 🎉鸟欲高飞先振翅,人求上进先读书。 目录 ⛳️推荐 一、类的6个默认成员函数 二、构造函数 1. 构造函数的概念 2. 构造函数的定义 3. 构造函数的特性 三、析构函…

leetcode 2312. 卖木头块【划分型dp+棋盘切割类型dp】

原题链接:2312. 卖木头块 题目描述: 给你两个整数 m 和 n ,分别表示一块矩形木块的高和宽。同时给你一个二维整数数组 prices ,其中 prices[i] [hi, wi, pricei] 表示你可以以 pricei 元的价格卖一块高为 hi 宽为 wi 的矩形木块…

【数据结构练习题】栈——1.括号匹配 2.逆波兰表达式求值 3.出栈入栈次序匹配 4.最小栈

♥♥♥♥♥个人主页♥♥♥♥♥ ♥♥♥♥♥数据结构练习题总结专栏♥♥♥♥♥ 文件目录 前言1.括号匹配1.1问题描述1.2解题思路1.3画图解释1.4代码实现2.逆波兰表达式求值 2.1问题描述2.2解题思路2.3画图解释2.4代码解释3.出栈入栈次序匹配 3.1问题描述3.2思路分析3.3画图解释3.…

Spring Chache入门详解、配套小案例

简介:Spring Cache是一个框架,实现了基于注解的缓存功能,只需要添加一个注解就能实现缓存功能。 Spring Cache提供了一层抽象,底层可以切换不同的缓存实现,如下: EHCacheCaffeineRedis (这篇帖子&#xff…

Xcode调试Qt 源码

在Mac下使用Xcode 开发Qt程序,由于程序断点或者崩溃后,Qt库的堆栈并不能够正确定位到源码的cpp文件,而是显示的是汇编代码,导致不直观的显示。 加载的其他三方库都是同理。 所以找了攻略和研究后,写的这篇文章。 一&a…

网络原理(1)——UDP协议

目录 一、应用层 举个例子:点外卖 约定数据格式简单粗暴的例子 客户端和服务器的交互: 序列化和返序列化 xml、json、protobuffer 1、xml 2、json 3、protobuffer 二、传输层 端口 端口号范围划分 认识知名的端口号 三、UDP协议 端口 U…

NCP1380BDR2G芯片中文资料规格书PDF数据手册引脚图图片参数功能价格

产品描述: NCP1380 是一款高性能器件,旨在为准谐振转换器供电。该控制器基于专属的谷锁闭系统,可以在功率负载变轻时进行切换并降低开关频率。这样将产生稳定的运行,即使在漏极-源极谷中总是触发的开关事件下也是如此。此系统可在…

蓝膜胶带(蓝膜)为动力电池电气绝缘主流应用方案之一 市场需求空间较广阔

蓝膜胶带(蓝膜)为动力电池电气绝缘主流应用方案之一 市场需求空间较广阔 动力电池蓝膜胶带是一种PET基材背上PSA压敏胶制成的单面胶带,因其以深蓝色居多,又被称为蓝膜。蓝膜为绝缘材料,可将电芯与电芯之间分隔开来&…

环保水离子水壁炉,现代时尚

环保水离子壁炉,现代而时尚,靠水运行,用电量很少。这绝对是最生态的壁炉。完全安全(带冷火焰),其现代设计完美适应各种环境。凭借最低的碳足迹,它无疑是未来的混合壁炉。 什么是环保壁炉&#x…

JUC之CAS比较并交换

CAS 原子类引入 加入原子整型类的操作后,无锁化的操作 CAS 比较并交换 硬件级别的保证 源码分析 引出UnSafe类 UnSafe源码分析 unsafe中的do-while保证自旋 public final int getAndAddInt(Object var1, long var2, int var4) {int var5;do {var5 this…

Linux:kubernetes(k8s)有状态的服务部署(14)

之前我都是对无状态进行的一个操作,我们想扩容就扩容,想缩容就缩容,根本不用去考虑他的一个网络环境,本地储存环境啥的一个状态 当我们做有状态的服务的操作,肯定要申请一个持久化的一个空间,以及网络&…

Linux环境(Ubuntu)上的防火墙工具使用方法

目录 概述 1 防火墙工具(ufw) 1.1 安装防火墙工具: 1.2 操作防火墙相关命令 2 ufw操作命令的范例 2.1 打开/关闭防火墙 2.1.1 打开防火墙 2.1.2 关闭防火墙 2.1.3 查询当前防火墙状态 2.1.4 允许选择的端口访问 2.1.5 允许选择固定…

自动写作软件哪个好?分享7款独家推荐

随着人工智能技术的不断发展,自动写作软件正逐渐成为现代写作的利器。这些AI写作工具能够帮助用户高效地生成文章、报告、新闻稿等内容,为写作工作带来了极大的便利。然而,市面上的自动写作软件琳琅满目,让人眼花缭乱。为了帮助读…

SpringCloud返回的是xml格式而非JSON数据

一、问题描述: 最近接触eureka,写了一个接口,使用RestController注解修饰了类,预期是返回json格式的数据,但是结果返回的是xml格式的数据。 二、问题分析: 原因是因为直接或间接引入了jackson-dataformat…

相机拍照与摄影学基础

1.相机拍照 相机可能形状和大小不同,但基本功能相同,包括快门速度、光圈和景深,这些是摄影的通用概念。即使是一次性相机也是基于这三个理念工作的。不同类型相机在这三个概念上的唯一区别是你可以控制这些功能的程度。这三个参数被称为相机…

mybatis+thymeleaf登录

目录 一.将页面显示在浏览器中 1.新建项目并导入页面 2.使用th标签 3.新建控制层 4.显示结果 二.将两个页面进行关联 1.提交表单 2.跳转页面 3.结果 三.登录账号名动态改变 1.获取登录表单数据 2.给页面传值 3.页面显示 4.结果 四.连接数据库 1.新建数据库 2.…

tcp/ip协议2实现的插图,数据结构8 (30 - 32章)

(201) 201 三十0 中断优先级补充 (202) 202 三十1 TCP的用户需求 函tcp_usrreq一 (203) 203 三十2 TCP的用户需求 函tcp_usrreq二 (204) 204 三十3 TCP的用户需求 函tcp_usrreq三 (205) 205 三十4 TCP的用户需求 函tcp_usrreq四 (206) 206 三十5 TCP的用户需求 函tcp_usrreq五 …

C语言 内存函数

目录 前言 一、memcpy()函数 二、memmove()函数 三、memset函数 四、memcmp()函数 总结 前言 在C语言中内存是我们用来存储数据的地址,今天我们来讲一下C语言中常用的内存函数。 一、memcpy()函数 memcpy()函数与我们之前讲的strcpy()函数类似,只…