一、存儲器類型
1、RAM,隨機存取存儲器(Random Access Memory),也叫主存,
是與 CPU 直接交換數據的內部存儲器。可按地址進行讀寫,掉電后數據會丟失。
(1)DRAM:動態RAM,使用電容的電量來表示邏輯 0 和 1,電容充放電的特性導致其需要不斷的刷新來保證數據不丟失。存儲容量較大,多用於數據存儲。常見的有 SDRAM 和 DDR。 (2)SRAM:靜態RAM,使用觸發器的兩個穩定狀態來表示邏輯 0 和 1,不需要刷新操作。存儲容量一般較小,但讀寫速度快。
2、ROM,只讀存儲器(Read Only Memory),數據只能讀出而不能寫入,掉電后數據不丟失。數據寫入需要特定條件,數據存取慢。
(1)PROM:可編程ROM,出廠后可修改內部數據,但只能修改一次。多用於存儲不修改的數據,如設備ID,制造廠商編碼。 (2)EEPROM:電子可擦除的ROM,內部數據可以反復進行修改。多用於掉電后扔需存儲的數據。
3、Flash,快閃存儲器(Flash Memory),可讀可寫,掉電后數據不丟失,數據存取快。
(1)NOR FLASH:容量小,讀寫速度快,程序可以在里面直接運行。 (2)NAND FLASH:容量大,讀寫速度慢,數據以塊的形式讀寫,一般為 512 Byte,不能對單獨的字節進行操作。

二、SDRAM簡介
SDRAM 全程是 Synchronous Dynamic Random Access Memory,即同步動態隨機存儲器,同步指內存工作需要同步時鍾,動態指需要不停地刷新來保證數據不丟失,隨機指數據讀寫可以制定地址進行操作。SDRAM 存儲數據是利用了電容能夠保持電荷以及其充放電的特性。SDRAM具有空間存儲量大、讀寫速度快、價格相對便宜等優點。然而由於 SDRAM 內部利用電容來存儲數據,為保證數據不丟失,需要持續對各存儲電容進行刷新操作;同時在讀寫過程中需要考慮行列管理、各種操作延時等,由此導致了其控制邏輯復雜的特點。
1、SDRAM內存計算
SDRAM 的內部是一個存儲陣列,就像一張表格,我們在向這個表格中寫入數據的時候,需要先指定一個行(Row),再指定一個列(Column),就可以准確地找到所需要的“單元格”,這就是 SDRAM 尋址的基本原理。圖中的“單元格”就是 SDRAM 存儲芯片中的存儲單元,而這個“表格”(存儲陣列)我們稱之為 L-Bank。

通常 SDRAM 的存儲空間被划分為 4 個 L-Bank,在尋址時需要先指定其中一個 L-Bank,然后在這個選定的 L-Bank 中選擇相應的行與列進行尋址(尋址就是指定存儲單元地址的過程)。對 SDRAM 的讀寫是針對存儲單元進行的,對 SDRAM 來說一個存儲單元的容量等於數據總線的位寬,單位是 bit。那么 SDRAM 芯片的總存儲容量我們就可以通過下面的公式計算出來:SDRAM總存儲容量 = 行數 × 列數 × L-Bank的數量 × 存儲單元的容量
本次設計采用的 SDRAM 芯片為 Winbond W9812G6KH - 6,查詢數據手冊發現其容量為:2M × 4 banks × 16 bits = 128 Mbit,其中 2M 為“行數×列數”,4為 L-Bank 數量,16 為單個存儲單元的容量,即數據位寬。因此每個 Bank 能存儲 32 Mbit(33554432 bit)的數據,這些數據組成 4096行 x 512列,每個存儲單元存儲 16bit 的數據。
2、SDRAM存取原理
SDRAM存儲數據是利用了電容的充放電特性以及能夠保持電荷的能力。一個 1bit 的存儲單元的結構如下圖所示,它主要由行列選通三極管,存儲電容,刷新放大器組成。行地址與列地址選通使得存儲電容與數據線導通,從而可進行放電(讀取)與充電(寫入)操作。

SDRAM 存儲數據是利用了電容能夠保持電荷以及其充放電的特性。對於這 1 bit 的的數據,首先需要打開行地址線,然后打開列地址線,選中存儲單元。接着打開行選通三極管,再打開列選通三極管,對存儲電容進行放電,電容的電平狀態就能呈現在位線上,即實現了數據讀取。當位線的的電平值送到存儲電容上,對存儲電容進行充電,就實現了數據寫入。刷新放大器的作用是將電容放大,便於傳輸。
三、SDRAM器件引腳
SDRAM 功能框圖如下所示:

其引腳功能如下表所示:

四、操作命令
對 SDRAM 的操作是通過命令來控制的,這些命令由 CS_n、RAS_n、CAS_n、WE_n 組合而成。同時,A 和 DQM 作為輔助信號,共同組成 SDRAM 的操作命令。

在我整理這部分資料時,發現小梅哥的書中對此講解得非常好,於是干脆引用過來:

根據上述兩個表格,我們大致知道了操作命令是怎么回事,以及其對應功能是怎么樣的。
參考資料:[1]威三學院FPGA教程
[2]正點原子FPGA教程
[3]袁玉卓, 曾凱鋒, 梅雪松. FPGA自學筆記:設計與驗證[M]. 北京航空航天出版社, 2017.