2025-03-08 11:32:53 +08:00
|
|
|
//+FHDR--------------------------------------------------------------------------------------------------------
|
|
|
|
// Company:
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
// File Name : Z_dsp.v
|
|
|
|
// Department :
|
|
|
|
// Author : thfu
|
|
|
|
// Author's Tel :
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
// Relese History
|
|
|
|
// Version Date Author Description
|
|
|
|
// 0.2 2024-10-09 thfu to fit the addition of 8 interpolation
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
// Keywords :
|
|
|
|
//
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
// Parameter
|
|
|
|
//
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
// Purpose :
|
|
|
|
//
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
// Target Device:
|
|
|
|
// Tool versions:
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
// Reuse Issues
|
|
|
|
// Reset Strategy:
|
|
|
|
// Clock Domains:
|
|
|
|
// Critical Timing:
|
|
|
|
// Asynchronous I/F:
|
|
|
|
// Synthesizable (y/n):
|
|
|
|
// Other:
|
|
|
|
//-FHDR--------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
module z_dsp
|
|
|
|
(
|
2025-03-11 17:34:49 +08:00
|
|
|
input rstn
|
|
|
|
,input clk
|
|
|
|
,input en
|
2025-03-08 11:32:53 +08:00
|
|
|
//,input tc_bypass
|
2025-03-11 17:34:49 +08:00
|
|
|
,input [ 5:0] vldi_coef
|
|
|
|
,input vldi_data
|
2025-03-08 11:32:53 +08:00
|
|
|
//,input [1:0] intp_mode
|
|
|
|
//,input [1:0] dac_mode_sel
|
2025-03-11 17:34:49 +08:00
|
|
|
,input signed [15:0] din0
|
|
|
|
,input signed [15:0] din1
|
|
|
|
,input signed [15:0] din2
|
|
|
|
,input signed [15:0] din3
|
|
|
|
,input signed [31:0] a0_re
|
|
|
|
,input signed [31:0] a0_im
|
|
|
|
,input signed [31:0] b0_re
|
|
|
|
,input signed [31:0] b0_im
|
|
|
|
,input signed [31:0] a1_re
|
|
|
|
,input signed [31:0] a1_im
|
|
|
|
,input signed [31:0] b1_re
|
|
|
|
,input signed [31:0] b1_im
|
|
|
|
,input signed [31:0] a2_re
|
|
|
|
,input signed [31:0] a2_im
|
|
|
|
,input signed [31:0] b2_re
|
|
|
|
,input signed [31:0] b2_im
|
|
|
|
,input signed [31:0] a3_re
|
|
|
|
,input signed [31:0] a3_im
|
|
|
|
,input signed [31:0] b3_re
|
|
|
|
,input signed [31:0] b3_im
|
|
|
|
,input signed [31:0] a4_re
|
|
|
|
,input signed [31:0] a4_im
|
|
|
|
,input signed [31:0] b4_re
|
|
|
|
,input signed [31:0] b4_im
|
|
|
|
,input signed [31:0] a5_re
|
|
|
|
,input signed [31:0] a5_im
|
|
|
|
,input signed [31:0] b5_re
|
|
|
|
,input signed [31:0] b5_im
|
|
|
|
,output signed [15:0] dout0
|
|
|
|
,output signed [15:0] dout1
|
|
|
|
,output signed [15:0] dout2
|
|
|
|
,output signed [15:0] dout3
|
|
|
|
,output vldo
|
2025-03-08 11:32:53 +08:00
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
wire signed [15:0] IIR_out;
|
|
|
|
|
|
|
|
|
2025-03-11 17:34:49 +08:00
|
|
|
reg signed [31:0] ao_re [5:0];
|
|
|
|
reg signed [31:0] ao_im [5:0];
|
|
|
|
reg signed [31:0] ab_re [5:0];
|
|
|
|
reg signed [31:0] ab_im [5:0];
|
|
|
|
reg signed [31:0] abb_re [5:0];
|
|
|
|
reg signed [31:0] abb_im [5:0];
|
|
|
|
reg signed [31:0] ab_pow3_re [5:0];
|
|
|
|
reg signed [31:0] ab_pow3_im [5:0];
|
|
|
|
reg signed [31:0] ab_pow4_re [5:0];
|
|
|
|
reg signed [31:0] ab_pow4_im [5:0];
|
|
|
|
reg signed [31:0] ab_pow5_re [5:0];
|
|
|
|
reg signed [31:0] ab_pow5_im [5:0];
|
|
|
|
reg signed [31:0] ab_pow6_re [5:0];
|
|
|
|
reg signed [31:0] ab_pow6_im [5:0];
|
|
|
|
reg signed [31:0] ab_pow7_re [5:0];
|
|
|
|
reg signed [31:0] ab_pow7_im [5:0];
|
|
|
|
reg signed [31:0] b_pow8_re [5:0];
|
|
|
|
reg signed [31:0] b_pow8_im [5:0];
|
2025-03-08 11:32:53 +08:00
|
|
|
|
|
|
|
CoefGen inst_CoefGen(
|
|
|
|
.clk (clk ),
|
|
|
|
.rstn (rstn ),
|
|
|
|
.vldi (vldi_coef ),
|
2025-03-11 17:34:49 +08:00
|
|
|
.a0_re (a0_re ),
|
|
|
|
.a0_im (a0_im ),
|
|
|
|
.b0_re (b0_re ),
|
|
|
|
.b0_im (b0_im ),
|
|
|
|
.a1_re (a1_re ),
|
|
|
|
.a1_im (a1_im ),
|
|
|
|
.b1_re (b1_re ),
|
|
|
|
.b1_im (b1_im ),
|
|
|
|
.a2_re (a2_re ),
|
|
|
|
.a2_im (a2_im ),
|
|
|
|
.b2_re (b2_re ),
|
|
|
|
.b2_im (b2_im ),
|
|
|
|
.a3_re (a3_re ),
|
|
|
|
.a3_im (a3_im ),
|
|
|
|
.b3_re (b3_re ),
|
|
|
|
.b3_im (b3_im ),
|
|
|
|
.a4_re (a4_re ),
|
|
|
|
.a4_im (a4_im ),
|
|
|
|
.b4_re (b4_re ),
|
|
|
|
.b4_im (b4_im ),
|
|
|
|
.a5_re (a5_re ),
|
|
|
|
.a5_im (a5_im ),
|
|
|
|
.b5_re (b5_re ),
|
|
|
|
.b5_im (b5_im ),
|
|
|
|
.a_re0 (ao_re[0] ),
|
|
|
|
.a_im0 (ao_im[0] ),
|
|
|
|
.ab_re0 (ab_re[0] ),
|
|
|
|
.ab_im0 (ab_im[0] ),
|
|
|
|
.abb_re0 (abb_re[0] ),
|
|
|
|
.abb_im0 (abb_im[0] ),
|
|
|
|
.ab_pow3_re0 (ab_pow3_re[0]),
|
|
|
|
.ab_pow3_im0 (ab_pow3_im[0]),
|
|
|
|
.ab_pow4_re0 (ab_pow4_re[0]),
|
|
|
|
.ab_pow4_im0 (ab_pow4_im[0]),
|
|
|
|
.ab_pow5_re0 (ab_pow5_re[0]),
|
|
|
|
.ab_pow5_im0 (ab_pow5_im[0]),
|
|
|
|
.ab_pow6_re0 (ab_pow6_re[0]),
|
|
|
|
.ab_pow6_im0 (ab_pow6_im[0]),
|
|
|
|
.ab_pow7_re0 (ab_pow7_re[0]),
|
|
|
|
.ab_pow7_im0 (ab_pow7_im[0]),
|
|
|
|
.b_pow8_re0 (b_pow8_re[0] ),
|
|
|
|
.b_pow8_im0 (b_pow8_im[0] ),
|
|
|
|
.a_re1 (ao_re[1] ),
|
|
|
|
.a_im1 (ao_im[1] ),
|
|
|
|
.ab_re1 (ab_re[1] ),
|
|
|
|
.ab_im1 (ab_im[1] ),
|
|
|
|
.abb_re1 (abb_re[1] ),
|
|
|
|
.abb_im1 (abb_im[1] ),
|
|
|
|
.ab_pow3_re1 (ab_pow3_re[1]),
|
|
|
|
.ab_pow3_im1 (ab_pow3_im[1]),
|
|
|
|
.ab_pow4_re1 (ab_pow4_re[1]),
|
|
|
|
.ab_pow4_im1 (ab_pow4_im[1]),
|
|
|
|
.ab_pow5_re1 (ab_pow5_re[1]),
|
|
|
|
.ab_pow5_im1 (ab_pow5_im[1]),
|
|
|
|
.ab_pow6_re1 (ab_pow6_re[1]),
|
|
|
|
.ab_pow6_im1 (ab_pow6_im[1]),
|
|
|
|
.ab_pow7_re1 (ab_pow7_re[1]),
|
|
|
|
.ab_pow7_im1 (ab_pow7_im[1]),
|
|
|
|
.b_pow8_re1 (b_pow8_re[1] ),
|
|
|
|
.b_pow8_im1 (b_pow8_im[1] ),
|
|
|
|
.a_re2 (ao_re[2] ),
|
|
|
|
.a_im2 (ao_im[2] ),
|
|
|
|
.ab_re2 (ab_re[2] ),
|
|
|
|
.ab_im2 (ab_im[2] ),
|
|
|
|
.abb_re2 (abb_re[2] ),
|
|
|
|
.abb_im2 (abb_im[2] ),
|
|
|
|
.ab_pow3_re2 (ab_pow3_re[2]),
|
|
|
|
.ab_pow3_im2 (ab_pow3_im[2]),
|
|
|
|
.ab_pow4_re2 (ab_pow4_re[2]),
|
|
|
|
.ab_pow4_im2 (ab_pow4_im[2]),
|
|
|
|
.ab_pow5_re2 (ab_pow5_re[2]),
|
|
|
|
.ab_pow5_im2 (ab_pow5_im[2]),
|
|
|
|
.ab_pow6_re2 (ab_pow6_re[2]),
|
|
|
|
.ab_pow6_im2 (ab_pow6_im[2]),
|
|
|
|
.ab_pow7_re2 (ab_pow7_re[2]),
|
|
|
|
.ab_pow7_im2 (ab_pow7_im[2]),
|
|
|
|
.b_pow8_re2 (b_pow8_re[2] ),
|
|
|
|
.b_pow8_im2 (b_pow8_im[2] ),
|
|
|
|
.a_re3 (ao_re[3] ),
|
|
|
|
.a_im3 (ao_im[3] ),
|
|
|
|
.ab_re3 (ab_re[3] ),
|
|
|
|
.ab_im3 (ab_im[3] ),
|
|
|
|
.abb_re3 (abb_re[3] ),
|
|
|
|
.abb_im3 (abb_im[3] ),
|
|
|
|
.ab_pow3_re3 (ab_pow3_re[3]),
|
|
|
|
.ab_pow3_im3 (ab_pow3_im[3]),
|
|
|
|
.ab_pow4_re3 (ab_pow4_re[3]),
|
|
|
|
.ab_pow4_im3 (ab_pow4_im[3]),
|
|
|
|
.ab_pow5_re3 (ab_pow5_re[3]),
|
|
|
|
.ab_pow5_im3 (ab_pow5_im[3]),
|
|
|
|
.ab_pow6_re3 (ab_pow6_re[3]),
|
|
|
|
.ab_pow6_im3 (ab_pow6_im[3]),
|
|
|
|
.ab_pow7_re3 (ab_pow7_re[3]),
|
|
|
|
.ab_pow7_im3 (ab_pow7_im[3]),
|
|
|
|
.b_pow8_re3 (b_pow8_re[3] ),
|
|
|
|
.b_pow8_im3 (b_pow8_im[3] ),
|
|
|
|
.a_re4 (ao_re[4] ),
|
|
|
|
.a_im4 (ao_im[4] ),
|
|
|
|
.ab_re4 (ab_re[4] ),
|
|
|
|
.ab_im4 (ab_im[4] ),
|
|
|
|
.abb_re4 (abb_re[4] ),
|
|
|
|
.abb_im4 (abb_im[4] ),
|
|
|
|
.ab_pow3_re4 (ab_pow3_re[4]),
|
|
|
|
.ab_pow3_im4 (ab_pow3_im[4]),
|
|
|
|
.ab_pow4_re4 (ab_pow4_re[4]),
|
|
|
|
.ab_pow4_im4 (ab_pow4_im[4]),
|
|
|
|
.ab_pow5_re4 (ab_pow5_re[4]),
|
|
|
|
.ab_pow5_im4 (ab_pow5_im[4]),
|
|
|
|
.ab_pow6_re4 (ab_pow6_re[4]),
|
|
|
|
.ab_pow6_im4 (ab_pow6_im[4]),
|
|
|
|
.ab_pow7_re4 (ab_pow7_re[4]),
|
|
|
|
.ab_pow7_im4 (ab_pow7_im[4]),
|
|
|
|
.b_pow8_re4 (b_pow8_re[4] ),
|
|
|
|
.b_pow8_im4 (b_pow8_im[4] ),
|
|
|
|
.a_re5 (ao_re[5] ),
|
|
|
|
.a_im5 (ao_im[5] ),
|
|
|
|
.ab_re5 (ab_re[5] ),
|
|
|
|
.ab_im5 (ab_im[5] ),
|
|
|
|
.abb_re5 (abb_re[5] ),
|
|
|
|
.abb_im5 (abb_im[5] ),
|
|
|
|
.ab_pow3_re5 (ab_pow3_re[5]),
|
|
|
|
.ab_pow3_im5 (ab_pow3_im[5]),
|
|
|
|
.ab_pow4_re5 (ab_pow4_re[5]),
|
|
|
|
.ab_pow4_im5 (ab_pow4_im[5]),
|
|
|
|
.ab_pow5_re5 (ab_pow5_re[5]),
|
|
|
|
.ab_pow5_im5 (ab_pow5_im[5]),
|
|
|
|
.ab_pow6_re5 (ab_pow6_re[5]),
|
|
|
|
.ab_pow6_im5 (ab_pow6_im[5]),
|
|
|
|
.ab_pow7_re5 (ab_pow7_re[5]),
|
|
|
|
.ab_pow7_im5 (ab_pow7_im[5]),
|
|
|
|
.b_pow8_re5 (b_pow8_re[5] ),
|
|
|
|
.b_pow8_im5 (b_pow8_im[5] )
|
2025-03-08 11:32:53 +08:00
|
|
|
);
|
|
|
|
|
|
|
|
wire signed [15:0] dout_0;
|
|
|
|
wire signed [15:0] dout_1;
|
|
|
|
wire signed [15:0] dout_2;
|
|
|
|
wire signed [15:0] dout_3;
|
|
|
|
wire signed [15:0] dout_4;
|
|
|
|
wire signed [15:0] dout_5;
|
|
|
|
wire signed [15:0] dout_6;
|
|
|
|
wire signed [15:0] dout_7;
|
|
|
|
reg vldo_TC;
|
|
|
|
TailCorr_top inst_TailCorr_top
|
|
|
|
(
|
|
|
|
.clk (clk ),
|
|
|
|
.en (en ),
|
|
|
|
.rstn (rstn ),
|
|
|
|
.vldi (vldi_data ),
|
|
|
|
// .dac_mode_sel (dac_mode_sel ),
|
|
|
|
// .intp_mode (intp_mode ),
|
|
|
|
.din0 (din0 ),
|
|
|
|
.din1 (din1 ),
|
|
|
|
.din2 (din2 ),
|
|
|
|
.din3 (din3 ),
|
|
|
|
.a_re0 (ao_re[0] ),
|
|
|
|
.a_im0 (ao_im[0] ),
|
|
|
|
.ab_re0 (ab_re[0] ),
|
|
|
|
.ab_im0 (ab_im[0] ),
|
|
|
|
.abb_re0 (abb_re[0] ),
|
|
|
|
.abb_im0 (abb_im[0] ),
|
|
|
|
.ab_pow3_re0 (ab_pow3_re[0]),
|
|
|
|
.ab_pow3_im0 (ab_pow3_im[0]),
|
|
|
|
.ab_pow4_re0 (ab_pow4_re[0]),
|
|
|
|
.ab_pow4_im0 (ab_pow4_im[0]),
|
|
|
|
.ab_pow5_re0 (ab_pow5_re[0]),
|
|
|
|
.ab_pow5_im0 (ab_pow5_im[0]),
|
|
|
|
.ab_pow6_re0 (ab_pow6_re[0]),
|
|
|
|
.ab_pow6_im0 (ab_pow6_im[0]),
|
|
|
|
.ab_pow7_re0 (ab_pow7_re[0]),
|
|
|
|
.ab_pow7_im0 (ab_pow7_im[0]),
|
|
|
|
.b_pow8_re0 (b_pow8_re[0] ),
|
|
|
|
.b_pow8_im0 (b_pow8_im[0] ),
|
|
|
|
.a_re1 (ao_re[1] ),
|
|
|
|
.a_im1 (ao_im[1] ),
|
|
|
|
.ab_re1 (ab_re[1] ),
|
|
|
|
.ab_im1 (ab_im[1] ),
|
|
|
|
.abb_re1 (abb_re[1] ),
|
|
|
|
.abb_im1 (abb_im[1] ),
|
|
|
|
.ab_pow3_re1 (ab_pow3_re[1]),
|
|
|
|
.ab_pow3_im1 (ab_pow3_im[1]),
|
|
|
|
.ab_pow4_re1 (ab_pow4_re[1]),
|
|
|
|
.ab_pow4_im1 (ab_pow4_im[1]),
|
|
|
|
.ab_pow5_re1 (ab_pow5_re[1]),
|
|
|
|
.ab_pow5_im1 (ab_pow5_im[1]),
|
|
|
|
.ab_pow6_re1 (ab_pow6_re[1]),
|
|
|
|
.ab_pow6_im1 (ab_pow6_im[1]),
|
|
|
|
.ab_pow7_re1 (ab_pow7_re[1]),
|
|
|
|
.ab_pow7_im1 (ab_pow7_im[1]),
|
|
|
|
.b_pow8_re1 (b_pow8_re[1] ),
|
|
|
|
.b_pow8_im1 (b_pow8_im[1] ),
|
|
|
|
.a_re2 (ao_re[2] ),
|
|
|
|
.a_im2 (ao_im[2] ),
|
|
|
|
.ab_re2 (ab_re[2] ),
|
|
|
|
.ab_im2 (ab_im[2] ),
|
|
|
|
.abb_re2 (abb_re[2] ),
|
|
|
|
.abb_im2 (abb_im[2] ),
|
|
|
|
.ab_pow3_re2 (ab_pow3_re[2]),
|
|
|
|
.ab_pow3_im2 (ab_pow3_im[2]),
|
|
|
|
.ab_pow4_re2 (ab_pow4_re[2]),
|
|
|
|
.ab_pow4_im2 (ab_pow4_im[2]),
|
|
|
|
.ab_pow5_re2 (ab_pow5_re[2]),
|
|
|
|
.ab_pow5_im2 (ab_pow5_im[2]),
|
|
|
|
.ab_pow6_re2 (ab_pow6_re[2]),
|
|
|
|
.ab_pow6_im2 (ab_pow6_im[2]),
|
|
|
|
.ab_pow7_re2 (ab_pow7_re[2]),
|
|
|
|
.ab_pow7_im2 (ab_pow7_im[2]),
|
|
|
|
.b_pow8_re2 (b_pow8_re[2] ),
|
|
|
|
.b_pow8_im2 (b_pow8_im[2] ),
|
|
|
|
.a_re3 (ao_re[3] ),
|
|
|
|
.a_im3 (ao_im[3] ),
|
|
|
|
.ab_re3 (ab_re[3] ),
|
|
|
|
.ab_im3 (ab_im[3] ),
|
|
|
|
.abb_re3 (abb_re[3] ),
|
|
|
|
.abb_im3 (abb_im[3] ),
|
|
|
|
.ab_pow3_re3 (ab_pow3_re[3]),
|
|
|
|
.ab_pow3_im3 (ab_pow3_im[3]),
|
|
|
|
.ab_pow4_re3 (ab_pow4_re[3]),
|
|
|
|
.ab_pow4_im3 (ab_pow4_im[3]),
|
|
|
|
.ab_pow5_re3 (ab_pow5_re[3]),
|
|
|
|
.ab_pow5_im3 (ab_pow5_im[3]),
|
|
|
|
.ab_pow6_re3 (ab_pow6_re[3]),
|
|
|
|
.ab_pow6_im3 (ab_pow6_im[3]),
|
|
|
|
.ab_pow7_re3 (ab_pow7_re[3]),
|
|
|
|
.ab_pow7_im3 (ab_pow7_im[3]),
|
|
|
|
.b_pow8_re3 (b_pow8_re[3] ),
|
|
|
|
.b_pow8_im3 (b_pow8_im[3] ),
|
|
|
|
.a_re4 (ao_re[4] ),
|
|
|
|
.a_im4 (ao_im[4] ),
|
|
|
|
.ab_re4 (ab_re[4] ),
|
|
|
|
.ab_im4 (ab_im[4] ),
|
|
|
|
.abb_re4 (abb_re[4] ),
|
|
|
|
.abb_im4 (abb_im[4] ),
|
|
|
|
.ab_pow3_re4 (ab_pow3_re[4]),
|
|
|
|
.ab_pow3_im4 (ab_pow3_im[4]),
|
|
|
|
.ab_pow4_re4 (ab_pow4_re[4]),
|
|
|
|
.ab_pow4_im4 (ab_pow4_im[4]),
|
|
|
|
.ab_pow5_re4 (ab_pow5_re[4]),
|
|
|
|
.ab_pow5_im4 (ab_pow5_im[4]),
|
|
|
|
.ab_pow6_re4 (ab_pow6_re[4]),
|
|
|
|
.ab_pow6_im4 (ab_pow6_im[4]),
|
|
|
|
.ab_pow7_re4 (ab_pow7_re[4]),
|
|
|
|
.ab_pow7_im4 (ab_pow7_im[4]),
|
|
|
|
.b_pow8_re4 (b_pow8_re[4] ),
|
|
|
|
.b_pow8_im4 (b_pow8_im[4] ),
|
|
|
|
.a_re5 (ao_re[5] ),
|
|
|
|
.a_im5 (ao_im[5] ),
|
|
|
|
.ab_re5 (ab_re[5] ),
|
|
|
|
.ab_im5 (ab_im[5] ),
|
|
|
|
.abb_re5 (abb_re[5] ),
|
|
|
|
.abb_im5 (abb_im[5] ),
|
|
|
|
.ab_pow3_re5 (ab_pow3_re[5]),
|
|
|
|
.ab_pow3_im5 (ab_pow3_im[5]),
|
|
|
|
.ab_pow4_re5 (ab_pow4_re[5]),
|
|
|
|
.ab_pow4_im5 (ab_pow4_im[5]),
|
|
|
|
.ab_pow5_re5 (ab_pow5_re[5]),
|
|
|
|
.ab_pow5_im5 (ab_pow5_im[5]),
|
|
|
|
.ab_pow6_re5 (ab_pow6_re[5]),
|
|
|
|
.ab_pow6_im5 (ab_pow6_im[5]),
|
|
|
|
.ab_pow7_re5 (ab_pow7_re[5]),
|
|
|
|
.ab_pow7_im5 (ab_pow7_im[5]),
|
|
|
|
.b_pow8_re5 (b_pow8_re[5] ),
|
|
|
|
.b_pow8_im5 (b_pow8_im[5] ),
|
|
|
|
.dout_p0 (dout_0 ),
|
|
|
|
.dout_p1 (dout_1 ),
|
|
|
|
.dout_p2 (dout_2 ),
|
|
|
|
.dout_p3 (dout_3 ),
|
|
|
|
.dout_p4 (dout_4 ),
|
|
|
|
.dout_p5 (dout_5 ),
|
|
|
|
.dout_p6 (dout_6 ),
|
|
|
|
.dout_p7 (dout_7 ),
|
|
|
|
|
|
|
|
.vldo (vldo_TC )
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
assign vldo = vldo_TC;
|
|
|
|
|
|
|
|
reg signed [15:0] doutf_0;
|
|
|
|
reg signed [15:0] doutf_1;
|
|
|
|
reg signed [15:0] doutf_2;
|
|
|
|
reg signed [15:0] doutf_3;
|
|
|
|
|
|
|
|
always@(posedge clk or negedge rstn)
|
|
|
|
if(!rstn) begin
|
|
|
|
doutf_0 <= 0;
|
|
|
|
doutf_1 <= 0;
|
|
|
|
doutf_2 <= 0;
|
|
|
|
doutf_3 <= 0;
|
|
|
|
end
|
|
|
|
else if(!en) begin
|
|
|
|
doutf_0 <= dout_0;
|
|
|
|
doutf_1 <= dout_1;
|
|
|
|
doutf_2 <= dout_2;
|
|
|
|
doutf_3 <= dout_3;
|
|
|
|
end
|
|
|
|
else begin
|
|
|
|
doutf_0 <= dout_4;
|
|
|
|
doutf_1 <= dout_5;
|
|
|
|
doutf_2 <= dout_6;
|
|
|
|
doutf_3 <= dout_7;
|
|
|
|
end
|
|
|
|
|
|
|
|
assign dout0 = doutf_0;
|
|
|
|
assign dout1 = doutf_1;
|
|
|
|
assign dout2 = doutf_2;
|
|
|
|
assign dout3 = doutf_3;
|
|
|
|
|
|
|
|
endmodule
|