找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4682

积分

0

好友

641

主题
发表于 昨天 12:57 | 查看: 9| 回复: 0

复刻 COSMAC ELF:芯片替换方案中,我曾提到尝试使用FRAM来替代COSMAC ELF中的RAM,这样程序和数据在断电后就不会丢失了。

我查阅了FM1608的芯片手册,注意到这样一段说明:

FM1608 FRAM芯片引脚功能表

这意味着,在使用FRAM时,/CE引脚还承担着锁存地址的作用。如果/CE引脚一直保持接地状态,那么当地址线变化后,FRAM内部锁存的依然是旧地址,这显然会导致工作异常。

那么,原始的COSMAC ELF电路是怎样的呢?

COSMAC ELF计算机完整电路原理图

从电路图中可以看到,RAM芯片2101的/CE引脚(第19脚)是直接接地的——这需要进行调整。

于是,我打开了CDP1802微处理器的手册,研究如何获取FRAM所需的/CE信号。解决这类时序问题,最好的方法就是分析时序图。先来看一张简化的时序图:

CDP1802基本DC时序波形图

粗略一看,似乎可以使用TPA信号。但TPA的下降沿来得太早了,在那个时间点,地址总线上还是高8位地址。虽然TPB信号拉低时,地址线上正是我们需要的低8位地址,但此时读/写周期已接近尾声,同样不合适。

再来看看更详细的时序图(部分):

CDP1802详细内存访问时序图

可以清楚地看到,直接使用TPA的下降沿确实为时过早。合适的时机应该是在TPA信号拉低之后,时钟(CLOCK)第一次出现上升沿的位置。在这个时刻将FRAM的/CE拉低,就能成功锁存地址总线上的低8位地址。

显然,仅靠组合逻辑数字电路已经无法实现这个功能,必须使用时序逻辑。好在解决方案并不复杂,使用一个D触发器就能完成:

基于D触发器生成FRAM /CE信号的逻辑示意图

使用Logisim-evolution软件进行仿真,一次成功!这就是我们需要的FRAM /CE信号波形。

在COSMAC ELF的原版电路中,只用到了一个D触发器。而74HC74芯片内部包含两个独立的D触发器,正好多出一个可以用于此处。非常完美!

相关往期文章:

对复古计算机架构和硬件设计感兴趣的朋友,欢迎在云栈社区交流探讨更多技术细节。




上一篇:如何解决RAG检索关键词被切断?六大文本分块策略详解
下一篇:2026年3月美国裁员6万:AI首成主因,白领岗位面临重构
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-7 16:56 , Processed in 0.726568 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表