Vivado HLS 五:fir例子的数据类型拓展
感谢FPGA那点事儿公众号,提供了很多入门知识!
本文参考自:https://mp.weixin.qq.com/s/e9G513VPw5bs1EFJRi2osA
本文主要探讨HLS中变量的精度问题(在硬件电路中,具体表示为信号所需的位宽),如何使用数据类型拓展,和不同数据类型对资源造成的影响。
目录:
C的数据类型和RTL的数据类型
乘法运算与占用DSP的个数关系
数据类型拓展的使用和降低资源
HLS在C标准上增加了任意精度的数据类型。在C中我们只能选择四种不同bit位宽的变量类型:8bit(char),16bit(short),32bit(int,float)和64bit(long,double)。在RTL中我们可以选择任意位宽来表示变量。在FPGA中,不合适的位宽代表着资源的浪费,例如一些重要的资源如DSP Block,Block RAM等。
上一篇的fir简单例子中,变量都采用32bit位宽的整形,一个乘法器需要4个DSP Block。.c,.h代码和综合结果如下: