Scenario: You have been asked to design a new simple CPU for the purpose of controlling home appliances. The CPU will only be used for simple math calculations and will mainly be time sequencing and handling of I/O points for controlling the machines.

You have decided that a 16 bit machine is plenty of calculating power and that you will work with at least the following registers: AC = Accumulator, R = General purpose register.
You have also decided that the Instruction Set need not be very complicated since the code that will run on this CPU will be small in size and need not do complicated calculations. Therefore the ISA will be as follows: ADD = add the AC and R, SUB = subtract R from AC, AND = bit wise and of the AC and R, OR = bit wise or of the AC and R, JMP = absolute jump to a memory location, LDAC = load AC from memory address, STAC = store AC to memory address.

Work out the following, based upon the above scenario.

1. (5 points)Show the bit layout for the instructions in the instruction machine language as it would exist when an instruction is fetched. Include opcodes.
2. (15 points)Draw the state machine diagram for the CPU. Include state bit assignments and opcodes.
3. (8 points)Show the mapping logic from opcodes to the state machine so that the decoder can reach the correct state for each instruction to be executed. Include k-maps if needed.
4. (7 points)Specify the entire register set needed.
5. (7 points)Show the RTL for the CPU, list per instruction.
6. (8 points)Show a hardwired control unit for this CPU.
7. (7 points)You now want to compare the hardwired unit with a microcoded sequencer and control logic. Show the microcode table for the CPU in your choice of horizontal, vertical, or direct microcode.
8. (5 points)What instructions and registers would need to be added to handle subroutines?
9. (5 points)How would the state machine diagram change to be able to handle interrupts into the CPU? (Show a simple diagram of only changed states)

What is your question?