我正在尝试在 Verilog 中创建一个 8086 处理器,并且我对大多数体系结构的基本理解要好于平均水平(一旦我通过这一点就可以愉快地相处),但我似乎无法包装我对进位和辅助标志在 ALU 中的作用感到头疼。
我知道 CF 是在加法或减法(在这种情况下称为借位)时触发的,这会导致结果大于 ALU 的位宽。
但是,我将如何编写用于加法和减法的 Verilog 代码,以允许我写入 FLAGS[0] (CF) 位,然后重新访问它以继续操作?谁能给我可以解构的例子?
此外,这更像是一个 n00b 问题,但是如果 SI 和 DI 寄存器的宽度仅为 16 位,那么带进位运算的 ALU 怎么能支持创建 17 位数字呢?多余的部分去哪里了,或者用它做了什么?如果乘法产生相同的位溢出会发生什么?
对于新手级别的问题,我们深表歉意。我几乎觉得我会因为一些明显的无知或对此缺乏理解而大喊大叫。非常感谢任何可以提供帮助并提供代码行以帮助我理解这一点的人。