--- /dev/null
+ # NET +<3> LOC = E8;
+# NET ADDON_RESET LOC ="B10"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<0> LOC ="A12"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<1> LOC ="A13"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<2> LOC ="A14"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<3> LOC ="B13"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<4> LOC ="C12"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<5> LOC ="C13"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<6> LOC ="D12"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<7> LOC ="D15"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<8> LOC ="E11"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<9> LOC ="E13"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<10> LOC ="A9"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<11> LOC ="A10"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<12> LOC ="A11"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<13> LOC ="B11"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<14> LOC ="B12"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<15> LOC ="C11"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<16> LOC ="D9"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<17> LOC ="D11"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<18> LOC ="E10"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<19> LOC ="M10"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<20> LOC ="N9"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<21> LOC ="N10"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<22> LOC ="P10"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<23> LOC ="P11"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<24> LOC ="R9"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<25> LOC ="R10"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<26> LOC ="R11"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<27> LOC ="T10"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<28> LOC ="T11"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<29> LOC ="M11"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<30> LOC ="N11"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<31> LOC ="N12"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<32> LOC ="P12"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<33> LOC ="R12"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL<34> LOC ="R13"| IOSTANDARD = "LVTTL";
+ NET ADO_TTL_OUT LOC ="R14"| IOSTANDARD = "LVTTL";
+# NET ADO_TTL<35> LOC ="R14"| IOSTANDARD = "LVTTL";
+# NET ADO_TTL<36> LOC ="T12"| IOSTANDARD = "LVTTL";
+# NET ADO_TTL<37> LOC ="T13"| IOSTANDARD = "LVTTL";
+# NET ADO_TTL<38> LOC ="T14"| IOSTANDARD = "LVTTL";
+# NET ADO_TTL<39> LOC ="T6"| IOSTANDARD = "LVTTL";
+# NET ADO_TTL<40> LOC ="T5"| IOSTANDARD = "LVTTL";
+# NET ADO_TTL<41> LOC ="T4"| IOSTANDARD = "LVTTL";
+# NET ADO_TTL<42> LOC ="R6"| IOSTANDARD = "LVTTL";
+# NET ADO_TTL<43> LOC ="R5"| IOSTANDARD = "LVTTL";
+# NET ADO_TTL<44> LOC ="R4"| IOSTANDARD = "LVTTL";
+# NET ADO_TTL<45> LOC ="P5"| IOSTANDARD = "LVTTL";
+# NET ADO_TTL<46> LOC ="E7"| IOSTANDARD = "LVTTL";
+ NET A_R LOC ="A6"| IOSTANDARD = "TTL";
+ NET A_RB LOC ="D8";
+ NET A_RD<0> LOC ="B7"| IOSTANDARD = "TTL";
+ NET A_RD<1> LOC ="B8"| IOSTANDARD = "TTL";
+ NET A_RD<2> LOC ="C7"| IOSTANDARD = "TTL";
+ NET A_RD<3> LOC ="C8"| IOSTANDARD = "TTL";
+ NET A_RE LOC ="D7"| IOSTANDARD = "TTL";
+ NET A_RS LOC ="B6"| IOSTANDARD = "TTL";
+ NET A_T LOC ="A4"| IOSTANDARD = "TTL";
+ NET A_TB LOC ="D3"| IOSTANDARD = "TTL";
+ NET A_TB_B2_DIR LOC ="H2"| IOSTANDARD = "TTL";
+ NET A_TB_B1_DIR LOC ="H16"| IOSTANDARD = "TTL";
+ NET A_TB_D_DIR LOC ="E6"| IOSTANDARD = "TTL";
+ NET A_TB_E2_DIR LOC ="H4"| IOSTANDARD = "TTL";
+ NET A_TB_E1_DIR LOC ="D6"| IOSTANDARD = "TTL";
+ NET A_TD<0> LOC ="B4"| IOSTANDARD = "TTL";
+ NET A_TD<1> LOC ="B5"| IOSTANDARD = "TTL";
+ NET A_TD<2> LOC ="C1"| IOSTANDARD = "TTL";
+ NET A_TD<3> LOC ="C5"| IOSTANDARD = "TTL";
+ NET A_TE LOC ="C6"| IOSTANDARD = "TTL";
+ NET A_TS LOC ="A5"| IOSTANDARD = "TTL";
+ NET B_R LOC ="L12"| IOSTANDARD = "TTL";
+ NET B_RB LOC ="N16"| IOSTANDARD = "TTL";
+ NET B_RD<0> LOC ="L16"| IOSTANDARD = "TTL";
+ NET B_RD<1> LOC ="M14"| IOSTANDARD = "TTL";
+ NET B_RD<2> LOC ="M15"| IOSTANDARD = "TTL";
+ NET B_RD<3> LOC ="M16"| IOSTANDARD = "TTL";
+ NET B_RE LOC ="N15"| IOSTANDARD = "TTL";
+ NET B_RS LOC ="L13"| IOSTANDARD = "TTL";
+ NET B_T LOC ="J14"| IOSTANDARD = "TTL";
+ NET B_TB LOC ="L14"| IOSTANDARD = "TTL";
+ NET B_TB_B2_DIR LOC ="J5"| IOSTANDARD = "TTL";
+ NET B_TB_B1_DIR LOC ="P15"| IOSTANDARD = "TTL";
+ NET B_TB_D_DIR LOC ="K12"| IOSTANDARD = "TTL";
+ NET B_TB_E1_DIR LOC ="L15"| IOSTANDARD = "TTL";
+ NET B_TB_E2_DIR LOC ="J3"| IOSTANDARD = "TTL";
+ NET B_TD<0> LOC ="J16"| IOSTANDARD = "TTL";
+ NET B_TD<1> LOC ="K13"| IOSTANDARD = "TTL";
+ NET B_TD<2> LOC ="K14"| IOSTANDARD = "TTL";
+ NET B_TD<3> LOC ="K15"| IOSTANDARD = "TTL";
+ NET B_TE LOC ="K16"| IOSTANDARD = "TTL";
+ NET B_TS LOC ="J15"| IOSTANDARD = "TTL";
+# NET CPLD_CLK LOC ="B9";
+ NET DIFF_IN<0> LOC ="F16";
+ NET DIFF_IN<1> LOC ="G13";
+ NET DIFF_IN<2> LOC ="G14";
+ NET DIFF_IN<3> LOC ="G15";
+ NET DIFF_IN<4> LOC ="G16";
+ NET DIFF_IN<5> LOC ="H12";
+ NET DIFF_IN<6> LOC ="H13";
+ NET DIFF_IN<7> LOC ="H14";
+ # NET DISP_A<0> LOC ="M2";
+ # NET DISP_A<1> LOC ="L5";
+ # NET DISP_D<0> LOC ="M3";
+ # NET DISP_D<1> LOC ="M4";
+ # NET DISP_D<2> LOC ="N2";
+ # NET DISP_D<3> LOC ="N3";
+ # NET DISP_D<4> LOC ="P1";
+ # NET DISP_D<5> LOC ="R1";
+ # NET DISP_D<6> LOC ="T1";
+ # NET DISP_WR LOC ="L2";
+ # NET FROM_LVDS<28> LOC ="C16";
+ # NET FROM_LVDS<29> LOC ="D16";
+ # NET FROM_LVDS<30> LOC ="E14";
+ # NET FS_PE<0> LOC ="A7";
+ # NET FS_PE<1> LOC ="K1";
+ # NET FS_PE<2> LOC ="J13";
+ # NET FS_PE<4> LOC ="C10";
+ # NET FS_PE<5> LOC ="N8";
+ # NET FS_PE<6> LOC ="P6";
+ # NET FS_PE<7> LOC ="P7";
+ # NET FS_PE<8> LOC ="P8";
+ # NET FS_PE<9> LOC ="P9";
+ # NET FS_PE<10> LOC ="R7";
+ # NET FS_PE<11> LOC ="R8";
+ # NET FS_PE<12> LOC ="T7";
+ # NET FS_PE<13> LOC ="T8";
+ # NET FS_PE<14> LOC ="T9";
+ # NET FS_PE<15> LOC ="M7";
+ # NET FS_PE<16> LOC ="N6";
+ # NET FS_PE<17> LOC ="N7";
+ # NET GND LOC ="L11";
+ NET LED_CNT_1 LOC ="F13";
+ NET LED_CNT_2 LOC ="F14";
+# NET LED_CTU_EN LOC ="F15";
+ NET LED_ERROR LOC ="E16";
+ NET LED_GOOD LOC ="F12";
+# NET LED_LVDS_EN LOC ="E15";
+
--- /dev/null
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.STD_LOGIC_ARITH.ALL;
+use IEEE.STD_LOGIC_UNSIGNED.ALL;
+use IEEE.NUMERIC_STD.all;
+
+-- use work.support.all;
+library UNISIM;
+use UNISIM.VCOMPONENTS.all;
+
+entity gp_add_on is
+ port(
+-- -- # NET +<3> LOC = E8;
+-- ADDON_RESET :in std_logic;
+ ADO_TTL : inout std_logic_vector(34 downto 0);
+ ADO_TTL_OUT : out std_logic;
+-- ------------------------------------------------------------------------------
+-- -- LVL1
+-- ------------------------------------------------------------------------------
+ B_R : in std_logic;
+ B_RB : out std_logic;
+ B_RD : in std_logic_vector(3 downto 0);
+ B_RE : out std_logic;
+ B_RS : in std_logic;
+ ------------------------------------------------------------------------------
+ -- LVL2
+ ------------------------------------------------------------------------------
+ B_T : in std_logic;
+ B_TB : out std_logic;
+ B_TB_B2_DIR :out std_logic;
+ B_TB_B1_DIR :out std_logic;
+ B_TB_D_DIR :out std_logic;
+ B_TB_E2_DIR :out std_logic;
+ B_TB_E1_DIR :out std_logic;
+ B_TD :in std_logic_vector(3 downto 0);
+ B_TE : out std_logic;
+ B_TS : in std_logic;
+
+-------------------------------------------------------------------------------
+-- to next trb dtu data
+-------------------------------------------------------------------------------
+------------------------------------------------------------------------------
+-- LVL1
+--------------------------------------------------------------------------------
+ A_R : out std_logic;
+ A_RB : in std_logic;
+ A_RD : out std_logic_vector(3 downto 0);
+ A_RE : in std_logic;
+ A_RS : out std_logic;
+------------------------------------------------------------------------------
+-- LVL2
+------------------------------------------------------------------------------
+ A_T : out std_logic;
+ A_TB : in std_logic;
+ A_TB_B2_DIR :out std_logic;
+ A_TB_B1_DIR :out std_logic;
+ A_TB_D_DIR :out std_logic;
+ A_TB_E2_DIR :out std_logic;
+ A_TB_E1_DIR :out std_logic;
+ A_TD : out std_logic_vector(3 downto 0);
+ A_TE : in std_logic;
+ A_TS : out std_logic;
+
+-- CPLD_CLK :in std_logic;
+ DIFF_IN : in std_logic_vector(7 downto 0);
+-- -- DISP_A<0> LOC = M2;
+-- -- DISP_A<1> LOC = L5;
+-- -- DISP_D<0> LOC = M3;
+-- -- DISP_D<1> LOC = M4;
+-- -- DISP_D<2> LOC = N2;
+-- -- DISP_D<3> LOC = N3;
+-- -- DISP_D<4> LOC = P1;
+-- -- DISP_D<5> LOC = R1;
+-- -- DISP_D<6> LOC = T1;
+-- -- DISP_WR LOC = L2;
+-- -- FROM_LVDS<28> LOC = C16;
+-- -- FROM_LVDS<29> LOC = D16;
+-- -- FROM_LVDS<30> LOC = E14;
+-- -- FS_PE<0> LOC = A7;
+-- -- FS_PE<1> LOC = K1;
+-- -- FS_PE<2> LOC = J13;
+-- -- FS_PE<4> LOC = C10;
+-- -- FS_PE<5> LOC = N8;
+-- -- FS_PE<6> LOC = P6;
+-- -- FS_PE<7> LOC = P7;
+-- -- FS_PE<8> LOC = P8;
+-- -- FS_PE<9> LOC = P9;
+-- -- FS_PE<10> LOC = R7;
+-- -- FS_PE<11> LOC = R8;
+-- -- FS_PE<12> LOC = T7;
+-- -- FS_PE<13> LOC = T8;
+-- -- FS_PE<14> LOC = T9;
+-- -- FS_PE<15> LOC = M7;
+-- -- FS_PE<16> LOC = N6;
+-- -- FS_PE<17> LOC = N7;
+-- -- GND LOC = L11;
+ LED_CNT_1 :out std_logic;
+ LED_CNT_2 :out std_logic;
+-- -- LED_CTU_EN :out std_logic;
+ LED_ERROR :out std_logic;
+ LED_GOOD :out std_logic
+-- -- LED_LVDS_EN :out std_logic
+ );
+end gp_add_on;
+architecture gp_add_on of gp_add_on is
+ signal diff_in_i : std_logic_vector(7 downto 0);
+ signal busy : std_logic;
+begin -- gp_add_on
+ LED_CNT_1 <= '0';
+ LED_ERROR <= '1';
+ LED_GOOD <= '0';
+ LED_CNT_2 <= '0';
+-------------------------------------------------------------------------------
+-- dtu interface
+-------------------------------------------------------------------------------
+
+-- ------------------------------------------------------------------------------
+-- -- LVL1
+-- ------------------------------------------------------------------------------
+-- ADO_TTL(4) <= B_R;
+-- B_RB <= ADO_TTL(0) or A_RB;
+-- ADO_TTL(8 downto 5) <= B_RD;
+-- B_RE <= ADO_TTL(1);
+-- ADO_TTL(9) <= B_RS;
+-- ------------------------------------------------------------------------------
+-- -- LVL2
+-- ------------------------------------------------------------------------------
+-- ADO_TTL(10) <= B_T;
+-- B_TB <= ADO_TTL(2) or A_TB;
+-- ADO_TTL(14 downto 11) <= B_TD;
+-- B_TE <= ADO_TTL(3);
+-- ADO_TTL(15) <= B_TS;
+-- -----------------------------------------------------------------------------
+-- -- Hades bus direction
+-- -----------------------------------------------------------------------------
+-- B_TB_B2_DIR <= '1';
+-- B_TB_B1_DIR <= '1';
+-- B_TB_D_DIR <= '0';
+-- B_TB_E2_DIR <= '1';
+-- B_TB_E1_DIR <= '1';
+-- ADO_TTL(3 downto 0) <= (others => 'Z');
+-------------------------------------------------------------------------------
+-- to next trb dtu data
+-------------------------------------------------------------------------------
+-- A_R <= B_R;
+-- -- A_RB; --BUSY FROM NEXT TRB
+-- A_RD <= B_RD;
+-- -- A_RE ;--ERROR FROM NEXT TRB
+-- A_RS <= B_RS;
+-- ------------------------------------------------------------------------------
+-- -- LVL2
+-- ------------------------------------------------------------------------------
+-- A_T <= B_T;
+-- -- A_TB ; --BUSY FROM NEXT TRB
+-- A_TD <= B_TD;
+-- -- A_TE ; --ERROR FROM NEXT TRB
+-- A_TS <= B_TS;
+-- -----------------------------------------------------------------------------
+-- -- Hades bus direction
+-- -----------------------------------------------------------------------------
+-- A_TB_B2_DIR <= '0';
+-- A_TB_B1_DIR <= '0';
+-- A_TB_D_DIR <= '1';
+-- A_TB_E2_DIR <= '0';
+-- A_TB_E1_DIR <= '0';
+
+ ----------------------------------------------------------------------------
+ -- scalers
+ ----------------------------------------------------------------------------
+-- ADO_TTL(38 downto 35) <= DIFF_IN(3 downto 0);
+-- ADO_TTL(42 downto 39) <= DIFF_IN(7 downto 4);
+
+
+----------------------------------------------------------------------------
+-- vulom interface
+-------------------------------------- --------------------------------------
+-- aaa: process (B_TD, B_T)
+-- begin -- process aaa
+-- if B_T = '1' then
+-- busy <= '1'
+-- elsif B_TD'event and B_TD = '1' then
+-- busy <= B_RS;
+-- end if;
+-- end process aaa;
+
+-------------------------------------------------------------------------------
+-- Vulom interface
+-------------------------------------------------------------------------------
+
+ ADO_TTL(4) <= 'Z';
+-- ADO_TTL(3 downto 0) <= DIFF_IN(0 to 3);
+ ADO_TTL(1) <= DIFF_IN(0);
+ ADO_TTL(2) <= DIFF_IN(1);
+ ADO_TTL(3) <= DIFF_IN(2);
+-- ADO_TTL(3) <= DIFF_IN(3);
+-- ADO_TTL(15 downto 12) <= DIFF_IN(3 downto 0);
+ busy <= ADO_TTL(4);
+ ADO_TTL_OUT <= busy;--ADO_TTL(4);
+end gp_add_on;