接口综合block块级别IO协议设计-vivado hls第六十九章
7.如果指定 ap_ctrl_none 块级 I/O 协议,则不创建块级 I/O 协议中所示的握手信号端口(ap_start、ap_idle、6.ap_ctrl_chain 接口模式类似于 ap_ctrl_hs,但可提供额外的 ap_continue 输入信号以应用反压。1.vivado hls使用接口类型包括ap_ctrl_none,ap_ctrl_hs和ap_ctrl_chain来指定是否在接
一、块级I/O协议
1.vivado hls使用接口类型包括ap_ctrl_none,ap_ctrl_hs和ap_ctrl_chain来指定是否在接口上
使用块级握手信号来实现RTL设计
2.块级握手信号可指定:
a.设计从何时开始执行操作,也就是ap_start信号
b.操作何时终止,ap_done信号拉高后,不再拉高ap_start信号
c.设计何时处于ap_idle空闲状态,何时ap_ready准备好处理新的输入
3.用户可以在函数上或者函数返回时候指定块级IO协议
4.如果c语言代码不返回值,用户也可以在函数返回的时候指定块级IO协议
5.如果 C 语言代码使用函数返回,那么 Vivado HLS 会为返回值创建 ap_return 输出端口。
6.ap_ctrl_chain 接口模式类似于 ap_ctrl_hs,但可提供额外的 ap_continue 输入信号以应用反压。赛灵思建议
使用 ap_ctrl_chain 块级 I/O 协议将 Vivado HLS 块链接在一起
7.如果指定 ap_ctrl_none 块级 I/O 协议,则不创建块级 I/O 协议中所示的握手信号端口(ap_start、ap_idle、
ap_ready 和 ap_done)。如果在设计上不指定块级 I/O 协议,那么使用 C/RTL 协同仿真来验证 RTL 设计时,必须
遵守接口综合要求中所述条件。
二、ap_ctrl_hs协议

step1:ap_rst对整个模块进行复位
step2:复位后,Ip模块会等待ap_start信号拉高,ap_start拉高后,开始进行模块操作
step3:ap_start信号拉高后,ap_idle会立即拉低,从而指示设计不再处于空闲状态
step4:ap_start信号必须保持处于高电平状态,直到ap_ready拉高
step5:ap_ready拉高后,如果ap_start拉高,那么设计会启动模块进行下一项传输事务
step6:ap_ready拉高后,如果ap_start拉低,设计将完成传输事务,然后停止操作
step7:当块完成操作后,ap_done 输出会变为高电平状态
三、ap_ctrl_chain协议

ap_ctrl_chain块IO协议类似ap_ctrl_hs协议,多提供一个ap_continue端口。
当前模块的ap_continue可以由于下游模块的ap_ready来产生,表示下游已经准备好,可以处理
新的数据输入。如果下游模块无法使用新的数据,那么ap_continue处于低电平,那么这个将阻止
本模块产生更多的数据给下游模块。
更多推荐


所有评论(0)