前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第5讲 如何处理任意精度的数据类型

第5讲 如何处理任意精度的数据类型

作者头像
Lauren的FPGA
发布2019-10-31 14:05:14
7950
发布2019-10-31 14:05:14
举报
文章被收录于专栏:Lauren的FPGALauren的FPGA

提起C/C++中本身的数据类型(native data types),我们会想到char、int、long等。这些数据类型对应的位宽是以8为边界的。相比于软件开发,FPGA设计中数据的位宽(也可称之为字长)是一个非常重要的因素。例如:一个输入数据均为18bit的乘法运算需要消耗1个DSP48,若输入数据位宽增至32bit,则需要消耗4个DSP48。可是C本身是无法声明一个18bit的数据。为此,Vivado HLS对数据类型做了扩展,设置了任意精度数据类型,以满足硬件设计的需求。更为重要的是,这种任意进度的数据类型继承了原有C数据类型所支持的操作,使得FPGA开发更为高效。此外,对于复合数据类型struct和enum,Vivado HLS也是支持的。

一个好的代码风格是将数据类型定义在头文件中,同时可通过#define切换数据类型,例如,C仿真时,可将数据类型设置为float,便于调试,以快速验证算法功能,C综合时,再切换到目标数据类型。

更为深入的介绍可以阅读以下文档:

ug902(v2018.1) High-Level Synthesis User Guide page 76 - page 83

ug871(v2018.1) High-level Synthesis Tutorial Ch5: Arbitrary Precision Types

Lab 1,Lab 2

视频内容
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lauren的FPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档