Vivado HLS学习笔记

任意精度的数据类型

u 代表 unsigned,fixed代表定点数据,即常数

采用任意精度的数据类型可以使用更少的资源,硬件友好性

数据类型定义在 header file 中

表示任意进制

cpp 复制代码
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 来获取变量的数据类型

cpp 复制代码
#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.仅用于函数或者函数的返回值

  1. 三种基本协议类型,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

相关推荐
聊点儿技术几秒前
网约车高风险环节的IP欺诈风险查询应用思路
网络·tcp/ip·风险评估·ip地址查询·ip风险画像·网约车平台·ip画像api
爱学习的小囧几秒前
VMware ESXi 双管理网口配置全教程:新增 vmk1 端口 + 主备冗余 / 负载均衡双模式实操
运维·服务器·网络·windows·负载均衡·虚拟化
大卡片1 分钟前
TCP与UDP通信
网络·网络协议·tcp/ip
Ether IC Verifier2 分钟前
RDMA常用缩写及应用详解
网络·网络协议·tcp/ip·计算机网络·dpu
TechWayfarer3 分钟前
IP归属地API接入实战指南:3天内安全上线的评估与落地方法
网络·tcp/ip·安全
liurendonews3 分钟前
刘韧微积分笔记之四:手机里的微积分
笔记·智能手机
星幻元宇VR4 分钟前
VR消防安全学习机,数字化消防培训新选择
科技·学习·安全·vr
Dontla4 分钟前
OSI七层网络模型(OSI Model:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)物链网传会表应、TCP/IP模型
网络·网络协议·tcp/ip
Chengbei1111 分钟前
FOFA高级会员、DayDaymap、360Quake、Hunter测绘搜索引擎高级会员免费使用最大1W条查询
网络·安全·web安全·搜索引擎·网络安全·金融·系统安全
positive_zpc16 分钟前
计算机网络——应用层
服务器·网络·计算机网络