]> jspc29.x-matter.uni-frankfurt.de Git - trbv2.git/commitdiff
for general porpuse addon
authorpalka <palka>
Tue, 8 Jan 2008 12:10:18 +0000 (12:10 +0000)
committerpalka <palka>
Tue, 8 Jan 2008 12:10:18 +0000 (12:10 +0000)
GP_Addon/gp_add_on.ucf [new file with mode: 0644]
GP_Addon/gp_add_on.vhd [new file with mode: 0644]

diff --git a/GP_Addon/gp_add_on.ucf b/GP_Addon/gp_add_on.ucf
new file mode 100644 (file)
index 0000000..9228aac
--- /dev/null
@@ -0,0 +1,139 @@
+  # 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";
+  
diff --git a/GP_Addon/gp_add_on.vhd b/GP_Addon/gp_add_on.vhd
new file mode 100644 (file)
index 0000000..1a19b87
--- /dev/null
@@ -0,0 +1,199 @@
+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;