Vivado HLS C/RTL联合仿真时间一直增加,无法自动结束问题

用Vivado HLS做了FIFO仿真,并将端口设置为ap_fifo类型,C仿真没有问题,代码如下:

void array_FIFO (int32 *fifo_w ) {
#pragma HLS INTERFACE ap_fifo port=fifo_w
	int i;

	for (i=0;i<1024;i++) {
		fifo_w[i] = i;
	}
}

但C/RTL时间一直增加且无法自动结束,终端提示如下:

// RTL Simulation : "Inter-Transaction Progress" ["Intra-Transaction Progress"] @ "Simulation Time"

// RTL Simulation : 0 / 1 [0.00%] @ "110000"
// RTL Simulation : 0 / 1 [975609.76%] @ "40000118000"

手动停止仿真后Wave View只有一个周期的波形。


难道是我的端口类型约束有错?但是指针参数明明可以约束为fifo端口的,把指针参数换成数组参数:

void array_FIFO (int32 fifo_w[1204] ) {
#pragma HLS INTERFACE ap_fifo port=fifo_w
	int i;

	for (i=0;i<1024;i++) {
		fifo_w[i] = i;
	}
}

怀疑是fifo深度没有指定,造成仿真一直持续,于是还把参数改为指针类型,在Directive里增加深度:

#pragma HLS INTERFACE ap_fifo depth=1024 port=fifo_w

再次仿真,成功:


但我的问题是,我手动点了停止仿真后,Wave viewer应该显示出已经仿真出来的波形,不应该只显示一个周期的呀,已经仿真完成的波形给吃了吗?

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值