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 op_idx op_idx AddrIn[8:0] AddrIn[8:0] UNSIGNEDDECRADIX AddrOut[8:0] AddrOut[8:0] UNSIGNEDDECRADIX 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 Registers label En En write_index[1:0] write_index[1:0] UNSIGNEDDECRADIX op0_idx[1:0] op0_idx[1:0] UNSIGNEDDECRADIX op1_idx[1:0] op1_idx[1:0] UNSIGNEDDECRADIX write_data[8:0] write_data[8:0] UNSIGNEDDECRADIX op0[8:0] op0[8:0] UNSIGNEDDECRADIX op1[8:0] op1[8:0] UNSIGNEDDECRADIX decOut[3:0] decOut[3:0] UNSIGNEDDECRADIX r0_out[8:0] r0_out[8:0] SIGNEDDECRADIX r1_out[8:0] r1_out[8:0] SIGNEDDECRADIX r2_out[8:0] r2_out[8:0] SIGNEDDECRADIX r3_out[8:0] r3_out[8:0] SIGNEDDECRADIX Banks label En En write_index[1:0] write_index[1:0] op0_idx[1:0] op0_idx[1:0] op1_idx[1:0] op1_idx[1:0] write_data[8:0] write_data[8:0] op0[8:0] op0[8:0] op1[8:0] op1[8:0] decOut[3:0] decOut[3:0] r0_out[8:0] r0_out[8:0] SIGNEDDECRADIX r1_out[8:0] r1_out[8:0] SIGNEDDECRADIX r2_out[8:0] r2_out[8:0] SIGNEDDECRADIX r3_out[8:0] r3_out[8:0] SIGNEDDECRADIX 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] Data Memory label clk clk writeEnable writeEnable address[8:0] address[8:0] UNSIGNEDDECRADIX writeData[8:0] writeData[8:0] readData[8:0] readData[8:0] memory[100:0][8:0] memory[100:0][8:0] Divider label Mux 3 label switch switch A[8:0] A[8:0] SIGNEDDECRADIX B[8:0] B[8:0] SIGNEDDECRADIX out[8:0] out[8:0] SIGNEDDECRADIX Mux 4 label switch switch A[8:0] A[8:0] SIGNEDDECRADIX B[8:0] B[8:0] SIGNEDDECRADIX out[8:0] out[8:0] SIGNEDDECRADIX Mux 5 label switch switch A[8:0] A[8:0] SIGNEDDECRADIX B[8:0] B[8:0] SIGNEDDECRADIX out[8:0] out[8:0] SIGNEDDECRADIX Mux 6 label switch switch A[8:0] A[8:0] SIGNEDDECRADIX B[8:0] B[8:0] SIGNEDDECRADIX out[8:0] out[8:0] SIGNEDDECRADIX