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