[ZYNQ]开发之MATALB与FPGA联合仿真平台设计

本文详细介绍了基于MATLAB和FPGA的极化码编译码联合仿真平台,利用ZYNQSoC的DMA和FPGAIP核实现数据传输。实验中,编码器和译码器分别在FPGA上实现,通过AXI接口与MATLAB通信。软件部分使用LwIP协议栈构建UDP服务器,实现了数据的编码、解码和传输。然而,在实际运行中遇到DMA中断未正常触发的问题,导致数据传输异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景概述

本实验在之前两篇文章的基础上设计的MATLAB与FPGA联合仿真平台设计,主要用于在MATLAB于FPGA之前提供收发数据的通道。该实验的应用背景为极化码的编译码流程,极化码的编译码的仿真流程如下:

[ZYNQ]开发之基于 AN108 模块的ADC 采集以太网传输_Laid-back guy的博客-优快云博客

[ZYNQ]开发之DMA的理解及应用_Laid-back guy的博客-优快云博客

本实验将把极化码的编译码器放在FPGA上进行实现,其余仿真步骤都将在MATLAB上进行。其中编码器采用Xilinx官方提供的ip核,可在其官网进行申请,连接如下,由于本实验所用开发板资源有限,因此译码器采用FIFO IP核进行替代

Polar Encoder / Decoder (xilinx.com)

 根据上文所述,本实验所设计的联合仿真平台如下图所示:

实际上,在上一篇讲述DMA的文章中的SG DMA环通实验便是基于一个完整的数据收发通道,但重点放在了DMA的学习及应用上。本次实验在上文的基础上增加了一条数据链路,对其所涉及的PL、PS及MATLAB端的更改将在下文分别叙述

二、MATLAB与FPGA联合仿真

硬件环境搭建

在之前实验的基础上进行扩展,其中FPGA硬件实现的结构图如下所示:

该图仅为译码器的数据链路,关于编码器(FIFO)的数据链路基本相同包括其各个控制、数据通路因此仅利用编码器的链路进行说明。AXI互联模块(AXI Interconnect) 是一种用于连接和管理AXI总线设备的IP核。在FPGA和SoC设计中,AXI Interconnect常用于构建多个AXI总线设备之间的连接,实现数据的传输和交换。DMA部分在上一篇文章中有过详细介绍。图中FPGA端硬件结构可以 大致分为以下几个部分:

  • ARM对DMA及FPGA编、译码器的控制链路

紫色连线所示,ZYNQ处理器通过AXI_GP接口连接到DMA与FPGA编、译码器的AXI_LITE接口,读写DMA和FPGA编、译码器内部寄存器。

  • DMA对DDR的数据通路

红色虚线所示,DMA通过M_AXI接口(MM2S与S2MM)连接到AXI互联模块的S_AXI接口,再通过互联模块的M00_AXI接口连接到ZYNQ的AXI_HP接口,从而实现DMA对DDR中数据的读写

  • DMA对FPGA编译码器的数据通路

蓝色实线所示,DMA通过MM2S与S2MM端口与FPGA编译码器直连来实现对其的数据读写

软件设计

本次实验 对于主函数及涉及DMA部分的代码与之前的并无二致,因此本节仅记录关于ARM端LwIP开发所不同之处及针对该实验的应用背景做出的适应性调整。

首先,该实验是基于LwIP协议进行UDP服务器的开发。Xilinx支持两种操作模式的LwIP API:(1)底层的基于回调(callback)的RAW API;(2)高层顺序模型的SOCKET API。本设计采用的是RAW API,它的最大特点是较低的资源开销以及较低的延迟与更高的吞吐量,适用于对实时性和性能要求较高的应用场景。本文设置板级操作系统(Board Support Package OS)为standalone。LwIP库的主要参数配置如下表所示:

参数名

说明

推荐值

api_mode

LwIP库的操作模式

RAW_API

mem _size

可用堆内存的总大小(字节)

131072

memp_n_pbuf

memp结构的pbuf数量

16

pbuf_pool_size

pbuf池中的缓冲区数目

2048

pbuf_pool_bufsize

Pbuf每个缓冲区的大小

2000

ARM端UDP服务器的代码流程如下所示: 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值