generic (
IS_SYNC_SLAVE : integer := c_NO;
LINE_RATE_KBPS : integer := 2000000;
- REFCLK_FREQ_HZ : integer := 100000000
+ REFCLK_FREQ_HZ : integer := 100000000;
+ SOFT_RESET_TX : integer range 0 to 1 := 1
);
port (
SYSCLK : in std_logic;
CLK_100 : in std_logic;
+ RESET_ALL : in std_logic := '0';
GTREFCLK : in std_logic;
GTREFCLK_BUFG : in std_logic;
RXOUTCLK : out std_logic;
TXUSRCLK_ACTIVE : in std_logic;
RXPMARESETDONE : out std_logic;
TXPMARESETDONE : out std_logic;
+ RXRESETDONE : out std_logic;
+ TXRESETDONE : out std_logic;
RESET : in std_logic;
CLEAR : in std_logic;
RXRATE : in std_logic_vector(2 downto 0) := b"000";
TXDIFFCTRL : in std_logic_vector(3 downto 0) := b"1100";
TXPOSTCURSOR : in std_logic_vector(4 downto 0) := b"00000";
- TXPRECURSOR : in std_logic_vector(4 downto 0) := b"00000"
+ TXPRECURSOR : in std_logic_vector(4 downto 0) := b"00000";
+
+ TXPIPPMEN : in std_logic := '0';
+ TXPIPPMOVRDEN : in std_logic := '0';
+ TXPIPPMPD : in std_logic := '0';
+ TXPIPPMSEL : in std_logic := '0';
+ TXPIPPMSTEPSIZE : in std_logic_vector(4 downto 0) := "00000";
+
+ TXBUFSTATUS : out std_logic_vector(1 downto 0)
);
end entity;
signal rxnotintable : std_logic;
signal rxpmareset : std_logic;
- signal reset_all : std_logic;
+ signal reset_all_i : std_logic;
+
+ signal quad_rst : std_logic;
signal rx_cdr_lol : std_logic;
signal tx_lol : std_logic;
- signal rxresetdone : std_logic;
+ signal rxresetdone_i : std_logic;
signal txpmaresetdone_i : std_logic;
signal rx_data_valid_count : unsigned(7 downto 0) := (others => '0');
SD_TXDIS_OUT <= '0';
+ reset_all_i <= quad_rst or RESET_ALL when SOFT_RESET_TX = 1 else RESET_ALL;
+
THE_SERDES : entity work.gth_xcku_top
generic map (
LINE_RATE_KBPS => LINE_RATE_KBPS,
REFCLK_FREQ_HZ => REFCLK_FREQ_HZ
)
port map (
- CLK_100 => CLK_100,
- GTREFCLK => GTREFCLK,
- RXOUTCLK => RXOUTCLK,
- TXOUTCLK => TXOUTCLK,
- RXUSRCLK => RXUSRCLK,
- RXUSRCLK_DOUBLE => RXUSRCLK_DOUBLE,
- TXUSRCLK => TXUSRCLK,
- TXUSRCLK_DOUBLE => TXUSRCLK_DOUBLE,
- RXUSRCLK_ACTIVE => RXUSRCLK_ACTIVE,
- TXUSRCLK_ACTIVE => TXUSRCLK_ACTIVE,
- RESET_ALL => reset_all,
- RXPMARESET => rxpmareset,
- RXPCSRESET => '0',
- TXPMARESET => '0',
- TXPCSRESET => '0',
- INIT_DONE => open,
- RXRESETDONE => rxresetdone,
- TXRESETDONE => open,
- RXPMARESETDONE => RXPMARESETDONE,
- TXPMARESETDONE => txpmaresetdone_i,
- RXBYTEISALIGNED => open,
- RXN => RXN,
- RXP => RXP,
- TXN => TXN,
- TXP => TXP,
- TXDATA => txdata,
- TXCHARISK => txcharisk,
- TXCHARDISPMODE => txchardispmode,
- TXCHARDISPVAL => '0',
- RXDATA => rxdata,
- RXCHARISK => rxcharisk,
- RXCHARISCOMMA => open,
- RXNOTINTABLE => rxnotintable,
- RXDISPERR => open,
- DRPADDR => DRPADDR,
- DRPCLK => DRPCLK,
- DRPDI => DRPDI,
- DRPEN => DRPEN,
- DRPWE => DRPWE,
- DRPDO => DRPDO,
- DRPRDY => DRPRDY,
- EYESCANRESET => EYESCANRESET,
- RXLPMEN => RXLPMEN,
- RXRATE => RXRATE,
- TXDIFFCTRL => TXDIFFCTRL,
- TXPOSTCURSOR => TXPOSTCURSOR,
- TXPRECURSOR => TXPRECURSOR
+ CLK_100 => CLK_100,
+ GTREFCLK => GTREFCLK,
+ RXOUTCLK => RXOUTCLK,
+ TXOUTCLK => TXOUTCLK,
+ RXUSRCLK => RXUSRCLK,
+ RXUSRCLK_DOUBLE => RXUSRCLK_DOUBLE,
+ TXUSRCLK => TXUSRCLK,
+ TXUSRCLK_DOUBLE => TXUSRCLK_DOUBLE,
+ RXUSRCLK_ACTIVE => RXUSRCLK_ACTIVE,
+ TXUSRCLK_ACTIVE => TXUSRCLK_ACTIVE,
+ RESET_ALL => reset_all_i,
+ RXPMARESET => rxpmareset,
+ RXPCSRESET => '0',
+ TXPMARESET => '0',
+ TXPCSRESET => '0',
+ INIT_DONE => open,
+ RXRESETDONE => rxresetdone_i,
+ TXRESETDONE => TXRESETDONE,
+ RXPMARESETDONE => RXPMARESETDONE,
+ TXPMARESETDONE => txpmaresetdone_i,
+ RXBYTEISALIGNED => open,
+ RXN => RXN,
+ RXP => RXP,
+ TXN => TXN,
+ TXP => TXP,
+ TXDATA => txdata,
+ TXCHARISK => txcharisk,
+ TXCHARDISPMODE => txchardispmode,
+ TXCHARDISPVAL => '0',
+ RXDATA => rxdata,
+ RXCHARISK => rxcharisk,
+ RXCHARISCOMMA => open,
+ RXNOTINTABLE => rxnotintable,
+ RXDISPERR => open,
+ DRPADDR => DRPADDR,
+ DRPCLK => DRPCLK,
+ DRPDI => DRPDI,
+ DRPEN => DRPEN,
+ DRPWE => DRPWE,
+ DRPDO => DRPDO,
+ DRPRDY => DRPRDY,
+ EYESCANRESET => EYESCANRESET,
+ RXLPMEN => RXLPMEN,
+ RXRATE => RXRATE,
+ TXDIFFCTRL => TXDIFFCTRL,
+ TXPOSTCURSOR => TXPOSTCURSOR,
+ TXPRECURSOR => TXPRECURSOR,
+ TXPIPPMEN => TXPIPPMEN,
+ TXPIPPMOVRDEN => TXPIPPMOVRDEN,
+ TXPIPPMPD => TXPIPPMPD,
+ TXPIPPMSEL => TXPIPPMSEL,
+ TXPIPPMSTEPSIZE => TXPIPPMSTEPSIZE,
+ TXBUFSTATUS => TXBUFSTATUS
);
+ RXRESETDONE <= rxresetdone_i;
tx_lol <= not txpmaresetdone_i;
process (RXUSRCLK_DOUBLE) is
begin
if rising_edge(RXUSRCLK_DOUBLE) then
- if rxresetdone = '0' then
+ if rxresetdone_i = '0' then
rx_cdr_lol <= '1';
else
if rxnotintable = '1' then
WA_POSITION => (others => '0'),
RX_SERDES_RST => rxpmareset,
RX_PCS_RST => open,
- QUAD_RST => reset_all,
+ QUAD_RST => quad_rst,
TX_PCS_RST => open,
MEDIA_MED2INT => MEDIA_MED2INT,
MEDIA_INT2MED => MEDIA_INT2MED,
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">gth_xcku_2gbps0_100mhz</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_LOC_XDC">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_COMMON_USRCLK">0</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_OPTIONAL_PORTS">rxcdrreset_in rxpcsreset_in rxpmareset_in txpcsreset_in txpmareset_in rxresetdone_out txresetdone_out</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_OPTIONAL_PORTS">rxcdrreset_in rxpcsreset_in rxpmareset_in txpcsreset_in txpippmen_in txpippmovrden_in txpippmpd_in txpippmsel_in txpippmstepsize_in txpmareset_in rxresetdone_out txbufstatus_out txresetdone_out</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FREERUN_FREQUENCY">100</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.GT_DIRECTION">BOTH</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.GT_REV">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_UBMDMTDO_OUT">-1</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_UBRSVDOUT_OUT">-1</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_UBTXUART_OUT">-1</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED">18</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED">21</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_USAGE_UPDATED">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PRESET">None</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_RX_COMMA_PRESET_UPDATE">8</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.tx8b10bbypass_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.tx8b10ben_in">true</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txbufdiffctrl_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txbufstatus_out">false</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txbufstatus_out">true</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txcomfinish_out">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txcominit_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txcomsas_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txphinit_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txphinitdone_out">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txphovrden_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmen_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmovrden_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmpd_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmsel_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmstepsize_in">false</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmen_in">true</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmovrden_in">true</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmpd_in">true</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmsel_in">true</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmstepsize_in">true</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpisopd_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpllclksel_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpmareset_in">true</spirit:configurableElementValue>
<spirit:parameters>
<spirit:parameter>
<spirit:name>outputProductCRC</spirit:name>
- <spirit:value>9:5d220aeb</spirit:value>
+ <spirit:value>9:1dd46ae3</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:view>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmen_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmen_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmovrden_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmovrden_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmpd_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmpd_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmsel_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmsel_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmstepsize_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmstepsize_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txbufstatus_out">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txbufstatus_out">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:name>ENABLE_OPTIONAL_PORTS</spirit:name>
<spirit:displayName>Enable optional ports</spirit:displayName>
<spirit:description>Indicate whether a port should be included</spirit:description>
- <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_OPTIONAL_PORTS" spirit:order="150">rxcdrreset_in rxpcsreset_in rxpmareset_in txpcsreset_in txpmareset_in rxresetdone_out txresetdone_out</spirit:value>
+ <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_OPTIONAL_PORTS" spirit:order="150">rxcdrreset_in rxpcsreset_in rxpmareset_in txpcsreset_in txpippmen_in txpippmovrden_in txpippmpd_in txpippmsel_in txpippmstepsize_in txpmareset_in rxresetdone_out txbufstatus_out txresetdone_out</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>RX_REFCLK_SOURCE</spirit:name>
</spirit:parameter>
<spirit:parameter>
<spirit:name>INTERNAL_PORT_ENABLEMENT_UPDATED</spirit:name>
- <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED" spirit:order="165">18</spirit:value>
+ <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED" spirit:order="165">21</spirit:value>
<spirit:vendorExtensions>
<xilinx:parameterInfo>
<xilinx:enablement>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">gth_xcku_2gbps0_200mhz</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_LOC_XDC">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_COMMON_USRCLK">0</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_OPTIONAL_PORTS">rxcdrreset_in rxpcsreset_in rxpmareset_in txpcsreset_in txpmareset_in rxresetdone_out txresetdone_out</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_OPTIONAL_PORTS">rxcdrreset_in rxpcsreset_in rxpmareset_in txpcsreset_in txpippmen_in txpippmovrden_in txpippmpd_in txpippmsel_in txpippmstepsize_in txpmareset_in rxresetdone_out txbufstatus_out txresetdone_out</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FREERUN_FREQUENCY">100</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.GT_DIRECTION">BOTH</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.GT_REV">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_UBMDMTDO_OUT">-1</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_UBRSVDOUT_OUT">-1</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_UBTXUART_OUT">-1</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED">20</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED">23</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_USAGE_UPDATED">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PRESET">None</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_RX_COMMA_PRESET_UPDATE">8</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.tx8b10bbypass_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.tx8b10ben_in">true</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txbufdiffctrl_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txbufstatus_out">false</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txbufstatus_out">true</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txcomfinish_out">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txcominit_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txcomsas_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txphinit_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txphinitdone_out">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txphovrden_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmen_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmovrden_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmpd_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmsel_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmstepsize_in">false</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmen_in">true</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmovrden_in">true</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmpd_in">true</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmsel_in">true</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmstepsize_in">true</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpisopd_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpllclksel_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpmareset_in">true</spirit:configurableElementValue>
<spirit:parameters>
<spirit:parameter>
<spirit:name>outputProductCRC</spirit:name>
- <spirit:value>9:b87ae0cb</spirit:value>
+ <spirit:value>9:510310c5</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:view>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmen_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmen_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmovrden_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmovrden_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmpd_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmpd_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmsel_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmsel_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmstepsize_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmstepsize_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txbufstatus_out">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txbufstatus_out">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:name>ENABLE_OPTIONAL_PORTS</spirit:name>
<spirit:displayName>Enable optional ports</spirit:displayName>
<spirit:description>Indicate whether a port should be included</spirit:description>
- <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_OPTIONAL_PORTS" spirit:order="150">rxcdrreset_in rxpcsreset_in rxpmareset_in txpcsreset_in txpmareset_in rxresetdone_out txresetdone_out</spirit:value>
+ <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_OPTIONAL_PORTS" spirit:order="150">rxcdrreset_in rxpcsreset_in rxpmareset_in txpcsreset_in txpippmen_in txpippmovrden_in txpippmpd_in txpippmsel_in txpippmstepsize_in txpmareset_in rxresetdone_out txbufstatus_out txresetdone_out</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>RX_REFCLK_SOURCE</spirit:name>
</spirit:parameter>
<spirit:parameter>
<spirit:name>INTERNAL_PORT_ENABLEMENT_UPDATED</spirit:name>
- <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED" spirit:order="165">20</spirit:value>
+ <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED" spirit:order="165">23</spirit:value>
<spirit:vendorExtensions>
<xilinx:parameterInfo>
<xilinx:enablement>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">gth_xcku_2gbps4_120mhz</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DISABLE_LOC_XDC">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_COMMON_USRCLK">0</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_OPTIONAL_PORTS">rxcdrreset_in rxpcsreset_in rxpmareset_in txpcsreset_in txpmareset_in rxresetdone_out txresetdone_out</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_OPTIONAL_PORTS">rxcdrreset_in rxpcsreset_in rxpmareset_in txpcsreset_in txpippmen_in txpippmovrden_in txpippmpd_in txpippmsel_in txpippmstepsize_in txpmareset_in rxresetdone_out txbufstatus_out txresetdone_out</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FREERUN_FREQUENCY">100</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.GT_DIRECTION">BOTH</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.GT_REV">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_UBMDMTDO_OUT">-1</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_UBRSVDOUT_OUT">-1</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLED_UBTXUART_OUT">-1</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED">24</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED">27</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PORT_USAGE_UPDATED">0</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_PRESET">None</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERNAL_RX_COMMA_PRESET_UPDATE">9</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.tx8b10bbypass_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.tx8b10ben_in">true</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txbufdiffctrl_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txbufstatus_out">false</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txbufstatus_out">true</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txcomfinish_out">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txcominit_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txcomsas_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txphinit_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txphinitdone_out">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txphovrden_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmen_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmovrden_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmpd_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmsel_in">false</spirit:configurableElementValue>
- <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmstepsize_in">false</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmen_in">true</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmovrden_in">true</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmpd_in">true</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmsel_in">true</spirit:configurableElementValue>
+ <spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpippmstepsize_in">true</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpisopd_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpllclksel_in">false</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="PORT_ENABLEMENT.txpmareset_in">true</spirit:configurableElementValue>
<spirit:parameters>
<spirit:parameter>
<spirit:name>outputProductCRC</spirit:name>
- <spirit:value>9:47853102</spirit:value>
+ <spirit:value>9:7418d113</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:view>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmen_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmen_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmovrden_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmovrden_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmpd_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmpd_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmsel_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmsel_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmstepsize_in">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txpippmstepsize_in">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:vendorExtensions>
<xilinx:portInfo>
<xilinx:enablement>
- <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txbufstatus_out">false</xilinx:isEnabled>
+ <xilinx:isEnabled xilinx:resolve="generated" xilinx:id="PORT_ENABLEMENT.txbufstatus_out">true</xilinx:isEnabled>
</xilinx:enablement>
</xilinx:portInfo>
</spirit:vendorExtensions>
<spirit:name>ENABLE_OPTIONAL_PORTS</spirit:name>
<spirit:displayName>Enable optional ports</spirit:displayName>
<spirit:description>Indicate whether a port should be included</spirit:description>
- <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_OPTIONAL_PORTS" spirit:order="150">rxcdrreset_in rxpcsreset_in rxpmareset_in txpcsreset_in txpmareset_in rxresetdone_out txresetdone_out</spirit:value>
+ <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_OPTIONAL_PORTS" spirit:order="150">rxcdrreset_in rxpcsreset_in rxpmareset_in txpcsreset_in txpippmen_in txpippmovrden_in txpippmpd_in txpippmsel_in txpippmstepsize_in txpmareset_in rxresetdone_out txbufstatus_out txresetdone_out</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>RX_REFCLK_SOURCE</spirit:name>
</spirit:parameter>
<spirit:parameter>
<spirit:name>INTERNAL_PORT_ENABLEMENT_UPDATED</spirit:name>
- <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED" spirit:order="165">24</spirit:value>
+ <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="PARAM_VALUE.INTERNAL_PORT_ENABLEMENT_UPDATED" spirit:order="165">27</spirit:value>
<spirit:vendorExtensions>
<xilinx:parameterInfo>
<xilinx:enablement>
RXRATE : in std_logic_vector(2 downto 0);
TXDIFFCTRL : in std_logic_vector(3 downto 0);
TXPOSTCURSOR : in std_logic_vector(4 downto 0);
- TXPRECURSOR : in std_logic_vector(4 downto 0)
+ TXPRECURSOR : in std_logic_vector(4 downto 0);
+
+ TXPIPPMEN : in std_logic := '0';
+ TXPIPPMOVRDEN : in std_logic := '0';
+ TXPIPPMPD : in std_logic := '0';
+ TXPIPPMSEL : in std_logic := '0';
+ TXPIPPMSTEPSIZE : in std_logic_vector(4 downto 0) := "00000";
+
+ TXBUFSTATUS : out std_logic_vector(1 downto 0)
);
end entity gth_xcku_top;
txctrl2_in : in std_logic_vector(7 downto 0);
txdiffctrl_in : in std_logic_vector(3 downto 0);
txpcsreset_in : in std_logic_vector(0 downto 0);
+ txpippmen_in : in std_logic_vector(0 downto 0);
+ txpippmovrden_in : in std_logic_vector(0 downto 0);
+ txpippmpd_in : in std_logic_vector(0 downto 0);
+ txpippmsel_in : in std_logic_vector(0 downto 0);
+ txpippmstepsize_in : in std_logic_vector(4 downto 0);
txpmareset_in : in std_logic_vector(0 downto 0);
txpostcursor_in : in std_logic_vector(4 downto 0);
txprecursor_in : in std_logic_vector(4 downto 0);
rxoutclk_out : out std_logic_vector(0 downto 0);
rxpmaresetdone_out : out std_logic_vector(0 downto 0);
rxresetdone_out : out std_logic_vector(0 downto 0);
+ txbufstatus_out : out std_logic_vector(1 downto 0);
txoutclk_out : out std_logic_vector(0 downto 0);
txpmaresetdone_out : out std_logic_vector(0 downto 0);
txresetdone_out : out std_logic_vector(0 downto 0)
txctrl2_in : in std_logic_vector(7 downto 0);
txdiffctrl_in : in std_logic_vector(3 downto 0);
txpcsreset_in : in std_logic_vector(0 downto 0);
+ txpippmen_in : in std_logic_vector(0 downto 0);
+ txpippmovrden_in : in std_logic_vector(0 downto 0);
+ txpippmpd_in : in std_logic_vector(0 downto 0);
+ txpippmsel_in : in std_logic_vector(0 downto 0);
+ txpippmstepsize_in : in std_logic_vector(4 downto 0);
txpmareset_in : in std_logic_vector(0 downto 0);
txpostcursor_in : in std_logic_vector(4 downto 0);
txprecursor_in : in std_logic_vector(4 downto 0);
rxoutclk_out : out std_logic_vector(0 downto 0);
rxpmaresetdone_out : out std_logic_vector(0 downto 0);
rxresetdone_out : out std_logic_vector(0 downto 0);
+ txbufstatus_out : out std_logic_vector(1 downto 0);
txoutclk_out : out std_logic_vector(0 downto 0);
txpmaresetdone_out : out std_logic_vector(0 downto 0);
txresetdone_out : out std_logic_vector(0 downto 0)
txctrl2_in : in std_logic_vector(7 downto 0);
txdiffctrl_in : in std_logic_vector(3 downto 0);
txpcsreset_in : in std_logic_vector(0 downto 0);
+ txpippmen_in : in std_logic_vector(0 downto 0);
+ txpippmovrden_in : in std_logic_vector(0 downto 0);
+ txpippmpd_in : in std_logic_vector(0 downto 0);
+ txpippmsel_in : in std_logic_vector(0 downto 0);
+ txpippmstepsize_in : in std_logic_vector(4 downto 0);
txpmareset_in : in std_logic_vector(0 downto 0);
txpostcursor_in : in std_logic_vector(4 downto 0);
txprecursor_in : in std_logic_vector(4 downto 0);
rxoutclk_out : out std_logic_vector(0 downto 0);
rxpmaresetdone_out : out std_logic_vector(0 downto 0);
rxresetdone_out : out std_logic_vector(0 downto 0);
+ txbufstatus_out : out std_logic_vector(1 downto 0);
txoutclk_out : out std_logic_vector(0 downto 0);
txpmaresetdone_out : out std_logic_vector(0 downto 0);
txresetdone_out : out std_logic_vector(0 downto 0)
txctrl2_in => txctrl2,
txdiffctrl_in => TXDIFFCTRL,
txpcsreset_in(0) => TXPCSRESET,
+ txpippmen_in(0) => TXPIPPMEN,
+ txpippmovrden_in(0) => TXPIPPMOVRDEN,
+ txpippmpd_in(0) => TXPIPPMPD,
+ txpippmsel_in(0) => TXPIPPMSEL,
+ txpippmstepsize_in => TXPIPPMSTEPSIZE,
txpmareset_in(0) => TXPMARESET,
txpostcursor_in => TXPOSTCURSOR,
txprecursor_in => TXPRECURSOR,
rxoutclk_out(0) => RXOUTCLK,
rxpmaresetdone_out(0) => RXPMARESETDONE,
rxresetdone_out(0) => RXRESETDONE,
+ txbufstatus_out => TXBUFSTATUS,
txoutclk_out(0) => TXOUTCLK,
txpmaresetdone_out(0) => TXPMARESETDONE,
txresetdone_out(0) => TXRESETDONE
txctrl2_in => txctrl2,
txdiffctrl_in => TXDIFFCTRL,
txpcsreset_in(0) => TXPCSRESET,
+ txpippmen_in(0) => TXPIPPMEN,
+ txpippmovrden_in(0) => TXPIPPMOVRDEN,
+ txpippmpd_in(0) => TXPIPPMPD,
+ txpippmsel_in(0) => TXPIPPMSEL,
+ txpippmstepsize_in => TXPIPPMSTEPSIZE,
txpmareset_in(0) => TXPMARESET,
txpostcursor_in => TXPOSTCURSOR,
txprecursor_in => TXPRECURSOR,
rxoutclk_out(0) => RXOUTCLK,
rxpmaresetdone_out(0) => RXPMARESETDONE,
rxresetdone_out(0) => RXRESETDONE,
+ txbufstatus_out => TXBUFSTATUS,
txoutclk_out(0) => TXOUTCLK,
txpmaresetdone_out(0) => TXPMARESETDONE,
txresetdone_out(0) => TXRESETDONE
txctrl2_in => txctrl2,
txdiffctrl_in => TXDIFFCTRL,
txpcsreset_in(0) => TXPCSRESET,
+ txpippmen_in(0) => TXPIPPMEN,
+ txpippmovrden_in(0) => TXPIPPMOVRDEN,
+ txpippmpd_in(0) => TXPIPPMPD,
+ txpippmsel_in(0) => TXPIPPMSEL,
+ txpippmstepsize_in => TXPIPPMSTEPSIZE,
txpmareset_in(0) => TXPMARESET,
txpostcursor_in => TXPOSTCURSOR,
txprecursor_in => TXPRECURSOR,
rxoutclk_out(0) => RXOUTCLK,
rxpmaresetdone_out(0) => RXPMARESETDONE,
rxresetdone_out(0) => RXRESETDONE,
+ txbufstatus_out => TXBUFSTATUS,
txoutclk_out(0) => TXOUTCLK,
txpmaresetdone_out(0) => TXPMARESETDONE,
txresetdone_out(0) => TXRESETDONE