diff --git a/CPU9bits_tb_behav.wcfg b/CPU9bits_tb_behav.wcfg index 3a75952..5f2fe37 100644 --- a/CPU9bits_tb_behav.wcfg +++ b/CPU9bits_tb_behav.wcfg @@ -11,514 +11,847 @@ - - - + + + - + - - - CPU + + + Program Counter label - - reset - reset - - + clk clk - - result[8:0] - result[8:0] + + reset + reset - - done - done + + En + En - - instr[8:0] - instr[8:0] + + Din[8:0] + Din[8:0] + UNSIGNEDDECRADIX - - op1[8:0] - op1[8:0] + + Dout[8:0] + Dout[8:0] + UNSIGNEDDECRADIX - + + + Register File + label + + + clk + clk + + + reset + reset + + + 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] + SIGNEDDECRADIX + + op0[8:0] op0[8:0] + SIGNEDDECRADIX - - FUAddr[8:0] - FUAddr[8:0] + + op1[8:0] + op1[8:0] + SIGNEDDECRADIX - - FUJB[8:0] - FUJB[8:0] + + decOut[3:0] + decOut[3:0] - - PCout[8:0] - PCout[8:0] + + r0_out[8:0] + r0_out[8:0] + SIGNEDDECRADIX - - JBRes[8:0] - JBRes[8:0] + + r1_out[8:0] + r1_out[8:0] + SIGNEDDECRADIX - - FUJ[8:0] - FUJ[8:0] + + r2_out[8:0] + r2_out[8:0] + SIGNEDDECRADIX - - FUB[8:0] - FUB[8:0] - - - AddiOut[8:0] - AddiOut[8:0] - - - AluOut[8:0] - AluOut[8:0] - - - RFIn[8:0] - RFIn[8:0] - - - loadMux[8:0] - loadMux[8:0] - - - dataMemOut[8:0] - dataMemOut[8:0] - - - linkData[8:0] - linkData[8:0] - - - SE1N[8:0] - SE1N[8:0] - - - SE2N[8:0] - SE2N[8:0] - - - SE3N[8:0] - SE3N[8:0] - - - bankData[8:0] - bankData[8:0] - - - bankOP[8:0] - bankOP[8:0] - - - jumpNeg[8:0] - jumpNeg[8:0] - - - aluOp[3:0] - aluOp[3:0] - - - FU[2:0] - FU[2:0] - - - bankS[1:0] - bankS[1:0] - - - addiS - addiS - - - RegEn - RegEn - - - loadS - loadS - - - fetchBranch - fetchBranch - - - halt - halt - - - cout0 - cout0 - - - cout1 - cout1 - - - link - link - - - js - js - - - dataMemEn - dataMemEn + + r3_out[8:0] + r3_out[8:0] + SIGNEDDECRADIX - - 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 - - - + 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 + + + ALU label - + opcode[3:0] opcode[3:0] - + operand0[8:0] operand0[8:0] - + operand1[8:0] operand1[8:0] - + result[8:0] result[8:0] - + result_A[8:0] result_A[8:0] - + result_B[8:0] result_B[8:0] - + result_C[8:0] result_C[8:0] - + result_D[8:0] result_D[8:0] - + result_E[8:0] result_E[8:0] - + result_F[8:0] result_F[8:0] - + result_G[8:0] result_G[8:0] - + result_H[8:0] result_H[8:0] - + result_I[8:0] result_I[8:0] - + result_J[8:0] result_J[8:0] - + result_K[8:0] result_K[8:0] - + result_L[8:0] result_L[8:0] - + result_M[8:0] result_M[8:0] - + result_N[8:0] result_N[8:0] - + result_O[8:0] result_O[8:0] - + result_P[8:0] result_P[8:0] - + cout cout - - Registers - label - - clk - clk - - - reset - reset - - - enable - enable - - - 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] - - - r1_out[8:0] - r1_out[8:0] - - - r2_out[8:0] - r2_out[8:0] - - - r3_out[8:0] - r3_out[8:0] - - - - Banks - label - - clk - clk - - - reset - reset - - - enable - enable - - - 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] - - - r1_out[8:0] - r1_out[8:0] - - - r2_out[8:0] - r2_out[8:0] - - - r3_out[8:0] - r3_out[8:0] - - 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] - - readData[8:0] - readData[8:0] - - + Data Memory label - + + clk clk - + writeEnable writeEnable - + address[8:0] address[8:0] + UNSIGNEDDECRADIX - + writeData[8:0] writeData[8:0] + SIGNEDDECRADIX - + readData[8:0] readData[8:0] + SIGNEDDECRADIX - + memory[100:0][8:0] memory[100:0][8:0] + + SIGNEDDECRADIX + + [100][8:0] + [100][8:0] + SIGNEDDECRADIX + + + [99][8:0] + [99][8:0] + SIGNEDDECRADIX + + + [98][8:0] + [98][8:0] + SIGNEDDECRADIX + + + [97][8:0] + [97][8:0] + SIGNEDDECRADIX + + + [96][8:0] + [96][8:0] + SIGNEDDECRADIX + + + [95][8:0] + [95][8:0] + SIGNEDDECRADIX + + + [94][8:0] + [94][8:0] + SIGNEDDECRADIX + + + [93][8:0] + [93][8:0] + SIGNEDDECRADIX + + + [92][8:0] + [92][8:0] + SIGNEDDECRADIX + + + [91][8:0] + [91][8:0] + SIGNEDDECRADIX + + + [90][8:0] + [90][8:0] + SIGNEDDECRADIX + + + [89][8:0] + [89][8:0] + SIGNEDDECRADIX + + + [88][8:0] + [88][8:0] + SIGNEDDECRADIX + + + [87][8:0] + [87][8:0] + SIGNEDDECRADIX + + + [86][8:0] + [86][8:0] + SIGNEDDECRADIX + + + [85][8:0] + [85][8:0] + SIGNEDDECRADIX + + + [84][8:0] + [84][8:0] + SIGNEDDECRADIX + + + [83][8:0] + [83][8:0] + SIGNEDDECRADIX + + + [82][8:0] + [82][8:0] + SIGNEDDECRADIX + + + [81][8:0] + [81][8:0] + SIGNEDDECRADIX + + + [80][8:0] + [80][8:0] + SIGNEDDECRADIX + + + [79][8:0] + [79][8:0] + SIGNEDDECRADIX + + + [78][8:0] + [78][8:0] + SIGNEDDECRADIX + + + [77][8:0] + [77][8:0] + SIGNEDDECRADIX + + + [76][8:0] + [76][8:0] + SIGNEDDECRADIX + + + [75][8:0] + [75][8:0] + SIGNEDDECRADIX + + + [74][8:0] + [74][8:0] + SIGNEDDECRADIX + + + [73][8:0] + [73][8:0] + SIGNEDDECRADIX + + + [72][8:0] + [72][8:0] + SIGNEDDECRADIX + + + [71][8:0] + [71][8:0] + SIGNEDDECRADIX + + + [70][8:0] + [70][8:0] + SIGNEDDECRADIX + + + [69][8:0] + [69][8:0] + SIGNEDDECRADIX + + + [68][8:0] + [68][8:0] + SIGNEDDECRADIX + + + [67][8:0] + [67][8:0] + SIGNEDDECRADIX + + + [66][8:0] + [66][8:0] + SIGNEDDECRADIX + + + [65][8:0] + [65][8:0] + SIGNEDDECRADIX + + + [64][8:0] + [64][8:0] + SIGNEDDECRADIX + + + [63][8:0] + [63][8:0] + SIGNEDDECRADIX + + + [62][8:0] + [62][8:0] + SIGNEDDECRADIX + + + [61][8:0] + [61][8:0] + SIGNEDDECRADIX + + + [60][8:0] + [60][8:0] + SIGNEDDECRADIX + + + [59][8:0] + [59][8:0] + SIGNEDDECRADIX + + + [58][8:0] + [58][8:0] + SIGNEDDECRADIX + + + [57][8:0] + [57][8:0] + SIGNEDDECRADIX + + + [56][8:0] + [56][8:0] + SIGNEDDECRADIX + + + [55][8:0] + [55][8:0] + SIGNEDDECRADIX + + + [54][8:0] + [54][8:0] + SIGNEDDECRADIX + + + [53][8:0] + [53][8:0] + SIGNEDDECRADIX + + + [52][8:0] + [52][8:0] + SIGNEDDECRADIX + + + [51][8:0] + [51][8:0] + SIGNEDDECRADIX + + + [50][8:0] + [50][8:0] + SIGNEDDECRADIX + + + [49][8:0] + [49][8:0] + SIGNEDDECRADIX + + + [48][8:0] + [48][8:0] + SIGNEDDECRADIX + + + [47][8:0] + [47][8:0] + SIGNEDDECRADIX + + + [46][8:0] + [46][8:0] + SIGNEDDECRADIX + + + [45][8:0] + [45][8:0] + SIGNEDDECRADIX + + + [44][8:0] + [44][8:0] + SIGNEDDECRADIX + + + [43][8:0] + [43][8:0] + SIGNEDDECRADIX + + + [42][8:0] + [42][8:0] + SIGNEDDECRADIX + + + [41][8:0] + [41][8:0] + SIGNEDDECRADIX + + + [40][8:0] + [40][8:0] + SIGNEDDECRADIX + + + [39][8:0] + [39][8:0] + SIGNEDDECRADIX + + + [38][8:0] + [38][8:0] + SIGNEDDECRADIX + + + [37][8:0] + [37][8:0] + SIGNEDDECRADIX + + + [36][8:0] + [36][8:0] + SIGNEDDECRADIX + + + [35][8:0] + [35][8:0] + SIGNEDDECRADIX + + + [34][8:0] + [34][8:0] + SIGNEDDECRADIX + + + [33][8:0] + [33][8:0] + SIGNEDDECRADIX + + + [32][8:0] + [32][8:0] + SIGNEDDECRADIX + + + [31][8:0] + [31][8:0] + SIGNEDDECRADIX + + + [30][8:0] + [30][8:0] + SIGNEDDECRADIX + + + [29][8:0] + [29][8:0] + SIGNEDDECRADIX + + + [28][8:0] + [28][8:0] + SIGNEDDECRADIX + + + [27][8:0] + [27][8:0] + SIGNEDDECRADIX + + + [26][8:0] + [26][8:0] + SIGNEDDECRADIX + + + [25][8:0] + [25][8:0] + SIGNEDDECRADIX + + + [24][8:0] + [24][8:0] + SIGNEDDECRADIX + + + [23][8:0] + [23][8:0] + SIGNEDDECRADIX + + + [22][8:0] + [22][8:0] + SIGNEDDECRADIX + + + [21][8:0] + [21][8:0] + SIGNEDDECRADIX + + + [20][8:0] + [20][8:0] + SIGNEDDECRADIX + + + [19][8:0] + [19][8:0] + SIGNEDDECRADIX + + + [18][8:0] + [18][8:0] + SIGNEDDECRADIX + + + [17][8:0] + [17][8:0] + SIGNEDDECRADIX + + + [16][8:0] + [16][8:0] + SIGNEDDECRADIX + + + [15][8:0] + [15][8:0] + SIGNEDDECRADIX + + + [14][8:0] + [14][8:0] + SIGNEDDECRADIX + + + [13][8:0] + [13][8:0] + SIGNEDDECRADIX + + + [12][8:0] + [12][8:0] + SIGNEDDECRADIX + + + [11][8:0] + [11][8:0] + SIGNEDDECRADIX + + + [10][8:0] + [10][8:0] + SIGNEDDECRADIX + + + [9][8:0] + [9][8:0] + SIGNEDDECRADIX + + + [8][8:0] + [8][8:0] + SIGNEDDECRADIX + + + [7][8:0] + [7][8:0] + SIGNEDDECRADIX + + + [6][8:0] + [6][8:0] + SIGNEDDECRADIX + + + [5][8:0] + [5][8:0] + SIGNEDDECRADIX + + + [4][8:0] + [4][8:0] + SIGNEDDECRADIX + + + [3][8:0] + [3][8:0] + SIGNEDDECRADIX + + + [2][8:0] + [2][8:0] + SIGNEDDECRADIX + + + [1][8:0] + [1][8:0] + SIGNEDDECRADIX + + + [0][8:0] + [0][8:0] + SIGNEDDECRADIX +