Vivado HLS学习笔记

news/2024/11/29 12:37:53/

任意精度的数据类型

在这里插入图片描述
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.ppmy.cn/news/1379656.html

相关文章

Milvus的相似度指标

官网&#xff1a;https://milvus.io/docs/metric.md版本: v2.3.x 在 Milvus 中&#xff0c;相似度度量用于衡量向量之间的相似度。选择良好的距离度量有助于显着提高分类和聚类性能。下表展示了这些广泛使用的相似性指标如何与各种输入数据形式和 Milvus 索引相匹配。 一、浮…

论文笔记:Evaluating the Performance of Large Language Models on GAOKAO Benchmark

1 论文思路 采用zero-shot prompting的方式&#xff0c;将试题转化为ChatGPT的输入 对于数学题&#xff0c;将公式转化为latex输入 主观题由专业教师打分 2 数据 2010~2022年&#xff0c;一共13年间的全国A卷和全国B卷 3 结论 3.1 不同模型的zeroshot 高考总分 3.2 各科主…

WPF —— TextBlock、LineBreak RadioButton控件详解

一:TextBlock 1&#xff1a;TextBlock 简介 <LineBreak/> 换行 显示文本 标签内容和content属性共存 2、TextBlock 常用的属性 Foreground&#xff1a;TextBlock的文本内容的颜色。 Background&#xff1a;背景&#xff0c;获取或设置要用于填充内容区域背景的 Brush…

分享一款通过AI将图片生成html的开源软件

开源地址&#xff1a; https://gitee.com/itbuilder/image2code 功能说明 该软件使用AI识别图片内容&#xff0c;并生成所需的html代码 可支持如下语言 BootstrapVue TailwindVue Element UIReact Tailwind

Python高级二

一、异常 1、定义 异常是在程序执行过程中出现的错误或意外情况。当程序遇到异常时&#xff0c;它会中断当前的执行流程&#xff0c;并尝试找到相应的异常处理机制来解决问题。 2、常见异常类型 SyntaxError&#xff1a;语法错误&#xff0c;通常是代码书写不符合Python语法规则…

C语言基础练习——Day05

目录 选择题 编程题 数字在升序数组中出现的次数 整数转换 选择题 1、如下程序的功能是 #include <stdio.h> int main() {char ch[80] "123abcdEFG*&";int j;puts(ch);for(j 0; ch[j] ! \0; j){if(ch[j] > A && ch[j] < Z)ch[j] ch[j] e…

【Go】探索Go语言中的关于defer的应用

冬来的秋去 像记忆裂痕 又再变更空枕触遗憾 半梦半醒侵沾眼晴的泪痕 每晚夜深妄想真情接近 绻梦绻恋一宵雨侵悲不禁 永远最相衬 但愿梦里是永恒 ——《永远之后-黄艺明》 在Go语言中&#xff0c;defer语句是一个非常强大且常用的特性&#xff0c;它允许我们在函数结束时执行一些…

首次实现Go调用C的dll文件

首先&#xff0c;要使用Go调用C的DLL文件&#xff0c;你需要遵循以下步骤&#xff1a; 编写C代码&#xff1a; 首先&#xff0c;编写你的C代码&#xff0c;并将其编译成DLL文件。假设你有一个名为example.c的C源文件&#xff0c;其中包含你要调用的函数。 // example.c #includ…