【FPGA】SPI协议的Verilog实现

您所在的位置:网站首页 spiverilog实现 【FPGA】SPI协议的Verilog实现

【FPGA】SPI协议的Verilog实现

2024-02-27 02:46| 来源: 网络整理| 查看: 265

/** * SPI Module * An example of SPI from dianzixitongshejiyushizhan * 2020/1/8 */ module SPI( clk, // 系统时钟 rst, // 重置信号 din, // 交给SPI模块去发送的信号 spi_sdi, // SPI输入(MOSI) spi_cs_cmd, // SPI命令片选 spi_cs_data, // SPI数据片选 spi_sclk, // SPI时钟 spi_sdo, // SPI输出(MISO) dout, // 输出SPI接收的数据 dcmd, // 输出SPI接收的命令 cmd_done, // 标志命令接收完成的信号 data_done // 标志数据接收完成的信号

); parameter DATA_WIDTH = 8; // 数据帧长度,8位 parameter CMD_WIDTH = 8; // 命令帧长度,8位

input clk, rst; input [DATA_WIDTH-1:0] din; input spi_sdi, spi_cs_cmd, spi_cs_data, spi_sclk;

output [DATA_WIDTH-1:0] dout; output [CMD_WIDTH-1:0] dcmd; output cmd_done, data_done, spi_sdo;

reg spi_sdo = 1; reg [DATA_WIDTH-1:0] dout, din_reg; reg [CMD_WIDTH-1:0] dcmd; reg cmd_done, data_done;

reg spi_sclk_buf_1, spi_sclk_buf_2; reg [1:0] spi_sclk_buf, spi_sdi_buf; reg spi_sclk_down, spi_sclk_up; reg [1:0] spi_cs_data_buf, spi_cs_cmd_buf;

// SCLK, CS_DATA, CS_CMD buffer // 缓存信号以备边沿检测 always@(posedge clk) begin if(rst) begin spi_sclk_buf



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3