Index: sandbox/MultiChannelUSB/Paella.v
===================================================================
--- sandbox/MultiChannelUSB/Paella.v	(revision 108)
+++ sandbox/MultiChannelUSB/Paella.v	(revision 123)
@@ -119,5 +119,5 @@
 	wire	[11:0]	ana_base [N-1:0];
 
-	wire			amp_good [N-1:0];
+	wire			amp_flag [N-1:0];
 	wire	[11:0]	amp_data [N-1:0];
 
@@ -134,20 +134,16 @@
     wire	[11:0]	del_data;
 
-	wire 	[31:0]	uwt_d1 [N-1:0];
-	wire 	[31:0]	uwt_a1 [N-1:0];
-	wire 	[31:0]	uwt_d2 [N-1:0];
-	wire 	[31:0]	uwt_a2 [N-1:0];
-	wire 	[31:0]	uwt_d3 [N-1:0];
-	wire 	[31:0]	uwt_a3 [N-1:0];
-
+	wire 	[15:0]	uwt_data1 [N-1:0];
+	wire 	[18:0]	uwt_data2 [N-1:0];
 	wire 	[1:0]	uwt_flag1 [N-1:0];
 	wire 	[1:0]	uwt_flag2 [N-1:0];
-	wire 	[1:0]	uwt_flag3 [N-1:0];
-	
-	wire	[11:0]	cic_mux_data;
-	wire	[13:0]	cic_lfsr;
-	wire	[24:0]	cic_data1 [N-1:0];
-	wire	[24:0]	cic_data2 [N-1:0];
-	wire	[24:0]	cic_data3 [N-1:0];
+
+	wire	[27:0]	cic_data1 [N-1:0];
+	wire	[27:0]	cic_data2 [N-1:0];
+	wire	[27:0]	cic_data3 [N-1:0];
+
+	wire	[11:0]	dec_data [N-1:0];
+
+	wire	[1:0]	ext_flag [N-1:0];
 
 	wire			i2c_reset;
@@ -216,14 +212,14 @@
 		begin : MUX_DATA
 			assign int_mux_data[j] = {
-				{4'd0, uwt_flag3[j][1], 7'd0},
-				{4'd0, uwt_flag3[j][0], 7'd0},
-				{12'd0},
-//				{4'd0, amp_good[j], 7'd0},
-				cic_data1[j][14:3],
-				cic_data2[j][18:7],
-				cic_data3[j][22:11],
-//				{8'd0, cic_lfsr[3:0]},
-//				{8'd0, cic_lfsr[5:2]},
-//				uwt_a3[j][20:9],
+//				{4'd0, amp_flag[j], 7'd0},
+//				dec_data[j][37:26],
+//				dec_data[j][36:25],
+//				dec_data[j][35:24],
+				dec_data[j][11:0],
+				dec_data[j][11:0],
+				amp_data[j][11:0],
+				{ext_flag[j][1], 11'd0},
+				{ext_flag[j][0], 11'd0},
+				cic_data3[j][26:15],
 				sys_data[j]};
 		end
@@ -253,5 +249,4 @@
 				.data({int_mux_data[2], int_mux_data[1], int_mux_data[0]}),
 				.result(osc_mux_data[j]));
-		
 		end
 	endgenerate
@@ -291,4 +286,18 @@
 		.out_data({cic_data1[2], cic_data1[1], cic_data1[0]}));
 	
+	deconv #(.size(1), .shift(25), .width(27), .widthr(12)) deconv_unit (
+		.clock(sys_clock),
+		.frame(sys_frame),
+		.reset(1'b0),
+		.del_data({6'd20, 6'd20, 6'd20}),
+		.amp_data({8'd1, 8'd1, 8'd1}),
+		.tau_data({16'd980, 16'd980, 16'd980}),
+//		.del_data({cfg_bits[16][5:0], cfg_bits[15][13:8], cfg_bits[15][5:0]}),
+//		.amp_data({cfg_bits[18][7:0], cfg_bits[17][15:8], cfg_bits[17][7:0]}),
+//		.tau_data({cfg_bits[21], cfg_bits[20], cfg_bits[19]}),
+		.inp_data({cic_data3[2][26:0], cic_data3[1][26:0], cic_data3[0][26:0]}),
+		.out_data({dec_data[2], dec_data[1], dec_data[0]}));
+
+
 	generate
 		for (j = 0; j < 3; j = j + 1)
@@ -296,6 +305,29 @@
 
 			assign sys_data[j] = (cfg_bits[1][4*j]) ? (adc_data[j] ^ 12'hfff) : (adc_data[j]);
-
-	
+/*
+			uwt_bior31 #(.level(1), .width(13)) uwt_1_unit (
+				.clock(sys_clock),
+				.frame(sys_frame),
+				.reset(1'b0),
+				.inp_data(dec_data[j][12:0]),
+				.out_data(uwt_data1[j]),
+				.out_flag(uwt_flag1[j]));
+		
+			uwt_bior31 #(.level(1), .width(16)) uwt_2_unit (
+				.clock(sys_clock),
+				.frame(sys_frame),
+				.reset(1'b0),
+				.inp_data(uwt_data1[j]),
+				.out_data(uwt_data2[j]),
+				.out_flag(uwt_flag2[j]));
+*/		
+			extrema #(.width(12)) extrema_unit (
+				.clock(sys_clock),
+				.frame(sys_frame),
+				.reset(1'b0),
+//				.inp_data(cic_data3[j][26:15]),
+				.inp_data(dec_data[j]),
+				.out_flag(ext_flag[j]));
+
 			analyser analyser_unit (
 				.clock(sys_clock),
@@ -304,5 +336,5 @@
 				.cfg_data({cfg_bits[7+2*j][12:0], cfg_bits[6+2*j][11:0]}),
 				.uwt_flag(uwt_flag2[j]),
-				.uwt_data(uwt_a2[j][17:6]),
+				.uwt_data(uwt_data2[j][18:7]),
 				.ana_dead(ana_dead[j]),
 				.ana_good(ana_good[j]),
@@ -310,14 +342,14 @@
 				.ana_base(ana_base[j]));
 
-			amplitude amplitude_unit (
+			amplitude #(.width(12)) amplitude_unit (
 				.clock(sys_clock),
 				.frame(sys_frame),
 				.reset(cfg_bits[0][2+j]),
-				.cfg_data(cfg_bits[12][11:0]),
-//				.cfg_data(10'd5),
-				.uwt_flag(uwt_flag3[j]),
-				.uwt_data(uwt_a3[j][20:9]),
-				.amp_good(amp_good[j]),
-				.amp_data(amp_data[j]));
+//				.cfg_data(cfg_bits[12][11:0]),
+				.cfg_data(12'd5),
+//				.inp_data(cic_data3[j][22:11]),
+				.inp_data(dec_data[j]),
+				.out_flag(amp_flag[j]),
+				.out_data(amp_data[j]));
 		end
 	endgenerate
@@ -330,5 +362,5 @@
 		.hst_data(ana_data[0]),
 /*
-		.hst_good((amp_good[j]) & (cnt_good[j]) & (cfg_bits[13][1])),
+		.hst_good((amp_flag[j]) & (cnt_good[j]) & (cfg_bits[13][1])),
 		.hst_data(amp_data[j]),
 */
