Loading dct_tests_01.sav +417 −16 Original line number Diff line number Diff line [*] [*] GTKWave Analyzer v3.3.66 (w)1999-2015 BSI [*] Tue Dec 6 17:55:24 2016 [*] GTKWave Analyzer v3.3.78 (w)1999-2016 BSI [*] Tue Dec 13 19:43:18 2016 [*] [dumpfile] "/home/eyesis/git/x393-neon/simulation/dct_tests_01-20161206105514691.fst" [dumpfile_mtime] "Tue Dec 6 17:55:14 2016" [dumpfile_size] 10348 [dumpfile] "/home/eyesis/git/x393-neon/simulation/dct_tests_01-20161213123921501.fst" [dumpfile_mtime] "Tue Dec 13 19:39:21 2016" [dumpfile_size] 103386 [savefile] "/home/eyesis/git/x393-neon/dct_tests_01.sav" [timestart] 0 [size] 1814 1171 [pos] 1937 0 *-18.387537 1752000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 [pos] 1912 0 *-19.687614 3465000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 [treeopen] dct_tests_01. [treeopen] dct_tests_01.dct_iv8_1d_i. [treeopen] dct_tests_01.dct_iv8_1d_i.dsp_ma_preadd_c_1_i. [treeopen] dct_tests_01.dct_iv_8x8_i. [treeopen] dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i. [treeopen] dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i. [sst_width] 204 [signals_width] 305 [signals_width] 302 [sst_expanded] 1 [sst_vpaned_height] 344 @800200 @c00200 -top @25 @24 dct_tests_01.i dct_tests_01.j @28 Loading Loading @@ -87,10 +90,82 @@ dct_tests_01.y_we dct_tests_01.phase_y[3:0] dct_tests_01.y_dct[23:0] dct_tests_01.y_out[23:0] @1000200 dct_tests_01.dct_iv8_1d_i.y_index[2:0] @1401200 -top @800200 @c00200 -2d-1d @28 dct_tests_01.start @420 dct_tests_01.x_in[23:0] @8420 dct_tests_01.x_in[23:0] @22 dct_tests_01.x_out[23:0] @8420 dct_tests_01.x_out[23:0] @28 dct_tests_01.dct_iv8_1d_i.start @22 dct_tests_01.dct_iv8_1d_i.phase_cnt[3:0] @8420 dct_tests_01.dct_iv8_1d_i.d_in[23:0] @28 dct_tests_01.dct_iv8_1d_i.pre2_start_out @8420 [color] 7 dct_tests_01.dct_iv8_1d_i.dout[23:0] dct_tests_01.y_dct[23:0] @22 dct_tests_01.y_wa[2:0] @28 dct_tests_01.y_we dct_tests_01.dct_iv8_1d_i.en_out dct_tests_01.dct_iv8_1d_i.en_out_r @22 dct_tests_01.dct_iv8_1d_i.y_index[2:0] dct_tests_01.y_ra[2:0] @28 dct_tests_01.y_dv @8420 dct_tests_01.y_out[23:0] @28 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i.start @22 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i.phase_cnt[3:0] @8420 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i.d_in[23:0] dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i.dout[23:0] @28 [color] 7 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i.en_out @22 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i.y_index[2:0] @28 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.start @22 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.phase_cnt[3:0] @8420 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.d_in[23:0] dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.dout[23:0] @28 [color] 7 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.en_out @22 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.y_index[2:0] @200 - @1401200 -2d-1d @c00200 -dct_iv8_1d @22 [color] 2 dct_tests_01.dct_iv8_1d_i.phase_cnt[3:0] @28 dct_tests_01.dct_iv8_1d_i.en_out dct_tests_01.dct_iv8_1d_i.run_out @c08022 dct_tests_01.phase_out[3:0] @28 Loading @@ -105,8 +180,6 @@ dct_tests_01.dct_iv8_1d_i.start dct_tests_01.dct_iv8_1d_i.restart dct_tests_01.dct_iv8_1d_i.clk @8022 [color] 2 dct_tests_01.dct_iv8_1d_i.phase_cnt[3:0] dct_tests_01.dct_iv8_1d_i.d_in[23:0] dct_tests_01.dct_iv8_1d_i.dsp_ain_1[24:0] @28 Loading @@ -124,8 +197,8 @@ dct_tests_01.dct_iv8_1d_i.dsp_ced_1 @22 dct_tests_01.dct_iv8_1d_i.dsp_cin_1[47:0] @28 dct_tests_01.dct_iv8_1d_i.dsp_cec_1 dct_tests_01.dct_iv8_1d_i.dsp_neg_m_1 dct_tests_01.dct_iv8_1d_i.dsp_cec_1 dct_tests_01.dct_iv8_1d_i.dsp_post_add_1 dct_tests_01.dct_iv8_1d_i.dsp_accum_1 @22 Loading Loading @@ -238,7 +311,335 @@ dct_tests_01.dct_iv8_1d_i.pre2_start_out dct_tests_01.dct_iv8_1d_i.rst dct_tests_01.dct_iv8_1d_i.run_in dct_tests_01.dct_iv8_1d_i.run_out @1000200 @1401200 -dct_iv8_1d @800200 -st22d_test @28 dct_tests_01.CLK dct_tests_01.RST [color] 2 dct_tests_01.start [color] 2 dct_tests_01.start2 @c00022 dct_tests_01.x_in_2d[23:0] @28 (0)dct_tests_01.x_in_2d[23:0] (1)dct_tests_01.x_in_2d[23:0] (2)dct_tests_01.x_in_2d[23:0] (3)dct_tests_01.x_in_2d[23:0] (4)dct_tests_01.x_in_2d[23:0] (5)dct_tests_01.x_in_2d[23:0] (6)dct_tests_01.x_in_2d[23:0] (7)dct_tests_01.x_in_2d[23:0] (8)dct_tests_01.x_in_2d[23:0] (9)dct_tests_01.x_in_2d[23:0] (10)dct_tests_01.x_in_2d[23:0] (11)dct_tests_01.x_in_2d[23:0] (12)dct_tests_01.x_in_2d[23:0] (13)dct_tests_01.x_in_2d[23:0] (14)dct_tests_01.x_in_2d[23:0] (15)dct_tests_01.x_in_2d[23:0] (16)dct_tests_01.x_in_2d[23:0] (17)dct_tests_01.x_in_2d[23:0] (18)dct_tests_01.x_in_2d[23:0] (19)dct_tests_01.x_in_2d[23:0] (20)dct_tests_01.x_in_2d[23:0] (21)dct_tests_01.x_in_2d[23:0] (22)dct_tests_01.x_in_2d[23:0] (23)dct_tests_01.x_in_2d[23:0] @1401200 -group_end @c08420 dct_tests_01.x_in_2d[23:0] @28 (0)dct_tests_01.x_in_2d[23:0] (1)dct_tests_01.x_in_2d[23:0] (2)dct_tests_01.x_in_2d[23:0] (3)dct_tests_01.x_in_2d[23:0] (4)dct_tests_01.x_in_2d[23:0] (5)dct_tests_01.x_in_2d[23:0] (6)dct_tests_01.x_in_2d[23:0] (7)dct_tests_01.x_in_2d[23:0] (8)dct_tests_01.x_in_2d[23:0] (9)dct_tests_01.x_in_2d[23:0] (10)dct_tests_01.x_in_2d[23:0] (11)dct_tests_01.x_in_2d[23:0] (12)dct_tests_01.x_in_2d[23:0] (13)dct_tests_01.x_in_2d[23:0] (14)dct_tests_01.x_in_2d[23:0] (15)dct_tests_01.x_in_2d[23:0] (16)dct_tests_01.x_in_2d[23:0] (17)dct_tests_01.x_in_2d[23:0] (18)dct_tests_01.x_in_2d[23:0] (19)dct_tests_01.x_in_2d[23:0] (20)dct_tests_01.x_in_2d[23:0] (21)dct_tests_01.x_in_2d[23:0] (22)dct_tests_01.x_in_2d[23:0] (23)dct_tests_01.x_in_2d[23:0] @1401200 -group_end @28 dct_tests_01.pre_busy_2d dct_tests_01.pre_last_in_2d dct_tests_01.pre_first_out_2d dct_tests_01.dv_2d @420 dct_tests_01.d_out_2d[23:0] @8420 dct_tests_01.d_out_2d[23:0] @28 dct_tests_01.dv_2dr @22 dct_tests_01.d_out_2dr[23:0] @8421 dct_tests_01.d_out_2dr[23:0] @200 - @800200 -dct_iv_8x8 @28 dct_tests_01.dct_iv_8x8_i.clk dct_tests_01.dct_iv_8x8_i.start dct_tests_01.dct_iv_8x8_i.pre_last_in dct_tests_01.dct_iv_8x8_i.pre_busy dct_tests_01.dct_iv_8x8_i.x_run @c00022 dct_tests_01.dct_iv_8x8_i.x_wa[5:0] @28 (0)dct_tests_01.dct_iv_8x8_i.x_wa[5:0] (1)dct_tests_01.dct_iv_8x8_i.x_wa[5:0] (2)dct_tests_01.dct_iv_8x8_i.x_wa[5:0] (3)dct_tests_01.dct_iv_8x8_i.x_wa[5:0] (4)dct_tests_01.dct_iv_8x8_i.x_wa[5:0] (5)dct_tests_01.dct_iv_8x8_i.x_wa[5:0] @1401200 -group_end @28 dct_tests_01.dct_iv_8x8_i.dcth_phin_start @22 dct_tests_01.dct_iv_8x8_i.dcth_phin_run @c00022 dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] @28 (0)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] (1)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] (2)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] (3)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] (4)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] (5)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] (6)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] @1401200 -group_end @22 dct_tests_01.dct_iv_8x8_i.x_ra0[2:0] dct_tests_01.dct_iv_8x8_i.x_ra1[2:0] @28 dct_tests_01.dct_iv_8x8_i.dcth_en0 dct_tests_01.dct_iv_8x8_i.dcth_start_0_r @22 dct_tests_01.dct_iv_8x8_i.dcth_xin0[23:0] @28 dct_tests_01.dct_iv_8x8_i.dcth_en_out0 @22 dct_tests_01.dct_iv_8x8_i.dcth_yindex0[2:0] dct_tests_01.dct_iv_8x8_i.dcth_dout0[23:0] @200 - @28 dct_tests_01.dct_iv_8x8_i.dcth_en1 dct_tests_01.dct_iv_8x8_i.dcth_start_1_r @22 dct_tests_01.dct_iv_8x8_i.dcth_xin1[23:0] @28 dct_tests_01.dct_iv_8x8_i.dcth_en_out1 @22 dct_tests_01.dct_iv_8x8_i.dcth_yindex1[2:0] dct_tests_01.dct_iv_8x8_i.dcth_dout1[23:0] @200 - @22 dct_tests_01.dct_iv_8x8_i.transpose_start @28 dct_tests_01.dct_iv_8x8_i.transpose_in_run @22 dct_tests_01.dct_iv_8x8_i.transpose_w_page[1:0] [color] 3 dct_tests_01.dct_iv_8x8_i.transpose_cntr[6:0] @28 dct_tests_01.dct_iv_8x8_i.transpose_wa_decr @22 dct_tests_01.dct_iv_8x8_i.transpose_wa_low[2:0] dct_tests_01.dct_iv_8x8_i.transpose_wa_high[4:0] dct_tests_01.dct_iv_8x8_i.transpose_wa[7:0] @28 (0)dct_tests_01.dct_iv_8x8_i.transpose_we[1:0] @22 [color] 2 dct_tests_01.dct_iv_8x8_i.transpose_debug_di[7:0] @28 dct_tests_01.dct_iv_8x8_i.transpose_out_start @800022 dct_tests_01.dct_iv_8x8_i.transpose_out_run[2:0] @28 (0)dct_tests_01.dct_iv_8x8_i.transpose_out_run[2:0] (1)dct_tests_01.dct_iv_8x8_i.transpose_out_run[2:0] (2)dct_tests_01.dct_iv_8x8_i.transpose_out_run[2:0] @1001200 -group_end @c00028 dct_tests_01.dct_iv_8x8_i.transpose_r_page[1:0] @28 (0)dct_tests_01.dct_iv_8x8_i.transpose_r_page[1:0] (1)dct_tests_01.dct_iv_8x8_i.transpose_r_page[1:0] @1401200 -group_end @c00022 dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] @28 (0)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] (1)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] (2)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] (3)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] (4)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] (5)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] (6)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] @1401200 -group_end @22 [color] 5 dct_tests_01.dct_iv_8x8_i.transpose_ra[7:0] @8420 dct_tests_01.dct_iv_8x8_i.transpose_reg[23:0] dct_tests_01.dct_iv_8x8_i.transpose_out[23:0] @c00022 dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] @28 (0)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (1)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (2)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (3)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (4)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (5)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (6)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (7)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] @1401200 -group_end @22 dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] @c08022 dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] @28 (0)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (1)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (2)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (3)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (4)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (5)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (6)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (7)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] @1401200 -group_end @22 dct_tests_01.dct_iv_8x8_i.t_wa[3:0] @28 dct_tests_01.dct_iv_8x8_i.t_we0 dct_tests_01.dct_iv_8x8_i.t_we1 dct_tests_01.dct_iv_8x8_i.dctv_start_0_r dct_tests_01.dct_iv_8x8_i.dctv_start_1_r dct_tests_01.dct_iv_8x8_i.dctv_en0 dct_tests_01.dct_iv_8x8_i.dctv_en1 dct_tests_01.dct_iv_8x8_i.dctv_phin_start dct_tests_01.dct_iv_8x8_i.dctv_phin_run @c00022 [color] 2 dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] @28 (0)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] (1)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] (2)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] (3)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] (4)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] (5)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] (6)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] @1401200 -group_end @8022 dct_tests_01.dct_iv_8x8_i.t_ra0[2:0] dct_tests_01.dct_iv_8x8_i.t_ra1[2:0] @22 dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] dct_tests_01.dct_iv_8x8_i.dctv_debug_xin0[7:0] @8022 dct_tests_01.dct_iv_8x8_i.dctv_debug_xin0[7:0] @22 dct_tests_01.dct_iv_8x8_i.dctv_debug_xin1[7:0] @28 dct_tests_01.dct_iv_8x8_i.dctv_start_0_r dct_tests_01.dct_iv_8x8_i.dctv_start_1_r dct_tests_01.dct_iv_8x8_i.dctv_en0 dct_tests_01.dct_iv_8x8_i.dctv_en1 dct_tests_01.dct_iv_8x8_i.dctv_en_out0 dct_tests_01.dct_iv_8x8_i.dctv_en_out1 @8420 dct_tests_01.dct_iv_8x8_i.dctv_dout0[23:0] @c00022 dct_tests_01.dct_iv_8x8_i.dctv_yindex0[2:0] @28 (0)dct_tests_01.dct_iv_8x8_i.dctv_yindex0[2:0] (1)dct_tests_01.dct_iv_8x8_i.dctv_yindex0[2:0] (2)dct_tests_01.dct_iv_8x8_i.dctv_yindex0[2:0] @1401200 -group_end @8420 dct_tests_01.dct_iv_8x8_i.dctv_dout1[23:0] @22 dct_tests_01.dct_iv_8x8_i.dctv_yindex1[2:0] @28 dct_tests_01.dct_iv_8x8_i.dctv_out_start dct_tests_01.dct_iv_8x8_i.dctv_out_run @22 dct_tests_01.dct_iv_8x8_i.dctv_out_cntr[6:0] @28 (0)dct_tests_01.dct_iv_8x8_i.dctv_out_we_1[1:0] dct_tests_01.dct_iv_8x8_i.dctv_out_sel @22 dct_tests_01.dct_iv_8x8_i.dctv_out_wa_1[3:0] @28 dct_tests_01.dct_iv_8x8_i.dctv_out_start_1 dct_tests_01.dct_iv_8x8_i.dctv_out_run_1 @22 dct_tests_01.dct_iv_8x8_i.dctv_out_ra_1[6:0] dct_tests_01.dct_iv_8x8_i.dctv_out_ra_1_w[3:0] @420 dct_tests_01.dct_iv_8x8_i.dctv_out_reg_1[23:0] @8420 dct_tests_01.dct_iv_8x8_i.dctv_out_reg_1[23:0] @22 dct_tests_01.dct_iv_8x8_i.dctv_out_debug_reg_1[2:0] @28 dct_tests_01.dct_iv_8x8_i.dctv_out_we_2 @22 dct_tests_01.dct_iv_8x8_i.dctv_out_wa_2[1:0] @28 dct_tests_01.dct_iv_8x8_i.dctv_out_run_2 @22 dct_tests_01.dct_iv_8x8_i.dctv_out_ra_2[6:0] @420 dct_tests_01.dct_iv_8x8_i.dctv_out_reg_2[23:0] @8420 dct_tests_01.dct_iv_8x8_i.dctv_out_reg_2[23:0] @22 dct_tests_01.dct_iv_8x8_i.dctv_out_debug_reg_2[2:0] @1000200 -dct_iv_8x8 @800200 -dct_iv_8x8r @200 - @1000200 -dct_iv_8x8r -st22d_test [pattern_trace] 1 [pattern_trace] 0 dsp/dct_iv.ods +6.67 KiB (82.5 KiB) File changed.No diff preview for this file type. View original file View changed file dsp/dct_iv8_1d.v +26 −5 Original line number Diff line number Diff line Loading @@ -71,11 +71,10 @@ module dct_iv8_1d#( output [OUT_WIDTH -1:0] dout, output reg pre2_start_out, // 2 clock cycle before Y0 output, full dout sequence // start_out-x-Y0-x-Y7-x-Y4-x-Y3-x-Y1-x-Y6-x-Y2-x-Y5 output reg en_out // valid at the same time slot as pre2_start_out (goes active with pre2_start_out) output en_out, // valid at the same time slot as pre2_start_out (goes active with pre2_start_out), 2 ahead of data output reg [2:0] y_index // for simulation - valid with dout - index of the data output ); // X6-X7-X5-X2-X1-X3-X0-X4-*-X5-X1-X2-*-X4-X7-* // X2-X7-X3-X4-X5-X6-X0-X1-*-X3-X5-X4-*-X1-X7-* // X2-X7-X3-X4-X5-X6-X0-X1-*-X3-X5-X4-*-X6-X7-* localparam RSHIFT1 = 2; // safe right shift for stage 1 localparam STAGE1_RSHIFT = COSINE_SHIFT + (WIDTH - A_WIDTH) + RSHIFT1; // divide by 4 in stage 1 - never saturates Loading Loading @@ -132,6 +131,11 @@ module dct_iv8_1d#( reg run_in; // receiving input data reg restart; // restarting next block if en was active at phase=14; reg run_out; // running output data reg en_out_r; reg en_out_r2; assign en_out = en_out_r; assign dsp_ain_2 = dsp_p_1 [STAGE1_RSHIFT +: A_WIDTH]; Loading @@ -147,6 +151,23 @@ module dct_iv8_1d#( wire din_zero = ~(|d_in); assign dsp_cin_1 = {{P_WIDTH-WIDTH-COSINE_SHIFT{d_in[WIDTH-1]}},d_in,~d_in[WIDTH-1]^din_zero,{COSINE_SHIFT-1{d_in[WIDTH-1]}}}; always @ (posedge clk) begin en_out_r2 <= en_out_r; if (en_out_r2) begin case (phase_cnt[3:1]) 3'h0: y_index <= 0; 3'h1: y_index <= 7; 3'h2: y_index <= 4; 3'h3: y_index <= 3; 3'h4: y_index <= 1; 3'h5: y_index <= 6; 3'h6: y_index <= 2; 3'h7: y_index <= 5; endcase end else begin y_index <= 'bx; end end //register files assign dsp_din_1 = dsp_din_1_ram[dsp_din_1_ra]; Loading @@ -173,7 +194,7 @@ module dct_iv8_1d#( pre2_start_out <= run_out && (phase_cnt == 14); en_out <= run_out && !phase_cnt[0]; en_out_r <= run_out && !phase_cnt[0]; // Cosine table, defined to fit into 17 bits for 18-bit signed DSP B-operand case (phase_cnt) Loading Loading
dct_tests_01.sav +417 −16 Original line number Diff line number Diff line [*] [*] GTKWave Analyzer v3.3.66 (w)1999-2015 BSI [*] Tue Dec 6 17:55:24 2016 [*] GTKWave Analyzer v3.3.78 (w)1999-2016 BSI [*] Tue Dec 13 19:43:18 2016 [*] [dumpfile] "/home/eyesis/git/x393-neon/simulation/dct_tests_01-20161206105514691.fst" [dumpfile_mtime] "Tue Dec 6 17:55:14 2016" [dumpfile_size] 10348 [dumpfile] "/home/eyesis/git/x393-neon/simulation/dct_tests_01-20161213123921501.fst" [dumpfile_mtime] "Tue Dec 13 19:39:21 2016" [dumpfile_size] 103386 [savefile] "/home/eyesis/git/x393-neon/dct_tests_01.sav" [timestart] 0 [size] 1814 1171 [pos] 1937 0 *-18.387537 1752000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 [pos] 1912 0 *-19.687614 3465000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 [treeopen] dct_tests_01. [treeopen] dct_tests_01.dct_iv8_1d_i. [treeopen] dct_tests_01.dct_iv8_1d_i.dsp_ma_preadd_c_1_i. [treeopen] dct_tests_01.dct_iv_8x8_i. [treeopen] dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i. [treeopen] dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i. [sst_width] 204 [signals_width] 305 [signals_width] 302 [sst_expanded] 1 [sst_vpaned_height] 344 @800200 @c00200 -top @25 @24 dct_tests_01.i dct_tests_01.j @28 Loading Loading @@ -87,10 +90,82 @@ dct_tests_01.y_we dct_tests_01.phase_y[3:0] dct_tests_01.y_dct[23:0] dct_tests_01.y_out[23:0] @1000200 dct_tests_01.dct_iv8_1d_i.y_index[2:0] @1401200 -top @800200 @c00200 -2d-1d @28 dct_tests_01.start @420 dct_tests_01.x_in[23:0] @8420 dct_tests_01.x_in[23:0] @22 dct_tests_01.x_out[23:0] @8420 dct_tests_01.x_out[23:0] @28 dct_tests_01.dct_iv8_1d_i.start @22 dct_tests_01.dct_iv8_1d_i.phase_cnt[3:0] @8420 dct_tests_01.dct_iv8_1d_i.d_in[23:0] @28 dct_tests_01.dct_iv8_1d_i.pre2_start_out @8420 [color] 7 dct_tests_01.dct_iv8_1d_i.dout[23:0] dct_tests_01.y_dct[23:0] @22 dct_tests_01.y_wa[2:0] @28 dct_tests_01.y_we dct_tests_01.dct_iv8_1d_i.en_out dct_tests_01.dct_iv8_1d_i.en_out_r @22 dct_tests_01.dct_iv8_1d_i.y_index[2:0] dct_tests_01.y_ra[2:0] @28 dct_tests_01.y_dv @8420 dct_tests_01.y_out[23:0] @28 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i.start @22 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i.phase_cnt[3:0] @8420 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i.d_in[23:0] dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i.dout[23:0] @28 [color] 7 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i.en_out @22 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_0_i.y_index[2:0] @28 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.start @22 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.phase_cnt[3:0] @8420 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.d_in[23:0] dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.dout[23:0] @28 [color] 7 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.en_out @22 dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.y_index[2:0] @200 - @1401200 -2d-1d @c00200 -dct_iv8_1d @22 [color] 2 dct_tests_01.dct_iv8_1d_i.phase_cnt[3:0] @28 dct_tests_01.dct_iv8_1d_i.en_out dct_tests_01.dct_iv8_1d_i.run_out @c08022 dct_tests_01.phase_out[3:0] @28 Loading @@ -105,8 +180,6 @@ dct_tests_01.dct_iv8_1d_i.start dct_tests_01.dct_iv8_1d_i.restart dct_tests_01.dct_iv8_1d_i.clk @8022 [color] 2 dct_tests_01.dct_iv8_1d_i.phase_cnt[3:0] dct_tests_01.dct_iv8_1d_i.d_in[23:0] dct_tests_01.dct_iv8_1d_i.dsp_ain_1[24:0] @28 Loading @@ -124,8 +197,8 @@ dct_tests_01.dct_iv8_1d_i.dsp_ced_1 @22 dct_tests_01.dct_iv8_1d_i.dsp_cin_1[47:0] @28 dct_tests_01.dct_iv8_1d_i.dsp_cec_1 dct_tests_01.dct_iv8_1d_i.dsp_neg_m_1 dct_tests_01.dct_iv8_1d_i.dsp_cec_1 dct_tests_01.dct_iv8_1d_i.dsp_post_add_1 dct_tests_01.dct_iv8_1d_i.dsp_accum_1 @22 Loading Loading @@ -238,7 +311,335 @@ dct_tests_01.dct_iv8_1d_i.pre2_start_out dct_tests_01.dct_iv8_1d_i.rst dct_tests_01.dct_iv8_1d_i.run_in dct_tests_01.dct_iv8_1d_i.run_out @1000200 @1401200 -dct_iv8_1d @800200 -st22d_test @28 dct_tests_01.CLK dct_tests_01.RST [color] 2 dct_tests_01.start [color] 2 dct_tests_01.start2 @c00022 dct_tests_01.x_in_2d[23:0] @28 (0)dct_tests_01.x_in_2d[23:0] (1)dct_tests_01.x_in_2d[23:0] (2)dct_tests_01.x_in_2d[23:0] (3)dct_tests_01.x_in_2d[23:0] (4)dct_tests_01.x_in_2d[23:0] (5)dct_tests_01.x_in_2d[23:0] (6)dct_tests_01.x_in_2d[23:0] (7)dct_tests_01.x_in_2d[23:0] (8)dct_tests_01.x_in_2d[23:0] (9)dct_tests_01.x_in_2d[23:0] (10)dct_tests_01.x_in_2d[23:0] (11)dct_tests_01.x_in_2d[23:0] (12)dct_tests_01.x_in_2d[23:0] (13)dct_tests_01.x_in_2d[23:0] (14)dct_tests_01.x_in_2d[23:0] (15)dct_tests_01.x_in_2d[23:0] (16)dct_tests_01.x_in_2d[23:0] (17)dct_tests_01.x_in_2d[23:0] (18)dct_tests_01.x_in_2d[23:0] (19)dct_tests_01.x_in_2d[23:0] (20)dct_tests_01.x_in_2d[23:0] (21)dct_tests_01.x_in_2d[23:0] (22)dct_tests_01.x_in_2d[23:0] (23)dct_tests_01.x_in_2d[23:0] @1401200 -group_end @c08420 dct_tests_01.x_in_2d[23:0] @28 (0)dct_tests_01.x_in_2d[23:0] (1)dct_tests_01.x_in_2d[23:0] (2)dct_tests_01.x_in_2d[23:0] (3)dct_tests_01.x_in_2d[23:0] (4)dct_tests_01.x_in_2d[23:0] (5)dct_tests_01.x_in_2d[23:0] (6)dct_tests_01.x_in_2d[23:0] (7)dct_tests_01.x_in_2d[23:0] (8)dct_tests_01.x_in_2d[23:0] (9)dct_tests_01.x_in_2d[23:0] (10)dct_tests_01.x_in_2d[23:0] (11)dct_tests_01.x_in_2d[23:0] (12)dct_tests_01.x_in_2d[23:0] (13)dct_tests_01.x_in_2d[23:0] (14)dct_tests_01.x_in_2d[23:0] (15)dct_tests_01.x_in_2d[23:0] (16)dct_tests_01.x_in_2d[23:0] (17)dct_tests_01.x_in_2d[23:0] (18)dct_tests_01.x_in_2d[23:0] (19)dct_tests_01.x_in_2d[23:0] (20)dct_tests_01.x_in_2d[23:0] (21)dct_tests_01.x_in_2d[23:0] (22)dct_tests_01.x_in_2d[23:0] (23)dct_tests_01.x_in_2d[23:0] @1401200 -group_end @28 dct_tests_01.pre_busy_2d dct_tests_01.pre_last_in_2d dct_tests_01.pre_first_out_2d dct_tests_01.dv_2d @420 dct_tests_01.d_out_2d[23:0] @8420 dct_tests_01.d_out_2d[23:0] @28 dct_tests_01.dv_2dr @22 dct_tests_01.d_out_2dr[23:0] @8421 dct_tests_01.d_out_2dr[23:0] @200 - @800200 -dct_iv_8x8 @28 dct_tests_01.dct_iv_8x8_i.clk dct_tests_01.dct_iv_8x8_i.start dct_tests_01.dct_iv_8x8_i.pre_last_in dct_tests_01.dct_iv_8x8_i.pre_busy dct_tests_01.dct_iv_8x8_i.x_run @c00022 dct_tests_01.dct_iv_8x8_i.x_wa[5:0] @28 (0)dct_tests_01.dct_iv_8x8_i.x_wa[5:0] (1)dct_tests_01.dct_iv_8x8_i.x_wa[5:0] (2)dct_tests_01.dct_iv_8x8_i.x_wa[5:0] (3)dct_tests_01.dct_iv_8x8_i.x_wa[5:0] (4)dct_tests_01.dct_iv_8x8_i.x_wa[5:0] (5)dct_tests_01.dct_iv_8x8_i.x_wa[5:0] @1401200 -group_end @28 dct_tests_01.dct_iv_8x8_i.dcth_phin_start @22 dct_tests_01.dct_iv_8x8_i.dcth_phin_run @c00022 dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] @28 (0)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] (1)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] (2)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] (3)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] (4)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] (5)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] (6)dct_tests_01.dct_iv_8x8_i.dcth_phin[6:0] @1401200 -group_end @22 dct_tests_01.dct_iv_8x8_i.x_ra0[2:0] dct_tests_01.dct_iv_8x8_i.x_ra1[2:0] @28 dct_tests_01.dct_iv_8x8_i.dcth_en0 dct_tests_01.dct_iv_8x8_i.dcth_start_0_r @22 dct_tests_01.dct_iv_8x8_i.dcth_xin0[23:0] @28 dct_tests_01.dct_iv_8x8_i.dcth_en_out0 @22 dct_tests_01.dct_iv_8x8_i.dcth_yindex0[2:0] dct_tests_01.dct_iv_8x8_i.dcth_dout0[23:0] @200 - @28 dct_tests_01.dct_iv_8x8_i.dcth_en1 dct_tests_01.dct_iv_8x8_i.dcth_start_1_r @22 dct_tests_01.dct_iv_8x8_i.dcth_xin1[23:0] @28 dct_tests_01.dct_iv_8x8_i.dcth_en_out1 @22 dct_tests_01.dct_iv_8x8_i.dcth_yindex1[2:0] dct_tests_01.dct_iv_8x8_i.dcth_dout1[23:0] @200 - @22 dct_tests_01.dct_iv_8x8_i.transpose_start @28 dct_tests_01.dct_iv_8x8_i.transpose_in_run @22 dct_tests_01.dct_iv_8x8_i.transpose_w_page[1:0] [color] 3 dct_tests_01.dct_iv_8x8_i.transpose_cntr[6:0] @28 dct_tests_01.dct_iv_8x8_i.transpose_wa_decr @22 dct_tests_01.dct_iv_8x8_i.transpose_wa_low[2:0] dct_tests_01.dct_iv_8x8_i.transpose_wa_high[4:0] dct_tests_01.dct_iv_8x8_i.transpose_wa[7:0] @28 (0)dct_tests_01.dct_iv_8x8_i.transpose_we[1:0] @22 [color] 2 dct_tests_01.dct_iv_8x8_i.transpose_debug_di[7:0] @28 dct_tests_01.dct_iv_8x8_i.transpose_out_start @800022 dct_tests_01.dct_iv_8x8_i.transpose_out_run[2:0] @28 (0)dct_tests_01.dct_iv_8x8_i.transpose_out_run[2:0] (1)dct_tests_01.dct_iv_8x8_i.transpose_out_run[2:0] (2)dct_tests_01.dct_iv_8x8_i.transpose_out_run[2:0] @1001200 -group_end @c00028 dct_tests_01.dct_iv_8x8_i.transpose_r_page[1:0] @28 (0)dct_tests_01.dct_iv_8x8_i.transpose_r_page[1:0] (1)dct_tests_01.dct_iv_8x8_i.transpose_r_page[1:0] @1401200 -group_end @c00022 dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] @28 (0)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] (1)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] (2)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] (3)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] (4)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] (5)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] (6)dct_tests_01.dct_iv_8x8_i.transpose_rcntr[6:0] @1401200 -group_end @22 [color] 5 dct_tests_01.dct_iv_8x8_i.transpose_ra[7:0] @8420 dct_tests_01.dct_iv_8x8_i.transpose_reg[23:0] dct_tests_01.dct_iv_8x8_i.transpose_out[23:0] @c00022 dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] @28 (0)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (1)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (2)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (3)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (4)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (5)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (6)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] (7)dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] @1401200 -group_end @22 dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] @c08022 dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] @28 (0)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (1)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (2)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (3)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (4)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (5)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (6)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] (7)dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] @1401200 -group_end @22 dct_tests_01.dct_iv_8x8_i.t_wa[3:0] @28 dct_tests_01.dct_iv_8x8_i.t_we0 dct_tests_01.dct_iv_8x8_i.t_we1 dct_tests_01.dct_iv_8x8_i.dctv_start_0_r dct_tests_01.dct_iv_8x8_i.dctv_start_1_r dct_tests_01.dct_iv_8x8_i.dctv_en0 dct_tests_01.dct_iv_8x8_i.dctv_en1 dct_tests_01.dct_iv_8x8_i.dctv_phin_start dct_tests_01.dct_iv_8x8_i.dctv_phin_run @c00022 [color] 2 dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] @28 (0)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] (1)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] (2)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] (3)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] (4)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] (5)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] (6)dct_tests_01.dct_iv_8x8_i.dctv_phin[6:0] @1401200 -group_end @8022 dct_tests_01.dct_iv_8x8_i.t_ra0[2:0] dct_tests_01.dct_iv_8x8_i.t_ra1[2:0] @22 dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] dct_tests_01.dct_iv_8x8_i.dctv_debug_xin0[7:0] @8022 dct_tests_01.dct_iv_8x8_i.dctv_debug_xin0[7:0] @22 dct_tests_01.dct_iv_8x8_i.dctv_debug_xin1[7:0] @28 dct_tests_01.dct_iv_8x8_i.dctv_start_0_r dct_tests_01.dct_iv_8x8_i.dctv_start_1_r dct_tests_01.dct_iv_8x8_i.dctv_en0 dct_tests_01.dct_iv_8x8_i.dctv_en1 dct_tests_01.dct_iv_8x8_i.dctv_en_out0 dct_tests_01.dct_iv_8x8_i.dctv_en_out1 @8420 dct_tests_01.dct_iv_8x8_i.dctv_dout0[23:0] @c00022 dct_tests_01.dct_iv_8x8_i.dctv_yindex0[2:0] @28 (0)dct_tests_01.dct_iv_8x8_i.dctv_yindex0[2:0] (1)dct_tests_01.dct_iv_8x8_i.dctv_yindex0[2:0] (2)dct_tests_01.dct_iv_8x8_i.dctv_yindex0[2:0] @1401200 -group_end @8420 dct_tests_01.dct_iv_8x8_i.dctv_dout1[23:0] @22 dct_tests_01.dct_iv_8x8_i.dctv_yindex1[2:0] @28 dct_tests_01.dct_iv_8x8_i.dctv_out_start dct_tests_01.dct_iv_8x8_i.dctv_out_run @22 dct_tests_01.dct_iv_8x8_i.dctv_out_cntr[6:0] @28 (0)dct_tests_01.dct_iv_8x8_i.dctv_out_we_1[1:0] dct_tests_01.dct_iv_8x8_i.dctv_out_sel @22 dct_tests_01.dct_iv_8x8_i.dctv_out_wa_1[3:0] @28 dct_tests_01.dct_iv_8x8_i.dctv_out_start_1 dct_tests_01.dct_iv_8x8_i.dctv_out_run_1 @22 dct_tests_01.dct_iv_8x8_i.dctv_out_ra_1[6:0] dct_tests_01.dct_iv_8x8_i.dctv_out_ra_1_w[3:0] @420 dct_tests_01.dct_iv_8x8_i.dctv_out_reg_1[23:0] @8420 dct_tests_01.dct_iv_8x8_i.dctv_out_reg_1[23:0] @22 dct_tests_01.dct_iv_8x8_i.dctv_out_debug_reg_1[2:0] @28 dct_tests_01.dct_iv_8x8_i.dctv_out_we_2 @22 dct_tests_01.dct_iv_8x8_i.dctv_out_wa_2[1:0] @28 dct_tests_01.dct_iv_8x8_i.dctv_out_run_2 @22 dct_tests_01.dct_iv_8x8_i.dctv_out_ra_2[6:0] @420 dct_tests_01.dct_iv_8x8_i.dctv_out_reg_2[23:0] @8420 dct_tests_01.dct_iv_8x8_i.dctv_out_reg_2[23:0] @22 dct_tests_01.dct_iv_8x8_i.dctv_out_debug_reg_2[2:0] @1000200 -dct_iv_8x8 @800200 -dct_iv_8x8r @200 - @1000200 -dct_iv_8x8r -st22d_test [pattern_trace] 1 [pattern_trace] 0
dsp/dct_iv.ods +6.67 KiB (82.5 KiB) File changed.No diff preview for this file type. View original file View changed file
dsp/dct_iv8_1d.v +26 −5 Original line number Diff line number Diff line Loading @@ -71,11 +71,10 @@ module dct_iv8_1d#( output [OUT_WIDTH -1:0] dout, output reg pre2_start_out, // 2 clock cycle before Y0 output, full dout sequence // start_out-x-Y0-x-Y7-x-Y4-x-Y3-x-Y1-x-Y6-x-Y2-x-Y5 output reg en_out // valid at the same time slot as pre2_start_out (goes active with pre2_start_out) output en_out, // valid at the same time slot as pre2_start_out (goes active with pre2_start_out), 2 ahead of data output reg [2:0] y_index // for simulation - valid with dout - index of the data output ); // X6-X7-X5-X2-X1-X3-X0-X4-*-X5-X1-X2-*-X4-X7-* // X2-X7-X3-X4-X5-X6-X0-X1-*-X3-X5-X4-*-X1-X7-* // X2-X7-X3-X4-X5-X6-X0-X1-*-X3-X5-X4-*-X6-X7-* localparam RSHIFT1 = 2; // safe right shift for stage 1 localparam STAGE1_RSHIFT = COSINE_SHIFT + (WIDTH - A_WIDTH) + RSHIFT1; // divide by 4 in stage 1 - never saturates Loading Loading @@ -132,6 +131,11 @@ module dct_iv8_1d#( reg run_in; // receiving input data reg restart; // restarting next block if en was active at phase=14; reg run_out; // running output data reg en_out_r; reg en_out_r2; assign en_out = en_out_r; assign dsp_ain_2 = dsp_p_1 [STAGE1_RSHIFT +: A_WIDTH]; Loading @@ -147,6 +151,23 @@ module dct_iv8_1d#( wire din_zero = ~(|d_in); assign dsp_cin_1 = {{P_WIDTH-WIDTH-COSINE_SHIFT{d_in[WIDTH-1]}},d_in,~d_in[WIDTH-1]^din_zero,{COSINE_SHIFT-1{d_in[WIDTH-1]}}}; always @ (posedge clk) begin en_out_r2 <= en_out_r; if (en_out_r2) begin case (phase_cnt[3:1]) 3'h0: y_index <= 0; 3'h1: y_index <= 7; 3'h2: y_index <= 4; 3'h3: y_index <= 3; 3'h4: y_index <= 1; 3'h5: y_index <= 6; 3'h6: y_index <= 2; 3'h7: y_index <= 5; endcase end else begin y_index <= 'bx; end end //register files assign dsp_din_1 = dsp_din_1_ram[dsp_din_1_ra]; Loading @@ -173,7 +194,7 @@ module dct_iv8_1d#( pre2_start_out <= run_out && (phase_cnt == 14); en_out <= run_out && !phase_cnt[0]; en_out_r <= run_out && !phase_cnt[0]; // Cosine table, defined to fit into 17 bits for 18-bit signed DSP B-operand case (phase_cnt) Loading