用Verilog做的SD卡控制器----SD卡--II 2011-12-02 15:53 //------------------------------------------------------ //SD命令CMD发送控制 //1
发送8个时钟脉冲 // 2
SD卡片选 CS拉低,即片选有效 // 3
连续发送6个字节命令 // 4
接收 1个字节响应数据 // 5
SD卡片选 CS拉高,即关闭 SD卡 /*发送总共 6个字节命令格式: 0 -- start bit 1 -- host bit5-0 -- command bit31-0 -- argument bit6-0 -- CRC7 1 -- end bit */ //------------------------------------------------------ //发送sd命令状态机控制 reg[5:0] cmd;//发送命令寄存器 reg[31:0] arg;//发送参数寄存器 reg[7:0] crc;//发送CRC校验码 reg spi_cs_nr;//SPI从设备使能信号,由主设备控制 reg spi_tx_enr;//SPI数据发送使能信号,高有效 reg spi_rx_enr;//SPI数据接收使能信号,高有效 reg[7:0] spi_tx_dbr;//SPI数据发送寄存器 reg[7:0] spi_rx_dbr;//SPI数据接收寄存器 reg[3:0] nclk_cnt;//74+CLK发送周期计数器 reg[7:0] wait_cnt8;//命令操作间隔等待计数器 reg[9:0] cnt512;//读取512B计数器 reg[7:0] retry_rep;//重复读取respone计数器 reg[7:0] retry_cmd;//重复当前命令计数器 assign