天天看點

基于FPGA的QSPI PSRAM控制器設計及測試實驗(2)——FIFO接口FPGA電路優化FIFO接口設計Nios II總線結構

文章目錄

  • FPGA電路優化
  • FIFO接口設計
  • Nios II總線結構

FPGA電路優化

由于上一章講解的RTL電路過于繁瑣,導緻Controller子產品的組合電路過多,極大影響了控制PSRAM的最高頻率。

下圖是Controller子產品的RTL電路。

基于FPGA的QSPI PSRAM控制器設計及測試實驗(2)——FIFO接口FPGA電路優化FIFO接口設計Nios II總線結構

本章根據QSPI協定,設計了一種針對PSRAM的FIFO資料傳輸接口。利用預編譯的思想,将大部分組合邏輯放于軟體端,僅需FIFO interface子產品直接将存儲好的指令按CLK依次輸出即可,極大提高PSRAM的工作頻率,但缺點是會引入額外的總線時延,非常适合用于PSRAM功能調試。

基于FPGA的QSPI PSRAM控制器設計及測試實驗(2)——FIFO接口FPGA電路優化FIFO接口設計Nios II總線結構

改進後FIFO interface子產品的電路複雜度降低如下。

基于FPGA的QSPI PSRAM控制器設計及測試實驗(2)——FIFO接口FPGA電路優化FIFO接口設計Nios II總線結構

FIFO接口設計

以AP Memory的某款QSPI PSRAM為例,下圖為其在QPI模式下的寄存器讀取時序。當資料選通線CE#為低,指令(Cmd),位址(Addr),等待延時(Wait)三個階段嚴格按照CLK依次發出,即可在第四個階段(Dout)通路到PSRAM的寄存器資料。

雙口雙時鐘FIFO的使用十分必要,因為一邊是來自軟體端的指令預編譯時鐘,另一邊是來自同步PSRAM的資料時鐘。避免異步時鐘帶來的問題。FIFO_PC中資料存儲模式可見下表,各信号均以時鐘為節拍變化,模拟了PSRAM指令時序。有此模式,PSRAM的任何指令均可靈活、便捷的通過C語言輔助設計出來。

基于FPGA的QSPI PSRAM控制器設計及測試實驗(2)——FIFO接口FPGA電路優化FIFO接口設計Nios II總線結構

ps:亦可轉換為SPI模式進行資料傳輸,簡化為傳統的SI,SO兩根資料傳輸線。當然QPI模式下傳輸效率會更高,使用者可根據具體應用場景進行選擇。

Nios II總線結構

在FPGA上搭建簡易的SOPC,可以以軟體的方式,便捷地通路多種外設。

以Nios II處理器為中心的小型總線結構如下圖所示。生成片内RAM可存儲軟體端的指令。通過Avalon_mm總線,可通過尋址方式通路JATG,PIO,FIFO,DRAM控制器等外設。

本章設計的FIFO同樣挂與Avalon_mm總線上,成為軟體與硬體溝通的橋梁。

基于FPGA的QSPI PSRAM控制器設計及測試實驗(2)——FIFO接口FPGA電路優化FIFO接口設計Nios II總線結構

了解更多PSRAM敬請留言,登入https://www.apmemory.com/或 掃碼加入AP Memory公衆号了解更多PSRAM!

基于FPGA的QSPI PSRAM控制器設計及測試實驗(2)——FIFO接口FPGA電路優化FIFO接口設計Nios II總線結構