Index: /sandbox/MultiChannelUSB/deconv.v
===================================================================
--- /sandbox/MultiChannelUSB/deconv.v	(revision 119)
+++ /sandbox/MultiChannelUSB/deconv.v	(revision 120)
@@ -9,4 +9,5 @@
 		input	wire	[3*size*8-1:0]		amp_data,
 		input	wire	[3*size*16-1:0]		tau_data,
+		input	wire	[3*size*6-1:0]		cls_data,
 		input	wire	[3*size*width-1:0]	inp_data,
 		output	wire	[3*size*widthr-1:0]	out_data
@@ -29,4 +30,6 @@
 	wire	[size*widthr-1:0]	out_data_wire;
 
+	wire	[size*widthr-1:0]	add_data_wire;
+
 	wire	[size*widthr-1:0]	mul_data_wire [1:0];
 
@@ -44,4 +47,7 @@
 	reg		[size*16-1:0]		tau_data_reg, tau_data_next;
 	wire	[size*16-1:0]		tau_data_wire [2:0];
+
+	reg		[size*6-1:0]		cls_data_reg, cls_data_next;
+	wire	[size*6-1:0]		cls_data_wire [2:0];
 
 	integer i;
@@ -60,4 +66,7 @@
 			assign tau_data_wire[1][j*16+16-1:j*16] = tau_data[(3*j+1)*16+16-1:(3*j+1)*16];
 			assign tau_data_wire[2][j*16+16-1:j*16] = tau_data[(3*j+2)*16+16-1:(3*j+2)*16];
+			assign cls_data_wire[0][j*6+6-1:j*6] = cls_data[(3*j+0)*6+6-1:(3*j+0)*6];
+			assign cls_data_wire[1][j*6+6-1:j*6] = cls_data[(3*j+1)*6+6-1:(3*j+1)*6];
+			assign cls_data_wire[2][j*6+6-1:j*6] = cls_data[(3*j+2)*6+6-1:(3*j+2)*6];
                                                                                          
 			lpm_mux #(
@@ -139,17 +148,17 @@
 				.dataa(mul_data_wire[0][j*widthr+widthr-1:j*widthr]),
 				.datab(mul_data_wire[1][j*widthr+widthr-1:j*widthr]),
-				.result(out_data_wire[j*widthr+widthr-1:j*widthr]));
-
-/*
+				.result(add_data_wire[j*widthr+widthr-1:j*widthr]));
+
+
 			lpm_clshift	#(
 				.lpm_shifttype("LOGICAL"),
 				.lpm_type("LPM_CLSHIFT"),
-				.lpm_width(64),
+				.lpm_width(widthr),
 				.lpm_widthdist(6)) shift_unit_1 (
-				.distance(distance),
-				.direction(sub_wire1),
-				.data(data),
-				.result(sub_wire0));
-*/
+				.distance(cls_data_reg[j*6+6-1:j*6]),
+				.direction(1'b1),
+				.data(add_data_wire[j*widthr+widthr-1:j*widthr]),
+				.result(out_data_wire[j*widthr+widthr-1:j*widthr]));
+
 		end
 	endgenerate
@@ -211,4 +220,5 @@
 			amp_data_reg <= 8'd0;
 			tau_data_reg <= 16'd0;
+			cls_data_reg <= 6'd0;
 			for(i = 0; i <= 2; i = i + 1)
 			begin
@@ -230,4 +240,5 @@
 			amp_data_reg <= amp_data_next;
 			tau_data_reg <= tau_data_next;
+			cls_data_reg <= cls_data_next;
 			for(i = 0; i <= 2; i = i + 1)
 			begin
@@ -251,4 +262,5 @@
 		amp_data_next = amp_data_reg;
 		tau_data_next = tau_data_reg;
+		cls_data_next = cls_data_reg;
 		for(i = 0; i <= 2; i = i + 1)
 		begin
@@ -270,4 +282,5 @@
 				amp_data_next = 8'd0;
 				tau_data_next = 16'd0;
+				cls_data_next = 6'd0;
 				for(i = 0; i <= 2; i = i + 1)
 				begin
@@ -314,4 +327,5 @@
 					tau_data_next = tau_data_wire[0];
 					amp_data_next = amp_data_wire[0];
+					cls_data_next = cls_data_wire[0];
 					
 					int_case_next = 3'd3;
@@ -332,4 +346,5 @@
 				tau_data_next = tau_data_wire[1];
 				amp_data_next = amp_data_wire[1];
+				cls_data_next = cls_data_wire[1];
 
 				// register 1st sum
@@ -349,4 +364,5 @@
 				tau_data_next = tau_data_wire[2];
 				amp_data_next = amp_data_wire[2];
+				cls_data_next = cls_data_wire[2];
 				
 				// register 2nd sum
