news 2026/6/3 8:52:59

93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado

名称:93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado

软件:Vivado

语言:Verilog

功能介绍

本设计实现了 FPGA 对 93LC46 串行 EEPROM 的 SPI 读写控制,适合用于学习外部串行存储器访问、按键触发控制、片选时序、串行数据收发以及板级 LED 显示验证等内容。工程以 Verilog 编写,在 Vivado 环境下组织源码、仿真与实现流程。 顶层模块提供 50MHz 时钟输入、低电平复位按键、写按键、读按键、93LC46 的 MISO/MOSI/SCK/CS 接口以及 16 位 LED 显示输出。用户可通过按键触发写入或读取操作,控制逻辑完成与 93LC46 的串行通信,并将相关结果或状态通过 LED 进行显示。 该设计重点面向 93LC46 EEPROM 的 FPGA 接口应用,不只是简单的 SPI 信号连线,还包含按键打拍、触发生成、读写控制、串行通信时序和显示输出等完整逻辑,便于在实验教学、课程设计和外设接口开发中复用。

运行环境

开发语言:Verilog 开发软件:Vivado 工程类型:FPGA 工程,包含 Vivado 项目文件、Verilog 源码、Testbench 仿真文件、XDC 管脚约束文件、综合实现结果和 bit 文件。

设计思路

设计采用顶层封装加控制模块的结构。top_93lc46 作为工程顶层,负责定义系统输入输出端口,并例化 spi_ctrl 控制模块。外部接口包括系统时钟、复位、读写按键、93LC46 串行接口以及 LED 显示端口,使工程结构清晰,便于直接查看板级连接关系。 核心控制思路是将按键输入转换为稳定的读写触发信号,再由 SPI/93LC46 控制逻辑完成 EEPROM 的访问流程。写操作和读操作通过独立按键触发,控制模块根据触发条件驱动 cs、sck、mo 等信号,并通过 mi 接收串行返回数据。由于 93LC46 采用串行通信方式,设计中需要按照器件访问流程组织命令、地址和数据的移位输出,同时在读周期中采样输入数据。 LED 输出用于显示控制状态或读回数据结果,便于在开发板上观察操作效果。通过这种结构,用户可以从顶层端口、控制模块、EEPROM 通信模块和仿真文件逐步理解整个设计,也可以在现有工程基础上扩展数据宽度、地址控制方式或上层交互方式。

模块结构

主要模块包括: 1. top_93lc46:工程顶层模块,定义时钟、复位、读写按键、93LC46 接口和 LED 输出,并例化控制模块。 2. spi_ctrl:控制模块,负责按键打拍、读写触发生成、显示逻辑以及与 93LC46 通信逻辑的连接控制。 3. spi_93lc46:93LC46 串行 EEPROM 接口相关模块,承担 SPI 时序和 EEPROM 读写流程控制。 4. tb_top_93lc46:Testbench 仿真文件,用于对顶层设计进行行为仿真。 5. glbl:Vivado 仿真环境相关全局模块。

开发板验证

工程包含 XDC 管脚约束文件,并提供 Artix-7 开发板相关图片,可用于开发板下载验证。顶层端口已分配到复位按键、读写按键、93LC46 串行接口和 16 位 LED 显示信号,适合在 Artix-7 FPGA 学习板环境中进行板级实验。 开发板验证关注点包括:按下写按键触发 EEPROM 写操作,按下读按键触发 EEPROM 读操作,SPI 接口信号连接到 93LC46 芯片,LED 用于显示状态或读回结果。结合管脚约束文件和已生成的 bit 文件,可作为完整的上板验证参考。

演示视频

包含演示视频,可用于查看工程运行效果和开发板验证过程。

演示视频请关注公众号后获取对应资料查看。

仿真图/仿真说明/设计文档图片

包含设计文档内容,文档中整理了工程文件、程序文件、程序编译、RTL 图、管脚分配、Testbench 和仿真图等内容,可辅助理解工程结构、仿真过程与实现结果。Vivado 仿真目录中包含行为仿真生成文件和波形数据库,可作为进一步查看仿真结果的参考。

部分代码

以下展示顶层模块top_93lc46的部分代码,完整代码可关注下方公众号卡片获取。

module top_93lc46( input wire clk, // 50MHz input wire rst_n, // 低电平复位按键--BTNC input wire write_n, // 写按键,低电平有效--BTNL input wire read_n, // 读按键,低电平有效--BTNR // 93LC46接口 input wire mi, // 串行数据输入MISO output wire sck, // 串行数据时钟 output wire cs, // 片选信号,高电平选中 output wire mo, // 串行数据输出MOSI // 显示 output wire [15:0] LED // 高电平亮 ); // 控制模块:包含按键打拍、触发生成、显示逻辑 spi_ctrl u_ctrl ( .clk (clk), .rst_n (rst_n), .write_n (write_n), .read_n (read_n), .mi (mi), .sck (sck), .cs (cs), .mo (mo), .LED (LED) ); endmodule

代码获取:点击下方公众号卡片

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/3 8:52:58

UE5新手避坑指南:用GAS插件实现角色技能,从配置到调用保姆级教程

UE5新手避坑指南:用GAS插件实现角色技能全流程解析第一次打开虚幻引擎5的GAS插件时,那种扑面而来的复杂感让不少开发者望而却步。作为从业五年的技术美术,我见过太多团队在GAS基础配置阶段就陷入泥潭——明明照着教程操作却遇到各种编译错误&…

作者头像 李华
网站建设 2026/6/3 8:51:58

VSCode里写C#,别只装C#扩展了!Code Runner这样配置才能一键运行

VSCode高效开发C#的进阶配置指南:解锁Code Runner的真正潜力在轻量级开发环境中编写C#代码时,VSCode凭借其出色的扩展性和跨平台特性成为许多开发者的首选。但很多人在配置过程中发现,即使安装了官方推荐的C#扩展和.NET SDK,仍然无…

作者头像 李华
网站建设 2026/6/3 8:49:02

放弃传统图传?用OpenIPC+WFB-NG+RTL8812AU打造百元级开源高清FPV方案实战

百元级开源高清FPV方案:OpenIPCWFB-NG实战指南当市售数字图传动辄数千元的价格让许多无人机爱好者望而却步时,一套基于RTL8812AU网卡、OpenIPC固件和WFB-NG协议栈的开源方案正在极客圈悄然流行。这套总成本控制在300元以内的系统,实测延迟可稳…

作者头像 李华
网站建设 2026/6/3 8:46:29

程序员人生:技术人员的职业发展规划

你以为只有两条路?其实有七种活法 “程序员35岁就要被优化”、“技术岗做不下去只能转管理”、“写代码吃的是青春饭”……这些话你是不是听得耳朵都起茧子了? 我入行十二年,经历过创业公司、大厂、外企,见过形形色色的技术人。有人焦虑得睡不着觉,有人活得越来越滋润。…

作者头像 李华
网站建设 2026/6/3 8:45:30

未来软件开发:从AI原生到Serverless的范式转移与开发者能力重塑

1. 项目概述:我们究竟在创造什么样的“未来”?“Creating the Future of Software Development”——这个标题听起来宏大而充满使命感。作为一名在代码堆里摸爬滚打了十多年的老兵,我见过太多关于“未来”的喧嚣,从低代码的崛起&a…

作者头像 李华
网站建设 2026/6/3 8:45:25

2026年5月16日,金航标kinghelm

2026年5月16日,金航标kinghelm/萨科微slkor国际部总监宋沅明受邀出席华强大讲堂,以《国产品牌出海之路》为主题,与现场多位华强北电子元器件同行分享国产半导体品牌全球化布局的实战经验。他结合金航标与萨科微近年来在海外市场的探索与沉淀&…

作者头像 李华