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 文件,可作为完整的上板验证参考。

93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado 开发板验证图片 ARTIX-7开发板.png

演示视频

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

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

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

93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado 设计文档图片 image1.png

93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado 设计文档图片 image10.png

93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado 设计文档图片 image2.png

93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado 设计文档图片 image3.png

93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado 设计文档图片 image4.png

93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado 设计文档图片 image5.png

93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado 设计文档图片 image6.png

93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado 设计文档图片 image7.png

93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado 设计文档图片 image8.png

93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado 设计文档图片 image9.png

部分代码

以下展示顶层模块 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

代码文件(付费下载)

📥 付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 93LC46 EEPROM SPI 读写控制 FPGA 设计 Verilog Vivado

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员