Program Counter label clk clk reset reset En En Din[8:0] Din[8:0] UNSIGNEDDECRADIX Dout[8:0] Dout[8:0] UNSIGNEDDECRADIX Fetch Unit label clk clk reset reset op_idx op_idx AddrIn[8:0] AddrIn[8:0] AddrOut[8:0] AddrOut[8:0] progC_out[8:0] progC_out[8:0] result_m[8:0] result_m[8:0] cout cout Control Unit label instIn[3:0] instIn[3:0] functBit functBit aluOut[3:0] aluOut[3:0] FU[2:0] FU[2:0] bank[1:0] bank[1:0] addi addi mem mem dataMemEn dataMemEn RegEn RegEn halt halt link link js js Divider label Instruction Memory label address[8:0] address[8:0] UNSIGNEDDECRADIX readData[8:0] readData[8:0] BINARYRADIX memory[100:0][8:0] memory[100:0][8:0] switch switch A[8:0] A[8:0] B[8:0] B[8:0] out[8:0] out[8:0] switch switch A A B B out out clk clk reset reset En En Din[50:0] Din[50:0] Dout[50:0] Dout[50:0]