佚名通过本文主要向大家介绍了认识的哥哥,哥哥帮帮忙,刚哥哥,哥哥的故事,果子哥哥等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 看过《编码的奥秘》哥哥们来讨论下
描述:
1、 在讲到一个8*1 RAM时,给出的RAM内部电路图是:
中间是8个锁存器(也即是电平D触发器,DI数据输入端,W写操作端,DO数据输出端),上边一个3-8译码器(S2,S1,S0三个地址输入端,Write写操作端,Q7-Q0数据输出端),下边是8-1选择器(S2,S1,S0三个地址输入端,D7-D0数据输入端,Output数据输出端)。
对于这个RAM内部电路图疑问是,在我要往这个8*1RAM中某个锁存器里写入数据时,同时也会输出所选定的锁存器中内容。这是不是电路设计的一个缺陷?当然,我清楚这并不是实际的RAM构造,只是书中一个讲解例子,而且这个问题也不是那么要紧。
2、 用上面两个8*1RAM来集成一个16*1RAM时,给出的RAM内部电路图是:
中间两个8*1RAM是上面的简化图。下边是2-1的选择器,上边是1-2的译码器。
这里我觉得这个电路图问题大了。假如我们需要给左边的8*1RAM中第一个锁存器输入数据1,那么给出Address(A0A1A3)=000,Write=1,Data In=1,Select=0。经过1-2的译码器DO0=1、DO1=0。但是,由于Write、Address输入信号也会传入右边的8*1RAM,这样会使得右边的8*1RAM中第一个锁存器保存0值,因为DO1=0使得右边8*1RAM的DI输入端为0。如此,这个16*1RAM设计是不合理的。
这里我觉得电路图应该改为下图:
添加了两个与门
这是个明显的错误,但作者在书中未提及这个问题,而且网上也没见到有人提出这个问题,我就有点奇怪了。不知道,大哥们怎么看这个问题?
解决方案1:
描述:
编码的奥秘RAM
在看《编码的奥秘》到第16章存储器的组织,有些小疑问。1、 在讲到一个8*1 RAM时,给出的RAM内部电路图是:
中间是8个锁存器(也即是电平D触发器,DI数据输入端,W写操作端,DO数据输出端),上边一个3-8译码器(S2,S1,S0三个地址输入端,Write写操作端,Q7-Q0数据输出端),下边是8-1选择器(S2,S1,S0三个地址输入端,D7-D0数据输入端,Output数据输出端)。
对于这个RAM内部电路图疑问是,在我要往这个8*1RAM中某个锁存器里写入数据时,同时也会输出所选定的锁存器中内容。这是不是电路设计的一个缺陷?当然,我清楚这并不是实际的RAM构造,只是书中一个讲解例子,而且这个问题也不是那么要紧。
2、 用上面两个8*1RAM来集成一个16*1RAM时,给出的RAM内部电路图是:
中间两个8*1RAM是上面的简化图。下边是2-1的选择器,上边是1-2的译码器。
这里我觉得这个电路图问题大了。假如我们需要给左边的8*1RAM中第一个锁存器输入数据1,那么给出Address(A0A1A3)=000,Write=1,Data In=1,Select=0。经过1-2的译码器DO0=1、DO1=0。但是,由于Write、Address输入信号也会传入右边的8*1RAM,这样会使得右边的8*1RAM中第一个锁存器保存0值,因为DO1=0使得右边8*1RAM的DI输入端为0。如此,这个16*1RAM设计是不合理的。
这里我觉得电路图应该改为下图:
添加了两个与门
这是个明显的错误,但作者在书中未提及这个问题,而且网上也没见到有人提出这个问题,我就有点奇怪了。不知道,大哥们怎么看这个问题?
解决方案1:
补充说一句,对于第二个问题,用于data-in的decoder是不需要的。将data-in直接连接到2个DI就可以了。
解决方案2: 1. 你的想法正确,但这不算缺陷。根据使用场合的不同,RAM有可能需要读写同时进行,或不需要同时进行。对于读写不需要同时进行的应用,书上的图就够用了。而对于读写会同时进行的应用,会使用两套地址线,一套用于读地址,一套用于写地址,而且需要考虑当读写同时进行时的冲突问题(向某单元写入时,同时读取该单元)。这会大大增加设计复杂度。
2. 你是对的。