1. 用64K*1位的存儲器晶元,如何構成64K*8位的存儲器。(請給出所用晶元的數量和分
需要8個64K*1的存儲晶元。把8片的地址線連在一起,其他的讀寫控制信號可以共享,作為輸入,然後將8個1bit的輸入出拼接成8位,這樣就是一個64K*8的存儲器了。
2. 假設一個可存儲64個字的存儲器,每個字8位,編寫verilog代碼,逆序排列存儲器內容,即第0個字
說起來比寫代碼難,還是寫一個你自己琢磨吧……
#include<stdio.h>
intmain(intargc,char*argv[]){
chara[]="#@",t;
inti,j;
printf("Theoriginalstring: %s ",a);
for(j=63,i=0;i<j;i++,j--)//這個循環就是把a[0]、a[1]...與...a[62]、a[63]對應交換的過程
t=a[i],a[i]=a[j],a[j]=t;
printf("Afterthereverseorder: %s ",a);
return0;
}
3. 用4k*8位的存儲器晶元構成16k*8位的RAM,畫出連接圖,並確定地址空間。
解答:
4. 2Kx4位的存儲晶元組成16Kx8位的存儲器,具體看詳細~
使用2Kx4的晶元構成16Kx8位的晶元,應該每行2個2K晶元形成8位地址,共四行。因為內存單元從0開始連續編址,所以每行的起始地址依次為000H、0800H、1000H、2000H。因為0800H<0B2FH<1000H,所以地址單元0B1FH在第二行上,起始地址單元為0800H。
5. 256 8位存儲器的字線和位線各有多少條
2^8=256,有8根地址線,256根字線,8根地址線和位線。
存儲矩陣是存放信息的主體,它由許多存儲單元排列組成。每個存儲單元存放一位二值代碼(0
或 1),若干個存儲單元組成一個「字」(也稱一個信息單元)。
地址解碼器有n條地址輸入線A0~An-1,2n條解碼輸出線W0~W2n-1,每一條解碼輸出線Wi稱為「字線」,它與存儲矩陣中的一個「字」相對應。因此,
每當給定一組輸入地址時,解碼器只有一條輸出字線Wi被選中,該字線可以在存儲矩陣中找到一個相應的「字」,並將字中的m位信息Dm-1~D0送至輸出緩沖器。讀出Dm-1~D0的每條數據輸出線Di也稱為「位線」,每個字中信息的位數稱為「字長」。
6. 某RAM晶元,其存儲容量為16K×8位,存儲器晶元的地址范圍是什麼
給定的數字中,只是看:"16K",就能看出地址信息。
16K = 16 * 1024 = 2^4 * 2^10 = 2^14
所以,寫出這16K的地址,需要 14 位二進制數。
一般,用16位數,那麼,前面再加上兩個0。
0000 0000 0000 0000 假設這是起始地址
0000 0000 0000 0001 這就第二個單元的地址
……
0011 1111 1111 1111 這最後單元的地址
把上述數字,寫成16進制,就是0000H---3FFFH。
其實,題目是有缺陷的,它沒有給出起始地址。
如果沒有指定起始地址,那麼,求地址范圍,范圍將是不確定的。
7. 64k*八位的存儲器是什麼意思
一個位元組是8位的0或1的數字組成,64K*8位應該是指64K位元組的存儲容量吧。
8. 用16KX8位的RAM存儲單體構造64KX8位的存儲器
4個16K*8位構成64K*8位。
通過對RAM存儲單體的使能選擇,決定地址范圍
具體的地址范圍如下:
0x00000000-0x001fffff
0x00200000-0x003fffff
0x00400000-0x005fffff
0x00600000-0x007fffff
9. 用容量為16K*1位存儲器晶元構成一個32K*8位的存儲系統
16K x1到32K x8,字數和字長都變化了,也就是綜合兩種拓展方法拓展。
*字數拓展
16K到32K是兩倍,使用非門作為解碼器(1線-2線),故需要兩個存儲晶元
*字長拓展
將上面拓展作為整體看成一個存儲器,從1位到8位,是八倍。採用並聯,輸入都一樣,需要8個存儲器(已經字數拓展過的存儲器)
經過兩次拓展,需要2*8個16K x1存儲器
10. 設有一個16位地址和8位數據的存儲器,問:
1.(2的16次方)/1024 =64k.
2.8片
3.3個信號線 (000 001 ...111).