Assert断言的应用
一、Assert断言的说明1.assert断言宏在hls高层次综合中是可以被综合的2.assert断言宏主要用于对变量和循环边界进行范围限定3.当存在变量循环边界的时候vivado hls工具是无法判断这个循环的所有迭代的时延latency的所以综合的时候报告显示一般为?号使用tripcount行程指令可以将循环边界告知hls工具但是这个只是用于信息报告的目的并不影响综合结果即使你使用了tripcount指令综合工具还是以这个循环变量的数据类型的最大值来进行硬件资源分配的#include loop_sequential_assert.hvoid loop_sequential_assert(din_t A[N], din_t B[N], dout_t X[N], dout_tY[N], dsel_txlimit, dsel_t ylimit) {dout_t X_accum0;dout_t Y_accum0;int i,j;assert(xlimit32);SUM_X:for (i0;ixlimit; i) {X_accum A[i];X[i] X_accum;}assert(ylimit16);SUM_Y:for (i0;iylimit; i) {Y_accum B[i];Y[i] Y_accum;}}二、assert的应用还可以用来确定IIC-RTL联合仿真中经常可以看到latency的clock周期数但是看不到II的周期数这个主要是到处使用循环边界变量的缘故如果你使用assert限制是不是就可以看到整rtl的模块的II到底是多少呢其实确定不了只有你全部设计是pipeline流水线化设计才有确定的II否则你仿真II就是全部是NA