HSIO_VER <= stat(3) & build_no_slv;

dbg_oe <= dbg_reg(R_CONTROL)(CTL_DBG_EN);

-- P2 IDC
-------------------------------------------------------------
-- P2 is used for add-on devices
--

-- P3 IDC
-------------------------------------------------------------
-- P3 could be used for fake serial data sending
-- The return path is via the EOS porch.
--
--gen_p3_dbg_sig : for n in 0 to 31 generate
--begin
-- idc_p3_io(n) <= '0';
--end generate;
--idc_p3_io <= (others => '0');

-- P4 IDC
-------------------------------------------------------------
--gen_p4_dbg_sig : for n in 0 to 31 generate
--begin
-- idc_p4_io(m) <= '0';
--end generate;
--idc_p4_io <= (others => '0');

-- P5 IDC
-------------------------------------------------------------
idc_p5_io(0)  <= dbg_clk;                         --idc 1
idc_p5_io(2)  <= dbg_oe and dbg_strobe40;         --idc 3
idc_p5_io(4)  <= dbg_oe and dbg_trig80;           --idc 5
idc_p5_io(6)  <= dbg_clk40;                       --idc 7
-- gnd ---------------- gnd                       --idc 9
idc_p5_io(8)  <= dbg_oe and dbg_lemo_trig;        --idc11
idc_p5_io(10) <= dbg_oe and dbg_com_abc;          --idc13
idc_p5_io(12) <= dbg_oe and dbg_busy_ro;          --idc15
idc_p5_io(14) <= dbg_oe and dbg_ocraw_start;      --idc17
-- gnd ---------------- gnd                       --idc19
idc_p5_io(16) <= dbg_oe and dbg_tlu_trig;         --idc21
idc_p5_io(18) <= dbg_oe and dbg_tlu_tclk;         --idc23
idc_p5_io(20) <= dbg_oe and dbg_tlu_busy;         --idc25
idc_p5_io(22) <= dbg_oe and dbg_tlu_reset;        --idc27
-- gnd ---------------- gnd                       --idc29
idc_p5_io(24) <= dbg_clk160;                      --idc31
idc_p5_io(26) <= dbg_clk160ps;                    --idc33
idc_p5_io(28) <= dbg_clk_p2_pll;                  --idc35
idc_p5_io(30) <= dbg_oe and dbg_oc_start_i;         --idc37
-- gnd ---------------- gnd                       --idc39

-- map "far side" P5 IDC signals (idc 2-40, evens, 10,20,30,40 = gnd))
gen_p5_dbg_sig : for n in 0 to 15 generate
begin
  idc_p5_io((n*2)+1) <= dbg_oe and dbg_outsigs_i(n);
end generate;

---------------------------------------------------------

                 idbg_link_sel <= conv_integer(reg(R_LEMO_STRM))/2;

                 dbg_lemo_strm0 <= dbg_strm(idbg_link_sel*2);
                 dbg_lemo_strm1 <= dbg_strm((idbg_link_sel*2)+1);
                 dbg_lemo_link  <= dbg_link_idly(idbg_link_sel);

------------------------------------
-- Display
------------------------------------
                 dispDigitA <= "0000" & dispword(31 downto 28);
                 dispDigitB <= "0000" & dispword(27 downto 24);
                 dispDigitC <= "0000" & dispword(23 downto 20);
                 dispDigitD <= "0000" & dispword(19 downto 16);
                 dispDigitE <= "0000" & dispword(15 downto 12);
                 dispDigitF <= "0000" & dispword(11 downto 8);
                 dispDigitG <= "0000" & dispword(7 downto 4);
                 dispDigitH <= "0000" & dispword(3 downto 0);

                 dispword(31 downto 0) <= HSIO_VER;

--                   HSIO_VER                          when (post_rst_5s = '1')             else
--                   --(x"0007" & dbg_reg(R_LEN0))     when (dbg_reg(R_DISP_SEL) = x"0007") else
--                   --(x"0008" & dbg_reg(R_LEN1))     when (dbg_reg(R_DISP_SEL) = x"0008") else
--                   --(x"0016" & dbg_reg(R_COM_ENA))  when (dbg_reg(R_DISP_SEL) = x"0010") else
--                   (x"0021" & dbg_l1id(15 downto 0)) when (dbg_reg(R_DISP_SEL) = x"0015") else
--                   (x"0022" & x"0" & dbg_bcid_l1a)   when (dbg_reg(R_DISP_SEL) = x"0016") else
--                   --(x"0023" & dbg_reg(R_CONTROL)) when (dbg_reg(R_DISP_SEL) = x"0017") else
--                   --sf_stat_word_i(0)(31 downto 0) when (dbg_reg(R_DISP_SEL) = x"0020") else
--                   --sf_stat_word_i(1)(31 downto 0) when (dbg_reg(R_DISP_SEL) = x"0022") else
--                   --stat_word_cu(31 downto 0)   when (dbg_reg(R_DISP_SEL) = x"0024")  else
--                   HSIO_VER;