module spim(rst,clk,
sdi,sdo,sck,cs,
idata1,idata2,odata1);
input rst; // 异步清零
input clk; // 系统时钟
input sdi; // spi sdi
input cs; // spi cs
input sck; // spi clk, MAX 25MHz
input[7:0] idata1; // input data1 want to send
input[7:0] idata2; // input data2 want to send(可根据需要继续添加)
output sdo; // spi sdo
output reg[7:0] odata1; // receive data1 write to cpld(可根据需要继续添加)
/*
**********************************************************************
*/
wire ReceiveFlag; // SPI收到8位数据标志
wire TransEndFlag; // 发送结束标志
reg CmdFlag; // 命令为1,数据为0
reg TransFlag; // 告诉SPI发送数据标志,并处于发送状态
reg RFstRunFlag; // run once time by once receivceflag
reg[7:0] CmdStore; // 保存指令和操作地址
reg[7:0] SPIData; // 发送的数据寄存器
wire[7:0] SPICoder; // 命令字和操作地址
parameter CODER0CMD = 8'b11110000, // 操作指令和操作地址0
CODER1CMD = 8'b11110001, // 操作指令和操作地址1
CODER2CMD = 8'b11110010; // 操作指令和操作地址2
spi spi1( .rst(rst),.clk(clk),.sdi(sdi),.sdo(sdo),.sck(sck),.cs(cs),
.OData(SPICoder),.IData(SPIData),
.ReceiveFlag(ReceiveFlag),.TransFlag(TransFlag),.TransEndFlag(TransEndFlag));
文章评论(0条评论)
登录后参与讨论