]> jspc29.x-matter.uni-frankfurt.de Git - trbnet.git/commitdiff
*** empty log message ***
authorhadeshyp <hadeshyp>
Mon, 6 Sep 2010 16:41:18 +0000 (16:41 +0000)
committerhadeshyp <hadeshyp>
Mon, 6 Sep 2010 16:41:18 +0000 (16:41 +0000)
gbe_ecp2m/ip_configurator.vhd
gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo
gbe_ecp2m/trb_net16_gbe_buf.vhd
gbe_ecp2m/trb_net16_gbe_frame_constr.vhd
gbe_ecp2m/trb_net16_gbe_frame_trans.vhd
gbe_ecp2m/trb_net16_gbe_setup.vhd
gbe_ecp2m/trb_net16_med_ecp_sfp_gbe_8b.vhd
gbe_ecp2m/trb_net_gbe_components.vhd

index 887f562bedfe64a8d7f18987c3e3fe58cacdb912..d6b0778a029a34c179a55a1126ac655016614bbb 100755 (executable)
@@ -32,6 +32,11 @@ end entity;
 \r
 architecture ip_configurator of ip_configurator is\r
 \r
+-- -- Placer Directives\r
+-- attribute HGROUP : string;\r
+-- -- for whole architecture\r
+-- attribute HGROUP of ip_configurator : architecture  is "GBE_conf_group";\r
+\r
 type STATES    is (IDLE, LOAD_REG, DELAY0, DELAY1, DELAY2, LOAD_DONE);\r
 signal CURRENT_STATE, NEXT_STATE : STATES;\r
 signal bsm                                     : std_logic_vector(3 downto 0);\r
index 02c5feadedc095a637bc0f6231aab6f4894bc555..4bfd6e06e5be71df4f7969a47cabece5ca352283 100755 (executable)
Binary files a/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo and b/gbe_ecp2m/ipcores/sgmii_gbe_pcs32/sgmii_gbe_pcs32.ngo differ
index c1f6637dc5078d57e05753044a43bd1b164bfea1..7dee1b2f5623bea33d1560d61a595b4acc963e2c 100755 (executable)
@@ -435,7 +435,10 @@ signal monitor_lr                    : std_logic_vector(31 downto 0);
 signal monitor_hr                    : std_logic_vector(31 downto 0);
 signal monitor_fifos                 : std_logic_vector(31 downto 0);
 signal monitor_fifos_q               : std_logic_vector(31 downto 0);
+signal monitor_discfrm               : std_logic_vector(31 downto 0);
 
+-- gk 02.08.10
+signal discfrm_ctr                   : std_logic_vector(31 downto 0);
 
 begin
 
@@ -497,6 +500,7 @@ port map(
        MONITOR_LR_IN             => monitor_lr,
        MONITOR_HDR_IN            => monitor_hr,
        MONITOR_FIFOS_IN          => monitor_fifos_q,
+       MONITOR_DISCFRM_IN        => monitor_discfrm,
        -- gk 01.06.10
        DBG_IPU2GBE1_IN           => dbg_ipu2gbe1,
        DBG_IPU2GBE2_IN           => dbg_ipu2gbe2,
@@ -566,7 +570,6 @@ port map(
        STAT            => open
 );
 
-
 -- First stage: get data from IPU channel, buffer it and terminate the IPU transmission to CTS
 THE_IPU_INTERFACE: trb_net16_ipu2gbe
 port map( 
@@ -733,6 +736,7 @@ port map(
        FT_TX_RD_EN_IN                  => mac_tx_read,
        FT_START_OF_PACKET_OUT          => ft_start_of_packet,
        FT_TX_DONE_IN                   => mac_tx_done,
+       FT_TX_DISCFRM_IN                => mac_tx_discfrm,
        -- debug ports
        BSM_CONSTR_OUT                  => fc_bsm_constr,
        BSM_TRANS_OUT                   => fc_bsm_trans,
@@ -761,6 +765,7 @@ port map(
        TX_FIFOEOF_OUT                  => mac_fifoeof,
        TX_FIFOEMPTY_OUT                => mac_fifoempty,
        TX_DONE_IN                      => mac_tx_done,
+       TX_DISCFRM_IN                   => mac_tx_discfrm,
        -- Debug
        BSM_INIT_OUT                    => ft_bsm_init,
        BSM_MAC_OUT                     => ft_bsm_mac,
@@ -1053,6 +1058,31 @@ begin
        end if;
 end process BYTES_SENT_CTR_PROC;
 
+-- gk 02.08.10
+DISCFRM_PROC : process(serdes_clk_125)
+begin
+       if rising_edge(serdes_clk_125) then
+               if (RESET = '1') then
+                       discfrm_ctr <= (others => '0');
+               elsif (mac_tx_discfrm = '1') then
+                       discfrm_ctr <= discfrm_ctr + x"1";
+               end if;
+       end if;
+end process DISCFRM_PROC;
+
+discfrm_sync : signal_sync
+       generic map(
+         DEPTH => 2,
+         WIDTH => 32
+         )
+       port map(
+         RESET    => RESET,
+         D_IN     => discfrm_ctr,
+         CLK0     => serdes_clk_125,
+         CLK1     => CLK,
+         D_OUT    => monitor_discfrm
+         );
+
 
 -- reset_fifo <= '1' when RESET = '1' or pc_sos = '1' else '0';
 -- 
index 9112acddd7a65f98617d9592c698fb2b66659f83..d4a7ddf2fc9caa694436a3860d5821bbb90b4e7a 100755 (executable)
@@ -43,6 +43,7 @@ port(
        FT_TX_RD_EN_IN          : in    std_logic;\r
        FT_START_OF_PACKET_OUT  : out   std_logic;\r
        FT_TX_DONE_IN           : in    std_logic;\r
+       FT_TX_DISCFRM_IN        : in    std_logic;\r
        -- debug ports\r
        BSM_CONSTR_OUT          : out   std_logic_vector(7 downto 0);\r
        BSM_TRANS_OUT           : out   std_logic_vector(3 downto 0);\r
@@ -437,7 +438,7 @@ begin
        end if;\r
 end process transmitMachineProc;\r
 \r
-transmitMachine: process( transmitCurrentState, fpf_q, FT_TX_DONE_IN, sent_frames_ctr, ready_frames_ctr_q )\r
+transmitMachine: process( transmitCurrentState, fpf_q, FT_TX_DONE_IN, sent_frames_ctr, ready_frames_ctr_q, FT_TX_DISCFRM_IN )\r
 begin\r
        case transmitCurrentState is\r
                when T_IDLE =>\r
@@ -457,7 +458,7 @@ begin
                when T_TRANSMIT =>\r
                        bsm_trans <= x"2";\r
                        -- gk 03.08.10\r
-                       if (LINK_OK_IN = '1') and (ft_tx_done_in = '1') then\r
+                       if (LINK_OK_IN = '1') and ((ft_tx_done_in = '1') or (FT_TX_DISCFRM_IN = '1'))then\r
                                transmitNextState <= T_CLEANUP;\r
                        elsif (LINK_OK_IN = '0') then\r
                                transmitNextState <= T_PAUSE;\r
@@ -496,7 +497,7 @@ begin
                if   ( RESET = '1' ) then\r
                        sent_frames_ctr <= (others => '0');\r
                -- gk 03.08.10\r
-               elsif( ft_tx_done_in = '1' ) or (transmitCurrentState = T_PAUSE) then\r
+               elsif( ft_tx_done_in = '1' ) or (transmitCurrentState = T_PAUSE) or (FT_TX_DISCFRM_IN = '1') then\r
                        sent_frames_ctr <= sent_frames_ctr + 1;\r
                end if;\r
        end if;\r
index fd808c754942170d9dde6e54d1d963d43f9358de..c8220fb00d3a60d2b6e6b78e8d7a099120a75b0c 100755 (executable)
@@ -29,6 +29,7 @@ port (
        TX_FIFOEOF_OUT          : out   std_logic;\r
        TX_FIFOEMPTY_OUT        : out   std_logic;\r
        TX_DONE_IN                      : in    std_logic;\r
+       TX_DISCFRM_IN           :       in std_logic;\r
        -- Debug\r
        BSM_INIT_OUT            : out   std_logic_vector(3 downto 0);\r
        BSM_MAC_OUT                     : out   std_logic_vector(3 downto 0);\r
@@ -133,7 +134,7 @@ begin
                        end if;\r
                when T_WAITFORFIFO =>\r
                        bsm_trans <= x"2";\r
-                       if (TX_DONE_IN = '1') or (LINK_OK_IN = '0') then  -- gk 03.08.10\r
+                       if (TX_DONE_IN = '1') or (LINK_OK_IN = '0') or (TX_DISCFRM_IN = '1') then  -- gk 03.08.10\r
                                transmitNextState <= T_IDLE;\r
                        else\r
                                transmitNextState <= T_WAITFORFIFO;\r
index ea01a752a4f06840d6e2b16c208088985563f26e..92076fce200537cc38e8b6692bbaad70b10cc895 100644 (file)
@@ -47,7 +47,9 @@ port(
        MONITOR_DROPPED_IN        : in std_logic_vector(31 downto 0);
        MONITOR_SM_IN             : in std_logic_vector(31 downto 0);
        MONITOR_LR_IN             : in std_logic_vector(31 downto 0);
-       MONITOR_HDR_IN            : in std_logic_vector(31 downto 0);   
+       MONITOR_HDR_IN            : in std_logic_vector(31 downto 0);
+       MONITOR_FIFOS_IN          : in std_logic_vector(31 downto 0);
+       MONITOR_DISCFRM_IN        : in std_logic_vector(31 downto 0);
        -- gk 01.06.10
        DBG_IPU2GBE1_IN          : in std_logic_vector(31 downto 0);
        DBG_IPU2GBE2_IN          : in std_logic_vector(31 downto 0);
@@ -77,7 +79,7 @@ architecture gbe_setup of gbe_setup is
 -- -- Placer Directives
 -- attribute HGROUP : string;
 -- -- for whole architecture
--- attribute HGROUP of gbe_setup : architecture  is "GBE_setup_group";
+-- attribute HGROUP of gbe_setup : architecture  is "GBE_conf_group";
 
 signal reset_values      : std_logic;
 
@@ -148,7 +150,7 @@ begin
                        max_packet        <= x"0000_fde8"; -- 65k --x"0000_fde8"; -- tester
                        min_packet        <= x"0000_0008"; -- gk 20.07.10
                        max_frame         <= x"0578";
-                       use_gbe           <= '1';
+                       use_gbe           <= '0'; --'1';  -- gk 27.08.10  -- blocks the transmission until gbe gets configured
                        use_trbnet        <= '0';
                        use_multievents   <= '0';
                        reset_values      <= '0';
@@ -392,6 +394,12 @@ begin
                                when x"f8" =>
                                        data_out <= MONITOR_HDR_IN;
 
+                               when x"f9" =>
+                                       data_out <= MONITOR_FIFOS_IN;
+
+                               when x"fa" =>
+                                       data_out <= MONITOR_DISCFRM_IN;
+
                                when others =>
                                        data_out <= (others => '0');
                        end case;
index fe9069c1c36e4db0ca297dc114bf6d07edd86d1f..f7b381ad94dc0db2b6146828abc2bd0decb3df18 100755 (executable)
@@ -18,8 +18,8 @@ port(
        CLK_125_OUT                             : out   std_logic;\r
        CLK_125_IN                              : in std_logic;  -- gk 28.04.10  used when intclk\r
        --SGMII connection to frame transmitter (tsmac)\r
-       FT_TX_CLK_EN_OUT                : out   std_logic;\r
-       FT_RX_CLK_EN_OUT                : out   std_logic;\r
+       FT_TX_CLK_EN_OUT                        : out   std_logic;\r
+       FT_RX_CLK_EN_OUT                        : out   std_logic;\r
        FT_COL_OUT                              : out   std_logic;\r
        FT_CRS_OUT                              : out   std_logic;\r
        FT_TXD_IN                               : in    std_logic_vector(7 downto 0);\r
@@ -28,22 +28,22 @@ port(
        --SFP Connection\r
        SD_RXD_P_IN                             : in    std_logic;\r
        SD_RXD_N_IN                             : in    std_logic;\r
-       SD_TXD_P_OUT                    : out   std_logic;\r
-       SD_TXD_N_OUT                    : out   std_logic;\r
-       SD_REFCLK_P_IN                  : in    std_logic;\r
-       SD_REFCLK_N_IN                  : in    std_logic;\r
-       SD_PRSNT_N_IN                   : in    std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted)\r
+       SD_TXD_P_OUT                            : out   std_logic;\r
+       SD_TXD_N_OUT                            : out   std_logic;\r
+       SD_REFCLK_P_IN                          : in    std_logic;\r
+       SD_REFCLK_N_IN                          : in    std_logic;\r
+       SD_PRSNT_N_IN                           : in    std_logic; -- SFP Present ('0' = SFP in place, '1' = no SFP mounted)\r
        SD_LOS_IN                               : in    std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal)\r
-       SD_TXDIS_OUT                    : out   std_logic; -- SFP disable\r
+       SD_TXDIS_OUT                            : out   std_logic; -- SFP disable\r
        -- Autonegotiation stuff \r
        MR_RESET_IN                             : in    std_logic;\r
        MR_MODE_IN                              : in    std_logic;\r
-       MR_ADV_ABILITY_IN               : in    std_logic_vector(15 downto 0); -- should be x"0020\r
-       MR_AN_LP_ABILITY_OUT    : out   std_logic_vector(15 downto 0); -- advert page from link partner\r
-       MR_AN_PAGE_RX_OUT               : out   std_logic;\r
-       MR_AN_COMPLETE_OUT              : out   std_logic; \r
-       MR_AN_ENABLE_IN                 : in    std_logic;\r
-       MR_RESTART_AN_IN                : in    std_logic;\r
+       MR_ADV_ABILITY_IN                       : in    std_logic_vector(15 downto 0); -- should be x"0020\r
+       MR_AN_LP_ABILITY_OUT                    : out   std_logic_vector(15 downto 0); -- advert page from link partner\r
+       MR_AN_PAGE_RX_OUT                       : out   std_logic;\r
+       MR_AN_COMPLETE_OUT                      : out   std_logic; \r
+       MR_AN_ENABLE_IN                         : in    std_logic;\r
+       MR_RESTART_AN_IN                        : in    std_logic;\r
        -- Status and control port\r
        STAT_OP                                 : out   std_logic_vector (15 downto 0);\r
        CTRL_OP                                 : in    std_logic_vector (15 downto 0);\r
@@ -248,23 +248,23 @@ begin
 THE_RESET_STATEMACHINE: trb_net16_lsm_sfp_gbe\r
 port map(\r
        SYSCLK                  => refclkcore,\r
-       RESET                           => '0', -- really?\r
-       CLEAR                           => RESET, -- from 100MHz PLL, includes async part\r
+       RESET                   => '0', -- really?\r
+       CLEAR                   => RESET, -- from 100MHz PLL, includes async part\r
        -- status signals\r
-       SFP_MISSING_IN  => SD_PRSNT_N_IN,\r
+       SFP_MISSING_IN          => SD_PRSNT_N_IN,\r
        SFP_LOS_IN              => SD_LOS_IN,\r
        SD_LINK_OK_IN           => '1', -- not used\r
-       SD_LOS_IN                       => '0', -- not used\r
-       SD_TXCLK_BAD_IN => sd_link_error(2), -- plol\r
-       SD_RXCLK_BAD_IN => sd_link_error(1), -- rlol\r
+       SD_LOS_IN               => '0', -- not used\r
+       SD_TXCLK_BAD_IN         => sd_link_error(2), -- plol\r
+       SD_RXCLK_BAD_IN         => sd_link_error(1), -- rlol\r
        -- control signals\r
-       FULL_RESET_OUT  => quad_rst,\r
-       LANE_RESET_OUT  => lane_rst,\r
-       USER_RESET_OUT  => user_rst,\r
+       FULL_RESET_OUT          => quad_rst,\r
+       LANE_RESET_OUT          => lane_rst,\r
+       USER_RESET_OUT          => user_rst,\r
        -- debug signals\r
-       TIMING_CTR_OUT  => open,\r
+       TIMING_CTR_OUT          => open,\r
        BSM_OUT                 => reset_bsm,\r
-       DEBUG_OUT                       => reset_debug\r
+       DEBUG_OUT               => reset_debug\r
 );\r
 \r
 -- gk 28.04.10\r
index 72c68859947156e2e5ce0dbcc5c5022a3960e242..b329b0d814070f3c5ee6ed42912394be11d65954 100644 (file)
@@ -125,6 +125,7 @@ port(
        FT_TX_RD_EN_IN          : in    std_logic;
        FT_START_OF_PACKET_OUT  : out   std_logic;
        FT_TX_DONE_IN           : in    std_logic;
+       FT_TX_DISCFRM_IN        : in    std_logic;
        -- debug ports
        BSM_CONSTR_OUT          : out   std_logic_vector(7 downto 0);
        BSM_TRANS_OUT           : out   std_logic_vector(3 downto 0);
@@ -153,6 +154,7 @@ port (
        TX_FIFOEOF_OUT          : out   std_logic;
        TX_FIFOEMPTY_OUT        : out   std_logic;
        TX_DONE_IN                      : in    std_logic;
+       TX_DISCFRM_IN           : in    std_logic;
        -- Debug
        BSM_INIT_OUT            : out   std_logic_vector(3 downto 0);
        BSM_MAC_OUT                     : out   std_logic_vector(3 downto 0);
@@ -246,6 +248,7 @@ port(
        MONITOR_LR_IN             : in std_logic_vector(31 downto 0);
        MONITOR_HDR_IN            : in std_logic_vector(31 downto 0);
        MONITOR_FIFOS_IN          : in std_logic_vector(31 downto 0);
+       MONITOR_DISCFRM_IN        : in std_logic_vector(31 downto 0);
        -- gk 01.06.10
        DBG_IPU2GBE1_IN          : in std_logic_vector(31 downto 0);
        DBG_IPU2GBE2_IN          : in std_logic_vector(31 downto 0);