【银杏科技ARM+FPGA双核心应用】GD32F4系列三十三—FSMC_DMA实验

[复制链接]
34622|396
ulystronglll 发表于 2026-1-11 17:22 | 显示全部楼层
GD32的FSMC将外部地址划分为多个Bank,每个Bank支持特定存储器类型。以GD32F407为例,Bank1子区3常用于连接SRAM/SDRAM。FPGA需配置双端口RAM,映射至GD32的FSMC地址空间,通过片选信号选中。
benjaminka 发表于 2026-1-11 18:59 | 显示全部楼层
GD32 使用 DMA 控制器,在内部内存 (SRAM) 和 外部 FSMC 地址 (FPGA RAM) 之间自动传输数据。
geraldbetty 发表于 2026-1-13 09:50 | 显示全部楼层
根据 FSMC 的控制信号,在 FPGA 中添加相应的控制逻辑,以实现对 RAM 存储块的正确读写操作。如当检测到 GD32 发出的读使能有效信号时,将指定地址的数据放到数据总线上供 GD32 读取;当写使能有效时,将数据总线上的数据写入到指定地址的 RAM 存储单元中
1988020566 发表于 2026-1-13 09:54 | 显示全部楼层
在进行读操作时,将 FSMC 的基地址作为 DMA 传输的源地址,将目标内存地址作为目的地址,设置好传输长度等参数后,启动 DMA 传输,DMA 控制器会自动将数据从 FSMC 对应的 RAM 存储块中读取到指定的内存区域。
cemaj 发表于 2026-1-13 10:04 | 显示全部楼层
通过 FSMC + DMA 实现 GD32 与 FPGA 之间的高速通信,是一种高效、低 单片机 占用的方案。
1988020566 发表于 2026-1-13 10:09 | 显示全部楼层
在进行读操作时,将 FSMC 的基地址作为 DMA 传输的源地址,将目标内存地址作为目的地址,设置好传输长度等参数后,启动 DMA 传输,DMA 控制器会自动将数据从 FSMC 对应的 RAM 存储块中读取到指定的内存区域。
geraldbetty 发表于 2026-1-13 10:13 | 显示全部楼层
根据 FSMC 的控制信号,在 FPGA 中添加相应的控制逻辑,以实现对 RAM 存储块的正确读写操作。如当检测到 GD32 发出的读使能有效信号时,将指定地址的数据放到数据总线上供 GD32 读取;当写使能有效时,将数据总线上的数据写入到指定地址的 RAM 存储单元中
biechedan 发表于 2026-1-13 10:18 | 显示全部楼层
在 FPGA 内部使用硬件描述语言例化一个 RAM 存储块,可设置合适的位宽和深度。
geraldbetty 发表于 2026-1-13 10:23 | 显示全部楼层
根据 FSMC 的控制信号,在 FPGA 中添加相应的控制逻辑,以实现对 RAM 存储块的正确读写操作。如当检测到 GD32 发出的读使能有效信号时,将指定地址的数据放到数据总线上供 GD32 读取;当写使能有效时,将数据总线上的数据写入到指定地址的 RAM 存储单元中
1988020566 发表于 2026-1-13 10:37 | 显示全部楼层
在进行读操作时,将 FSMC 的基地址作为 DMA 传输的源地址,将目标内存地址作为目的地址,设置好传输长度等参数后,启动 DMA 传输,DMA 控制器会自动将数据从 FSMC 对应的 RAM 存储块中读取到指定的内存区域。
mikewalpole 发表于 2026-1-13 10:52 | 显示全部楼层
FPGA 侧的读写建立 / 保持时间需≥GD32 FSMC 手册中的最小值,否则会出现数据错误。
geraldbetty 发表于 2026-1-13 11:01 | 显示全部楼层
根据 FSMC 的控制信号,在 FPGA 中添加相应的控制逻辑,以实现对 RAM 存储块的正确读写操作。如当检测到 GD32 发出的读使能有效信号时,将指定地址的数据放到数据总线上供 GD32 读取;当写使能有效时,将数据总线上的数据写入到指定地址的 RAM 存储单元中
1988020566 发表于 2026-1-13 11:06 | 显示全部楼层
在进行读操作时,将 FSMC 的基地址作为 DMA 传输的源地址,将目标内存地址作为目的地址,设置好传输长度等参数后,启动 DMA 传输,DMA 控制器会自动将数据从 FSMC 对应的 RAM 存储块中读取到指定的内存区域。
mnynt121 发表于 2026-1-13 11:30 | 显示全部楼层
强烈建议FPGA端使用FSMC_CLK来同步接口,避免异步问题。
juliestephen 发表于 2026-1-13 11:36 | 显示全部楼层
GD32通过FSMC总线连接到这个RAM的一个端口,将其视为一片外部SRAM。
51xlf 发表于 2026-1-13 11:41 | 显示全部楼层
用于批量传输数据,避免 单片机 频繁干预。
eefas 发表于 2026-1-13 11:45 | 显示全部楼层
FPGA可以根据地址线的不同位域,实现多个功能寄存器的映射,而不仅仅是RAM。
eefas 发表于 2026-1-13 11:50 | 显示全部楼层
FPGA可以根据地址线的不同位域,实现多个功能寄存器的映射,而不仅仅是RAM。
abotomson 发表于 2026-1-13 12:05 | 显示全部楼层
将内部 RAM挂载到 FSMC 总线上,模拟外部 SRAM 的时序,响应 GD32 的 FSMC 读写指令。
geraldbetty 发表于 2026-1-13 12:19 | 显示全部楼层
根据 FSMC 的控制信号,在 FPGA 中添加相应的控制逻辑,以实现对 RAM 存储块的正确读写操作。如当检测到 GD32 发出的读使能有效信号时,将指定地址的数据放到数据总线上供 GD32 读取;当写使能有效时,将数据总线上的数据写入到指定地址的 RAM 存储单元中
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0