状态寄存器何时在6502中更新?

Cli*_*123 2 processor 6502

我目前正在LogiSim中开发6502的子集.我的主要资源之一是Hanson的Block Diagram.

我正在尝试确定如何以及在何处构建更新处理器状态寄存器的电路.在下面的处理器状态寄存器图中,有多条控制线进入寄存器,但没有指示它们来自何处.

令人困惑的图表部分

6502处理器状态寄存器何时何地更新?我认为它是在ALU的输出上,但我想确保这种情况.

Nic*_*ate 7

你有汉森的完整更新图吗?论文在这里.(或在这里原创.)

P(DB0/C等)左侧的输入是随机控制逻辑块底部的输出.P顶部的输入来自ALU(ACR,AVR),IR5是指令寄存器的第5位.(但是从下面的Breaknes看来,Hanson的图表似乎不完整:"Donald错过了原理图上的0/V命令,该命令在处理CLV指令时使用.")

对于各种指令,输入将被不同地锁存.例如,像CLC/SEC/CLD/SED/CLI/SEI/CLV这样的两个循环指令有一位(IR5),最终将硬编码值锁存到C,I,V或D中的一个.其他指令将在稍后的周期将ALU(等)信号锁存到多个标志.这就像我所知道的那么详细,以及适合这里答案的逻辑.

俄罗斯Breaknes网​​站提供非常详细的信息.作者从Visual6502的图像反向设计了晶体管级的所有6502逻辑.在网站的Wiki和Info部分仔细查看.例如,这里是标志信息页面的翻译链接,其具有逻辑图,与标志逻辑上维基页面不同.

当他完成这项工作时,6502论坛上有很多讨论(第12 第15 页的标记逻辑),并且某些内容可能只是从这个帖子链接.原始代码仓库已移至GitHub,其中有仿真器源代码和Logisim电路图.