我目前正在 LogiSim 中开发 6502 的一个子集,在当前阶段,我正在确定要实施哪些部分以及可以删除哪些部分。我的主要资源之一是Hanson 的框图。
我目前正在尝试确定增量逻辑的工作原理。在我之前在学校工作的一个项目中,程序计数器是通过来自解码指令存储器的一条指令递增的。在此图中,程序计数器逻辑的工作方式与我之前遇到的不同。
这个逻辑究竟是如何工作的,它是否使用指令存储器中的指令来递增?作为后续,是否可以简化程序计数器逻辑以使用指令存储器中的一条或两条指令来递增?
我目前正在 LogiSim 中开发 6502 的一个子集,在当前阶段,我正在确定要实施哪些部分以及可以删除哪些部分。我的主要资源之一是Hanson 的框图。
我目前正在尝试确定增量逻辑的工作原理。在我之前在学校工作的一个项目中,程序计数器是通过来自解码指令存储器的一条指令递增的。在此图中,程序计数器逻辑的工作方式与我之前遇到的不同。
这个逻辑究竟是如何工作的,它是否使用指令存储器中的指令来递增?作为后续,是否可以简化程序计数器逻辑以使用指令存储器中的一条或两条指令来递增?
6502 只有一个程序计数器。它是 16 位宽。因为 CPU 中的许多其他东西正好是 8 位宽,所以将 16 位程序计数器分成两半,这样每一半都适合 8 位,这在硬件上是有意义的。例如,每一半都是单独加载的,一个接一个,带有类似的指令JMP
。并且相关的分支指令带来PCL
一个 ALU 输入。
这些部分只是在PCH
内部调用PCL
。您可以看到它PCL
附加了增量逻辑,其中一个输出是一个名为 的进位信号PCLC
。那是另一个递增电路的输入PCH
。
这些对程序都不重要。程序只关心PC
指向接下来要执行的指令,并使用该事实来影响自己的流程。但是,如果您有兴趣了解更多这些细节,我会向您介绍 Visual6502 模拟。它比 Hanson 的框图更准确、更详细。