19.3 for循环的循环边界是变量时处理方法
当循环边界是变量时会引发一些问题。首先 Vivado HLS 无法确定 loop latency 是多少,
进而就无法确定函数的 latency,此时相应的 latency 会用问号作为标记。
对于这种情况有 3 种处理方式:
用Tripcount指令
将循环边界的数据类型声明为ap_int(也可以使用ap_uint,但
是当循环变量是i—的时候会出问题,当减到负数后仍然会被识别为正
数)
在C代码中可以使用assert宏
(1)用 Tripcount 指令
图 19-12 使用 Tripcount 及其结果
Tripcount 指令会指定循环边界的最值,这样就把循环边界确定在一个范围内了,
在综合报告中各项参数就会以相应的范围来表示而不会出现问号了。Tripcount 指令只
会影响到综合报告的显示而不会影响到综合的 RTL 代码的结果。
1