Verilog 入門之ddr3讀寫遇到的那些坑!(新人報道

FPGA ddr3 踩過的那些坑!(流淚


1.從另一個模塊中請求數據的時候,一般間隔一個週期再採集數據。(因爲另一個模塊在這週期收到數據請求,在下一個週期才能給出數據)

例如圖中在3519-3520時間段內,wr_burst_req拉高,向用戶請求數據,而有效的數據是從3520時刻纔開始的,相當於滯後一週期,相應地,數據通道的使能也應滯後一週期打開,如圖中app_wdf_wren和app_wdf_end。

 

2.向別的模塊請求數據的信號一般可以直接將寫入端是否已準備好的信號(在本項目中是app_wdf_rdy)直接引過來。這個時候需要注意一點:如果該被引信號突然離線,上述通道使能信號也會滯後一週期關閉,但是由於滯後的這一週期寫入端並未準備好,所以這個時間所對應的數據不會被寫入;又因爲沒有請求新的數據,這個數據會被保持住。在被引信號恢復時,由於通道使能信號滯後一週期的緣故,剛剛保持的數據還來不及寫入就會被覆蓋。

對於這個問題,一個解決方案是:通道使能信號在被引信號非正常離線的情況下保持住,這樣在被引信號恢復的時候,可以立即將保持的數據帶走,不會出現漏數據的情況。

 


參考資料:Zynq-7000 SoC and 7Series Devices Memory Interface Solutions v4.2 User Guide(賽靈思官網可下載)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章