问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

FPGA的几种经典模块划分架构

创作时间:
作者:
@小白创作中心

FPGA的几种经典模块划分架构

引用
CSDN
1.
https://blog.csdn.net/wandou0511/article/details/124698724

FPGA(现场可编程门阵列)是一种可编程逻辑器件,在通信、高速接口、图像视频处理等领域有着广泛应用。在FPGA工程开发中,合理的模块划分架构是确保系统高效运行的关键。本文将介绍几种经典的FPGA模块划分架构,帮助读者更好地理解其应用场景和设计思想。

一、直接交互架构

如图1所示,直接交互架构是最简单易行的模块划分架构。上游模块A直接把数据传递给下游模块B,下游模块B对接收到的数据进行处理。这种架构适用于下游模块处理速度远高于上游模块的场景,即数据消耗速度远快于数据产生速度的情况。


图1 直接交互架构示意图

二、上游缓存架构

如图2所示,上游缓存架构在项目工程中应用广泛。当下游模块B发送rdy信号给上游模块A时,上游模块A会从FIFO(先进先出队列)中取出缓存数据发送至下游模块B。这种架构通常用于上游模块产生数据速度快而下游模块消耗数据慢的场景,或者需要同时发送多包相关数据的情况。


图2 上游缓存架构示意图

三、下游缓存架构

如图3所示,下游缓存架构是应用最为广泛的设计模式之一。当下游模块B发送rdy信号给上游模块A时,上游模块A只要有数据产生就会立即发送给下游模块B。由于下游模块B配备了FIFO缓存,可以很好地解决上下游模块读写速度不匹配的问题。


图3 下游缓存架构示意图

四、请求应答架构

如图4所示,请求应答架构也是一种常用的模块划分方式。当上游模块A发送req请求信号后,下游模块B根据自身设计进行判断并返回ask应答信号。上游模块A在接收到应答后,可以根据实际需求传输相关数据包。这种架构适用于上游模块需要等待下游模块完成一系列数据处理后再连续发送多包数据的情况。


图4 请求应答架构示意图

五、多级通信架构

如图5所示,多级通信架构常用于指令解析模块和指令动作模块之间。例如,上位机通过各种接口发送指令至FPGA端,ARM、DSP通过不同总线发送数据至FPGA端。经过接口驱动模块和通信协议模块处理后,进入指令解析模块A。模块A会对不同数据包进行指令解析,而每个指令可能需要模块B、模块C、模块D等多个模块响应。


图5 多级通信架构示意图

六、流水处理架构

如图6所示,流水处理架构虽然使用频率不如前几种高,但同样是一种经典的架构模式。数据在模块A经过处理后生成中间数据data1,传递给模块B;模块B处理后再生成中间数据data2传递给模块C,依此类推。这种架构在实现多层协议解析时非常常见,例如千兆以太网中的ARP、ICMP、UDP协议解析。


图6 流水处理架构示意图

七、外设连接架构

如图7所示,外设连接架构主要用于FPGA控制外设芯片或接口。通常,FPGA通过多个接口模块实现对底层驱动的开发。对于一些需要初始化配置的芯片或外设(如WM8731音频转换芯片、OV7725系列摄像头),需要先配置模块初始化其内部寄存器。上游命令模块通过接口模块实现对外设的逻辑控制。


图7 外设连接架构示意图

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号