我正在为MIPS处理器使用32位ALU。 我已经阅读过Pong Chu关于verilog和其他文本的书,但我还没有真正得到一个具体的答案,我是如何用verilog实现一个立即添加的?
例如使用asm代码: addi Y,A,立即
添加就像y = a + b一样简单 但是我如何解释一个立即操作数呢?
答案 0 :(得分:1)
总的来说,您可以通过以下方式为这样的函数实现不同的操作数功能:
实现一个add函数,其中操作数通过多路复用器馈送。多路复用器将有一些输入,其中一个输入将是指令字的立即值。使用指令字的操作码部分选择要用于添加的多路复用器输入。
多路复用器的其他输入可能是“寄存器”的输出。内存,处理器中其他位置的转发路径等。
我没有提供任何代码,但这完全取决于您已有的现有结构。希望这个概述足以让你走上正确的轨道。
wikipedia page on the MIPS architecture有diagram显示以这种方式使用的多路复用器。