当前位置: 首页 > article >正文

FPGA编程指南: CSU DMA传输

1. 将安全流开关配置设置为从DMA源接收,即设置csu.csu_sss_cfg[pcap_sss]为0x5。

2. 配置并设置CSU_DMA以建立通道和传输,具体编程方法可参考CSU DMA编程部分。

   - 通道类型为DMA_SRC。

   - 设置源地址为位流的地址。

   - 设置大小为以字表示的位流大小。

3. 等待CSU DMA操作完成,确保源频道的传输已完成。

4. 清除CSU_DMA中断并确认传输完成,这需要设置csudma.csudma_src_i_sts[done]。

5. 等待PCAP完成,当csu清除pcap_status[pcap_wr_idle]位时表示传输完成。

接着,需要等待PL完成状态以确保位流已正确编程,具体步骤如下:

1. 等待PL完成状态,然后进行其他操作。

2. 配置完成后,复位PCAP接口,通过设置csu.pcap_reset[reset]位。

在CSU DMA编程中,CSU会在执行CSU ROM代码期间使用CSU DMA进行引导映像传输。FSBL(First Stage Boot Loader)也会使用CSU DMA进行PL编程(通过PCAP)和图像传输。CSU DMA的触发和配置如下:

1. 触发CSU DMA传输,首先需要为DMA源通道写入大小值。在PL编程的情况下,只有源通道;在环回的情况下,需要先配置DMA目标通道,然后配置源通道。

2. 配置源/目的大小:

   - 针对源通道,需要配置csudma.csudma_src_size[size]为源缓冲区的大小。

   - 针对目的通道,需要配置csudma.csudma_dst_size[size]为目的缓冲区的大小。

在等待CSU DMA完成时,可以通过轮询状态寄存器的完成位来验证,具体步骤如下:

1. 轮询源通道,确认csudma.csudma_src_i_sts[done]未设置。

2. 若不是源通道,则确认csudma.csudma_dst_i_sts[done]未设置。

3. 确认DMA已完成后,可以通过清除状态寄存器的相同位来确认。

在搭建SOC系统工程方面,需要创建Vivado系统工程并选择正确的芯片型号。用户应当注意选择适合的型号,例如xczu7ev-ffvc1156-2-i。创建Block Design图形化设计时,需要在IP Integrator中创建System,并添加相应的IP。对于Zynq Ultrascale+ MPSOC IP的设置,需要调整时钟频率、内存类型和接口输出,以确保硬件设置与程序的兼容性,避免在Vitis IDE中出现崩溃和运行问题。正确的配置是确保成功的必要条件。


http://www.kler.cn/a/308480.html

相关文章:

  • 一文详解java的数据类型
  • 【小程序】封装网络请求request模块
  • 深度学习之 LSTM
  • 去地面算法——depth_clustering算法调试(1)
  • Nginx配置自带的stub状态实现活动监控指标
  • 动态规划 —— 子数组系列-最大子数组和
  • el-table表格的展开行,初始化的时候展开哪一行+设置点击行可展开功能
  • Python爬虫之bs4模块用法
  • 如何用python做一个计算器
  • 基于AlexNet实现猫狗大战
  • 轻松上手Cursor,体验丝滑编程
  • springschedule定时任务
  • What is new in C# 7,8,9,10
  • 牛客周赛 Round 60(A,B,C,D,E,F)
  • 构建“零工市场小程序”,服务灵活就业“大民生”
  • Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C语言)
  • com.microsoft.sqlserver:sqljdbc4:jar:4.0 was not found产生原因及解决步骤
  • 电商店群模式如何利用云分账实现自动化资金管理
  • 闲云野记:24915
  • 技术上,如何复现 o1?
  • 易于理解和实现的Python代码示例
  • 数据中心服务器与存储运维的深度实践与挑战
  • 部署自己的对话大模型,使用Ollama + Qwen2 +FastGPT 实现
  • ThinkCMF框架任意内容包含漏洞的讲解
  • 简化登录流程,助力应用建立用户体系
  • 《程序猿之设计模式实战 · 池化思想》