Computer Architecture Assignment
Design a basic Arithmetic/Logic Unit (ALU) that operates on two 2-bit binary numbers a and b and generates a third 2-bit number s.
The function of the ALU is determined by a 3-bit binary code f:
![1723_Figure.png](https://secure.tutorsglobe.com/CMSImages/1723_Figure.png)
aΘ is the least significant bit of a, a1 is the most significant bit. For operations which do not use the carry input, it should be ignored. For operations which do not generate a carry (the first two), the carry output should be zero. If a carry occurs as a result of an addition, or a borrow occurs as a result of a subtraction, then cout should be 1.
Starting with the file alu2017.lgf (available on stream) add your design and test it using the switches labelled: aΘ, a1, bΘ, b1, fΘ, f1, f2 and cin and the lights labelled sΘ, s1 and cout. Do NOT change or add anything inside the box in alu2016.lgf or use the "test" connection; if you do, you WILL lose marks. You may only use basic gates (AND, OR, NOT, XOR, NOR, NAND) with any number of inputs. You must use the connections from the alu2016.lgf file. To do this, use the 'to' or 'from' devices in the catalogue. These allow you to make connections without drawing wires, simply click to assign a name to a connection and it will be connected to all other 'to' or 'from' devices with the same name. Your connections must be called a0, a1, b0, b1, cin, f0, f1, f2, cout, s0 and s1 so that they will connect to the test circuit. Do not add any switches to your design, you must be able to test your design by changing the switches on the left inside the box. Make sure the blue bars at the bottom of the log screen are not red before you submit your assignment.