2026年,想用一块Xilinx Artix-7 FPGA完成‘基于千兆网口的视频流实时加密传输系统’的毕设,在实现AES加密、UDP/IP协议栈和HDMI输入输出时,如何合理划分PS和PL资源并优化数据流?

开放3 回答 46 浏览

毕业设计题目定了,想用带ARM硬核的FPGA(比如Zynq或者Artix-7搭配软核)做一个视频安全传输系统。摄像头采集视频,FPGA进行实时AES加密,然后通过千兆网口发送,接收端解密并HDMI显示。目前最大的困惑是如何进行系统架构设计:哪些部分用PL(硬件逻辑)实现更快(比如AES核心、视频像素处理),哪些部分用PS(处理器系统)实现更灵活(比如网络协议栈、控制流)。另外,PS和PL之间通过AXI总线通信,数据量大时如何避免成为瓶颈?希望有做过类似项目的前辈能给一些架构设计上的经验和踩坑提醒。

分享:
  • FPGA萌新上路

    我去年毕设做的类似,用的是Zynq-7020。我的建议是:AES加密核心必须放PL里,用硬件流水线实现,否则1080p@30fps的像素流你根本处理不过来。PS只负责控制AES密钥加载和模式切换。UDP/IP协议栈我试过两种方案:一是用PS跑lwIP,但千兆网吞吐率上不去,CPU占用高;二是用PL实现硬核UDP/IP,配合DMA,这样PS负担小,但开发周期长。你时间紧的话,建议PS跑lwIP,但一定要用AXI DMA配合PL的FIFO做数据搬运,PS只组包,不碰像素数据本身。HDMI输入输出都用PL实现,用Xilinx的HDMI IP核或者自己写RGB时序。PS和PL之间的数据流一定要规划好:视频采集→AES加密→DMA到DDR→PS组UDP包→DMA到网口,这条路径上所有环节都用流式接口,避免在DDR里来回倒腾。坑:AXI总线位宽至少设128位,时钟频率提上去;DDR带宽是瓶颈,尽量减少拷贝次数。

  • EE学生一枚

    从资源分配角度聊一下。Artix-7没有硬核ARM,你得用MicroBlaze软核当PS,性能有限,所以能放PL的尽量放。我的划分方案:PL部分:HDMI采集(用Xilinx Video In to AXI4-Stream IP)、AES加密模块(自己写或者用Xilinx的AES IP)、千兆网MAC层(用TEMAC IP)。PS(MicroBlaze)部分:跑轻量级TCP/IP栈(比如lwIP),处理ARP、ICMP、UDP包头组装;还有系统控制(初始化IP核、密钥管理)。PS和PL用AXI4-Stream接口直连视频数据流,用AXI4-Lite做控制寄存器。优化数据流的关键是:在PL内部让视频数据流“穿过”AES模块和FIFO,直接进入DMA,PS不接触视频数据内容,只负责在DMA描述符里填好UDP头长度。这样带宽最大。注意:MicroBlaze时钟频率尽量高(比如150MHz以上),lwIP内存配置要够,否则容易丢包。

  • 电子技术萌新

    做过一个类似的项目,说点实战经验。架构上,我强烈建议采用“PL为主,PS为辅”的思路。PL实现所有高速数据通路:HDMI解码/编码、AES加密/解密(用流水线并行处理,一个时钟周期处理128bit)、千兆网MAC+UDP/IP硬核(可以找开源代码,比如用Verilog写的UDP/IP stack)。PS只做三件事:1. 运行简单应用程序,配置PL模块参数;2. 处理非实时的网络管理(比如DHCP客户端);3. 可能的话,跑个简单Web服务器用于远程控制。这样划分,PS和PL之间的数据交互最少,瓶颈自然小。PS和PL用AXI Stream接口连接,数据流连续不断。优化点:使用AXI4-Stream Data FIFO做异步时钟域缓冲;AXI Interconnect的位宽设成256bit以上;给DMA配置多通道描述符,实现乒乓操作。踩坑提醒:别让PS中断太频繁,否则影响实时性;AES密钥扩展可以提前算好,不要在线算;测试时先降低视频分辨率,确保链路通再提分辨率。

登录后可在本页底部提交回答

提问者

电路板调试员查看主页

描述场景与已尝试方案,更容易获得有效解答

浏览「其他」

相关问题

同分类问答

提问建议

  • 标题写清核心疑问,避免「求助」「请问」等空泛用语
  • 正文补充环境、版本、报错信息或截图
  • 先搜索本站是否已有相近问题,减少重复提问
  • 若与课程相关,请标明课时或章节便于讲师定位

技术问答

问完之后的闭环

  • 关联课程精学高频问题往往对应章节,建议回到课程补基础。
  • 产出与互助解决过程可写成笔记,帮助后续同学。

探索全站