【FPGA】使用高云FPGA与stm32进行FMC通信协议

【FPGA】使用高云FPGA与stm32进行FMC通信协议
//fsmc read / write ep4ce6 demo module fsmc( ab, //address db, //data wrn, //wr rdn, //rd resetn, //resetn csn, //cs ina, //input data a inb, //input data b inc, //input data c ind, //input data d ine, //input data e inf, //input data f ing, //input data g inh, //input data h outa, //output data a outb, //output data a outc, //output data a outd, //output data a oute, //output data a outf, //output data a outg, //output data a outh //output data a ); input[2:0] ab; inout[15:0] db; input wrn; input rdn; input resetn; input csn; input [15:0] ina; input [15:0] inb; input [15:0] inc; input [15:0] ind; input [15:0] ine; input [15:0] inf; input [15:0] ing; input [15:0] inh; output reg [15:0] outa; output reg [15:0] outb; output reg [15:0] outc; output reg [15:0] outd; output reg [15:0] oute; output reg [15:0] outf; output reg [15:0] outg; output reg [15:0] outh; wire rd; wire wr; reg [15:0] indata; assign rd = !(csn & rdn); //get rd pulse ____|~~~~|______ assign wr = !(csn & wrn); //get wr pulse ____|~~~~|______ assign db = rd ? indata:16'hzzzz; //write data, 根据地址线选择八个空间写入,每个空间16位 always @(negedge wr or negedge resetn) begin if(!resetn)begin outa <= 16'h0000; outb <= 16'h0000; outc <= 16'h0000; outd <= 16'h0000; oute <= 16'h0000; outf <= 16'h0000; outg <= 16'h0000; outh <= 16'h0000; end else begin case (ab) 3'b000:outa <= db; 3'b001:outb <= db; 3'b010:outc <= db; 3'b011:outd <= db; 3'b100:oute <= db; 3'b101:outf <= db; 3'b110:outg <= db; 3'b111:outh <= db; default:; endcase end end //read data 根据地址线选择8个空间读取,每个空间 16位 always @(rd or !resetn) begin if(!resetn)indata <= 16'h0000; else begin case (ab) 3'b000:indata <= ina; 3'b001:indata <= inb; 3'b010:indata <= inc; 3'b011:indata <= ind; 3'b100:indata <= ine; 3'b101:indata <= inf; 3'b110:indata <= ing; 3'b111:indata <= inh; default:; endcase end end endmodule 

 FMC通信协议的FPGA代码

这里的FMC_A0表示的是地址线 

这里有13位地址线和16位数据线,行地址与列地址是公用的,作为行地址时使用了0~12位,作为列地址时使用了0~8位;

  • FMC_SDNWE:低电平时写,高电平时读;
  • FMC_SDNCAS:列地址选通信号,低电平有效;
  • FMC_SDNRAS:行地址选通信号,低电平有效;
  • FMC_SDNE0:片选信号,低电平有效;
  • FMC_BA0~1:Bank选择信号,两位对应4个区域
  • FMC_SDCKE0:时钟使能信号;
  • FMC_SDCLK:时钟信号;
  • FMC_NBL0~1:写访问的输出字节屏蔽,数据掩码

在我们板子中用到的

这实际上是FMC控制器对内核地址映射的结果,其实质就是对于地址的控制。

那么有没有简单的方法呢? 有的! STM32自带的FSMC功能,就是专门为这类存储器设计的,在STM32上,有一些引脚被专门设计成地址线,还有一些被专门设计成数据线,还有一些被设计成控制线,然后这些地址线和数据线对应着固定的地址,只要外部的DRAM等存储器将对应的数据线连接到STM32这些对应的引脚上,引脚功能设置为复用模式,通过配置FSMC ,你可以直接给上面那个固定的地址赋值 ,其他操作STM32都会自动给你完成,就可以把数据存储到SRAM中!

这里FPGA的通信也是如此,在配置好引脚后对其进行自动赋值,然后再对地址进行读写操作

 在高云这里,有二十二个引脚需要我们去配置。

这个是目前对于Muxed PSRAM的配置

 

这里我们重点挑出

FMC_NL,

FMC_NOE,

FMC_NWE,

FMC_NE2

进行研究。 这里一共有20个引脚

对应一下FPGA的

 FPGA这里除了数据线外多了

RST

FPGA_WR_NWE

FPGA_RD_NOE

FPGA_NL_NADV

FPGA_CS_NEL

CLK

这里有22个引脚,我们可以发现,这里多了两个引脚,一个是由rll来进行时钟控制,还有一个则是用于硬件的复位重启。

Read more

什么是前端?【零基础友好 · 通俗易懂版】

什么是前端?【零基础友好 · 通俗易懂版】

✅ 纯白话讲解,无专业黑话,零基础秒懂,不堆砌技术术语,看完就知道「前端到底是什么、做什么、有什么用」 ✅ 最新技术适配:贴合当前前端主流生态(React 18/Vue 3/Next.js 14/Tailwind CSS 3/AI 辅助开发),覆盖跨端、工程化、AI 融合等前沿方向 ✅ 条理清晰:从定义→核心价值→技术栈→工作内容→发展趋势,层层递进,逻辑连贯,适合零基础小白快速建立认知 ✅ 核心目标:帮你彻底搞懂「前端的本质」,明白前端在互联网产品中的角色,以及学前端的意义和方向 一、前端的核心定义:用户直接接触的「数字界面」 ✔️ 1. 白话版定义(秒懂,不用记专业术语) 前端(Front-end)

Qwen3-32B私有化部署指南:Clawdbot Web网关版适配国产昇腾/海光CPU环境实操

Qwen3-32B私有化部署指南:Clawdbot Web网关版适配国产昇腾/海光CPU环境实操 1. 为什么需要在国产硬件上跑Qwen3-32B? 你是不是也遇到过这样的问题:想在内部系统里用上最新最强的Qwen3-32B大模型,但发现它默认只支持NVIDIA GPU?采购英伟达显卡不仅成本高,还涉及进口审批、驱动兼容、长期维保等一系列现实难题。更关键的是,很多政企单位明确要求核心AI能力必须运行在国产化硬件平台上——昇腾910B加速卡、海光Hygon CPU这些“中国芯”,才是真正的生产环境底座。 这篇文章不讲虚的,直接带你把Qwen3-32B稳稳当当地跑在昇腾或海光服务器上,并通过Clawdbot Web网关对外提供Chat服务。整个过程不依赖CUDA,不绕开国产生态,所有步骤都经过真实环境验证(华为Atlas 800I A2 + openEuler 22.03 / 海光C86服务器 + 麒麟V10 SP3)。你会发现,原来大模型私有化部署,真的可以既安全又高效。 2. 整体架构:Clawdbot如何与Qwen3-32B协同工作? 2.1 三层解耦设计,清晰又可靠

高校大学生图书馆借阅分析统计系统的设计与实现:大四毕设技术全覆盖!Java 开发 + Python 可视化分析+ 小程序 / APP 前端部署(免费源码直接领)(大四计算机生收藏)

高校大学生图书馆借阅分析统计系统的设计与实现:大四毕设技术全覆盖!Java 开发 + Python 可视化分析+ 小程序 / APP 前端部署(免费源码直接领)(大四计算机生收藏)

2026年最新计算机毕业设计,项目汇总! 哈喽,大家好,大四的同学马上要开始做毕业设计了,大家做好准备了吗?   博主给大家详细整理了计算机毕业设计最新项目,可供大家参考,对项目有任何疑问,都可以问博主哦 源码请在评论区私信哦   高校大学生图书馆借阅分析统计系统 摘 要 随着时代的变迁和互联网的日益成熟,诸如京东等大型互联网买卖平台以及用友等各类管理软件纷纷涌现,同时伴随着各种跟风产业的兴起。信息应用始终是不变的主题,因此高校大学生图书馆借阅分析统计系统的互联网化逐渐为人们所熟知和应用。 人们的生活离不开各类信息系统,无论是支付还是管理,计算机网络、软件和系统在生活、生产、教育和管理中扮演着重要角色。然而,由于信息共享不够,很多人仍然选择传统方式进行操作。但是,随着时间推移,信息需求与日俱增,如果信息无法实时更新,市场管理低效,实际情况与人们了解到的信息存在较大差异等问题将会出现。为了解决这些问题,本文设计并开发了高校大学生图书馆借阅分析统计系统。 该系统利用SpringBoot框架实现图书行业信息的实时更新,并对必要数据进行审核,以避免实际情况与信息不符的情况。然

如何创建你自己的Web操作系统模拟器:macOS Web完全指南

如何创建你自己的Web操作系统模拟器:macOS Web完全指南 【免费下载链接】macos-web 项目地址: https://gitcode.com/gh_mirrors/ma/macos-web 你曾经想过在浏览器中运行完整的桌面操作系统吗?macOS Web项目让这个想法变为现实!这是一个基于现代Web技术构建的开源项目,让你在任何设备上都能体验macOS界面。 项目核心功能 macOS Web是由开发者PuruVJ创建的创新项目,它使用HTML、CSS和JavaScript在网页上完全模拟macOS桌面环境。无需安装任何软件,只需打开浏览器即可开始使用! 项目亮点: * 基于Web技术的完整操作系统界面 * 精准还原macOS Big Sur视觉设计 * 轻量快速,不占用系统资源 * 完全开源,支持自定义开发 技术架构解析 Web Components与Svelte框架 项目采用Web Components技术封装UI元素,结合Svelte框架实现组件化开发。这种架构确保了代码的可维护性和扩展性。 交互与动画系统 通过CSS动画和JavaSc