Prechádzať zdrojové kódy

Обновил заголовок и расширил FIFO.

Anatoliy Chigirinskiy 1 rok pred
rodič
commit
f57c1cb943
21 zmenil súbory, kde vykonal 1366 pridanie a 933 odobranie
  1. 12 13
      src/src/PacketAnalyzer4Mosi/PacketAnalyzer4MosiCp2444v1.v
  2. 2 2
      src/src/WrapFifoChain/FifoShReg16/FifoShReg16.ipc
  3. 155 119
      src/src/WrapFifoChain/FifoShReg16/FifoShReg16.v
  4. 190 85
      src/src/WrapFifoChain/FifoShReg16/FifoShReg16.vo
  5. 1 1
      src/src/WrapFifoChain/FifoShReg16/FifoShReg16_tmp.v
  6. 155 119
      src/src/WrapFifoChain/FifoShReg16/temp/FIFOHS/FifoShReg16.vg
  7. 164 124
      src/src/WrapFifoChain/FifoShReg16/temp/FIFOHS/FifoShReg16_syn.rpt.html
  8. 3 3
      src/src/WrapFifoChain/FifoShReg16/temp/FIFOHS/FifoShReg16_syn_resource.html
  9. 1 1
      src/src/WrapFifoChain/FifoShReg16/temp/FIFOHS/FifoShReg16_syn_rsc.xml
  10. 1 1
      src/src/WrapFifoChain/FifoShReg16/temp/FIFOHS/FifoShReg16_tmp.v
  11. 4 4
      src/src/WrapFifoChain/FifoShReg16/temp/FIFOHS/fifo_parameter.v
  12. 2 2
      src/src/WrapFifoChain/FifoShReg8/FifoShReg8.ipc
  13. 156 120
      src/src/WrapFifoChain/FifoShReg8/FifoShReg8.v
  14. 190 85
      src/src/WrapFifoChain/FifoShReg8/FifoShReg8.vo
  15. 1 1
      src/src/WrapFifoChain/FifoShReg8/FifoShReg8_tmp.v
  16. 156 120
      src/src/WrapFifoChain/FifoShReg8/temp/FIFOHS/FifoShReg8.vg
  17. 164 124
      src/src/WrapFifoChain/FifoShReg8/temp/FIFOHS/FifoShReg8_syn.rpt.html
  18. 3 3
      src/src/WrapFifoChain/FifoShReg8/temp/FIFOHS/FifoShReg8_syn_resource.html
  19. 1 1
      src/src/WrapFifoChain/FifoShReg8/temp/FIFOHS/FifoShReg8_syn_rsc.xml
  20. 1 1
      src/src/WrapFifoChain/FifoShReg8/temp/FIFOHS/FifoShReg8_tmp.v
  21. 4 4
      src/src/WrapFifoChain/FifoShReg8/temp/FIFOHS/fifo_parameter.v

+ 12 - 13
src/src/PacketAnalyzer4Mosi/PacketAnalyzer4MosiCp2444v1.v

@@ -64,22 +64,21 @@ wire [5:0] selector;
 //==========================================
 // Parameters
 //==========================================
-localparam [22:0] DECREMENT_GPIO = 23'h400000; //23'b100 0000 0000 0000 0000 0000
-localparam [22:0] DECREMENT_SW_P1 = 23'h200000; //23'b010 0000 0000 0000 0000 0000
-localparam [22:0] DECREMENT_ATT_P1 = 23'h100000; //23'b001 0000 0000 0000 0000 0000
-localparam [22:0] DECREMENT_ATT_P2 = 23'h80000; //23'b000 1000 0000 0000 0000 0000
-localparam [22:0] DECREMENT_ATT_P3 = 23'h40000; //23'b000 0100 0000 0000 0000 0000
-localparam [22:0] DECREMENT_ATT_P4 = 23'h20000; //23'b000 0010 0000 0000 0000 0000
- 
+localparam [22:0] DECREMENT_GPIO = 23'h100000; //23'b001 0000 0000 0000 0000 0000
+localparam [22:0] DECREMENT_SW_P1 = 23'h20000; //23'b000 0010 0000 0000 0000 0000
+localparam [22:0] DECREMENT_ATT_P1 = 23'h4000; //23'b000 0000 1000 0000 0000 0000
+localparam [22:0] DECREMENT_ATT_P2 = 23'h800; //23'b000 0000 0000 1000 0000 0000
+localparam [22:0] DECREMENT_ATT_P3 = 23'h100; //23'b000 0000 0000 0001 0000 0000
+localparam [22:0] DECREMENT_ATT_P4 = 23'h20; //23'b000 0000 0000 0000 0010 0000
 //==========================================
 // Assignments
 //==========================================
-assign gpioOr = |dataSpiReg[22];
-assign swP1Or = |dataSpiReg[21];
-assign attP1Or = |dataSpiReg[20];
-assign attP2Or = |dataSpiReg[19];
-assign attP3Or = |dataSpiReg[18];
-assign attP4Or = |dataSpiReg[17];
+assign gpioOr = |dataSpiReg[21:20];
+assign swP1Or = |dataSpiReg[18:17];
+assign attP1Or = |dataSpiReg[15:14];
+assign attP2Or = |dataSpiReg[12:11];
+assign attP3Or = |dataSpiReg[9:8];
+assign attP4Or = |dataSpiReg[6:5];
 
 assign selector = {gpioOr, swP1Or, attP1Or, attP2Or, attP3Or, attP4Or};
 

+ 2 - 2
src/src/WrapFifoChain/FifoShReg16/FifoShReg16.ipc

@@ -25,11 +25,11 @@ OutputRegistersSelected=false
 REG=false
 ReadDataNum=false
 ReadDataWidth=16
-ReadDepth=2
+ReadDepth=4
 ResetSynchronization=true
 SSRAM=false
 StandardFIFO=false
 Synthesis_tool=GowinSynthesis
 WriteDataNum=false
 WriteDataWidth=16
-WriteDepth=2
+WriteDepth=4

+ 155 - 119
src/src/WrapFifoChain/FifoShReg16/FifoShReg16.v

@@ -1,7 +1,7 @@
 //
 //Written by GowinSynthesis
 //Tool Version "V1.9.9.03 (64-bit)"
-//Thu Nov 28 11:58:21 2024
+//Wed Dec 11 18:12:33 2024
 
 //Source file index table:
 //file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
@@ -17,129 +17,165 @@
 `pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
 `pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
 `pragma protect key_block
-ouXdwpgS7NqgCN+Q7dXFEzt2K3NQUqGGOhojIy7Qh3tlkd8CfmlBDVlcm/NzVwf3wsbrlviyBrV8
-hxF42FZC5RO0Ngdbq9XON+3aJHwY78ZBdQXmmOoykv+/sOjK7AJllO6BJl5ExnI9PuTU6INhKV4I
-PWtZjpZdwuCVyhlVwxsUdZRqgCfCpJB4Cvept0/8pOdyqFwuxB4zHPB52WT7un7fLXL5bX1W7fdu
-2xwyLhrx90sAZJYnPn6byNygovTilovj4O36+fiODfpjkiUdk9noRU9GW5D71HwfG+9Ux9mEfKRN
-vn+qjfDch5LzEIV4t4Lf3yywUW4CXFBNDdMUGQ==
+EdSuByY19m9xPKm75w2J/zRa6NbzCqoA9BI9ggApZOOkGbJv5LxV3TEZZOau0Iz2+6DR9Bn5Vma5
+r5t95Z5EpSpLzzeqFp+g5uwIzZ9ViT3pOCOHwwtf5Lwr2NYvRLfSLU4Ts/6TWhm/0ttZuSQ8gioV
+OlDCCT/5JeGErh9rO6Bb5U9qfiPCv2AZZ6DYbj2GhP+wvRrEzeHdTrvCDhsaEsbNjCsqLa8Jr/rK
+Hm2Xkf+uANO3DlQK2V3Wlb9A49ozYunCBMYfEzpRntAfXhApEYBlqiUCDq/tfFex+kPqdPmOyscR
+GR4X2fnd5l3q7jAUMgo+jjDHE8W5vdph2o9ztA==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=6368)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=8432)
 `pragma protect data_keyowner="default-ip-vendor"
 `pragma protect data_keyname="default-ip-key"
 `pragma protect data_method="aes128-cfb"
 `pragma protect data_block
-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
+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
 `pragma protect end_protected
 module FifoShReg16 (
   Data,

+ 190 - 85
src/src/WrapFifoChain/FifoShReg16/FifoShReg16.vo

@@ -2,7 +2,7 @@
 //All rights reserved.
 //File Title: Post-PnR Simulation Model file
 //Tool Version: V1.9.9.03 (64-bit)
-//Created Time: Thu Nov 28 11:58:21 2024
+//Created Time: Wed Dec 11 18:12:33 2024
 
 `timescale 100 ps/100 ps
 module FifoShReg16(
@@ -36,34 +36,39 @@ wire Reset;
 wire VCC;
 wire WrClk;
 wire WrEn;
-wire \fifo_inst/n20_5 ;
-wire \fifo_inst/n26_4 ;
-wire \fifo_inst/n217_4 ;
-wire \fifo_inst/rempty_val ;
-wire \fifo_inst/wfull_val_7 ;
+wire \fifo_inst/n21_5 ;
+wire \fifo_inst/n27_4 ;
 wire \fifo_inst/wfull_val1 ;
 wire \fifo_inst/wfull_val1_0 ;
 wire \fifo_inst/Full_1 ;
 wire \fifo_inst/Equal.wbinnext_0_7 ;
-wire \fifo_inst/rempty_val_8 ;
+wire \fifo_inst/wfull_val_4 ;
+wire \fifo_inst/wfull_val_5 ;
+wire \fifo_inst/n255_6 ;
+wire \fifo_inst/wfull_val ;
+wire \fifo_inst/rempty_val ;
 wire \fifo_inst/wfull_val1_2 ;
 wire \fifo_inst/wfull_val1_3 ;
 wire \fifo_inst/Full_1_2 ;
 wire \fifo_inst/Full_2 ;
+wire \fifo_inst/n94_1_SUM ;
+wire \fifo_inst/n94_3 ;
+wire \fifo_inst/n95_1_SUM ;
+wire \fifo_inst/n95_3 ;
 wire \fifo_inst/n4_6 ;
 wire \fifo_inst/n9_6 ;
-wire [0:0] \fifo_inst/Equal.rgraynext ;
-wire [0:0] \fifo_inst/Equal.wgraynext ;
-wire [1:0] \fifo_inst/rbin_num_next ;
-wire [1:1] \fifo_inst/Equal.wbinnext ;
+wire [1:0] \fifo_inst/Equal.rgraynext ;
+wire [1:0] \fifo_inst/Equal.wgraynext ;
+wire [2:0] \fifo_inst/rbin_num_next ;
+wire [2:1] \fifo_inst/Equal.wbinnext ;
 wire [1:0] \fifo_inst/reset_r ;
 wire [1:0] \fifo_inst/reset_w ;
-wire [1:0] \fifo_inst/rbin_num ;
-wire [1:0] \fifo_inst/Equal.rq1_wptr ;
-wire [1:0] \fifo_inst/Equal.rq2_wptr ;
-wire [0:0] \fifo_inst/rptr ;
-wire [1:0] \fifo_inst/wptr ;
-wire [0:0] \fifo_inst/Equal.wbin ;
+wire [2:0] \fifo_inst/rbin_num ;
+wire [2:0] \fifo_inst/Equal.rq1_wptr ;
+wire [2:0] \fifo_inst/Equal.rq2_wptr ;
+wire [1:0] \fifo_inst/rptr ;
+wire [2:0] \fifo_inst/wptr ;
+wire [1:0] \fifo_inst/Equal.wbin ;
 wire [31:16] \fifo_inst/DO ;
 VCC VCC_cZ (
   .V(VCC)
@@ -74,57 +79,51 @@ GND GND_cZ (
 GSR GSR (
 	.GSRI(VCC)
 );
-LUT4 \fifo_inst/n20_s1  (
+LUT4 \fifo_inst/n21_s1  (
 	.I0(\fifo_inst/Full_2 ),
 	.I1(\fifo_inst/Full_1_2 ),
 	.I2(\fifo_inst/Full_1 ),
 	.I3(WrEn),
-	.F(\fifo_inst/n20_5 )
+	.F(\fifo_inst/n21_5 )
 );
-defparam \fifo_inst/n20_s1 .INIT=16'h5300;
-LUT3 \fifo_inst/n26_s1  (
+defparam \fifo_inst/n21_s1 .INIT=16'h5300;
+LUT3 \fifo_inst/n27_s1  (
 	.I0(RdEn),
 	.I1(Empty),
 	.I2(\fifo_inst/rempty_val ),
-	.F(\fifo_inst/n26_4 )
+	.F(\fifo_inst/n27_4 )
 );
-defparam \fifo_inst/n26_s1 .INIT=8'h0E;
+defparam \fifo_inst/n27_s1 .INIT=8'h0E;
 LUT3 \fifo_inst/Equal.rgraynext_0_s0  (
-	.I0(\fifo_inst/rbin_num [0]),
-	.I1(\fifo_inst/rbin_num_next [0]),
+	.I0(\fifo_inst/rbin_num_next [0]),
+	.I1(\fifo_inst/rbin_num [0]),
 	.I2(\fifo_inst/rbin_num [1]),
 	.F(\fifo_inst/Equal.rgraynext [0])
 );
 defparam \fifo_inst/Equal.rgraynext_0_s0 .INIT=8'h1E;
+LUT4 \fifo_inst/Equal.rgraynext_1_s0  (
+	.I0(\fifo_inst/rbin_num_next [0]),
+	.I1(\fifo_inst/rbin_num [0]),
+	.I2(\fifo_inst/rbin_num [1]),
+	.I3(\fifo_inst/rbin_num [2]),
+	.F(\fifo_inst/Equal.rgraynext [1])
+);
+defparam \fifo_inst/Equal.rgraynext_1_s0 .INIT=16'h0BF4;
 LUT3 \fifo_inst/Equal.wgraynext_0_s0  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
-	.I2(\fifo_inst/wptr [1]),
+	.I0(\fifo_inst/n21_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.I2(\fifo_inst/Equal.wbin [1]),
 	.F(\fifo_inst/Equal.wgraynext [0])
 );
 defparam \fifo_inst/Equal.wgraynext_0_s0 .INIT=8'h1E;
-LUT2 \fifo_inst/n217_s1  (
-	.I0(\fifo_inst/reset_w [1]),
-	.I1(\fifo_inst/wfull_val_7 ),
-	.F(\fifo_inst/n217_4 )
-);
-defparam \fifo_inst/n217_s1 .INIT=4'h4;
-LUT4 \fifo_inst/rempty_val_s3  (
-	.I0(\fifo_inst/Equal.rq2_wptr [1]),
-	.I1(\fifo_inst/rempty_val_8 ),
-	.I2(\fifo_inst/Equal.rq2_wptr [0]),
-	.I3(\fifo_inst/rbin_num_next [0]),
-	.F(\fifo_inst/rempty_val )
-);
-defparam \fifo_inst/rempty_val_s3 .INIT=16'h4221;
-LUT4 \fifo_inst/wfull_val_s3  (
-	.I0(\fifo_inst/wptr [0]),
-	.I1(\fifo_inst/wptr [1]),
-	.I2(\fifo_inst/rbin_num [1]),
-	.I3(\fifo_inst/rptr [0]),
-	.F(\fifo_inst/wfull_val_7 )
-);
-defparam \fifo_inst/wfull_val_s3 .INIT=16'h1428;
+LUT4 \fifo_inst/Equal.wgraynext_1_s0  (
+	.I0(\fifo_inst/n21_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.I2(\fifo_inst/Equal.wbin [1]),
+	.I3(\fifo_inst/wptr [2]),
+	.F(\fifo_inst/Equal.wgraynext [1])
+);
+defparam \fifo_inst/Equal.wgraynext_1_s0 .INIT=16'h07F8;
 LUT3 \fifo_inst/wfull_val1_s9  (
 	.I0(\fifo_inst/wfull_val1_3 ),
 	.I1(\fifo_inst/wfull_val1_2 ),
@@ -132,13 +131,14 @@ LUT3 \fifo_inst/wfull_val1_s9  (
 	.F(\fifo_inst/wfull_val1 )
 );
 defparam \fifo_inst/wfull_val1_s9 .INIT=8'hAC;
-LUT3 \fifo_inst/wfull_val1_s10  (
-	.I0(\fifo_inst/wfull_val_7 ),
-	.I1(\fifo_inst/wfull_val1_0 ),
-	.I2(\fifo_inst/reset_w [1]),
+LUT4 \fifo_inst/wfull_val1_s10  (
+	.I0(\fifo_inst/wfull_val_4 ),
+	.I1(\fifo_inst/wfull_val_5 ),
+	.I2(\fifo_inst/wfull_val1_0 ),
+	.I3(\fifo_inst/reset_w [1]),
 	.F(\fifo_inst/wfull_val1_0 )
 );
-defparam \fifo_inst/wfull_val1_s10 .INIT=8'h0E;
+defparam \fifo_inst/wfull_val1_s10 .INIT=16'h00F8;
 LUT3 \fifo_inst/Full_d_s  (
 	.I0(\fifo_inst/Full_2 ),
 	.I1(\fifo_inst/Full_1_2 ),
@@ -146,13 +146,14 @@ LUT3 \fifo_inst/Full_d_s  (
 	.F(Full)
 );
 defparam \fifo_inst/Full_d_s .INIT=8'hAC;
-LUT3 \fifo_inst/Full_s8  (
-	.I0(\fifo_inst/wfull_val_7 ),
-	.I1(\fifo_inst/Full_1 ),
-	.I2(\fifo_inst/reset_w [1]),
+LUT4 \fifo_inst/Full_s8  (
+	.I0(\fifo_inst/wfull_val_4 ),
+	.I1(\fifo_inst/wfull_val_5 ),
+	.I2(\fifo_inst/Full_1 ),
+	.I3(\fifo_inst/reset_w [1]),
 	.F(\fifo_inst/Full_1 )
 );
-defparam \fifo_inst/Full_s8 .INIT=8'h0E;
+defparam \fifo_inst/Full_s8 .INIT=16'h00F8;
 LUT3 \fifo_inst/rbin_num_next_0_s5  (
 	.I0(Empty),
 	.I1(RdEn),
@@ -160,34 +161,78 @@ LUT3 \fifo_inst/rbin_num_next_0_s5  (
 	.F(\fifo_inst/rbin_num_next [0])
 );
 defparam \fifo_inst/rbin_num_next_0_s5 .INIT=8'hB4;
-LUT3 \fifo_inst/rbin_num_next_1_s2  (
+LUT3 \fifo_inst/rbin_num_next_1_s5  (
 	.I0(\fifo_inst/rbin_num_next [0]),
 	.I1(\fifo_inst/rbin_num [0]),
 	.I2(\fifo_inst/rbin_num [1]),
 	.F(\fifo_inst/rbin_num_next [1])
 );
-defparam \fifo_inst/rbin_num_next_1_s2 .INIT=8'hB4;
+defparam \fifo_inst/rbin_num_next_1_s5 .INIT=8'hB4;
+LUT4 \fifo_inst/rbin_num_next_2_s2  (
+	.I0(\fifo_inst/rbin_num_next [0]),
+	.I1(\fifo_inst/rbin_num [0]),
+	.I2(\fifo_inst/rbin_num [1]),
+	.I3(\fifo_inst/rbin_num [2]),
+	.F(\fifo_inst/rbin_num_next [2])
+);
+defparam \fifo_inst/rbin_num_next_2_s2 .INIT=16'hBF40;
 LUT2 \fifo_inst/Equal.wbinnext_0_s3  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
+	.I0(\fifo_inst/n21_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
 	.F(\fifo_inst/Equal.wbinnext_0_7 )
 );
 defparam \fifo_inst/Equal.wbinnext_0_s3 .INIT=4'h6;
-LUT3 \fifo_inst/Equal.wbinnext_1_s2  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
-	.I2(\fifo_inst/wptr [1]),
+LUT3 \fifo_inst/Equal.wbinnext_1_s3  (
+	.I0(\fifo_inst/n21_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.I2(\fifo_inst/Equal.wbin [1]),
 	.F(\fifo_inst/Equal.wbinnext [1])
 );
-defparam \fifo_inst/Equal.wbinnext_1_s2 .INIT=8'h78;
-LUT4 \fifo_inst/rempty_val_s4  (
-	.I0(\fifo_inst/Equal.rq2_wptr [0]),
-	.I1(\fifo_inst/Equal.rq2_wptr [1]),
-	.I2(\fifo_inst/rbin_num [1]),
-	.I3(\fifo_inst/rbin_num [0]),
-	.F(\fifo_inst/rempty_val_8 )
+defparam \fifo_inst/Equal.wbinnext_1_s3 .INIT=8'h78;
+LUT4 \fifo_inst/Equal.wbinnext_2_s2  (
+	.I0(\fifo_inst/n21_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.I2(\fifo_inst/Equal.wbin [1]),
+	.I3(\fifo_inst/wptr [2]),
+	.F(\fifo_inst/Equal.wbinnext [2])
+);
+defparam \fifo_inst/Equal.wbinnext_2_s2 .INIT=16'h7F80;
+LUT2 \fifo_inst/wfull_val_s1  (
+	.I0(\fifo_inst/wptr [2]),
+	.I1(\fifo_inst/rbin_num [2]),
+	.F(\fifo_inst/wfull_val_4 )
+);
+defparam \fifo_inst/wfull_val_s1 .INIT=4'h6;
+LUT4 \fifo_inst/wfull_val_s2  (
+	.I0(\fifo_inst/wptr [0]),
+	.I1(\fifo_inst/rptr [0]),
+	.I2(\fifo_inst/wptr [1]),
+	.I3(\fifo_inst/rptr [1]),
+	.F(\fifo_inst/wfull_val_5 )
+);
+defparam \fifo_inst/wfull_val_s2 .INIT=16'h0990;
+LUT4 \fifo_inst/n255_s2  (
+	.I0(\fifo_inst/wptr [2]),
+	.I1(\fifo_inst/rbin_num [2]),
+	.I2(\fifo_inst/reset_w [1]),
+	.I3(\fifo_inst/wfull_val_5 ),
+	.F(\fifo_inst/n255_6 )
+);
+defparam \fifo_inst/n255_s2 .INIT=16'h0600;
+LUT3 \fifo_inst/wfull_val_s3  (
+	.I0(\fifo_inst/wptr [2]),
+	.I1(\fifo_inst/rbin_num [2]),
+	.I2(\fifo_inst/wfull_val_5 ),
+	.F(\fifo_inst/wfull_val )
+);
+defparam \fifo_inst/wfull_val_s3 .INIT=8'h60;
+LUT3 \fifo_inst/rempty_val_s2  (
+	.I0(\fifo_inst/rbin_num_next [2]),
+	.I1(\fifo_inst/Equal.rq2_wptr [2]),
+	.I2(\fifo_inst/n95_3 ),
+	.F(\fifo_inst/rempty_val )
 );
-defparam \fifo_inst/rempty_val_s4 .INIT=16'h871E;
+defparam \fifo_inst/rempty_val_s2 .INIT=8'h09;
 DFFP \fifo_inst/reset_r_0_s0  (
 	.D(GND),
 	.CLK(\fifo_inst/n4_6 ),
@@ -209,6 +254,13 @@ DFFP \fifo_inst/reset_w_0_s0  (
 	.Q(\fifo_inst/reset_w [0])
 );
 defparam \fifo_inst/reset_w_0_s0 .INIT=1'b1;
+DFFC \fifo_inst/rbin_num_2_s0  (
+	.D(\fifo_inst/rbin_num_next [2]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rbin_num [2])
+);
+defparam \fifo_inst/rbin_num_2_s0 .INIT=1'b0;
 DFFC \fifo_inst/rbin_num_1_s0  (
 	.D(\fifo_inst/rbin_num_next [1]),
 	.CLK(RdClk),
@@ -223,6 +275,13 @@ DFFC \fifo_inst/rbin_num_0_s0  (
 	.Q(\fifo_inst/rbin_num [0])
 );
 defparam \fifo_inst/rbin_num_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.rq1_wptr_2_s0  (
+	.D(\fifo_inst/wptr [2]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/Equal.rq1_wptr [2])
+);
+defparam \fifo_inst/Equal.rq1_wptr_2_s0 .INIT=1'b0;
 DFFC \fifo_inst/Equal.rq1_wptr_1_s0  (
 	.D(\fifo_inst/wptr [1]),
 	.CLK(RdClk),
@@ -237,6 +296,13 @@ DFFC \fifo_inst/Equal.rq1_wptr_0_s0  (
 	.Q(\fifo_inst/Equal.rq1_wptr [0])
 );
 defparam \fifo_inst/Equal.rq1_wptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.rq2_wptr_2_s0  (
+	.D(\fifo_inst/Equal.rq1_wptr [2]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/Equal.rq2_wptr [2])
+);
+defparam \fifo_inst/Equal.rq2_wptr_2_s0 .INIT=1'b0;
 DFFC \fifo_inst/Equal.rq2_wptr_1_s0  (
 	.D(\fifo_inst/Equal.rq1_wptr [1]),
 	.CLK(RdClk),
@@ -251,6 +317,13 @@ DFFC \fifo_inst/Equal.rq2_wptr_0_s0  (
 	.Q(\fifo_inst/Equal.rq2_wptr [0])
 );
 defparam \fifo_inst/Equal.rq2_wptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/rptr_1_s0  (
+	.D(\fifo_inst/Equal.rgraynext [1]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rptr [1])
+);
+defparam \fifo_inst/rptr_1_s0 .INIT=1'b0;
 DFFC \fifo_inst/rptr_0_s0  (
 	.D(\fifo_inst/Equal.rgraynext [0]),
 	.CLK(RdClk),
@@ -258,8 +331,15 @@ DFFC \fifo_inst/rptr_0_s0  (
 	.Q(\fifo_inst/rptr [0])
 );
 defparam \fifo_inst/rptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_2_s0  (
+	.D(\fifo_inst/Equal.wbinnext [2]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wptr [2])
+);
+defparam \fifo_inst/wptr_2_s0 .INIT=1'b0;
 DFFC \fifo_inst/wptr_1_s0  (
-	.D(\fifo_inst/Equal.wbinnext [1]),
+	.D(\fifo_inst/Equal.wgraynext [1]),
 	.CLK(WrClk),
 	.CLEAR(\fifo_inst/reset_w [1]),
 	.Q(\fifo_inst/wptr [1])
@@ -272,6 +352,13 @@ DFFC \fifo_inst/wptr_0_s0  (
 	.Q(\fifo_inst/wptr [0])
 );
 defparam \fifo_inst/wptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.wbin_1_s0  (
+	.D(\fifo_inst/Equal.wbinnext [1]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/Equal.wbin [1])
+);
+defparam \fifo_inst/Equal.wbin_1_s0 .INIT=1'b0;
 DFFC \fifo_inst/Equal.wbin_0_s0  (
 	.D(\fifo_inst/Equal.wbinnext_0_7 ),
 	.CLK(WrClk),
@@ -294,16 +381,16 @@ DFFP \fifo_inst/reset_r_1_s0  (
 );
 defparam \fifo_inst/reset_r_1_s0 .INIT=1'b1;
 DFFC \fifo_inst/wfull_val1_s0  (
-	.D(\fifo_inst/wfull_val_7 ),
+	.D(\fifo_inst/wfull_val ),
 	.CLK(WrClk),
 	.CLEAR(\fifo_inst/reset_w [1]),
 	.Q(\fifo_inst/wfull_val1_2 )
 );
 defparam \fifo_inst/wfull_val1_s0 .INIT=1'b0;
 DFFP \fifo_inst/wfull_val1_s1  (
-	.D(\fifo_inst/wfull_val_7 ),
+	.D(\fifo_inst/wfull_val ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n217_4 ),
+	.PRESET(\fifo_inst/n255_6 ),
 	.Q(\fifo_inst/wfull_val1_3 )
 );
 defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
@@ -317,23 +404,23 @@ defparam \fifo_inst/Full_s0 .INIT=1'b0;
 DFFP \fifo_inst/Full_s1  (
 	.D(\fifo_inst/wfull_val1 ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n217_4 ),
+	.PRESET(\fifo_inst/n255_6 ),
 	.Q(\fifo_inst/Full_2 )
 );
 defparam \fifo_inst/Full_s1 .INIT=1'b1;
 SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s  (
 	.CLKA(WrClk),
-	.CEA(\fifo_inst/n20_5 ),
+	.CEA(\fifo_inst/n21_5 ),
 	.RESETA(GND),
 	.CLKB(RdClk),
-	.CEB(\fifo_inst/n26_4 ),
+	.CEB(\fifo_inst/n27_4 ),
 	.RESETB(\fifo_inst/reset_r [1]),
 	.OCE(GND),
 	.BLKSELA({GND, GND, GND}),
 	.BLKSELB({GND, GND, GND}),
 	.DI({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, Data[15:0]}),
-	.ADA({GND, GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/Equal.wbin [0], GND, GND, VCC, VCC}),
-	.ADB({GND, GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num_next [0], GND, GND, GND, GND}),
+	.ADA({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/Equal.wbin [1:0], GND, GND, VCC, VCC}),
+	.ADB({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num_next [1:0], GND, GND, GND, GND}),
 	.DO({\fifo_inst/DO [31:16], Q[15:0]})
 );
 defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .READ_MODE=1'b0;
@@ -342,6 +429,24 @@ defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BIT_WIDTH_1=16;
 defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .RESET_MODE="ASYNC";
 defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BLK_SEL_0=3'b000;
 defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BLK_SEL_1=3'b000;
+ALU \fifo_inst/n94_s0  (
+	.I0(\fifo_inst/Equal.rgraynext [0]),
+	.I1(\fifo_inst/Equal.rq2_wptr [0]),
+	.I3(GND),
+	.CIN(GND),
+	.COUT(\fifo_inst/n94_3 ),
+	.SUM(\fifo_inst/n94_1_SUM )
+);
+defparam \fifo_inst/n94_s0 .ALU_MODE=3;
+ALU \fifo_inst/n95_s0  (
+	.I0(\fifo_inst/Equal.rgraynext [1]),
+	.I1(\fifo_inst/Equal.rq2_wptr [1]),
+	.I3(GND),
+	.CIN(\fifo_inst/n94_3 ),
+	.COUT(\fifo_inst/n95_3 ),
+	.SUM(\fifo_inst/n95_1_SUM )
+);
+defparam \fifo_inst/n95_s0 .ALU_MODE=3;
 INV \fifo_inst/n4_s2  (
 	.I(RdClk),
 	.O(\fifo_inst/n4_6 )

+ 1 - 1
src/src/WrapFifoChain/FifoShReg16/FifoShReg16_tmp.v

@@ -4,7 +4,7 @@
 //Tool Version: V1.9.9.03 (64-bit)
 //Part Number: GW1N-UV9QN88C6/I5
 //Device: GW1N-9
-//Created Time: Thu Nov 28 11:58:21 2024
+//Created Time: Wed Dec 11 18:12:33 2024
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------

+ 155 - 119
src/src/WrapFifoChain/FifoShReg16/temp/FIFOHS/FifoShReg16.vg

@@ -1,7 +1,7 @@
 //
 //Written by GowinSynthesis
 //Tool Version "V1.9.9.03 (64-bit)"
-//Thu Nov 28 11:58:21 2024
+//Wed Dec 11 18:12:33 2024
 
 //Source file index table:
 //file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
@@ -17,129 +17,165 @@
 `pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
 `pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
 `pragma protect key_block
-ouXdwpgS7NqgCN+Q7dXFEzt2K3NQUqGGOhojIy7Qh3tlkd8CfmlBDVlcm/NzVwf3wsbrlviyBrV8
-hxF42FZC5RO0Ngdbq9XON+3aJHwY78ZBdQXmmOoykv+/sOjK7AJllO6BJl5ExnI9PuTU6INhKV4I
-PWtZjpZdwuCVyhlVwxsUdZRqgCfCpJB4Cvept0/8pOdyqFwuxB4zHPB52WT7un7fLXL5bX1W7fdu
-2xwyLhrx90sAZJYnPn6byNygovTilovj4O36+fiODfpjkiUdk9noRU9GW5D71HwfG+9Ux9mEfKRN
-vn+qjfDch5LzEIV4t4Lf3yywUW4CXFBNDdMUGQ==
+EdSuByY19m9xPKm75w2J/zRa6NbzCqoA9BI9ggApZOOkGbJv5LxV3TEZZOau0Iz2+6DR9Bn5Vma5
+r5t95Z5EpSpLzzeqFp+g5uwIzZ9ViT3pOCOHwwtf5Lwr2NYvRLfSLU4Ts/6TWhm/0ttZuSQ8gioV
+OlDCCT/5JeGErh9rO6Bb5U9qfiPCv2AZZ6DYbj2GhP+wvRrEzeHdTrvCDhsaEsbNjCsqLa8Jr/rK
+Hm2Xkf+uANO3DlQK2V3Wlb9A49ozYunCBMYfEzpRntAfXhApEYBlqiUCDq/tfFex+kPqdPmOyscR
+GR4X2fnd5l3q7jAUMgo+jjDHE8W5vdph2o9ztA==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=6368)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=8432)
 `pragma protect data_keyowner="default-ip-vendor"
 `pragma protect data_keyname="default-ip-key"
 `pragma protect data_method="aes128-cfb"
 `pragma protect data_block
-je9kqKNJxXejRCK6Cr3x4VQHRYqlYUAmPtLAiDxZwptaLe9wvgnid0PXFL7qH26i1hAmEk5zHxdK
-4DyjsT1JQP04xXlbnk27W6Aiyo3dFQ2au+5pV1HPGJjOSRjRHpis2Y5kFvNA0L6UTPBSxaOpIwM0
-nqAePlfaoUy/4Ezk+PR8VjCbwkV63bF76PMw4IP5O2Hm2W4wy5U+9GILi4QJhfzrV0xtednIa2c1
-zBhhST4dGfvCb4IiTiEomWeTlb7AjtRPW9Yd3t+GEyVXHK+lDQT5/83oMsbCnx33Ewi5DOictRS4
-Jgnu9yOHPKWG4yAGnLh4me+uJabh4/sKAB8c8PvAwyHtEqL7n3IB7SlgD6wd50K/luy9H4ROOtNp
-S2WFP8ojNzOUtH9joFlu5CPEwwW1xiFtaSIXWSjNPCgwSqFiOx3jsLx8QLR8A196H/q1SO1ZfEgS
-FKWCPY3c2OOc4HKK8vvx7GJWIngfxqgAmW4Ndi5oBv4e+T8P41maeb/pkeHM6bPsdf7OkUivZOnD
-L3g96Dc9ywcuPfJwB7Jy6hic16W84uLfY9cCTil3QFXA3sAdeAmvT75PvJrkg7JdZA1wvMfKNGpp
-3Rjo7tG04rSSOTijVxbeTkDhC7ekLj4Im+S7RfOHUE76rdDWL1lr41PrBIOpdX62pfIANytsRgsP
-zqYybeoMKjJ7mCl+dTFtohnLA795ZAQmxyrhIZebzmv87yOquoxfcAeSYMIfrXEgoXX5OV6HL1iE
-d6BbxAWGyTqvxCbpNNcM98cvu3YiW+UR5dbJAxxc2adGef1o/pVEK9AW+O5gIjG+m4ZdNru32X+J
-eH4qxDQI7+nVW7ydFomowU1OS1Xcw1iKLj16RzYxl7NZQhs40ci60qCVDdA6jQKZUcnYYEKlE8qb
-8mRrhRy7lCar+XyjKtovIriK8NRb7o2glAbS2wI1y9JMgm4y2A/0yLIeKoU9wL8p/rhu3c2PqZsN
-RA3MSzQq9DNGKHdqFHkkMqO+BdJ7fyHIhLIj1VFbb1uTdRBMsfTMDDwF++swC3hGQwMvuwe9LLcD
-HndecN7JHifmdneQcCL46rmF6+Sh/gRI8eMk+EpnwMzDpXltyIHhvPsHKbZ53aoyFeovtPX6DEUc
-cdqlQopS6oqRwwg8QYSfmrFHV3KRbO6ZJXxQ6bMTzUyf8OPPD7ovtIMlso6nj8Ln5hVskvyif2Sn
-UlFfheIj+c6zZKmVTU2ykhH+7FmJ2Req8HOXtcUemwCSsl5+Qsswt1xP1QE0BN4WIahxOqR3oPt4
-RREVpQ7SXS9EwJdsrC4ihDlf6YkDlzXS3NqSbPQ8FyvvOJSZ03qzWgwDSaI4JJGzzyKz1PxtGOWv
-rmLQ60Vd8RKwtnKQ+mv5EvkUNw58IdXMj6+yqqeEencf4ycwdFzWl0T2QC/htplb/MNklFP6sfBJ
-Wcm9v+xiaS5n4AgClhCNiog7WSu4xYbBkXxVuY9eW9EBVcxyIi99/f0T4+E0je/yJDt/uex23sYJ
-UzHn85ZIy+QT+csg8EB7fGcnvQkCv3Yqt086KJTGXe8ECwQ0ZggsZlXkVzJUP/t+taHNL+bdVj+w
-JKG9Y6+hrazphYiSnaZXpY9BK2WHF4A7roiHmjdb9Ii9dht5QDCZuSYqos9HspHJQehlIRnbpGRB
-HZu23dDOB0/urFDtR99DG+zz/Th/rbuN388zCPt2YNCW1GkY86GUie7WCvgwqFUowCml/dNvKj1j
-vjM7Z7rx7HU59t0HbOXyFcSHIBh3JZ+qeWMP1azAl57ADHKmMM0i4/xW+37FoA/eTBgEpurhvl70
-k5PkW/Awa26lbP6QK1fCOmQU8s8d2AXKXORKwRuw25ytw8uSAPzOn42xHMTR7+a/51cP2Qki2EaM
-GFy0s1PDStXe7r3xAv0t2FnVQrhHivIMNIiUt5gPtH36w4TP8p3ftjUFwkAMQYmqHvjBDWa9rJjE
-MF74HR581af+vf1SicZfsIIdDEdjmmqVxhuNowI8tWaVAvnaHoKqBU/WCffibaYsOwHGzk4rK50k
-tNRo/pyIW56vrOhLS9Z+zO4jizQdaDqr/cHahORghmqzBio+AaLxV08mqPzBxBYhYbqwNKeXRj+o
-5sVRLsQF0zyJ7AaaML1NrMCDVnOB6Z00MfpZd0bQQ5B6hc7z2tFWCZLEyUr6Sm08w/n3PrApDI1b
-DHkJ+/P/uWL8zf19027qNWaoIxCOH8joasBVBj2Fl2dpx9/hfV4k5QTAVCc9jPGlYV9UCwIcR/yW
-NWDNEzdqigX+S+h5+qDwnMkX71QTK3uqtWhLZBXB3oQCdrE52yiCSlemvlr7gRuNfFmCI2dKpNvY
-ac2n0ILnrVX65v0s5Bm86MhpIX0J5en7EPtBFJmG8of+ngPl6Wh+Y+RLsKBfB4TrrxdcsaBi+Bdv
-d3N90oRx9aSe9Hx306oetEr++2XIEAJXuIL9UYR0FqfJ3vySB+iXnsefsyYOVKmGhqzrFmLJWNFk
-4IdxFEsRReevRM5jZ754djKWd/KVSrUiZazCd6oFFqva1P9QIebEm5ekAUFt00z2VQlrAXMEECx4
-yzoXmh2YwkZy7FfVtdWum0PLSHWa5KqfrhEqryyvG982jsfVjLN0Ps6BRKm3U62MbT8O80/2TnWk
-K4nohugqieQX1iLpHBK/R8Hcb9NYfkP4Zyvcuc2YDFCWmFKVXvfH8hs/wv3vmvPN1Zjt/O2YRA3v
-mztEalYLpl3b1HElJt5KDDIcYdJ5sX8RqVBrHOzm7U9VOJJAwKie5W+RJNkixiLwCnIi9H1+7Yef
-N0w2iGdFkKd95QB/zDdtay2lziavTiuiPlTbbz8kvlad0cANLSEhbkgLvyvxSc8AMbhb5GODpAFG
-keuTFE8KZNqlrSUMvBSR/RMUHjTCTxzSiTM3sLVtBzSqyyRy6zrMvdoPjk7atqiKmyNs1X5FB1ng
-nEfn+fXV0gZImRDN47hWvxwRQGSI7bzISkKMHJO+loWBMmQu6GtRWq3sTswFFkUTp5gOMiPS+4tX
-MTwdqQkE9kyxi471FfOWFBslyi3BqZwHDOIhRgvDav7u35xs3/a5cuLoQEFBH5SeNd976VH03QN3
-Wbca/54dIQBEuF6S+pgftj/nKKyAcqB7q/XLGH0WPc4ZMKNdlRaLcLSwhQEWjdLzZaVUIKcwY6Sf
-a3T+t2lf4EROhTZ+Z0RAIz+cmeqfT3eK8CFCMVo2Leucj/QImZ8KvguR9Hw2M62nIkopzO0Hm4W1
-6VYs8KWDF6yQx2+Xqykj7zlhFTh3X0DCttyuwivKMk3JjS6nQVuD79OCV0rClKHcmHBLYuCMbJt8
-SXWM83xJ3/+4/ZczqBxfjfgr/jq6vbosrBlt172HSHcpjY05m4Rhy4PGZaRLfXqW0noB/f91StHe
-e68BFnp2/fsLTlTckgyXPBpz3MS+WXwbB8JmyEk0e+QKXDpheLaDjqetNp3VFyB5yJ/lqZih2hav
-FE3nNX/ARaV7N5W/klRxvmLV2Wx1H2lw4JTvi2aey2m5WWxlwrRQAyoMCUPd03gAFJEOsZyuzAoj
-8x7mAtY5ym9XS5WreBM6fkEGP6CYDMPeiZTK6/a/ptjQWBRGfCMuhQKMvebHnfyvjSJ6qUmw3oYi
-2GTY9j+U35ECT9GPOh+ZpRzJKSoFRS/ks+vGtVmn0fqNSRqGaji1KY2lMRLHVDf0slTXVvxBNtPy
-IuJHqH/NUbvQI7Mfezg+3kwv9ZUF6qmrijvUVjIoJz+W8IhrKInGmJKG4iY6TnDo5m/JFyzD4G5s
-j8U0Vl45MdaOn4fcGh8lNRcth8SeO7TGcNKIc86mM9a/HYGH7rzmZMPlGytmBH3QrA8gfDW6KI0S
-7EvT8hYOoeUbGwfxaX5YXCgZRAoByoP4wbA0anqf9b22rR15iL5NP4oDN3vQpwtR7w5CqWhjt0sn
-3LnRWZqOW/r8XsP0f/199ifycvKVDikDLED0u8u9+kdHBQ9FMLGUc8mZUnizcomGlgw1zJWhluj0
-2+twEeNBSN6T+kWYTvqyl1EYwSWfKBPsZsppF5u8iJaRPJxzjoNQmraqtiEsu/M1MsgPX8lzTfon
-gUjDTw+NMKP6BSCO54J8hwRDlYH2Hns6Dp37udqnqAOBlBvOsCYmMq1ZTduF6r2w74hEuzCT11g9
-NVUIkpozq1B9DTYeHaGE/YpjlijqOTQhf2mATVha8N+urSr2ZtNg80SAlPBbY/9vw0lodJH+2eBi
-s7gVO8iElPlsCFRZpTx5pLpBqrEOE6/PXYgbgaVOm5oBjrFqhv0b48g8rMT41DtEVuLkFiLnziuE
-pHxSmUXOrGaQNTwdPTThXQsHEDm0FngeYasJWNZLeNTz04nvTIWYxRSRxE97YS7kAF97NOdwEJnQ
-5u0x28SNjrJgE5PWFpk65X+8gcUKbw95MA80wdlMuiVd86o9I/pXFPDeTpfeZJlLYTzDmer6iN5G
-NfzEnVF8hrsUe0B7yUp9fpzhgxSyVX1GlqUzBMN2N5wJJRb+cF5TLi5TR2wvl1U1SahkqaYgtv1c
-6QsfP2PIW7vOefEJprGJa8S4ANVFt0TlQp/hrzd9m0wRTjNj3Ab11WLjQLu+VQCDEqXd+IpQhADJ
-6ySJSjSVQfTusE/50r0CSjNzKw9h2EP2I0QS58yxuLahKtOALncoxeZ/imPdoa8Lj9SJt3WthAov
-abevzW6qK3Pp/tYGm/JS8BmqwIg/z2CpmxFl166oGqK4YI3ZDm3UjhAiTw4oFuXxthSDq64GQTn2
-5i+D5sxHYij8E2uX8xmtAz15GGLrawaB1UL5GvWoR69Rvm1hm/jqL8Rzz+lqn3SBLmrM1OVgxlMS
-mSkqxXJDAxnws5WeJYloSbONhKPEFUZnAs6p+dKBimcgoaGGY1OH5Iqwu7eausfNwEERAozelMuV
-8deJBfozi5M4oonJhTvSd6qKq5LKLt1UAouYH+88jN+QDBju0clcbGM1EGqsxG/dTBvabTEQ9sfQ
-VFbKNQcm7Sg60zV+RJEOnyKYriwyRHdiLSRUBK6lVMg97ihJbjYgU3Fj1UK/dQY9hJR1h4Y8sMVL
-Hah9lt96woEn6vwHOPsINWwPALlmPH1lXNH1j4j4dN9lgXNNkRIJihSRELr1sanrB4DtYF4nwhLb
-43QbVisXjWMQbAk7Hs0yjFLkoIvll79QyhTnR1ec0kJGshNHC2sOYnWLYgmnk6Kb3hTnExUdbcon
-XFdIMUcwqTrOdDMj7p7ghlm5ala6MchY0tF7vghGjOHIQciTNZXlIkhQo8ctgm0V3UW4Hip39lAF
-9pR70AbRWXZrLAQEM9OESVhjEPm2qDVvBS3QIQygzAzFGC4ynJ7UW8x2XibN++1AR+wXg6lNPiD7
-B/kna7rELLyRVxAw9/dfmQTGqAitlvi7848qta+r/3ZI9fpKNdQF4lMYnOsgGUxRHs83yKPsRnog
-gq7t9KDsuUZVp9CbsH9AIkdLaLhGrN8Z3DxzbEIspGjE5Vy30er8beKsJgJYxMMJQ6tEPzegNtS0
-LoZderHp1meyDrU3SODdDPBVhZOV6bsQm0ktwBhLQ2dZ5/TfmkUoQUwmzvMUMGVLEcTZ8vbplPqS
-59piAl9bQRTJFgh+g5JEP63WH4aCmcXkV3kBbNfb6OAYGRH2UU8AxjUwyObaeQAFKD1hb136Cyky
-OhWDxHj+M1LprPKulLsWZCqzA19CQ83HsrAAUyJRt3TwKYSRnZuPPvDFRY+EzluEzk7tlKbokB0e
-3wNzPo/px7aEA86tWsft3757Ux2TtvIhwnemSIbve45dVnIJkl2yB69FUcMHw/LGQOt++A03U57n
-XLdvucIKK7b8tNQ/4ZJdCVB3FMmiX+9kP0huKVJyjyGrosig/tWRGWU5kgh561QQN9WX+3i8SCYc
-+gdV88ffPjOLanxxA4RB3J9CBZxFfhQctsOqJQfq8q3/Y7dWR863FQoSoKOj423H3tBhcGJIGW1C
-oNtPWsHgZnruXe1oAQbFSCul5cHpc0pi+77AQW/ecHDLqMZInntOAQK4OzkFOmOKxcvKceVpomLf
-r/hjMqTwzeAMLNdvI99Wndt0UtIjxjdD2cs4V/Y14xKGGb/oStSoJa60rgVks7T7TqYUnVLZUkV6
-6HOhT+7a4k9aviUklfhZucEydLVDNdfp/9IEjsObKxbf+CcpzebsPptfluNN4ZxdlrpKLa+h8jPO
-IeWe5rM19pYux4ftQUFe4bOx+k7JWy+LmcgKS3OlTiR1Thm980WdVo5w+gIfiuuE4xeo3mFPcBGg
-w8zqaN74ikTbjg+Omuu2IJJga8onig8kY/KcbIhAS+DRiUxw2yC84JA8vSjWVWT1GxgH4GEAniEW
-OHUYzuFu3AKay7gAMcDRL8iMbYxN8PAgdSEnXcdr5JpFAyiMjy/tqiit/855jLwW3Pm08u52eUoF
-2PEb+cT5vJnt2ey4AX++VEr0sMxjYTILy6wXvDdqAJdUP8Ii900XP10bfYp0RyGpk1KTKH1+rmPh
-otkpxa//SARPOeTIvYaIEnubRSWZubUsP4aYok/XYmgJ+K3CXQ5fhdLIRzKUWyq+sI5F8r0HUE3i
-OsVRZAf9UusKhbpjsZ83RNbhi8mfk/5F0Ck4dfEJHwr8sM0xNu1pxjsk90VjNwd9RRhN9voiUgI3
-SS4beam0mxOAorXWWYgiJP/6Sw0vIYovDb7BMcOpTuoEnKBscLJAzl58ogJK+yONqlf1Jrlu4cyj
-SJUQo8JsJO0hei5Bd1uafEgmInA37w7qhe31ge421cdaGhgdYPNRTSsZimep8A4wAiM2OoYMLHG/
-bIdU+O12OKtvXyfzBhAepS4mmCNxbaDHhi+WiZEaHvCfYmAEa006YSud0lCaEO0XPW/8xgh3L3vq
-97V/PVTxagX3N1Z3s1dfG3AoQqTX5uAQ9Ge56LkNTQfHpaj51v2+bW4qCCI16Jf2hxyhUnFEUyV1
-jhDHcSlKC4OQtupz73TeCFPsqahdquX+3qizu9SYrkMsp+FKi7aWrv4uY5dCsnMwaErYNn+2d+BX
-MWecxT+B+K03VSMATB8oU1DT1M33AFF3BJjXfJ5tFhlxLj0b64yWcWEt/FWlkbMikOjsi1YVD9Yn
-A7FW/1SIrMFxP5JvNoJWGFIK3kp8cKz4zYekW2qracDCYjLZh7q7uncsj8jIU3uOEHJrKdCMmJue
-eX9VkI+ggOEhBWcqKZ6bZ2tbf/xWKvYMoobaQvfpqh8C0eIIeB1kle7Z7g/vVLagvrxw9awf8I6P
-8oktCQ9w/Ox4fPwSmQ4ktxe+beV/0FBdg4i6X5vf4npGtt5jJIqhlEcmjdiiJZoexSnPLecOUgWi
-BBHwV7jNzUKRgYELQkmLfZW+DFl3SZDfYLPPxyRPrtVmHXh1PGQE/Mr0HWTbtBUJOJZpHWU0GYc/
-GGJQMcKJsyFugn8TRHNE2MK/1YYe7LfI3K7Md+esZ2h2NxRvzplGyrnSd7CKyjss9CXvZQF7vaWz
-TX8tHurDMoKBfATg9S0qGVnxdvRKrUO2bNw2PbUC8GWvNNX19KxKYWSe++i9iHNRCMMPKrXkSqXb
-vp/UXY9KARX+AbpBxXUaHhOKRgDsoqGGFxGIKHqIzBmYpUZCylKT6CMLW9osJFNAwTl8um8E75rv
-3tR7dLNX2EaVRQ4iCqMJkoc7wcktupMb9e7fb+EVSqtwWLwkdDdPyixRYqlzG/pJyCyKFZvvNd6S
-n9HtXat3PaUl/FUepjn2gS3yhBCF6rNAh2lh6qmJfe1SD5uBdfI4sdjeiBwz+DFLqvgOD7rAEzWc
-LopjF2Dk2bjkY1N03NJfO0Q/0I1ybzVj899pLZSQBzQZ/sdYFJCUvwmOZowECTEnkrehhSs2TYLU
-DaAezgDdtbhdVas4ShwZlREgz1Younb7S50/TQDSjAogr0MqKYHIoLFjEukJjVA8duaQN5qE3T+E
-MMHzCKRpob+n/rBmvJQiz5MJtDbOIGgm3E1t2D25qY/otZkNUxcsSsyNRmvllW2A10ktqTdfPxNH
-zs7OEniUD5MPfsruFEr3sQxo0WQ/DhjuTpB3VY+ZlKI675I3zrCqywWjHqZDp4Rk0khnyx8xboQy
-L49dPKVpsnUXYySr8m4WiyOA5th5cfHnZ+02PoNrAfr8fE3MfN5f6kbXig1qSgwWX82/or+vOqQP
-zOwnyPdvzd/e0l7YKQjej4DI5x41EAZZ3a8y+pmc9RZEWMAVrEHkcPS23kwhloDADrWUYQ4u3v/c
-JG8lurZc2C1jRoxFfsSqgM9X2y9ADgDF/XWEmL+1t7e4gB54N9lPAb8xOuEap8KAjdzpEozKdmIp
-g05ZN47mt+kXZS63545TvwyAir02VODC4BvLj08ql5Q9rFm5NF3pv1qtHcAeKZWLa/BAurJ3hFzO
-lMK5moWIxbUALbtxdHg1/G/gbEUKg+P0bLRkmOtvo4Hxna5QdNY8mRU=
+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
 `pragma protect end_protected
 module FifoShReg16 (
   Data,

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 164 - 124
src/src/WrapFifoChain/FifoShReg16/temp/FIFOHS/FifoShReg16_syn.rpt.html


+ 3 - 3
src/src/WrapFifoChain/FifoShReg16/temp/FIFOHS/FifoShReg16_syn_resource.html

@@ -31,9 +31,9 @@ table td.label { width: 20%; white-space: nowrap; min-width: 20px; background-co
 </tr>
 <tr>
 <td class="label">FifoShReg16 (C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
-<td align = "center">19</td>
-<td align = "center">-</td>
-<td align = "center">18</td>
+<td align = "center">25</td>
+<td align = "center">2</td>
+<td align = "center">23</td>
 <td align = "center">-</td>
 <td align = "center">1</td>
 <td align = "center">-</td>

+ 1 - 1
src/src/WrapFifoChain/FifoShReg16/temp/FIFOHS/FifoShReg16_syn_rsc.xml

@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Module name="FifoShReg16" Register="19" Lut="18" Bsram="1" T_Register="19(19)" T_Lut="18(18)" T_Bsram="1(1)"/>
+<Module name="FifoShReg16" Register="25" Alu="2" Lut="23" Bsram="1" T_Register="25(25)" T_Alu="2(2)" T_Lut="23(23)" T_Bsram="1(1)"/>

+ 1 - 1
src/src/WrapFifoChain/FifoShReg16/temp/FIFOHS/FifoShReg16_tmp.v

@@ -4,7 +4,7 @@
 //Tool Version: V1.9.9.03 (64-bit)
 //Part Number: GW1N-UV9QN88C6/I5
 //Device: GW1N-9
-//Created Time: Thu Nov 28 11:58:21 2024
+//Created Time: Wed Dec 11 18:12:33 2024
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------

+ 4 - 4
src/src/WrapFifoChain/FifoShReg16/temp/FIFOHS/fifo_parameter.v

@@ -1,6 +1,6 @@
-parameter WDEPTH = 2;
-parameter ASIZE = 1;
+parameter WDEPTH = 4;
+parameter ASIZE = 2;
 parameter WDSIZE = 16;
-parameter RDEPTH = 2;
-parameter RASIZE = 1;
+parameter RDEPTH = 4;
+parameter RASIZE = 2;
 parameter RDSIZE = 16;

+ 2 - 2
src/src/WrapFifoChain/FifoShReg8/FifoShReg8.ipc

@@ -25,11 +25,11 @@ OutputRegistersSelected=false
 REG=false
 ReadDataNum=false
 ReadDataWidth=8
-ReadDepth=2
+ReadDepth=4
 ResetSynchronization=true
 SSRAM=false
 StandardFIFO=false
 Synthesis_tool=GowinSynthesis
 WriteDataNum=false
 WriteDataWidth=8
-WriteDepth=2
+WriteDepth=4

+ 156 - 120
src/src/WrapFifoChain/FifoShReg8/FifoShReg8.v

@@ -1,7 +1,7 @@
 //
 //Written by GowinSynthesis
 //Tool Version "V1.9.9.03 (64-bit)"
-//Thu Nov 28 11:57:53 2024
+//Wed Dec 11 18:11:52 2024
 
 //Source file index table:
 //file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
@@ -17,130 +17,166 @@
 `pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
 `pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
 `pragma protect key_block
-XIQRpeTYn7z3hpkdwwrQwEibluPftU4hhXuof1SPKVi+mK/5kuNI/2k8ZtpMIQikm9YzaT37e3O5
-BDn34gLVQb68EDGo4i9N3xq4Pd7+B/kXrfFiDXoStArfBjc9jedNCwlOutzJQGXpgVBcgzR1g72p
-o2L0VXmFPwRdFeNMB8iJwT3/Wx4R/PJ9b3JDq/SdDcomg4RozLAwnvh10M90RRycwsEm3pvLx7eH
-ThqBGGWzn0791RDMxXW1EOGpE8JQSX6roIL/egEfln3LeBdKoufAD8zp+6WR0xcaueveSZbxePh4
-gQSiGDyNofJkht17RrnQkrg0BGeB+svTtaf34Q==
+ZCbbodVMAhTTqMUJwyH3cZbom6aOUufs0rOS6I0hE3/klE1Wo4Gc2LVdSahquu/1U5Cp6+07yHNY
+8CKtzcV1IT8tjEFp3fX84dJV1JdRCt+ABUwKMY4vBnkKs5Xg+6HITts3I9dmdL+2nBnOJegFkf2p
+Tsx7ytZesoA6v5BeCElg0Ks83EjPbAvISUIYyeDGAh075nuRgE7RAcHHm1+9cEzvGCz+8fhIKDCU
+hpWXt5VoUZ7AvMjVQ8oAJwFKOK5ApLoP+T148HY38cRhcfMn/JhO4ztEGhjyVirYVX5TLjwHfwIr
+OLpao6UIV38xaT8octF89mJf2L4h+lH6BpXlpQ==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=6400)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=8448)
 `pragma protect data_keyowner="default-ip-vendor"
 `pragma protect data_keyname="default-ip-key"
 `pragma protect data_method="aes128-cfb"
 `pragma protect data_block
-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
-cEEw/cAm1Gimtcg5Kv7+TA==
+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
+lGLIZ4m/qw4I+9JA
 `pragma protect end_protected
 module FifoShReg8 (
   Data,

+ 190 - 85
src/src/WrapFifoChain/FifoShReg8/FifoShReg8.vo

@@ -2,7 +2,7 @@
 //All rights reserved.
 //File Title: Post-PnR Simulation Model file
 //Tool Version: V1.9.9.03 (64-bit)
-//Created Time: Thu Nov 28 11:57:54 2024
+//Created Time: Wed Dec 11 18:11:53 2024
 
 `timescale 100 ps/100 ps
 module FifoShReg8(
@@ -36,34 +36,39 @@ wire Reset;
 wire VCC;
 wire WrClk;
 wire WrEn;
-wire \fifo_inst/n20_5 ;
-wire \fifo_inst/n26_4 ;
-wire \fifo_inst/n177_4 ;
-wire \fifo_inst/rempty_val ;
-wire \fifo_inst/wfull_val_7 ;
+wire \fifo_inst/n21_5 ;
+wire \fifo_inst/n27_4 ;
 wire \fifo_inst/wfull_val1 ;
 wire \fifo_inst/wfull_val1_0 ;
 wire \fifo_inst/Full_1 ;
 wire \fifo_inst/Equal.wbinnext_0_7 ;
-wire \fifo_inst/rempty_val_8 ;
+wire \fifo_inst/wfull_val_4 ;
+wire \fifo_inst/wfull_val_5 ;
+wire \fifo_inst/n215_6 ;
+wire \fifo_inst/wfull_val ;
+wire \fifo_inst/rempty_val ;
 wire \fifo_inst/wfull_val1_2 ;
 wire \fifo_inst/wfull_val1_3 ;
 wire \fifo_inst/Full_1_2 ;
 wire \fifo_inst/Full_2 ;
+wire \fifo_inst/n62_1_SUM ;
+wire \fifo_inst/n62_3 ;
+wire \fifo_inst/n63_1_SUM ;
+wire \fifo_inst/n63_3 ;
 wire \fifo_inst/n4_6 ;
 wire \fifo_inst/n9_6 ;
-wire [0:0] \fifo_inst/Equal.rgraynext ;
-wire [0:0] \fifo_inst/Equal.wgraynext ;
-wire [1:0] \fifo_inst/rbin_num_next ;
-wire [1:1] \fifo_inst/Equal.wbinnext ;
+wire [1:0] \fifo_inst/Equal.rgraynext ;
+wire [1:0] \fifo_inst/Equal.wgraynext ;
+wire [2:0] \fifo_inst/rbin_num_next ;
+wire [2:1] \fifo_inst/Equal.wbinnext ;
 wire [1:0] \fifo_inst/reset_r ;
 wire [1:0] \fifo_inst/reset_w ;
-wire [1:0] \fifo_inst/rbin_num ;
-wire [1:0] \fifo_inst/Equal.rq1_wptr ;
-wire [1:0] \fifo_inst/Equal.rq2_wptr ;
-wire [0:0] \fifo_inst/rptr ;
-wire [1:0] \fifo_inst/wptr ;
-wire [0:0] \fifo_inst/Equal.wbin ;
+wire [2:0] \fifo_inst/rbin_num ;
+wire [2:0] \fifo_inst/Equal.rq1_wptr ;
+wire [2:0] \fifo_inst/Equal.rq2_wptr ;
+wire [1:0] \fifo_inst/rptr ;
+wire [2:0] \fifo_inst/wptr ;
+wire [1:0] \fifo_inst/Equal.wbin ;
 wire [31:8] \fifo_inst/DO ;
 VCC VCC_cZ (
   .V(VCC)
@@ -74,57 +79,51 @@ GND GND_cZ (
 GSR GSR (
 	.GSRI(VCC)
 );
-LUT4 \fifo_inst/n20_s1  (
+LUT4 \fifo_inst/n21_s1  (
 	.I0(\fifo_inst/Full_2 ),
 	.I1(\fifo_inst/Full_1_2 ),
 	.I2(\fifo_inst/Full_1 ),
 	.I3(WrEn),
-	.F(\fifo_inst/n20_5 )
+	.F(\fifo_inst/n21_5 )
 );
-defparam \fifo_inst/n20_s1 .INIT=16'h5300;
-LUT3 \fifo_inst/n26_s1  (
+defparam \fifo_inst/n21_s1 .INIT=16'h5300;
+LUT3 \fifo_inst/n27_s1  (
 	.I0(RdEn),
 	.I1(Empty),
 	.I2(\fifo_inst/rempty_val ),
-	.F(\fifo_inst/n26_4 )
+	.F(\fifo_inst/n27_4 )
 );
-defparam \fifo_inst/n26_s1 .INIT=8'h0E;
+defparam \fifo_inst/n27_s1 .INIT=8'h0E;
 LUT3 \fifo_inst/Equal.rgraynext_0_s0  (
-	.I0(\fifo_inst/rbin_num [0]),
-	.I1(\fifo_inst/rbin_num_next [0]),
+	.I0(\fifo_inst/rbin_num_next [0]),
+	.I1(\fifo_inst/rbin_num [0]),
 	.I2(\fifo_inst/rbin_num [1]),
 	.F(\fifo_inst/Equal.rgraynext [0])
 );
 defparam \fifo_inst/Equal.rgraynext_0_s0 .INIT=8'h1E;
+LUT4 \fifo_inst/Equal.rgraynext_1_s0  (
+	.I0(\fifo_inst/rbin_num_next [0]),
+	.I1(\fifo_inst/rbin_num [0]),
+	.I2(\fifo_inst/rbin_num [1]),
+	.I3(\fifo_inst/rbin_num [2]),
+	.F(\fifo_inst/Equal.rgraynext [1])
+);
+defparam \fifo_inst/Equal.rgraynext_1_s0 .INIT=16'h0BF4;
 LUT3 \fifo_inst/Equal.wgraynext_0_s0  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
-	.I2(\fifo_inst/wptr [1]),
+	.I0(\fifo_inst/n21_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.I2(\fifo_inst/Equal.wbin [1]),
 	.F(\fifo_inst/Equal.wgraynext [0])
 );
 defparam \fifo_inst/Equal.wgraynext_0_s0 .INIT=8'h1E;
-LUT2 \fifo_inst/n177_s1  (
-	.I0(\fifo_inst/reset_w [1]),
-	.I1(\fifo_inst/wfull_val_7 ),
-	.F(\fifo_inst/n177_4 )
-);
-defparam \fifo_inst/n177_s1 .INIT=4'h4;
-LUT4 \fifo_inst/rempty_val_s3  (
-	.I0(\fifo_inst/Equal.rq2_wptr [1]),
-	.I1(\fifo_inst/rempty_val_8 ),
-	.I2(\fifo_inst/Equal.rq2_wptr [0]),
-	.I3(\fifo_inst/rbin_num_next [0]),
-	.F(\fifo_inst/rempty_val )
-);
-defparam \fifo_inst/rempty_val_s3 .INIT=16'h4221;
-LUT4 \fifo_inst/wfull_val_s3  (
-	.I0(\fifo_inst/wptr [0]),
-	.I1(\fifo_inst/wptr [1]),
-	.I2(\fifo_inst/rbin_num [1]),
-	.I3(\fifo_inst/rptr [0]),
-	.F(\fifo_inst/wfull_val_7 )
-);
-defparam \fifo_inst/wfull_val_s3 .INIT=16'h1428;
+LUT4 \fifo_inst/Equal.wgraynext_1_s0  (
+	.I0(\fifo_inst/n21_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.I2(\fifo_inst/Equal.wbin [1]),
+	.I3(\fifo_inst/wptr [2]),
+	.F(\fifo_inst/Equal.wgraynext [1])
+);
+defparam \fifo_inst/Equal.wgraynext_1_s0 .INIT=16'h07F8;
 LUT3 \fifo_inst/wfull_val1_s9  (
 	.I0(\fifo_inst/wfull_val1_3 ),
 	.I1(\fifo_inst/wfull_val1_2 ),
@@ -132,13 +131,14 @@ LUT3 \fifo_inst/wfull_val1_s9  (
 	.F(\fifo_inst/wfull_val1 )
 );
 defparam \fifo_inst/wfull_val1_s9 .INIT=8'hAC;
-LUT3 \fifo_inst/wfull_val1_s10  (
-	.I0(\fifo_inst/wfull_val_7 ),
-	.I1(\fifo_inst/wfull_val1_0 ),
-	.I2(\fifo_inst/reset_w [1]),
+LUT4 \fifo_inst/wfull_val1_s10  (
+	.I0(\fifo_inst/wfull_val_4 ),
+	.I1(\fifo_inst/wfull_val_5 ),
+	.I2(\fifo_inst/wfull_val1_0 ),
+	.I3(\fifo_inst/reset_w [1]),
 	.F(\fifo_inst/wfull_val1_0 )
 );
-defparam \fifo_inst/wfull_val1_s10 .INIT=8'h0E;
+defparam \fifo_inst/wfull_val1_s10 .INIT=16'h00F8;
 LUT3 \fifo_inst/Full_d_s  (
 	.I0(\fifo_inst/Full_2 ),
 	.I1(\fifo_inst/Full_1_2 ),
@@ -146,13 +146,14 @@ LUT3 \fifo_inst/Full_d_s  (
 	.F(Full)
 );
 defparam \fifo_inst/Full_d_s .INIT=8'hAC;
-LUT3 \fifo_inst/Full_s8  (
-	.I0(\fifo_inst/wfull_val_7 ),
-	.I1(\fifo_inst/Full_1 ),
-	.I2(\fifo_inst/reset_w [1]),
+LUT4 \fifo_inst/Full_s8  (
+	.I0(\fifo_inst/wfull_val_4 ),
+	.I1(\fifo_inst/wfull_val_5 ),
+	.I2(\fifo_inst/Full_1 ),
+	.I3(\fifo_inst/reset_w [1]),
 	.F(\fifo_inst/Full_1 )
 );
-defparam \fifo_inst/Full_s8 .INIT=8'h0E;
+defparam \fifo_inst/Full_s8 .INIT=16'h00F8;
 LUT3 \fifo_inst/rbin_num_next_0_s5  (
 	.I0(Empty),
 	.I1(RdEn),
@@ -160,34 +161,78 @@ LUT3 \fifo_inst/rbin_num_next_0_s5  (
 	.F(\fifo_inst/rbin_num_next [0])
 );
 defparam \fifo_inst/rbin_num_next_0_s5 .INIT=8'hB4;
-LUT3 \fifo_inst/rbin_num_next_1_s2  (
+LUT3 \fifo_inst/rbin_num_next_1_s5  (
 	.I0(\fifo_inst/rbin_num_next [0]),
 	.I1(\fifo_inst/rbin_num [0]),
 	.I2(\fifo_inst/rbin_num [1]),
 	.F(\fifo_inst/rbin_num_next [1])
 );
-defparam \fifo_inst/rbin_num_next_1_s2 .INIT=8'hB4;
+defparam \fifo_inst/rbin_num_next_1_s5 .INIT=8'hB4;
+LUT4 \fifo_inst/rbin_num_next_2_s2  (
+	.I0(\fifo_inst/rbin_num_next [0]),
+	.I1(\fifo_inst/rbin_num [0]),
+	.I2(\fifo_inst/rbin_num [1]),
+	.I3(\fifo_inst/rbin_num [2]),
+	.F(\fifo_inst/rbin_num_next [2])
+);
+defparam \fifo_inst/rbin_num_next_2_s2 .INIT=16'hBF40;
 LUT2 \fifo_inst/Equal.wbinnext_0_s3  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
+	.I0(\fifo_inst/n21_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
 	.F(\fifo_inst/Equal.wbinnext_0_7 )
 );
 defparam \fifo_inst/Equal.wbinnext_0_s3 .INIT=4'h6;
-LUT3 \fifo_inst/Equal.wbinnext_1_s2  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
-	.I2(\fifo_inst/wptr [1]),
+LUT3 \fifo_inst/Equal.wbinnext_1_s3  (
+	.I0(\fifo_inst/n21_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.I2(\fifo_inst/Equal.wbin [1]),
 	.F(\fifo_inst/Equal.wbinnext [1])
 );
-defparam \fifo_inst/Equal.wbinnext_1_s2 .INIT=8'h78;
-LUT4 \fifo_inst/rempty_val_s4  (
-	.I0(\fifo_inst/Equal.rq2_wptr [0]),
-	.I1(\fifo_inst/Equal.rq2_wptr [1]),
-	.I2(\fifo_inst/rbin_num [1]),
-	.I3(\fifo_inst/rbin_num [0]),
-	.F(\fifo_inst/rempty_val_8 )
+defparam \fifo_inst/Equal.wbinnext_1_s3 .INIT=8'h78;
+LUT4 \fifo_inst/Equal.wbinnext_2_s2  (
+	.I0(\fifo_inst/n21_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.I2(\fifo_inst/Equal.wbin [1]),
+	.I3(\fifo_inst/wptr [2]),
+	.F(\fifo_inst/Equal.wbinnext [2])
+);
+defparam \fifo_inst/Equal.wbinnext_2_s2 .INIT=16'h7F80;
+LUT2 \fifo_inst/wfull_val_s1  (
+	.I0(\fifo_inst/wptr [2]),
+	.I1(\fifo_inst/rbin_num [2]),
+	.F(\fifo_inst/wfull_val_4 )
+);
+defparam \fifo_inst/wfull_val_s1 .INIT=4'h6;
+LUT4 \fifo_inst/wfull_val_s2  (
+	.I0(\fifo_inst/wptr [0]),
+	.I1(\fifo_inst/rptr [0]),
+	.I2(\fifo_inst/wptr [1]),
+	.I3(\fifo_inst/rptr [1]),
+	.F(\fifo_inst/wfull_val_5 )
+);
+defparam \fifo_inst/wfull_val_s2 .INIT=16'h0990;
+LUT4 \fifo_inst/n215_s2  (
+	.I0(\fifo_inst/wptr [2]),
+	.I1(\fifo_inst/rbin_num [2]),
+	.I2(\fifo_inst/reset_w [1]),
+	.I3(\fifo_inst/wfull_val_5 ),
+	.F(\fifo_inst/n215_6 )
+);
+defparam \fifo_inst/n215_s2 .INIT=16'h0600;
+LUT3 \fifo_inst/wfull_val_s3  (
+	.I0(\fifo_inst/wptr [2]),
+	.I1(\fifo_inst/rbin_num [2]),
+	.I2(\fifo_inst/wfull_val_5 ),
+	.F(\fifo_inst/wfull_val )
+);
+defparam \fifo_inst/wfull_val_s3 .INIT=8'h60;
+LUT3 \fifo_inst/rempty_val_s2  (
+	.I0(\fifo_inst/rbin_num_next [2]),
+	.I1(\fifo_inst/Equal.rq2_wptr [2]),
+	.I2(\fifo_inst/n63_3 ),
+	.F(\fifo_inst/rempty_val )
 );
-defparam \fifo_inst/rempty_val_s4 .INIT=16'h871E;
+defparam \fifo_inst/rempty_val_s2 .INIT=8'h09;
 DFFP \fifo_inst/reset_r_0_s0  (
 	.D(GND),
 	.CLK(\fifo_inst/n4_6 ),
@@ -209,6 +254,13 @@ DFFP \fifo_inst/reset_w_0_s0  (
 	.Q(\fifo_inst/reset_w [0])
 );
 defparam \fifo_inst/reset_w_0_s0 .INIT=1'b1;
+DFFC \fifo_inst/rbin_num_2_s0  (
+	.D(\fifo_inst/rbin_num_next [2]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rbin_num [2])
+);
+defparam \fifo_inst/rbin_num_2_s0 .INIT=1'b0;
 DFFC \fifo_inst/rbin_num_1_s0  (
 	.D(\fifo_inst/rbin_num_next [1]),
 	.CLK(RdClk),
@@ -223,6 +275,13 @@ DFFC \fifo_inst/rbin_num_0_s0  (
 	.Q(\fifo_inst/rbin_num [0])
 );
 defparam \fifo_inst/rbin_num_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.rq1_wptr_2_s0  (
+	.D(\fifo_inst/wptr [2]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/Equal.rq1_wptr [2])
+);
+defparam \fifo_inst/Equal.rq1_wptr_2_s0 .INIT=1'b0;
 DFFC \fifo_inst/Equal.rq1_wptr_1_s0  (
 	.D(\fifo_inst/wptr [1]),
 	.CLK(RdClk),
@@ -237,6 +296,13 @@ DFFC \fifo_inst/Equal.rq1_wptr_0_s0  (
 	.Q(\fifo_inst/Equal.rq1_wptr [0])
 );
 defparam \fifo_inst/Equal.rq1_wptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.rq2_wptr_2_s0  (
+	.D(\fifo_inst/Equal.rq1_wptr [2]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/Equal.rq2_wptr [2])
+);
+defparam \fifo_inst/Equal.rq2_wptr_2_s0 .INIT=1'b0;
 DFFC \fifo_inst/Equal.rq2_wptr_1_s0  (
 	.D(\fifo_inst/Equal.rq1_wptr [1]),
 	.CLK(RdClk),
@@ -251,6 +317,13 @@ DFFC \fifo_inst/Equal.rq2_wptr_0_s0  (
 	.Q(\fifo_inst/Equal.rq2_wptr [0])
 );
 defparam \fifo_inst/Equal.rq2_wptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/rptr_1_s0  (
+	.D(\fifo_inst/Equal.rgraynext [1]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rptr [1])
+);
+defparam \fifo_inst/rptr_1_s0 .INIT=1'b0;
 DFFC \fifo_inst/rptr_0_s0  (
 	.D(\fifo_inst/Equal.rgraynext [0]),
 	.CLK(RdClk),
@@ -258,8 +331,15 @@ DFFC \fifo_inst/rptr_0_s0  (
 	.Q(\fifo_inst/rptr [0])
 );
 defparam \fifo_inst/rptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_2_s0  (
+	.D(\fifo_inst/Equal.wbinnext [2]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wptr [2])
+);
+defparam \fifo_inst/wptr_2_s0 .INIT=1'b0;
 DFFC \fifo_inst/wptr_1_s0  (
-	.D(\fifo_inst/Equal.wbinnext [1]),
+	.D(\fifo_inst/Equal.wgraynext [1]),
 	.CLK(WrClk),
 	.CLEAR(\fifo_inst/reset_w [1]),
 	.Q(\fifo_inst/wptr [1])
@@ -272,6 +352,13 @@ DFFC \fifo_inst/wptr_0_s0  (
 	.Q(\fifo_inst/wptr [0])
 );
 defparam \fifo_inst/wptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.wbin_1_s0  (
+	.D(\fifo_inst/Equal.wbinnext [1]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/Equal.wbin [1])
+);
+defparam \fifo_inst/Equal.wbin_1_s0 .INIT=1'b0;
 DFFC \fifo_inst/Equal.wbin_0_s0  (
 	.D(\fifo_inst/Equal.wbinnext_0_7 ),
 	.CLK(WrClk),
@@ -294,16 +381,16 @@ DFFP \fifo_inst/reset_r_1_s0  (
 );
 defparam \fifo_inst/reset_r_1_s0 .INIT=1'b1;
 DFFC \fifo_inst/wfull_val1_s0  (
-	.D(\fifo_inst/wfull_val_7 ),
+	.D(\fifo_inst/wfull_val ),
 	.CLK(WrClk),
 	.CLEAR(\fifo_inst/reset_w [1]),
 	.Q(\fifo_inst/wfull_val1_2 )
 );
 defparam \fifo_inst/wfull_val1_s0 .INIT=1'b0;
 DFFP \fifo_inst/wfull_val1_s1  (
-	.D(\fifo_inst/wfull_val_7 ),
+	.D(\fifo_inst/wfull_val ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n177_4 ),
+	.PRESET(\fifo_inst/n215_6 ),
 	.Q(\fifo_inst/wfull_val1_3 )
 );
 defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
@@ -317,23 +404,23 @@ defparam \fifo_inst/Full_s0 .INIT=1'b0;
 DFFP \fifo_inst/Full_s1  (
 	.D(\fifo_inst/wfull_val1 ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n177_4 ),
+	.PRESET(\fifo_inst/n215_6 ),
 	.Q(\fifo_inst/Full_2 )
 );
 defparam \fifo_inst/Full_s1 .INIT=1'b1;
 SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s  (
 	.CLKA(WrClk),
-	.CEA(\fifo_inst/n20_5 ),
+	.CEA(\fifo_inst/n21_5 ),
 	.RESETA(GND),
 	.CLKB(RdClk),
-	.CEB(\fifo_inst/n26_4 ),
+	.CEB(\fifo_inst/n27_4 ),
 	.RESETB(\fifo_inst/reset_r [1]),
 	.OCE(GND),
 	.BLKSELA({GND, GND, GND}),
 	.BLKSELB({GND, GND, GND}),
 	.DI({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, Data[7:0]}),
-	.ADA({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/Equal.wbin [0], GND, GND, GND}),
-	.ADB({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num_next [0], GND, GND, GND}),
+	.ADA({GND, GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/Equal.wbin [1:0], GND, GND, GND}),
+	.ADB({GND, GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num_next [1:0], GND, GND, GND}),
 	.DO({\fifo_inst/DO [31:8], Q[7:0]})
 );
 defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .READ_MODE=1'b0;
@@ -342,6 +429,24 @@ defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BIT_WIDTH_1=8;
 defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .RESET_MODE="ASYNC";
 defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BLK_SEL_0=3'b000;
 defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BLK_SEL_1=3'b000;
+ALU \fifo_inst/n62_s0  (
+	.I0(\fifo_inst/Equal.rgraynext [0]),
+	.I1(\fifo_inst/Equal.rq2_wptr [0]),
+	.I3(GND),
+	.CIN(GND),
+	.COUT(\fifo_inst/n62_3 ),
+	.SUM(\fifo_inst/n62_1_SUM )
+);
+defparam \fifo_inst/n62_s0 .ALU_MODE=3;
+ALU \fifo_inst/n63_s0  (
+	.I0(\fifo_inst/Equal.rgraynext [1]),
+	.I1(\fifo_inst/Equal.rq2_wptr [1]),
+	.I3(GND),
+	.CIN(\fifo_inst/n62_3 ),
+	.COUT(\fifo_inst/n63_3 ),
+	.SUM(\fifo_inst/n63_1_SUM )
+);
+defparam \fifo_inst/n63_s0 .ALU_MODE=3;
 INV \fifo_inst/n4_s2  (
 	.I(RdClk),
 	.O(\fifo_inst/n4_6 )

+ 1 - 1
src/src/WrapFifoChain/FifoShReg8/FifoShReg8_tmp.v

@@ -4,7 +4,7 @@
 //Tool Version: V1.9.9.03 (64-bit)
 //Part Number: GW1N-UV9QN88C6/I5
 //Device: GW1N-9
-//Created Time: Thu Nov 28 11:57:53 2024
+//Created Time: Wed Dec 11 18:11:52 2024
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------

+ 156 - 120
src/src/WrapFifoChain/FifoShReg8/temp/FIFOHS/FifoShReg8.vg

@@ -1,7 +1,7 @@
 //
 //Written by GowinSynthesis
 //Tool Version "V1.9.9.03 (64-bit)"
-//Thu Nov 28 11:57:53 2024
+//Wed Dec 11 18:11:52 2024
 
 //Source file index table:
 //file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
@@ -17,130 +17,166 @@
 `pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
 `pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
 `pragma protect key_block
-XIQRpeTYn7z3hpkdwwrQwEibluPftU4hhXuof1SPKVi+mK/5kuNI/2k8ZtpMIQikm9YzaT37e3O5
-BDn34gLVQb68EDGo4i9N3xq4Pd7+B/kXrfFiDXoStArfBjc9jedNCwlOutzJQGXpgVBcgzR1g72p
-o2L0VXmFPwRdFeNMB8iJwT3/Wx4R/PJ9b3JDq/SdDcomg4RozLAwnvh10M90RRycwsEm3pvLx7eH
-ThqBGGWzn0791RDMxXW1EOGpE8JQSX6roIL/egEfln3LeBdKoufAD8zp+6WR0xcaueveSZbxePh4
-gQSiGDyNofJkht17RrnQkrg0BGeB+svTtaf34Q==
+ZCbbodVMAhTTqMUJwyH3cZbom6aOUufs0rOS6I0hE3/klE1Wo4Gc2LVdSahquu/1U5Cp6+07yHNY
+8CKtzcV1IT8tjEFp3fX84dJV1JdRCt+ABUwKMY4vBnkKs5Xg+6HITts3I9dmdL+2nBnOJegFkf2p
+Tsx7ytZesoA6v5BeCElg0Ks83EjPbAvISUIYyeDGAh075nuRgE7RAcHHm1+9cEzvGCz+8fhIKDCU
+hpWXt5VoUZ7AvMjVQ8oAJwFKOK5ApLoP+T148HY38cRhcfMn/JhO4ztEGhjyVirYVX5TLjwHfwIr
+OLpao6UIV38xaT8octF89mJf2L4h+lH6BpXlpQ==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=6400)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=8448)
 `pragma protect data_keyowner="default-ip-vendor"
 `pragma protect data_keyname="default-ip-key"
 `pragma protect data_method="aes128-cfb"
 `pragma protect data_block
-MlR/vHvNWKOvtk/pmfyshnn/VnvWrpgriOaYdfsD3KuJGF2lHLb0n9JuY1aOvfQ9s6JNJxZ3RgJI
-BWsh8OYVZowPG8Sw71zIaPo95yprG19nmz/M+2VLKxB2wpZjJBlMSqfTJ14m63d4w86To5a4r1RI
-7diiz2UcRhESXFSEmphrdNhuPNnF2kNAor3M0Mjr+48vvibP9+cFtDNJv9/xqI7oZyx0Fi4hw5Od
-wPKPzeStODihZCS2IcoMVJBI2wLTa+w5nSiFz1cnFAt2xIslgfpJhtEPYGsIYkkiHU27cG/G/j0e
-uNytp8b67Iu6EHRrLnllQCUj3W/oeUCUqhm9YFN3xD2B8uIyQeUS1o5iMkrVOzMtmIATBMPCloFz
-Tb33MzAS8h6r+qnpWg1pu3SrB16A7XUIN84AgkaH99KpQAh0DQDI42qolSW9/wDrnnOPWHQR5UDE
-QD5nVByEXNS1G4KB0k8DVUVB4W2lexPJ4gqTObHvXwG5M0Vtig9ZYOIMtfGd3h8uRqW5nceSdBWp
-Fd0rNYiaZUEkvPTtlGHm4D2x2ARE1NxoZkJ668QYx/DRroxK598vNVhlkdt/XPMM4Ze1E0kbB7cc
-p/IvtIsJOvjfr1x2bnBhTSYOuHPlmgbeoi85b/R5BgMOt/s/8kpISAleDEHglAtYggjktBNiHQcR
-FzxVfZ3DAv3JlJs/4gIPJJo1cnLI9Z6Na8LuVrw++1XTF29kO8nJS/MxYyuAzGOKjp8Uvu2OKFOZ
-K/KyAOtzOdI6G/Saiy7FoDP3WUr6drHOQnx+uxP5zjLU/me3tkBI7YXbJTICl5USoMxXbrluXJMT
-Nm/v+kCrZ3mevcPH8oWfvR2K3dHWyoct3Hb3yjqQmrHkETSs1bgLMVqgG3Nz3Suk1a8MqNlDZGQF
-nNOVdEGGp2tTK6/p2hC8GciZQyLs675KqBvAi6IKWv5E60eMHKfo8TNgbkXuboiqKBsLsqXjIGoA
-yxF8Qc1VdWYE8eYt6ZWX7inxh0Zm0olpHw54yxImNV8RMUZtiTNlZERXz/6Y4HLroX3neee3jVxu
-sHLmpwwh9SQVlaD7d1ydGnE+awunVkIiQ03f2rnSUMg2doNsuYr9MEYrNgEC9Aoshb9FxZdyPmNA
-R05g9reIEC6Y40Mxci1uVHXbPJjPkK9GwkaczXWSHt0mLzNrSi+a1NOf88kI0w1njq9TBTwn7eKv
-rqVRRckDITYMOHym6sRNeiyWn1IBZqKZDYig+//SRAH/Dh/4iFS+EjECShu2fS5WQO8d5gvqtzX9
-gjF7/mk7vBzDjm5dg+E3M8bkKOimHEINMekn0izuvQCSzV/b9171RZVYfnNNNCuYIbhnPux/5Hfn
-Riu+9j9bnxJ0wMNlzWpICEDp/Hlj6gYOVUJSfV7oVI4KymK8uwPaKzmS/Pl9sVckVAIiP2DfoKQV
-czde8eL8TgIWuO9D0XmFH/T8QK8D0GKVJxC0pBnawsmaBFsCitZ1HSoeFxFd4p4q84k5Zqjb8i27
-LDMmTddPXG597LyNPaGRHeROtAHm1vnatwR9xN6ocEHJlvlsUCeDuwQAMdyDoakcznIzy11VxLEd
-NA1COpccLW5LkosCV8j1kFJaL0lTzuIjQQmNPrKziGFnkXwrOj3qWlwCSRDpIpmiL8H5dhzW1+XZ
-4DoQxXfwFqPrFg8SwFaJYhBYk7qfB5U8Fo5j+SzK1ABv/9oFBGYeX+49OSu42ZngHxTIx5yflqXC
-GvUhGWvyRp2TnkBPGk9bFo0+PFhiwKGNW1Fg4gLBtCBFYVcmYVhWj1O4b+37d0s7jgJkg6SEtYAe
-h/An9isY8ncQBZJ3/Drebt5iDeGl3Y4OAVZBBYq5NiGwRRrVT3FK6j0Saq+9+ABTh4gK0noYMrcr
-g+TWagqP+Qg/lhzlqtNcJhnTaU+qvx1V6RAQ8pGiLIH2PKJ3AVBIQK3N0cCVSz6gxNPnlG5lakXk
-afXUtWlRG8KXaTNClFEL0FZOmBTgQ1ydHiFbYtGjzHIgq2LMxlU6SKgoElI+xGBdhEe4lBPNgZ++
-Mwo7yPmn3kFYgWjNdg+29bkJD6hKlGvxRcuNddzg6lYKHE3vLOxsbAzGTYH6BEtm4Wf2Vpr4Hm8d
-5fTNsoTsRDiVWKZflWNG9ZZbWA9E/EyMkpVQon/PEDC2C/JxrCffoLjlMkmZzWd4jAlEtkxkZ1Qf
-r+SDMkjp6xwpso26JTHDXZg7FQ1NhYcQH1g+btfgwoS0zQCO7EFptY7efwMVyobmJ31rEuOAfBDT
-3d8Pem3OXDLB1Cs/TgUC/n5qI7TCcYJaf5HFmz1alOl9D8EaZVFYuJefZ9giGv86PF/mvSvkHC8o
-w02EKNbz1L+h7Ah3Hnzk5MK8tumPKyW5pV7vt5FjwckbTvUukJjRmckHHF/XLtUm1qjksBUTkGY+
-woNrFaE8aVH7jT/64jsirY2pF8f/6kcb4plSY+PnsXhYtJYCvCikAbJPUpk7zDc+wcifrmKmLRsZ
-NuwjVsICnVCgYp7j5mXTyescbESCo98x3r+SW5SeIxDHKr6UL9XxMqWi/n20f/usf5CF9yQ+rlO2
-yE/kZzv/ASubdu6LZqt9hnz3McAtkryXee3HfL+y6d2BTYxeXe1KlBFzjBqEgMmEubVkQxYXBy5w
-bWft/VDHjloyOaPw+Wf+qPbkeU48mC4qADYrYlrpVgHdxhu6Wh54udciKUd0fTMF9zk8zY+W7xtN
-WEL9njXUTfVlnjoPMDtvg0s15ILxDODQMng4oL3GEsKOjgi/fZMTK5Cwf9Ey1qZytMca8N1p6qr3
-kk9S/lCNALPkB/5YkVLp3KIrcZ18Ye5t/ISwernnprykwDB3+wh8Pw1M1Ldfbwkw4gy2TRBaQEmX
-RGb0RZr9PGb7vB2mhqxnwoA6RotYFPHq2bronva0AStaV6VymYttAXeDEpLqyZ9760vd5BO+/UD+
-DBrR6hHJWXhrYPpu4X+kuxa7FhHV6tntcAozH7M4WFAQSw/RtCjjkqgqxN+hs11FnRWm4ncFKQYa
-uMRzwccWS3uszES/IQy4CiOrIW/erBlEa2qC7LTqnUjPE9lpG8bNek4CGfSZ96SDPjvSeYAO2CBG
-37zbA72a3j9Um188qKuBTDO4bDrhozhmC4xOedKruGtS7QCDNEEzFL+yd/0ihvcaFOVV/OrXtLhb
-u38qOt0fa+SdbmGLQ5HgbTlBtvZD+ttTYloevFz3WqVaQpv6+S1JUCW9DlJe582emjUg2TqbglrL
-jt8KljNB3az2jvC3zQCze/l1M1ZEIiVYSoWVUychehasHEvv0QGvjHsjKsRnYtZ4CD7yXu6+n+fs
-zuxLOq8J5ypSPo1sHZH4M+CchcKCKeV5NlrrynoBBZorr/dAZJrPKVm8bkO4eN3TFmxr9eNg56xr
-+CHptMJ2kkkdjiMUG0f3yaLHbNuaypw+4Z5jU3ELkcKqXk0VU0WQLrDD5ZJb8aKNZxJpuegUrWLh
-tJ4Y2LFuSnxT4BiwWPU2oiVrf+nwGkAWua3qpvQmT/YX3pEG8/VwxibIBu+ADpf1t9tm+tMX+7QV
-oahYufdVlw47laRQxuhyn01p9F9uQ0kbcUL1d3O9lrSKtPI6aUXdae0ET+4gMSYX3iCa3HtDqDht
-DMgWkf3ILEWIFNkDikktll8u+1mBELOJCGKIyr1kyhStZSGXm9AfQFRbk9eQGqSbrTAak/sdczeU
-owQRgfQalnG/QawIC+PtaocBZWB8xb/swlSKXzzeseCfiijC9AXoCx6ukweCmTrzdQDMKB6nfIgG
-tf1Gi7hMN8iTkReuP1Dfb3GzL14SHxxUwYndu9nvfkVkEiRcoi+9ybLRuZ/HvKyq1AYaElnImtZK
-tFYQFRupV0NCKxNTNju4esnO/B5/lsiex6vbVdg5Jhydxccv7H6+1hh9JKKgvuJ7v/0WXZS/6UH7
-JDUhjnO3xpvdVqZBLf7w8f/zyZ/AF83AwG2OaC3F1S0Ej7sRRzswA3nos27KtB+RFTZRbmf6NkDj
-UfGQH0MZ62/YJ9wUTxYOyCZw86HwLynQItsCBfa2YFk505eei9oWguUxWbUiAKPDi+8dMBIWbKnW
-3alJIS6XtDqRBTPf5Ida8bRmfhoNacuK/ikqVYevtlCu3akHvdm3Nr2mnFisKs8bts4vZsZU5aZi
-SscHlGb5F3IXC9AAuVDTzcwv/+sIW6BTlfwHI16sXjsRVtq0whaEAO85qYK1Wz6fL1DCmtIBj4w9
-g58N10M0gLPZFUw0bFCh60XcmtC7+Qsjpgf5Z48hLV+XvzI8dpl8PDSN5rfmzMzZ3kA7kDX4Dhy5
-6khxJ5g+6ufLoamf0/e0XK4/opArbO6FB+SZ9SOzVCPklcsu+YWL0b2X6kq4DCHLynEGl4Y+JRL2
-QXs1APXkC73X6SdKVfke8ukV8uos6TBszLtb5SWuJwNrUoX8DRW4r1YU0TTpzg72ibTKjtJr/Jtv
-KcJJyBKzOPys2dGvqboBAE/rIkUdlytINGJXFCYZaxVasdZzXKqF964Ws2hRCU+XcbVBE3Ij4SEq
-9InFN8NhGGuQwFNgrof+/8+GPJFjVzQH52xbbQtCjLYiIU5n5LMaaZjasXaNz96fhaawVn2FU7Mh
-RZUick853RhtD5wY8JZf6sRLpKkezfrwDljiLWvbA+iqFU/jcF0by3Ngc9OvUh6bUCSJ/YoBosd0
-M0n/mx08cOrP2Ybvb5LzM//I1LGZPPYFT/kz2/5PstH/8OFdQP47d0tKdNj2j9lc82VYXknG46cb
-Doh8Se/+6s2UCNeglC+UCU7qWnPbBBgd4sxWLjgUNHltSOdEPuwRXxuOA7JJbki+753rhK6VI6oN
-v+7tM3izzVQOXiF8UAgfOnQ4Y+6NusSxurVJ1c2q34WvKuWkA0yMRcEtFyI6BvgHyqKaZdBOJbFZ
-+qf5rcTXE82sjgYF14UTd9vTvDKqDeR1BFEf41NwfEyJWaqOZ0zTXa8wrGCAjW/t3c6uFVcCtq4g
-5HEBCRXWAtMIj4zheBrHrVEMIaXccBNYSGDvFmw/gUJvf2ADogPbv59CydkuYOSDtQo26eL+i37L
-WCCdT7/A4LL+OlkWDvXVsi0iGCD7Ul8r8k3+HVIfs07wGbWrXDZv222khK6W8vVMwwZkdICF/zTw
-ijTe5/kyAG0kOWCZFpHBJV1qiH8OkQnk/brAgXUsBLKwJ2w/K4v8V4y/I0CyC5LhXEqJTCwlKN8P
-FbhDqQOxQO85SwkwmIuF305HiUp3DsWtGCHJCiI35VlsviT0u+ZHuQduSziq1bKvsjkCd4hI0Iqk
-TUmh608BX7E/bOwXyoVX30Yr1zZ89+L3fvhFX6cBLw/2JdHNS+ITMYaDV+Ul9a0GRKpk44nn8i2T
-N2xN3NZBl9qYPFjnesHamjA67ljJz78+txnhzAVsE/OARW0U8QzLR5wV0WQxR9ys0Acayy33R1ka
-PlK+VkkWCZU3wHZOQFohcVai5st6LMe4h7FMX/PfpovQkZWLpYFydhV+0xmjlWtQZzFFYaFvwYi+
-8348zQSS/xDB1zu9mM+2cpNboF9rrzT5o66ed4qCC0lifhCndedpYJfsGZvZSmKrntBi+2eFPJBk
-OoCq8W/5UkAonyiPj8eHI6WNImSUEqfHFRl6OrbIpY0S9XPhh43XvNxFbH7+odc8ktrtmCXSyMGv
-rrX0KRrJDlRE9s1OhdDe8f81z5ZBlUI/19iJ0a5DNroMkVCrSf4YwaRWwZ1PLiibHHGtQtwm5I27
-+bOcpc9HaMPpYozwodAOsc9s3R84T+D/13rnV+QVviY5thoAU0pmYvryLV5yEMf0KtnLmX3sWenr
-8OisPNnqUtP3cZLy8+1AaVINKWc7+0nibWqPT6im+0lsMVcWZyIg7NclX5HlBWlpYD6PBHGAwmRw
-WQHhpubs+ETyUcuNdzI4db8Xo+dAQLLJxosjZd1m9OWYuNX370A1eSRgpSR1THuA+uJ5q7+1HFA6
-2rjDuDqQ8gOkbJj9b/ozrbLk18A6Q2277zte8/WrQjb6LlWATT6LUiwVRiTWpTH8YWXNyLyjpeGt
-LZ4JbOsVHyMaWnc2bSsmDo8KNVJv+lA8n4z+xh4hkwyJ9mGABebJWP7VvgpkPnsXl3YMEM/CvR+P
-R4qUdiEf7AwrPXbHaXU47oPgiiNvOiIkDVhadeoBkwynFT8ajMI61a9BplQPfyeA3fPxFDiOoKtO
-XV02X+e9ZXU1ISZ0lZ0oIKjEmxSgHykO8O20a/K6zzytyyrOuq3Quf9JJ+QeDb56o3wRVNZahWAl
-b8eVqdu9I7ln7LuSa31ovl8Y+bF2UDnv4y1kiN++nu547hHqGpDuc6NWHkPK9KpCd6VQ4RjM2crr
-LxCwH6SpXTLZinTAKinILWuyDVpugkOmhlRdw0c1VVr/vvRoy6dP7+JJYRKPuSGF3WEAKE7cGw0M
-cMU09pHqRFf40EhcEHuxf9rdUlZwQ55ynCWUWWY6UFjzKjbmdN/xnuLmGOHH/T/DbJy4BPhIm8nK
-DWEEQBTfLVbXKGxnWLtkfAa6aXMCil7fsbZm+kO+z4s7YdFtJxbZbZS70UyKUo3weKvUQ4CNgz14
-zYRATLSx4WQ4tYjW/nf847TN+CVXd04Jus3W5eVukfVTrsbHllqSS2wtguiCwGuhM/Hly8BTVZk9
-mfkYv2o1eorH6NtaanaDmF74OGv6PkKkiSfgVoGg1xI3QYuz01aBSb8/uBedhQiwPjq+8S3vYG50
-yIXvIsUao2eiAkyVr7BqklgJUR8WkSXLBGGPQDVpBS2Fv2ewrAqUS6e3HGPgssBAWMKu/E7nEe+G
-d1BxxrKb4GN1Ln6BqWGPi4nv4guG1s9IfFYdDN2JZq8NWMU0JO2neE1jUQ3BdWCHtDc7/iV8k9A0
-tQX6FBiyF93Nx151sNqAYHlJfFmDdw/TJ+EklCZRN00eyYGMv5gE5NwA+l87VpxyKRmL9SWdJYTt
-tR8ZkvUjNaHLbhT6jvDQmwwL9Ojo2HUMFzm0XIg0a98FucdVNR8M725PBXTcKLFQ9gqK7g+QhNL6
-JejRm6Eh09kF4t6Tta3NB6D3JlSOabYPualN+lqiIJrgKOMu7+dJOCm6DK4fpUHxpEnh/K+EOZLT
-odNPU9kkKYrlq5mQaJxH7bdfO7E2xUuKlaaU1pFrPUctj7I0+XTaLMF91Wrg08k/64om/r81Q9SY
-7S08dLpLGH/zwa/Mr/52UbdxFxEVp3ZDFdd0eI3kYYsqvWNsMR/Lzg1rc2mm5qgKHzkbtV7s5CkN
-SV2Ou7mQSuxT/C/7n8ELmeQg29sPbqNcRNrvdoAeONSSXO9nRDKYK/aJBvFZyZTPyNSyMW322igh
-Cs+KskDoESObKLOghvES+u20jXizIZ7gf/sfm6CDLaaaL5k5ht+NdJokJN/WwD62syU4vGU647fn
-78JMDsG2785Khc49YckMHL953YQIlBFbf2NTr0USaWcrDmy+xQnARTon43gEyo8D4p/ovhSmwaVV
-YKkU26DNNfwXCQSfXBtBLsysp6Kc9oL1i1NX5XWOx+ZoN6UKJqoRASgy5DENXu2mqAuWHGTV1vnD
-mE4mnHXwpK64eo+IvN/v0QKGd870A/YcxO7S+Nz4vwfEW5/0pexylquKynduRsEQJI8PUyeEqUr+
-x0jwn0DcTki/n0IxlseIT+n8STWxZp23Php454yyd2f/L2JrokXCWyvYckMxzOVggpev6z+6GL8e
-stDEg1MAeZrcIDMe8TLkHv4nox0TRcI1LLftuYIpJV/rBhH4Od1wlCTewHSEM7i+rqSpwMDZtl8w
-/Ze85Sape2kzXsgLVY/znXq8JYEAk80B3WzcYnCetAgvy8bAEp942d3OBGoga74wTX/VX/jMptdn
-+gIXNhiSbO2giunzs+bqjdNViLQuA4WunzEP44sxXtXXk+9NkES4BYeoRdcyiHV2Bjzc/9QRvedj
-9aDMscPafH+xA2iC5WP0ADM6CrVqspxQ+nWV9XvN3ek9v2NNuvA0JpPs/b6vBOCizab3s7gkAyUq
-l5PiqAnv21+gFnTopQBRR9J9vhp7YM3jnxeD83CGceYLyB9IpODraiPQwflV1XlXBPkrEkP80Rc3
-3xtb2KHvWXwLA+cfU0BXHM3UMoj31aPHIKNWT4V0Yvgcsda9zxM+NhM2Yzzvz9u4FTmM2CWqWDHK
-ioQbsfgu7uKPX8OQZb9/aqrLBuMLxCV6vQSyd6ebkLZGp2qy/MQD1b4WpAAfYiy2jh50zzeqiStL
-1K9i4FlAPqoBHFJDAue70/bemW767tgIt4TYqOGXNok+4K450l3Z5N2C/trHYQFMyC44fv2L5qqJ
-w+rHczQn86mauJ7W2ECDybZXKlrobeih4JYRTY1xtXtIHYFHN3uzSHwyKeOHNe3p5dBBmRzFAQuH
-xOswNiUNxe6v9gFGACuXgaH6p0eMK8qZtgeHDnQ6Jh7ex2mu+Y9RCyeXkPd1agvUK8hbAJKKPFHH
-cEEw/cAm1Gimtcg5Kv7+TA==
+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
+lGLIZ4m/qw4I+9JA
 `pragma protect end_protected
 module FifoShReg8 (
   Data,

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 164 - 124
src/src/WrapFifoChain/FifoShReg8/temp/FIFOHS/FifoShReg8_syn.rpt.html


+ 3 - 3
src/src/WrapFifoChain/FifoShReg8/temp/FIFOHS/FifoShReg8_syn_resource.html

@@ -31,9 +31,9 @@ table td.label { width: 20%; white-space: nowrap; min-width: 20px; background-co
 </tr>
 <tr>
 <td class="label">FifoShReg8 (C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
-<td align = "center">19</td>
-<td align = "center">-</td>
-<td align = "center">18</td>
+<td align = "center">25</td>
+<td align = "center">2</td>
+<td align = "center">23</td>
 <td align = "center">-</td>
 <td align = "center">1</td>
 <td align = "center">-</td>

+ 1 - 1
src/src/WrapFifoChain/FifoShReg8/temp/FIFOHS/FifoShReg8_syn_rsc.xml

@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Module name="FifoShReg8" Register="19" Lut="18" Bsram="1" T_Register="19(19)" T_Lut="18(18)" T_Bsram="1(1)"/>
+<Module name="FifoShReg8" Register="25" Alu="2" Lut="23" Bsram="1" T_Register="25(25)" T_Alu="2(2)" T_Lut="23(23)" T_Bsram="1(1)"/>

+ 1 - 1
src/src/WrapFifoChain/FifoShReg8/temp/FIFOHS/FifoShReg8_tmp.v

@@ -4,7 +4,7 @@
 //Tool Version: V1.9.9.03 (64-bit)
 //Part Number: GW1N-UV9QN88C6/I5
 //Device: GW1N-9
-//Created Time: Thu Nov 28 11:57:53 2024
+//Created Time: Wed Dec 11 18:11:52 2024
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------

+ 4 - 4
src/src/WrapFifoChain/FifoShReg8/temp/FIFOHS/fifo_parameter.v

@@ -1,6 +1,6 @@
-parameter WDEPTH = 2;
-parameter ASIZE = 1;
+parameter WDEPTH = 4;
+parameter ASIZE = 2;
 parameter WDSIZE = 8;
-parameter RDEPTH = 2;
-parameter RASIZE = 1;
+parameter RDEPTH = 4;
+parameter RASIZE = 2;
 parameter RDSIZE = 8;