spi_master的理解

module spi_master
(
input sys_clk,
input rst,
output nCS, //chip select (SPI mode)
output DCLK, //spi clock
output MOSI, //spi data output
input MISO, //spi input
input CPOL,
input CPHA,
input nCS_ctrl,
input[15:0] clk_div,
input wr_req,
output wr_ack,
input[7:0] data_in,
output[7:0] data_out
);
1:Sys_clk是系统的输入时钟,其中DCLK为SPI接口输出的时钟,
DCLK时钟的周期为DCLK=sys_clk/ (clk_div*2)。
2:rst是高电平有效的复位信号。
3:nCS是SPI的片选信号;
4:MOSI是master输出,其中master就是FPGA,就是说FPGA的SPI输出信号
5:MISO是slave输出,其中master就是FPGA,就是说FPGA的SPI输入信号
6:CPOL是空闲状态的时候DCLK的状态,CPHA是什么时候FPGA放置MOSI数据的控制位置。它们两个信号的配合状态如下图。
spi_master的理解
7:nCS_ctrl控制片选信号cs的控制位置;
8:wr_req是FPGA的SPI输出请求,高电平有效。当wr_req变为高电平的时候开始输出,当时当输出结束以后如果wr_req还是高电平,继续SPI输出。
9:wr_ack发送反馈
10:data_in需要的SPI数据;
11:data_out接收到的数据。