基于FPGA的串行外圍接口SPI設(shè)計(jì)與實(shí)現(xiàn)
3 設(shè)計(jì)的仿真、綜合與實(shí)現(xiàn)
通過(guò)編寫(xiě)測(cè)試平臺(tái),并使用Mentor Graphics 公司的仿真工具M(jìn)odelSim SE PLUS 6.1f 對(duì)該SPI 模塊進(jìn)行仿真,得到的仿真波形如圖5 所示。
圖5 SPI 模塊的仿真波形
從圖中可以看出,sck 的空閑電平IDLE=0,接收數(shù)據(jù)時(shí)刻是下降沿即ACTIVE-IDLE 邊沿, 故該SPI 模塊的工作模式是CPOL=0,CPHA=1,與設(shè)計(jì)一致。當(dāng)en=0 時(shí),cs=1,SPI 總線(xiàn)處于空閑狀態(tài)。當(dāng)en=1 時(shí),在下降沿cs=0,sck 輸出時(shí)鐘信號(hào),總線(xiàn)數(shù)據(jù)傳輸開(kāi)始。同時(shí),data_o=data_i, 移位寄存器存入待發(fā)送數(shù)據(jù)11010111.在第1 個(gè)周期上升沿,主機(jī)通過(guò)mosi 發(fā)送data_o 最高位1 至從機(jī)。在第1 個(gè)周期下降沿,data_o 左移一位,多出一個(gè)空閑位data_o[0],主機(jī)通過(guò)miso 接收從機(jī)發(fā)送的數(shù)據(jù)最高位1,并將其存入data_o[0],data_o=10101111.依此類(lèi)推,后面7 個(gè)周期的數(shù)據(jù)傳輸過(guò)程與第1 個(gè)周期類(lèi)似。8 位數(shù)據(jù)全部傳輸完成之后,cs=1,一個(gè)完整的SPI 總線(xiàn)傳輸過(guò)程結(jié)束??梢园l(fā)現(xiàn),data_o中的數(shù)據(jù)被一個(gè)一個(gè)從主機(jī)發(fā)送到從機(jī),同時(shí)data_o 也被用來(lái)存儲(chǔ)從機(jī)發(fā)送的數(shù)據(jù)。8 個(gè)周期完成之后,data_o 中存儲(chǔ)的數(shù)據(jù)正是從機(jī)發(fā)送的數(shù)據(jù)10101101.綜合以上分析,該SPI 模塊的功能是正確的。
評(píng)論