1、fifo求和原理
FIFO 是存储器的一种,满足先进先出原则,前面对它已经有了详细介绍,大家可以翻阅深入学习FIFO_今天不学习明天被卷️的博客-优快云博客
利用fifo进行串行数据流的行计算。
要实现 FIFO 求和, FIFO IP 核必不可少,需要用它用来做求和数据缓存。
这里我们以3行数据相加的情况举例:3行数据相加,需要用到2个FIFO。这里给出规律,如果需要一次计算X行数据的和,则需要用到X-1个FIFO
当数据开始输入时,将数据的第 0 行数据存储到 fifo1 中,将第 1 行数据存储到 fifo2 中,当数据的第 2 行的第 0 个数据输入的同时,读取写入 fifo1 中的的第 0 个数据和写入 fifo2 中的第 0 个数据,将三个数据求和,求和结果实时输出,在完成求和的同时,将读取的 fifo2 中的第 0 个数据写入 fifo1 中,fifo1 读出的数据弃之不用,将输入的第 2 行的数据写入 fifo2 中,当第 2 行的最后一个数据输入,完成前三行的最后一个求和运算后,第 0 行的数据已读取完成,第 1 行的数据重新写入 fifo1 ,第 2 行的数据写入 fifo2 ,当第 3 行数据开始传入时,开始进行第 1 行、第 2 行和第 3 行的数据求和运算,如此循环,直到最后一个数据输入,完成求和运算。
2、fifo实验
系统上电后,使用 PC 机通过串口助手发送待求和数据给 FPGA,FPGA 通过串口接收模块接收待求和数据,数据拼接完成后传入数据求和模块,经过求和运算后的数据结果通过串口数据发送模块回传给 PC 机,使用串口助手查看求和结果。
整体框图: