一、vivado hls工具两板斧
1.shcedule调度,提取状态机
2.binding绑定,指定资源使用
二、hls之rtl代码
1.控制部分代码
状态机:ap_CS_fsm和ap_NS_fsm两段式状态机
生成状态机的控制信号:ap_clk,ap_rst,ap_start,ap_idle,ap_CS_fsm和ap_NS_fsm,端口的控制信号vld,ack,fifo的empty,full等信号,
,包括for循环,最终产生了整个逻辑的控制系统
2.数据datapath部分代码
可以看出整个数据链路没有使用到ap_rst,整个datapath的取数据时机全部是由状态机或者控制信号来管控,
没有看到数据的任何复位。
3.关于rtl的FIFO
HLS模块不会对FIFO的mem进行任何复位的,只是对地址指针会进行复位,这个要注意
三、总结
1.hls生成的rtl代码就控制系统和数据流系统两类
2.其中控制系统是需要复位的,数据流系统不没有进行任何复位的
3.对于具备缓存的空间,也不是直接复位缓存,而是复位访问缓存的指针和标志信号