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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

overleaf latex 笔记

overleaf: www.overleaf.com 导入.tex文件 1.代码空一行&#xff0c;代表文字另起一段 2. 1 2 3 排序 \begin{enumerate} \item \item \item \end{enumerate} 3.插入图片 上传图片并命名 \usepackage{float}导包\begin{figure}[H]&#xff1a;表示将图…

四个有用的Android开发技巧

一. 通过堆栈快速定位系统版本 这个地方主要分享大家两个个技巧&#xff0c;通过问题堆栈简快速定位当前系统版本&#xff1a; 1. 快速区分当前系统版本是Android10以下&#xff0c;还是Android10及以上&#xff1b; 首先Android10及以上引入了一个新的服务Service&#xff…

vite+vue3使用UEditorPlus ,后端PHP

vitevue3使用UEditorPlus 百度富文本编辑器是目前所有编辑器中功能最丰富的&#xff0c;但长时间不进行维护了。 之前写了一篇使用UEditor的教程&#xff0c;最近发现一个UEditorPlus&#xff0c;总结一下如何使用 什么是UEditorPlus 基于 UEditor 二次开发的富文本编辑器&…

Launch学习

参考博客&#xff1a; (1) 史上最全的launch的解析来啦&#xff0c;木有之一欧 1 ROS工作空间简介 2 元功能包 src目录下可以包含多个功能包&#xff0c;假设需要使用机器人导航模块&#xff0c;但是这个模块中包含着地图、定位、路径规划等不同的功能包&#xff0c;它们的逻…

Python算法题集_N 皇后

Python算法题集_N 皇后 题51&#xff1a;N 皇后1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【规则遍历合理性回溯】2) 改进版一【线状态检测合理性回溯】3) 改进版二【单行矩阵回溯】 4. 最优算法5. 相关资源 本文为Python算法题集之一的代码…

R语言:多值提取到点

ArcGIS中有相关工具实现多值提取到点的功能&#xff0c;在这里&#xff0c;我将使用R语言进行操作&#xff1a; library(dplyr) library(readxl) library(sf) library(raster)setwd("D:/Datasets") Bio <- stack(paste0("D:/Datasets/Data/worldclim2_1km/…

echarts使用总结

最近项目大量的曲线图,柱状图,饼图...总结一下使用过程中的小问题及解决方法 . 1.当x轴太拥挤,x轴数据不能全部展示怎么办? 这时候就只需要在xAxis的axisLabel对象中添加属性 interval : 0 就可以显示全部数据 , interval 属性是用来调整x轴数据的间距的 , 数值越大间距越大…

融资项目——通过OpenFeign在分布式微服务框架中实现微服务的远程调用

1.OpenFeign配置 首先&#xff0c;在需要调用其他的微服务的微服务中引入相关依赖。&#xff08;大多数项目中各微服务需要互相调用&#xff0c;可以直接在每个微服务中引入依赖&#xff09; <!--服务调用--><dependency><groupId>org.springframework.clou…

【剑指offer--C/C++】JZ6 从尾到头打印链表

一、题目 二、本人思路及代码 直接在链表里进行翻转不太方便操作&#xff0c;但是数组就可以通过下标进行操作&#xff0c;于是&#xff0c; 思路1、 先遍历链表&#xff0c;以此存到vector中&#xff0c;然后再从后往前遍历这vector,存入到一个新的vector&#xff0c;就完成…

GamiPress与MyCred:游戏化插件

游戏化插件很受欢迎&#xff0c;可以提高用户参与度并鼓励在动态网站和内容管理环境中采取所需的操作。GamiPress和MyCred 是游戏化领域的主要参与者&#xff0c;它们提供功能丰富的解决方案&#xff0c;将游戏机制有效地融入网站。旨在吸引并留住受众的组织面临着 GamiPress 和…

【开源】SpringBoot框架开发快乐贩卖馆管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 搞笑视频模块2.3 视频收藏模块2.4 视频评分模块2.5 视频交易模块2.6 视频好友模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 搞笑视频表3.2.2 视频收藏表3.2.3 视频评分表3.2.4 视频交易表 四、系…

计讯物联智慧工业园区系统平台全面提升园区智能化水平

工业园区聚集着各种生产要素&#xff0c;是纺织、机械、家具等诸多产业集中的区域&#xff0c;更是资源消耗和污染物排放的集中地。根据某些工业园区环境调研&#xff0c;园区入驻企业从生产原料到生产制造过程大多带有有毒有害、易燃易爆的特性&#xff0c;再加上装置大型化、…