加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Vivado-HLS学习 数据类型转换

(2017-08-01 19:37:37)
分类: Vivado
1、使用ap_[u]int对变量定义和初始化。尽量在一行初始化一个变量,避免一行初始化多个变量。例如:
ap_int<6> a_6bit_var_r8("0o52", 8); //变量a_6bit_var_r8值为8进制的0o52,用6bit存储。
http://s15/mw690/006hC78Ezy7d6wDXCCa6e&690数据类型转换" TITLE="Vivado-HLS学习 数据类型转换" />

2、使用ap_[u]fixed定义和初始化变量。
http://s13/mw690/006hC78Ezy7d6wERlmYbc&690数据类型转换" TITLE="Vivado-HLS学习 数据类型转换" />

3、浮点类型变量的定义和初始化。
http://s4/mw690/006hC78Ezy7d6wG0XJNa3&690数据类型转换" TITLE="Vivado-HLS学习 数据类型转换" />

4、隐式数据类型转换1:Promotion数据类型转换。将小位宽扩展到大位宽,是安全的,不会有精度损失。
ap_uint<8> res;
ap_int<4> v1 = -4;
ap_uint<4> v2 = 4;
res = v1; //由于v1是负数,因此将符号位展宽到8bit
res = v2; //由于v2是正数,因此将高位补0到8bit
http://s1/mw690/006hC78Ezy7d6wGUSFGd0&690数据类型转换" TITLE="Vivado-HLS学习 数据类型转换" />

5、隐式数据类型转换2:Implicit类型转换。将大的位宽转换到小位宽,可能导致精度损失。
http://s4/mw690/006hC78Ezy7d6wI5K6fd3&690数据类型转换" TITLE="Vivado-HLS学习 数据类型转换" />

6、显示数据类型转换。
ap_uint<3> i3 = 4; //u表示无符号
ap_uint<4> i4 = 10; 
ap_ufixed<6,4> i5 = i4 / i3; //整型/整型,得到的结果自动取整,将取整后的结果赋值给i5,因此i5=2;
http://s15/mw690/006hC78Ezy7d6wJkyAu8e&690数据类型转换" TITLE="Vivado-HLS学习 数据类型转换" />

7、数据操作后的位宽确定。
http://s15/mw690/006hC78Ezy7d6wKoOE69e&690数据类型转换" TITLE="Vivado-HLS学习 数据类型转换" />

8、可用typeid获取变量的数据类型信息。
http://s7/mw690/006hC78Ezy7d6wLsFro56&690数据类型转换" TITLE="Vivado-HLS学习 数据类型转换" />

9、总结。
http://s7/mw690/006hC78Ezy7d6wMsnNI86&690数据类型转换" TITLE="Vivado-HLS学习 数据类型转换" />


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有