v01-enable of clk_div2;8pin to 4pin;valid I/O
This commit is contained in:
		
							parent
							
								
									34cf630d95
								
							
						
					
					
						commit
						6908587dae
					
				|  | @ -36,10 +36,6 @@ parameter  data_in_width       = 16; | |||
| parameter  coef_width          = 32;  | ||||
| parameter  frac_data_out_width = 20;//X for in,5 | ||||
| parameter  frac_coef_width     = 31;//division | ||||
| parameter  feedback_width      = 36;  | ||||
| parameter  data_out_width      = 36;   | ||||
| parameter  saturation_mode     =  0; | ||||
| parameter  out_reg             =  1; | ||||
| 
 | ||||
| module  IIR_Filter ( | ||||
|  input	 rstn | ||||
|  | @ -98,14 +94,14 @@ inst_c2         ( | |||
|                                             .Re		(x2_re     	),//a*b*x(n-1) | ||||
|                                             .Im		(x2_im     	) | ||||
| 		); | ||||
| wire	signed	[data_in_width+frac_data_out_width+1:0]  v_re; | ||||
| wire	signed	[data_in_width+frac_data_out_width+1:0]	 v_im; | ||||
| wire	signed	[data_in_width+frac_data_out_width+2:0]  v_re; | ||||
| wire	signed	[data_in_width+frac_data_out_width+2:0]	 v_im; | ||||
| 
 | ||||
| assign	v_re       =   x1_re + x2_re; | ||||
| assign	v_im       =   x1_im + x2_im; | ||||
| 
 | ||||
| reg	signed	[data_in_width+frac_data_out_width+1:0]  v1_re; | ||||
| reg	signed	[data_in_width+frac_data_out_width+1:0]	 v1_im; | ||||
| reg	signed	[data_in_width+frac_data_out_width+2:0]  v1_re; | ||||
| reg	signed	[data_in_width+frac_data_out_width+2:0]	 v1_im; | ||||
| 
 | ||||
| always @(posedge clk or negedge rstn)  | ||||
|   	if (!rstn) | ||||
|  | @ -126,10 +122,10 @@ always @(posedge clk or negedge rstn) | |||
| 
 | ||||
| wire    signed	[data_in_width+frac_data_out_width+1:0]	 y_re; | ||||
| wire    signed	[data_in_width+frac_data_out_width+1:0]	 y_im; | ||||
| wire    signed	[data_in_width+frac_data_out_width+1:0]	 y1_re; | ||||
| wire    signed	[data_in_width+frac_data_out_width+1:0]	 y1_im; | ||||
| wire    signed	[data_in_width+frac_data_out_width+1:0]	 y2_re; | ||||
| wire    signed	[data_in_width+frac_data_out_width+1:0]	 y2_im; | ||||
| wire    signed	[data_in_width+frac_data_out_width+2:0]	 y1_re; | ||||
| wire    signed	[data_in_width+frac_data_out_width+2:0]	 y1_im; | ||||
| wire    signed	[data_in_width+frac_data_out_width+3:0]	 y2_re; | ||||
| wire    signed	[data_in_width+frac_data_out_width+3:0]	 y2_im; | ||||
| 
 | ||||
| reg 	signed	[data_in_width-1:0]   dout_re; | ||||
| 
 | ||||
|  | @ -155,8 +151,8 @@ inst_c3         ( | |||
| 
 | ||||
| mult_C	 | ||||
| #( | ||||
|  .A_width(data_in_width+frac_data_out_width+2)  | ||||
| ,.B_width(data_in_width+frac_data_out_width+2)  | ||||
|  .A_width(data_in_width+frac_data_out_width+3)  | ||||
| ,.B_width(data_in_width+frac_data_out_width+3)  | ||||
| ,.C_width(coef_width)  | ||||
| ,.D_width(coef_width)  | ||||
| ,.frac_coef_width(frac_coef_width)  | ||||
|  | @ -176,7 +172,7 @@ inst_c4         ( | |||
| assign	y_re       =   v1_re + y2_re; | ||||
| assign	y_im       =   v1_im + y2_im; | ||||
| 
 | ||||
| reg signed	[data_in_width+frac_data_out_width+2:0] dout_round; | ||||
| reg signed	[data_in_width+frac_data_out_width+1:0] dout_round; | ||||
| 
 | ||||
| always@(posedge clk or negedge rstn) | ||||
| 	if(!rstn) | ||||
|  | @ -204,7 +200,7 @@ always @(posedge clk or negedge rstn) | |||
| 		 end  | ||||
| 	 else if(en) | ||||
| 		 begin | ||||
| 		    dout_re  <= dout_round[data_in_width+frac_data_out_width+2:frac_data_out_width]; | ||||
| 		    dout_re  <= dout_round[frac_data_out_width+15:frac_data_out_width]; | ||||
| 		  end | ||||
| 	 else | ||||
| 		 begin | ||||
|  |  | |||
|  | @ -71,8 +71,8 @@ input rstn; | |||
| input clk; | ||||
| input  en; | ||||
| input  tc_bypass; | ||||
| input  signed [31:0] din_re; | ||||
| input  signed [31:0] din_im; | ||||
| input  signed [15:0] din_re; | ||||
| input  signed [15:0] din_im; | ||||
| input  signed [31:0] a0_re; | ||||
| input  signed [31:0] a0_im; | ||||
| input  signed [31:0] b0_re; | ||||
|  | @ -249,25 +249,25 @@ always @(posedge clk or negedge rstn) | |||
| assign		Ysum =       dout_0 + dout_1 + dout_2 + dout_3 + dout_4 + dout_5 + din_r5; | ||||
| 
 | ||||
| always@(posedge clk or negedge rstn)  | ||||
|   if (!rstn)begin | ||||
|     dout_r     <= 'h0; | ||||
|   end  | ||||
|   else if(tc_bypass)begin | ||||
|     dout_r     <= din_re; | ||||
|   end | ||||
|   else begin  | ||||
|     if(en)begin | ||||
|       if(Ysum[16:15]==2'b01) | ||||
|         dout_r	<=	16'd32767; | ||||
|       else if(Ysum[16:15]==2'b10) | ||||
|         dout_r	<=	-16'd32768; | ||||
|       else | ||||
|         dout_r	<=	Ysum[15:0]; | ||||
|       end | ||||
|     else begin | ||||
|         dout_r  <= dout_r; | ||||
|     if (!rstn)begin | ||||
|         dout_r     <= 'h0; | ||||
|     end  | ||||
|     else if(tc_bypass)begin | ||||
|         dout_r     <= din_re; | ||||
|     end | ||||
|     else begin  | ||||
|         if(en)  begin | ||||
|             if(Ysum[16:15]==2'b01) | ||||
|                 dout_r	<=	16'd32767; | ||||
|             else if(Ysum[16:15]==2'b10) | ||||
|                 dout_r	<=	-16'd32768; | ||||
|             else | ||||
|                 dout_r	<=	Ysum[15:0]; | ||||
|             end | ||||
|         else begin | ||||
|             dout_r  <= dout_r; | ||||
|         end | ||||
|     end | ||||
|   end | ||||
| assign	dout = dout_r; | ||||
| endmodule | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										188
									
								
								rtl/z_dsp.v
								
								
								
								
							
							
						
						
									
										188
									
								
								rtl/z_dsp.v
								
								
								
								
							|  | @ -33,108 +33,69 @@ | |||
| 
 | ||||
| module 	z_dsp	 	 | ||||
| ( | ||||
| 		 	clk, | ||||
| 		 	rstn, | ||||
| 		 	en, 		//enable | ||||
| 		 	dac_mode_sel, 	//2'b00:NRZ mode;2'b01:Double data mode; | ||||
|                                         //2'b10:Double Double data mode;2'b11:reserve; | ||||
| 		 	tc_bypass, 	 | ||||
| 		 	intp_mode, 	//2'b00:x1;2'b01:x2,'b10:x4;other:reserve; | ||||
| 		 	din_re,	 | ||||
| 		 	din_im,	 | ||||
| 			a0_re, 		//a0's real part | ||||
| 			a0_im,		//a0's image part | ||||
| 			b0_re, | ||||
| 			b0_im, | ||||
| 			a1_re, | ||||
| 			a1_im, | ||||
| 			b1_re, | ||||
| 			b1_im, | ||||
| 			a2_re, | ||||
| 			a2_im, | ||||
| 			b2_re, | ||||
| 			b2_im, | ||||
| 			a3_re, | ||||
| 			a3_im, | ||||
| 			b3_re, | ||||
| 			b3_im, | ||||
| 			a4_re, | ||||
| 			a4_im, | ||||
| 			b4_re, | ||||
| 			b4_im, | ||||
| 			a5_re, | ||||
| 			a5_im, | ||||
| 			b5_re, | ||||
| 			b5_im, | ||||
| 			dout0, | ||||
| 			dout1,	 | ||||
| 			dout2,	 | ||||
| 			dout3,		 | ||||
| 			dout4, | ||||
| 			dout5,	 | ||||
| 			dout6,	 | ||||
| 			dout7, | ||||
|                         vldo	 | ||||
|  input  rstn | ||||
| ,input  clk | ||||
| ,input  en | ||||
| ,input  tc_bypass | ||||
| ,input  vldi  | ||||
| ,input  [1:0]	intp_mode | ||||
| ,input  [1:0]	dac_mode_sel | ||||
| ,input  signed [15:0] din_re | ||||
| ,input  signed [15:0] din_im | ||||
| ,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 | ||||
| 		 	);		 | ||||
| 
 | ||||
| input  rstn; | ||||
| input  clk; | ||||
| input  en; | ||||
| input  tc_bypass; | ||||
| input  [1:0]	intp_mode; | ||||
| input  [1:0]	dac_mode_sel; | ||||
| input  signed [15:0] din_re; | ||||
| input  signed [15:0] din_im; | ||||
| 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 signed [15:0] dout4; | ||||
| output signed [15:0] dout5; | ||||
| output signed [15:0] dout6; | ||||
| output signed [15:0] dout7; | ||||
| output		     vldo; | ||||
| parameter  Delay = 9-1; | ||||
| 
 | ||||
| wire signed	[15:0] IIR_out; | ||||
| 
 | ||||
| reg	[10:0]		  vldo_r; | ||||
| reg	[Delay:0]		  vldo_r; | ||||
| 
 | ||||
| always@(posedge clk or negedge rstn) | ||||
| 	if(!rstn) | ||||
| 		begin | ||||
| 			vldo_r	<=	9'b0;			 | ||||
| 		end | ||||
| 	else if(en) | ||||
| 		begin | ||||
| 			vldo_r	<=	{vldo_r[Delay:0], vldi};//Delay with 9 clk		 | ||||
|                 end | ||||
| 	else | ||||
| 		begin | ||||
| 			vldo_r	<=	{vldo_r[10:0], en}; | ||||
| 		end | ||||
| 			vldo_r	<=	vldo_r;		 | ||||
|                 end | ||||
| 
 | ||||
| assign		vldo = vldo_r[10]; | ||||
| 
 | ||||
| assign		vldo = vldo_r[Delay]; | ||||
| 
 | ||||
| TailCorr_top	inst_TailCorr_top | ||||
|                ( | ||||
|  | @ -199,29 +160,34 @@ MeanIntp_8		inst_MeanIntp_8 | |||
| 
 | ||||
| 		        ); | ||||
| 
 | ||||
| lsdacif			inst_lsdacif | ||||
| 		       ( | ||||
| 			.clk				(clk		        ), | ||||
| 			.rstn				(rstn			), | ||||
| 			.dac_mode_sel			(dac_mode_sel		), | ||||
| 			.intp_mode			(intp_mode		), | ||||
|                         .din0	                	(dout_0			),   | ||||
|                         .din1	                	(dout_1			),            | ||||
|                         .din2	                	(dout_2			),            | ||||
|                         .din3	                	(dout_3			),                     | ||||
|                         .din4	                	(dout_4			),   | ||||
|                         .din5	                	(dout_5			),            | ||||
|                         .din6	                	(dout_6			),            | ||||
|                         .din7	                	(dout_7			), | ||||
| 			.dout0				(dout0                  ), | ||||
| 			.dout1				(dout1                  ), | ||||
| 			.dout2				(dout2                  ), | ||||
| 			.dout3				(dout3                  ), | ||||
| 			.dout4				(dout4                  ), | ||||
| 			.dout5				(dout5                  ), | ||||
| 			.dout6				(dout6                  ), | ||||
| 			.dout7				(dout7                  ) | ||||
| 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 | ||||
|  |  | |||
|  | @ -33,91 +33,47 @@ | |||
| 
 | ||||
| module 	z_dsp_en_Test	 	 | ||||
| ( | ||||
| 		 	clk, | ||||
|  input  rstn | ||||
| ,input  clk | ||||
| ,input  tc_bypass | ||||
| ,input  vldi  | ||||
| ,input  [1:0]	intp_mode | ||||
| ,input  [1:0]	dac_mode_sel | ||||
| ,input  signed [15:0] din_re | ||||
| ,input  signed [15:0] din_im | ||||
| ,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 | ||||
| 
 | ||||
| 		 	rstn, | ||||
| 		 	dac_mode_sel, 	//2'b00:NRZ mode;2'b01:Double data mode; | ||||
|                                         //2'b10:Double Double data mode;2'b11:reserve; | ||||
| 		 	tc_bypass, 	 | ||||
| 		 	intp_mode, 	//2'b00:x1;2'b01:x2,'b10:x4;other:reserve; | ||||
| 		 	din_re,	 | ||||
| 		 	din_im,	 | ||||
| 			a0_re, 		//a0's real part | ||||
| 			a0_im,		//a0's image part | ||||
| 			b0_re, | ||||
| 			b0_im, | ||||
| 			a1_re, | ||||
| 			a1_im, | ||||
| 			b1_re, | ||||
| 			b1_im, | ||||
| 			a2_re, | ||||
| 			a2_im, | ||||
| 			b2_re, | ||||
| 			b2_im, | ||||
| 			a3_re, | ||||
| 			a3_im, | ||||
| 			b3_re, | ||||
| 			b3_im, | ||||
| 			a4_re, | ||||
| 			a4_im, | ||||
| 			b4_re, | ||||
| 			b4_im, | ||||
| 			a5_re, | ||||
| 			a5_im, | ||||
| 			b5_re, | ||||
| 			b5_im, | ||||
| 			dout0, | ||||
| 			dout1,	 | ||||
| 			dout2,	 | ||||
| 			dout3,		 | ||||
| 			dout4, | ||||
| 			dout5,	 | ||||
| 			dout6,	 | ||||
| 			dout7, | ||||
|                         vldo	 | ||||
| 		 	);		 | ||||
| 
 | ||||
| input  rstn; | ||||
| input  clk; | ||||
| input  tc_bypass; | ||||
| input  [1:0]	intp_mode; | ||||
| input  [1:0]	dac_mode_sel; | ||||
| input  signed [15:0] din_re; | ||||
| input  signed [15:0] din_im; | ||||
| input  signed [36:0] a0_re; | ||||
| input  signed [36:0] a0_im; | ||||
| input  signed [20:0] b0_re; | ||||
| input  signed [20:0] b0_im; | ||||
| input  signed [36:0] a1_re; | ||||
| input  signed [36:0] a1_im; | ||||
| input  signed [20:0] b1_re; | ||||
| input  signed [20:0] b1_im; | ||||
| input  signed [36:0] a2_re; | ||||
| input  signed [36:0] a2_im; | ||||
| input  signed [20:0] b2_re; | ||||
| input  signed [20:0] b2_im; | ||||
| input  signed [36:0] a3_re; | ||||
| input  signed [36:0] a3_im; | ||||
| input  signed [20:0] b3_re; | ||||
| input  signed [20:0] b3_im; | ||||
| input  signed [36:0] a4_re; | ||||
| input  signed [36:0] a4_im; | ||||
| input  signed [20:0] b4_re; | ||||
| input  signed [20:0] b4_im; | ||||
| input  signed [36:0] a5_re; | ||||
| input  signed [36:0] a5_im; | ||||
| input  signed [20:0] b5_re; | ||||
| input  signed [20:0] b5_im; | ||||
| 
 | ||||
| output signed [15:0] dout0; | ||||
| output signed [15:0] dout1; | ||||
| output signed [15:0] dout2; | ||||
| output signed [15:0] dout3; | ||||
| output signed [15:0] dout4; | ||||
| output signed [15:0] dout5; | ||||
| output signed [15:0] dout6; | ||||
| output signed [15:0] dout7; | ||||
| output		     vldo; | ||||
| 
 | ||||
| wire signed	[15:0] IIR_out; | ||||
| 
 | ||||
|  | @ -129,26 +85,15 @@ always@(posedge clk or negedge rstn) | |||
|         else | ||||
| 		en  <= ~en; | ||||
| 
 | ||||
| reg	[13:0]		  vldo_r; | ||||
| 
 | ||||
| always@(posedge clk or negedge rstn) | ||||
| 	if(!rstn) | ||||
| 		begin | ||||
| 			vldo_r	<=	9'b0;			 | ||||
| 		end | ||||
| 	else | ||||
| 		begin | ||||
| 			vldo_r	<=	{vldo_r[13:0], en}; | ||||
| 		end | ||||
| 
 | ||||
| assign		vldo = vldo_r[13]; | ||||
| 
 | ||||
| TailCorr_top	inst_TailCorr_top | ||||
| z_dsp	inst_z_dsp | ||||
|                ( | ||||
| 		        .clk			(clk	                ), | ||||
| 		        .rstn			(rstn			), | ||||
| 			.en			(en			), | ||||
| 			.vldi			(vldi			), | ||||
| 			.tc_bypass		(tc_bypass		), | ||||
| 			.dac_mode_sel		(dac_mode_sel		), | ||||
| 			.intp_mode		(intp_mode		), | ||||
| 		        .din_re			(din_re                 ), | ||||
| 		        .din_im			(din_im                 ), | ||||
| 			.a0_re			(a0_re                  ), | ||||
|  | @ -175,60 +120,13 @@ TailCorr_top	inst_TailCorr_top | |||
| 			.a5_im			(a5_im                  ), | ||||
| 			.b5_re			(b5_re                  ), | ||||
| 			.b5_im			(b5_im                  ),                          | ||||
| 		        .dout			(IIR_out                ) | ||||
| 		        .dout0			(dout0                  ), | ||||
| 		        .dout1			(dout1                  ), | ||||
| 		        .dout2			(dout2                  ), | ||||
| 		        .dout3			(dout3                  ), | ||||
| 		        .vldo			(vldo                   ) | ||||
|                 ); | ||||
| 
 | ||||
| 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; | ||||
| 
 | ||||
| 
 | ||||
| MeanIntp_8		inst_MeanIntp_8 | ||||
| 		       ( | ||||
| 			.clk				(clk		        ), | ||||
| 			.rstn				(rstn			), | ||||
| 			.en				(en			), | ||||
| 			.intp_mode			(intp_mode		), | ||||
|                         .din	                	(IIR_out		),            | ||||
| 			.dout_0				(dout_0        	        ), | ||||
| 			.dout_1				(dout_1          	), | ||||
| 			.dout_2				(dout_2          	), | ||||
| 			.dout_3				(dout_3           	), | ||||
| 			.dout_4				(dout_4        	        ), | ||||
| 			.dout_5				(dout_5          	), | ||||
| 			.dout_6				(dout_6          	), | ||||
| 			.dout_7				(dout_7           	) | ||||
| 
 | ||||
| 		        ); | ||||
| 
 | ||||
| lsdacif			inst_lsdacif | ||||
| 		       ( | ||||
| 			.clk				(clk		        ), | ||||
| 			.rstn				(rstn			), | ||||
| 			.dac_mode_sel			(dac_mode_sel		), | ||||
| 			.intp_mode			(intp_mode		), | ||||
|                         .din0	                	(dout_0			),   | ||||
|                         .din1	                	(dout_1			),            | ||||
|                         .din2	                	(dout_2			),            | ||||
|                         .din3	                	(dout_3			),                     | ||||
|                         .din4	                	(dout_4			),   | ||||
|                         .din5	                	(dout_5			),            | ||||
|                         .din6	                	(dout_6			),            | ||||
|                         .din7	                	(dout_7			), | ||||
| 			.dout0				(dout0                  ), | ||||
| 			.dout1				(dout1                  ), | ||||
| 			.dout2				(dout2                  ), | ||||
| 			.dout3				(dout3                  ), | ||||
| 			.dout4				(dout4                  ), | ||||
| 			.dout5				(dout5                  ), | ||||
| 			.dout6				(dout6                  ), | ||||
| 			.dout7				(dout7                  ) | ||||
| 
 | ||||
| 		        ); | ||||
| 
 | ||||
| endmodule | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| %in+iir_out with 8 intp | ||||
| clc;clear;close all | ||||
| 
 | ||||
| % addpath("/data/work/thfu/TailCorr/script_m"); | ||||
| in         = importdata("/home/thfu/work/TailCorr/sim/in.dat");        | ||||
| wave_verdi = importdata("/home/thfu/work/TailCorr/sim/OrgOut.dat");    | ||||
| 
 | ||||
|  | @ -16,6 +16,7 @@ cs_wave(2:4:4*N) = dout1; | |||
| cs_wave(3:4:4*N) = dout2; | ||||
| cs_wave(4:4:4*N) = dout3; | ||||
| 
 | ||||
| 
 | ||||
| A   =  [0.025 0.015 0.0002 0]; | ||||
| tau = -[1/250 1/650 1/1600 0]; | ||||
| fs  = 2e9; | ||||
|  | @ -34,10 +35,10 @@ wave_float_8 = interp1(1:wave_float_len,wave_float,1:1/8:(wave_float_len+1-1/8), | |||
| 
 | ||||
| [cs_wave_A,wave_float_8_A,Delay] = alignsignals(cs_wave,wave_float_8); | ||||
| N = min(length(wave_float_8_A),length(cs_wave_A)); | ||||
| % figure() | ||||
| % diff_plot(wave_float_8_A(90:end), cs_wave_A(154:end),'float','verdi',[0 N]); | ||||
| figure() | ||||
| diff_plot(wave_float_8_A(74:end), cs_wave_A(162:end),'float','verdi',[0 N]); | ||||
| % | ||||
| %Test of iir filter | ||||
| %% Test of iir filter | ||||
| [wave_float_A,wave_verdi_A,Delay] = alignsignals(wave_float,wave_verdi); | ||||
| N = min(length(wave_float_A),length(wave_verdi_A)); | ||||
| figure() | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ | |||
| ../rtl/nco/sin_op.v | ||||
| ../rtl/nco/ph2amp.v | ||||
| ../rtl/nco/cos_op.v | ||||
| ../rtl/lsdacif.v | ||||
| //../rtl/lsdacif.v | ||||
| ../rtl/TailCorr_top.v | ||||
| ../rtl/z_dsp.v | ||||
| ../rtl/z_dsp_en_Test.v | ||||
|  |  | |||
|  | @ -46,7 +46,6 @@ reg     [15:0]  iir_in; | |||
| wire    [1 :0]  source_mode; | ||||
| wire    [15:0]  cos; | ||||
| wire    [15:0]  sin; | ||||
| wire    [15:0]  dout_p0; | ||||
| 
 | ||||
| reg             en; | ||||
| 
 | ||||
|  | @ -310,6 +309,7 @@ z_dsp_en_Test           inst_Z_dsp_en_Test | |||
|                         .clk                    (clk_h                  ), | ||||
|                         .rstn                   (rstn                   ), | ||||
|                         .tc_bypass              (tc_bypass              ), | ||||
|                         .vldi                   (iir_in[14]             ), | ||||
|                         .dac_mode_sel           (dac_mode_sel           ), | ||||
|                         .intp_mode              (intp_mode              ), | ||||
|                         .din_re                 (iir_in                 ), | ||||
|  | @ -342,10 +342,7 @@ z_dsp_en_Test           inst_Z_dsp_en_Test | |||
|                         .dout1                  (dout_p1                ), | ||||
|                         .dout2                  (dout_p2                ), | ||||
|                         .dout3                  (dout_p3                ), | ||||
|                         .dout4                  (dout_p4                ), | ||||
|                         .dout5                  (dout_p5                ), | ||||
|                         .dout6                  (dout_p6                ), | ||||
|                         .dout7                  (dout_p7                ) | ||||
|                         .vldo                   (                       ) | ||||
| 
 | ||||
|                 ); | ||||
| 
 | ||||
|  | @ -363,8 +360,9 @@ z_dsp           inst1_Z_dsp | |||
|                ( | ||||
|                         .clk                    (clk_l                  ), | ||||
|                         .rstn                   (rstn                   ), | ||||
|                         .en                     (en                  ), | ||||
|                         .en                     (en                     ), | ||||
|                         .tc_bypass              (tc_bypass              ), | ||||
|                         .vldi                   (iir_in[14]             ), | ||||
|                         .dac_mode_sel           (dac_mode_sel           ), | ||||
|                         .intp_mode              (intp_mode              ), | ||||
|                         .din_re                 (iir_in                 ), | ||||
|  | @ -393,14 +391,11 @@ z_dsp           inst1_Z_dsp | |||
|                         .a5_im                  (a5_im                  ), | ||||
|                         .b5_re                  (b5_re                  ), | ||||
|                         .b5_im                  (b5_im                  ),                          | ||||
|                         .dout0                  (dout_clkl_p0                ), | ||||
|                         .dout1                  (dout_clkl_p1                ), | ||||
|                         .dout2                  (dout_clkl_p2                ), | ||||
|                         .dout3                  (dout_clkl_p3                ), | ||||
|                         .dout4                  (dout_clkl_p4                ), | ||||
|                         .dout5                  (dout_clkl_p5                ), | ||||
|                         .dout6                  (dout_clkl_p6                ), | ||||
|                         .dout7                  (dout_clkl_p7                ) | ||||
|                         .dout0                  (dout_clkl_p0           ), | ||||
|                         .dout1                  (dout_clkl_p1           ), | ||||
|                         .dout2                  (dout_clkl_p2           ), | ||||
|                         .dout3                  (dout_clkl_p3           ), | ||||
|                         .vldo                   (                       ) | ||||
| 
 | ||||
|                 ); | ||||
| 
 | ||||
|  | @ -565,11 +560,19 @@ wire     [15:0] diff; | |||
| assign	diff = cs_wave1 - cs_wave; | ||||
| integer signed In_fid; | ||||
| integer signed OrgOut_fid; | ||||
| integer signed dout0_fid;  | ||||
| integer signed dout1_fid; | ||||
| integer signed dout2_fid; | ||||
| integer signed dout3_fid; | ||||
| 
 | ||||
| initial begin | ||||
|     #0; | ||||
|     In_fid      = $fopen("./in.dat")    ; | ||||
|     OrgOut_fid  = $fopen("./OrgOut.dat"); | ||||
|     dout0_fid      =       $fopen("./dout0.dat"); | ||||
|     dout1_fid      =       $fopen("./dout1.dat"); | ||||
|     dout2_fid      =       $fopen("./dout2.dat"); | ||||
|     dout3_fid      =       $fopen("./dout3.dat"); | ||||
| end | ||||
| 
 | ||||
| 
 | ||||
|  | @ -579,6 +582,14 @@ always@(posedge clk_div32_f) | |||
|             $fwrite(OrgOut_fid,"%d\n",$signed(TB.inst1_Z_dsp.inst_TailCorr_top.dout  )); | ||||
|         end | ||||
| 
 | ||||
| always@(posedge clk_h) | ||||
|     if(cnt >= 90) | ||||
|         begin | ||||
|             $fwrite(dout0_fid,"%d\n",$signed(dout_p0)); | ||||
|             $fwrite(dout1_fid,"%d\n",$signed(dout_p1)); | ||||
|             $fwrite(dout2_fid,"%d\n",$signed(dout_p2)); | ||||
|             $fwrite(dout3_fid,"%d\n",$signed(dout_p3)); | ||||
|         end | ||||
| 
 | ||||
| endmodule                                                                                | ||||
|                                                                                          | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue