Bladeren bron

Добавил CtrlCp2444Wrapper

Anatoliy Chigirinskiy 1 jaar geleden
bovenliggende
commit
be9f4cf3c4
30 gewijzigde bestanden met toevoegingen van 4521 en 1077 verwijderingen
  1. 1 1
      src/src/ClkGen/ClkGen.v
  2. 188 0
      src/src/FifoCtrl/FifoCtrl.v
  3. 142 0
      src/src/SpiM/QuadSpiM.v
  4. 111 0
      src/src/SpiM/SpiM.v
  5. 44 23
      src/src/Top/TopBochV3.v
  6. 105 0
      src/src/WrapFifoChain/CtrlCp2444Wrapper.v
  7. 25 15
      src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444.ipc
  8. 252 160
      src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444.v
  9. 616 400
      src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444.vo
  10. 6 5
      src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444_tmp.v
  11. 20 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FIFOHS.prj
  12. 45 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FifoCtrlCp2444.log
  13. 305 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FifoCtrlCp2444.vg
  14. 1420 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FifoCtrlCp2444_syn.rpt.html
  15. 46 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FifoCtrlCp2444_syn_resource.html
  16. 2 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FifoCtrlCp2444_syn_rsc.xml
  17. 24 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FifoCtrlCp2444_tmp.v
  18. 5 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/fifo_define.v
  19. 6 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/fifo_parameter.v
  20. 1 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/project.ini
  21. 2 2
      src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes.ipc
  22. 237 119
      src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes.v
  23. 421 93
      src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes.vo
  24. 1 1
      src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes_tmp.v
  25. 237 119
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes.vg
  26. 250 130
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_syn.rpt.html
  27. 3 3
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_syn_resource.html
  28. 1 1
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_syn_rsc.xml
  29. 1 1
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_tmp.v
  30. 4 4
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/fifo_parameter.v

+ 1 - 1
src/src/ClkGen/ClkGen.v

@@ -35,7 +35,7 @@ assign Clk25Mhz_o = clk25Mhz;
 //==========================================================================//
 //									CODING									//
 //==========================================================================//
-GowinInternalOsc25MHZ GowinInternalOsc25MHZ
+GowinInternalOsc25MHz GowinInternalOsc25MHz
 (
 	.oscout(clk25Mhz)
 ); 

+ 188 - 0
src/src/FifoCtrl/FifoCtrl.v

@@ -0,0 +1,188 @@
+////////////////////////////////////////////////////////////////////////////////////////////
+// Company:         TAIR
+// Engineer:        Chigrinskiy A.  
+// 
+// Create Date:     18/04/2024 
+// Design Name: 
+// Module Name:     FifoCtrl
+// Project Name:    SB_TMSG44V1_FPGA
+// Target Devices:  Board: SB_TMSG44v1. FPGA: GW1N-LV9PG256C6/I5
+// Tool versions:
+// Description:     This module is a controller for the FIFOs. It controls the read and write pointers of the FIFOs.
+//
+// Dependencies:  
+// Revision: 
+// Revision 1.0 - File Created
+// Additional Comments: 
+//
+////////////////////////////////////////////////////////////////////////////////////////////
+module FifoCtrl #(
+    parameter IN_WIDTH = 24,
+    parameter WR_NUM = 1,
+    parameter OUT_WIDTH = 24
+)(
+    input WrClk_i,
+    input RdClk_i,
+    input Rst_i,
+    input [IN_WIDTH-1:0] Data_i,
+    input Val_i,
+    input BusySpiM_i,
+    input FifoFull_i,
+    input FifoEmpty_i,
+
+    output [OUT_WIDTH-1:0] Data_o,
+    output reg ReadEn_o,
+    output reg  WriteEn_o,
+    output reg ValRdData_o
+
+);
+//================================================================================
+//	LOCAL PARAMETERS
+//================================================================================
+localparam DATA_WIDTH = WR_NUM*IN_WIDTH;
+
+//================================================================================
+//	REG/WIRE
+//================================================================================
+reg [DATA_WIDTH-1:0] dataReg;
+reg [1:0]  wrCnt;
+
+//================================================================================
+//  ASSIGNMENTS
+//================================================================================
+assign Data_o = dataReg[OUT_WIDTH-1:0];
+
+//================================================================================
+//	CODING
+//================================================================================
+always @(posedge WrClk_i) begin 
+    if (Rst_i) begin 
+        wrCnt <= 0;
+    end
+    else begin 
+        if (Val_i) begin 
+            wrCnt <= wrCnt + 1;
+        end
+        else if (wrCnt == WR_NUM) begin 
+            wrCnt <= 0;
+        end
+    end
+end
+
+always @(posedge WrClk_i) begin 
+    if (Rst_i) begin 
+        dataReg <= 0;
+    end
+    else begin
+        if (WR_NUM>1) begin
+            case (WR_NUM)
+            4: begin 
+                case (wrCnt)  
+                    0 : begin 
+                        if (Val_i) begin 
+                            dataReg[(4*IN_WIDTH)-1:(3*IN_WIDTH)] <= Data_i;
+                        end
+                    end
+                    1 : begin 
+                        if (Val_i) begin 
+                            dataReg[(3*IN_WIDTH)-1:(2*IN_WIDTH)] <= Data_i;
+                        end
+                    end
+                    2:  begin
+                        if (Val_i) begin
+                            dataReg[(2*IN_WIDTH)-1:IN_WIDTH] <= Data_i;
+                        end
+                    end
+                    3: begin
+                        if (Val_i) begin 
+                        dataReg[IN_WIDTH-1:0] <= Data_i;
+                        end
+                    end
+                endcase
+            end
+            3: begin
+                case (wrCnt)
+                0 : begin 
+                    if (Val_i) begin 
+                        dataReg[(3*IN_WIDTH)-1:(2*IN_WIDTH)] <= Data_i;
+                    end
+                end
+                1 : begin 
+                    if (Val_i) begin 
+                        dataReg[(2*IN_WIDTH)-1:IN_WIDTH] <= Data_i;
+                    end
+                end
+                2 : begin 
+                    if (Val_i) begin 
+                        dataReg[IN_WIDTH-1:0] <= Data_i;
+                    end
+                end
+                endcase
+            end
+            2 : begin 
+                case (wrCnt)
+                0: begin 
+                    if (Val_i) begin 
+                        dataReg[(2*IN_WIDTH)-1:IN_WIDTH] <= Data_i;
+                    end
+                end
+                1: begin 
+                    if (Val_i) begin 
+                        dataReg[IN_WIDTH-1:0] <= Data_i;
+                    end
+                end
+                endcase
+            end
+            endcase
+        end
+        else begin
+            if (Val_i) begin 
+                dataReg[IN_WIDTH-1:0] <= Data_i;
+            end
+        end
+    end
+end
+
+always @(posedge WrClk_i) begin
+    if (Rst_i) begin 
+        WriteEn_o <= 1'b0;
+    end
+    else begin  
+        if (Val_i && wrCnt == WR_NUM-1 && !FifoFull_i) begin
+            WriteEn_o <= 1'b1;
+        end
+        else begin 
+            WriteEn_o <= 1'b0;
+        end
+    end
+end
+
+always @(posedge RdClk_i) begin
+    if (Rst_i) begin 
+        ReadEn_o <= 1'b0;
+    end
+    else begin  
+        if (!FifoEmpty_i && !BusySpiM_i) begin 
+            ReadEn_o <= 1'b1;
+        end
+        else begin 
+            ReadEn_o <= 1'b0;
+        end
+    end
+end
+
+always @(posedge RdClk_i) begin 
+    if (Rst_i) begin 
+        ValRdData_o <= 1'b0;
+    end
+    else begin
+        if (!FifoEmpty_i && !BusySpiM_i) begin 
+            ValRdData_o <= 1'b1;
+        end
+        else begin 
+            ValRdData_o <= 1'b0;
+        end
+    end
+end
+
+endmodule

+ 142 - 0
src/src/SpiM/QuadSpiM.v

@@ -0,0 +1,142 @@
+////////////////////////////////////////////////////////////////////////////////////////////
+// Company:         TAIR
+// Engineer:        Chigrinskiy A.  
+// 
+// Create Date:     18/04/2024 
+// Design Name: 
+// Module Name:     SPIm
+// Project Name:    SB_TMSG44V1_FPGA
+// Target Devices:  Board: SB_TMSG44v1. FPGA: GW1N-LV9PG256C6/I5
+// Tool versions:
+// Description:     This module implements SPI master interface
+//
+// Dependencies:  
+// Revision: 
+// Revision 1.0 - File Created
+// Additional Comments: 
+//
+////////////////////////////////////////////////////////////////////////////////////////////
+module QuadSpiM #(
+    parameter DATA_MAX_WIDTH = 32
+)(
+    input Clk_i,
+    input Rst_i,
+    input Val_i,
+    input [DATA_MAX_WIDTH-1:0] SpiData_i,
+    input [6:0] WidthCurrent_i,
+
+    output Ss_o,
+    output  Mosi0_o,
+    output  Mosi1_o,
+    output  Mosi2_o,
+    output  Mosi3_o,
+    output Sck_o,
+    output Busy_o
+);
+
+//================================================================================
+//FUNCTIONS
+//================================================================================
+function integer log2;
+input [31:0] value;
+	begin
+		log2 = 0;
+		while (value > 1) begin
+			value   = value >> 1;
+			log2    = log2 + 1;
+		end
+		if	((2**log2)<DATA_MAX_WIDTH)	begin
+			log2	=	log2+1;
+		end	
+	end
+endfunction
+
+//================================================================================
+//	REG/WIRE
+//================================================================================
+localparam QSPI_MAX_WIDTH = DATA_MAX_WIDTH/4;
+
+reg [log2(QSPI_MAX_WIDTH)-1:0] ssCnt;
+reg [QSPI_MAX_WIDTH-1:0] mosiReg0;
+reg [QSPI_MAX_WIDTH-1:0] mosiReg1;
+reg [QSPI_MAX_WIDTH-1:0] mosiReg2;
+reg [QSPI_MAX_WIDTH-1:0] mosiReg3;
+reg	ssReg;
+
+wire [7:0] shift;
+wire [3:0] qSpiCntThreshold; 
+
+//================================================================================
+//  ASSIGNMENTS
+//================================================================================
+assign Ss_o = ssReg;
+
+assign Mosi0_o = (!ssReg) ? mosiReg0[5] : 1'b0;
+assign Mosi1_o = (!ssReg) ? mosiReg1[5] : 1'b0;
+assign Mosi2_o = (!ssReg) ? mosiReg2[5] : 1'b0;
+assign Mosi3_o = (!ssReg) ? mosiReg3[5] : 1'b0;
+
+assign Sck_o = (!ssReg) ? Clk_i : 1'b0;
+assign Busy_o = !ssReg;
+
+assign shift = DATA_MAX_WIDTH - WidthCurrent_i;
+assign qSpiShift = shift>>2;
+assign qSpiCntThreshold = WidthCurrent_i>>2; 
+
+//================================================================================
+//	CODING
+//================================================================================
+
+always @(negedge Clk_i) begin 
+    if (Rst_i) begin 
+        ssCnt <= 7'h0;
+    end
+    else begin
+        if (!ssReg) begin
+			ssCnt <= ssCnt+1;
+		end else begin
+			ssCnt <= 0;
+		end
+    end
+end
+
+always @(negedge Clk_i) begin 
+    if (Rst_i) begin 
+        mosiReg0 <= 0;
+        mosiReg1 <= 0;
+        mosiReg2 <= 0;
+        mosiReg3 <= 0;
+    end
+    else begin 
+        if (!ssReg) begin 
+            mosiReg0 <= mosiReg0 << 1;
+            mosiReg1 <= mosiReg1 << 1;
+            mosiReg2 <= mosiReg2 << 1;
+            mosiReg3 <= mosiReg3 << 1;
+        end
+        else begin
+            if (Val_i) begin
+                mosiReg0 <= SpiData_i[23:18];
+                mosiReg1 <= SpiData_i[17:12];
+                mosiReg2 <= SpiData_i[11:6];
+                mosiReg3 <= SpiData_i[5:0];
+            end
+        end
+    end
+end
+
+always @(negedge Clk_i) begin 
+    if (Rst_i) begin 
+        ssReg <= 1'b1;
+    end
+    else begin 
+        if (Val_i) begin
+			ssReg <= 0;
+		end
+		if (ssCnt == qSpiCntThreshold-1) begin
+			ssReg <= 1;
+		end
+    end
+end
+
+endmodule

+ 111 - 0
src/src/SpiM/SpiM.v

@@ -0,0 +1,111 @@
+////////////////////////////////////////////////////////////////////////////////////////////
+// Company:         TAIR
+// Engineer:        Chigrinskiy A.  
+// 
+// Create Date:     18/04/2024 
+// Design Name: 
+// Module Name:     SPIm
+// Project Name:    SB_TMSG44V1_FPGA
+// Target Devices:  Board: SB_TMSG44v1. FPGA: GW1N-LV9PG256C6/I5
+// Tool versions:
+// Description:     This module implements SPI master interface
+//
+// Dependencies:  
+// Revision: 
+// Revision 1.0 - File Created
+// Additional Comments: 
+//
+////////////////////////////////////////////////////////////////////////////////////////////
+module SpiM #(
+    parameter DATA_WIDTH = 24
+)(
+    input Clk_i,
+    input Rst_i,
+    input Val_i,
+    input [DATA_WIDTH-1:0] SpiData_i,
+
+    output Ss_o,
+    output Mosi_o,
+    output Sck_o,
+    output Busy_o
+);
+
+//================================================================================
+//FUNCTIONS
+//================================================================================
+function integer log2;
+input [31:0] value;
+	begin
+		log2 = 0;
+		while (value > 1) begin
+			value   = value >> 1;
+			log2    = log2 + 1;
+		end
+		if	((2**log2)<DATA_WIDTH)	begin
+			log2	=	log2+1;
+		end	
+	end
+endfunction
+
+//================================================================================
+//	REG/WIRE
+//================================================================================
+reg [log2(DATA_WIDTH)-1:0] ssCnt;
+reg [DATA_WIDTH-1:0] mosiReg;
+reg	ssReg;
+
+//================================================================================
+//  ASSIGNMENTS
+//================================================================================
+assign Ss_o = ssReg;
+assign Mosi_o = (!ssReg) ? mosiReg[DATA_WIDTH-1] : 1'b0;
+assign Sck_o = (!ssReg) ? Clk_i : 1'b0;
+assign Busy_o = !ssReg;
+
+//================================================================================
+//	CODING
+//================================================================================
+always @(negedge Clk_i) begin 
+    if (Rst_i) begin 
+        ssCnt <= 7'h0;
+    end
+    else begin
+        if (!ssReg) begin
+			ssCnt <= ssCnt+1;
+		end else begin
+			ssCnt <= 0;
+		end
+    end
+end
+
+always @(negedge Clk_i) begin 
+    if (Rst_i) begin 
+        mosiReg <= 0;
+    end
+    else begin 
+        if (!ssReg) begin 
+            mosiReg <= mosiReg << 1;
+        end
+        else begin
+            if (Val_i) begin
+                mosiReg <= SpiData_i;
+            end
+        end
+    end
+end
+
+always @(negedge Clk_i) begin 
+    if (Rst_i) begin 
+        ssReg <= 1'b1;
+    end
+    else begin 
+        if (Val_i) begin
+			ssReg <= 0;
+		end
+		if (ssCnt == DATA_WIDTH-1) begin
+			ssReg <= 1;
+		end
+    end
+end
+
+endmodule

+ 44 - 23
src/src/Top/TopBochV3.v

@@ -1,8 +1,8 @@
 module TopBochv3 #(
     parameter WORDWIDTH = 24,
-    parameter SSPIWORDWIDTH = 24,
+    parameter SSPIWORDWIDTH = 24
 )
-
+(
 input Clk_i,
 input Rst_i,
 
@@ -16,30 +16,31 @@ input Mosi2_i,
 input Mosi3_i,
 
 /* LMK_A */
-output LmkAMosi_o,
-output LmkACs_o,
-output LmkASck_o,
-input  LmkAMiso_i,
+output reg  LmkAMosi_o,
+output reg  LmkACs_o,
+output reg  LmkASck_o,
+input       LmkAMiso_i,
 /* LMK_B */
-output LmkBMosi_o,
-output LmkBCs_o,
-output LmkBSck_o,
-input  LmkBMiso_i,
+output  reg LmkBMosi_o,
+output  reg LmkBCs_o,
+output  reg LmkBSck_o,
+input       LmkBMiso_i,
 /*  CtrlCp2444v1  */
-output CtrlCp2444v1Mosi0_o,
-output CtrlCp2444v1Mosi1_o,
-output CtrlCp2444v1Mosi2_o,
-output CtrlCp2444v1Mosi3_o,
-output CtrlCp2444v1Cs_o,
-output CtrlCp2444v1CsFlash_o,
-output CtrlCp2444v1Sck_o,
-output CtrlCp2444v1Rst_o,
-input  CtrlCp2444v1Ld_i,
+output      CtrlCp2444v1Mosi0_o,
+output      CtrlCp2444v1Mosi1_o,
+output      CtrlCp2444v1Mosi2_o,
+output      CtrlCp2444v1Mosi3_o,
+output      CtrlCp2444v1Cs_o,
+output  reg    CtrlCp2444v1CsFlash_o,
+output      CtrlCp2444v1Sck_o,
+output      CtrlCp2444v1Rst_o,
+input       CtrlCp2444v1Ld_i,
 /*  HUB-1854  */
-output TfeClk_o,
-output TfeMosi_o,
-output TfeCs_o,
-input  TfeMiso_i,
+output reg TfeClk_o,
+output reg TfeMosi_o,
+output reg TfeCs_o,
+input      TfeMiso_i
+);
 //***********************************************
 //	                REG/WIRE
 //***********************************************
@@ -176,5 +177,25 @@ PacketAnalyzer4Mosi PacketAnalyzer4Mosi
     .Busy_o					        (busyMosi4)
 );
 
+CtrlCp2444Wrapper #(
+    .IN_WIDTH(WORDWIDTH),
+    .WR_NUM(1),
+    .OUT_WIDTH(WORDWIDTH)
+) CtrlCp2444Wrapper
+(
+    .WrClk_i                        (clk60),
+    .RdClk_i                        (clk60),
+    .Rst_i                          (initRst),
+    .Data_i                         (spiData),
+    .Val_i                          (spiDataVal),
+    .Ss_o                           (CtrlCp2444v1Cs_o),
+    .Sck_o                          (CtrlCp2444v1Sck_o),
+    .Mosi0_o                        (CtrlCp2444v1Mosi0_o),
+    .Mosi1_o                        (CtrlCp2444v1Mosi1_o),
+    .Mosi2_o                        (CtrlCp2444v1Mosi2_o),
+    .Mosi3_o                        (CtrlCp2444v1Mosi3_o)
+
+);
+
 
 endmodule

+ 105 - 0
src/src/WrapFifoChain/CtrlCp2444Wrapper.v

@@ -0,0 +1,105 @@
+// Company:         TAIR
+// Engineer:        Chigrinskiy A.  
+// 
+// Create Date:     18/04/2024 
+// Design Name: 
+// Module Name:     CtrlCp2444Wrapper
+// Project Name:    SB_TMSG44V1_FPGA
+// Target Devices:  Board: SB_TMSG44v1. FPGA: GW1N-LV9PG256C6/I5
+// Tool versions:
+// Description:    This module is a wrapper for the LMX Fifo, LMX Fifo Controller and SPI Master modules.
+//
+// Dependencies:  
+// Revision: 
+// Revision 1.0 - File Created
+// Additional Comments: 
+//
+////////////////////////////////////////////////////////////////////////////////////////////
+module CtrlCp2444Wrapper #(
+    parameter IN_WIDTH = 24,
+    parameter WR_NUM = 1,
+    parameter OUT_WIDTH = 24,
+    parameter DATA_WIDTH = 24
+)(
+    input WrClk_i,
+    input RdClk_i,
+    input Rst_i,
+    input [IN_WIDTH-1:0] Data_i,
+    input Val_i,
+
+    output Ss_o,
+    output Sck_o,
+    output Mosi0_o,
+    output Mosi1_o,
+    output Mosi2_o,
+    output Mosi3_o
+
+);
+//================================================================================
+//	                                REG/WIRE
+//================================================================================    
+wire [OUT_WIDTH-1:0] dataFromFifoCtrl;
+wire [OUT_WIDTH-1:0] dataFromFifo;
+wire readEn;
+wire writeEn;
+wire valRdData;
+wire busySpiM;
+wire fifoFull;
+wire fifoEmpty;
+//==========================================================================//
+//									ASSIGNMENTS								//
+//==========================================================================//
+//==========================================================================//
+//									CODING									//
+//==========================================================================//
+FifoCtrl #(
+	.IN_WIDTH		(IN_WIDTH),
+	.WR_NUM			(WR_NUM),
+	.OUT_WIDTH		(OUT_WIDTH)
+) FifoCtrlColdPart
+(
+	.WrClk_i		(WrClk_i),
+	.RdClk_i		(RdClk_i),
+	.Rst_i			(Rst_i),
+	.Data_i			(Data_i),
+	.Val_i			(Val_i),
+	.BusySpiM_i		(busySpiM),
+	.FifoFull_i		(fifoFull),
+	.FifoEmpty_i	(fifoEmpty),
+	.Data_o			(dataFromFifoCtrl),
+	.ReadEn_o		(readEn),
+	.WriteEn_o		(writeEn),
+	.ValRdData_o	(valRdData)
+);
+
+FifoCtrlCp2444 FifoCtrlCp2444  (
+	.Data	(dataFromFifoCtrl),
+	.WrClk	(WrClk_i),
+	.RdClk	(RdClk_i),
+	.Reset	(Rst_i),
+	.WrEn	(writeEn),
+	.RdEn	(readEn),
+	.Full	(fifoFull),
+	.Empty	(fifoEmpty),
+	.Q		(dataFromFifo)
+);
+
+QuadSpiM #(
+    .DATA_MAX_WIDTH	(DATA_WIDTH)
+)QuadSpiM(
+    .Clk_i		(RdClk_i),
+    .Rst_i		(Rst_i),
+    .Val_i		(valRdData),
+    .SpiData_i	(dataFromFifo),
+    .WidthCurrent_i	(7'd24),
+    .Ss_o		(Ss_o),
+    .Mosi0_o	(Mosi0_o),
+    .Mosi1_o	(Mosi1_o),
+    .Mosi2_o	(Mosi2_o),
+    .Mosi3_o	(Mosi3_o),
+    .Sck_o		(Sck_o),
+    .Busy_o	    (busySpiM)
+);
+
+
+endmodule

+ 25 - 15
src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444.ipc

@@ -3,23 +3,33 @@ ipc_version=4
 file=FifoCtrlCp2444
 module=FifoCtrlCp2444
 target_device=gw1n9-022
-type=fifo_sc_hs
+type=fifo_hs
 version=1.0
 
 [Config]
-ALEMPTY=0
-ALFULL=0
-COUNT_W=false
-DEPTH_W=3
-ECC=false
-EN_ALEMPTY=false
-EN_ALFULL=false
-FWFT=true
-IMPL=0
-IO_INSERTION=false
+AlmostEmptyFlag=false
+AlmostEmptyFlagItem=Empty_Single Threshold Constant Parameter
+AlmostFullFlag=false
+AlmostFullFlagItem=Full_Single Threshold Constant Parameter
+BSRAM=true
+ControlledByRdEn=false
+ECCSelected=false
+EmptyClear=1
+EmptySet=1
+EnReset=true
+FirstWordFallThrough=true
 LANG=0
-OUTPUT_REG=false
-RDEN_CTRL=false
-STD=false
+FullClear=1
+FullSet=1
+OutputRegistersSelected=false
 Synthesis_tool=GowinSynthesis
-WIDTH_W=1
+REG=false
+ReadDataNum=false
+ReadDataWidth=24
+ReadDepth=16
+ResetSynchronization=true
+SSRAM=false
+StandardFIFO=false
+WriteDataNum=false
+WriteDataWidth=24
+WriteDepth=16

+ 252 - 160
src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444.v

@@ -1,13 +1,11 @@
 //
 //Written by GowinSynthesis
 //Tool Version "V1.9.9.03 (64-bit)"
-//Fri Nov 22 15:53:09 2024
+//Fri Nov 22 18:10:59 2024
 
 //Source file index table:
-//file0 "\C:/Gowin/Projects/BOCHv3_FPGA/src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/fifo_sc_hs_define.v"
-//file1 "\C:/Gowin/Projects/BOCHv3_FPGA/src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/fifo_sc_hs_parameter.v"
-//file2 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_SC_HS/data/fifo_sc_hs.v"
-//file3 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_SC_HS/data/fifo_sc_hs_top.v"
+//file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
 `timescale 100 ps/100 ps
 `pragma protect begin_protected
 `pragma protect version="2.3"
@@ -19,187 +17,281 @@
 `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
-JnZKJ7GaWVqDTszoy1iCRmKyKGMSHLaWm1japgoeI5ln2gYI1sxriYVd0aNeM4eiCTMzx0pKDdXz
-P99vGM4AhxvViICmU1WFMpRSoHum6dj2mmGd4ON+lhfqp6gSJTN1/JSrWj8CemGhSfRspWr7eFbv
-PuOOCsyDzoftY3DLJ23reHN0Ua+AXwukMupBAhj7qJicuinp1x8IaAluoFY3zp5dajSvgKQsczvs
-MLURMwoA47Wt/nDEEH1yjQgkjm27fqOwXZix+7K5Yr4hC38XWR5W9YuqfCSnwQ12/gQtEtMOGtdu
-S+f1ibT0m4sboaD1lgHAky6FI2Ar144lC2gg0g==
+ra4e19jaKxChOVWcGlR4oYlVfCrlu2E9kl67pMuBPuc9H3o59l4ZzTOens139fZc0oe6SVaMUzYk
+oZeSn/5VjCPA/7/HNzBABWeJUh9t7/MbXNcHfCSMR6kkxGZs1NXnGXC5o0/2mlSXU0HeAPnSJ8n7
+bMqEh5Cu1tzPTNtefRGBnhSs5u2Tg7r/dLD6bqREwDAOqw2EkXn97PO281InTXYYnKtI1NRr5rl6
+CWmrRVCIDjvOU5upezqV/nvIf3Vx2yslr9ehdhJPiXVHf05xKpXBJFjmFlV+FRX2tPnQNN/Cw5/I
+/WhL0a5m5Q0T2AupRINuArIPbC3VTG8SIcrMsg==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=7872)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=13056)
 `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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
-qo2t5tua
+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
+Shwm
 `pragma protect end_protected
 module FifoCtrlCp2444 (
   Data,
-  Clk,
+  Reset,
+  WrClk,
+  RdClk,
   WrEn,
   RdEn,
-  Reset,
   Q,
   Empty,
   Full
 )
 ;
-input [0:0] Data;
-input Clk;
+input [23:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
 input WrEn;
 input RdEn;
-input Reset;
-output [0:0] Q;
+output [23:0] Q;
 output Empty;
 output Full;
 wire VCC;
 wire GND;
-  \~fifo_sc_hs.FifoCtrlCp2444  fifo_sc_hs_inst (
-    .Clk(Clk),
+  \~fifo.FifoCtrlCp2444  fifo_inst (
     .Reset(Reset),
+    .RdClk(RdClk),
+    .WrClk(WrClk),
     .WrEn(WrEn),
     .RdEn(RdEn),
-    .Data(Data[0]),
+    .Data(Data[23:0]),
     .Empty(Empty),
     .Full(Full),
-    .Q(Q[0])
+    .Q(Q[23:0])
 );
   VCC VCC_cZ (
     .V(VCC)

File diff suppressed because it is too large
+ 616 - 400
src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444.vo


+ 6 - 5
src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444_tmp.v

@@ -4,18 +4,19 @@
 //Tool Version: V1.9.9.03 (64-bit)
 //Part Number: GW1N-UV9QN88C6/I5
 //Device: GW1N-9
-//Created Time: Fri Nov 22 15:53:09 2024
+//Created Time: Fri Nov 22 18:10:59 2024
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------
 
 	FifoCtrlCp2444 your_instance_name(
-		.Data(Data), //input [0:0] Data
-		.Clk(Clk), //input Clk
+		.Data(Data), //input [23:0] Data
+		.Reset(Reset), //input Reset
+		.WrClk(WrClk), //input WrClk
+		.RdClk(RdClk), //input RdClk
 		.WrEn(WrEn), //input WrEn
 		.RdEn(RdEn), //input RdEn
-		.Reset(Reset), //input Reset
-		.Q(Q), //output [0:0] Q
+		.Q(Q), //output [23:0] Q
 		.Empty(Empty), //output Empty
 		.Full(Full) //output Full
 	);

+ 20 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FIFOHS.prj

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE gowin-synthesis-project>
+<Project>
+    <Version>beta</Version>
+    <Device id="GW1N-9" package="QFN88" speed="6" partNumber="GW1N-UV9QN88C6/I5"/>
+    <FileList>
+        <File path="C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v" type="verilog"/>
+        <File path="C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v" type="verilog"/>
+    </FileList>
+    <OptionList>
+        <Option type="disable_insert_pad" value="1"/>
+        <Option type="include_path" value="C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data"/>
+        <Option type="include_path" value="C:/Gowin/Projects/BOCHv3_FPGA/src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS"/>
+        <Option type="output_file" value="FifoCtrlCp2444.vg"/>
+        <Option type="output_template" value="FifoCtrlCp2444_tmp.v"/>
+        <Option type="ram_balance" value="1"/>
+        <Option type="ram_rw_check" value="1"/>
+        <Option type="verilog_language" value="sysv-2017"/>
+    </OptionList>
+</Project>

+ 45 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FifoCtrlCp2444.log

@@ -0,0 +1,45 @@
+GowinSynthesis start
+Running parser ...
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'
+Analyzing included file '**'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file '**'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Undeclared symbol '**', assumed default net type '**'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
+Back to file 'C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
+Back to file 'C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
+Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
+Back to file 'C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
+Compiling module 'FifoCtrlCp2444'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":4)
+Compiling module '**'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Extracting RAM for identifier '**'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+NOTE  (EX0101) : Current top module is "FifoCtrlCp2444"
+[5%] Running netlist conversion ...
+Running device independent optimization ...
+[10%] Optimizing Phase 0 completed
+[15%] Optimizing Phase 1 completed
+[25%] Optimizing Phase 2 completed
+Running inference ...
+[30%] Inferring Phase 0 completed
+[40%] Inferring Phase 1 completed
+[50%] Inferring Phase 2 completed
+[55%] Inferring Phase 3 completed
+Running technical mapping ...
+[60%] Tech-Mapping Phase 0 completed
+[65%] Tech-Mapping Phase 1 completed
+[75%] Tech-Mapping Phase 2 completed
+WARN  (AG0100) : Find logical loop signal : "fifo_inst/wfull_val1_s3"("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "fifo_inst/wfull_val1_s6"("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "fifo_inst/wfull_val1_s3"("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0101) : The netlist is not one directed acyclic graph
+WARN  (AG0100) : Find logical loop signal : "fifo_inst/Full_s3"("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "fifo_inst/Full_s6"("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "fifo_inst/Full_s3"("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0101) : The netlist is not one directed acyclic graph
+[80%] Tech-Mapping Phase 3 completed
+[90%] Tech-Mapping Phase 4 completed
+[95%] Generate netlist file "C:\Gowin\Projects\BOCHv3_FPGA\src\src\WrapFifoChain\FifoCtrlCp2444\temp\FIFOHS\FifoCtrlCp2444.vg" completed
+Generate template file "C:\Gowin\Projects\BOCHv3_FPGA\src\src\WrapFifoChain\FifoCtrlCp2444\temp\FIFOHS\FifoCtrlCp2444_tmp.v" completed
+[100%] Generate report file "C:\Gowin\Projects\BOCHv3_FPGA\src\src\WrapFifoChain\FifoCtrlCp2444\temp\FIFOHS\FifoCtrlCp2444_syn.rpt.html" completed
+GowinSynthesis finish

+ 305 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FifoCtrlCp2444.vg

@@ -0,0 +1,305 @@
+//
+//Written by GowinSynthesis
+//Tool Version "V1.9.9.03 (64-bit)"
+//Fri Nov 22 18:10:59 2024
+
+//Source file index table:
+//file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+`timescale 100 ps/100 ps
+`pragma protect begin_protected
+`pragma protect version="2.3"
+`pragma protect author="default"
+`pragma protect author_info="default"
+`pragma protect encrypt_agent="GOWIN"
+`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3"
+
+`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
+ra4e19jaKxChOVWcGlR4oYlVfCrlu2E9kl67pMuBPuc9H3o59l4ZzTOens139fZc0oe6SVaMUzYk
+oZeSn/5VjCPA/7/HNzBABWeJUh9t7/MbXNcHfCSMR6kkxGZs1NXnGXC5o0/2mlSXU0HeAPnSJ8n7
+bMqEh5Cu1tzPTNtefRGBnhSs5u2Tg7r/dLD6bqREwDAOqw2EkXn97PO281InTXYYnKtI1NRr5rl6
+CWmrRVCIDjvOU5upezqV/nvIf3Vx2yslr9ehdhJPiXVHf05xKpXBJFjmFlV+FRX2tPnQNN/Cw5/I
+/WhL0a5m5Q0T2AupRINuArIPbC3VTG8SIcrMsg==
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=13056)
+`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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
+Shwm
+`pragma protect end_protected
+module FifoCtrlCp2444 (
+  Data,
+  Reset,
+  WrClk,
+  RdClk,
+  WrEn,
+  RdEn,
+  Q,
+  Empty,
+  Full
+)
+;
+input [23:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [23:0] Q;
+output Empty;
+output Full;
+wire VCC;
+wire GND;
+  \~fifo.FifoCtrlCp2444  fifo_inst (
+    .Reset(Reset),
+    .RdClk(RdClk),
+    .WrClk(WrClk),
+    .WrEn(WrEn),
+    .RdEn(RdEn),
+    .Data(Data[23:0]),
+    .Empty(Empty),
+    .Full(Full),
+    .Q(Q[23:0])
+);
+  VCC VCC_cZ (
+    .V(VCC)
+);
+  GND GND_cZ (
+    .G(GND)
+);
+  GSR GSR (
+    .GSRI(VCC) 
+);
+endmodule /* FifoCtrlCp2444 */

File diff suppressed because it is too large
+ 1420 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FifoCtrlCp2444_syn.rpt.html


+ 46 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FifoCtrlCp2444_syn_resource.html

@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<title>Hierarchy Module Resource</title>
+<style type="text/css">
+body { font-family: Verdana, Arial, sans-serif; font-size: 14px; }
+div#main_wrapper{ width: 100%; }
+h1 {text-align: center; }
+h1 {margin-top: 36px; }
+table, th, td { border: 1px solid #aaa; }
+table { border-collapse:collapse; margin-top: 10px; margin-bottom: 20px; width: 100%; }
+th, td { align = "center"; padding: 5px 2px 5px 5px; }
+th { color: #fff; font-weight: bold; background-color: #0084ff; }
+table td.label { width: 20%; white-space: nowrap; min-width: 20px; background-color: #dee8f4; }
+</style>
+</head>
+<body>
+<div id="main_wrapper">
+<div id="content">
+<h1>Hierarchy Module Resource</h1>
+<table>
+<tr>
+<th class="label">MODULE NAME</th>
+<th class="label">REG NUMBER</th>
+<th class="label">ALU NUMBER</th>
+<th class="label">LUT NUMBER</th>
+<th class="label">DSP NUMBER</th>
+<th class="label">BSRAM NUMBER</th>
+<th class="label">SSRAM NUMBER</th>
+<th class="label">ROM16 NUMBER</th>
+</tr>
+<tr>
+<td class="label">FifoCtrlCp2444 (C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
+<td align = "center">37</td>
+<td align = "center">4</td>
+<td align = "center">38</td>
+<td align = "center">-</td>
+<td align = "center">1</td>
+<td align = "center">-</td>
+<td align = "center">-</td>
+</tr>
+</table>
+</div><!-- content -->
+</div><!-- main_wrapper -->
+</body>
+</html>

+ 2 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FifoCtrlCp2444_syn_rsc.xml

@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Module name="FifoCtrlCp2444" Register="37" Alu="4" Lut="38" Bsram="1" T_Register="37(37)" T_Alu="4(4)" T_Lut="38(38)" T_Bsram="1(1)"/>

+ 24 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/FifoCtrlCp2444_tmp.v

@@ -0,0 +1,24 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Template file for instantiation
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 18:10:59 2024
+
+//Change the instance name and port connections to the signal names
+//--------Copy here to design--------
+
+	FifoCtrlCp2444 your_instance_name(
+		.Data(Data), //input [23:0] Data
+		.Reset(Reset), //input Reset
+		.WrClk(WrClk), //input WrClk
+		.RdClk(RdClk), //input RdClk
+		.WrEn(WrEn), //input WrEn
+		.RdEn(RdEn), //input RdEn
+		.Q(Q), //output [23:0] Q
+		.Empty(Empty), //output Empty
+		.Full(Full) //output Full
+	);
+
+//--------Copy end-------------------

+ 5 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/fifo_define.v

@@ -0,0 +1,5 @@
+`define module_name FifoCtrlCp2444
+`define EBR_BASED
+`define FWFT
+`define En_Reset
+`define Reset_Synchronization

+ 6 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/fifo_parameter.v

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

+ 1 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFOHS/project.ini

@@ -0,0 +1 @@
+RESOURCE_CHECK=false

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

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

+ 237 - 119
src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes.v

@@ -1,7 +1,7 @@
 //
 //Written by GowinSynthesis
 //Tool Version "V1.9.9.03 (64-bit)"
-//Fri Nov 22 16:03:28 2024
+//Fri Nov 22 18:48:03 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,247 @@
 `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
-hS3ZzrG6GhSoDMUaU34akA2hr7CpJ1XY1quGCcSQ2rSB9J3GfZH+ckKP6lXwQ3mhVzHAyeib/hzB
-A9L6j9Zsv8qHPfMXUXVoM0SiBoxGr+wAkVevzK+bVWRBuECq1CqsgNVNNnPin6O94st+KcP9NK9Z
-yyqO/fpHE96VQ30vAZcDHybyexgnpwiCLntSbx9O55DXt6FvqLuwlAGFki5SZqMB4EPVqmcY8pcX
-+ifLayPE/UGAWylIZUP+12EEYl0N//kiPbhlzG7g1Wrp0u2UjoC6JiAu1M6LrCQ0BBPVmoJPVUaQ
-0YC6y+uoa1d1w/xE+iARWRj7f9iDrvCbKDSjcw==
+hcfdkzMLPxta/XqmU7ahlrMXOiNAprFK/f8c+TCqTCWcZSxLLm/U7hUVeObldS4ujxRb7cwyhbBm
+pcZVnu1jWKhQbjKtn6Agbd68t/TpC1N6eRpPRBk7ZBuzazf1py6yMUEDqGo+YZ0CsHk4TwhUu7nL
+k0dSSCDUZHL+JL+qZUrIRu+xkFYXJM/prEu/O+vZjhZf1Q6X21SA0iAa74+UHYT6oadNONzRKmX7
+xSOs1ydLl0KkFFnB2W/FCYV5NIfUjGTLVpAnXIkSlV0DFZqmivY2D8XOwikNDoY9bE2fxAQLQITh
+eHwgUqVWafiRrcSH/ZCJtsAb1tnhivSXsNg1tQ==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=6352)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=13056)
 `pragma protect data_keyowner="default-ip-vendor"
 `pragma protect data_keyname="default-ip-key"
 `pragma protect data_method="aes128-cfb"
 `pragma protect data_block
-XI3f66/bXXVFvQq34/ZqtsJNDsVnwKaC7TnG+ieehntI5c5ZxGvxHI8IuEjqRPqXtQ4nF9qe3OqX
-GL9nK7LQqc6npZAIZq+62F7rwrt0cwPEa5D4e1FTvpvD8EFZYeNa21tSqA6+DdNw5HexwV57bhwL
-sNZzTg4VODokOaHtZudcWgK/BYuEKQsT7fHas+gnIHYXQErrIgDU456LlreTAqUvUuso41fQQ2tJ
-fVKiyl+0l2ML9FPXSCHy4nV09Y3wiBLo9Od51OGAI1KkmH9UaBYbOl9y/zEAOgFMXA8sslniRtZY
-djQFVJj9IF1Dkej2L+PtqMlB2b47hbvi0ZW2P49QFpP4o49drEr6Z095vMhpUMfKqYzYeFfYj5kY
-IX1aWOMBfvKbSHlnZBVwCuCrZNLXF1gVx/cyVu8PSZPCWQ+5YOjmDS4iIVuWyk2uYXWxxpCyMAXB
-lAIiGx3iKvTZXyHn1kBKQQWi7b3IdB14jmQar2Ejm+NqsvIrZsKrqbdXSlA0jBaimdBqEzW0WzUU
-Fi6s35+LG6tgzYl1jaz5V+IxasKRx+u4iCT8/OycyTg8VRpzuWm1fxJGImCp1dtAtWxgDo3N7v1s
-WnOr23dliWO/bnU3aOKX9a0xFSyeehcbLK4NHtF9V4nwG2rAXIj1kZDc+VFAfbxr86NnhlMCFey+
-ehbcrHnRVNXd/Ficu4ryBkQmEJNxKayPmOVxucjSp/3JFgjHZDNvuTRnMvTZFoZxG5YkgncGIVdk
-AOrX7jluqwZGxtAHFjuX0MlIgwbVxINaq/yHfZnvHxEkoD/LrV5A+q6hrQlABNCo+5qAE8ETaGfY
-eNMNV4fYQI9msvxLAKnxjNLzAej4ifS5YQqjt1nmTjR1RIra/XkHMEKCOTVRj+f9kVUx21WjG370
-sxICLw8mlstIJ9Wu7W/NssSMjlOfNAgmjzoJNAulycgoqmT4aRhVTqkZjZi/e27lrY8Bpg25+P4k
-m3LTXW7EJ7u7znqw9hSEB7BmM46yKTX4hpOWm0dycIICuvD8+CQOMvIfrTMeiOJ/hks9hDNhIFQt
-oPSOaJkhZuKWGSz/qCxNYA+CcqKxdkFMhxg2dC/hqYXqXaGz7we6l3zBgTcWeOikHZbyTHeMMcQD
-/sb5vespB+/kI0jiv7TXs48cPsY1Sy9y7ao3O6YkzaeHJyXg1FztgQKmOCJA0rVtPzQdJjeYcFeJ
-1vYipbkPXWmrz3zdMHMfvkJch8aqYmLAM1jfaDxWSEAHeP6f4LXby6bCLkohgQW0LZZY9h5SOXrZ
-LbIe5HcwDPxTGfXTjlMU7Oxv8Cd2o5UiiFvxNG+VXxEBbBxLFGBgS0Ot2ox4i/sssf+YbriZDU5y
-3E4QrSNCiAnLps9A6qFka/pnGeSfIqyDdLg8VmPazGvjUgVzyfEHXMdZQgW9MkJp1lS6X4VaGi6E
-4aHeiIVUcUjSwb+HptMD6OFexiOo7kodurgh4K7W93/58kx38GpbdhaYK98aWoG1Y10xXlCRtM7l
-sY25ZlaxRtkkaTvFkCPnokfz69PYEn6oM4RqvGFWsdk0EinQsNEOnMXWzPVaYf/mjhq4jVALLo9j
-nXFjsS0+5y2cLBdFRkJuSrG/hYF2/XRX/rCgZ7Ppg4Epz10oyMCOjRfOWZNfYyDlbCsTyOjkLpJi
-cAb/d66FSpOBQ9VU1yFIFUK3tgQjCVzzFaQraeNB4Y+yaGZNFt0OoqB+e4EAaFn3W5Z3e1oVdzcN
-ZilMTmEYwAnqZnHMdsYJtWutM1JHPKrbXDEjCzTxuqdRXkQs03/PPQyTEV5CgafXnELPrR9fIRQ+
-3G2iLLWJxqp7s3BKzljG8/MLVZBMFDAPtY7DTecXdKFUBc0VSIKMrWmvmCMIQYiGbtRyNRww+hHr
-ujr0ruWMtTRBxsW/NxUeL7QoRSzrIAv2KbfIy0FxuO/su3Ld5Bv2w8IsT3/d75I/VwyDZN0gbMO6
-9xcopcEquxcyZuc60x6oE0uL1rYTY8xAA1KlNhIsnp2OzoIggkVG194V5xsrkYxD1NOS0yoIDAsS
-QZ7bhsvzYqkHxdQ1PcFuEIgV3wRvA4cOMJTnKokcRE/Z1cirGXS2O4M8y3XdnIc6tA223cYSu8b7
-BWbprD2zt5SUqiuHlD0K3TIyhjsNdFtCpmnki963yzy4v2pCA9k31UqmVS6yFHqnUK9xLaZiiF4D
-dgxLT8JvfE5t0ZZh5vmxJ6QJAJM7V6rCJriRi/n4HADij3QKk9FbGkc13/tLYSYTsskfFujfM7xT
-26mpTGiwqdMQyOY4qaakmieSgNNXrnlR1UQRWdmFT4utjFlHdKrAzuMmGm8BazOXr3wkD0XG33kT
-50GMCVbECRzPRf4Ss5mvhLZW1P3DgbZGpch9cfi5w3YUPcFU5abRzAaXsaAi0SCNiBX3t5sjJ9EN
-EZ4+sITY8e/mZC5a6q0gNPszLLShJ22WnN2LFKWKAnj88ZDu1u0ZnQBmtPBl+PqP8wGvQ0MqZVfv
-rkJzqDMJPSTQrxO62ZHttAgdxbnytRYkegC+LoWKKfDVTH7z8JjpkCPjY4Z1IojIISt9mdsTzwQg
-KUpYZQYQ+TGUDEiIc3OHHWg+oXx+y3ftMPXW7kCXh2phjU9GwsZyPaAJh2WvAoIu7MdP8bQTxQZE
-I5HhAmnQn99etFsqbzp31xIY15dZGBViBMEX3br5gpym3StNFeB+QysDRv1rV3ZYNCd45tjFsuLB
-RqQ1miGTEHze1lnustJ1dZ4DArBPcep5PqZ0BiUnGQqEA12/YMMaHQnq5/BUWLfB0cG/QdtxzXAn
-6EkepZUImacO8bRBBSa1vAqs5mVGuFpn89GpbuEl546ci7oYDpm1iiw3iHTWF7nEqzscC75vnG4j
-EKysA2lCkU4VJL2qSX8CHq8y7SIjKTkQZSVisOvD/vRRxo7XnnYVPuPHtis6nxWFCr4r0CXbxm/b
-yEK5SX2WS2TU7k2YxwUulyHUWDMQcsc0x1xruMiK3/wTIbqapqAVo2FC0o0qSgCUMUOyX5hQUfAH
-1mGRNjM2rz0Gsv2dqThHnDBYUkZBkkSjLPX5p0TJ9G4ptr6YAaWjhw+rXANV2J3AHpIi0Fp/iBw3
-K5QNFqVwQTnypMMyvxVBKMZ0BxRWf39+Vk2UCFdqUPETcnvZHXwUu9eXNL1y0+mdTjDL9DUt9Tmy
-0dNvYP6+R6Mzhlr79jJ6Iybwd9OzQ77GREIOH+kb6+iUQduDWOd6alv11m6+Ip9STeRNQT7yjWci
-LuSiUiz5f/oimjicM/CqPnmE/1bc3ADehdApKJs8B+m1KZYSL122nJvWXzdH9k1uc1XLeAig/yJR
-6xu+G2P7ZlEheuhYWYm3jUZaGL2NPkHitpgOp9N4JGrGqGJE7gVL4cDXMk8LgAShXVxF9cMTWTJA
-PcPQiWJyTGiVf8tjIRkCsKwniOrHavSfG+rhUI0jzFMcFR+5h2q0mfh/atHBYHuchzzMSxpTS2Qz
-+Q5b6tw0HUShEU+TjrrQuHcxHAbjtVDc3iRz/wJoBfaspHgyGzMrUrN518wPNMXbvK98zoR93pih
-Dw3TWw3A5QzRM9qxuAk2Wka5YfhGH0VYqXeAdZ7Hm0qzVo6/vIzDWCnoZZXwHdo+A1o5ITkSuvOw
-6a1p8Fdi7vux+B9Ui7Wy3dE+/tJ/LntsPizbHF/iZWsEEn8F/VVM/xQsoYfjPfYdYtkMvUjLF4FP
-hyWI8nS/oi+AHQJTmVfSFp1yoU6CaW6mo8edJRAyUEGpM3Ic4cUvrOVnM7fPO8W2f149xkpwLtru
-WHB21BpiHvcgNdMlNgET4pKVJlZTsNpwEsMfGBf1PzsYknCOFWhw4XYRLgRaVmIrziZmfMYLA6Es
-DEdcVJSHngkgiDDSnZxoVBzLE897HTEGj5L6xZ6vOUZyl5d+A8dJBtBCzmvQxrUvpktegPKJHEZa
-SNF8l+wTJmq6v8+T/GQBGQGLWqm5b0By6P2ooG1VqFAB2pIbWaEnD7TBaqiCnxxpxEatgwz77AF6
-RsxXy9ht2z2ofOe7OPZDVDIXX1w0QZX4jWfxbBhDgxdJ6WsxZu+gTGbqZSAn4KcIXT411rNSzIZU
-puZCm9y11bRHejkt5UltIDr634UYzglmU/+yYgGyKLCMu2jwo82MRX2ojzYdfHt+/W5gmX3XICWv
-TEgWq+UXlXGNekbW6Y/XraOcB4tLMkW6IzTu/V26FLMQM4jJMkTmZnA+HKMfYsTN+PPtkX0PWmXl
-KSvZkOb+RtEeAaUKhpFyjKHvDgECVA8PtmVe7L1IN2fxVj5D3BEynti9Kyk35mgKXrsQzGQPEZp+
-0cTYjc2SD2JIItxqWA4yRj1uK3lCQ1G+3hL8LikGBjixrlaqQx4jmxsjqnnZLt1KnfrkXf90GD9v
-5lqG1ILntYCp5UO6nAYNEyuGbubYS+6r2qV7LhytCDvPBjQUAgqkwCFLwZxdnUzS34e9BFvHxNCs
-I1OrJl1MYGNOYd72slXnn62spwi7QCxFejwwpdinUI/OD8VVSB91F7TGEQPc2p1Nw+SjUlI3UVZk
-lc7Jejc28HHYmmf+qtJdENnc4mYUVtK3b7Zk7lwEv4ZMLKsd1+/TMO/pFZpEoYNpMdHARC554cC5
-45M8hsaK879UXG0BvpHF/TzxRyhiLs5PVGOcVMGphd/r3wgev1oKPrgofTXTGuO/fMNM7GHTlbRe
-xK/OpQmvqsT+oxzcFhenJKhiFqkgXRO4I4INfVWjn4UV8FhikSqbuY09QxdifOfgZA8uBAjh1fSX
-ARgN0ACdfk8yVu8KnsmqAEl6EgvCNNJvDXEzMn01n+pLTRyMclnvsuEMp3b8y9+bxD8F9aW7THps
-KK2lCgFWYKzUoUu1cZvtSdna+CbKJMvP9cO8Vy2TdiWuWmDPztHF8+geEL9E25QRI6Ht1e+PLyIj
-mC+yzZqBKgAr/YZimUo/gLDvoACVit1dkUg1z0CnPjUHOLCWgG25UJmqxTYq2CYbdPlNk/Bh/Ea4
-Oap0t0mJ7hpWjI/bUEyQHK8ctKLrgrGIaoly32UH3WB3wHZj1NoD1AdHu6ZzkfhYvpIEI9PQuTw+
-vQONJtEAOW+/eOdVmaDlt1CgHd2o/uWVLLMC/vT3BAsFPyJZ/D7vFZey2My3dVOdDnHHM1RaC0MK
-s1BcMCJFrqFPhTHv11512mG12EbszRR/TEF7ue08eBcySpJHukKu9mt7LypquqYtQGyn6/Jt3ln2
-ZbVQtuNiw3mRBE/eftsKmtYS6+H6BCj4ictQa2l7e4V6LNNTsdLtDFlkMxErzU5vrFryMDNIk4ub
-MHFd3W4Ss0ZPGuMo97pG0Kqg5dNQguPw82SCVbUFLnn02ke0Vv1DQkTmutKUyf85xnwDgx2l7D+s
-GCXkzPhQOp1c26hm1ySGVCbvZvcpO0I14J/4Omnj498JOYAknfx6+uRlmptHM69Fla5Wdf+AmS1p
-nRMHm1uO1lYRF5aFtAjB153tKO0AZ0ixsgXMbkiYptyibAi3VorynrFqzeMeyidXT4J5sc8BsEzm
-b9BTlQlZzkwbl6+sO2VNFw3cHfqQRJjhlb3PJUa7Yd1UHCubKpKa2aa0/Sk7m62Gim2WMcpwXYEK
-mQzqtA7cZ8yoAv5poCAASHsp4rinf/KST2TwgGzSjjIuozzRcuh7pjOS2lc5PVdncBhs44GxkzhY
-PCGeP42B4NrG9s3j5NxvUc9PvSxDIQo+1MXO8SUWsmyeHzZSqdQAdCAJdHRoNp9tk31ctJtjnI8u
-rgPQLUQmtxU53sjjaFD7LgZPAPsGWCYcMgD62NwgPLqjZ9/wfENCU9ryrIdvZpfFRkBfGa4izFci
-1kdUCB+vWFrUQKTEBxxd+rx3/Pez3nO0Zr5rsEc0eBzuhqzkOQcH1FQJVx+sMfOySytxfm/P2tce
-KmH4soUdXhqTjXdorFed5D2Zh2ujr0gAMthMzWwFc44wvPmzFDblENVta9mw9jn+kkrfVPFe2hVx
-HrlWwKUGAwmcJS7qI+h4Roqq/IwUXK091r7Fczc0jYfmjM4fM6NKK1oKoHhfhPNVJOU+feDO2tf1
-Y3udqAc9OoC88ccFVX/aMH30nFq/oKF6fGRVUp2u0NA+GiWN9ZQvrIbaLmDqym2d1DXTSagzh5y3
-AKC08+fMurStVjT6zfO1osbtABMO6JJWSjgD1IZSNJUNd1+P8vBCyONMuAA3MOYO+lWcchy5g5S9
-efUr9bdZYfN3aQhkb38Ns8dK2prfLtvwnAPo7Xbke5Qg5EhsVMCZGPoh3avK+mRvUSiOQsRiUT7k
-hqcYIHUCNVlH5f6BQy8k1MBaUStcUh2Q9Jo5vyNHWWxzqz4LoJ0bVsehQSFYtRhvmTaD9nfD9W1/
-nvp6hD79jJu/e8UWONsKmrHisSgX9j1Q3Hha55JpN61hrmwITCvNxLQ8RNiLy0pcGFtGn9VZzxFa
-LJGxyuUUstx8nlzgNjTPNFtL3kw1Z85WfUdGA8D0Bk/dWKg+NfU4nHw5LHHb70q/Uzgh4oYYZaQu
-tXgHRD52J7epqOZJRmm/bSWXREDFYqrqIU0R2mPJiqVXpT8764VqYBT+/9iIesTQz8uKDBR3mgBd
-4nI6rCMk++GkPTKJquc+qM91CxjNGnNxOz9Xl6bnIuzD2o9P255FrmJOr9PYSKlC61E3dMJNqiFt
-aIDiBpJzI821hew7tWjSuT7vAPS58zMP2fqZSXze1nNv4o034XUr5kgwQEVij3PD0xQrxhGhYXTl
-16RVOieeNjj3q9pb8NEFq3hOHkAS1F3L7/vLZNl5DnaEu204p2hCdm26v6hFU4kb8OqCHchdv4bx
-VRQdgBHR9tziYavabU+V8ZbGILs1Iu9wg6kjEnJwL36OhyQNKXBSwZRE7phb9GcANJ+LysLMVxlw
-aLrBylLcL7JDHRbopYkCK98d+2NnPGuGAJkFxzteKu8v7ASWNyOi7Nw+NC6UUkO+cIPIV5xBymA8
-Tz3v0fMdoGpTn7+Ow+CtsoFzvKjDpiqloLabYywSlJ1dwFzdT8wk2wYj3bDgWI35TUTwtw5tLSd9
-5gYweQnYeKfqndFzwci1+cWF3Whzni9Lku98T4tzBksPoUPxWSMoXsmvSjSzBCH0t2G8nErSXwrh
-UwaEXuYSTd2jXhzXZ4zQKRS6/a3TWi0yv2xk9MHQMohGtCrgaaPamHIrdHklYhM9fILPrGeN8HXj
-eGsOST5PD8OlvxUYkXviPMXWU2KcPjAgWR8VLdpulBsVzBUeI7Uw9BtD/AqeBSwtv3qMBDUyqZan
-cju5BBItBIDp/eK5ZnLEIiaWtO/uRxe/28v0LlrA+JSXmsFaVRnolYn+/dNMattGF35QYeiqWnRB
-/DNkVTkXuB8t2pcoHeueiPEejBG/dGYDmieedjv3SAOEByBaKNK1Prau7YV7dN6GuuYL7A8hxDGf
-HbUIRqlZgeUHEm3bUxJScuvZtxBqI63rybKKIAH/wYeTBk2i+hYnkm8UGW9oE91/EF5nLLnEEY+V
-/VDrkRtu4l+HQtjnuQWM1mjmT92GlcyEQUNJF8nkPFw7tl38Gv/GzA1Pz76lApb0J2fht3ThMpj8
-ChbuecDAbJCeIECBi/zOxTwtEirKcUnZvWg5iAmm3mmnDkIzjKo2h0bAYUxAlJ8IqQa+sV2CYegJ
-pylqmGyjm1mMll9TfO9TGWi9AsKry4hvOiqs2p9iwpjxOxtwxVeDvmrSBNj89VPWyfoAc+JFVwy6
-0YXcnGmF++wxOdXxnch2U0v4qIy+WQaFEE/GcmPoFBL1cQlZWi1C/AZunjf5W+KJ6AAxJRn67S1g
-ML4QVXDlRa7JbnK328Txx9wdX6Q+elTynz946U5qODLKef1Va8BRjSaFV1UH/yekuPwfaBmx/xhx
-f/Dzb9Bdn8NlBfQ42N9tCQE0EmH1dJwZEPiu3yppFywB2mDanmQql02sUXPbv/6yLc3PTvVh4mQK
-LyPMDPQElJrNFDRKxI+uGVxWuwDHN8trh32ByI/EUvVowXjdSyBRdzqlOQolYaRZl9/6E1ZhE0vm
-j132gnfMPzKUKUMllp5ZalT8zqAY0X7jWFt2X6UjQeNNbFpcC7r96C28FnmVjvtr02pMJN72dQsl
-QsxOVr13dUNkeyWXDlI/toP/akcJ8i/9VDKHKArw5YzmTtYGFdhvzgcopY7cBpo/D8w55cWHtZvH
-W0DrwNIp5OWBf2O8HVjeuLyMvFUnquw1ni8cbe3KHRks/a/O7LP9MK2Vk7S0BkN8rATzwJspUT5m
-NkNEq+bFvTF1wJUGEW12MIZvRaomzUQJ34N5SSIxNz1Wn+Q2mwr1qPqqnNNQw9FkTgfhjZhIQDxP
-5V4o9ktpVvCUJpc3A6vB0b8w4uK9WncCELhkZySahcuPiQuofrJZ/B7IT4VRwFEjhWPgI8nE5eK9
-kfCP2hpOQXKYEiUbsebH95bKxEdsFVOlRA==
+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
+QheP
 `pragma protect end_protected
 module FifoTfe2Bytes (
   Data,

+ 421 - 93
src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes.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: Fri Nov 22 16:03:28 2024
+//Created Time: Fri Nov 22 18:48:03 2024
 
 `timescale 100 ps/100 ps
 module FifoTfe2Bytes(
@@ -36,34 +36,50 @@ wire Reset;
 wire VCC;
 wire WrClk;
 wire WrEn;
-wire \fifo_inst/n20_5 ;
-wire \fifo_inst/n26_4 ;
-wire \fifo_inst/n257_4 ;
-wire \fifo_inst/rempty_val ;
-wire \fifo_inst/wfull_val_7 ;
+wire \fifo_inst/n23_5 ;
+wire \fifo_inst/n29_4 ;
+wire \fifo_inst/wfull_val ;
+wire \fifo_inst/n371_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/Equal.rgraynext_1_4 ;
+wire \fifo_inst/Equal.wgraynext_1_4 ;
+wire \fifo_inst/Equal.wgraynext_2_4 ;
+wire \fifo_inst/Equal.wgraynext_3_4 ;
+wire \fifo_inst/wfull_val_4 ;
+wire \fifo_inst/wfull_val_5 ;
+wire \fifo_inst/n371_5 ;
+wire \fifo_inst/wfull_val1_16 ;
+wire \fifo_inst/Full_11 ;
+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/n130_1_SUM ;
+wire \fifo_inst/n130_3 ;
+wire \fifo_inst/n131_1_SUM ;
+wire \fifo_inst/n131_3 ;
+wire \fifo_inst/n132_1_SUM ;
+wire \fifo_inst/n132_3 ;
+wire \fifo_inst/n133_1_SUM ;
+wire \fifo_inst/n133_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 [3:0] \fifo_inst/Equal.rgraynext ;
+wire [3:0] \fifo_inst/Equal.wgraynext ;
+wire [4:0] \fifo_inst/rbin_num_next ;
+wire [4: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 [4:0] \fifo_inst/rbin_num ;
+wire [4:0] \fifo_inst/Equal.rq1_wptr ;
+wire [4:0] \fifo_inst/Equal.rq2_wptr ;
+wire [3:0] \fifo_inst/rptr ;
+wire [4:0] \fifo_inst/wptr ;
+wire [3:0] \fifo_inst/Equal.wbin ;
 wire [31:24] \fifo_inst/DO ;
 VCC VCC_cZ (
   .V(VCC)
@@ -74,57 +90,89 @@ GND GND_cZ (
 GSR GSR (
 	.GSRI(VCC)
 );
-LUT4 \fifo_inst/n20_s1  (
+LUT4 \fifo_inst/n23_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/n23_5 )
 );
-defparam \fifo_inst/n20_s1 .INIT=16'h5300;
-LUT3 \fifo_inst/n26_s1  (
+defparam \fifo_inst/n23_s1 .INIT=16'h5300;
+LUT3 \fifo_inst/n29_s1  (
 	.I0(RdEn),
 	.I1(Empty),
 	.I2(\fifo_inst/rempty_val ),
-	.F(\fifo_inst/n26_4 )
-);
-defparam \fifo_inst/n26_s1 .INIT=8'h0E;
-LUT3 \fifo_inst/Equal.rgraynext_0_s0  (
-	.I0(\fifo_inst/rbin_num [0]),
-	.I1(\fifo_inst/rbin_num_next [0]),
-	.I2(\fifo_inst/rbin_num [1]),
-	.F(\fifo_inst/Equal.rgraynext [0])
-);
-defparam \fifo_inst/Equal.rgraynext_0_s0 .INIT=8'h1E;
+	.F(\fifo_inst/n29_4 )
+);
+defparam \fifo_inst/n29_s1 .INIT=8'h0E;
+LUT3 \fifo_inst/Equal.rgraynext_1_s0  (
+	.I0(\fifo_inst/Equal.rgraynext_1_4 ),
+	.I1(\fifo_inst/rbin_num_next [1]),
+	.I2(\fifo_inst/rbin_num [2]),
+	.F(\fifo_inst/Equal.rgraynext [1])
+);
+defparam \fifo_inst/Equal.rgraynext_1_s0 .INIT=8'h1E;
+LUT3 \fifo_inst/Equal.rgraynext_2_s0  (
+	.I0(\fifo_inst/Equal.rgraynext_1_4 ),
+	.I1(\fifo_inst/rbin_num [2]),
+	.I2(\fifo_inst/rbin_num [3]),
+	.F(\fifo_inst/Equal.rgraynext [2])
+);
+defparam \fifo_inst/Equal.rgraynext_2_s0 .INIT=8'h1E;
+LUT4 \fifo_inst/Equal.rgraynext_3_s0  (
+	.I0(\fifo_inst/Equal.rgraynext_1_4 ),
+	.I1(\fifo_inst/rbin_num [2]),
+	.I2(\fifo_inst/rbin_num [3]),
+	.I3(\fifo_inst/rbin_num [4]),
+	.F(\fifo_inst/Equal.rgraynext [3])
+);
+defparam \fifo_inst/Equal.rgraynext_3_s0 .INIT=16'h07F8;
 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/n23_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/n257_s1  (
-	.I0(\fifo_inst/reset_w [1]),
-	.I1(\fifo_inst/wfull_val_7 ),
-	.F(\fifo_inst/n257_4 )
-);
-defparam \fifo_inst/n257_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(Full),
+	.I1(\fifo_inst/Equal.wgraynext_1_4 ),
+	.I2(\fifo_inst/Equal.wbin [1]),
+	.I3(\fifo_inst/Equal.wbin [2]),
+	.F(\fifo_inst/Equal.wgraynext [1])
+);
+defparam \fifo_inst/Equal.wgraynext_1_s0 .INIT=16'h0BF4;
+LUT4 \fifo_inst/Equal.wgraynext_2_s0  (
+	.I0(Full),
+	.I1(\fifo_inst/Equal.wgraynext_2_4 ),
+	.I2(\fifo_inst/Equal.wbin [2]),
+	.I3(\fifo_inst/Equal.wbin [3]),
+	.F(\fifo_inst/Equal.wgraynext [2])
+);
+defparam \fifo_inst/Equal.wgraynext_2_s0 .INIT=16'h0BF4;
+LUT4 \fifo_inst/Equal.wgraynext_3_s0  (
+	.I0(Full),
+	.I1(\fifo_inst/Equal.wgraynext_3_4 ),
+	.I2(\fifo_inst/Equal.wbin [3]),
+	.I3(\fifo_inst/wptr [4]),
+	.F(\fifo_inst/Equal.wgraynext [3])
+);
+defparam \fifo_inst/Equal.wgraynext_3_s0 .INIT=16'h0BF4;
+LUT4 \fifo_inst/wfull_val_s0  (
+	.I0(\fifo_inst/wptr [4]),
+	.I1(\fifo_inst/rbin_num [4]),
+	.I2(\fifo_inst/wfull_val_4 ),
+	.I3(\fifo_inst/wfull_val_5 ),
+	.F(\fifo_inst/wfull_val )
+);
+defparam \fifo_inst/wfull_val_s0 .INIT=16'h6000;
+LUT3 \fifo_inst/n371_s1  (
+	.I0(\fifo_inst/wfull_val_4 ),
+	.I1(\fifo_inst/wfull_val_5 ),
+	.I2(\fifo_inst/n371_5 ),
+	.F(\fifo_inst/n371_4 )
+);
+defparam \fifo_inst/n371_s1 .INIT=8'h80;
 LUT3 \fifo_inst/wfull_val1_s9  (
 	.I0(\fifo_inst/wfull_val1_3 ),
 	.I1(\fifo_inst/wfull_val1_2 ),
@@ -132,13 +180,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_5 ),
+	.I1(\fifo_inst/n371_5 ),
+	.I2(\fifo_inst/wfull_val_4 ),
+	.I3(\fifo_inst/wfull_val1_16 ),
 	.F(\fifo_inst/wfull_val1_0 )
 );
-defparam \fifo_inst/wfull_val1_s10 .INIT=8'h0E;
+defparam \fifo_inst/wfull_val1_s10 .INIT=16'hFF80;
 LUT3 \fifo_inst/Full_d_s  (
 	.I0(\fifo_inst/Full_2 ),
 	.I1(\fifo_inst/Full_1_2 ),
@@ -146,13 +195,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_5 ),
+	.I1(\fifo_inst/n371_5 ),
+	.I2(\fifo_inst/wfull_val_4 ),
+	.I3(\fifo_inst/Full_11 ),
 	.F(\fifo_inst/Full_1 )
 );
-defparam \fifo_inst/Full_s8 .INIT=8'h0E;
+defparam \fifo_inst/Full_s8 .INIT=16'hFF80;
 LUT3 \fifo_inst/rbin_num_next_0_s5  (
 	.I0(Empty),
 	.I1(RdEn),
@@ -160,34 +210,150 @@ 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  (
-	.I0(\fifo_inst/rbin_num_next [0]),
-	.I1(\fifo_inst/rbin_num [0]),
-	.I2(\fifo_inst/rbin_num [1]),
+LUT4 \fifo_inst/rbin_num_next_1_s5  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_inst/rbin_num [0]),
+	.I3(\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=16'hBF40;
+LUT2 \fifo_inst/rbin_num_next_2_s5  (
+	.I0(\fifo_inst/Equal.rgraynext_1_4 ),
+	.I1(\fifo_inst/rbin_num [2]),
+	.F(\fifo_inst/rbin_num_next [2])
+);
+defparam \fifo_inst/rbin_num_next_2_s5 .INIT=4'h6;
+LUT3 \fifo_inst/rbin_num_next_3_s5  (
+	.I0(\fifo_inst/Equal.rgraynext_1_4 ),
+	.I1(\fifo_inst/rbin_num [2]),
+	.I2(\fifo_inst/rbin_num [3]),
+	.F(\fifo_inst/rbin_num_next [3])
+);
+defparam \fifo_inst/rbin_num_next_3_s5 .INIT=8'h78;
+LUT4 \fifo_inst/rbin_num_next_4_s2  (
+	.I0(\fifo_inst/Equal.rgraynext_1_4 ),
+	.I1(\fifo_inst/rbin_num [2]),
+	.I2(\fifo_inst/rbin_num [3]),
+	.I3(\fifo_inst/rbin_num [4]),
+	.F(\fifo_inst/rbin_num_next [4])
+);
+defparam \fifo_inst/rbin_num_next_4_s2 .INIT=16'h7F80;
 LUT2 \fifo_inst/Equal.wbinnext_0_s3  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
+	.I0(\fifo_inst/n23_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 ),
+LUT3 \fifo_inst/Equal.wbinnext_2_s3  (
+	.I0(Full),
+	.I1(\fifo_inst/Equal.wgraynext_2_4 ),
+	.I2(\fifo_inst/Equal.wbin [2]),
+	.F(\fifo_inst/Equal.wbinnext [2])
+);
+defparam \fifo_inst/Equal.wbinnext_2_s3 .INIT=8'hB4;
+LUT3 \fifo_inst/Equal.wbinnext_3_s3  (
+	.I0(Full),
+	.I1(\fifo_inst/Equal.wgraynext_3_4 ),
+	.I2(\fifo_inst/Equal.wbin [3]),
+	.F(\fifo_inst/Equal.wbinnext [3])
+);
+defparam \fifo_inst/Equal.wbinnext_3_s3 .INIT=8'hB4;
+LUT4 \fifo_inst/Equal.wbinnext_4_s2  (
+	.I0(Full),
+	.I1(\fifo_inst/Equal.wgraynext_3_4 ),
+	.I2(\fifo_inst/Equal.wbin [3]),
+	.I3(\fifo_inst/wptr [4]),
+	.F(\fifo_inst/Equal.wbinnext [4])
+);
+defparam \fifo_inst/Equal.wbinnext_4_s2 .INIT=16'hBF40;
+LUT4 \fifo_inst/Equal.rgraynext_1_s1  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_inst/rbin_num [0]),
+	.I3(\fifo_inst/rbin_num [1]),
+	.F(\fifo_inst/Equal.rgraynext_1_4 )
+);
+defparam \fifo_inst/Equal.rgraynext_1_s1 .INIT=16'h4000;
+LUT2 \fifo_inst/Equal.wgraynext_1_s1  (
+	.I0(WrEn),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.F(\fifo_inst/Equal.wgraynext_1_4 )
+);
+defparam \fifo_inst/Equal.wgraynext_1_s1 .INIT=4'h8;
+LUT3 \fifo_inst/Equal.wgraynext_2_s1  (
+	.I0(WrEn),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.I2(\fifo_inst/Equal.wbin [1]),
+	.F(\fifo_inst/Equal.wgraynext_2_4 )
+);
+defparam \fifo_inst/Equal.wgraynext_2_s1 .INIT=8'h80;
+LUT4 \fifo_inst/Equal.wgraynext_3_s1  (
+	.I0(WrEn),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.I2(\fifo_inst/Equal.wbin [1]),
+	.I3(\fifo_inst/Equal.wbin [2]),
+	.F(\fifo_inst/Equal.wgraynext_3_4 )
+);
+defparam \fifo_inst/Equal.wgraynext_3_s1 .INIT=16'h8000;
+LUT4 \fifo_inst/wfull_val_s1  (
+	.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_4 )
+);
+defparam \fifo_inst/wfull_val_s1 .INIT=16'h9009;
+LUT4 \fifo_inst/wfull_val_s2  (
+	.I0(\fifo_inst/wptr [2]),
+	.I1(\fifo_inst/rptr [2]),
+	.I2(\fifo_inst/wptr [3]),
+	.I3(\fifo_inst/rptr [3]),
+	.F(\fifo_inst/wfull_val_5 )
+);
+defparam \fifo_inst/wfull_val_s2 .INIT=16'h0990;
+LUT3 \fifo_inst/n371_s2  (
+	.I0(\fifo_inst/reset_w [1]),
+	.I1(\fifo_inst/wptr [4]),
+	.I2(\fifo_inst/rbin_num [4]),
+	.F(\fifo_inst/n371_5 )
+);
+defparam \fifo_inst/n371_s2 .INIT=8'h14;
+LUT2 \fifo_inst/wfull_val1_s11  (
+	.I0(\fifo_inst/reset_w [1]),
+	.I1(\fifo_inst/wfull_val1_0 ),
+	.F(\fifo_inst/wfull_val1_16 )
+);
+defparam \fifo_inst/wfull_val1_s11 .INIT=4'h4;
+LUT2 \fifo_inst/Full_s9  (
+	.I0(\fifo_inst/reset_w [1]),
+	.I1(\fifo_inst/Full_1 ),
+	.F(\fifo_inst/Full_11 )
+);
+defparam \fifo_inst/Full_s9 .INIT=4'h4;
+LUT4 \fifo_inst/Equal.wbinnext_1_s4  (
+	.I0(Full),
+	.I1(WrEn),
+	.I2(\fifo_inst/Equal.wbin [0]),
+	.I3(\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_s4 .INIT=16'hBF40;
+LUT4 \fifo_inst/Equal.rgraynext_0_s1  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_inst/rbin_num [0]),
+	.I3(\fifo_inst/rbin_num_next [1]),
+	.F(\fifo_inst/Equal.rgraynext [0])
 );
-defparam \fifo_inst/rempty_val_s4 .INIT=16'h871E;
+defparam \fifo_inst/Equal.rgraynext_0_s1 .INIT=16'h4BB4;
+LUT3 \fifo_inst/rempty_val_s2  (
+	.I0(\fifo_inst/rbin_num_next [4]),
+	.I1(\fifo_inst/Equal.rq2_wptr [4]),
+	.I2(\fifo_inst/n133_3 ),
+	.F(\fifo_inst/rempty_val )
+);
+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 +375,27 @@ 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_4_s0  (
+	.D(\fifo_inst/rbin_num_next [4]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rbin_num [4])
+);
+defparam \fifo_inst/rbin_num_4_s0 .INIT=1'b0;
+DFFC \fifo_inst/rbin_num_3_s0  (
+	.D(\fifo_inst/rbin_num_next [3]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rbin_num [3])
+);
+defparam \fifo_inst/rbin_num_3_s0 .INIT=1'b0;
+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 +410,27 @@ 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_4_s0  (
+	.D(\fifo_inst/wptr [4]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/Equal.rq1_wptr [4])
+);
+defparam \fifo_inst/Equal.rq1_wptr_4_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.rq1_wptr_3_s0  (
+	.D(\fifo_inst/wptr [3]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/Equal.rq1_wptr [3])
+);
+defparam \fifo_inst/Equal.rq1_wptr_3_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 +445,27 @@ 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_4_s0  (
+	.D(\fifo_inst/Equal.rq1_wptr [4]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/Equal.rq2_wptr [4])
+);
+defparam \fifo_inst/Equal.rq2_wptr_4_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.rq2_wptr_3_s0  (
+	.D(\fifo_inst/Equal.rq1_wptr [3]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/Equal.rq2_wptr [3])
+);
+defparam \fifo_inst/Equal.rq2_wptr_3_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 +480,27 @@ 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_3_s0  (
+	.D(\fifo_inst/Equal.rgraynext [3]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rptr [3])
+);
+defparam \fifo_inst/rptr_3_s0 .INIT=1'b0;
+DFFC \fifo_inst/rptr_2_s0  (
+	.D(\fifo_inst/Equal.rgraynext [2]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rptr [2])
+);
+defparam \fifo_inst/rptr_2_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 +508,29 @@ DFFC \fifo_inst/rptr_0_s0  (
 	.Q(\fifo_inst/rptr [0])
 );
 defparam \fifo_inst/rptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_4_s0  (
+	.D(\fifo_inst/Equal.wbinnext [4]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wptr [4])
+);
+defparam \fifo_inst/wptr_4_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_3_s0  (
+	.D(\fifo_inst/Equal.wgraynext [3]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wptr [3])
+);
+defparam \fifo_inst/wptr_3_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_2_s0  (
+	.D(\fifo_inst/Equal.wgraynext [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 +543,27 @@ 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_3_s0  (
+	.D(\fifo_inst/Equal.wbinnext [3]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/Equal.wbin [3])
+);
+defparam \fifo_inst/Equal.wbin_3_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.wbin_2_s0  (
+	.D(\fifo_inst/Equal.wbinnext [2]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/Equal.wbin [2])
+);
+defparam \fifo_inst/Equal.wbin_2_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 +586,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/n257_4 ),
+	.PRESET(\fifo_inst/n371_4 ),
 	.Q(\fifo_inst/wfull_val1_3 )
 );
 defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
@@ -317,23 +609,23 @@ defparam \fifo_inst/Full_s0 .INIT=1'b0;
 DFFP \fifo_inst/Full_s1  (
 	.D(\fifo_inst/wfull_val1 ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n257_4 ),
+	.PRESET(\fifo_inst/n371_4 ),
 	.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/n23_5 ),
 	.RESETA(GND),
 	.CLKB(RdClk),
-	.CEB(\fifo_inst/n26_4 ),
+	.CEB(\fifo_inst/n29_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, Data[23:0]}),
-	.ADA({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/Equal.wbin [0], GND, VCC, VCC, VCC, VCC}),
-	.ADB({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num_next [0], GND, GND, GND, GND, GND}),
+	.ADA({GND, GND, GND, GND, GND, \fifo_inst/Equal.wbin [3:0], GND, VCC, VCC, VCC, VCC}),
+	.ADB({GND, GND, GND, GND, GND, \fifo_inst/rbin_num_next [3:0], GND, GND, GND, GND, GND}),
 	.DO({\fifo_inst/DO [31:24], Q[23:0]})
 );
 defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .READ_MODE=1'b0;
@@ -342,6 +634,42 @@ defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BIT_WIDTH_1=32;
 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/n130_s0  (
+	.I0(\fifo_inst/Equal.rgraynext [0]),
+	.I1(\fifo_inst/Equal.rq2_wptr [0]),
+	.I3(GND),
+	.CIN(GND),
+	.COUT(\fifo_inst/n130_3 ),
+	.SUM(\fifo_inst/n130_1_SUM )
+);
+defparam \fifo_inst/n130_s0 .ALU_MODE=3;
+ALU \fifo_inst/n131_s0  (
+	.I0(\fifo_inst/Equal.rgraynext [1]),
+	.I1(\fifo_inst/Equal.rq2_wptr [1]),
+	.I3(GND),
+	.CIN(\fifo_inst/n130_3 ),
+	.COUT(\fifo_inst/n131_3 ),
+	.SUM(\fifo_inst/n131_1_SUM )
+);
+defparam \fifo_inst/n131_s0 .ALU_MODE=3;
+ALU \fifo_inst/n132_s0  (
+	.I0(\fifo_inst/Equal.rgraynext [2]),
+	.I1(\fifo_inst/Equal.rq2_wptr [2]),
+	.I3(GND),
+	.CIN(\fifo_inst/n131_3 ),
+	.COUT(\fifo_inst/n132_3 ),
+	.SUM(\fifo_inst/n132_1_SUM )
+);
+defparam \fifo_inst/n132_s0 .ALU_MODE=3;
+ALU \fifo_inst/n133_s0  (
+	.I0(\fifo_inst/Equal.rgraynext [3]),
+	.I1(\fifo_inst/Equal.rq2_wptr [3]),
+	.I3(GND),
+	.CIN(\fifo_inst/n132_3 ),
+	.COUT(\fifo_inst/n133_3 ),
+	.SUM(\fifo_inst/n133_1_SUM )
+);
+defparam \fifo_inst/n133_s0 .ALU_MODE=3;
 INV \fifo_inst/n4_s2  (
 	.I(RdClk),
 	.O(\fifo_inst/n4_6 )

+ 1 - 1
src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes_tmp.v

@@ -4,7 +4,7 @@
 //Tool Version: V1.9.9.03 (64-bit)
 //Part Number: GW1N-UV9QN88C6/I5
 //Device: GW1N-9
-//Created Time: Fri Nov 22 16:03:28 2024
+//Created Time: Fri Nov 22 18:48:03 2024
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------

+ 237 - 119
src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes.vg

@@ -1,7 +1,7 @@
 //
 //Written by GowinSynthesis
 //Tool Version "V1.9.9.03 (64-bit)"
-//Fri Nov 22 16:03:28 2024
+//Fri Nov 22 18:48:03 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,247 @@
 `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
-hS3ZzrG6GhSoDMUaU34akA2hr7CpJ1XY1quGCcSQ2rSB9J3GfZH+ckKP6lXwQ3mhVzHAyeib/hzB
-A9L6j9Zsv8qHPfMXUXVoM0SiBoxGr+wAkVevzK+bVWRBuECq1CqsgNVNNnPin6O94st+KcP9NK9Z
-yyqO/fpHE96VQ30vAZcDHybyexgnpwiCLntSbx9O55DXt6FvqLuwlAGFki5SZqMB4EPVqmcY8pcX
-+ifLayPE/UGAWylIZUP+12EEYl0N//kiPbhlzG7g1Wrp0u2UjoC6JiAu1M6LrCQ0BBPVmoJPVUaQ
-0YC6y+uoa1d1w/xE+iARWRj7f9iDrvCbKDSjcw==
+hcfdkzMLPxta/XqmU7ahlrMXOiNAprFK/f8c+TCqTCWcZSxLLm/U7hUVeObldS4ujxRb7cwyhbBm
+pcZVnu1jWKhQbjKtn6Agbd68t/TpC1N6eRpPRBk7ZBuzazf1py6yMUEDqGo+YZ0CsHk4TwhUu7nL
+k0dSSCDUZHL+JL+qZUrIRu+xkFYXJM/prEu/O+vZjhZf1Q6X21SA0iAa74+UHYT6oadNONzRKmX7
+xSOs1ydLl0KkFFnB2W/FCYV5NIfUjGTLVpAnXIkSlV0DFZqmivY2D8XOwikNDoY9bE2fxAQLQITh
+eHwgUqVWafiRrcSH/ZCJtsAb1tnhivSXsNg1tQ==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=6352)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=13056)
 `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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
-kfCP2hpOQXKYEiUbsebH95bKxEdsFVOlRA==
+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
+QheP
 `pragma protect end_protected
 module FifoTfe2Bytes (
   Data,

File diff suppressed because it is too large
+ 250 - 130
src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_syn.rpt.html


+ 3 - 3
src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_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">FifoTfe2Bytes (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">37</td>
+<td align = "center">4</td>
+<td align = "center">38</td>
 <td align = "center">-</td>
 <td align = "center">1</td>
 <td align = "center">-</td>

+ 1 - 1
src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_syn_rsc.xml

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

+ 1 - 1
src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_tmp.v

@@ -4,7 +4,7 @@
 //Tool Version: V1.9.9.03 (64-bit)
 //Part Number: GW1N-UV9QN88C6/I5
 //Device: GW1N-9
-//Created Time: Fri Nov 22 16:03:28 2024
+//Created Time: Fri Nov 22 18:48:03 2024
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------

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

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