一:關於RAM的存儲容量
硬件數據手冊在描述存儲容量時,通常給出地址的總個數與一個地址的存儲位寬(不包括錯誤檢測位與奇偶校驗位)
例如:256k*16的RAM芯片可以存儲256kbit=256*1024bit=28*210=218bit,這里一個地址的存儲位寬為16(數據線數目);總線的寬度為:218/16=214,即14根地址線;容量218=16*214(數據線數目*2地址線數目)。
下面我們將設計一個帶有奇偶校驗位的“1kb*32”的靜態RAM的verilog模型。該存儲器的容量為1024bit;一個地址存儲位寬為32(數據線數目);共有1024/32=32個地址,址線的尋址空間為0-32,addr的位寬為5(reg[4:0])。
二:奇偶校驗位
奇偶檢驗在RAM里很常用,每個地址的比特1(或者0)的數目都被記錄了下來,然后每個地址分配一個額外的比特,根據1(或者0)的比特數目將它賦為1或0;
例如偶校驗,在數據最高位加入1bit數據,使得1的個數位偶數;這里可以使用異或來表示;
三:計帶有奇偶校驗位的1kb*32的靜態RAM
1:由上面的理解,Addr為reg[4:0],DataI為32位reg[31:0],內部存儲器為reg[32:0] Storage[31:0],加上奇偶校驗位一共32位,包含32個地址。
2:主要代碼
3:make
4:打開dve