SPI Slave端口及测试代码

该博客介绍了SPI从端接口模块SPI_SLAVE的设计,详细阐述了如何在iCS_N为低电平时,根据iSCLK的上升沿从iMOSI接收数据,并在接收完整字节后通过oDATA和oEN输出数据。同时还提供了测试程序tb1.v,用于验证SPI_SLAVE模块的功能,确保数据传输的正确性。
摘要由CSDN通过智能技术生成

//SPI_SLAVE.v
//SPI从端接口
//SPI的数据线上,高位数据先发
//2010-12-20
/*
SPI从模块接受端
在iCS_N为低电平时,每一个iSCLK信号上升沿到来时,从iMOSI端口接受一位数据
当接收一个字节的数据后,oDATA端口输出数据,同时oEN置高电平,表示当前oDATA端口的数据为有效数据
*/
module SPI_SLAVE(
    iCLK,    //全局时钟
    iRST_N,    //全局复位
    iSCLK,    //SPI时钟信号
    iCS_N,    //片选信号
    iMOSI,    //SPI数据输入端口
    oDATA,    //输出数据
    oEN        //输出有效信号
);

input iCLK;
input iRST_N;
input iSCLK;
input iCS_N;
input iMOSI;
output [7:0] oDATA;
output oEN;

reg [7:0] oDATA;
reg [3:0]rOEN;
reg [7:0] rData;
reg [2:0] rCnt;

reg sclk_bak;
always@(posedge iCLK)begin
    sclk_bak <= iSCLK;
end
wire wSclkRaise=((sclk_bak==1'b0)&&(iSCLK==1'b1));    //iSCLK上升沿

always@(posedge iCLK or negedge iRST_N)begin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值