]> jspc29.x-matter.uni-frankfurt.de Git - cri.git/commitdiff
hub_test: Set RXLPMEN to 1
authorThomas Gessler <Thomas.Gessler@exp2.physik.uni-giessen.de>
Fri, 18 Sep 2020 15:51:12 +0000 (17:51 +0200)
committerThomas Gessler <Thomas.Gessler@exp2.physik.uni-giessen.de>
Fri, 18 Sep 2020 15:51:12 +0000 (17:51 +0200)
This switches the RX equalizer from DFE to LPM mode, which seems to
improve link stability when the equalizer is initialized on non-random
8b10b characters like idle words (see UG576, "Choosing Between LPM and
DFE Modes").

hub_test/ip/in_system_ibert_0/in_system_ibert_0.xci
hub_test/ip/in_system_ibert_0/in_system_ibert_0.xml
hub_test/src/hub_test.vhd

index 9e48b6e1186e072de839830718f64fadbb83ec79..48054fc8a4b638e178efcd3eb7e958ab5a22b3fa 100644 (file)
@@ -26,7 +26,7 @@
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_ENABLEMENT.C_TXDIFFCTRL_WIDTH">true</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_COMPONENT_NAME">in_system_ibert_0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DRPADDR_WIDTH">9</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS">0</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_GT_COORDINATE_0">&quot;0000000000001000&quot;</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_GT_COORDINATE_1">&quot;0000000000001001&quot;</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_GT_COORDINATE_10">0000000000000000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_MDM">0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_XDEVICEFAMILY">kintexu</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_COMPONENT_NAME">in_system_ibert_0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_ENABLE_INPUT_PORTS">false</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_ENABLE_INPUT_PORTS">true</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_GTS_USED"> X0Y9 X0Y8</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_GT_TYPE">GTH</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.C_NUM_GT">1</spirit:configurableElementValue>
index 5845cd87329e462f9d6e3fdd43239e5ea07f972f..978ebeea36fa8f856078b0c43badce12581aa81d 100644 (file)
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.rxrate_i" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS&apos;)) = 1">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.rxrate_i" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS&apos;)) = 1">true</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.txdiffctrl_i" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS&apos;)) = 1">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.txdiffctrl_i" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS&apos;)) = 1">true</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.txprecursor_i" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS&apos;)) = 1">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.txprecursor_i" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS&apos;)) = 1">true</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.txpostcursor_i" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS&apos;)) = 1">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.txpostcursor_i" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS&apos;)) = 1">true</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.rxlpmen_i" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS&apos;)) = 1">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.rxlpmen_i" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS&apos;)) = 1">true</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
         <spirit:vendorExtensions>
           <xilinx:portInfo>
             <xilinx:enablement>
-              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.drpclk_i" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS&apos;)) = 1">false</xilinx:isEnabled>
+              <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.drpclk_i" xilinx:dependency="spirit:decode(id(&apos;MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS&apos;)) = 1">true</xilinx:isEnabled>
             </xilinx:enablement>
           </xilinx:portInfo>
         </spirit:vendorExtensions>
       <spirit:modelParameter spirit:dataType="string">
         <spirit:name>C_ENABLE_INPUT_PORTS</spirit:name>
         <spirit:displayName>C Enable Input Ports</spirit:displayName>
-        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS">0</spirit:value>
+        <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_ENABLE_INPUT_PORTS">1</spirit:value>
       </spirit:modelParameter>
       <spirit:modelParameter>
         <spirit:name>C_USE_MDM</spirit:name>
     <spirit:parameter>
       <spirit:name>C_ENABLE_INPUT_PORTS</spirit:name>
       <spirit:displayName>C Enable Input Ports</spirit:displayName>
-      <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.C_ENABLE_INPUT_PORTS" spirit:order="12200">false</spirit:value>
+      <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.C_ENABLE_INPUT_PORTS" spirit:order="12200">true</spirit:value>
     </spirit:parameter>
     <spirit:parameter>
       <spirit:name>C_USE_MDM</spirit:name>
index 31e1f7637aac4a80c8ae5df174552eca1d332c36..35924979e741856cb5cf65754940b94256ab7ceb 100644 (file)
@@ -96,6 +96,12 @@ architecture behavioral of hub_test is
             txprecursor_o  : out std_logic_vector(9 downto 0);
             txpostcursor_o : out std_logic_vector(9 downto 0);
             rxlpmen_o      : out std_logic_vector(1 downto 0);
+            rxrate_i       : in  std_logic_vector(5 downto 0);
+            txdiffctrl_i   : in  std_logic_vector(7 downto 0);
+            txprecursor_i  : in  std_logic_vector(9 downto 0);
+            txpostcursor_i : in  std_logic_vector(9 downto 0);
+            rxlpmen_i      : in  std_logic_vector(1 downto 0);
+            drpclk_i       : in  std_logic_vector(1 downto 0);
             rxoutclk_i     : in  std_logic_vector(1 downto 0);
             clk            : in  std_logic
         );
@@ -445,6 +451,13 @@ begin
         txprecursor_o  => txprecursor(9 downto 0),
         txpostcursor_o => txpostcursor(9 downto 0),
         rxlpmen_o      => rxlpmen(1 downto 0),
+        rxrate_i       => b"000_000",
+        txdiffctrl_i   => b"1100_1100",
+        txprecursor_i  => b"00000_00000",
+        txpostcursor_i => b"00000_00000",
+        rxlpmen_i      => b"1_1",
+        drpclk_i(0)    => baseclk_100,
+        drpclk_i(1)    => baseclk_100,
         rxoutclk_i(0)  => sysclk_100,
         rxoutclk_i(1)  => sysclk_100,
         clk            => baseclk_100