Vivado HLS学习笔记

任意精度的数据类型

在这里插入图片描述
u 代表 unsigned,fixed代表定点数据,即常数
采用任意精度的数据类型可以使用更少的资源,硬件友好性
数据类型定义在 header file 中

表示任意进制

ap_int<6> a("101010",2);  //二进制数据101010
ap_int<6> b("52",8);  	  //八进制数据52
ap_int<6> c("2A",16);  	  //十六进制数据2A
ap_int<6> d(-22);  		  //十进制数据-22

可使用 typeid 来获取变量的数据类型

#include <typeinfo>
ap_int<4> v1 = 3;
cout << typeid(v1).name() << endl;

复合数据类型

1. 结构体类型 Struct

在这里插入图片描述
Scalar (标量) 被实现成 scalar 端口
Array 被实现成 memory 端口
结构体中的数据可以被打包成一个 vector ,通过 data packing 优化

以下是两种打包方式 Byte_pad

field_level:先将独立得每个元素都扩展为标准8bits,然后打包这个结构体
在这里插入图片描述

struct_level:先打包这个结构体,再将打包后得结构体扩展为标准8bits

在这里插入图片描述
Data Pack 可以减少 latencyinitial interval

2. 结构体类型 enum
在这里插入图片描述
本质就是将一个数值定义为一个符号常量,每个枚举类型都会被自动地分配为一个int类型
这个例子中 M_INIT 对应到 0

基本运算

同C语言

Test Bench

在这里插入图片描述

Test Bench 既可以用来验证 C算法正确性,又可以用来验证RTL设计是否正确。

写 Test Bench 的规范要给出 Reference Result, 用来和 C算法得到的结果进行对比,以验证算法的正确性

在这里插入图片描述

接口综合

在这里插入图片描述

Block-level interface protocol
1.仅用于函数或者函数的返回值
2. 三种基本协议类型,ap_ctrl_hs、ap_ctrl_none、ap_ctrl_chain

标量接口映射

在这里插入图片描述

ap_ctrl_hs hs表示handshake,即握手协议
ap_none 即没有 I/O 协议
ap_ovld is for use with in-out arguments,即又是输入又是输出的情况
此时, 对于输入是 ap_none,输出是 ap_vld ,即输出有效标志位

数组接口映射
默认映射成 RAM 端口,可以自定义是单端口、双端口RAM还是FIFO接口
默认采用 ap_memory 协议,当数据是 stream 格式的,将被映射为 ap_fifo 协议

Port-level interface protocol

学习资源

B站视频
跟Xilinx SAE 学HLS系列视频讲座-高亚军

Xilinx官方文档
UG871 & UG902

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一个比较全面实用的C#帮助类、工具类库

前言 经常会有一些同学会问为什么感觉我身边的大佬写一个功能会这么快&#xff1f;一个类似的模块大佬可能半天就搞定了&#xff0c;而我要搞一两天。其实工作久了你会发现很多常用公共的帮助类和工具类&#xff0c;如常见的Excel数据导入导出、文件操作、字符串操作、数据转换…

【Spring】yaml自定义参数添加提示功能

文章目录 1. 说明2. 依赖3. 处理流程&#xff08;以自定义swagger配置为例&#xff09;3.1 定义自定义参数SwaggerProperties3.2 通过Configuration启用并使用自定义参数 4. 使用 返回首页 1. 说明 编写SpringBoot项目时是不是羡慕spring以及第三方插件的自动提示功能。其实实…

【CSP试题回顾】201409-3-字符串匹配

CSP-201409-3-字符串匹配 关键点&#xff1a;<string>库函数的使用 length() 或 size(): 返回字符串的长度。 empty(): 检查字符串是否为空。 append() 或 : 向字符串的末尾添加字符或另一个字符串。 insert()在字符串的指定位置插入另一个字符串或字符。 std::str…

《汇编语言》第3版 (王爽)第10章检测点解析

第10章 检测点 检测点10.1&#xff1a;补全程序&#xff0c;实现从内存1000:0000处开始执行指令。 解析: 我们知道retf指令是用栈中的数据&#xff0c;同时修改CS和IP寄存器中的内容&#xff0c;实现远转移&#xff0c;而且是先出栈的数据放入IP中&#xff0c;后出栈的数据放入…

数据分析-Pandas两种分组箱线图比较

数据分析-Pandas两种分组箱线图比较 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表&am…

Yolov7-tiny如何指定某个权重继续断点训练,并且训练到指定轮数

文章目录 前情提要步骤1. 拷贝整个运行train.py之后生成的文件&#xff08;然后删掉weights文件夹&#xff09;2. 删掉新路径下的weights里的所有权重&#xff0c;然后挑选一个权重放进去3. 修改新路径下的opt.yaml4. 指定新路径下的weights重的权重的绝对路径&#xff0c;开始…

Modified Bessel Function of the First Kind

Abstract 最近接触到 von Mises–Fisher distribution, 其概率密度如下: f p ( x ; μ , κ ) κ p 2 − 1 ( 2 π ) p 2 I p 2 − 1 ( κ ) e κ μ ⊺ x \begin{aligned} f_{p}(\bm{x}; \bm{\mu}, \kappa) \frac{\kappa^{\frac{p}{2}-1}} {(2\pi)^{\frac{p}{2}} I_{\frac…

2.5K Star,打造个性化博客平台

2.5K Star&#xff0c;打造个性化博客平台 Hi&#xff0c;骚年&#xff0c;我是大 G&#xff0c;公众号「GitHub 指北」会推荐 GitHub 上有趣有用的项目&#xff0c;一分钟 get 一个优秀的开源项目&#xff0c;挖掘开源的价值&#xff0c;欢迎关注。 导语 在当今的信息时代&a…

Interceptor拦截器+JWT令牌实现登陆验证

一、背景 与过滤器的作用类似&#xff0c;不过拦截器是spring中的组件&#xff0c;只能拦截进入spring的请求&#xff1b;过滤器则可以拦截所有从前端页面发送来的请求。 *拦截器和过滤器选一就可以实现登陆验证&#xff0c;过滤器的实现在以下这篇博客中&#xff0c;有需要可…

设置Matlab2022a断点查看参数变化

Matlab2022a设置断点&#xff0c;查看参数变化 本文使用的是下载好的matlab2022a软件&#xff0c;下载加安装matlab预计1小时&#xff08;百度网盘加速&#xff09;。需要的安装包的评论。 安装好的matlab界面如下&#xff1a; 接下来&#xff0c;编辑一个.m文件&#xff0c;…

【docker基础学习之】镜像构建

下面是在工作过遇到的一些实际例子&#xff0c;谨以此作为笔记参考 目录 1.背景2. 寻找方案3. 如何解决4.解决步骤4.1 DockerFile4.2 现在要做的 5. 镜像相关命令 1.背景 部署&#xff08;迁移&#xff09;项目时发现&#xff0c;项目的excel导出功能报错&#xff0c;错误如下…

灵根孕育源流出,心性修持大道生

解法&#xff1a; 手动本地跑了一下1e9&#xff0c;显然超时。 然后预处理发现开不了这么大的数组。 肯定有规律&#xff0c;打表看看 代码如下 #include<iostream> #include<vector> #include<algorithm> #include<cmath> using namespace std; #…

3.7作业

一 1&#xff09;应用层 负责处理不同应用程序之间的通信&#xff0c;需要满足提供的协议&#xff0c;确保数据发送方和接收方的正确 应用层提供的协议&#xff1a; &#xff08;2&#xff09;表示层 负责网络中通信的数据的编码和格式&#xff0c;确保通信过程中…

喜讯|智安网络与OceanBase完成产品兼容性互认证

近日&#xff0c;深圳市智安网络有限公司旗下产品智安云综合防御平台V3.0与北京奥星贝斯科技有限公司的OceanBase数据库正式完成兼容性互认证。经双方联合测试&#xff0c;结果表明&#xff1a;OceanBase数据库软件V4与智安云综合防御平台V3.0完全兼容&#xff0c;在功能、性能…

用户角色的重要性:确保财务数据安全的最佳方式

在企业的财务管理业务中&#xff0c;一个人几乎不可能完成所有的财务记账任务&#xff0c;例如设定预算、发票审批等等&#xff0c;至少不能有效地执行。最为明智的方式&#xff0c;是将这些任务分派给特定的人员&#xff0c;比如部门经理、财务经理或者销售、市场人员等等。 但…

Sora: 大型视觉模型背景、技术、局限性和机遇的综述

论文链接&#xff1a;https://arxiv.org/pdf/2402.17177.pdf 背景 在分析 Sora 之前&#xff0c;研究者首先盘点了视觉内容生成技术的沿袭。 在深度学习革命之前&#xff0c;传统的图像生成技术依赖于基于手工创建特征的纹理合成和纹理映射等方法。这些方法在生成复杂而生动…

Xilinx 7系列 FPGA硬件知识系列(八)——Xilinx FPGA的复位

目录 概要 Xilinx复位准则 全局复位主要由以下三种方式实现 高时钟频率下的复位时序全局复位对时序的要求真的很关键吗&#xff1f; 独热码状态机的复位 FPGA配置 概要 Xilinx白皮书WP272《Get Smart About Reset: Think Local, Not Global》详细讲述了FPGA的全…

IDEA中新增文件,弹出框提示是否添加到Git点错了,怎么重新设置?

打开一个配置了Git的项目&#xff0c;新增一个文件&#xff0c;会弹出下面这个框。提示是否将新增的文件交给Git管理。 一般来说&#xff0c;会选择ADD&#xff0c;并勾选Dont ask agin&#xff0c;添加并不再询问。如果不小心点错了&#xff0c;可在IDEA中重新设置&#xff08…

蓝桥杯嵌入式模板构建——RCT时钟

在CubeMX里的RTC模块启用RTC时钟和日历功能 输入到RTC的时钟要配置成1HZ,这样的话RTC每经过1s走时一次 由于RTC时钟默认配置为32Khz 所以我们需要将异步分频值与同步分频值的乘积调整为32K分频即可一秒走时一次 频率&#xff1a;32000hz / 32000hz 1hz 必须是31和999&#…

Processing基本形状内容和实例

一、Processing的基本形状内容和实例 1.Processing有一组专门绘制基本图形得图案。像线条这样的基本图形可以被连接起来创建更为复杂得形状&#xff0c;例如一片叶子或者一张脸。 2.为了绘制一条直线&#xff0c;我们需要四个参数&#xff0c;两个用于确定初始位置&#xff0c;…