ソースを参照

Добавлены rxFifoWordCnt и txFifoWordCnt

Anatoliy Chigirinskiy 2 年 前
コミット
b9dfc5a035

ファイルの差分が大きいため隠しています
+ 103 - 50
constrs_1/new/S5443_3.xdc


+ 55 - 53
sources_1/ip/ClkDiv/ClkDiv.xci

@@ -138,26 +138,26 @@
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKIN2_JITTER_PS">100.0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT0_1">0000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT0_2">0000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT0_ACTUAL_FREQ">99.93750</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT0_ACTUAL_FREQ">12.00126</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_1">0000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_2">0000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_ACTUAL_FREQ">79.95000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_ACTUAL_FREQ">79.60833</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_DRIVES">BUFG</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_DUTY_CYCLE">50.0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_OUT_FREQ">99.93750</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_OUT_FREQ">12.00126</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_OUT_FREQ">12</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_1">0000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_2">0000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_ACTUAL_FREQ">70.54412</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_ACTUAL_FREQ">70.24265</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_DRIVES">BUFG</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_DUTY_CYCLE">50.0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_OUT_FREQ">79.95000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_OUT_FREQ">79.60833</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_OUT_FREQ">80.000</spirit:configurableElementValue>
@@ -166,11 +166,11 @@
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_USED">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_1">0000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_2">0000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_ACTUAL_FREQ">59.96250</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_ACTUAL_FREQ">59.70625</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_DRIVES">BUFG</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_DUTY_CYCLE">50.0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_OUT_FREQ">70.54412</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_OUT_FREQ">70.24265</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_OUT_FREQ">70.000</spirit:configurableElementValue>
@@ -179,11 +179,11 @@
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_USED">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_1">0000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_2">0000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_ACTUAL_FREQ">49.96875</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_ACTUAL_FREQ">49.75521</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_DRIVES">BUFG</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_DUTY_CYCLE">50.0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_OUT_FREQ">59.96250</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_OUT_FREQ">59.70625</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_OUT_FREQ">60.000</spirit:configurableElementValue>
@@ -192,11 +192,11 @@
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_USED">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_1">0000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_2">0000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_ACTUAL_FREQ">39.97500</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_ACTUAL_FREQ">39.80417</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_DRIVES">BUFG</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_DUTY_CYCLE">50.0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_OUT_FREQ">49.96875</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_OUT_FREQ">49.75521</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_OUT_FREQ">50.000</spirit:configurableElementValue>
@@ -205,11 +205,11 @@
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_USED">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_1">0000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_2">0000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_ACTUAL_FREQ">26.65000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_ACTUAL_FREQ">29.85312</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_DRIVES">BUFG</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_DUTY_CYCLE">50.0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_OUT_FREQ">39.97500</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_OUT_FREQ">39.80417</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_OUT_FREQ">40.000</spirit:configurableElementValue>
@@ -219,10 +219,10 @@
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_DRIVES">BUFG</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_DUTY_CYCLE">50.0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_OUT_FREQ">26.65000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_OUT_FREQ">29.85312</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_OUT_FREQ">26.666</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_OUT_FREQ">30</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_USED">1</spirit:configurableElementValue>
@@ -243,12 +243,12 @@
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_PORT">din</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVCLK">0000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE1_AUTO">1</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE2_AUTO">1.25</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE3_AUTO">1.4285714285714286</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE4_AUTO">1.6666666666666667</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE5_AUTO">2.0</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE6_AUTO">2.5</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE7_AUTO">3.7500937523438087</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE2_AUTO">0.15</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE3_AUTO">0.17142857142857143</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE4_AUTO">0.2</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE5_AUTO">0.24</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE6_AUTO">0.3</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIVIDE7_AUTO">0.4</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DOUT_PORT">dout</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DRDY_PORT">drdy</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DWE_PORT">dwe</spirit:configurableElementValue>
@@ -286,12 +286,12 @@
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCMBUFGCEDIV6">false</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCMBUFGCEDIV7">false</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_MULT_F">9.750</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_MULT_F">29.125</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_USE_FINE_PS">FALSE</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKIN1_PERIOD">8.130</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKIN2_PERIOD">10.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_DIVIDE_F">12.000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_DIVIDE_F">99.500</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_USE_FINE_PS">FALSE</spirit:configurableElementValue>
@@ -316,13 +316,13 @@
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_USE_FINE_PS">FALSE</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_DIVIDE">45</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_DIVIDE">40</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_DUTY_CYCLE">0.500</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_USE_FINE_PS">FALSE</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLOCK_HOLD">FALSE</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_COMPENSATION">ZHOLD</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_DIVCLK_DIVIDE">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_DIVCLK_DIVIDE">3</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_NOTES">None</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_REF_JITTER1">0.010</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_REF_JITTER2">0.010</spirit:configurableElementValue>
@@ -332,13 +332,13 @@
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NUM_OUT_CLKS">7</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW0A"> Output     Output      Phase    Duty Cycle   Pk-to-Pk     Phase</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW0B">  Clock     Freq (MHz)  (degrees)    (%)     Jitter (ps)  Error (ps)</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW1">clk_out1__99.93750______0.000______50.0______112.035_____85.478</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW2">clk_out2__79.95000______0.000______50.0______116.822_____85.478</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW3">clk_out3__70.54412______0.000______50.0______119.640_____85.478</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW4">clk_out4__59.96250______0.000______50.0______123.604_____85.478</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW5">clk_out5__49.96875______0.000______50.0______128.250_____85.478</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW6">clk_out6__39.97500______0.000______50.0______134.251_____85.478</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW7">clk_out7__26.65000______0.000______50.0______146.187_____85.478</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW1">clk_out1__12.00126______0.000______50.0______241.413____165.815</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW2">clk_out2__79.60833______0.000______50.0______153.004____165.815</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW3">clk_out3__70.24265______0.000______50.0______156.812____165.815</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW4">clk_out4__59.70625______0.000______50.0______162.012____165.815</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW5">clk_out5__49.75521______0.000______50.0______168.233____165.815</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW6">clk_out6__39.80417______0.000______50.0______176.499____165.815</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW7">clk_out7__29.85312______0.000______50.0______188.450____165.815</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OVERRIDE_MMCM">0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OVERRIDE_PLL">0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_O_MAX">128.000</spirit:configurableElementValue>
@@ -454,65 +454,65 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN2_JITTER_PS">100.0</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN2_UI_JITTER">0.010</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_JITTER">112.035</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_JITTER">241.413</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_PHASE_ERROR">85.478</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_PHASE_ERROR">165.815</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_OUT_FREQ">12</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_USED">true</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_JITTER">116.822</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_JITTER">153.004</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_PHASE_ERROR">85.478</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_PHASE_ERROR">165.815</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_OUT_FREQ">80.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_USED">true</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_JITTER">119.640</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_JITTER">156.812</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_PHASE_ERROR">85.478</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_PHASE_ERROR">165.815</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_OUT_FREQ">70.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_USED">true</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_JITTER">123.604</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_JITTER">162.012</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_PHASE_ERROR">85.478</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_PHASE_ERROR">165.815</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_OUT_FREQ">60.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_USED">true</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_JITTER">128.250</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_JITTER">168.233</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_PHASE_ERROR">85.478</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_PHASE_ERROR">165.815</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_REQUESTED_OUT_FREQ">50.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_USED">true</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_JITTER">134.251</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_JITTER">176.499</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_PHASE_ERROR">85.478</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_PHASE_ERROR">165.815</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_REQUESTED_OUT_FREQ">40.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_USED">true</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_DRIVES">BUFG</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_JITTER">146.187</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_JITTER">188.450</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_MATCHED_ROUTING">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_PHASE_ERROR">85.478</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_PHASE_ERROR">165.815</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_OUT_FREQ">26.666</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_OUT_FREQ">30</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_SEQUENCE_NUMBER">1</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_USED">true</spirit:configurableElementValue>
@@ -565,12 +565,12 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.JITTER_SEL">No_Jitter</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.LOCKED_PORT">locked</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_MULT_F">9.750</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_MULT_F">29.125</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_USE_FINE_PS">false</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKIN1_PERIOD">8.130</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKIN2_PERIOD">10.000</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DIVIDE_F">12.000</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DIVIDE_F">99.500</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_USE_FINE_PS">false</spirit:configurableElementValue>
@@ -595,13 +595,13 @@
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_USE_FINE_PS">false</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_DIVIDE">45</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_DIVIDE">40</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_DUTY_CYCLE">0.500</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_PHASE">0.000</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_USE_FINE_PS">false</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLOCK_HOLD">false</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_COMPENSATION">ZHOLD</spirit:configurableElementValue>
-        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_DIVCLK_DIVIDE">1</spirit:configurableElementValue>
+        <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_DIVCLK_DIVIDE">3</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_NOTES">None</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_REF_JITTER1">0.010</spirit:configurableElementValue>
         <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_REF_JITTER2">0.010</spirit:configurableElementValue>
@@ -737,6 +737,7 @@
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKIN1_JITTER_PS" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT1_JITTER" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT1_PHASE_ERROR" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_OUT_FREQ" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_JITTER" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_PHASE_ERROR" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_OUT_FREQ" xilinx:valueSource="user"/>
@@ -763,6 +764,7 @@
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT7_USED" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_MULT_F" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKIN1_PERIOD" xilinx:valueSource="user"/>
+            <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKIN2_PERIOD" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DIVIDE_F" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT1_DIVIDE" xilinx:valueSource="user"/>
             <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT2_DIVIDE" xilinx:valueSource="user"/>

ファイルの差分が大きいため隠しています
+ 33 - 25
sources_1/ip/DataFifoTx/DataFifoTx.xci


+ 22 - 2
sources_1/new/DataFifo/DataFifoWrapper.v

@@ -14,6 +14,8 @@ module DataFifoWrapper
 	input   SmcAre_i,
 	input	SmcAwe_i,
 	input	[AddrRegWidth-1:0]	SmcAddr_i,
+	input   [7:0] TxFifoWrdCnt_i,
+	input   [7:0] RxFifoWrdCnt_i,
 
 	input	ToFifoVal_i,
 	input	[CmdRegWidth-1:0]	ToFifoData_i,
@@ -23,6 +25,8 @@ module DataFifoWrapper
 	input ToFifoTxReadVal_i,
 
 	output	ToSpiVal_o,
+	output [CmdRegWidth-1:0]	TxFifoCtrlReg_o,
+	output [CmdRegWidth-1:0]	RxFifoCtrlReg_o,
 	output	[CmdRegWidth-1:0]	ToSpiData_o,
 	output  [CmdRegWidth-1:0]   DataFromRxFifo_o
 );
@@ -39,11 +43,20 @@ module DataFifoWrapper
 	wire txFifoRdEn;
 	wire rxFifoWrEn;
 	wire rxFifoRdEn;
+
+	wire [7:0] rxFifoUpDnCnt;
+	wire [7:0] txFifoUpDnCnt;
+	
 //================================================================================
 //	ASSIGNMENTS
 //================================================================================
 	assign	ToSpiVal_o	=	1'b1;
 	assign DataFromRxFifo_o = dataFromRxFifo;
+
+	assign TxFifoCtrlReg_o = {16'h0, txFifoUpDnCnt,5'h0,emptyFlagTx,fullFlagTx, FifoTxRst_i};
+	// assign TxFifoCtrlReg_o = {FifoTxRst_i, fullFlagTx, emptyFlagTx, 5'h0, txFifoUpDnCnt, 16'h0};
+	assign RxFifoCtrlReg_o = {16'h0, rxFifoUpDnCnt,5'h0,emptyFlagRx,fullFlagRx, FifoRxRst_i};
+	// assign RxFifoCtrlReg_o = {FifoRxRst_i, fullFlagRx, emptyFlagRx, 5'h0, rxFifoUpDnCnt, 16'h0};
 //================================================================================
 //	LOCALPARAMS
 //================================================================================
@@ -57,8 +70,12 @@ FifoCtrl FifoCtrl_inst (
 	.ToFifoTxReadVal_i (ToFifoTxReadVal_i),
 	.ToFifoRxWriteVal_i	(ToFifoRxWriteVal_i),
 	.ToFifoRxReadVal_i	(!SmcAre_i),
-	.SmcAddr_i	(SmcAddr_i),
+	.SmcAddr_i			(SmcAddr_i),
+	.TxFifoWrdCnt_i		(TxFifoWrdCnt_i),
+	.RxFifoWrdCnt_i		(RxFifoWrdCnt_i),
 	.FifoTxFull_i		(fullFlagTx),
+	.FifoTxRst_i		(FifoTxRst_i),
+	.FifoRxRst_i		(FifoRxRst_i),
 	.FifoTxEmpty_i		(emptyFlagTx),
 	.FifoRxFull_i		(fullFlagRx),
 	.FifoRxEmpty_i		(emptyFlagRx),
@@ -66,6 +83,8 @@ FifoCtrl FifoCtrl_inst (
 	.FifoTxRdClock_i	(RdClk_i),
 	.FifoRxWrClock_i	(RdClk_i),
 	.FifoRxRdClock_i	(WrClk_i),
+	.RxFifoUpDnCnt_o	(rxFifoUpDnCnt),
+	.TxFifoUpDnCnt_o	(txFifoUpDnCnt),
 	.FifoTxWriteEn_o	(txFifoWrEn),
 	.FifoTxReadEn_o		(txFifoRdEn),
 	.FifoRxWriteEn_o	(rxFifoWrEn),
@@ -87,9 +106,10 @@ DataFifoTx	DataFifoTx
 	.din		(ToFifoData_i), 
 	.wr_en		(txFifoWrEn), 
 	.rd_en		(txFifoRdEn), 
-	.dout		(ToSpiData_o), 
+	.dout		(ToSpiData_o),
 	.full		(fullFlagTx), 
 	.empty		(emptyFlagTx)
+
 );
 
 DataFifoRx	DataFifoRx

+ 130 - 36
sources_1/new/DataFifo/FifoCtrl.v

@@ -1,36 +1,46 @@
 module FifoCtrl #(
-    parameter Fifo0ReadMsbAddr		= 12'h0+12'd30,
-	parameter Fifo1ReadMsbAddr		= 12'h50+12'd30,
-	parameter Fifo2ReadMsbAddr		= 12'hf0+12'd30,
-	parameter Fifo3ReadMsbAddr		= 12'h140+12'd30,
-	parameter Fifo4ReadMsbAddr		= 12'h190+12'd30,
-	parameter Fifo5ReadMsbAddr		= 12'h1e0+12'd30,
-	parameter Fifo6ReadMsbAddr		= 12'h230+12'd30
+    parameter Fifo0ReadMsbAddr		= 12'h0+12'd28,
+	parameter Fifo1ReadMsbAddr		= 12'h50+12'd28,
+	parameter Fifo2ReadMsbAddr		= 12'hf0+12'd28,
+	parameter Fifo3ReadMsbAddr		= 12'h140+12'd28,
+	parameter Fifo4ReadMsbAddr		= 12'h190+12'd28,
+	parameter Fifo5ReadMsbAddr		= 12'h1e0+12'd28,
+	parameter Fifo6ReadMsbAddr		= 12'h230+12'd28
 
 
 
 
 )(
-    input ToFifoTxWriteVal_i,
-    input ToFifoTxReadVal_i,
-    input ToFifoRxWriteVal_i,
-    input ToFifoRxReadVal_i,
-
-    input FifoTxFull_i,
-    input FifoTxEmpty_i,
-    input FifoRxFull_i,
-    input FifoRxEmpty_i,
-    input [11:0] SmcAddr_i,
-
-    input FifoTxWrClock_i,
-    input FifoTxRdClock_i,
-    input FifoRxWrClock_i,
-    input FifoRxRdClock_i,
-
-    output FifoTxWriteEn_o,
-    output FifoTxReadEn_o,
-    output FifoRxWriteEn_o,
-    output FifoRxReadEn_o
+  input ToFifoTxWriteVal_i,
+  input ToFifoTxReadVal_i,
+  input ToFifoRxWriteVal_i,
+  input ToFifoRxReadVal_i,
+
+  input FifoTxFull_i,
+  input FifoTxEmpty_i,
+  input FifoRxFull_i,
+  input FifoRxEmpty_i,
+  input [11:0] SmcAddr_i,
+
+  input   [7:0] TxFifoWrdCnt_i,
+  input   [7:0] RxFifoWrdCnt_i,
+
+  input FifoTxWrClock_i,
+  input FifoTxRdClock_i,
+  input FifoRxWrClock_i,
+  input FifoRxRdClock_i,
+
+  input FifoTxRst_i,
+  input FifoRxRst_i,
+
+
+  output  [7:0] RxFifoUpDnCnt_o,
+  output  [7:0] TxFifoUpDnCnt_o,
+
+  output FifoTxWriteEn_o,
+  output FifoTxReadEn_o,
+  output FifoRxWriteEn_o,
+  output FifoRxReadEn_o
 
 );
 
@@ -40,15 +50,24 @@ reg FifoTxReadEn;
 reg FifoRxWriteEn;
 reg FifoRxReadEn;
 
+(* dont_touch = "true" *)reg [7:0] txFifoWrPtr;
+(* dont_touch = "true" *)reg [7:0] txFifoRdPtr;
+(* dont_touch = "true" *)reg [7:0] rxFifoWrPtr;
+(* dont_touch = "true" *)reg [7:0] rxFifoRdPtr;
 
-    wire	requestToFifo0	=(SmcAddr_i == Fifo0ReadMsbAddr)?1'b1:1'b0;
-	wire	requestToFifo1	=(SmcAddr_i == Fifo1ReadMsbAddr)?1'b1:1'b0;
-	wire	requestToFifo2	=(SmcAddr_i == Fifo2ReadMsbAddr)?1'b1:1'b0;
-	wire	requestToFifo3	=(SmcAddr_i == Fifo3ReadMsbAddr)?1'b1:1'b0;
-	wire	requestToFifo4	=(SmcAddr_i == Fifo4ReadMsbAddr)?1'b1:1'b0;
-	wire	requestToFifo5	=(SmcAddr_i == Fifo5ReadMsbAddr)?1'b1:1'b0;
-	wire	requestToFifo6	=(SmcAddr_i == Fifo6ReadMsbAddr)?1'b1:1'b0;
-	wire	requestToFifo	=	(requestToFifo0|requestToFifo1|requestToFifo2|requestToFifo3|requestToFifo4|requestToFifo5|requestToFifo6)?1'b1:1'b0;
+(* dont_touch = "true" *) reg [7:0] rxFifoUpDnCnt;
+(* dont_touch = "true" *) reg [7:0] txFifoUpDnCnt;
+
+
+
+wire	requestToFifo0	=(SmcAddr_i == Fifo0ReadMsbAddr)?1'b1:1'b0;
+wire	requestToFifo1	=(SmcAddr_i == Fifo1ReadMsbAddr)?1'b1:1'b0;
+wire	requestToFifo2	=(SmcAddr_i == Fifo2ReadMsbAddr)?1'b1:1'b0;
+wire	requestToFifo3	=(SmcAddr_i == Fifo3ReadMsbAddr)?1'b1:1'b0;
+wire	requestToFifo4	=(SmcAddr_i == Fifo4ReadMsbAddr)?1'b1:1'b0;
+wire	requestToFifo5	=(SmcAddr_i == Fifo5ReadMsbAddr)?1'b1:1'b0;
+wire	requestToFifo6	=(SmcAddr_i == Fifo6ReadMsbAddr)?1'b1:1'b0;
+wire	requestToFifo	=	(requestToFifo0|requestToFifo1|requestToFifo2|requestToFifo3|requestToFifo4|requestToFifo5|requestToFifo6)?1'b1:1'b0;
 
 
 
@@ -61,6 +80,9 @@ assign FifoRxWriteEn_o = FifoRxWriteEn;
 assign FifoRxReadEn_o = FifoRxReadEn;
 
 
+assign RxFifoUpDnCnt_o = rxFifoUpDnCnt;
+assign TxFifoUpDnCnt_o = txFifoUpDnCnt;
+
 
 // //================================================================================
 
@@ -75,6 +97,7 @@ always @(posedge FifoTxWrClock_i) begin
     end
 end
 
+
 always @(posedge FifoTxRdClock_i ) begin 
     if (ToFifoTxReadVal_i && !FifoTxEmpty_i) begin 
         FifoTxReadEn <= 1'b1;
@@ -84,6 +107,7 @@ always @(posedge FifoTxRdClock_i ) begin
     end
 end
 
+
 always @(posedge FifoRxWrClock_i) begin 
     if (ToFifoRxWriteVal_i && !FifoRxFull_i) begin 
         FifoRxWriteEn <= 1'b1;
@@ -93,8 +117,9 @@ always @(posedge FifoRxWrClock_i) begin
     end
 end
 
+
 always @(posedge FifoRxRdClock_i) begin 
-    if (ToFifoRxReadVal_i && !FifoRxEmpty_i && !requestToFifo) begin 
+    if (ToFifoRxReadVal_i && !FifoRxEmpty_i && requestToFifo) begin 
         FifoRxReadEn <= 1'b1;
     end
     else begin 
@@ -102,6 +127,75 @@ always @(posedge FifoRxRdClock_i) begin
     end
 end
 
+
+always @(posedge FifoTxWrClock_i ) begin 
+    if (FifoTxRst_i) begin 
+        txFifoWrPtr <= 8'h0;
+    end
+    else begin 
+        if (FifoTxWriteEn  ) begin 
+            txFifoWrPtr <= txFifoWrPtr + 1'b1;
+        end
+    end
+end
+
+always @(posedge FifoTxRdClock_i ) begin 
+    if (FifoTxRst_i) begin 
+        txFifoRdPtr <= 8'h0;
+    end
+    else begin 
+        if (FifoTxReadEn ) begin 
+            txFifoRdPtr <= txFifoRdPtr + 1'b1;
+        end
+    end
+end
+
+
+always @(posedge FifoRxWrClock_i) begin 
+    if (FifoRxRst_i) begin 
+        rxFifoWrPtr <= 8'h0;
+    end
+    else begin
+        if (FifoRxWriteEn ) begin 
+            rxFifoWrPtr <= rxFifoWrPtr + 1'b1;
+        end
+    end
+end
+
+always @(posedge FifoRxRdClock_i) begin 
+    if (FifoRxRst_i) begin 
+        rxFifoRdPtr <= 8'h0;
+    end
+    else begin 
+        if (FifoRxReadEn ) begin 
+            rxFifoRdPtr <= rxFifoRdPtr + 1'b1;
+        end
+    end
+end
+
+
+always @(posedge FifoRxRdClock_i) begin 
+    if (FifoRxRst_i) begin 
+        rxFifoUpDnCnt <= 8'h0;
+    end
+    else begin 
+        rxFifoUpDnCnt <= rxFifoWrPtr - rxFifoRdPtr;
+    end
+end
+
+always @(posedge FifoTxRdClock_i) begin 
+    if (FifoTxRst_i) begin 
+        txFifoUpDnCnt <= 8'h0;
+    end
+    else begin 
+        txFifoUpDnCnt <= txFifoWrPtr - txFifoRdPtr;
+    end
+end
+
+
+
+
+
 // //================================================================================
 
 endmodule

+ 2 - 2
sources_1/new/MMCM/ClkOutMMCM.v

@@ -21,13 +21,13 @@ always @(*) begin
     end
     else begin 
         case (clkNum) 
-            0: clkOutMMCM = clk0out;
+            6: clkOutMMCM = clk0out;
             1: clkOutMMCM = clk1out;
             2: clkOutMMCM = clk2out;
             3: clkOutMMCM = clk3out;
             4: clkOutMMCM = clk4out;
             5: clkOutMMCM = clk5out;
-            6: clkOutMMCM = clk6out;
+            0: clkOutMMCM = clk6out;
             default: clkOutMMCM = 0;
         endcase
     end

+ 59 - 4
sources_1/new/S5443_3Top.v

@@ -73,6 +73,8 @@ wire initRst;
 wire gclk;
 wire [0:7] baudRate [SpiNum-1:0];
 
+wire [0:31] txFifoCtrlReg [SpiNum-1:0];
+wire [0:31] rxFifoCtrlReg [SpiNum-1:0];
 
 
 
@@ -93,6 +95,8 @@ wire [CmdRegWidth-1:0] spi0TxFifoCtrl;
 wire [CmdRegWidth-1:0] spi0RxFifoCtrl;
 wire [CmdRegWidth-1:0] spi0TxFifo;
 wire [CmdRegWidth-1:0] spi0RxFifo;
+wire [CmdRegWidth-1:0] spi0TxFifoCtrlReg;
+wire [CmdRegWidth-1:0] spi0RxFifoCtrlReg;
 
 wire [CmdRegWidth-1:0] spi0CtrlRR;
 wire [CmdRegWidth-1:0] spi0ClkRR;
@@ -100,7 +104,7 @@ wire [CmdRegWidth-1:0] spi0CsDelayRR;
 wire [CmdRegWidth-1:0] spi0CsCtrlRR;
 wire [CmdRegWidth-1:0] spi0TxFifoCtrlRR;
 wire [CmdRegWidth-1:0] spi0RxFifoCtrlRR;
-wire [CmdRegWidth-1:0] ansDataRR;
+wire [CmdRegWidth/2-1:0] ansDataRR;
 
 //SPI1
 wire [CmdRegWidth-1:0] spi1Ctrl;
@@ -111,6 +115,8 @@ wire [CmdRegWidth-1:0] spi1TxFifoCtrl;
 wire [CmdRegWidth-1:0] spi1RxFifoCtrl;
 wire [CmdRegWidth-1:0] spi1TxFifo;
 wire [CmdRegWidth-1:0] spi1RxFifo;
+wire [CmdRegWidth-1:0] spi1TxFifoCtrlReg;
+wire [CmdRegWidth-1:0] spi1RxFifoCtrlReg;
 //SPI2
 wire [CmdRegWidth-1:0] spi2Ctrl;
 wire [CmdRegWidth-1:0] spi2Clk;
@@ -120,6 +126,10 @@ wire [CmdRegWidth-1:0] spi2TxFifoCtrl;
 wire [CmdRegWidth-1:0] spi2RxFifoCtrl;
 wire [CmdRegWidth-1:0] spi2TxFifo;
 wire [CmdRegWidth-1:0] Spi2RxFifo;
+wire [CmdRegWidth-1:0] spi2TxFifoCtrlReg;
+wire [CmdRegWidth-1:0] spi2RxFifoCtrlReg;
+
+
 //SPI3
 wire [CmdRegWidth-1:0] spi3Ctrl;
 wire [CmdRegWidth-1:0] spi3Clk;
@@ -129,6 +139,9 @@ wire [CmdRegWidth-1:0] spi3TxFifoCtrl;
 wire [CmdRegWidth-1:0] spi3RxFifoCtrl;
 wire [CmdRegWidth-1:0] Spi3TxFifo;
 wire [CmdRegWidth-1:0] Spi3RxFifo;
+wire [CmdRegWidth-1:0] spi3TxFifoCtrlReg;
+wire [CmdRegWidth-1:0] spi3RxFifoCtrlReg;
+
 //SPI4
 wire [CmdRegWidth-1:0] spi4Ctrl;
 wire [CmdRegWidth-1:0] spi4Clk;
@@ -138,6 +151,9 @@ wire [CmdRegWidth-1:0] spi4TxFifoCtrl;
 wire [CmdRegWidth-1:0] spi4RxFifoCtrl;
 wire [CmdRegWidth-1:0] Spi4TxFifo;
 wire [CmdRegWidth-1:0] Spi4RxFifo;
+wire [CmdRegWidth-1:0] spi4TxFifoCtrlReg;
+wire [CmdRegWidth-1:0] spi4RxFifoCtrlReg;
+
 //SPI5
 wire [CmdRegWidth-1:0] spi5Ctrl;
 wire [CmdRegWidth-1:0] spi5Clk;
@@ -147,6 +163,9 @@ wire [CmdRegWidth-1:0] spi5TxFifoCtrl;
 wire [CmdRegWidth-1:0] spi5RxFifoCtrl;
 wire [CmdRegWidth-1:0] Spi5TxFifo;
 wire [CmdRegWidth-1:0] Spi5RxFifo;
+wire [CmdRegWidth-1:0] spi5TxFifoCtrlReg;
+wire [CmdRegWidth-1:0] spi5RxFifoCtrlReg;
+
 //SPI6
 wire [CmdRegWidth-1:0] spi6Ctrl;
 wire [CmdRegWidth-1:0] spi6Clk;
@@ -156,6 +175,9 @@ wire [CmdRegWidth-1:0] spi6TxFifoCtrl;
 wire [CmdRegWidth-1:0] spi6RxFifoCtrl;
 wire [CmdRegWidth-1:0] Spi6TxFifo;
 wire [CmdRegWidth-1:0] Spi6RxFifo;
+wire [CmdRegWidth-1:0] spi6TxFifoCtrlReg;
+wire [CmdRegWidth-1:0] spi6RxFifoCtrlReg;
+
 
 wire [CmdRegWidth-1:0] SpiTxRxEn;
 wire [CmdRegWidth-1:0] GPIOA;
@@ -497,6 +519,24 @@ assign dataToRxFifo[4] = dataToRxFifoR[4];
 assign dataToRxFifo[5] = dataToRxFifoR[5];
 assign dataToRxFifo[6] = dataToRxFifoR[6];
 
+assign spi0TxFifoCtrlReg = txFifoCtrlReg[0];
+assign spi1TxFifoCtrlReg = txFifoCtrlReg[1];
+assign spi2TxFifoCtrlReg = txFifoCtrlReg[2];
+assign spi3TxFifoCtrlReg = txFifoCtrlReg[3];
+assign spi4TxFifoCtrlReg = txFifoCtrlReg[4];
+assign spi5TxFifoCtrlReg = txFifoCtrlReg[5];
+assign spi6TxFifoCtrlReg = txFifoCtrlReg[6];
+
+assign spi0RxFifoCtrlReg = rxFifoCtrlReg[0];
+assign spi1RxFifoCtrlReg = rxFifoCtrlReg[1];
+assign spi2RxFifoCtrlReg = rxFifoCtrlReg[2];
+assign spi3RxFifoCtrlReg = rxFifoCtrlReg[3];
+assign spi4RxFifoCtrlReg = rxFifoCtrlReg[4];
+assign spi5RxFifoCtrlReg = rxFifoCtrlReg[5];
+assign spi6RxFifoCtrlReg = rxFifoCtrlReg[6];
+
+
+
 
 
 //================================================================================
@@ -579,6 +619,20 @@ RegMap_inst
     .Addr_i(toRegMapAddr),
     .Val_i(toRegMapVal),
     .SmcBe_i(smcBe),
+    .TxFifoCtrlReg0_i(spi0TxFifoCtrlReg),
+    .TxFifoCtrlReg1_i(spi1TxFifoCtrlReg),
+    .TxFifoCtrlReg2_i(spi2TxFifoCtrlReg),
+    .TxFifoCtrlReg3_i(spi3TxFifoCtrlReg),
+    .TxFifoCtrlReg4_i(spi4TxFifoCtrlReg),
+    .TxFifoCtrlReg5_i(spi5TxFifoCtrlReg),
+    .TxFifoCtrlReg6_i(spi6TxFifoCtrlReg),
+    .RxFifoCtrlReg0_i(spi0RxFifoCtrlReg),
+    .RxFifoCtrlReg1_i(spi1RxFifoCtrlReg),
+    .RxFifoCtrlReg2_i(spi2RxFifoCtrlReg),
+    .RxFifoCtrlReg3_i(spi3RxFifoCtrlReg),
+    .RxFifoCtrlReg4_i(spi4RxFifoCtrlReg),
+    .RxFifoCtrlReg5_i(spi5RxFifoCtrlReg),
+    .RxFifoCtrlReg6_i(spi6RxFifoCtrlReg),
     .Led_o(Led_o),
     .AnsDataReg_o(ansData),
     //Spi0
@@ -710,20 +764,21 @@ generate
 		(
 			.WrClk_i	(gclk),
 			.RdClk_i	(spiClkBus[i]),
-			// .Rst_i		(spiSyncRst[i] | FifoRxRst[i]),
 			.FifoRxRst_i    (fifoRxRst[i]),
             .FifoTxRst_i    (fifoTxRst[i]),
             .SmcAre_i   (SmcAre_i),
             .SmcAwe_i   (SmcAwe_i),
             .SmcAddr_i  (smcAddr),
-	
+            .TxFifoWrdCnt_i (wordCntTx[i]),
+            .RxFifoWrdCnt_i (wordCntRx[i]),
 			.ToFifoVal_i	(toFifoVal[i]),
             .ToFifoRxData_i (dataToRxFifo[i]),
             .ToFifoRxWriteVal_i (valToRxFifo[i]),
             .ToFifoTxReadVal_i (valToTxFifoRead[i]),
 			.ToFifoData_i	(toFifoData[32*i+:32]),
 
-			
+			.TxFifoCtrlReg_o    (txFifoCtrlReg[i]),
+            .RxFifoCtrlReg_o    (rxFifoCtrlReg[i]),
 			.ToSpiVal_o		(toSpiVal[i]),
             .DataFromRxFifo_o (dataFromRxFifo[i]),
 			.ToSpiData_o	(toSpiData[i])

+ 7 - 7
sources_1/new/S5443_3_tb.v

@@ -62,7 +62,7 @@ always @(posedge Clk_i) begin
             SmcAwe_i <= 1'b1;
         end 
         1: begin 
-            SmcAwe_i <= 1'b1;
+            SmcAwe_i <= 1'b0;
         end
         2: begin 
             SmcAwe_i <= 1'b1;
@@ -71,7 +71,7 @@ always @(posedge Clk_i) begin
             SmcAwe_i <= 1'b0;
         end
         4: begin 
-            SmcAwe_i <= 1'b0;
+            SmcAwe_i <= 1'b1;
         end
         5: begin 
             SmcAwe_i <= 1'b0;
@@ -211,15 +211,15 @@ always @(posedge Clk_i) begin
             SmcAddr_i <= 12'h00f;
             SmcData_i <= 16'h0000;
         end
-        2: begin 
+        3: begin 
             SmcAddr_i <= 12'h7fc;
             SmcData_i <= 16'h0001;
         end
-        4: begin 
+        5: begin 
             SmcAddr_i <= 12'h7fd;
             SmcData_i <= 16'h0000;
         end
-        6: begin 
+        7: begin 
             SmcAddr_i <= 12'h7fe;
             SmcAddr_i <= 16'h0000;
         end
@@ -233,7 +233,7 @@ always @(posedge Clk_i) begin
         end
         12: begin 
              SmcAddr_i <= 12'h2;
-             SmcData_i <= 16'hc;
+             SmcData_i <= 16'hd1;
         end
         14: begin 
             SmcAddr_i <= 12'h3;
@@ -241,7 +241,7 @@ always @(posedge Clk_i) begin
         end
         16: begin 
             SmcAddr_i <= 12'h4;
-            SmcData_i <= 16'hc;
+            SmcData_i <= 16'h0;
         end
         18: begin 
             SmcAddr_i <= 12'h5;

+ 297 - 141
sources_1/new/SRAM/RegMap.v

@@ -10,7 +10,23 @@ module RegMap #(
 	
     input Clk_i,
     input Rst_i,
-    input [1:0] SmcBe_i,        
+    input [1:0] SmcBe_i,
+    input [CmdRegWidth-1:0] TxFifoCtrlReg0_i,
+    input [CmdRegWidth-1:0] RxFifoCtrlReg0_i,
+    input [CmdRegWidth-1:0] TxFifoCtrlReg1_i,
+    input [CmdRegWidth-1:0] RxFifoCtrlReg1_i,
+    input [CmdRegWidth-1:0] TxFifoCtrlReg2_i,
+    input [CmdRegWidth-1:0] RxFifoCtrlReg2_i,
+    input [CmdRegWidth-1:0] TxFifoCtrlReg3_i,
+    input [CmdRegWidth-1:0] RxFifoCtrlReg3_i,
+    input [CmdRegWidth-1:0] TxFifoCtrlReg4_i,
+    input [CmdRegWidth-1:0] RxFifoCtrlReg4_i,
+    input [CmdRegWidth-1:0] TxFifoCtrlReg5_i,
+    input [CmdRegWidth-1:0] RxFifoCtrlReg5_i,
+    input [CmdRegWidth-1:0] TxFifoCtrlReg6_i,
+    input [CmdRegWidth-1:0] RxFifoCtrlReg6_i,
+
+
 
 
     output   [CmdRegWidth/2-1:0] Spi0CtrlReg_o,
@@ -244,8 +260,10 @@ localparam Spi0CtrlAddr = 12'h00;
 localparam Spi0ClkAddr  = 12'h04;
 localparam Spi0CsDelayAddr = 12'h08;
 localparam Spi0CsCtrlAddr = 12'h0c;
-localparam Spi0TxFifoCtrlAddr = 12'h10;
-localparam Spi0RxFifoCtrlAddr = 12'h14;
+localparam Spi0TxFifoCtrlAddrLsb = 12'h10;
+localparam Spi0TxFifoCtrlAddrMsb = 12'h12;
+localparam Spi0RxFifoCtrlAddrLsb = 12'h14;
+localparam Spi0RxFifoCtrlAddrMsb = 12'h16;
 localparam Spi0TxFifo = 12'h18;
 localparam Spi0RxFifo = 12'h1c;
 
@@ -253,8 +271,10 @@ localparam Spi1CtrlAddr = 12'h50;
 localparam Spi1ClkAddr  = 12'h54;
 localparam Spi1CsDelayAddr = 12'h58;
 localparam Spi1CsCtrlAddr = 12'h5c;
-localparam Spi1TxFifoCtrlAddr = 12'h60;
-localparam Spi1RxFifoCtrlAddr = 12'h64;
+localparam Spi1TxFifoCtrlAddrLsb = 12'h60;
+localparam Spi1TxFifoCtrlAddrMsb = 12'h62;
+localparam Spi1RxFifoCtrlAddrLsb = 12'h64;
+localparam Spi1RxFifoCtrlAddrMsb = 12'h66;
 localparam Spi1TxFifo = 12'h68;
 localparam Spi1RxFifo = 12'h6c;
 
@@ -262,8 +282,10 @@ localparam Spi2CtrlAddr = 12'hF0;
 localparam Spi2ClkAddr  = 12'hF4;
 localparam Spi2CsDelayAddr = 12'hF8;
 localparam Spi2CsCtrlAddr = 12'hFc;
-localparam Spi2TxFifoCtrlAddr = 12'h100;
-localparam Spi2RxFifoCtrlAddr = 12'h104;
+localparam Spi2TxFifoCtrlAddrLsb = 12'h100;
+localparam Spi2TxFifoCtrlAddrMsb = 12'h102;
+localparam Spi2RxFifoCtrlAddrLsb = 12'h104;
+localparam Spi2RxFifoCtrlAddrMsb = 12'h106;
 localparam Spi2TxFifo = 12'h108;
 localparam Spi2RxFifo = 12'h10c;
 
@@ -271,8 +293,10 @@ localparam Spi3CtrlAddr = 12'h140;
 localparam Spi3ClkAddr  = 12'h144;
 localparam Spi3CsDelayAddr = 12'h148;
 localparam Spi3CsCtrlAddr = 12'h14c;
-localparam Spi3TxFifoCtrlAddr = 12'h150;
-localparam Spi3RxFifoCtrlAddr = 12'h154;
+localparam Spi3TxFifoCtrlAddrLsb = 12'h150;
+localparam Spi3TxFifoCtrlAddrMsb = 12'h152;
+localparam Spi3RxFifoCtrlAddrLsb = 12'h154;
+localparam Spi3RxFifoCtrlAddrMsb = 12'h156;
 localparam Spi3TxFifo = 12'h158;
 localparam Spi3RxFifo = 12'h15c;
 
@@ -280,8 +304,10 @@ localparam Spi4CtrlAddr = 12'h190;
 localparam Spi4ClkAddr  = 12'h194;
 localparam Spi4CsDelayAddr = 12'h198;
 localparam Spi4CsCtrlAddr = 12'h19c;
-localparam Spi4TxFifoCtrlAddr = 12'h1a0;
-localparam Spi4RxFifoCtrlAddr = 12'h1a4;
+localparam Spi4TxFifoCtrlAddrLsb = 12'h1a0;
+localparam Spi4TxFifoCtrlAddrMsb = 12'h1a2;
+localparam Spi4RxFifoCtrlAddrLsb = 12'h1a4;
+localparam Spi4RxFifoCtrlAddrMsb = 12'h1a6;
 localparam Spi4TxFifo = 12'h1a8;
 localparam Spi4RxFifo = 12'h1ac;
 
@@ -289,8 +315,10 @@ localparam Spi5CtrlAddr = 12'h1e0;
 localparam Spi5ClkAddr  = 12'h1e4;
 localparam Spi5CsDelayAddr = 12'h1e8;
 localparam Spi5CsCtrlAddr = 12'h1ec;
-localparam Spi5TxFifoCtrlAddr = 12'h1f0;
-localparam Spi5RxFifoCtrlAddr = 12'h1f4;
+localparam Spi5TxFifoCtrlAddrLsb = 12'h1f0;
+localparam Spi5TxFifoCtrlAddrMsb = 12'h1f2;
+localparam Spi5RxFifoCtrlAddrLsb = 12'h1f4;
+localparam Spi5RxFifoCtrlAddrMsb = 12'h1f6;
 localparam Spi5TxFifo = 12'h1f8;
 localparam Spi5RxFifo = 12'h1fc;
 
@@ -298,8 +326,10 @@ localparam Spi6CtrlAddr = 12'h230;
 localparam Spi6ClkAddr  = 12'h234;
 localparam Spi6CsDelayAddr = 12'h238;
 localparam Spi6CsCtrlAddr = 12'h23c;
-localparam Spi6TxFifoCtrlAddr = 12'h240;
-localparam Spi6RxFifoCtrlAddr = 12'h244;
+localparam Spi6TxFifoCtrlAddrLsb = 12'h240;
+localparam Spi6TxFifoCtrlAddrMsb = 12'h242;
+localparam Spi6RxFifoCtrlAddrLsb = 12'h244;
+localparam Spi6RxFifoCtrlAddrMsb = 12'h246;
 localparam Spi6TxFifo = 12'h248;
 localparam Spi6RxFifo = 12'h24c;
 
@@ -399,10 +429,10 @@ always @(posedge Clk_i) begin
                         Spi0CsCtrlAddr : begin 
                             Spi0CsCtrlReg <= Data_i;
                         end
-                        Spi0TxFifoCtrlAddr : begin 
+                        Spi0TxFifoCtrlAddrLsb : begin 
                             Spi0TxFifoCtrlReg <= Data_i;
                         end
-                        Spi0RxFifoCtrlAddr : begin 
+                        Spi0RxFifoCtrlAddrLsb : begin 
                             Spi0RxFifoCtrlReg <= Data_i;
                         end
                         Spi0TxFifo : begin 
@@ -423,10 +453,10 @@ always @(posedge Clk_i) begin
                         Spi1CsCtrlAddr : begin 
                             Spi1CsCtrlReg <= Data_i;
                         end
-                        Spi1TxFifoCtrlAddr : begin 
+                        Spi1TxFifoCtrlAddrLsb : begin 
                             Spi1TxFifoCtrlReg <= Data_i;
                         end
-                        Spi1RxFifoCtrlAddr : begin 
+                        Spi1RxFifoCtrlAddrLsb : begin 
                             Spi1RxFifoCtrlReg <= Data_i;
                         end
                         Spi1TxFifo : begin 
@@ -447,10 +477,10 @@ always @(posedge Clk_i) begin
                         Spi2CsCtrlAddr : begin 
                             Spi2CsCtrlReg <= Data_i;
                         end
-                        Spi2TxFifoCtrlAddr : begin 
+                        Spi2TxFifoCtrlAddrLsb : begin 
                             Spi2TxFifoCtrlReg <= Data_i;
                         end
-                        Spi2RxFifoCtrlAddr : begin 
+                        Spi2RxFifoCtrlAddrLsb : begin 
                             Spi2RxFifoCtrlReg <= Data_i;
                         end
                         Spi2TxFifo : begin 
@@ -471,10 +501,10 @@ always @(posedge Clk_i) begin
                         Spi3CsCtrlAddr : begin 
                             Spi3CsCtrlReg <= Data_i;
                         end
-                        Spi3TxFifoCtrlAddr : begin 
+                        Spi3TxFifoCtrlAddrLsb : begin 
                             Spi3TxFifoCtrlReg <= Data_i;
                         end
-                        Spi3RxFifoCtrlAddr : begin 
+                        Spi3RxFifoCtrlAddrLsb : begin 
                             Spi3RxFifoCtrlReg <= Data_i;
                         end
                         Spi3TxFifo : begin 
@@ -495,10 +525,10 @@ always @(posedge Clk_i) begin
                         Spi4CsCtrlAddr : begin 
                             Spi4CsCtrlReg <= Data_i;
                         end
-                        Spi4TxFifoCtrlAddr : begin 
+                        Spi4TxFifoCtrlAddrLsb : begin 
                             Spi4TxFifoCtrlReg <= Data_i;
                         end
-                        Spi4RxFifoCtrlAddr : begin 
+                        Spi4RxFifoCtrlAddrLsb : begin 
                             Spi4RxFifoCtrlReg <= Data_i;
                         end
                         Spi4TxFifo : begin 
@@ -519,10 +549,10 @@ always @(posedge Clk_i) begin
                         Spi5CsCtrlAddr : begin 
                             Spi5CsCtrlReg <= Data_i;
                         end
-                        Spi5TxFifoCtrlAddr : begin 
+                        Spi5TxFifoCtrlAddrLsb : begin 
                             Spi5TxFifoCtrlReg <= Data_i;
                         end
-                        Spi5RxFifoCtrlAddr : begin 
+                        Spi5RxFifoCtrlAddrLsb : begin 
                             Spi5RxFifoCtrlReg <= Data_i;
                         end
                         Spi5TxFifo : begin 
@@ -543,10 +573,10 @@ always @(posedge Clk_i) begin
                         Spi6CsCtrlAddr : begin 
                             Spi6CsCtrlReg <= Data_i;
                         end
-                        Spi6TxFifoCtrlAddr : begin 
+                        Spi6TxFifoCtrlAddrLsb : begin 
                             Spi6TxFifoCtrlReg <= Data_i;
                         end
-                        Spi6RxFifoCtrlAddr : begin 
+                        Spi6RxFifoCtrlAddrLsb : begin 
                             Spi6RxFifoCtrlReg <= Data_i;
                         end
                         Spi6TxFifo : begin 
@@ -583,10 +613,10 @@ always @(posedge Clk_i) begin
                         Spi0CsCtrlAddr : begin 
                             Spi0CsCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi0TxFifoCtrlAddr : begin 
+                        Spi0TxFifoCtrlAddrLsb : begin 
                             Spi0TxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi0RxFifoCtrlAddr : begin 
+                        Spi0RxFifoCtrlAddrLsb : begin 
                             Spi0RxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
                         Spi0TxFifo : begin 
@@ -607,10 +637,10 @@ always @(posedge Clk_i) begin
                         Spi1CsCtrlAddr : begin 
                             Spi1CsCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi1TxFifoCtrlAddr : begin 
+                        Spi1TxFifoCtrlAddrLsb : begin 
                             Spi1TxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi1RxFifoCtrlAddr : begin 
+                        Spi1RxFifoCtrlAddrLsb : begin 
                             Spi1RxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
                         Spi1TxFifo : begin 
@@ -631,10 +661,10 @@ always @(posedge Clk_i) begin
                         Spi2CsCtrlAddr : begin 
                             Spi2CsCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi2TxFifoCtrlAddr : begin 
+                        Spi2TxFifoCtrlAddrLsb : begin 
                             Spi2TxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi2RxFifoCtrlAddr : begin 
+                        Spi2RxFifoCtrlAddrLsb : begin 
                             Spi2RxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
                         Spi2TxFifo : begin 
@@ -655,10 +685,10 @@ always @(posedge Clk_i) begin
                         Spi3CsCtrlAddr : begin 
                             Spi3CsCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi3TxFifoCtrlAddr : begin 
+                        Spi3TxFifoCtrlAddrLsb : begin 
                             Spi3TxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi3RxFifoCtrlAddr : begin 
+                        Spi3RxFifoCtrlAddrLsb : begin 
                             Spi3RxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
                         Spi3TxFifo : begin 
@@ -679,10 +709,10 @@ always @(posedge Clk_i) begin
                         Spi4CsCtrlAddr : begin 
                             Spi4CsCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi4TxFifoCtrlAddr : begin 
+                        Spi4TxFifoCtrlAddrLsb : begin 
                             Spi4TxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi4RxFifoCtrlAddr : begin 
+                        Spi4RxFifoCtrlAddrLsb : begin 
                             Spi4RxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
                         Spi4TxFifo : begin 
@@ -703,10 +733,10 @@ always @(posedge Clk_i) begin
                         Spi5CsCtrlAddr : begin 
                             Spi5CsCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi5TxFifoCtrlAddr : begin 
+                        Spi5TxFifoCtrlAddrLsb : begin 
                             Spi5TxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi5RxFifoCtrlAddr : begin 
+                        Spi5RxFifoCtrlAddrLsb : begin 
                             Spi5RxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
                         Spi5TxFifo : begin 
@@ -727,10 +757,10 @@ always @(posedge Clk_i) begin
                         Spi6CsCtrlAddr : begin 
                             Spi6CsCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi6TxFifoCtrlAddr : begin 
+                        Spi6TxFifoCtrlAddrLsb : begin 
                             Spi6TxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
-                        Spi6RxFifoCtrlAddr : begin 
+                        Spi6RxFifoCtrlAddrLsb : begin 
                             Spi6RxFifoCtrlReg[15:8] <= Data_i[15:8];
                         end
                         Spi6TxFifo : begin 
@@ -767,10 +797,10 @@ always @(posedge Clk_i) begin
                         Spi0CsCtrlAddr : begin 
                             Spi0CsCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi0TxFifoCtrlAddr : begin 
+                        Spi0TxFifoCtrlAddrLsb : begin 
                             Spi0TxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi0RxFifoCtrlAddr : begin 
+                        Spi0RxFifoCtrlAddrLsb : begin 
                             Spi0RxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
                         Spi0TxFifo : begin 
@@ -791,10 +821,10 @@ always @(posedge Clk_i) begin
                         Spi1CsCtrlAddr : begin 
                             Spi1CsCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi1TxFifoCtrlAddr : begin 
+                        Spi1TxFifoCtrlAddrLsb : begin 
                             Spi1TxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi1RxFifoCtrlAddr : begin 
+                        Spi1RxFifoCtrlAddrLsb : begin 
                             Spi1RxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
                         Spi1TxFifo : begin 
@@ -815,10 +845,10 @@ always @(posedge Clk_i) begin
                         Spi2CsCtrlAddr : begin 
                             Spi2CsCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi2TxFifoCtrlAddr : begin 
+                        Spi2TxFifoCtrlAddrLsb : begin 
                             Spi2TxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi2RxFifoCtrlAddr : begin 
+                        Spi2RxFifoCtrlAddrLsb : begin 
                             Spi2RxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
                         Spi2TxFifo : begin 
@@ -839,10 +869,10 @@ always @(posedge Clk_i) begin
                         Spi3CsCtrlAddr : begin 
                             Spi3CsCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi3TxFifoCtrlAddr : begin 
+                        Spi3TxFifoCtrlAddrLsb : begin 
                             Spi3TxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi3RxFifoCtrlAddr : begin 
+                        Spi3RxFifoCtrlAddrLsb : begin 
                             Spi3RxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
                         Spi3TxFifo : begin 
@@ -863,10 +893,10 @@ always @(posedge Clk_i) begin
                         Spi4CsCtrlAddr : begin 
                             Spi4CsCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi4TxFifoCtrlAddr : begin 
+                        Spi4TxFifoCtrlAddrLsb : begin 
                             Spi4TxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi4RxFifoCtrlAddr : begin 
+                        Spi4RxFifoCtrlAddrLsb : begin 
                             Spi4RxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
                         Spi4TxFifo : begin 
@@ -887,10 +917,10 @@ always @(posedge Clk_i) begin
                         Spi5CsCtrlAddr : begin 
                             Spi5CsCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi5TxFifoCtrlAddr : begin 
+                        Spi5TxFifoCtrlAddrLsb : begin 
                             Spi5TxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi5RxFifoCtrlAddr : begin 
+                        Spi5RxFifoCtrlAddrLsb : begin 
                             Spi5RxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
                         Spi5TxFifo : begin 
@@ -911,10 +941,10 @@ always @(posedge Clk_i) begin
                         Spi6CsCtrlAddr : begin 
                             Spi6CsCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi6TxFifoCtrlAddr : begin 
+                        Spi6TxFifoCtrlAddrLsb : begin 
                             Spi6TxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
-                        Spi6RxFifoCtrlAddr : begin 
+                        Spi6RxFifoCtrlAddrLsb : begin 
                             Spi6RxFifoCtrlReg[7:0] <= Data_i[7:0];
                         end
                         Spi6TxFifo : begin 
@@ -962,12 +992,18 @@ always @(*) begin
 						Spi0CsCtrlAddr : begin 
 							ansReg = Spi0CsCtrlReg;
 						end
-						Spi0TxFifoCtrlAddr : begin 
-							ansReg = Spi0TxFifoCtrlReg;
+						Spi0TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg0_i[15:0];
 						end
-						Spi0RxFifoCtrlAddr : begin 
-							ansReg = Spi0RxFifoCtrlReg;
+                        Spi0TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg0_i[31:16];
+                        end
+						Spi0RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg0_i[15:0];
 						end
+                        Spi0RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg0_i[31:16];
+                        end
 						Spi0TxFifo : begin 
 							ansReg = Spi0TxFifoReg;
 						end
@@ -986,12 +1022,18 @@ always @(*) begin
 						Spi1CsCtrlAddr : begin 
 							ansReg = Spi1CsCtrlReg;
 						end
-						Spi1TxFifoCtrlAddr : begin 
-							ansReg = Spi1TxFifoCtrlReg;
+						Spi1TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg1_i[15:0];
 						end
-						Spi1RxFifoCtrlAddr : begin 
-							ansReg = Spi1RxFifoCtrlReg;
+                        Spi1TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg1_i[31:16];
+                        end
+						Spi1RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg1_i[15:0];
 						end
+                        Spi1RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg1_i[31:16];
+                        end
 						Spi1TxFifo : begin 
 							ansReg = Spi1TxFifoReg;
 						end
@@ -1010,12 +1052,18 @@ always @(*) begin
 						Spi2CsCtrlAddr : begin 
 							ansReg = Spi2CsCtrlReg;
 						end
-						Spi2TxFifoCtrlAddr : begin 
-							ansReg = Spi2TxFifoCtrlReg;
+						Spi2TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg2_i[15:0];
 						end
-						Spi2RxFifoCtrlAddr : begin 
-							ansReg = Spi2RxFifoCtrlReg;
+                        Spi2TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg2_i[31:16];
+                        end
+						Spi2RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg2_i[15:0];
 						end
+                        Spi2RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg2_i[31:16];
+                        end
 						Spi2TxFifo : begin 
 							ansReg = Spi2TxFifoReg;
 						end
@@ -1034,12 +1082,18 @@ always @(*) begin
 						Spi3CsCtrlAddr : begin 
 							ansReg = Spi3CsCtrlReg;
 						end
-						Spi3TxFifoCtrlAddr : begin 
-							ansReg = Spi3TxFifoCtrlReg;
+						Spi3TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg3_i[15:0];
 						end
-						Spi3RxFifoCtrlAddr : begin 
-							ansReg = Spi3RxFifoCtrlReg;
+                        Spi3TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg3_i[31:16];
+                        end
+						Spi3RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg3_i[15:0];
 						end
+                        Spi3RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg3_i[31:16];
+                        end
 						Spi3TxFifo : begin 
 							ansReg = Spi3TxFifoReg;
 						end
@@ -1058,12 +1112,18 @@ always @(*) begin
 						Spi4CsCtrlAddr : begin 
 							ansReg = Spi4CsCtrlReg;
 						end
-						Spi4TxFifoCtrlAddr : begin 
-							ansReg = Spi4TxFifoCtrlReg;
+						Spi4TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg4_i[15:0];
 						end
-						Spi4RxFifoCtrlAddr : begin 
-							ansReg = Spi4RxFifoCtrlReg;
+                        Spi4TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg4_i[31:16];
+                        end
+						Spi4RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg4_i[15:0];
 						end
+                        Spi4RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg4_i[31:16];
+                        end
 						Spi4TxFifo : begin 
 							ansReg = Spi4TxFifoReg;
 						end
@@ -1082,12 +1142,18 @@ always @(*) begin
 						Spi5CsCtrlAddr : begin 
 							ansReg = Spi5CsCtrlReg;
 						end
-						Spi5TxFifoCtrlAddr : begin 
-							ansReg = Spi5TxFifoCtrlReg;
+						Spi5TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg5_i[15:0];
 						end
-						Spi5RxFifoCtrlAddr : begin 
-							ansReg = Spi5RxFifoCtrlReg;
+                        Spi5TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg5_i[31:16];
+                        end
+						Spi5RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg5_i[15:0];
 						end
+                        Spi5RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg5_i[31:16];
+                        end
 						Spi5TxFifo : begin 
 							ansReg = Spi5TxFifoReg;
 						end
@@ -1106,12 +1172,18 @@ always @(*) begin
 						Spi6CsCtrlAddr : begin 
 							ansReg = Spi6CsCtrlReg;
 						end
-						Spi6TxFifoCtrlAddr : begin 
-							ansReg = Spi6TxFifoCtrlReg;
+						Spi6TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg6_i[15:0];
 						end
-						Spi6RxFifoCtrlAddr : begin 
-							ansReg = Spi6RxFifoCtrlReg;
+                        Spi6TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg6_i[31:16];
+                        end
+						Spi6RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg6_i[15:0];
 						end
+                        Spi6RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg6_i[31:16];
+                        end
 						Spi6TxFifo : begin 
 							ansReg = Spi6TxFifoReg;
 						end
@@ -1146,12 +1218,18 @@ always @(*) begin
 						Spi0CsCtrlAddr : begin 
 							ansReg = Spi0CsCtrlReg[15:8];
 						end
-						Spi0TxFifoCtrlAddr : begin 
-							ansReg = Spi0TxFifoCtrlReg[15:8];
+						Spi0TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg0_i[15:8];
 						end
-						Spi0RxFifoCtrlAddr : begin 
-							ansReg = Spi0RxFifoCtrlReg[15:8];
+                        Spi0TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg0_i[31:24];
+                        end
+						Spi0RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg0_i[15:8];
 						end
+                        Spi0RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg0_i[31:24];
+                        end
 						Spi0TxFifo : begin 
 							ansReg = Spi0TxFifoReg[15:8];
 						end
@@ -1170,12 +1248,18 @@ always @(*) begin
 						Spi1CsCtrlAddr : begin 
 							ansReg = Spi1CsCtrlReg[15:8];
 						end
-						Spi1TxFifoCtrlAddr : begin 
-							ansReg = Spi1TxFifoCtrlReg[15:8];
+						Spi1TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg1_i[15:8];
 						end
-						Spi1RxFifoCtrlAddr : begin 
-							ansReg = Spi1RxFifoCtrlReg[15:8];
+                        Spi1TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg1_i[31:24];
+                        end
+						Spi1RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg1_i[15:8];
 						end
+                        Spi1RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg1_i[31:24];
+                        end
 						Spi1TxFifo : begin 
 							ansReg = Spi1TxFifoReg[15:8];
 						end
@@ -1194,12 +1278,18 @@ always @(*) begin
 						Spi2CsCtrlAddr : begin 
 							ansReg = Spi2CsCtrlReg[15:8];
 						end
-						Spi2TxFifoCtrlAddr : begin 
-							ansReg = Spi2TxFifoCtrlReg[15:8];
+						Spi2TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg2_i[15:8];
 						end
-						Spi2RxFifoCtrlAddr : begin 
-							ansReg = Spi2RxFifoCtrlReg[15:8];
+                        Spi2TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg2_i[31:24];
+                        end
+						Spi2RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg2_i[15:8];
 						end
+                        Spi2RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg2_i[31:24];
+                        end
 						Spi2TxFifo : begin 
 							ansReg = Spi2TxFifoReg[15:8];
 						end
@@ -1218,12 +1308,18 @@ always @(*) begin
 						Spi3CsCtrlAddr : begin 
 							ansReg = Spi3CsCtrlReg[15:8];
 						end
-						Spi3TxFifoCtrlAddr : begin 
-							ansReg = Spi3TxFifoCtrlReg[15:8];
+						Spi3TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg3_i[15:8];
 						end
-						Spi3RxFifoCtrlAddr : begin 
-							ansReg = Spi3RxFifoCtrlReg[15:8];
+                        Spi3TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg3_i[31:24];
+                        end
+						Spi3RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg3_i[15:8];
 						end
+                        Spi3RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg3_i[31:24];
+                        end
 						Spi3TxFifo : begin 
 							ansReg = Spi3TxFifoReg[15:8];
 						end
@@ -1242,12 +1338,18 @@ always @(*) begin
 						Spi4CsCtrlAddr : begin 
 							ansReg = Spi4CsCtrlReg[15:8];
 						end
-						Spi4TxFifoCtrlAddr : begin 
-							ansReg = Spi4TxFifoCtrlReg[15:8];
+						Spi4TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg4_i[15:8];
 						end
-						Spi4RxFifoCtrlAddr : begin 
-							ansReg = Spi4RxFifoCtrlReg[15:8];
+                        Spi4TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg4_i[31:24];
+                        end
+						Spi4RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg4_i[15:8];
 						end
+                        Spi4RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg4_i[31:24];
+                        end
 						Spi4TxFifo : begin 
 							ansReg = Spi4TxFifoReg[15:8];
 						end
@@ -1266,12 +1368,18 @@ always @(*) begin
 						Spi5CsCtrlAddr : begin 
 							ansReg = Spi5CsCtrlReg[15:8];
 						end
-						Spi5TxFifoCtrlAddr : begin 
-							ansReg = Spi5TxFifoCtrlReg[15:8];
+						Spi5TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg5_i[15:8];
 						end
-						Spi5RxFifoCtrlAddr : begin 
-							ansReg = Spi5RxFifoCtrlReg[15:8];
+                        Spi5TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg5_i[31:24];
+                        end
+						Spi5RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg5_i[15:8];
 						end
+                        Spi5RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg5_i[31:24];
+                        end
 						Spi5TxFifo : begin 
 							ansReg = Spi5TxFifoReg[15:8];
 						end
@@ -1290,12 +1398,18 @@ always @(*) begin
 						Spi6CsCtrlAddr : begin 
 							ansReg = Spi6CsCtrlReg[15:8];
 						end
-						Spi6TxFifoCtrlAddr : begin 
-							ansReg = Spi6TxFifoCtrlReg[15:8];
+						Spi6TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg6_i[15:8];
 						end
-						Spi6RxFifoCtrlAddr : begin 
-							ansReg = Spi6RxFifoCtrlReg[15:8];
+                        Spi6TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg6_i[31:24];
+                        end
+						Spi6RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg6_i[15:8];
 						end
+                        Spi6RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg6_i[31:24];
+                        end
 						Spi6TxFifo : begin 
 							ansReg = Spi6TxFifoReg[15:8];
 						end
@@ -1330,12 +1444,18 @@ always @(*) begin
 						Spi0CsCtrlAddr : begin 
 							ansReg = Spi0CsCtrlReg[7:0];
 						end
-						Spi0TxFifoCtrlAddr : begin 
-							ansReg = Spi0TxFifoCtrlReg[7:0];
+						Spi0TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg0_i[7:0];
 						end
-						Spi0RxFifoCtrlAddr : begin 
-							ansReg = Spi0RxFifoCtrlReg[7:0];
+                        Spi0TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg0_i[23:16];
+                        end
+						Spi0RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg0_i[7:0];
 						end
+                        Spi0RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg0_i[23:16];
+                        end
 						Spi0TxFifo : begin 
 							ansReg = Spi0TxFifoReg[7:0];
 						end
@@ -1354,12 +1474,18 @@ always @(*) begin
 						Spi1CsCtrlAddr : begin 
 							ansReg = Spi1CsCtrlReg[7:0];
 						end
-						Spi1TxFifoCtrlAddr : begin 
-							ansReg = Spi1TxFifoCtrlReg[7:0];
+						Spi1TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg1_i[7:0];
 						end
-						Spi1RxFifoCtrlAddr : begin 
-							ansReg = Spi1RxFifoCtrlReg[7:0];
+                        Spi1TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg1_i[23:16];
+                        end
+						Spi1RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg1_i[7:0];
 						end
+                        Spi1RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg1_i[23:16];
+                        end
 						Spi1TxFifo : begin 
 							ansReg = Spi1TxFifoReg[7:0];
 						end
@@ -1378,12 +1504,18 @@ always @(*) begin
 						Spi2CsCtrlAddr : begin 
 							ansReg = Spi2CsCtrlReg[7:0];
 						end
-						Spi2TxFifoCtrlAddr : begin 
-							ansReg = Spi2TxFifoCtrlReg[7:0];
+						Spi2TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg2_i[7:0];
 						end
-						Spi2RxFifoCtrlAddr : begin 
-							ansReg = Spi2RxFifoCtrlReg[7:0];
+                        Spi2TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg2_i[23:16];
+                        end
+						Spi2RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg2_i[7:0];
 						end
+                        Spi2RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg2_i[23:16];
+                        end
 						Spi2TxFifo : begin 
 							ansReg = Spi2TxFifoReg[7:0];
 						end
@@ -1402,12 +1534,18 @@ always @(*) begin
 						Spi3CsCtrlAddr : begin 
 							ansReg = Spi3CsCtrlReg[7:0];
 						end
-						Spi3TxFifoCtrlAddr : begin 
-							ansReg = Spi3TxFifoCtrlReg[7:0];
+						Spi3TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg3_i[7:0];
 						end
-						Spi3RxFifoCtrlAddr : begin 
-							ansReg = Spi3RxFifoCtrlReg[7:0];
+                        Spi3TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg3_i[23:16];
+                        end
+						Spi3RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg3_i[7:0];
 						end
+                        Spi3RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg3_i[23:16];
+                        end
 						Spi3TxFifo : begin 
 							ansReg = Spi3TxFifoReg[7:0];
 						end
@@ -1426,12 +1564,18 @@ always @(*) begin
 						Spi4CsCtrlAddr : begin 
 							ansReg = Spi4CsCtrlReg[7:0];
 						end
-						Spi4TxFifoCtrlAddr : begin 
-							ansReg = Spi4TxFifoCtrlReg[7:0];
+						Spi4TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg4_i[7:0];
 						end
-						Spi4RxFifoCtrlAddr : begin 
-							ansReg = Spi4RxFifoCtrlReg[7:0];
+                        Spi4TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg4_i[23:16];
+                        end
+						Spi4RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg4_i[7:0];
 						end
+                        Spi4RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg4_i[23:16];
+                        end
 						Spi4TxFifo : begin 
 							ansReg = Spi4TxFifoReg[7:0];
 						end
@@ -1450,12 +1594,18 @@ always @(*) begin
 						Spi5CsCtrlAddr : begin 
 							ansReg = Spi5CsCtrlReg[7:0];
 						end
-						Spi5TxFifoCtrlAddr : begin 
-							ansReg = Spi5TxFifoCtrlReg[7:0];
+						Spi5TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg5_i[7:0];
 						end
-						Spi5RxFifoCtrlAddr : begin 
-							ansReg = Spi5RxFifoCtrlReg[7:0];
+                        Spi5TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg5_i[23:16];
+                        end
+						Spi5RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg5_i[7:0];
 						end
+                        Spi5RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg5_i[23:16];
+                        end
 						Spi5TxFifo : begin 
 							ansReg = Spi5TxFifoReg[7:0];
 						end
@@ -1474,12 +1624,18 @@ always @(*) begin
 						Spi6CsCtrlAddr : begin 
 							ansReg = Spi6CsCtrlReg[7:0];
 						end
-						Spi6TxFifoCtrlAddr : begin 
-							ansReg = Spi6TxFifoCtrlReg[7:0];
+						Spi6TxFifoCtrlAddrLsb : begin 
+							ansReg = TxFifoCtrlReg6_i[7:0];
 						end
-						Spi6RxFifoCtrlAddr : begin 
-							ansReg = Spi6RxFifoCtrlReg[7:0];
+                        Spi6TxFifoCtrlAddrMsb : begin 
+                            ansReg = TxFifoCtrlReg6_i[23:16];
+                        end
+						Spi6RxFifoCtrlAddrLsb : begin 
+							ansReg = RxFifoCtrlReg6_i[7:0];
 						end
+                        Spi6RxFifoCtrlAddrMsb : begin 
+                            ansReg = RxFifoCtrlReg6_i[23:16];
+                        end
 						Spi6TxFifo : begin 
 							ansReg = Spi6TxFifoReg[7:0];
 						end