平台:ZCU102
开发环境:SDSoC
在做PS端与PL端数据通信时, 需要通过 #pragma SDS data access_pattern指令来指定FPGA综合生成PL端的硬件接口是RAM还是FIFO;
指令语法:
#pragma SDS data access_pattern(ArrayName:<pattern> )
ArrayName: 传递的参数名
<patten>: 有两种模式:SEQUENTIAL or RANDOM, 默认是RANDOM;
如果access_pattern是SEQUENTIAL,Array会被综合成一个FIFO接口(流接口),如ap_fifo,FIFO接口的特性是只能按顺序读取数据,如A[0],A[1],A[2],A[3]......A[1023],并且每个数据只能被读取一次;如果是RANDOM,Array会被综合成一个RAM,RAM的特性是每个数据可以被读取一次或多次。
下面是RAM和FIFO在读写上具体的区别(具体到时钟周期),具体参考请点击这里:
RAM又分单口RAM与双口RAM:
双口RAM: