Index: trunk/MultiChannelUSB/Paella.v
===================================================================
--- trunk/MultiChannelUSB/Paella.v	(revision 160)
+++ trunk/MultiChannelUSB/Paella.v	(revision 161)
@@ -119,4 +119,7 @@
 	wire	[11:0]	amp_data [2*N-1:0];
 
+	wire	[1:0]	amp_mux_flag [1:0];
+	wire	[11:0]	amp_mux_data [1:0];
+
 	wire			cnt_good [N-1:0];
 	wire	[15:0]	cnt_bits_wire;
@@ -219,4 +222,28 @@
 		.data({int_mux_data[2], int_mux_data[1], int_mux_data[0]}),
 		.result(trg_mux_data));
+
+	lpm_mux #(
+		.lpm_size(3),
+		.lpm_type("LPM_MUX"),
+		.lpm_width(14),
+		.lpm_widths(2)) amp_mux_unit_1 (
+		.sel(cfg_bits[8][1:0]),
+		.data({
+			{amp_flag[4], amp_data[4]},
+			{amp_flag[2], amp_data[2]},
+			{amp_flag[0], amp_data[0]}}),
+		.result({amp_mux_flag[0], amp_mux_data[0]}));
+
+	lpm_mux #(
+		.lpm_size(3),
+		.lpm_type("LPM_MUX"),
+		.lpm_width(14),
+		.lpm_widths(2)) amp_mux_unit_2 (
+		.sel(cfg_bits[8][5:4]),
+		.data({
+			{amp_flag[5], amp_data[5]},
+			{amp_flag[3], amp_data[3]},
+			{amp_flag[1], amp_data[1]}}),
+		.result({amp_mux_flag[1], amp_mux_data[1]}));
 
 	generate
@@ -302,5 +329,6 @@
 				.frame(sys_frame),
 				.reset(1'b0),
-				.cfg_data(cfg_bits[6+2*j][11:0]),
+				.cfg_data(cfg_bits[6][11:0]),
+//				.cfg_data(cfg_bits[6+2*j][11:0]),
 				.inp_data(clp_data[j]),
 				.out_flag(amp_flag[0+2*j]),
@@ -311,5 +339,6 @@
 				.frame(sys_frame),
 				.reset(1'b0),
-				.cfg_data(cfg_bits[7+2*j][11:0]),
+				.cfg_data(cfg_bits[7][11:0]),
+//				.cfg_data(cfg_bits[7+2*j][11:0]),
 				.inp_data(clp_data[j]),
 				.out_flag(amp_flag[1+2*j]),
@@ -323,10 +352,6 @@
 		.frame(sys_frame),
 		.reset(cfg_bits[0][5]),
-		.hst_good((amp_flag[0][0]) & (cnt_good[0]) & (cfg_bits[13][1])),
-		.hst_data(amp_data[0]),
-/*
-		.hst_good((amp_flag[j]) & (cnt_good[j]) & (cfg_bits[13][1])),
-		.hst_data(amp_data[j]),
-*/
+		.hst_good((amp_mux_flag[0][0]) & (cnt_good[0]) & (cfg_bits[13][1])),
+		.hst_data(amp_mux_data[0]),
 		.bus_ssel(bus_ssel[2]),
 		.bus_wren(bus_wren),
@@ -338,5 +363,5 @@
 	counter hst_counter_unit (
 		.clock(sys_clock),
-		.frame((sys_frame) & (~amp_flag[0][1])),
+		.frame((sys_frame) & (~amp_mux_flag[0][1])),
 //		.frame(sys_frame),
 		.reset(cfg_bits[0][8]),
@@ -366,5 +391,5 @@
 	counter rmt_counter_1 (
 		.clock(sys_clock),
-		.frame((sys_frame) & (~amp_flag[1][1])),
+		.frame((sys_frame) & (~amp_mux_flag[1][1])),
 //		.frame(sys_frame),
 		.reset(cfg_bits[0][12]),
@@ -400,5 +425,5 @@
 		.sclr(((sys_frame) & (cnt_good[2]) & (~cnt_good[1])) | (cfg_bits[0][11])),
 		.clock(sys_clock),
-		.cnt_en((sys_frame) & (amp_flag[1][0]) & (cnt_good[1]) & (cnt_good[2]) & (cfg_bits[16][1])),
+		.cnt_en((sys_frame) & (amp_mux_flag[1][0]) & (cnt_good[1]) & (cnt_good[2]) & (cfg_bits[16][1])),
 		.q(cnt_bits_wire));
 
Index: trunk/MultiChannelUSB/UserInterface.tcl
===================================================================
--- trunk/MultiChannelUSB/UserInterface.tcl	(revision 160)
+++ trunk/MultiChannelUSB/UserInterface.tcl	(revision 161)
@@ -7,5 +7,5 @@
 package require zlib
 
-wm minsize . 1000 700
+wm minsize . 990 660
 
 namespace eval ::mca {
@@ -237,5 +237,5 @@
 
     MuxDisplay instproc start {} {
-        my instvar config chan_val
+        my instvar config chan_val hstmux
 
         set chan_val(1) 0
@@ -246,6 +246,10 @@
         set chan_val(6) 0
 
+        set hstmux(1) 0
+        set hstmux(2) 0
+
         trace add variable [myvar chan_val] write [myproc chan_val_update]
         trace add variable [myvar polar] write [myproc polar_update]
+        trace add variable [myvar hstmux] write [myproc hstmux_update]
 
         $config(1).chan_1_1 select
@@ -257,6 +261,9 @@
 
         for {set i 1} {$i <= 3} {incr i} {
-          $config(7).polar$i select
-        }
+          $config(7).polar_$i select
+        }
+
+        $config(8).hstmux_1_1 select
+        $config(9).hstmux_2_1 select
     }
 
@@ -276,5 +283,5 @@
 
         foreach {osc title} $oscList {
-            set config($osc) [labelframe ${master}.mux_$osc -borderwidth 1 -relief sunken -text $title]
+            set config($osc) [labelframe ${master}.mux_$osc -borderwidth 1 -relief sunken -text $title  -font {-weight bold}]
 
             foreach {ch dummy} $adcList {
@@ -294,19 +301,30 @@
             }
             set column [expr {($osc - 1) % 3}]
-            set row [expr {($osc - 1) / 3 * 2 + 1}]
-            grid $config($osc) -row $row -column $column -sticky news -padx 10
-        }
-
-        set config(7) [labelframe ${master}.mux_8 -borderwidth 1 -relief sunken -text {polarity inversion}]
+            set row [expr {($osc - 1) / 3 + 1}]
+            grid $config($osc) -row $row -column $column -sticky news -padx 10 -pady 10
+        }
+
+        set config(7) [labelframe ${master}.mux_7 -borderwidth 1 -relief sunken -text {Polarity inversion} -font {-weight bold}]
+        set config(8) [labelframe ${master}.mux_8 -borderwidth 1 -relief sunken -text {Spectrum histogram} -font {-weight bold}]
+        set config(9) [labelframe ${master}.mux_9 -borderwidth 1 -relief sunken -text {Rate histogram} -font {-weight bold}]
         for {set i 1} {$i <= 3} {incr i} {
-          checkbutton $config(7).polar$i -text "ADC $i" -variable [myvar polar($i)]
-          grid ${config(7)}.polar$i
-        }
-        grid $config(7) -row 2 -column 3 -sticky news -padx 10
+          set value [expr {$i - 1}]
+
+          checkbutton $config(7).polar_$i -text "ADC $i" -variable [myvar polar($i)]
+          grid ${config(7)}.polar_$i
+
+          radiobutton $config(8).hstmux_1_$i -text "ADC $i" -variable [myvar hstmux(1)] -value $value
+          grid ${config(8)}.hstmux_1_$i
+
+          radiobutton $config(9).hstmux_2_$i -text "ADC $i" -variable [myvar hstmux(2)] -value $value
+          grid ${config(9)}.hstmux_2_$i
+        }
+        grid $config(7) -row 3 -column 0 -sticky news -padx 10 -pady 50
+        grid $config(8) -row 3 -column 1 -sticky news -padx 10 -pady 50
+        grid $config(9) -row 3 -column 2 -sticky news -padx 10 -pady 50
 
         grid columnconfigure ${master} 0 -weight 1
         grid columnconfigure ${master} 1 -weight 1
         grid columnconfigure ${master} 2 -weight 1
-        grid columnconfigure ${master} 3 -weight 1
 
         grid rowconfigure ${master} 0 -weight 1
@@ -339,4 +357,14 @@
 
         $controller usbCmd 0002000100040${value}
+    }
+
+# -------------------------------------------------------------------------
+
+    MuxDisplay instproc hstmux_update args {
+        my instvar controller hstmux
+
+        set value [format {%x%x} $hstmux(2) $hstmux(1)]
+
+        $controller usbCmd 00020008000400${value}
     }
 
