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).