From 12ed7ed15d63700de203144e7bfdfb071e02821c Mon Sep 17 00:00:00 2001 From: AndreyFilippov Date: Mon, 12 Dec 2016 23:35:24 -0700 Subject: [PATCH] working on dct-iv --- dct_tests_01.sav | 367 ++++++++++++++++++++++++-- dsp/dct_iv.ods | Bin 77625 -> 98424 bytes dsp/dct_iv8_1d.v | 26 +- dsp/dct_iv_8x8.v | 609 ++++++++++++++++++++++++++++++++++++++++++++ dsp/dct_tests_01.tf | 141 ++++++++-- 5 files changed, 1099 insertions(+), 44 deletions(-) create mode 100644 dsp/dct_iv_8x8.v diff --git a/dct_tests_01.sav b/dct_tests_01.sav index df3e21c..d4720f4 100644 --- a/dct_tests_01.sav +++ b/dct_tests_01.sav @@ -1,25 +1,26 @@ [*] -[*] 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 06:32:08 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-20161212230744155.fst" +[dumpfile_mtime] "Tue Dec 13 06:07:44 2016" +[dumpfile_size] 100634 [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] 1920 0 +*-19.687614 1195000 -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. [sst_width] 204 -[signals_width] 305 +[signals_width] 325 [sst_expanded] 1 [sst_vpaned_height] 344 -@800200 +@c00200 -top -@25 +@24 dct_tests_01.i dct_tests_01.j @28 @@ -87,10 +88,50 @@ 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 +-2d-1d +@28 +dct_tests_01.start +@22 +dct_tests_01.x_out[23:0] +@8420 +dct_tests_01.x_out[23:0] +dct_tests_01.dct_iv8_1d_i.d_in[23:0] +dct_tests_01.dct_iv8_1d_i.dout[23:0] +@28 +dct_tests_01.dct_iv8_1d_i.en_out +@22 +dct_tests_01.dct_iv8_1d_i.y_index[2: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[24:0] +@28 +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] +@8420 +dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.d_in[23:0] +@8421 +dct_tests_01.dct_iv_8x8_i.dct_iv8_1d_pass1_1_i.dout[24:0] +@28 +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 +- +@1000200 +-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 @@ -105,8 +146,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 @@ -124,8 +163,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 @@ -238,7 +277,305 @@ 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 +@22 +dct_tests_01.d_out_2d[23:0] +@28 +dct_tests_01.dv_2dr +@22 +dct_tests_01.d_out_2dr[23:0] +@8420 +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_dout0[24:0] +dct_tests_01.dct_iv_8x8_i.dcth_yindex0[2: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_dout1[24:0] +dct_tests_01.dct_iv_8x8_i.dcth_yindex1[2: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 +dct_tests_01.dct_iv_8x8_i.transpose_we +@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 +dct_tests_01.dct_iv_8x8_i.transpose_ra[7:0] +dct_tests_01.dct_iv_8x8_i.transpose_reg[24:0] +@8420 +dct_tests_01.dct_iv_8x8_i.transpose_out[24:0] +@22 +dct_tests_01.dct_iv_8x8_i.transpose_out[24:0] +dct_tests_01.dct_iv_8x8_i.transpose_debug_reg[7:0] +dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] +@8022 +dct_tests_01.dct_iv_8x8_i.transpose_debug_out[7:0] +@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.dctv_xin0[24:0] +@8420 +dct_tests_01.dct_iv_8x8_i.dctv_xin0[24:0] +@22 +dct_tests_01.dct_iv_8x8_i.dctv_xin1[24:0] +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 +@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 +@22 +dct_tests_01.dct_iv_8x8_i.dctv_yindex1[2:0] +dct_tests_01.dct_iv_8x8_i.dctv_dout0[24:0] +dct_tests_01.dct_iv_8x8_i.dctv_dout1[24: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 +dct_tests_01.dct_iv_8x8_i.dctv_out_we_1 +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] +dct_tests_01.dct_iv_8x8_i.dctv_out_reg_1[23:0] +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] +dct_tests_01.dct_iv_8x8_i.dctv_out_reg_2[23:0] +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 diff --git a/dsp/dct_iv.ods b/dsp/dct_iv.ods index 8248d0a44f3221fa05b88e9873f942ee8610c63c..6d256b7f472248552ae39627f0aa3965b407e248 100644 GIT binary patch delta 68034 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 diff --git a/dsp/dct_iv8_1d.v b/dsp/dct_iv8_1d.v index ea93dfc..fdd0be2 100644 --- a/dsp/dct_iv8_1d.v +++ b/dsp/dct_iv8_1d.v @@ -71,7 +71,9 @@ 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), 1 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-* @@ -132,6 +134,9 @@ 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; + + assign en_out = en_out_r; assign dsp_ain_2 = dsp_p_1 [STAGE1_RSHIFT +: A_WIDTH]; @@ -147,6 +152,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 + if (en_out_r) begin + case (phase_cnt[3:1]) + 3'h0: y_index <= 7; + 3'h1: y_index <= 4; + 3'h2: y_index <= 3; + 3'h3: y_index <= 1; + 3'h4: y_index <= 6; + 3'h5: y_index <= 2; + 3'h6: y_index <= 5; + 3'h7: y_index <= 0; + endcase + end else begin + y_index <= 'bx; + end + end + //register files assign dsp_din_1 = dsp_din_1_ram[dsp_din_1_ra]; @@ -173,7 +195,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) diff --git a/dsp/dct_iv_8x8.v b/dsp/dct_iv_8x8.v new file mode 100644 index 0000000..73ac5e8 --- /dev/null +++ b/dsp/dct_iv_8x8.v @@ -0,0 +1,609 @@ +/*! + * Module:dct_iv_8x8 + * @file dct_iv_8x8.v + * @date 2016-12-08 + * @author Andrey Filippov + * + * @brief 2-d DCT-IV implementation, 1 clock/data word. Input in scanline order, output - transposed + * + * @copyright Copyright (c) 2016 Elphel, Inc. + * + * License: + * + *dct_iv_8x8.v is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * dct_iv_8x8.v is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Additional permission under GNU GPL version 3 section 7: + * If you modify this Program, or any covered work, by linking or combining it + * with independent modules provided by the FPGA vendor only (this permission + * does not extend to any 3-rd party modules, "soft cores" or macros) under + * different license terms solely for the purpose of generating binary "bitstream" + * files and/or simulating the code, the copyright holders of this Program give + * you the right to distribute the covered work without those independent modules + * as long as the source code for them is available from the FPGA vendor free of + * charge, and there is no dependence on any encrypted modules for simulating of + * the combined code. This permission applies to you if the distributed code + * contains all the components and scripts required to completely simulate it + * with at least one of the Free Software programs. + */ +`timescale 1ns/1ps + +module dct_iv_8x8#( + parameter INPUT_WIDTH = 25, + parameter OUT_WIDTH = 25, + parameter OUT_RSHIFT1 = 3, // overall right shift of the result from input, aligned by MSB for pass1 (>=3 will never cause saturation) + parameter OUT_RSHIFT2 = 0, // overall right shift of the result from input, aligned by MSB for pass2 (>=3 will never cause saturation) + parameter TRANSPOSE_WIDTH = 25, // transpose memory width + parameter DSP_B_WIDTH = 18, + parameter DSP_A_WIDTH = 25, + parameter DSP_P_WIDTH = 48, + parameter COSINE_SHIFT= 17, + parameter COS_01_32 = 130441, // int(round((1<<17) * cos( 1*pi/32))) + parameter COS_03_32 = 125428, // int(round((1<<17) * cos( 3*pi/32))) + parameter COS_04_32 = 121095, // int(round((1<<17) * cos( 4*pi/32))) + parameter COS_05_32 = 115595, // int(round((1<<17) * cos( 5*pi/32))) + parameter COS_07_32 = 101320, // int(round((1<<17) * cos( 7*pi/32))) + parameter COS_08_32 = 92682, // int(round((1<<17) * cos( 8*pi/32))) + parameter COS_09_32 = 83151, // int(round((1<<17) * cos( 9*pi/32))) + parameter COS_11_32 = 61787, // int(round((1<<17) * cos(11*pi/32))) + parameter COS_12_32 = 50159, // int(round((1<<17) * cos(12*pi/32))) + parameter COS_13_32 = 38048, // int(round((1<<17) * cos(13*pi/32))) + parameter COS_15_32 = 12847 // int(round((1<<17) * cos(15*pi/32))) + ) ( + input clk, //!< system clock, posedge + input rst, //!< sync reset + input start, //!< single-cycle start pulse that goes with the first pixel data. + // Next data should be sent in bursts of 8, pause of 8 - total 128 cycles + input signed [INPUT_WIDTH-1:0] xin, //!< input data + output pre_last_in, //!< output high during input of the pre-last of 64 pixels in a 8x8 block (next can be start + output reg pre_first_out, //!< 1 cycle ahead of the first output in a 64 block + output reg dv, //!< data output valid. WAS: Will go high on the 94-th cycle after the start + output signed [OUT_WIDTH-1:0] d_out, //!< output data + output reg pre_busy); //!< start should come each 64-th cycle (next after pre_last_in), and not after pre_busy) + +// 1. Two 16xINPUT_WIDTH memories to feed two of the 'horizontal' 1-dct - they should provide outputs shifted by 1 clock +// 2. of the horizontal DCTs +// 3. common transpose memory plus 2 input reorder memory for each of the vertical DCT +// 4. 2 of the vertical DCTs +// 5. small memory to combine/reorder outputs (2 stages as 1 x16 memory is not enough) + reg x_run; + reg [5:0] x_wa; + wire dcth_phin_start = x_run && (x_wa[5:0] == 6); + reg dcth_phin_run; + reg dcth_en0; + reg dcth_en1; + reg [6:0] dcth_phin; + reg [2:0] x_ra0; + reg [2:0] x_ra1; + reg signed [INPUT_WIDTH-1:0] x_ram0[0:7]; + reg signed [INPUT_WIDTH-1:0] x_ram1[0:7]; + reg signed [INPUT_WIDTH-1:0] dcth_xin0; + reg signed [INPUT_WIDTH-1:0] dcth_xin1; + + wire signed [TRANSPOSE_WIDTH-1:0] dcth_dout0; + wire signed [TRANSPOSE_WIDTH-1:0] dcth_dout1; +// wire dcth_pre2_start_out0; +// wire dcth_pre2_start_out1; + wire dcth_en_out0; + wire dcth_en_out1; + + wire dcth_start_0_w = dcth_phin_run && (dcth_phin [6:0] ==0); + wire dcth_start_1_w = dcth_phin_run && (dcth_phin [6:0] ==9); + + reg dcth_start_0_r; + reg dcth_start_1_r; + + reg [1:0] transpose_w_page; + reg [6:0] transpose_cntr; // transpose memory counter, [6] == 1 when the last page is being finished + reg transpose_in_run; + wire transpose_start = dcth_phin_run && (dcth_phin [6:0] == 7'h10); + reg [2:0] transpose_wa_low; // [2:0] transpose memory low address bits, [3] - other group (of 16) + reg [4:0] transpose_wa_high; // high bits of transpose memory write address + wire [7:0] transpose_wa = {transpose_wa_high,transpose_wa_low}; + wire transpose_wa_decr = (transpose_cntr[0] & ~transpose_cntr[3]); + reg transpose_we; + wire [TRANSPOSE_WIDTH-1:0] transpose_di = transpose_cntr[0]? dcth_dout0: dcth_dout1; + + reg [TRANSPOSE_WIDTH-1:0] transpose_ram[0:255]; + wire [2:0] dcth_yindex0; + wire [2:0] dcth_yindex1; + wire [7:0] transpose_debug_di= {transpose_wa_high, transpose_cntr[0]? dcth_yindex0: dcth_yindex1}; + reg [7:0] transpose_debug_ram[0:255]; + + reg [6:0] transpose_rcntr; // transpose read memory counter, [6] == 1 when the last page is being finished + reg [2:0] transpose_out_run; + wire transpose_out_start = transpose_in_run && (transpose_cntr[6:0] == 7'h34); // 7'h33 is actual minimum + reg [1:0] transpose_r_page; + + reg [TRANSPOSE_WIDTH-1:0] transpose_reg; // internal BRAM register + reg [TRANSPOSE_WIDTH-1:0] transpose_out; // output BRAM register + + reg [7:0] transpose_debug_reg; // internal BRAM register + reg [7:0] transpose_debug_out; // output BRAM register + wire [7:0] transpose_ra = {transpose_r_page, transpose_rcntr[2:0], transpose_rcntr[5:3]}; + reg [3:0] t_wa; + wire t_we0 = transpose_out_run[2] && !t_wa[3]; + wire t_we1 = transpose_out_run[2] && t_wa[3]; + reg signed [TRANSPOSE_WIDTH-1:0] t_ram0[0:7]; + reg signed [TRANSPOSE_WIDTH-1:0] t_ram1[0:7]; + reg signed [TRANSPOSE_WIDTH-1:0] dctv_xin0; + reg signed [TRANSPOSE_WIDTH-1:0] dctv_xin1; + + reg signed [7:0] t_debug_ram0[0:7]; + reg signed [7:0] t_debug_ram1[0:7]; + reg signed [7:0] dctv_debug_xin0; // SuppressThisWarning VEditor - simulation only + reg signed [7:0] dctv_debug_xin1; // SuppressThisWarning VEditor - simulation only + + wire signed [OUT_WIDTH-1:0] dctv_dout0; + wire signed [OUT_WIDTH-1:0] dctv_dout1; + wire dctv_en_out0; + wire dctv_en_out1; + wire [2:0] dctv_yindex0; + wire [2:0] dctv_yindex1; + + wire dctv_phin_start = transpose_out_run && (transpose_rcntr[5:0] == 8); + reg dctv_phin_run; + + reg dctv_en0; + reg dctv_en1; + reg [6:0] dctv_phin; + reg [2:0] t_ra0; + reg [2:0] t_ra1; + wire dctv_start_0_w = dctv_phin_run && (dctv_phin [6:0] ==0); + wire dctv_start_1_w = dctv_phin_run && (dctv_phin [6:0] ==9); + reg dctv_start_0_r; + reg dctv_start_1_r; + + reg pre_last_in_r; + + reg [6:0] dctv_out_cntr; // count output data from second (vertical) pass (bit 6 - stopping) + reg dctv_out_run; // + wire dctv_out_start = dctv_phin [6:0] == 'h10; + + reg [3:0] dctv_out_wa_1; + reg dctv_out_we_1; + reg dctv_out_sel; // select DCTv channel output; + reg signed [OUT_WIDTH-1:0] dctv_out_ram_1[0:15]; + reg [2:0] dctv_out_debug_ram_1[0:15]; + + reg [6:0] dctv_out_ra_1; + wire [3:0] dctv_out_ra_1_w = {dctv_out_ra_1[3:1], ~dctv_out_ra_1[0]}; + wire dctv_out_start_1 = dctv_out_cntr[6:0] == 'h0c; // 'h0b; + reg dctv_out_run_1; + reg signed [OUT_WIDTH-1:0] dctv_out_reg_1; + reg [2:0] dctv_out_debug_reg_1; + + reg signed [OUT_WIDTH-1:0] dctv_out_ram_2[0:3]; + reg [2:0] dctv_out_debug_ram_2[0:3]; + reg dctv_out_we_2; + reg [1:0] dctv_out_wa_2; + reg [6:0] dctv_out_ra_2; + wire dctv_out_start_2 = dctv_out_ra_1[6:0] == 2; + reg dctv_out_run_2; + reg signed [OUT_WIDTH-1:0] dctv_out_reg_2; + reg [2:0] dctv_out_debug_reg_2; // SuppressThisWarning VEditor - simulation only + + assign d_out = dctv_out_reg_2; + + assign pre_last_in = pre_last_in_r; + + always @ (posedge clk) begin + if (rst) x_run <= 0; + else if (start) x_run <= 1; + else if (&x_wa[5:0]) x_run <= 0; + + if (!x_run) x_wa <= 0; + else x_wa <= x_wa + 1; + + pre_last_in_r <= x_run && (x_wa[5:0] == 'h3d); + + if (rst) pre_busy <= 0; + else if (pre_last_in_r) pre_busy <= 1; + else if (dcth_phin [5:0] == 5) pre_busy <= 0; // check actual? + + if (rst) dcth_phin_run <= 0; + else if (dcth_phin_start) dcth_phin_run <= 1; + else if (dcth_phin [6:0] == 7'h48) dcth_phin_run <= 0; // check actual? + + if (!dcth_phin_run || dcth_phin_start) dcth_phin <= 0; + else dcth_phin <= dcth_phin + 1; + + if (rst) dcth_en0 <= 0; + else if (dcth_start_0_w) dcth_en0 <= 1; + else if (!x_run) dcth_en0 <= 0; // maybe get rid of this signal and send start for each 8? + + if (rst) dcth_en1 <= 0; + else if (dcth_start_1_w) dcth_en1 <= 1; + else if (dcth_phin [6]) dcth_en1 <= 0; // maybe get rid of this signal and send start for each 8? + + //write input reorder memory + if (x_run && !x_wa[3]) x_ram0[x_wa[2:0]] <= xin; + if (x_run && x_wa[3]) x_ram1[x_wa[2:0]] <= xin; + + //read input reorder memory + dcth_xin0 <= x_ram0[x_ra0[2:0]]; + dcth_xin1 <= x_ram1[x_ra1[2:0]]; + + dcth_start_0_r <= dcth_start_0_w; + dcth_start_1_r <= dcth_start_1_w; + + if (rst) transpose_in_run <= 0; + else if (transpose_start) transpose_in_run <= 1; + else if (transpose_cntr [6:0] == 7'h46) transpose_in_run <= 0; // check actual? + + if (!transpose_in_run || transpose_start) transpose_cntr <= 0; + else transpose_cntr <= transpose_cntr + 1; + + if (rst) transpose_w_page <= 0; + else if (transpose_in_run && (&transpose_cntr[5:0])) transpose_w_page <= transpose_w_page + 1; + + case (transpose_cntr[3:0]) + 4'h0: transpose_wa_low <= 0; + 4'h1: transpose_wa_low <= 1; + 4'h2: transpose_wa_low <= 7; + 4'h3: transpose_wa_low <= 6; + 4'h4: transpose_wa_low <= 4; + 4'h5: transpose_wa_low <= 2; + 4'h6: transpose_wa_low <= 3; + 4'h7: transpose_wa_low <= 5; + 4'h8: transpose_wa_low <= 1; + 4'h9: transpose_wa_low <= 0; + 4'ha: transpose_wa_low <= 6; + 4'hb: transpose_wa_low <= 7; + 4'hc: transpose_wa_low <= 2; + 4'hd: transpose_wa_low <= 4; + 4'he: transpose_wa_low <= 5; + 4'hf: transpose_wa_low <= 3; + endcase + transpose_wa_high <= {transpose_w_page, transpose_cntr[5:4], transpose_cntr[0]} - {transpose_wa_decr,1'b0}; + transpose_we <= dcth_en_out0 || dcth_en_out1; + // Write transpose memory) + if (transpose_we) transpose_ram[transpose_wa] <= transpose_di; + if (transpose_we) transpose_debug_ram[transpose_wa] <= transpose_debug_di; +// if (transpose_we) $display("%d %d @%t",transpose_cntr, transpose_wa, $time) ; + + if (rst) transpose_out_run[0] <= 0; + else if (transpose_out_start) transpose_out_run[0] <= 1; + else if (&transpose_rcntr[5:0]) transpose_out_run[0] <= 0; // check actual? + + transpose_out_run[2:1] <= transpose_out_run[1:0]; + + if (!transpose_out_run[0] || transpose_out_start) transpose_rcntr <= 0; + else transpose_rcntr <= transpose_rcntr + 1; + + if (transpose_out_start) transpose_r_page <= transpose_w_page; + + // Read transpose memory to 2 small reorder memories, use BRAM register + if (transpose_out_run[0]) transpose_reg <= transpose_ram[transpose_ra]; + if (transpose_out_run[1]) transpose_out <= transpose_reg; + if (transpose_out_run[0]) transpose_debug_reg <= transpose_debug_ram[transpose_ra]; + if (transpose_out_run[1]) transpose_debug_out <= transpose_debug_reg; + + if (!transpose_out_run[2]) t_wa <= 0; + else t_wa <= t_wa+1; + + if (rst) dctv_phin_run <= 0; + else if (dctv_phin_start) dctv_phin_run <= 1; + else if (dctv_phin [6:0] == 7'h48) dctv_phin_run <= 0; // check actual? + + + if (!dctv_phin_run || dctv_phin_start) dctv_phin <= 0; + else dctv_phin <= dctv_phin + 1; + + if (rst) dctv_en0 <= 0; + else if (dctv_start_0_w) dctv_en0 <= 1; + else if (!transpose_out_run[2]) dctv_en0 <= 0; // maybe get rid of this signal and send satrt for each 8? + + if (rst) dctv_en1 <= 0; + else if (dctv_start_1_w) dctv_en1 <= 1; + else if (dctv_phin[6]) dctv_en1 <= 0; // maybe get rid of this signal and send satrt for each 8? + + if (t_we0 || t_we1) $display("%d %d",transpose_rcntr-2, transpose_out) ; + + //write vertical dct input reorder memory + if (t_we0) t_ram0[t_wa[2:0]] <= transpose_out; + if (t_we1) t_ram1[t_wa[2:0]] <= transpose_out; + + if (t_we0) t_debug_ram0[t_wa[2:0]] <= transpose_debug_out; + if (t_we1) t_debug_ram1[t_wa[2:0]] <= transpose_debug_out; + + //read vertical dct input reorder memory + dctv_xin0 <= t_ram0[t_ra0[2:0]]; + dctv_xin1 <= t_ram1[t_ra1[2:0]]; + + dctv_start_0_r <= dctv_start_0_w; + dctv_start_1_r <= dctv_start_1_w; + + dctv_debug_xin0 <= t_debug_ram0[t_ra0[2:0]]; + dctv_debug_xin1 <= t_debug_ram1[t_ra1[2:0]]; + + // Reordering data from a pair of vertical DCTs - 2 steps, 1 is not enough + if (rst) dctv_out_run <= 0; + else if (dctv_out_start) dctv_out_run <= 1; + else if (dctv_out_cntr[6:0] == 'h47) dctv_out_run <= 0; + + if (!dctv_out_run || dctv_out_start) dctv_out_cntr <= 0; + else dctv_out_cntr <= dctv_out_cntr + 1; + + dctv_out_we_1 <= dctv_en_out0 || dctv_en_out1; + + dctv_out_sel <= dctv_out_cntr[0]; + + case (dctv_out_cntr[3:0]) + 4'h0: dctv_out_wa_1 <= 0; + 4'h1: dctv_out_wa_1 <= 9; + 4'h2: dctv_out_wa_1 <= 7; + 4'h3: dctv_out_wa_1 <= 14; + 4'h4: dctv_out_wa_1 <= 4; + 4'h5: dctv_out_wa_1 <= 10; + 4'h6: dctv_out_wa_1 <= 3; + 4'h7: dctv_out_wa_1 <= 13; + 4'h8: dctv_out_wa_1 <= 1; + 4'h9: dctv_out_wa_1 <= 8; + 4'ha: dctv_out_wa_1 <= 6; + 4'hb: dctv_out_wa_1 <= 15; + 4'hc: dctv_out_wa_1 <= 2; + 4'hd: dctv_out_wa_1 <= 12; + 4'he: dctv_out_wa_1 <= 5; + 4'hf: dctv_out_wa_1 <= 11; + endcase + + // write first stage of output reordering + if (dctv_out_we_1) dctv_out_ram_1[dctv_out_wa_1] <= dctv_out_sel? dctv_dout1: dctv_dout0; + if (dctv_out_we_1) dctv_out_debug_ram_1[dctv_out_wa_1] <= dctv_out_sel? dctv_yindex1: dctv_yindex0; + + if (rst) dctv_out_run_1 <= 0; + else if (dctv_out_start_1) dctv_out_run_1 <= 1; + else if (&dctv_out_ra_1[5:0]) dctv_out_run_1 <= 0; + + if (!dctv_out_run_1 || dctv_out_start_1) dctv_out_ra_1 <= 0; + else dctv_out_ra_1 <= dctv_out_ra_1 + 1; + // reading first stage of output reorder RAM + if (dctv_out_run_1) dctv_out_reg_1 <= dctv_out_ram_1[dctv_out_ra_1_w]; + if (dctv_out_run_1) dctv_out_debug_reg_1 <= dctv_out_debug_ram_1[dctv_out_ra_1_w]; + + // last stage of the output reordering - 4 register memory + + dctv_out_we_2 <= dctv_out_run_1; + dctv_out_wa_2 <= dctv_out_ra_1_w[1:0]; + + // write first stage of output reordering + if (dctv_out_we_2) dctv_out_ram_2[dctv_out_wa_2] <= dctv_out_reg_1; + if (dctv_out_we_2) dctv_out_debug_ram_2[dctv_out_wa_2] <= dctv_out_debug_reg_1; + + if (rst) dctv_out_run_2 <= 0; + else if (dctv_out_start_2) dctv_out_run_2 <= 1; + else if (&dctv_out_ra_2[5:0]) dctv_out_run_2 <= 0; + + if (!dctv_out_run_2 || dctv_out_start_2) dctv_out_ra_2 <= 0; + else dctv_out_ra_2 <= dctv_out_ra_2 + 1; + + // reading first stage of output reorder RAM + if (dctv_out_run_2) dctv_out_reg_2 <= dctv_out_ram_2[dctv_out_ra_2[1:0]]; + if (dctv_out_run_2) dctv_out_debug_reg_2 <= dctv_out_debug_ram_2[dctv_out_ra_2[1:0]]; + + pre_first_out <= dctv_out_ra_1[6:0] == 2; + + dv <= dctv_out_run_2; + end + + always @ (posedge clk) begin + //X2-X7-X3-X4-X5-X6-X0-X1-*-X3-X5-X4-*-X1-X7-* + case (dcth_phin[3:0]) + 4'h0: x_ra0 <= 2; + 4'h1: x_ra0 <= 7; + 4'h2: x_ra0 <= 3; + 4'h3: x_ra0 <= 4; + 4'h4: x_ra0 <= 5; + 4'h5: x_ra0 <= 6; + 4'h6: x_ra0 <= 0; + 4'h7: x_ra0 <= 1; + 4'h8: x_ra0 <= 'bx; + 4'h9: x_ra0 <= 3; + 4'ha: x_ra0 <= 5; + 4'hb: x_ra0 <= 4; + 4'hc: x_ra0 <= 'bx; + 4'hd: x_ra0 <= 6; + 4'he: x_ra0 <= 7; + 4'hf: x_ra0 <= 'bx; + endcase + case (dcth_phin[3:0]) + 4'h0: x_ra1 <= 1; + 4'h1: x_ra1 <= 'bx; + 4'h2: x_ra1 <= 3; + 4'h3: x_ra1 <= 5; + 4'h4: x_ra1 <= 4; + 4'h5: x_ra1 <= 'bx; + 4'h6: x_ra1 <= 6; + 4'h7: x_ra1 <= 7; + 4'h8: x_ra1 <= 'bx; + 4'h9: x_ra1 <= 2; + 4'ha: x_ra1 <= 7; + 4'hb: x_ra1 <= 3; + 4'hc: x_ra1 <= 4; + 4'hd: x_ra1 <= 5; + 4'he: x_ra1 <= 6; + 4'hf: x_ra1 <= 0; + endcase + end + + always @ (posedge clk) begin + //X2-X7-X3-X4-X5-X6-X0-X1-*-X3-X5-X4-*-X1-X7-* + case (dctv_phin[3:0]) + 4'h0: t_ra0 <= 2; + 4'h1: t_ra0 <= 7; + 4'h2: t_ra0 <= 3; + 4'h3: t_ra0 <= 4; + 4'h4: t_ra0 <= 5; + 4'h5: t_ra0 <= 6; + 4'h6: t_ra0 <= 0; + 4'h7: t_ra0 <= 1; + 4'h8: t_ra0 <= 'bx; + 4'h9: t_ra0 <= 3; + 4'ha: t_ra0 <= 5; + 4'hb: t_ra0 <= 4; + 4'hc: t_ra0 <= 'bx; + 4'hd: t_ra0 <= 6; + 4'he: t_ra0 <= 7; + 4'hf: t_ra0 <= 'bx; + endcase + case (dctv_phin[3:0]) + 4'h0: t_ra1 <= 1; + 4'h1: t_ra1 <= 'bx; + 4'h2: t_ra1 <= 3; + 4'h3: t_ra1 <= 5; + 4'h4: t_ra1 <= 4; + 4'h5: t_ra1 <= 'bx; + 4'h6: t_ra1 <= 6; + 4'h7: t_ra1 <= 7; + 4'h8: t_ra1 <= 'bx; + 4'h9: t_ra1 <= 2; + 4'ha: t_ra1 <= 7; + 4'hb: t_ra1 <= 3; + 4'hc: t_ra1 <= 4; + 4'hd: t_ra1 <= 5; + 4'he: t_ra1 <= 6; + 4'hf: t_ra1 <= 0; + endcase + end + + dct_iv8_1d #( + .WIDTH (INPUT_WIDTH), + .OUT_WIDTH (TRANSPOSE_WIDTH), + .OUT_RSHIFT (OUT_RSHIFT1), + .B_WIDTH (DSP_B_WIDTH), + .A_WIDTH (DSP_A_WIDTH), + .P_WIDTH (DSP_P_WIDTH), + .COSINE_SHIFT (COSINE_SHIFT), + .COS_01_32 (COS_01_32), + .COS_03_32 (COS_03_32), + .COS_04_32 (COS_04_32), + .COS_05_32 (COS_05_32), + .COS_07_32 (COS_07_32), + .COS_08_32 (COS_08_32), + .COS_09_32 (COS_09_32), + .COS_11_32 (COS_11_32), + .COS_12_32 (COS_12_32), + .COS_13_32 (COS_13_32), + .COS_15_32 (COS_15_32) + ) dct_iv8_1d_pass1_0_i ( + .clk (clk), // input + .rst (rst), // input + .en (dcth_en0), // input + .d_in (dcth_xin0), // input[23:0] + .start (dcth_start_0_r), // input + .dout (dcth_dout0), // output[23:0] + .pre2_start_out (), // output reg + .en_out (dcth_en_out0), // output reg + .y_index (dcth_yindex0) // output[2:0] reg + + ); + + dct_iv8_1d #( + .WIDTH (INPUT_WIDTH), + .OUT_WIDTH (TRANSPOSE_WIDTH), + .OUT_RSHIFT (OUT_RSHIFT1), + .B_WIDTH (DSP_B_WIDTH), + .A_WIDTH (DSP_A_WIDTH), + .P_WIDTH (DSP_P_WIDTH), + .COSINE_SHIFT (COSINE_SHIFT), + .COS_01_32 (COS_01_32), + .COS_03_32 (COS_03_32), + .COS_04_32 (COS_04_32), + .COS_05_32 (COS_05_32), + .COS_07_32 (COS_07_32), + .COS_08_32 (COS_08_32), + .COS_09_32 (COS_09_32), + .COS_11_32 (COS_11_32), + .COS_12_32 (COS_12_32), + .COS_13_32 (COS_13_32), + .COS_15_32 (COS_15_32) + ) dct_iv8_1d_pass1_1_i ( + .clk (clk), // input + .rst (rst), // input + .en (dcth_en1), // input + .d_in (dcth_xin1), // input[23:0] + .start (dcth_start_1_r), // input + .dout (dcth_dout1), // output[23:0] + .pre2_start_out (), // output reg + .en_out (dcth_en_out1), // output reg + .y_index (dcth_yindex1) // output[2:0] reg + + ); +//dcth_phin_run && (dcth_phin [6:0] ==9) + + dct_iv8_1d #( + .WIDTH (TRANSPOSE_WIDTH), + .OUT_WIDTH (OUT_WIDTH), + .OUT_RSHIFT (OUT_RSHIFT2), + .B_WIDTH (DSP_B_WIDTH), + .A_WIDTH (DSP_A_WIDTH), + .P_WIDTH (DSP_P_WIDTH), + .COSINE_SHIFT (COSINE_SHIFT), + .COS_01_32 (COS_01_32), + .COS_03_32 (COS_03_32), + .COS_04_32 (COS_04_32), + .COS_05_32 (COS_05_32), + .COS_07_32 (COS_07_32), + .COS_08_32 (COS_08_32), + .COS_09_32 (COS_09_32), + .COS_11_32 (COS_11_32), + .COS_12_32 (COS_12_32), + .COS_13_32 (COS_13_32), + .COS_15_32 (COS_15_32) + ) dct_iv8_1d_pass2_0_i ( + .clk (clk), // input + .rst (rst), // input + .en (dctv_en0), // input + .d_in (dctv_xin0), // input[23:0] + .start (dctv_start_0_r), // input + .dout (dctv_dout0), // output[23:0] + .pre2_start_out (), // output reg + .en_out (dctv_en_out0), // output reg + .y_index (dctv_yindex0) // output[2:0] reg + + ); + + dct_iv8_1d #( + .WIDTH (TRANSPOSE_WIDTH), + .OUT_WIDTH (OUT_WIDTH), + .OUT_RSHIFT (OUT_RSHIFT2), + .B_WIDTH (DSP_B_WIDTH), + .A_WIDTH (DSP_A_WIDTH), + .P_WIDTH (DSP_P_WIDTH), + .COSINE_SHIFT (COSINE_SHIFT), + .COS_01_32 (COS_01_32), + .COS_03_32 (COS_03_32), + .COS_04_32 (COS_04_32), + .COS_05_32 (COS_05_32), + .COS_07_32 (COS_07_32), + .COS_08_32 (COS_08_32), + .COS_09_32 (COS_09_32), + .COS_11_32 (COS_11_32), + .COS_12_32 (COS_12_32), + .COS_13_32 (COS_13_32), + .COS_15_32 (COS_15_32) + ) dct_iv8_1d_pass2_1_i ( + .clk (clk), // input + .rst (rst), // input + .en (dctv_en1), // input + .d_in (dctv_xin1), // input[23:0] + .start (dctv_start_1_r), // input + .dout (dctv_dout1), // output[23:0] + .pre2_start_out (), // output reg + .en_out (dctv_en_out1), // output reg + .y_index (dctv_yindex1) // output[2:0] reg + ); + +endmodule + diff --git a/dsp/dct_tests_01.tf b/dsp/dct_tests_01.tf index 0e6e063..cde8694 100644 --- a/dsp/dct_tests_01.tf +++ b/dsp/dct_tests_01.tf @@ -40,7 +40,7 @@ `timescale 1ns/1ps // No saturation here, and no rounding as we do not need to match decoder (be bit-precise), skipping rounding adder // will reduce needed resources -//`define DCT_INPUT_UNITY +`define DCT_INPUT_UNITY module dct_tests_01 (); // parameter fstname="dct_tests_01.fst"; `ifdef IVERILOG @@ -61,11 +61,16 @@ module dct_tests_01 (); `endif // CVC `endif // IVERILOG - parameter CLK_PERIOD = 10; // ns - parameter WIDTH = 24; // input data width -// parameter OUT_WIDTH = 16; // output data width - parameter OUT_WIDTH = 24; // output data width - parameter OUT_RSHIFT = 3; // overall right shift of the result from input, aligned by MSB (>=3 will never cause saturation) + parameter CLK_PERIOD = 10; // ns + parameter WIDTH = 24; // input data width +// parameter OUT_WIDTH = 16; // output data width + parameter OUT_WIDTH = 24; // output data width + parameter TRANSPOSE_WIDTH = 25; // width of the transpose memory (intermediate results) + parameter OUT_RSHIFT = 3; // overall right shift of the result from input, aligned by MSB (>=3 will never cause saturation) + parameter OUT_RSHIFT2 = 0; // overall right shift for the second (vertical) pass + + parameter DCT_GAP = 16; // between runs + reg RST = 1'b1; reg CLK = 1'b0; @@ -83,11 +88,13 @@ module dct_tests_01 (); wire x_we = !phase_in[3] && run_in; reg [WIDTH-1:0] x_in; + reg [WIDTH-1:0] x_in_2d; reg [WIDTH-1:0] x_out; reg [WIDTH-1:0] x_ram[0:7]; wire [WIDTH-1:0] x_out_w = x_ram[x_ra]; reg start = 0; + reg start2 = 0; // second start for 2d wire [OUT_WIDTH-1:0] y_dct; // S uppressThisWarning VEditor - simulation only wire pre2_start_out; // S uppressThisWarning VEditor - simulation only @@ -103,13 +110,28 @@ module dct_tests_01 (); wire signed [OUT_WIDTH-1:0] y_out = y_ram[y_ra]; // SuppressThisWarning VEditor - simulation only reg signed [WIDTH-1:0] data_in[0:63]; reg signed [OUT_WIDTH-1:0] data_out[0:63]; - integer i,j; + + reg signed [WIDTH-1:0] d_in; + wire pre_last_in_2d; + wire pre_first_out_2d; + wire pre_busy_2d; + wire dv_2d; + wire signed [OUT_WIDTH-1:0] d_out_2d; + + wire pre_last_in_2dr; + wire pre_first_out_2dr; + wire pre_busy_2dr; + wire dv_2dr; + wire signed [OUT_WIDTH-1:0] d_out_2dr; + + + integer i,j, i1, j1; initial begin for (i=0; i<64; i=i+1) begin `ifdef DCT_INPUT_UNITY - data_in[i] = (i[2:0] == i[5:3]) ? {2'b1,{WIDTH-2{1'b0}}} : 0; + data_in[i] = (i[2:0] == i[5:3]) ? {2'b1,{WIDTH-2{1'b0}}} : 0; `else - data_in[i] = $random; + data_in[i] = $random; `endif end $display("Input data in line-scan order:"); @@ -147,23 +169,6 @@ module dct_tests_01 (); if (&i[2:0]) repeat (8) @(posedge CLK); end #1 x_in = 0; -/* - // running 'one' - just make a period == 17 - repeat (7) begin - @(posedge CLK); -#1 x_in = {2'b1,{WIDTH-2{1'b0}}}; // >>x_wa; - @(posedge CLK); -#1 x_in = 0; - repeat (15) @(posedge CLK); // 16+1= 17, non-zero will go through all of the 8 x[i] - end - begin - @(posedge CLK); -#1 x_in = {2'b1,{WIDTH-2{1'b0}}}; - @(posedge CLK); -#1 x_in = 0; - en_x = 0; - end -*/ repeat (64) @(posedge CLK); $display(""); @@ -173,8 +178,44 @@ module dct_tests_01 (); data_out[i+4],data_out[i+5],data_out[i+6],data_out[i+7]); end +// repeat (64) @(posedge CLK); +// $finish; + end + + initial begin + wait (!RST); + while (!start) begin + @(posedge CLK); + #1; + end + for (i1 = 0; i1 < 64; i1 = i1+1) begin + @(posedge CLK); + #1; + x_in_2d = data_in[i1]; + if (i1 == 63) start2 = 1; + end + for (i1 = 0; i1 < 64; i1 = i1+1) begin + @(posedge CLK); + #1; + start2 = 0; + x_in_2d = data_in[i1]; + end + + repeat (DCT_GAP) @(posedge CLK); + #1; + start2 = 1; + for (i1 = 0; i1 < 64; i1 = i1+1) begin + @(posedge CLK); + #1; + start2 = 0; + x_in_2d = data_in[63-i1]; + end + + repeat (300) @(posedge CLK); $finish; + end + initial j = 0; always @ (posedge CLK) begin @@ -285,7 +326,53 @@ module dct_tests_01 (); .start (start), // input .dout (y_dct), // output[15:0] .pre2_start_out (pre2_start_out), // output reg - .en_out (en_out) // output reg + .en_out (en_out), // output reg + .y_index () // output[2:0] reg ); + + + dct_iv_8x8 #( + .INPUT_WIDTH (WIDTH), + .OUT_WIDTH (OUT_WIDTH), + .OUT_RSHIFT1 (OUT_RSHIFT), + .OUT_RSHIFT2 (OUT_RSHIFT2), + .TRANSPOSE_WIDTH (TRANSPOSE_WIDTH), + .DSP_B_WIDTH (18), + .DSP_A_WIDTH (25), + .DSP_P_WIDTH (48) + ) dct_iv_8x8_i ( + .clk (CLK), // input + .rst (RST), // input + .start (start || start2), // input + .xin (x_in_2d), // input[24:0] signed + .pre_last_in (pre_last_in_2d), // output reg + .pre_first_out (pre_first_out_2d), // output + .dv (dv_2d), // output + .d_out (d_out_2d), // output[24:0] signed + .pre_busy (pre_busy_2d) // output reg + ); + + dct_iv_8x8 #( + .INPUT_WIDTH (WIDTH), + .OUT_WIDTH (OUT_WIDTH), + .OUT_RSHIFT1 (OUT_RSHIFT), + .OUT_RSHIFT2 (OUT_RSHIFT2), + .TRANSPOSE_WIDTH (TRANSPOSE_WIDTH), + .DSP_B_WIDTH (18), + .DSP_A_WIDTH (25), + .DSP_P_WIDTH (48) + ) dct_iv_8x8r_i ( + .clk (CLK), // input + .rst (RST), // input + .start (pre_first_out_2d), // input + .xin (d_out_2d), // input[24:0] signed + .pre_last_in (pre_last_in_2dr), // output reg + .pre_first_out (pre_first_out_2dr), // output + .dv (dv_2dr), // output + .d_out (d_out_2dr), // output[24:0] signed + .pre_busy (pre_busy_2dr) // output reg + ); + + endmodule -- 2.18.1