采用昨天的SPI模块做的一个应用实例, 还附带了testbench文件,发现所写的SPI模块还挺方便及实用的,SPI模块的文件在上篇日志里有下载。
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));
https://static.assets-stash.eet-china.com/album/old-resources/2008/9/6/a72847e0-50c9-4ce7-84ef-25c7872de587.rar" target=_blank>
用户1324552 2009-12-9 10:19
用户616259 2009-7-9 19:51