每日最新頭條.有趣資訊

FPGA開發板為什麽要使用SDRAM

SDRAM有一個同步接口,在響應控制輸入前會等待一個時鐘信號,這樣就能和計算機的系統總線 同步。時鐘被用來驅動一個有限狀態機,對進入的指令進行管線(Pipeline)操作。這使得SDRAM與沒有同步接口的異步DRAM相比,可以有一個更複雜的操作模式。

管線 意味著芯片可以在處理完之前的指令前,接受一個新的指令 。在一個寫入的管線 中,寫入命令在另一個指令執行完之後可以立刻執行,而不需要等待數據寫入存儲隊列的時間。在一個讀取的流水線中,需要的數據 在讀取指令發出之後固定數量的時鐘頻率後到達,而這個等待的過程可以發出其它附加指令。這種延遲被稱為等待時間(Latency),在為計算機購買記憶體時是一個很重要的參數。

SDRAM在計算機中被廣泛使用,從起初的SDRAM到之後一代的DDR(或稱DDR1),然後是DDR2 和DDR3 進入大眾市場,2015年開始DDR4進入消費市場。如UMI型號 UD408G5S1AF的一款8Gb 32位 DDR4 SDRAM,支持使用在英特爾Arria 10 SoC FPGA以及Kintex Ultrascale FPGA中的記憶體。32位 DDR4 SDRAM適合邊緣類計算,或對PCB面積有緊湊要求的深度學習計算設備。

為什麽要使用記憶體控制器?

動態記憶體的驅動比靜態記憶體的驅動更加複雜...我們需要行,列和存儲體以及刷新周期來處理。但是由於SDRAM的高速性和低部門成本使其引人注目。

因此我們需要的是一種訪問SDRAM的方法,但是要易於使用靜態記憶體。這就是創建記憶體控制器的原因。它們充當轉換層:一方面,它們為用戶提供了易於使用的記憶體接口,然後進行了繁瑣的工作來驅動真實的SDRAM信號。

SDRAM引腳

如果我們看一下SDRAM的引腳,那麽會有一些新來者。

地址和數據總線仍然存在,但是地址總線只有11位(用於提供要打開的行,然後提供列地址)。BA引腳指定了存儲區(由於在我們的示例中只有2個存儲區,因此我們僅需要一個引腳)。WE,CAS和RAS一起用作命令引腳,因此我們可以向SDRAM發送8個不同的命令(命令包括“打開行”,“讀取”,“寫入”和“關閉行”)。使用了其他一些引腳(但未在圖片上顯示),例如時鐘,片選,字節使能...

請注意,在動態記憶體中,“打開行”稱為激活,“關閉行”稱為預充電。

刷新

SDRAM是動態記憶體:由於每個記憶體位值(0或1)都保存在一個微小的電容器中,電荷隨時間衰減,因此需要定期刷新其內容。但是衰減率足夠低,只要定期對其進行讀取和重新寫入(“刷新”),製造商就可以保證不會丟失任何數據。

有兩種刷新機制

· FPGA將“自動刷新”命令發送到SDRAM。

只要確保它定期完成(SDRAM數據表會告訴您最小刷新頻率)。

· FPGA“經常”訪問每一行。

打開一行會導致SDRAM中的“感測放大器”獲得該行所有電容器電荷的副本。然後,當該行關閉時,較早檢測到的值將被複製回電容器中,從而刷新過程中的數據。

獲得更多的PTT最新消息
按讚加入粉絲團