diff --git a/PyITA/softmax.py b/PyITA/softmax.py index af55f0d..dae63b7 100644 --- a/PyITA/softmax.py +++ b/PyITA/softmax.py @@ -161,7 +161,7 @@ def streamingPartialSoftmax(x, mask, integerize = True): print(f"Shift without mask: {shift}") # Set shift value so high that 2**8 >> shift gets zero for all masked values - shift[mask_slice] = 16 + shift[mask_slice] = 32 print(f"Shift with mask: {shift}") # # matrix = np.squeeze(shift) # # import matplotlib.pyplot as plt @@ -194,8 +194,7 @@ def streamingPartialSoftmax(x, mask, integerize = True): else: exp_partial_sum_inverse = 1 / exp_partial_sum - # print(exp_partial_sum_inverse.shape) - # print(exp_partial_sum_inverse[0]) + print(f"Exp parital sum inverse: {exp_partial_sum_inverse}") # Find the difference between the maximum and x diff = np.repeat(global_max, seq_length).reshape(n_heads, seq_length, seq_length) - x.astype(np.int32) @@ -210,6 +209,9 @@ def streamingPartialSoftmax(x, mask, integerize = True): shift = np.floor(diff * eps_max + 0.5 + np.finfo(np.float32).eps).astype(np.int32) else: shift = diff * eps_max + + print(f"shift value before return shape: {shift.shape}") + print(f"shift value before return: {shift}") # Calculate the activation value if integerize: diff --git a/modelsim/sim_ita_tb_wave.tcl b/modelsim/sim_ita_tb_wave.tcl index 716f8bd..a9f160c 100644 --- a/modelsim/sim_ita_tb_wave.tcl +++ b/modelsim/sim_ita_tb_wave.tcl @@ -16,9 +16,6 @@ add wave -noupdate /ita_tb/dut/inp1_q add wave -noupdate /ita_tb/dut/inp2_q add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/count_d add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/bias_count -add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/mask_count_q1 -add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/mask_count_q2 -add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/mask_count_q3 add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/i_softmax_top/i_softmax/max_o add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/i_softmax_top/i_softmax/exp_sum_d add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/i_softmax_top/i_softmax/exp_sum_q @@ -27,8 +24,6 @@ add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radi add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radix unsigned /ita_tb/dut/i_controller/mask_tile_x_pos_q add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radix unsigned /ita_tb/dut/i_controller/mask_tile_y_pos_d add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radix unsigned /ita_tb/dut/i_controller/mask_tile_y_pos_q -add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radix unsigned /ita_tb/dut/i_controller/mask_tile_x_q3 -add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radix unsigned /ita_tb/dut/i_controller/mask_tile_y_q3 add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radix unsigned /ita_tb/dut/i_controller/first_outer_dim add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/i_inp2_mux/clk_i add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/last_inner_tile_q6 @@ -41,8 +36,6 @@ add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/calc_en_q5 add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/calc_en_q6 add wave -noupdate -expand -group {Masking Signals} -expand -group {In Softmax Module} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_d add wave -noupdate -expand -group {Masking Signals} -expand -group {In Softmax Module} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_q1 -add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/count_q -add wave -noupdate -expand -group {Masking Signals} -radix binary /ita_tb/dut/i_controller/mask_d add wave -noupdate -expand -group {Masking Signals} -radix binary /ita_tb/dut/mask add wave -noupdate -expand -group {Masking Signals} -radix binary /ita_tb/dut/mask_q1 add wave -noupdate -expand -group {Masking Signals} -radix binary /ita_tb/dut/mask_q2 @@ -59,8 +52,19 @@ add wave -noupdate -expand -group {Masking Signals} -radix decimal /ita_tb/dut/i add wave -noupdate -expand -group {Masking Signals} -radix decimal -childformat {{{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[15]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[14]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[13]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[12]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[11]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[10]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[9]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[8]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[7]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[6]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[5]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[4]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[3]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[2]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[1]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[0]} -radix decimal}} -subitemconfig {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[15]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[14]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[13]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[12]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[11]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[10]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[9]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[8]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[7]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[6]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[5]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[4]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[3]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[2]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[1]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[0]} {-height 16 -radix decimal}} /ita_tb/dut/i_softmax_top/i_softmax/shift_diff add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/i_softmax_top/i_softmax/disable_shift add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/i_controller/step_q +add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/count_q +add wave -noupdate -expand -group {Masking Signals} -radix binary /ita_tb/dut/i_controller/mask_d +add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/mask_pos_d add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/mask_pos_q add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/mask_col_offset_q +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/mask_tile_x_pos_d +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/mask_tile_x_pos_q +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/mask_tile_y_pos_d +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/mask_tile_y_pos_q +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/tile_x_d +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/tile_x_q +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/tile_y_d +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/tile_y_q add wave -noupdate /ita_tb/dut/calc_en_q5 add wave -noupdate /ita_tb/dut/calc_en_q6 add wave -noupdate /ita_tb/dut/calc_en_q7 @@ -106,10 +110,16 @@ add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/calc_stream_soft_en_i add wave -noupdate -radix hexadecimal /ita_tb/dut/i_softmax_top/i_softmax/calc_stream_soft_en_q add wave -noupdate /ita_tb/dut/i_requantizer/clk_i add wave -noupdate -radix unsigned /ita_tb/dut/i_softmax_top/i_softmax/count_soft_mask_q +add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_x_d +add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_x_q +add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_y_d +add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_y_q +add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_d +add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_q add wave -noupdate -radix binary /ita_tb/dut/i_softmax_top/i_softmax/disable_col add wave -noupdate /ita_tb/dut/i_activation/data_q3 add wave -noupdate -radix decimal /ita_tb/dut/inp_i -add wave -noupdate -expand -group {All in one Phase} -radix decimal -childformat {{{/ita_tb/dut/inp[63]} -radix decimal} {{/ita_tb/dut/inp[62]} -radix decimal} {{/ita_tb/dut/inp[61]} -radix decimal} {{/ita_tb/dut/inp[60]} -radix decimal} {{/ita_tb/dut/inp[59]} -radix decimal} {{/ita_tb/dut/inp[58]} -radix decimal} {{/ita_tb/dut/inp[57]} -radix decimal} {{/ita_tb/dut/inp[56]} -radix decimal} {{/ita_tb/dut/inp[55]} -radix decimal} {{/ita_tb/dut/inp[54]} -radix decimal} {{/ita_tb/dut/inp[53]} -radix decimal} {{/ita_tb/dut/inp[52]} -radix decimal} {{/ita_tb/dut/inp[51]} -radix decimal} {{/ita_tb/dut/inp[50]} -radix decimal} {{/ita_tb/dut/inp[49]} -radix decimal} {{/ita_tb/dut/inp[48]} -radix decimal} {{/ita_tb/dut/inp[47]} -radix decimal} {{/ita_tb/dut/inp[46]} -radix decimal} {{/ita_tb/dut/inp[45]} -radix decimal} {{/ita_tb/dut/inp[44]} -radix decimal} {{/ita_tb/dut/inp[43]} -radix decimal} {{/ita_tb/dut/inp[42]} -radix decimal} {{/ita_tb/dut/inp[41]} -radix decimal} {{/ita_tb/dut/inp[40]} -radix decimal} {{/ita_tb/dut/inp[39]} -radix decimal} {{/ita_tb/dut/inp[38]} -radix decimal} {{/ita_tb/dut/inp[37]} -radix decimal} {{/ita_tb/dut/inp[36]} -radix decimal} {{/ita_tb/dut/inp[35]} -radix decimal} {{/ita_tb/dut/inp[34]} -radix decimal} {{/ita_tb/dut/inp[33]} -radix decimal} {{/ita_tb/dut/inp[32]} -radix decimal} {{/ita_tb/dut/inp[31]} -radix decimal} {{/ita_tb/dut/inp[30]} -radix decimal} {{/ita_tb/dut/inp[29]} -radix decimal} {{/ita_tb/dut/inp[28]} -radix decimal} {{/ita_tb/dut/inp[27]} -radix decimal} {{/ita_tb/dut/inp[26]} -radix decimal} {{/ita_tb/dut/inp[25]} -radix decimal} {{/ita_tb/dut/inp[24]} -radix decimal} {{/ita_tb/dut/inp[23]} -radix decimal} {{/ita_tb/dut/inp[22]} -radix decimal} {{/ita_tb/dut/inp[21]} -radix decimal} {{/ita_tb/dut/inp[20]} -radix decimal} {{/ita_tb/dut/inp[19]} -radix decimal} {{/ita_tb/dut/inp[18]} -radix decimal} {{/ita_tb/dut/inp[17]} -radix decimal} {{/ita_tb/dut/inp[16]} -radix decimal} {{/ita_tb/dut/inp[15]} -radix decimal} {{/ita_tb/dut/inp[14]} -radix decimal} {{/ita_tb/dut/inp[13]} -radix decimal} {{/ita_tb/dut/inp[12]} -radix decimal} {{/ita_tb/dut/inp[11]} -radix decimal} {{/ita_tb/dut/inp[10]} -radix decimal} {{/ita_tb/dut/inp[9]} -radix decimal} {{/ita_tb/dut/inp[8]} -radix decimal} {{/ita_tb/dut/inp[7]} -radix decimal} {{/ita_tb/dut/inp[6]} -radix decimal} {{/ita_tb/dut/inp[5]} -radix decimal} {{/ita_tb/dut/inp[4]} -radix decimal} {{/ita_tb/dut/inp[3]} -radix decimal} {{/ita_tb/dut/inp[2]} -radix decimal} {{/ita_tb/dut/inp[1]} -radix decimal} {{/ita_tb/dut/inp[0]} -radix decimal}} -subitemconfig {{/ita_tb/dut/inp[63]} {-radix decimal} {/ita_tb/dut/inp[62]} {-radix decimal} {/ita_tb/dut/inp[61]} {-radix decimal} {/ita_tb/dut/inp[60]} {-radix decimal} {/ita_tb/dut/inp[59]} {-radix decimal} {/ita_tb/dut/inp[58]} {-radix decimal} {/ita_tb/dut/inp[57]} {-radix decimal} {/ita_tb/dut/inp[56]} {-radix decimal} {/ita_tb/dut/inp[55]} {-radix decimal} {/ita_tb/dut/inp[54]} {-radix decimal} {/ita_tb/dut/inp[53]} {-radix decimal} {/ita_tb/dut/inp[52]} {-radix decimal} {/ita_tb/dut/inp[51]} {-radix decimal} {/ita_tb/dut/inp[50]} {-radix decimal} {/ita_tb/dut/inp[49]} {-radix decimal} {/ita_tb/dut/inp[48]} {-radix decimal} {/ita_tb/dut/inp[47]} {-radix decimal} {/ita_tb/dut/inp[46]} {-radix decimal} {/ita_tb/dut/inp[45]} {-radix decimal} {/ita_tb/dut/inp[44]} {-radix decimal} {/ita_tb/dut/inp[43]} {-radix decimal} {/ita_tb/dut/inp[42]} {-radix decimal} {/ita_tb/dut/inp[41]} {-radix decimal} {/ita_tb/dut/inp[40]} {-radix decimal} {/ita_tb/dut/inp[39]} {-radix decimal} {/ita_tb/dut/inp[38]} {-radix decimal} {/ita_tb/dut/inp[37]} {-radix decimal} {/ita_tb/dut/inp[36]} {-radix decimal} {/ita_tb/dut/inp[35]} {-radix decimal} {/ita_tb/dut/inp[34]} {-radix decimal} {/ita_tb/dut/inp[33]} {-radix decimal} {/ita_tb/dut/inp[32]} {-radix decimal} {/ita_tb/dut/inp[31]} {-radix decimal} {/ita_tb/dut/inp[30]} {-radix decimal} {/ita_tb/dut/inp[29]} {-radix decimal} {/ita_tb/dut/inp[28]} {-radix decimal} {/ita_tb/dut/inp[27]} {-radix decimal} {/ita_tb/dut/inp[26]} {-radix decimal} {/ita_tb/dut/inp[25]} {-radix decimal} {/ita_tb/dut/inp[24]} {-radix decimal} {/ita_tb/dut/inp[23]} {-radix decimal} {/ita_tb/dut/inp[22]} {-radix decimal} {/ita_tb/dut/inp[21]} {-radix decimal} {/ita_tb/dut/inp[20]} {-radix decimal} {/ita_tb/dut/inp[19]} {-radix decimal} {/ita_tb/dut/inp[18]} {-radix decimal} {/ita_tb/dut/inp[17]} {-radix decimal} {/ita_tb/dut/inp[16]} {-radix decimal} {/ita_tb/dut/inp[15]} {-radix decimal} {/ita_tb/dut/inp[14]} {-radix decimal} {/ita_tb/dut/inp[13]} {-radix decimal} {/ita_tb/dut/inp[12]} {-radix decimal} {/ita_tb/dut/inp[11]} {-radix decimal} {/ita_tb/dut/inp[10]} {-radix decimal} {/ita_tb/dut/inp[9]} {-radix decimal} {/ita_tb/dut/inp[8]} {-radix decimal} {/ita_tb/dut/inp[7]} {-radix decimal} {/ita_tb/dut/inp[6]} {-radix decimal} {/ita_tb/dut/inp[5]} {-radix decimal} {/ita_tb/dut/inp[4]} {-radix decimal} {/ita_tb/dut/inp[3]} {-radix decimal} {/ita_tb/dut/inp[2]} {-radix decimal} {/ita_tb/dut/inp[1]} {-radix decimal} {/ita_tb/dut/inp[0]} {-radix decimal}} /ita_tb/dut/inp +add wave -noupdate -expand -group {All in one Phase} -radix decimal -childformat {{{/ita_tb/dut/inp[63]} -radix decimal} {{/ita_tb/dut/inp[62]} -radix decimal} {{/ita_tb/dut/inp[61]} -radix decimal} {{/ita_tb/dut/inp[60]} -radix decimal} {{/ita_tb/dut/inp[59]} -radix decimal} {{/ita_tb/dut/inp[58]} -radix decimal} {{/ita_tb/dut/inp[57]} -radix decimal} {{/ita_tb/dut/inp[56]} -radix decimal} {{/ita_tb/dut/inp[55]} -radix decimal} {{/ita_tb/dut/inp[54]} -radix decimal} {{/ita_tb/dut/inp[53]} -radix decimal} {{/ita_tb/dut/inp[52]} -radix decimal} {{/ita_tb/dut/inp[51]} -radix decimal} {{/ita_tb/dut/inp[50]} -radix decimal} {{/ita_tb/dut/inp[49]} -radix decimal} {{/ita_tb/dut/inp[48]} -radix decimal} {{/ita_tb/dut/inp[47]} -radix decimal} {{/ita_tb/dut/inp[46]} -radix decimal} {{/ita_tb/dut/inp[45]} -radix decimal} {{/ita_tb/dut/inp[44]} -radix decimal} {{/ita_tb/dut/inp[43]} -radix decimal} {{/ita_tb/dut/inp[42]} -radix decimal} {{/ita_tb/dut/inp[41]} -radix decimal} {{/ita_tb/dut/inp[40]} -radix decimal} {{/ita_tb/dut/inp[39]} -radix decimal} {{/ita_tb/dut/inp[38]} -radix decimal} {{/ita_tb/dut/inp[37]} -radix decimal} {{/ita_tb/dut/inp[36]} -radix decimal} {{/ita_tb/dut/inp[35]} -radix decimal} {{/ita_tb/dut/inp[34]} -radix decimal} {{/ita_tb/dut/inp[33]} -radix decimal} {{/ita_tb/dut/inp[32]} -radix decimal} {{/ita_tb/dut/inp[31]} -radix decimal} {{/ita_tb/dut/inp[30]} -radix decimal} {{/ita_tb/dut/inp[29]} -radix decimal} {{/ita_tb/dut/inp[28]} -radix decimal} {{/ita_tb/dut/inp[27]} -radix decimal} {{/ita_tb/dut/inp[26]} -radix decimal} {{/ita_tb/dut/inp[25]} -radix decimal} {{/ita_tb/dut/inp[24]} -radix decimal} {{/ita_tb/dut/inp[23]} -radix decimal} {{/ita_tb/dut/inp[22]} -radix decimal} {{/ita_tb/dut/inp[21]} -radix decimal} {{/ita_tb/dut/inp[20]} -radix decimal} {{/ita_tb/dut/inp[19]} -radix decimal} {{/ita_tb/dut/inp[18]} -radix decimal} {{/ita_tb/dut/inp[17]} -radix decimal} {{/ita_tb/dut/inp[16]} -radix decimal} {{/ita_tb/dut/inp[15]} -radix decimal} {{/ita_tb/dut/inp[14]} -radix decimal} {{/ita_tb/dut/inp[13]} -radix decimal} {{/ita_tb/dut/inp[12]} -radix decimal} {{/ita_tb/dut/inp[11]} -radix decimal} {{/ita_tb/dut/inp[10]} -radix decimal} {{/ita_tb/dut/inp[9]} -radix decimal} {{/ita_tb/dut/inp[8]} -radix decimal} {{/ita_tb/dut/inp[7]} -radix decimal} {{/ita_tb/dut/inp[6]} -radix decimal} {{/ita_tb/dut/inp[5]} -radix decimal} {{/ita_tb/dut/inp[4]} -radix decimal} {{/ita_tb/dut/inp[3]} -radix decimal} {{/ita_tb/dut/inp[2]} -radix decimal} {{/ita_tb/dut/inp[1]} -radix decimal} {{/ita_tb/dut/inp[0]} -radix decimal}} -subitemconfig {{/ita_tb/dut/inp[63]} {-height 16 -radix decimal} {/ita_tb/dut/inp[62]} {-height 16 -radix decimal} {/ita_tb/dut/inp[61]} {-height 16 -radix decimal} {/ita_tb/dut/inp[60]} {-height 16 -radix decimal} {/ita_tb/dut/inp[59]} {-height 16 -radix decimal} {/ita_tb/dut/inp[58]} {-height 16 -radix decimal} {/ita_tb/dut/inp[57]} {-height 16 -radix decimal} {/ita_tb/dut/inp[56]} {-height 16 -radix decimal} {/ita_tb/dut/inp[55]} {-height 16 -radix decimal} {/ita_tb/dut/inp[54]} {-height 16 -radix decimal} {/ita_tb/dut/inp[53]} {-height 16 -radix decimal} {/ita_tb/dut/inp[52]} {-height 16 -radix decimal} {/ita_tb/dut/inp[51]} {-height 16 -radix decimal} {/ita_tb/dut/inp[50]} {-height 16 -radix decimal} {/ita_tb/dut/inp[49]} {-height 16 -radix decimal} {/ita_tb/dut/inp[48]} {-height 16 -radix decimal} {/ita_tb/dut/inp[47]} {-height 16 -radix decimal} {/ita_tb/dut/inp[46]} {-height 16 -radix decimal} {/ita_tb/dut/inp[45]} {-height 16 -radix decimal} {/ita_tb/dut/inp[44]} {-height 16 -radix decimal} {/ita_tb/dut/inp[43]} {-height 16 -radix decimal} {/ita_tb/dut/inp[42]} {-height 16 -radix decimal} {/ita_tb/dut/inp[41]} {-height 16 -radix decimal} {/ita_tb/dut/inp[40]} {-height 16 -radix decimal} {/ita_tb/dut/inp[39]} {-height 16 -radix decimal} {/ita_tb/dut/inp[38]} {-height 16 -radix decimal} {/ita_tb/dut/inp[37]} {-height 16 -radix decimal} {/ita_tb/dut/inp[36]} {-height 16 -radix decimal} {/ita_tb/dut/inp[35]} {-height 16 -radix decimal} {/ita_tb/dut/inp[34]} {-height 16 -radix decimal} {/ita_tb/dut/inp[33]} {-height 16 -radix decimal} {/ita_tb/dut/inp[32]} {-height 16 -radix decimal} {/ita_tb/dut/inp[31]} {-height 16 -radix decimal} {/ita_tb/dut/inp[30]} {-height 16 -radix decimal} {/ita_tb/dut/inp[29]} {-height 16 -radix decimal} {/ita_tb/dut/inp[28]} {-height 16 -radix decimal} {/ita_tb/dut/inp[27]} {-height 16 -radix decimal} {/ita_tb/dut/inp[26]} {-height 16 -radix decimal} {/ita_tb/dut/inp[25]} {-height 16 -radix decimal} {/ita_tb/dut/inp[24]} {-height 16 -radix decimal} {/ita_tb/dut/inp[23]} {-height 16 -radix decimal} {/ita_tb/dut/inp[22]} {-height 16 -radix decimal} {/ita_tb/dut/inp[21]} {-height 16 -radix decimal} {/ita_tb/dut/inp[20]} {-height 16 -radix decimal} {/ita_tb/dut/inp[19]} {-height 16 -radix decimal} {/ita_tb/dut/inp[18]} {-height 16 -radix decimal} {/ita_tb/dut/inp[17]} {-height 16 -radix decimal} {/ita_tb/dut/inp[16]} {-height 16 -radix decimal} {/ita_tb/dut/inp[15]} {-height 16 -radix decimal} {/ita_tb/dut/inp[14]} {-height 16 -radix decimal} {/ita_tb/dut/inp[13]} {-height 16 -radix decimal} {/ita_tb/dut/inp[12]} {-height 16 -radix decimal} {/ita_tb/dut/inp[11]} {-height 16 -radix decimal} {/ita_tb/dut/inp[10]} {-height 16 -radix decimal} {/ita_tb/dut/inp[9]} {-height 16 -radix decimal} {/ita_tb/dut/inp[8]} {-height 16 -radix decimal} {/ita_tb/dut/inp[7]} {-height 16 -radix decimal} {/ita_tb/dut/inp[6]} {-height 16 -radix decimal} {/ita_tb/dut/inp[5]} {-height 16 -radix decimal} {/ita_tb/dut/inp[4]} {-height 16 -radix decimal} {/ita_tb/dut/inp[3]} {-height 16 -radix decimal} {/ita_tb/dut/inp[2]} {-height 16 -radix decimal} {/ita_tb/dut/inp[1]} {-height 16 -radix decimal} {/ita_tb/dut/inp[0]} {-height 16 -radix decimal}} /ita_tb/dut/inp add wave -noupdate -expand -group {All in one Phase} -radix unsigned /ita_tb/dut/i_softmax_top/i_softmax/inp_stream_soft_o add wave -noupdate -expand -group {All in one Phase} -radix decimal /ita_tb/dut/inp1 add wave -noupdate -expand -group {All in one Phase} -radix unsigned /ita_tb/dut/inp1_q @@ -125,6 +135,439 @@ add wave -noupdate /ita_tb/dut/i_activation/data_o add wave -noupdate /ita_tb/dut/i_fifo/data_i add wave -noupdate /ita_tb/dut/i_fifo/data_o add wave -noupdate /ita_tb/dut/oup_o +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/clk_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/rst_ni +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/mode_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/eps_mult_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/right_shift_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/calc_en_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/calc_en_q_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/result_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/requant_oup_o +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/mult_signed +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/product +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/shifted_added +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/shifted_d +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/shifted_q +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q1 +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q2 +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q3 +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q4 +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/requant_oup_d +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/requant_oup_q +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/clk_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/rst_ni +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/mode_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/eps_mult_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/right_shift_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/calc_en_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/calc_en_q_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/result_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/requant_oup_o +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/mult_signed +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/product +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/shifted_added +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/shifted_d +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/shifted_q +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q1 +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q2 +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q3 +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q4 +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/requant_oup_d +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/requant_oup_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/clk_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/rst_ni +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ctrl_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_valid_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_ready_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/weight_valid_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/weight_ready_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_valid_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_ready_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/oup_valid_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/oup_ready_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/pop_softmax_fifo_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/step_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/soft_addr_div_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_done_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/calc_en_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/first_inner_tile_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/last_inner_tile_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_x_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_y_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/requant_add_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/requant_add_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_bias_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_bias_pad_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/busy_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/calc_en_q1_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/step_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/step_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/count_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/count_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_count +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_pos_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_pos_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_col_offset_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_col_offset_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_x_pos_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_x_pos_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_y_pos_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_y_pos_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_x_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_x_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_x_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_x_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_y_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_y_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_y_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_y_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_tile_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_tile_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_soft_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_soft_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_bias +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_bias_padded +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/last_time +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_dim +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/first_outer_dim +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/second_outer_dim +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/first_outer_dim_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/first_outer_dim_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/second_outer_dim_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/second_outer_dim_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_fifo +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_div +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_div_done_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_div_done_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/busy_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/busy_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/requant_add_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/requant_add_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/clk_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/rst_ni +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ctrl_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_valid_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_ready_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/weight_valid_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/weight_ready_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_valid_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_ready_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/oup_valid_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/oup_ready_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/pop_softmax_fifo_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/step_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/soft_addr_div_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_done_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/calc_en_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/first_inner_tile_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/last_inner_tile_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_x_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_y_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/requant_add_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/requant_add_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_bias_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_bias_pad_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/busy_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/calc_en_q1_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/step_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/step_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/count_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/count_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_count +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_pos_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_pos_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_col_offset_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_col_offset_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_x_pos_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_x_pos_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_y_pos_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_y_pos_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_x_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_x_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_x_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_x_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_y_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_y_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_y_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_y_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_tile_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_tile_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_soft_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_soft_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_bias +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_bias_padded +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/last_time +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_dim +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/first_outer_dim +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/second_outer_dim +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/first_outer_dim_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/first_outer_dim_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/second_outer_dim_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/second_outer_dim_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_fifo +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_div +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_div_done_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_div_done_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/busy_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/busy_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/requant_add_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/requant_add_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/clk_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/rst_ni +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/ctrl_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/step_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/requant_oup_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_stream_soft_en_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/soft_addr_div_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/softmax_done_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/pop_softmax_fifo_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/inp_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/inp_stream_soft_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_inp_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_valid_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_ready_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_valid_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_ready_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_oup_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_acc_en_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_acc_addr_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_acc_data_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_acc_en_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_acc_addr_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_acc_data_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/prev_max_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_max_en_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_max_addr_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_max_data_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_max_en_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_max_addr_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_max_data_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_x_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_y_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/inner_tile_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_q1 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_q2 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_q3 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_q4 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_q1 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_q2 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_q3 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_q4 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/inner_tile_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_y_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/exp_sum_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/exp_sum_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_soft_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_soft_q1 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_soft_q2 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_soft_mask_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_div_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_div_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/addr_div_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/addr_div_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_read_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_read_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_write_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_write_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/requant_oup_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_diff +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_sum_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_sum_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_diff +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_inp +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_inp_diff +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_stream_soft_en_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_q1 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_q2 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_q3 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/fifo_full +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/fifo_empty +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/push_to_fifo +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/pop_from_fifo +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/data_to_fifo +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/data_from_fifo +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/fifo_usage +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/disable_shift +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/disable_row +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/disable_col +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/clk_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/rst_ni +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/ctrl_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/step_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/requant_oup_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_stream_soft_en_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/soft_addr_div_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/softmax_done_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/pop_softmax_fifo_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/inp_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/inp_stream_soft_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_inp_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_valid_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_ready_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_valid_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_ready_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_oup_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_acc_en_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_acc_addr_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_acc_data_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_acc_en_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_acc_addr_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_acc_data_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/prev_max_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_max_en_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_max_addr_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_max_data_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_max_en_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_max_addr_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_max_data_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_x_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_y_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/inner_tile_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_q1 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_q2 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_q3 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_q4 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_q1 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_q2 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_q3 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_q4 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/inner_tile_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_x_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_y_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_x_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_x_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_y_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_y_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/exp_sum_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/exp_sum_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_soft_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_soft_q1 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_soft_q2 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_soft_mask_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_div_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_div_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/addr_div_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/addr_div_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_read_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_read_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_write_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_write_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/requant_oup_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_diff +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_sum_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_sum_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_diff +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_inp +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_inp_diff +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_stream_soft_en_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_q1 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_q2 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_q3 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/fifo_full +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/fifo_empty +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/push_to_fifo +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/pop_from_fifo +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/data_to_fifo +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/data_from_fifo +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/fifo_usage +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/disable_shift +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/disable_row +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/disable_col +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/clk_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/rst_ni +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/calc_en_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/calc_en_q_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/first_tile_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/first_tile_q_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/last_tile_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/last_tile_q_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/oup_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/inp_bias_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/result_o +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_en +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_addr +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_data +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_data_unused +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_en +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_addr +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_data +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_addr_d +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_addr_q +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_addr_d +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_addr_q +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/result_d +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/result_q +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/clk_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/rst_ni +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/calc_en_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/calc_en_q_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/first_tile_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/first_tile_q_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/last_tile_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/last_tile_q_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/oup_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/inp_bias_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/result_o +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_en +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_addr +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_data +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_data_unused +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_en +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_addr +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_data +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_addr_d +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_addr_q +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_addr_d +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_addr_q +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/result_d +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/result_q add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/* add wave -expand -group Controller /ita_tb/dut/i_controller/* add wave -group {Softmax Controller} ita_tb/dut/i_softmax_top/i_softmax/* diff --git a/modelsim/sim_ita_tb_wave_important.tcl b/modelsim/sim_ita_tb_wave_important.tcl index 7633c3d..0d78b45 100644 --- a/modelsim/sim_ita_tb_wave_important.tcl +++ b/modelsim/sim_ita_tb_wave_important.tcl @@ -14,9 +14,6 @@ add wave -noupdate /ita_tb/dut/inp1_q add wave -noupdate /ita_tb/dut/inp2_q add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/count_d add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/bias_count -add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/mask_count_q1 -add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/mask_count_q2 -add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/mask_count_q3 add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/i_softmax_top/i_softmax/max_o add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/i_softmax_top/i_softmax/exp_sum_d add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/i_softmax_top/i_softmax/exp_sum_q @@ -25,8 +22,6 @@ add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radi add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radix unsigned /ita_tb/dut/i_controller/mask_tile_x_pos_q add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radix unsigned /ita_tb/dut/i_controller/mask_tile_y_pos_d add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radix unsigned /ita_tb/dut/i_controller/mask_tile_y_pos_q -add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radix unsigned /ita_tb/dut/i_controller/mask_tile_x_q3 -add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radix unsigned /ita_tb/dut/i_controller/mask_tile_y_q3 add wave -noupdate -expand -group {Masking Signals} -group {Mask Tile Pos} -radix unsigned /ita_tb/dut/i_controller/first_outer_dim add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/i_inp2_mux/clk_i add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/last_inner_tile_q6 @@ -39,8 +34,6 @@ add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/calc_en_q5 add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/calc_en_q6 add wave -noupdate -expand -group {Masking Signals} -expand -group {In Softmax Module} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_d add wave -noupdate -expand -group {Masking Signals} -expand -group {In Softmax Module} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_q1 -add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/count_q -add wave -noupdate -expand -group {Masking Signals} -radix binary /ita_tb/dut/i_controller/mask_d add wave -noupdate -expand -group {Masking Signals} -radix binary /ita_tb/dut/mask add wave -noupdate -expand -group {Masking Signals} -radix binary /ita_tb/dut/mask_q1 add wave -noupdate -expand -group {Masking Signals} -radix binary /ita_tb/dut/mask_q2 @@ -57,8 +50,19 @@ add wave -noupdate -expand -group {Masking Signals} -radix decimal /ita_tb/dut/i add wave -noupdate -expand -group {Masking Signals} -radix decimal -childformat {{{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[15]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[14]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[13]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[12]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[11]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[10]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[9]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[8]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[7]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[6]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[5]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[4]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[3]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[2]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[1]} -radix decimal} {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[0]} -radix decimal}} -subitemconfig {{/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[15]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[14]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[13]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[12]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[11]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[10]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[9]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[8]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[7]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[6]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[5]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[4]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[3]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[2]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[1]} {-height 16 -radix decimal} {/ita_tb/dut/i_softmax_top/i_softmax/shift_diff[0]} {-height 16 -radix decimal}} /ita_tb/dut/i_softmax_top/i_softmax/shift_diff add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/i_softmax_top/i_softmax/disable_shift add wave -noupdate -expand -group {Masking Signals} /ita_tb/dut/i_controller/step_q +add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/count_q +add wave -noupdate -expand -group {Masking Signals} -radix binary /ita_tb/dut/i_controller/mask_d +add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/mask_pos_d add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/mask_pos_q add wave -noupdate -expand -group {Masking Signals} -radix unsigned /ita_tb/dut/i_controller/mask_col_offset_q +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/mask_tile_x_pos_d +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/mask_tile_x_pos_q +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/mask_tile_y_pos_d +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/mask_tile_y_pos_q +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/tile_x_d +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/tile_x_q +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/tile_y_d +add wave -noupdate -radix unsigned /ita_tb/dut/i_controller/tile_y_q add wave -noupdate /ita_tb/dut/calc_en_q5 add wave -noupdate /ita_tb/dut/calc_en_q6 add wave -noupdate /ita_tb/dut/calc_en_q7 @@ -104,10 +108,16 @@ add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/calc_stream_soft_en_i add wave -noupdate -radix hexadecimal /ita_tb/dut/i_softmax_top/i_softmax/calc_stream_soft_en_q add wave -noupdate /ita_tb/dut/i_requantizer/clk_i add wave -noupdate -radix unsigned /ita_tb/dut/i_softmax_top/i_softmax/count_soft_mask_q +add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_x_d +add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_x_q +add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_y_d +add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_y_q +add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_d +add wave -noupdate /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_q add wave -noupdate -radix binary /ita_tb/dut/i_softmax_top/i_softmax/disable_col add wave -noupdate /ita_tb/dut/i_activation/data_q3 add wave -noupdate -radix decimal /ita_tb/dut/inp_i -add wave -noupdate -expand -group {All in one Phase} -radix decimal -childformat {{{/ita_tb/dut/inp[63]} -radix decimal} {{/ita_tb/dut/inp[62]} -radix decimal} {{/ita_tb/dut/inp[61]} -radix decimal} {{/ita_tb/dut/inp[60]} -radix decimal} {{/ita_tb/dut/inp[59]} -radix decimal} {{/ita_tb/dut/inp[58]} -radix decimal} {{/ita_tb/dut/inp[57]} -radix decimal} {{/ita_tb/dut/inp[56]} -radix decimal} {{/ita_tb/dut/inp[55]} -radix decimal} {{/ita_tb/dut/inp[54]} -radix decimal} {{/ita_tb/dut/inp[53]} -radix decimal} {{/ita_tb/dut/inp[52]} -radix decimal} {{/ita_tb/dut/inp[51]} -radix decimal} {{/ita_tb/dut/inp[50]} -radix decimal} {{/ita_tb/dut/inp[49]} -radix decimal} {{/ita_tb/dut/inp[48]} -radix decimal} {{/ita_tb/dut/inp[47]} -radix decimal} {{/ita_tb/dut/inp[46]} -radix decimal} {{/ita_tb/dut/inp[45]} -radix decimal} {{/ita_tb/dut/inp[44]} -radix decimal} {{/ita_tb/dut/inp[43]} -radix decimal} {{/ita_tb/dut/inp[42]} -radix decimal} {{/ita_tb/dut/inp[41]} -radix decimal} {{/ita_tb/dut/inp[40]} -radix decimal} {{/ita_tb/dut/inp[39]} -radix decimal} {{/ita_tb/dut/inp[38]} -radix decimal} {{/ita_tb/dut/inp[37]} -radix decimal} {{/ita_tb/dut/inp[36]} -radix decimal} {{/ita_tb/dut/inp[35]} -radix decimal} {{/ita_tb/dut/inp[34]} -radix decimal} {{/ita_tb/dut/inp[33]} -radix decimal} {{/ita_tb/dut/inp[32]} -radix decimal} {{/ita_tb/dut/inp[31]} -radix decimal} {{/ita_tb/dut/inp[30]} -radix decimal} {{/ita_tb/dut/inp[29]} -radix decimal} {{/ita_tb/dut/inp[28]} -radix decimal} {{/ita_tb/dut/inp[27]} -radix decimal} {{/ita_tb/dut/inp[26]} -radix decimal} {{/ita_tb/dut/inp[25]} -radix decimal} {{/ita_tb/dut/inp[24]} -radix decimal} {{/ita_tb/dut/inp[23]} -radix decimal} {{/ita_tb/dut/inp[22]} -radix decimal} {{/ita_tb/dut/inp[21]} -radix decimal} {{/ita_tb/dut/inp[20]} -radix decimal} {{/ita_tb/dut/inp[19]} -radix decimal} {{/ita_tb/dut/inp[18]} -radix decimal} {{/ita_tb/dut/inp[17]} -radix decimal} {{/ita_tb/dut/inp[16]} -radix decimal} {{/ita_tb/dut/inp[15]} -radix decimal} {{/ita_tb/dut/inp[14]} -radix decimal} {{/ita_tb/dut/inp[13]} -radix decimal} {{/ita_tb/dut/inp[12]} -radix decimal} {{/ita_tb/dut/inp[11]} -radix decimal} {{/ita_tb/dut/inp[10]} -radix decimal} {{/ita_tb/dut/inp[9]} -radix decimal} {{/ita_tb/dut/inp[8]} -radix decimal} {{/ita_tb/dut/inp[7]} -radix decimal} {{/ita_tb/dut/inp[6]} -radix decimal} {{/ita_tb/dut/inp[5]} -radix decimal} {{/ita_tb/dut/inp[4]} -radix decimal} {{/ita_tb/dut/inp[3]} -radix decimal} {{/ita_tb/dut/inp[2]} -radix decimal} {{/ita_tb/dut/inp[1]} -radix decimal} {{/ita_tb/dut/inp[0]} -radix decimal}} -subitemconfig {{/ita_tb/dut/inp[63]} {-radix decimal} {/ita_tb/dut/inp[62]} {-radix decimal} {/ita_tb/dut/inp[61]} {-radix decimal} {/ita_tb/dut/inp[60]} {-radix decimal} {/ita_tb/dut/inp[59]} {-radix decimal} {/ita_tb/dut/inp[58]} {-radix decimal} {/ita_tb/dut/inp[57]} {-radix decimal} {/ita_tb/dut/inp[56]} {-radix decimal} {/ita_tb/dut/inp[55]} {-radix decimal} {/ita_tb/dut/inp[54]} {-radix decimal} {/ita_tb/dut/inp[53]} {-radix decimal} {/ita_tb/dut/inp[52]} {-radix decimal} {/ita_tb/dut/inp[51]} {-radix decimal} {/ita_tb/dut/inp[50]} {-radix decimal} {/ita_tb/dut/inp[49]} {-radix decimal} {/ita_tb/dut/inp[48]} {-radix decimal} {/ita_tb/dut/inp[47]} {-radix decimal} {/ita_tb/dut/inp[46]} {-radix decimal} {/ita_tb/dut/inp[45]} {-radix decimal} {/ita_tb/dut/inp[44]} {-radix decimal} {/ita_tb/dut/inp[43]} {-radix decimal} {/ita_tb/dut/inp[42]} {-radix decimal} {/ita_tb/dut/inp[41]} {-radix decimal} {/ita_tb/dut/inp[40]} {-radix decimal} {/ita_tb/dut/inp[39]} {-radix decimal} {/ita_tb/dut/inp[38]} {-radix decimal} {/ita_tb/dut/inp[37]} {-radix decimal} {/ita_tb/dut/inp[36]} {-radix decimal} {/ita_tb/dut/inp[35]} {-radix decimal} {/ita_tb/dut/inp[34]} {-radix decimal} {/ita_tb/dut/inp[33]} {-radix decimal} {/ita_tb/dut/inp[32]} {-radix decimal} {/ita_tb/dut/inp[31]} {-radix decimal} {/ita_tb/dut/inp[30]} {-radix decimal} {/ita_tb/dut/inp[29]} {-radix decimal} {/ita_tb/dut/inp[28]} {-radix decimal} {/ita_tb/dut/inp[27]} {-radix decimal} {/ita_tb/dut/inp[26]} {-radix decimal} {/ita_tb/dut/inp[25]} {-radix decimal} {/ita_tb/dut/inp[24]} {-radix decimal} {/ita_tb/dut/inp[23]} {-radix decimal} {/ita_tb/dut/inp[22]} {-radix decimal} {/ita_tb/dut/inp[21]} {-radix decimal} {/ita_tb/dut/inp[20]} {-radix decimal} {/ita_tb/dut/inp[19]} {-radix decimal} {/ita_tb/dut/inp[18]} {-radix decimal} {/ita_tb/dut/inp[17]} {-radix decimal} {/ita_tb/dut/inp[16]} {-radix decimal} {/ita_tb/dut/inp[15]} {-radix decimal} {/ita_tb/dut/inp[14]} {-radix decimal} {/ita_tb/dut/inp[13]} {-radix decimal} {/ita_tb/dut/inp[12]} {-radix decimal} {/ita_tb/dut/inp[11]} {-radix decimal} {/ita_tb/dut/inp[10]} {-radix decimal} {/ita_tb/dut/inp[9]} {-radix decimal} {/ita_tb/dut/inp[8]} {-radix decimal} {/ita_tb/dut/inp[7]} {-radix decimal} {/ita_tb/dut/inp[6]} {-radix decimal} {/ita_tb/dut/inp[5]} {-radix decimal} {/ita_tb/dut/inp[4]} {-radix decimal} {/ita_tb/dut/inp[3]} {-radix decimal} {/ita_tb/dut/inp[2]} {-radix decimal} {/ita_tb/dut/inp[1]} {-radix decimal} {/ita_tb/dut/inp[0]} {-radix decimal}} /ita_tb/dut/inp +add wave -noupdate -expand -group {All in one Phase} -radix decimal -childformat {{{/ita_tb/dut/inp[63]} -radix decimal} {{/ita_tb/dut/inp[62]} -radix decimal} {{/ita_tb/dut/inp[61]} -radix decimal} {{/ita_tb/dut/inp[60]} -radix decimal} {{/ita_tb/dut/inp[59]} -radix decimal} {{/ita_tb/dut/inp[58]} -radix decimal} {{/ita_tb/dut/inp[57]} -radix decimal} {{/ita_tb/dut/inp[56]} -radix decimal} {{/ita_tb/dut/inp[55]} -radix decimal} {{/ita_tb/dut/inp[54]} -radix decimal} {{/ita_tb/dut/inp[53]} -radix decimal} {{/ita_tb/dut/inp[52]} -radix decimal} {{/ita_tb/dut/inp[51]} -radix decimal} {{/ita_tb/dut/inp[50]} -radix decimal} {{/ita_tb/dut/inp[49]} -radix decimal} {{/ita_tb/dut/inp[48]} -radix decimal} {{/ita_tb/dut/inp[47]} -radix decimal} {{/ita_tb/dut/inp[46]} -radix decimal} {{/ita_tb/dut/inp[45]} -radix decimal} {{/ita_tb/dut/inp[44]} -radix decimal} {{/ita_tb/dut/inp[43]} -radix decimal} {{/ita_tb/dut/inp[42]} -radix decimal} {{/ita_tb/dut/inp[41]} -radix decimal} {{/ita_tb/dut/inp[40]} -radix decimal} {{/ita_tb/dut/inp[39]} -radix decimal} {{/ita_tb/dut/inp[38]} -radix decimal} {{/ita_tb/dut/inp[37]} -radix decimal} {{/ita_tb/dut/inp[36]} -radix decimal} {{/ita_tb/dut/inp[35]} -radix decimal} {{/ita_tb/dut/inp[34]} -radix decimal} {{/ita_tb/dut/inp[33]} -radix decimal} {{/ita_tb/dut/inp[32]} -radix decimal} {{/ita_tb/dut/inp[31]} -radix decimal} {{/ita_tb/dut/inp[30]} -radix decimal} {{/ita_tb/dut/inp[29]} -radix decimal} {{/ita_tb/dut/inp[28]} -radix decimal} {{/ita_tb/dut/inp[27]} -radix decimal} {{/ita_tb/dut/inp[26]} -radix decimal} {{/ita_tb/dut/inp[25]} -radix decimal} {{/ita_tb/dut/inp[24]} -radix decimal} {{/ita_tb/dut/inp[23]} -radix decimal} {{/ita_tb/dut/inp[22]} -radix decimal} {{/ita_tb/dut/inp[21]} -radix decimal} {{/ita_tb/dut/inp[20]} -radix decimal} {{/ita_tb/dut/inp[19]} -radix decimal} {{/ita_tb/dut/inp[18]} -radix decimal} {{/ita_tb/dut/inp[17]} -radix decimal} {{/ita_tb/dut/inp[16]} -radix decimal} {{/ita_tb/dut/inp[15]} -radix decimal} {{/ita_tb/dut/inp[14]} -radix decimal} {{/ita_tb/dut/inp[13]} -radix decimal} {{/ita_tb/dut/inp[12]} -radix decimal} {{/ita_tb/dut/inp[11]} -radix decimal} {{/ita_tb/dut/inp[10]} -radix decimal} {{/ita_tb/dut/inp[9]} -radix decimal} {{/ita_tb/dut/inp[8]} -radix decimal} {{/ita_tb/dut/inp[7]} -radix decimal} {{/ita_tb/dut/inp[6]} -radix decimal} {{/ita_tb/dut/inp[5]} -radix decimal} {{/ita_tb/dut/inp[4]} -radix decimal} {{/ita_tb/dut/inp[3]} -radix decimal} {{/ita_tb/dut/inp[2]} -radix decimal} {{/ita_tb/dut/inp[1]} -radix decimal} {{/ita_tb/dut/inp[0]} -radix decimal}} -subitemconfig {{/ita_tb/dut/inp[63]} {-height 16 -radix decimal} {/ita_tb/dut/inp[62]} {-height 16 -radix decimal} {/ita_tb/dut/inp[61]} {-height 16 -radix decimal} {/ita_tb/dut/inp[60]} {-height 16 -radix decimal} {/ita_tb/dut/inp[59]} {-height 16 -radix decimal} {/ita_tb/dut/inp[58]} {-height 16 -radix decimal} {/ita_tb/dut/inp[57]} {-height 16 -radix decimal} {/ita_tb/dut/inp[56]} {-height 16 -radix decimal} {/ita_tb/dut/inp[55]} {-height 16 -radix decimal} {/ita_tb/dut/inp[54]} {-height 16 -radix decimal} {/ita_tb/dut/inp[53]} {-height 16 -radix decimal} {/ita_tb/dut/inp[52]} {-height 16 -radix decimal} {/ita_tb/dut/inp[51]} {-height 16 -radix decimal} {/ita_tb/dut/inp[50]} {-height 16 -radix decimal} {/ita_tb/dut/inp[49]} {-height 16 -radix decimal} {/ita_tb/dut/inp[48]} {-height 16 -radix decimal} {/ita_tb/dut/inp[47]} {-height 16 -radix decimal} {/ita_tb/dut/inp[46]} {-height 16 -radix decimal} {/ita_tb/dut/inp[45]} {-height 16 -radix decimal} {/ita_tb/dut/inp[44]} {-height 16 -radix decimal} {/ita_tb/dut/inp[43]} {-height 16 -radix decimal} {/ita_tb/dut/inp[42]} {-height 16 -radix decimal} {/ita_tb/dut/inp[41]} {-height 16 -radix decimal} {/ita_tb/dut/inp[40]} {-height 16 -radix decimal} {/ita_tb/dut/inp[39]} {-height 16 -radix decimal} {/ita_tb/dut/inp[38]} {-height 16 -radix decimal} {/ita_tb/dut/inp[37]} {-height 16 -radix decimal} {/ita_tb/dut/inp[36]} {-height 16 -radix decimal} {/ita_tb/dut/inp[35]} {-height 16 -radix decimal} {/ita_tb/dut/inp[34]} {-height 16 -radix decimal} {/ita_tb/dut/inp[33]} {-height 16 -radix decimal} {/ita_tb/dut/inp[32]} {-height 16 -radix decimal} {/ita_tb/dut/inp[31]} {-height 16 -radix decimal} {/ita_tb/dut/inp[30]} {-height 16 -radix decimal} {/ita_tb/dut/inp[29]} {-height 16 -radix decimal} {/ita_tb/dut/inp[28]} {-height 16 -radix decimal} {/ita_tb/dut/inp[27]} {-height 16 -radix decimal} {/ita_tb/dut/inp[26]} {-height 16 -radix decimal} {/ita_tb/dut/inp[25]} {-height 16 -radix decimal} {/ita_tb/dut/inp[24]} {-height 16 -radix decimal} {/ita_tb/dut/inp[23]} {-height 16 -radix decimal} {/ita_tb/dut/inp[22]} {-height 16 -radix decimal} {/ita_tb/dut/inp[21]} {-height 16 -radix decimal} {/ita_tb/dut/inp[20]} {-height 16 -radix decimal} {/ita_tb/dut/inp[19]} {-height 16 -radix decimal} {/ita_tb/dut/inp[18]} {-height 16 -radix decimal} {/ita_tb/dut/inp[17]} {-height 16 -radix decimal} {/ita_tb/dut/inp[16]} {-height 16 -radix decimal} {/ita_tb/dut/inp[15]} {-height 16 -radix decimal} {/ita_tb/dut/inp[14]} {-height 16 -radix decimal} {/ita_tb/dut/inp[13]} {-height 16 -radix decimal} {/ita_tb/dut/inp[12]} {-height 16 -radix decimal} {/ita_tb/dut/inp[11]} {-height 16 -radix decimal} {/ita_tb/dut/inp[10]} {-height 16 -radix decimal} {/ita_tb/dut/inp[9]} {-height 16 -radix decimal} {/ita_tb/dut/inp[8]} {-height 16 -radix decimal} {/ita_tb/dut/inp[7]} {-height 16 -radix decimal} {/ita_tb/dut/inp[6]} {-height 16 -radix decimal} {/ita_tb/dut/inp[5]} {-height 16 -radix decimal} {/ita_tb/dut/inp[4]} {-height 16 -radix decimal} {/ita_tb/dut/inp[3]} {-height 16 -radix decimal} {/ita_tb/dut/inp[2]} {-height 16 -radix decimal} {/ita_tb/dut/inp[1]} {-height 16 -radix decimal} {/ita_tb/dut/inp[0]} {-height 16 -radix decimal}} /ita_tb/dut/inp add wave -noupdate -expand -group {All in one Phase} -radix unsigned /ita_tb/dut/i_softmax_top/i_softmax/inp_stream_soft_o add wave -noupdate -expand -group {All in one Phase} -radix decimal /ita_tb/dut/inp1 add wave -noupdate -expand -group {All in one Phase} -radix unsigned /ita_tb/dut/inp1_q @@ -144,6 +154,106 @@ add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q3 add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q4 add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/requant_oup_d add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/requant_oup_q +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/clk_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/rst_ni +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/mode_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/eps_mult_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/right_shift_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/calc_en_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/calc_en_q_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/result_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_i +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/requant_oup_o +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/mult_signed +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/product +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/shifted_added +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/shifted_d +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/shifted_q +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q1 +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q2 +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q3 +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/add_q4 +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/requant_oup_d +add wave -noupdate -group Requantizer /ita_tb/dut/i_requantizer/requant_oup_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/clk_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/rst_ni +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ctrl_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_valid_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_ready_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/weight_valid_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/weight_ready_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_valid_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_ready_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/oup_valid_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/oup_ready_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/pop_softmax_fifo_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/step_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/soft_addr_div_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_done_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/calc_en_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/first_inner_tile_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/last_inner_tile_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_x_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_y_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/requant_add_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/requant_add_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_bias_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_bias_pad_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/busy_o +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/calc_en_q1_i +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/step_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/step_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/count_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/count_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_count +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_pos_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_pos_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_col_offset_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_col_offset_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_x_pos_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_x_pos_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_y_pos_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_y_pos_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_x_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_x_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_x_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_x_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_y_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_y_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_y_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_y_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_tile_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_tile_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_soft_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_soft_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_bias +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inp_bias_padded +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/last_time +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_dim +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/first_outer_dim +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/second_outer_dim +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/first_outer_dim_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/first_outer_dim_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/second_outer_dim_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/second_outer_dim_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_fifo +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_div +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_div_done_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_div_done_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/busy_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/busy_q +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/requant_add_d +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/requant_add_q add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/clk_i add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/rst_ni add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ctrl_i @@ -181,10 +291,6 @@ add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_pos_d add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_pos_q add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_col_offset_d add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_col_offset_q -add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_count_d -add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_count_q1 -add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_count_q2 -add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_count_q3 add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_d add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_q add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/inner_tile_d @@ -196,15 +302,11 @@ add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_ add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_x_d add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_x_q add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_x_d -add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_x_q1 -add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_x_q2 -add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_x_q3 +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_x_q add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_y_d add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/tile_y_q add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_y_d -add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_y_q1 -add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_y_q2 -add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/mask_tile_y_q3 +add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/bias_tile_y_q add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_tile_d add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/softmax_tile_q add wave -noupdate -expand -group Controller /ita_tb/dut/i_controller/ongoing_d @@ -320,6 +422,126 @@ add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softm add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/disable_shift add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/disable_row add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/disable_col +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/clk_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/rst_ni +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/ctrl_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/step_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/requant_oup_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_stream_soft_en_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/soft_addr_div_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/softmax_done_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/pop_softmax_fifo_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/inp_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/inp_stream_soft_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_inp_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_valid_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_ready_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_valid_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_ready_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_oup_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_acc_en_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_acc_addr_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_acc_data_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_acc_en_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_acc_addr_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_acc_data_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/prev_max_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_max_en_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_max_addr_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/read_max_data_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_max_en_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_max_addr_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/write_max_data_o +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_x_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_y_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/inner_tile_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_i +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_q1 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_q2 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_q3 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_q4 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_q1 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_q2 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_q3 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_q4 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/inner_tile_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_x_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/tile_y_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_x_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_x_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_y_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_y_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/mask_tile_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/exp_sum_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/exp_sum_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_soft_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_soft_q1 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_soft_q2 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_soft_mask_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_div_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/count_div_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/addr_div_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/addr_div_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_read_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_read_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_write_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/div_write_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/requant_oup_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_diff +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_sum_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_sum_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/max_diff +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_inp +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/shift_inp_diff +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_stream_soft_en_q +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_d +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_q1 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_q2 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/calc_en_q3 +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/fifo_full +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/fifo_empty +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/push_to_fifo +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/pop_from_fifo +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/data_to_fifo +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/data_from_fifo +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/fifo_usage +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/disable_shift +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/disable_row +add wave -noupdate -group {Softmax Controller} /ita_tb/dut/i_softmax_top/i_softmax/disable_col +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/clk_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/rst_ni +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/calc_en_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/calc_en_q_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/first_tile_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/first_tile_q_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/last_tile_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/last_tile_q_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/oup_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/inp_bias_i +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/result_o +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_en +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_addr +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_data +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_data_unused +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_en +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_addr +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_data +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_addr_d +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/read_addr_q +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_addr_d +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_addr_q +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/result_d +add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/result_q add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/clk_i add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/rst_ni add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/calc_en_i @@ -345,9 +567,9 @@ add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/write_addr_q add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/result_d add wave -noupdate -group Accumulator /ita_tb/dut/i_accumulator/result_q TreeUpdate [SetDefaultTree] -WaveRestoreCursors {{Cursor 1} {5920600 ps} 1} {{Cursor 2} {5901262 ps} 0} {{Cursor 3} {5899036 ps} 1} {{Cursor 4} {5901000 ps} 1} {{Cursor 5} {5893100 ps} 0} -quietly wave cursor active 2 -configure wave -namecolwidth 183 +WaveRestoreCursors {{Cursor 1} {10268600 ps} 1} +quietly wave cursor active 1 +configure wave -namecolwidth 150 configure wave -valuecolwidth 100 configure wave -justifyvalue left configure wave -signalnamewidth 1 @@ -361,4 +583,4 @@ configure wave -griddelta 40 configure wave -timeline 0 configure wave -timelineunits ns update -WaveRestoreZoom {5892623 ps} {5911836 ps} +WaveRestoreZoom {0 ps} {23757930 ps} diff --git a/src/ita_controller.sv b/src/ita_controller.sv index 199782d..028a946 100644 --- a/src/ita_controller.sv +++ b/src/ita_controller.sv @@ -44,13 +44,12 @@ module ita_controller counter_t count_d, count_q, bias_count; counter_t mask_pos_d, mask_pos_q; logic [3:0] mask_col_offset_d, mask_col_offset_q; - counter_t mask_count_d, mask_count_q1, mask_count_q2, mask_count_q3; counter_t tile_d, tile_q; counter_t inner_tile_d, inner_tile_q; counter_t mask_tile_x_pos_d, mask_tile_x_pos_q; counter_t mask_tile_y_pos_d, mask_tile_y_pos_q; - counter_t tile_x_d, tile_x_q, bias_tile_x_d, bias_tile_x_q1, bias_tile_x_q2, mask_tile_x_q3; - counter_t tile_y_d, tile_y_q, bias_tile_y_d, bias_tile_y_q1, bias_tile_y_q2, mask_tile_y_q3; + counter_t tile_x_d, tile_x_q, bias_tile_x_d, bias_tile_x_q; + counter_t tile_y_d, tile_y_q, bias_tile_y_d, bias_tile_y_q; counter_t softmax_tile_d, softmax_tile_q; ongoing_t ongoing_d, ongoing_q; ongoing_soft_t ongoing_soft_d, ongoing_soft_q; @@ -363,11 +362,10 @@ module ita_controller endcase bias_count = (count_q == 0) ? 255 : count_q - 1; - bias_tile_x_d = (count_q == 0) ? bias_tile_x_q1 : tile_x_q; - bias_tile_y_d = (count_q == 0) ? bias_tile_y_q1 : tile_y_q; + bias_tile_x_d = (count_q == 0) ? bias_tile_x_q : tile_x_q; + bias_tile_y_d = (count_q == 0) ? bias_tile_y_q : tile_y_q; first_outer_dim_d = (count_q == 0) ? first_outer_dim_q : first_outer_dim; second_outer_dim_d = (count_q == 0) ? second_outer_dim_q : second_outer_dim; - mask_count_d = bias_count; if ((step_q != Idle && step_q != MatMul) || (step_q == Idle && bias_count == 255)) begin if (inner_tile_q == inner_tile_dim) begin @@ -410,13 +408,18 @@ module ita_controller // end else begin // mask_tile_x_pos_d = mask_tile_x_pos_q; // end + - // if (mask_tile_x_q3 == mask_tile_x_pos_q && mask_tile_y_q3 == mask_tile_y_pos_q) begin + if (mask_tile_x_pos_q == tile_x_q && mask_tile_y_pos_q == tile_y_q) begin + if (count_q == ((M*M/N)-1)) begin + mask_tile_x_pos_d = mask_tile_x_pos_q + 1'b1; + end if ((count_q >= mask_pos_q) && (count_q < (mask_pos_q + N))) begin - // if ((count_q & (M-1)) == 6'd63) begin - // mask_tile_y_pos_d = mask_tile_y_pos_q + 1'b1; - // mask_pos_d = (count_q + ((7*M) + 1)) & ((M*M/N)-1); - // end else + if ((count_q & (M-1)) == (M-1)) begin + mask_tile_y_pos_d = tile_y_q + 1'b1; + mask_tile_x_pos_d = tile_x_q; + mask_pos_d = (count_q + ((7*M) + 1)) & ((M*M/N)-1); + end if (((count_q + mask_col_offset_q) & (N-1)) == (N-1)) begin mask_pos_d = (mask_pos_q + (N - ((mask_pos_q + mask_col_offset_q) & (N-1))) + M) & ((M*M/N)-1); end @@ -436,6 +439,10 @@ module ita_controller mask_d[i] = 1'b0; end end + end else if (mask_tile_x_pos_q == tile_x_q && mask_tile_y_pos_q != tile_y_q) begin + for (int i = 0; i < N; i++) begin + mask_d[i] = 1'b1; + end // end else if (mask_tile_x_q3 == mask_tile_x_pos_q && mask_tile_y_q3 != mask_tile_y_pos_q) begin // for (int i = 0; i < N; i++) begin // mask_d[i] = 1'b1; @@ -444,7 +451,11 @@ module ita_controller // for (int i = 0; i < N; i++) begin // mask_d[i] = 1'b0; // end - // end + end else if (mask_tile_x_pos_q != tile_x_q && mask_tile_y_pos_q == tile_y_q) begin + for (int i = 0; i < N; i++) begin + mask_d[i] = 1'b0; + end + end end end LowerTriangular: begin @@ -482,19 +493,12 @@ module ita_controller softmax_div_done_q <= 1'b0; requant_add_q <= '0; busy_q <= 1'b0; - bias_tile_x_q1 <= '0; - bias_tile_x_q2 <= '0; - mask_tile_x_q3 <= '0; - bias_tile_y_q1 <= '0; - bias_tile_y_q2 <= '0; - mask_tile_y_q3 <= '0; + bias_tile_x_q <= '0; + bias_tile_y_q <= '0; first_outer_dim_q <= '0; second_outer_dim_q <= '0; mask_pos_q <= '0; mask_col_offset_q <= '0; - mask_count_q1 <= '0; - mask_count_q2 <= '0; - mask_count_q3 <= '0; mask_tile_x_pos_q <= '0; mask_tile_y_pos_q <= '0; mask_q <= '0; @@ -511,24 +515,17 @@ module ita_controller softmax_div_done_q <= softmax_div_done_d; requant_add_q <= requant_add_d; busy_q <= busy_d; - bias_tile_x_q1 <= bias_tile_x_d; - bias_tile_x_q2 <= bias_tile_x_q1; - mask_tile_x_q3 <= bias_tile_x_q2; - bias_tile_y_q1 <= bias_tile_y_d; - bias_tile_y_q2 <= bias_tile_y_q1; - mask_tile_y_q3 <= bias_tile_y_q2; + bias_tile_x_q <= bias_tile_x_d; + bias_tile_y_q <= bias_tile_y_d; first_outer_dim_q <= first_outer_dim_d; second_outer_dim_q <= second_outer_dim_d; if (calc_en_o) begin mask_pos_q <= mask_pos_d; mask_q <= mask_d; + mask_tile_x_pos_q <= mask_tile_x_pos_d; + mask_tile_y_pos_q <= mask_tile_y_pos_d; end mask_col_offset_q <= mask_col_offset_d; - mask_count_q1 <= mask_count_d; - mask_count_q2 <= mask_count_q1; - mask_count_q3 <= mask_count_q2; - mask_tile_x_pos_q <= mask_tile_x_pos_d; - mask_tile_y_pos_q <= mask_tile_y_pos_d; end end endmodule diff --git a/src/ita_softmax.sv b/src/ita_softmax.sv index f8a838c..68b7b53 100644 --- a/src/ita_softmax.sv +++ b/src/ita_softmax.sv @@ -49,7 +49,9 @@ module ita_softmax counter_t tile_d, tile_q1, tile_q2, tile_q3, tile_q4; counter_t count_d, count_q1, count_q2, count_q3, count_q4; counter_t inner_tile_q; - counter_t tile_y_q; + counter_t tile_x_q, tile_y_q; + counter_t mask_tile_x_d, mask_tile_x_q, mask_tile_y_d, mask_tile_y_q; + counter_t mask_tile_d, mask_tile_q; logic unsigned [SoftmaxAccDataWidth-1:0] exp_sum_d, exp_sum_q; counter_t count_soft_d, count_soft_q1, count_soft_q2, count_soft_mask_q; @@ -121,6 +123,10 @@ module ita_softmax shift_inp_diff = '0; inp_stream_soft_o = '0; softmax_done_o = 0; + mask_tile_x_d = mask_tile_x_q; + mask_tile_y_d = mask_tile_y_q; + mask_tile_d = mask_tile_q; + //************ Accumulation ************// case (step_i) @@ -241,18 +247,57 @@ module ita_softmax end end if (calc_stream_soft_en_q) begin + if (count_soft_mask_q == (((M*M)/N)-1)) begin + mask_tile_d = mask_tile_q + 1; + if (mask_tile_x_q == (ctrl_i.tile_s-1)) begin + mask_tile_x_d = '0; + mask_tile_y_d = mask_tile_y_q + 1; + end else begin + mask_tile_x_d = mask_tile_x_q + 1; + end + if (mask_tile_d == ctrl_i.tile_s * ctrl_i.tile_s) begin + mask_tile_d = '0; + mask_tile_x_d = '0; + mask_tile_y_d = '0; + end + end + if (disable_row) begin inp_stream_soft_o = { M { '0 } }; end else begin for (int i = 0; i < M; i++) begin - if ((inner_tile_q*M + i) >= ctrl_i.seq_length) begin - disable_col[i] = 1'b1; - // This logic needs to be replaced - end else if ((i >= ((count_soft_mask_q & (M-1)) + (ctrl_i.mask_start_index & (M-1)))) && (ctrl_i.mask_type == UpperTriangular)) begin - disable_col[i] = 1'b1; - end else begin - disable_col[i] = 1'b0; - end + disable_col[i] = ((inner_tile_q*M + i) >= ctrl_i.seq_length); + + case (ctrl_i.mask_type) + UpperTriangular: begin + // (ctrl_i.mask_start_index / M) -> tile where the masking starts + if (mask_tile_x_q == mask_tile_y_q) begin + if (i >= counter_t'((count_soft_mask_q & (M-1)) + (ctrl_i.mask_start_index & (M-1)))) begin + disable_col[i] = 1'b1; + end else begin + disable_col[i] = 1'b0; + end + end else if (mask_tile_x_q == ((ctrl_i.mask_start_index / M) + 1'b1 + mask_tile_y_q)) begin + if (((count_soft_mask_q & (M-1)) > (ctrl_i.mask_start_index & (M-1))) && (i <= ((count_soft_mask_q & (M-1)) - (ctrl_i.mask_start_index & (M-1))))) begin + disable_col[i] = 1'b1; + end else begin + disable_col[i] = 1'b0; + end + end else if (mask_tile_x_q > ((ctrl_i.mask_start_index / M) + 1'b1 + mask_tile_y_q)) begin + disable_col[i] = 1'b1; + end else if (mask_tile_x_q <= (ctrl_i.mask_start_index / M)) begin + disable_col[i] = 1'b0; + end else begin + disable_col[i] = 1'b0; + end + end + LowerTriangular: begin + + end + None: begin + + end + endcase if (disable_col[i]) begin inp_stream_soft_o[i] = '0; @@ -271,7 +316,11 @@ module ita_softmax always_ff @(posedge clk_i or negedge rst_ni) begin if(~rst_ni) begin inner_tile_q <= '0; + tile_x_q <= '0; tile_y_q <= '0; + mask_tile_x_q <= '0; + mask_tile_y_q <= '0; + mask_tile_q <= '0; tile_q4 <= '0; tile_q3 <= '0; tile_q2 <= '0; @@ -295,6 +344,7 @@ module ita_softmax shift_sum_q <= '0; end else begin inner_tile_q <= inner_tile_i; + tile_x_q <= tile_x_i; tile_y_q <= tile_y_i; tile_q4 <= tile_q3; tile_q3 <= tile_q2; @@ -308,6 +358,9 @@ module ita_softmax count_soft_q2 <= count_soft_q1; if (calc_stream_soft_en_i) count_soft_mask_q <= count_soft_q1; + mask_tile_x_q <= mask_tile_x_d; + mask_tile_y_q <= mask_tile_y_d; + mask_tile_q <= mask_tile_d; count_div_q <= count_div_d; div_read_q <= div_read_d; div_write_q <= div_write_d;