1. 为什么SRAM实验是计算机组成原理的必修课
第一次接触SRAM芯片时,我盯着实验箱里那块小小的6116芯片看了半天——就这么个比指甲盖还小的东西,居然能存储2048个字节的数据?更神奇的是,断电后数据就消失了。这种会"失忆"的存储器,和我们手机电脑里用的内存条竟是同类。
静态随机存储器(SRAM)作为计算机内存的基石,其工作原理直接影响着CPU访问数据的速度。我在大二做这个实验时,最深刻的体会是:理论上看懂时序图是一回事,亲手让LED灯按预期亮灭又是另一回事。当你拨动开关看到地址总线的LED显示"A7~A0=00000001",数据总线显示"D7~D0=00010001"时,那种"我确实把11H写入了01H地址"的实感,是看十遍教科书都换不来的。
实验箱上的6116芯片虽然只有2KB容量,但它和现代计算机内存的核心原理完全一致。通过这个实验,你能真正理解:
- 地址线和数据线如何分工合作
- 片选信号(CS)、写使能(WE)、输出使能(OE)的配合舞蹈
- 为什么CPU需要严格的时序控制才能正确读写内存
提示:实验前建议用Proteus仿真软件搭建虚拟电路,能避免实操时烧毁芯片的风险。我曾因接错线导致芯片发烫,这个教训值50块钱。
2. 实验设备连接:避开我踩过的三个坑
实验箱接线的过程就像在玩解谜游戏——每个信号都必须找到正确的归宿。根据TD-CMA实验系统的特点,这些细节需要特别注意:
2.1 电源管理黄金法则
一定要先接线后通电!我的同学曾带电插拔排线,导致6116芯片当场"阵亡"。正确的操作顺序是:
- 关闭实验箱电源开关
- 对照图2-4完成所有连线(特别留意标圆圈的关键信号)
- 用万用表蜂鸣档检查线路通断
- 确认KK1、KK3在"运行"档,KK2在"单步"档
- 最后才接通电源
2.2 总线竞争警报处理
如果通电后听到"嘀"声报警,说明存在总线冲突。这时要立即:
- 关闭电源开关
- 检查IOR开关是否置于1(禁止IN单元输出)
- 确认74LS245三态门使能端连接正确
- 排查是否有多个单元同时向数据总线输出
2.3 信号线防呆设计
6116的三个关键控制信号最易接错:
- CS片选线:实验常接地(低电平有效)
- OE读使能:接CON单元的RD信号
- WE写使能:接CON单元的WR信号
建议用不同颜色导线区分:红色接电源、黑色接地、黄色接控制信号。我第二次实验时用这个办法,接线效率提升了一倍。
3. 手把手完成SRAM读写操作
3.1 写入数据的艺术
以向00H地址写入11H为例,正确的操作流程就像跳华尔兹:
- 准备阶段:设置WR=0、RD=0,IOR=0(允许输入)
- 送地址:拨动数据开关到"00000000",打开LDAR=1
- 锁存地址:按下ST按钮产生T3脉冲(会听到"咔嗒"声)
- 送数据:拨动数据开关到"00010001",关闭LDAR=0
- 执行写入:设置WR=1、RD=0、IOM=0,再次按ST
此时用万用表测量6116的对应引脚,应该能看到数据线上的电平变化。我第一次操作时太紧张,忘了在第二步打开LDAR,结果地址没锁存成功。
3.2 读取数据的奥秘
从00H地址读取数据的操作更考验耐心:
- 清除状态:WR=0、RD=0,IOR=1(禁止输入)
- 送地址:同写入步骤1-3
- 触发读取:设置WR=0、RD=1、IOM=0
- 观察结果:数据总线LED应显示"00010001"
有趣的是,读操作时6116的OE引脚会从高电平跳变到低电平,这个变化可以用示波器捕捉到。建议在实验报告中附上示波器截图,能加分不少。
3.3 批量读写实战
尝试连续操作多个地址时,推荐以下顺序:
01H ← 11H → 读出验证 02H ← 22H → 读出验证 ...每完成一组操作就立即验证,比全部写完再统一检查更容易定位问题。我记录过一组典型数据:
| 地址 | 写入值 | 读出值 | 结果 |
|---|---|---|---|
| 01H | 11H | 11H | ✓ |
| 02H | 22H | 22H | ✓ |
| 03H | 33H | 13H | ✗ |
第三次操作出错后发现是数据开关接触不良,这个教训让我养成了每次拨动开关后用手指轻轻按压的习惯。
4. 进阶玩法:用SRAM做加法器
最让我兴奋的是实现(01H)+(02H)→06H这个功能。这需要协调存储器、运算器和控制器:
- 按3.3节方法在01H、02H存入加数
- 设置运算器为加法模式(具体操作取决于实验箱型号)
- 分两次读取01H、02H到运算器
- 将运算结果写入06H地址
关键点在于控制信号的时序配合。建议先画出类似下面的时序图:
T1: 读01H → 运算器暂存 T2: 读02H → 运算器相加 T3: 写结果到06H在TD-CMA系统上,这个过程需要精确控制CON单元的二进制开关序列。我失败三次后才掌握节奏,发现T3脉冲的持续时间必须大于50ms。
5. 深度探索:SRAM容量扩展实战
6116原本有11根地址线(A0-A10),但实验箱只引出了A0-A7。要突破256字节的限制,可以这样扩展:
5.1 字扩展方案
使用74LS138译码器管理多片6116的片选信号:
A8 → 译码器A A9 → 译码器B A10→ 译码器C每片6116的CS接译码器输出,这样8片芯片就能组成2KB存储系统。我在毕业设计中用这个方案成功扩展了四片6116。
5.2 位扩展技巧
如果需要16位存储,可以将两片6116并联:
- 芯片1存储低8位
- 芯片2存储高8位
- 共用同一组地址线
这种方案下,读写操作要同时激活两个CS信号。建议用示波器观察两片芯片的时序同步情况。
实验中最有成就感的时刻,是看着自己扩展的存储器成功存储了一首《两只老虎》的乐谱数据。当通过LED灯看到"1 2 3 1"的音符编码依次亮起时,突然理解了计算机底层工作的美感。