輸作準備。地址高字節寄存器add_h數值56H通過spi_dout 傳輸給SPI Flash,當tx_bit_cnt計數到8時,狀態機進入txadd_m狀態,傳輸地址中間字節,同理,控制器在狀態txadd_m和狀態 txadd_l狀態下完成傳輸地址中間字節34H和地址低字節12H.當24位地址傳輸完畢,狀態機在等待后進入rxdata狀態,接收從spi_din 輸入的第一字節數據01H.當rx_bit_cnt計數到8時,控制器完成第1字節數據的接收,rx_data顯示為01H,狀態機狀態轉換為wait8 狀態,等待用戶設定{sel,addr,wr}以接收第2字節。當用戶設定{sel,addr,wr}為10000b時,狀態機再次進入rxdata狀態,接收從spi_din輸入的第2字節數據02H,同時rx_ready被拉低,rx_empty被拉高,rd_data被拉高,表示將要讀出新輸入的數據。當rx_bit_cnt計數到8時,第2字節數據接收完畢,rx_ready被拉高,rx_empty為低,rd_data顯示新接收的字節數據 02H,狀態機經等待后重新進入wait8狀態,等待用戶再次設定{sel,addr,wr}值,接收第3字節數據值,同理,可讀出SPI Flash內部所有數據。 當狀態機處于wait8狀態而用戶想退出讀數據操作時,可向控制器輸入NOP指令強制結束當前讀數據操作。狀態機在接收到NOP指令后將進入clr_cmd狀態和idle空閑態,等待下一條指令的到來。當讀數據操作還沒結束時,busy將一直置高。
5.結語
目前SPI Flash控制器IP核已經在XUPV5-LX110T FPGA開發板上通過硬件測試,并且將作為功能模塊應用于SOC芯片設計。實踐證明,基于FPGA的SPI Flash控制器能夠簡化SPI Flash讀寫操作流程,從而提高SPI Flash的讀寫速度,而操作時不占用CPU資源的特點,將使SPIFlash的讀寫更有優勢。
fpga相關文章:fpga是什么
評論