nandgame--Level 4.2: ALU: ALU
下面开始组建一个完整的算术逻辑单元。
任务说明:
输入:A,B
控制端:ZX,NX,ZY,NY:控制X和Y的运算是清零还是取反;
控制端F:是输出X与Y,还是输出X+Y;其中X和Y是前两个模块的运算结果,是个中间变量。
控制端NO:输出取反。
输出:Z
分析:
先搭建X和Y这两个中间变量。使用上一节的成果ALU mod。
然后分别对X和Y进行“与运算”和“加运算”,再使用F控制标志来选择输出与的结果还是加的结果:
最后,再对结果取反,并由NO标志决定是否使用取反后的值: