Explorar o código

Переключил режим работы FIFO из "First word fallthrough" в "Standard".

Anatoliy Chigirinskiy hai 5 meses
pai
achega
6ba2966e57
Modificáronse 69 ficheiros con 3526 adicións e 3679 borrados
  1. 1 1
      src/constr/SbTmsg.cst
  2. 6 4
      src/constr/SbTmsg.sdc
  3. 10 5
      src/src/FifoCtrl/FifoCtrl.v
  4. 3 0
      src/src/InterfaceArbiter/InterfaceArbiter.v
  5. 995 959
      src/src/Top/ExtQspiMEmul.v
  6. 0 3
      src/src/Top/ExtSpiMEmul.v
  7. 43 3
      src/src/Top/TopSbTmsg.v
  8. 4 4
      src/src/Top/TopSbTmsgTb.sv
  9. 0 42
      src/src/WrapFifoChain/DDSWrapper.v
  10. 2 2
      src/src/WrapFifoChain/Fifo16x3/Fifo16x3.ipc
  11. 112 122
      src/src/WrapFifoChain/Fifo16x3/Fifo16x3.v
  12. 79 101
      src/src/WrapFifoChain/Fifo16x3/Fifo16x3.vo
  13. 13 13
      src/src/WrapFifoChain/Fifo16x3/Fifo16x3_tmp.v
  14. 6 4
      src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/FIFOHS.prj
  15. 32 23
      src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/Fifo16x3.log
  16. 112 122
      src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/Fifo16x3.vg
  17. 46 43
      src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/Fifo16x3_syn.rpt.html
  18. 2 2
      src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/Fifo16x3_syn_resource.html
  19. 1 1
      src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/Fifo16x3_syn_rsc.xml
  20. 13 13
      src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/Fifo16x3_tmp.v
  21. 0 1
      src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/fifo_define.v
  22. 2 2
      src/src/WrapFifoChain/FifoDDS/FifoDDS.ipc
  23. 139 149
      src/src/WrapFifoChain/FifoDDS/FifoDDS.v
  24. 83 105
      src/src/WrapFifoChain/FifoDDS/FifoDDS.vo
  25. 3 3
      src/src/WrapFifoChain/FifoDDS/FifoDDS_tmp.v
  26. 5 3
      src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FIFOHS.prj
  27. 29 20
      src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FifoDDS.log
  28. 139 149
      src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FifoDDS.vg
  29. 45 42
      src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FifoDDS_syn.rpt.html
  30. 2 2
      src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FifoDDS_syn_resource.html
  31. 1 1
      src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FifoDDS_syn_rsc.xml
  32. 3 3
      src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FifoDDS_tmp.v
  33. 0 1
      src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/fifo_define.v
  34. 2 2
      src/src/WrapFifoChain/FifoLMX/FifoLMX.ipc
  35. 218 239
      src/src/WrapFifoChain/FifoLMX/FifoLMX.v
  36. 116 172
      src/src/WrapFifoChain/FifoLMX/FifoLMX.vo
  37. 13 13
      src/src/WrapFifoChain/FifoLMX/FifoLMX_tmp.v
  38. 6 4
      src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FIFOHS.prj
  39. 32 23
      src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FifoLMX.log
  40. 218 239
      src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FifoLMX.vg
  41. 36 33
      src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FifoLMX_syn.rpt.html
  42. 3 3
      src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FifoLMX_syn_resource.html
  43. 1 1
      src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FifoLMX_syn_rsc.xml
  44. 13 13
      src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FifoLMX_tmp.v
  45. 0 1
      src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/fifo_define.v
  46. 2 2
      src/src/WrapFifoChain/FifoMax2870/FifoMax2870.ipc
  47. 149 157
      src/src/WrapFifoChain/FifoMax2870/FifoMax2870.v
  48. 110 129
      src/src/WrapFifoChain/FifoMax2870/FifoMax2870.vo
  49. 13 13
      src/src/WrapFifoChain/FifoMax2870/FifoMax2870_tmp.v
  50. 6 4
      src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FIFOHS.prj
  51. 32 23
      src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FifoMax2870.log
  52. 149 157
      src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FifoMax2870.vg
  53. 39 36
      src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FifoMax2870_syn.rpt.html
  54. 3 3
      src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FifoMax2870_syn_resource.html
  55. 1 1
      src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FifoMax2870_syn_rsc.xml
  56. 13 13
      src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FifoMax2870_tmp.v
  57. 0 1
      src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/fifo_define.v
  58. 2 2
      src/src/WrapFifoChain/FifoShiftReg/FifoShiftReg.ipc
  59. 113 123
      src/src/WrapFifoChain/FifoShiftReg/FifoShiftReg.v
  60. 79 101
      src/src/WrapFifoChain/FifoShiftReg/FifoShiftReg.vo
  61. 13 13
      src/src/WrapFifoChain/FifoShiftReg/FifoShiftReg_tmp.v
  62. 6 4
      src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FIFOHS.prj
  63. 32 23
      src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FifoShiftReg.log
  64. 113 123
      src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FifoShiftReg.vg
  65. 46 43
      src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FifoShiftReg_syn.rpt.html
  66. 2 2
      src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FifoShiftReg_syn_resource.html
  67. 1 1
      src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FifoShiftReg_syn_rsc.xml
  68. 13 13
      src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FifoShiftReg_tmp.v
  69. 0 1
      src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/fifo_define.v

+ 1 - 1
src/constr/SbTmsg.cst

@@ -4,7 +4,7 @@
 //Tool Version: V1.9.11.02 (64-bit)
 //Part Number: GW1N-LV9PG256C6/I5
 //Device: GW1N-9
-//Created Time: Wed 06 25 12:33:50 2025
+//Created Time: Wed 06 25 16:51:40 2025
 
 IO_LOC "FpgaLed_o" L16;
 IO_PORT "FpgaLed_o" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;

+ 6 - 4
src/constr/SbTmsg.sdc

@@ -2,7 +2,7 @@
 //All rights reserved.
 //File Title: Timing Constraints file
 //Tool Version: V1.9.11.02 (64-bit) 
-//Created Time: 2025-06-25 11:36:44
+//Created Time: 2025-06-26 10:43:21
 create_clock -name Clk_i -period 41.667 -waveform {0 20.834} [get_ports {Clk_i}]
 create_clock -name Sck_i -period 16.667 -waveform {0 8.334} [get_ports {Sck_i}]
 create_generated_clock -name clk50 -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 12 -multiply_by 25 [get_nets {clk50}]
@@ -12,8 +12,10 @@ create_generated_clock -name clk26dot25 -source [get_ports {Clk_i}] -master_cloc
 create_generated_clock -name clk20 -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 30 -multiply_by 25 [get_nets {clk20}]
 create_generated_clock -name clk100 -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 6 -multiply_by 25 [get_nets {ClkGen/clk100Mhz}]
 create_generated_clock -name clk60 -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 14 -multiply_by 35 [get_nets {clk60}]
+create_generated_clock -name spiClkDds -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 12 -multiply_by 25 [get_nets {ClkAd9912Fpga_o_d}]
+set_clock_groups -asynchronous -group [get_clocks {Clk_i Sck_i}]
 set_false_path -from [get_regs {InitRst/signal_o_s1}] 
 report_timing -setup -max_paths 300 -max_common_paths 1
-report_timing -setup -from_clock [get_clocks {clk60}] -to_clock [get_clocks {clk60}] -max_paths 50
-report_timing -setup -from_clock [get_clocks {clk50}] -to_clock [get_clocks {clk50}] -max_paths 50
-report_timing -setup -from_clock [get_clocks {clk100}] -to_clock [get_clocks {clk100}] -max_paths 50
+report_timing -setup -from_clock [get_clocks {clk60}] -to_clock [get_clocks {clk60}] -max_paths 50 -max_common_paths 1
+report_timing -setup -from_clock [get_clocks {clk50}] -to_clock [get_clocks {clk50}] -max_paths 50 -max_common_paths 1
+report_timing -setup -from_clock [get_clocks {clk100}] -to_clock [get_clocks {clk100}] -max_paths 50 -max_common_paths 1

+ 10 - 5
src/src/FifoCtrl/FifoCtrl.v

@@ -48,6 +48,7 @@ localparam DATA_WIDTH = WR_NUM*IN_WIDTH;
 //================================================================================
 reg [DATA_WIDTH-1:0] dataReg;
 reg [1:0]  wrCnt;
+reg valRdData;
 //================================================================================
 //  ASSIGNMENTS
 //================================================================================
@@ -182,7 +183,7 @@ always @(posedge RdClk_i) begin
         if (!FifoEmpty_i && !BusySpiM_i) begin 
             ReadEn_o <= 1'b1;
         end
-        else begin 
+        if (ReadEn_o) begin
             ReadEn_o <= 1'b0;
         end
     end
@@ -190,16 +191,20 @@ end
 
 always @(posedge RdClk_i) begin 
     if (Rst_i) begin 
-        ValRdData_o <= 1'b0;
+        valRdData <= 1'b0;
     end
     else begin
         if (!FifoEmpty_i && !BusySpiM_i) begin 
-            ValRdData_o <= 1'b1;
+            valRdData <= 1'b1;
         end
-        else begin 
-            ValRdData_o <= 1'b0;
+        if (valRdData) begin 
+            valRdData <= 1'b0;
         end
     end
 end
 
+always @(posedge RdClk_i) begin 
+    ValRdData_o <= valRdData;
+end
+
 endmodule

+ 3 - 0
src/src/InterfaceArbiter/InterfaceArbiter.v

@@ -103,6 +103,9 @@ module InterfaceArbiter
 	reg plsToggleSyncC;
 	reg plsToggleSyncSignalR;
 
+	reg ss_sync1, ss_sync2, ss_sync3;
+	reg ss_posedge_detect;
+
 //================================================================================
 //  ASSIGNMENTS
 	assign ssPos = ssRegR & !ssRegRR;

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 995 - 959
src/src/Top/ExtQspiMEmul.v


+ 0 - 3
src/src/Top/ExtSpiMEmul.v

@@ -166,9 +166,6 @@ module ExtSpiMEmul (
         end
     end
     
-    
-    
-    
     always @(*) begin
         if (SelSt_i) begin 
             if (PulsePol_i) begin 

+ 43 - 3
src/src/Top/TopSbTmsg.v

@@ -211,7 +211,12 @@ localparam LED_TICK_RATE = 48000000;//0.5Hz 24MHz
 	/* LedReg */
 	reg ledReg;
 	/* Result of test */
-	wire resultOfTest;
+	reg resultOfTest;
+
+	/* Spi Slave */
+	wire valFromSpiSlave;
+	wire [79:0] dataFromSpiSlave;
+	reg currentSample;
 
 //================================================================================
 //  ASSIGNMENTS
@@ -247,7 +252,8 @@ assign AnyFlag_o = anyFlag;//Debug-only
 
 assign servInfo	= {BOARD_VER, FIRMWARE_VER};
 
-assign FpgaLed_o = resultOfTest;
+// assign FpgaLed_o = resultOfTest;
+assign FpgaLed_o = ledReg; //Blink Led
 // assign FpgaLed_o = 1'b1; //Golden-Image
 
 //================================================================================
@@ -374,6 +380,41 @@ always @(*) begin
 	end
 end
 
+SpiSlave #(
+	.WIDTH		(80)
+) SpiS_inst (
+	.Clk_i		(clk50),
+	.Rst_i		(initRst),
+	.Ss_i		(CsAd9912Fpga_o),
+	.Mosi_i		(MosiAd9912Fpga_o),
+	.Sck_i		(ClkAd9912Fpga_o),
+	.Val_o		(valFromSpiSlave),
+	.Data_o		(dataFromSpiSlave)
+);
+
+/* Spi Master Check */
+always @(posedge clk50) begin 
+	if (Rst_i) begin
+		resultOfTest <= 1'b0;
+		currentSample <= 1'b0;
+	end
+	else begin
+		if (valFromSpiSlave) begin 
+			if ((currentSample == 0) && dataFromSpiSlave == 80'hAAAAAAAAAAAAAAAAAAAA ) begin 
+				currentSample <= 1'b1;
+				resultOfTest <= 1'b0;
+			end
+			else if ((currentSample == 1) && dataFromSpiSlave == 80'h55555555555555555555 ) begin 
+				currentSample <= 1'b0;
+				resultOfTest <= 1'b0;
+			end
+			else begin 
+				resultOfTest <= 1'b1; // Ошибка, данные не совпадают
+			end  
+		end
+	end
+end
+
 ClkGen ClkGen
 (
 	.Clk24Mhz_i			(Clk_i),
@@ -514,7 +555,6 @@ DDSWrapper #(
 	.Val_i				(valDdsDataToFifo),
 	.DdsWordNumReg_o	(ddsWordNumReg),
 	.DdsSyncFpga_o		(DdsSyncFpga_o),
-	.ResultOfTest_o		(resultOfTest),
 	.Ss_o				(ddsCsSpiM),
 	.Sck_o				(ddsClkSpiM),
 	.Mosi_o				(ddsMosiSpiM)

+ 4 - 4
src/src/Top/TopSbTmsgTb.sv

@@ -1,4 +1,4 @@
-`timescale 1ns/1ns
+`timescale 1ns/1ps
 
 module TopSbTmsgTb(inout Mosi1_io);
    parameter CLK_PERIOD = 8.13; // Clock period in ns
@@ -131,7 +131,7 @@ localparam        POTWordNum = 2'd2;
 localparam        DACWordNum = 1'd1;
 localparam        ATTWordNum = 1'd1;
 localparam [1:0]  ShRegWordNum = 2'd1;
-localparam [2:0]  MaxWordNum =   3'd4;
+localparam [2:0]  MaxWordNum =   3'd2;
 localparam [1:0]  GPIOWordNum =  2'd1;
 
 localparam [23:0] Max2870Header         = {1'h1, 1'h0, 3'h0, 1'h0, 2'h0, 4'h0, 1'h0, MaxWordNum, 1'h0, 2'h0, 1'h0, 2'h0, 1'h0, 1'h0, 1'h1};
@@ -179,7 +179,7 @@ assign Mosi0_o = (modeSel) ? mosi0Q : mosi0R;
 assign Mosi1_io = (anyFlag) ? 1'bz : Mosi1_o;
 assign MisoLdLmx_i = 1'b1;
 
-assign emptyFlagTx = (trCnt > 74) ? 1'b1 : 1'b0;
+assign emptyFlagTx = (trCnt > 71) ? 1'b1 : 1'b0;
 assign QSPITotalWordNum = LMXWordNum + DDSWordNum + POTWordNum + DACWordNum + ATTWordNum + ShRegWordNum + MaxWordNum + GPIOWordNum; 
 
 assign currClk = (modeSel) ? Clk60 : Clk10;
@@ -397,7 +397,7 @@ always_comb begin
         .Lag_i(LAG_i),
         .Lead_i(LEAD_i),
         .EndianSel_i(EndianSel_i),
-        .Stop_i(6'h0),
+        .Stop_i(6'h3),
         .PulsePol_i(PulsePol_i),
         .Mosi0_o(mosi0R),
         .Sck_o(SckR),

+ 0 - 42
src/src/WrapFifoChain/DDSWrapper.v

@@ -92,12 +92,6 @@ wire [9:0] storedParityBits; // Сохранённые биты чётности
 reg ssNegEdge;
 reg isLastWord;
 reg directFlagRisingEdge;
-
-reg currentSample;
-
-/* Spi Slave */
-wire valFromSpiSlave;
-wire [79:0] dataFromSpiSlave;
 //================================================================================
 //	                                ASSIGNMENTS
 //================================================================================ 
@@ -282,30 +276,6 @@ always @(posedge RdClk_i) begin
 	end
 end
 
-/* Spi Master Check */
-always @(posedge RdClk_i) begin 
-	if (RstExt_i) begin
-		ResultOfTest_o <= 1'b0;
-		currentSample <= 1'b0;
-	end
-	else begin
-		if (valFromSpiSlave) begin 
-			if ((currentSample == 0) && dataFromSpiSlave == 80'hAAAAAAAAAAAAAAAAAAAA ) begin 
-				currentSample <= 1'b1;
-				ResultOfTest_o <= 1'b0;
-			end
-			else if ((currentSample == 1) && dataFromSpiSlave == 80'h55555555555555555555 ) begin 
-				currentSample <= 1'b0;
-				ResultOfTest_o <= 1'b0;
-			end
-			else begin 
-				ResultOfTest_o <= 1'b1; // Ошибка, данные не совпадают
-			end  
-		end
-	end
-end
-
-
 FifoCtrl #(
 	.PARITY_CHECK	(1),
 	.IN_WIDTH		(IN_WIDTH),
@@ -353,16 +323,4 @@ SpiM #(
 	.Sck_o		(Sck_o)
 );
 
-SpiSlave #(
-	.WIDTH		(OUT_WIDTH)
-) SpiS_inst (
-	.Clk_i		(RdClk_i),
-	.Rst_i		(Rst_i),
-	.Ss_i		(Ss_o),
-	.Mosi_i		(Mosi_o),
-	.Sck_i		(Sck_o),
-	.Val_o		(valFromSpiSlave),
-	.Data_o		(dataFromSpiSlave)
-);
-
 endmodule

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

@@ -17,7 +17,7 @@ ECCSelected=false
 EmptyClear=1
 EmptySet=1
 EnReset=true
-FirstWordFallThrough=true
+FirstWordFallThrough=false
 FullClear=1
 FullSet=1
 LANG=0
@@ -28,7 +28,7 @@ ReadDataWidth=16
 ReadDepth=2
 ResetSynchronization=true
 SSRAM=false
-StandardFIFO=false
+StandardFIFO=true
 Synthesis_tool=GowinSynthesis
 WriteDataNum=false
 WriteDataWidth=16

+ 112 - 122
src/src/WrapFifoChain/Fifo16x3/Fifo16x3.v

@@ -1,11 +1,11 @@
 //
 //Written by GowinSynthesis
-//Tool Version "V1.9.9.02"
-//Thu Apr 25 16:04:59 2024
+//Tool Version "V1.9.11.02 (64-bit)"
+//Thu Jun 26 11:09:42 2025
 
 //Source file index table:
-//file0 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
-//file1 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+//file0 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
 `timescale 100 ps/100 ps
 `pragma protect begin_protected
 `pragma protect version="2.3"
@@ -17,129 +17,119 @@
 `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
-W3HrOAkNrb9fyqeg7xkmFYNJEXf+2L4xAs1NganKSsLdhqtqnzGilurt3rhiuavKOthhpj0CIxX1
-ZedEQJHy1YoMcnQT/3ZR2V3s3tn5tIa0uYYmQ8HT3UmPy8pHZ9XT/zgb2OmdgjJxDOHxDE7oxPBw
-9cYYeTV+3m3U6h+r4eV1SJQSYMc4UjdcIpk/DWgts59MtW68EHUmHQxC7WbB6lq0/1Vwga5FznK/
-+9xK15Qi3TKg78a8SyeARfBIq/ZyaIeoIf0QdOas+rARU4dzyqiiiy7sm42o4pyAR9PegR9hQGE7
-t/bYNDjO0d+SB5/il7zBD/3fBQDGuJm2Z5KM7Q==
+QR+ckbaNhwhyNg1U6WQO8hAldjyP1LUGylMi4frppjDlHJUE0X3d+p3Tk5B3/H8+5b3TT5ll9yWS
+hQEMHDHgXWhmhvSVtOcgYeyVDQ4uxPqhDC/KDMvdUCnROdm8xXb9tnuG98pfoykrhIs+YRaHDUM2
+VO0C9RFXkwxOYbK0i0mn9VlrKifYegxh3n48y0fBaeUHX6BWFKIwN7QK32QY4nZhjeghtHBrSW5y
+xfPOqpFlWxLyxBDYtZvmp9kGjqYNnLbTCVIAjEXCavEjTN8T0AQv2RCFVs5zwCxNhluaiBf8kT3b
+nrwY8z/Nec9IUKlRrVQ6JMH6jCXJWlZETP2N5w==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=6368)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=5808)
 `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 Fifo16x3 (
   Data,

+ 79 - 101
src/src/WrapFifoChain/Fifo16x3/Fifo16x3.vo

@@ -1,8 +1,8 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
-//File Title: Post-PnR Simulation Model file
-//Tool Version: V1.9.9.02
-//Created Time: Thu Apr 25 16:04:59 2024
+//File Title: Post-PnR Verilog Simulation Model file
+//Tool Version: V1.9.11.02 (64-bit)
+//Created Time: Thu Jun 26 11:09:43 2025
 
 `timescale 100 ps/100 ps
 module Fifo16x3(
@@ -37,30 +37,30 @@ wire VCC;
 wire WrClk;
 wire WrEn;
 wire \fifo_inst/n20_5 ;
-wire \fifo_inst/n26_4 ;
-wire \fifo_inst/n217_4 ;
+wire \fifo_inst/n24_3 ;
+wire \fifo_inst/n167_3 ;
+wire \fifo_inst/n218_4 ;
 wire \fifo_inst/rempty_val ;
 wire \fifo_inst/wfull_val_7 ;
 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.wbinnext_0_8 ;
+wire \fifo_inst/rbin_num_next_0_10 ;
+wire \fifo_inst/rempty_val1 ;
 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/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:1] \fifo_inst/rbin_num_next ;
+wire [0:0] \fifo_inst/Equal.rgraynext ;
 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 ;
@@ -82,41 +82,39 @@ LUT4 \fifo_inst/n20_s1  (
 	.F(\fifo_inst/n20_5 )
 );
 defparam \fifo_inst/n20_s1 .INIT=16'h5300;
-LUT3 \fifo_inst/n26_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])
+LUT2 \fifo_inst/n24_s0  (
+	.I0(Empty),
+	.I1(RdEn),
+	.F(\fifo_inst/n24_3 )
 );
-defparam \fifo_inst/Equal.rgraynext_0_s0 .INIT=8'h1E;
+defparam \fifo_inst/n24_s0 .INIT=4'h4;
 LUT3 \fifo_inst/Equal.wgraynext_0_s0  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
+	.I0(\fifo_inst/n20_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
 	.I2(\fifo_inst/wptr [1]),
 	.F(\fifo_inst/Equal.wgraynext [0])
 );
 defparam \fifo_inst/Equal.wgraynext_0_s0 .INIT=8'h1E;
-LUT2 \fifo_inst/n217_s1  (
+LUT2 \fifo_inst/n167_s0  (
+	.I0(\fifo_inst/rempty_val ),
+	.I1(\fifo_inst/reset_r [1]),
+	.F(\fifo_inst/n167_3 )
+);
+defparam \fifo_inst/n167_s0 .INIT=4'hE;
+LUT2 \fifo_inst/n218_s1  (
 	.I0(\fifo_inst/reset_w [1]),
 	.I1(\fifo_inst/wfull_val_7 ),
-	.F(\fifo_inst/n217_4 )
+	.F(\fifo_inst/n218_4 )
 );
-defparam \fifo_inst/n217_s1 .INIT=4'h4;
+defparam \fifo_inst/n218_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]),
+	.I0(\fifo_inst/wptr [0]),
+	.I1(\fifo_inst/rptr [0]),
+	.I2(\fifo_inst/wptr [1]),
+	.I3(\fifo_inst/rbin_num [1]),
 	.F(\fifo_inst/rempty_val )
 );
-defparam \fifo_inst/rempty_val_s3 .INIT=16'h4221;
+defparam \fifo_inst/rempty_val_s3 .INIT=16'h9009;
 LUT4 \fifo_inst/wfull_val_s3  (
 	.I0(\fifo_inst/wptr [0]),
 	.I1(\fifo_inst/wptr [1]),
@@ -133,8 +131,8 @@ LUT3 \fifo_inst/wfull_val1_s9  (
 );
 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 ),
+	.I0(\fifo_inst/wfull_val1_0 ),
+	.I1(\fifo_inst/wfull_val_7 ),
 	.I2(\fifo_inst/reset_w [1]),
 	.F(\fifo_inst/wfull_val1_0 )
 );
@@ -147,47 +145,48 @@ LUT3 \fifo_inst/Full_d_s  (
 );
 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 ),
+	.I0(\fifo_inst/Full_1 ),
+	.I1(\fifo_inst/wfull_val_7 ),
 	.I2(\fifo_inst/reset_w [1]),
 	.F(\fifo_inst/Full_1 )
 );
 defparam \fifo_inst/Full_s8 .INIT=8'h0E;
-LUT3 \fifo_inst/rbin_num_next_0_s5  (
-	.I0(Empty),
-	.I1(RdEn),
-	.I2(\fifo_inst/rbin_num [0]),
-	.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]),
-	.F(\fifo_inst/rbin_num_next [1])
-);
-defparam \fifo_inst/rbin_num_next_1_s2 .INIT=8'hB4;
 LUT2 \fifo_inst/Equal.wbinnext_0_s3  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
-	.F(\fifo_inst/Equal.wbinnext_0_7 )
+	.I0(\fifo_inst/n20_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.F(\fifo_inst/Equal.wbinnext_0_8 )
 );
 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 ),
+	.I0(\fifo_inst/n20_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
 	.I2(\fifo_inst/wptr [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 )
+LUT4 \fifo_inst/rbin_num_next_1_s3  (
+	.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_s3 .INIT=16'hBF40;
+LUT3 \fifo_inst/rbin_num_next_0_s4  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_inst/rbin_num [0]),
+	.F(\fifo_inst/rbin_num_next_0_10 )
+);
+defparam \fifo_inst/rbin_num_next_0_s4 .INIT=8'hB4;
+LUT4 \fifo_inst/Equal.rgraynext_0_s1  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_inst/rbin_num [0]),
+	.I3(\fifo_inst/rbin_num [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'h0BF4;
 DFFP \fifo_inst/reset_r_0_s0  (
 	.D(GND),
 	.CLK(\fifo_inst/n4_6 ),
@@ -217,40 +216,12 @@ DFFC \fifo_inst/rbin_num_1_s0  (
 );
 defparam \fifo_inst/rbin_num_1_s0 .INIT=1'b0;
 DFFC \fifo_inst/rbin_num_0_s0  (
-	.D(\fifo_inst/rbin_num_next [0]),
+	.D(\fifo_inst/rbin_num_next_0_10 ),
 	.CLK(RdClk),
 	.CLEAR(\fifo_inst/reset_r [1]),
 	.Q(\fifo_inst/rbin_num [0])
 );
 defparam \fifo_inst/rbin_num_0_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq1_wptr_1_s0  (
-	.D(\fifo_inst/wptr [1]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq1_wptr [1])
-);
-defparam \fifo_inst/Equal.rq1_wptr_1_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq1_wptr_0_s0  (
-	.D(\fifo_inst/wptr [0]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq1_wptr [0])
-);
-defparam \fifo_inst/Equal.rq1_wptr_0_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq2_wptr_1_s0  (
-	.D(\fifo_inst/Equal.rq1_wptr [1]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq2_wptr [1])
-);
-defparam \fifo_inst/Equal.rq2_wptr_1_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq2_wptr_0_s0  (
-	.D(\fifo_inst/Equal.rq1_wptr [0]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq2_wptr [0])
-);
-defparam \fifo_inst/Equal.rq2_wptr_0_s0 .INIT=1'b0;
 DFFC \fifo_inst/rptr_0_s0  (
 	.D(\fifo_inst/Equal.rgraynext [0]),
 	.CLK(RdClk),
@@ -273,16 +244,23 @@ DFFC \fifo_inst/wptr_0_s0  (
 );
 defparam \fifo_inst/wptr_0_s0 .INIT=1'b0;
 DFFC \fifo_inst/Equal.wbin_0_s0  (
-	.D(\fifo_inst/Equal.wbinnext_0_7 ),
+	.D(\fifo_inst/Equal.wbinnext_0_8 ),
 	.CLK(WrClk),
 	.CLEAR(\fifo_inst/reset_w [1]),
 	.Q(\fifo_inst/Equal.wbin [0])
 );
 defparam \fifo_inst/Equal.wbin_0_s0 .INIT=1'b0;
-DFFP \fifo_inst/Empty_s0  (
+DFFP \fifo_inst/rempty_val1_s0  (
 	.D(\fifo_inst/rempty_val ),
 	.CLK(RdClk),
-	.PRESET(\fifo_inst/reset_r [1]),
+	.PRESET(\fifo_inst/n167_3 ),
+	.Q(\fifo_inst/rempty_val1 )
+);
+defparam \fifo_inst/rempty_val1_s0 .INIT=1'b1;
+DFFP \fifo_inst/Empty_s0  (
+	.D(\fifo_inst/rempty_val1 ),
+	.CLK(RdClk),
+	.PRESET(\fifo_inst/n167_3 ),
 	.Q(Empty)
 );
 defparam \fifo_inst/Empty_s0 .INIT=1'b1;
@@ -303,7 +281,7 @@ defparam \fifo_inst/wfull_val1_s0 .INIT=1'b0;
 DFFP \fifo_inst/wfull_val1_s1  (
 	.D(\fifo_inst/wfull_val_7 ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n217_4 ),
+	.PRESET(\fifo_inst/n218_4 ),
 	.Q(\fifo_inst/wfull_val1_3 )
 );
 defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
@@ -317,7 +295,7 @@ 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/n218_4 ),
 	.Q(\fifo_inst/Full_2 )
 );
 defparam \fifo_inst/Full_s1 .INIT=1'b1;
@@ -326,14 +304,14 @@ SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s  (
 	.CEA(\fifo_inst/n20_5 ),
 	.RESETA(GND),
 	.CLKB(RdClk),
-	.CEB(\fifo_inst/n26_4 ),
+	.CEB(\fifo_inst/n24_3 ),
 	.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}),
+	.ADB({GND, GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num [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;

+ 13 - 13
src/src/WrapFifoChain/Fifo16x3/Fifo16x3_tmp.v

@@ -1,24 +1,24 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
 //File Title: Template file for instantiation
-//Tool Version: V1.9.9.02
+//Tool Version: V1.9.11.02 (64-bit)
 //Part Number: GW1N-LV9PG256C6/I5
-//Device: GW1N-
-//Created Time: Thu Apr 25 16:04:59 2024
+//Device: GW1N-9
+//Created Time: Thu Jun 26 11:09:42 2025
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------
 
 	Fifo16x3 your_instance_name(
-		.Data(Data_i), //input [15:0] Data
-		.Reset(Reset_i), //input Reset
-		.WrClk(WrClk_i), //input WrClk
-		.RdClk(RdClk_i), //input RdClk
-		.WrEn(WrEn_i), //input WrEn
-		.RdEn(RdEn_i), //input RdEn
-		.Q(Q_o), //output [15:0] Q
-		.Empty(Empty_o), //output Empty
-		.Full(Full_o) //output Full
+		.Data(Data), //input [15: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 [15:0] Q
+		.Empty(Empty), //output Empty
+		.Full(Full) //output Full
 	);
 
 //--------Copy end-------------------

+ 6 - 4
src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/FIFOHS.prj

@@ -4,17 +4,19 @@
     <Version>beta</Version>
     <Device id="GW1N-9" package="PBGA256" speed="6" partNumber="GW1N-LV9PG256C6/I5"/>
     <FileList>
-        <File path="C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v" type="verilog"/>
-        <File path="C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v" type="verilog"/>
+        <File path="C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v" type="verilog"/>
+        <File path="C:/Gowin/Gowin_V1.9.11.02_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.02_x64/IDE/ipcore/FIFO_HS/data"/>
-        <Option type="include_path" value="C:/Projects/QuestaProjects/main_tb/fifo_hs/Fifo16x3/temp/FIFOHS"/>
+        <Option type="include_path" value="C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data"/>
+        <Option type="include_path" value="C:/Gowin/Projects/SB_TMSG44V1_FPGA/src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS"/>
         <Option type="output_file" value="Fifo16x3.vg"/>
         <Option type="output_template" value="Fifo16x3_tmp.v"/>
         <Option type="ram_balance" value="1"/>
         <Option type="ram_rw_check" value="1"/>
+        <Option type="vcc" value="1.2"/>
+        <Option type="vccx" value="3.3"/>
         <Option type="verilog_language" value="sysv-2017"/>
     </OptionList>
 </Project>

+ 32 - 23
src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/Fifo16x3.log

@@ -1,19 +1,28 @@
 GowinSynthesis start
 Running parser ...
-Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'
-Analyzing included file '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Back to file '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Undeclared symbol '**', assumed default net type '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'
-Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
-Back to file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
-Analyzing included file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
-Back to file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
-Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
-Back to file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
-Compiling module 'Fifo16x3'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":4)
-Compiling module '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Extracting RAM for identifier '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Undeclared symbol 'Reset', assumed default net type 'wire'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Undeclared symbol 'RPReset', assumed default net type 'wire'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
+Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
+Compiling module 'Fifo16x3'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":4)
+Compiling module '**'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Extracting RAM for identifier '**'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
 NOTE  (EX0101) : Current top module is "Fifo16x3"
 [5%] Running netlist conversion ...
 Running device independent optimization ...
@@ -29,17 +38,17 @@ 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.02_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.02_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.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_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.02_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.02_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.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_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:\Projects\QuestaProjects\main_tb\fifo_hs\Fifo16x3\temp\FIFOHS\Fifo16x3.vg" completed
-Generate template file "C:\Projects\QuestaProjects\main_tb\fifo_hs\Fifo16x3\temp\FIFOHS\Fifo16x3_tmp.v" completed
-[100%] Generate report file "C:\Projects\QuestaProjects\main_tb\fifo_hs\Fifo16x3\temp\FIFOHS\Fifo16x3_syn.rpt.html" completed
+[95%] Generate netlist file "C:\Gowin\Projects\SB_TMSG44V1_FPGA\src\src\WrapFifoChain\Fifo16x3\temp\FIFOHS\Fifo16x3.vg" completed
+Generate template file "C:\Gowin\Projects\SB_TMSG44V1_FPGA\src\src\WrapFifoChain\Fifo16x3\temp\FIFOHS\Fifo16x3_tmp.v" completed
+[100%] Generate report file "C:\Gowin\Projects\SB_TMSG44V1_FPGA\src\src\WrapFifoChain\Fifo16x3\temp\FIFOHS\Fifo16x3_syn.rpt.html" completed
 GowinSynthesis finish

+ 112 - 122
src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/Fifo16x3.vg

@@ -1,11 +1,11 @@
 //
 //Written by GowinSynthesis
-//Tool Version "V1.9.9.02"
-//Thu Apr 25 16:04:59 2024
+//Tool Version "V1.9.11.02 (64-bit)"
+//Thu Jun 26 11:09:42 2025
 
 //Source file index table:
-//file0 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
-//file1 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+//file0 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
 `timescale 100 ps/100 ps
 `pragma protect begin_protected
 `pragma protect version="2.3"
@@ -17,129 +17,119 @@
 `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
-W3HrOAkNrb9fyqeg7xkmFYNJEXf+2L4xAs1NganKSsLdhqtqnzGilurt3rhiuavKOthhpj0CIxX1
-ZedEQJHy1YoMcnQT/3ZR2V3s3tn5tIa0uYYmQ8HT3UmPy8pHZ9XT/zgb2OmdgjJxDOHxDE7oxPBw
-9cYYeTV+3m3U6h+r4eV1SJQSYMc4UjdcIpk/DWgts59MtW68EHUmHQxC7WbB6lq0/1Vwga5FznK/
-+9xK15Qi3TKg78a8SyeARfBIq/ZyaIeoIf0QdOas+rARU4dzyqiiiy7sm42o4pyAR9PegR9hQGE7
-t/bYNDjO0d+SB5/il7zBD/3fBQDGuJm2Z5KM7Q==
+QR+ckbaNhwhyNg1U6WQO8hAldjyP1LUGylMi4frppjDlHJUE0X3d+p3Tk5B3/H8+5b3TT5ll9yWS
+hQEMHDHgXWhmhvSVtOcgYeyVDQ4uxPqhDC/KDMvdUCnROdm8xXb9tnuG98pfoykrhIs+YRaHDUM2
+VO0C9RFXkwxOYbK0i0mn9VlrKifYegxh3n48y0fBaeUHX6BWFKIwN7QK32QY4nZhjeghtHBrSW5y
+xfPOqpFlWxLyxBDYtZvmp9kGjqYNnLbTCVIAjEXCavEjTN8T0AQv2RCFVs5zwCxNhluaiBf8kT3b
+nrwY8z/Nec9IUKlRrVQ6JMH6jCXJWlZETP2N5w==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=6368)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=5808)
 `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 Fifo16x3 (
   Data,

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 46 - 43
src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/Fifo16x3_syn.rpt.html


+ 2 - 2
src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/Fifo16x3_syn_resource.html

@@ -30,8 +30,8 @@ table td.label { width: 20%; white-space: nowrap; min-width: 20px; background-co
 <th class="label">ROM16 NUMBER</th>
 </tr>
 <tr>
-<td class="label">Fifo16x3 (C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
-<td align = "center">19</td>
+<td class="label">Fifo16x3 (C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
+<td align = "center">16</td>
 <td align = "center">-</td>
 <td align = "center">18</td>
 <td align = "center">-</td>

+ 1 - 1
src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/Fifo16x3_syn_rsc.xml

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

+ 13 - 13
src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/Fifo16x3_tmp.v

@@ -1,24 +1,24 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
 //File Title: Template file for instantiation
-//Tool Version: V1.9.9.02
+//Tool Version: V1.9.11.02 (64-bit)
 //Part Number: GW1N-LV9PG256C6/I5
-//Device: GW1N-
-//Created Time: Thu Apr 25 16:04:59 2024
+//Device: GW1N-9
+//Created Time: Thu Jun 26 11:09:42 2025
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------
 
 	Fifo16x3 your_instance_name(
-		.Data(Data_i), //input [15:0] Data
-		.Reset(Reset_i), //input Reset
-		.WrClk(WrClk_i), //input WrClk
-		.RdClk(RdClk_i), //input RdClk
-		.WrEn(WrEn_i), //input WrEn
-		.RdEn(RdEn_i), //input RdEn
-		.Q(Q_o), //output [15:0] Q
-		.Empty(Empty_o), //output Empty
-		.Full(Full_o) //output Full
+		.Data(Data), //input [15: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 [15:0] Q
+		.Empty(Empty), //output Empty
+		.Full(Full) //output Full
 	);
 
 //--------Copy end-------------------

+ 0 - 1
src/src/WrapFifoChain/Fifo16x3/temp/FIFOHS/fifo_define.v

@@ -1,5 +1,4 @@
 `define module_name Fifo16x3
 `define EBR_BASED
-`define FWFT
 `define En_Reset
 `define Reset_Synchronization

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

@@ -17,7 +17,7 @@ ECCSelected=false
 EmptyClear=1
 EmptySet=1
 EnReset=true
-FirstWordFallThrough=true
+FirstWordFallThrough=false
 FullClear=1
 FullSet=1
 LANG=0
@@ -28,7 +28,7 @@ ReadDataWidth=80
 ReadDepth=2
 ResetSynchronization=true
 SSRAM=false
-StandardFIFO=false
+StandardFIFO=true
 Synthesis_tool=GowinSynthesis
 WriteDataNum=false
 WriteDataWidth=80

+ 139 - 149
src/src/WrapFifoChain/FifoDDS/FifoDDS.v

@@ -1,11 +1,11 @@
 //
 //Written by GowinSynthesis
-//Tool Version "V1.9.9.03 (64-bit)"
-//Tue May 28 15:49:41 2024
+//Tool Version "V1.9.11.02 (64-bit)"
+//Thu Jun 26 11:09:20 2025
 
 //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"
+//file0 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
 `timescale 100 ps/100 ps
 `pragma protect begin_protected
 `pragma protect version="2.3"
@@ -17,156 +17,146 @@
 `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
-HBNA+/9oSsy54/JlKoiN4gbbgk61v4S0vzu1SlxVV1FpSHLGFM3OwH9RYuOhFT+UXDcUiyGSTSim
-K+dcHv0CeFpV/YQWR5St8DdQGG+R45m6XWDErYGEafyEor0OduRaUiVP0XYqOL50oW/9d9x2NNiT
-ln6/o/IJCxIEaVblBTKR3tD4Ofb06tQw/6ZuEVhgWtapp5r+TlGiaQP6jx3uNfn+NBjuwyUzYkQ0
-MJjDVvgoM3zUdhRo+JtyCKggxSnoc2ym6iCL/mV/5ly8CtyjxhgYzms2pS3M3jxp5ii+uQ3L2s40
-krH8Dc9bcX5adde2FYFmhmRyz3sc5c38ia3cWA==
+h2Hk2PsTwq/dtAZ9cFVv1LIjE8XyjgauxqVI0H0KYFOYx3Oczh/IQEEmZNFaGIpF5+tpslMYL+Ka
++ZHdv2OmWeemN9OQUti1xK5PjD+tkvCGzpdHcDiZwF13UtlVVZAsEeOwAXH/+xl5iVD4XG1+sLw+
+0nK6e/8txanFzml+X3aHiYsP7g37sp/fbBNzYVGbvOdk5dBM9oFfusDzrd57y56OLNqQN8Xkw7X7
+YXRy46gZSPhUEew64wB1//OkcYXy/XR1SG8GKx0WW1dETf37zkyuWnWhtogDgOzFcnQjd4KWvyx8
+sPn/fYjDgkHcdGVe++mN41kzGiD37X68lMYU8Q==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=7872)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=7312)
 `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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
-LUKcX1Is
+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
+RduhTOFPizU7Tojp/yuOeA==
 `pragma protect end_protected
 module FifoDDS (
   Data,

+ 83 - 105
src/src/WrapFifoChain/FifoDDS/FifoDDS.vo

@@ -1,8 +1,8 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
-//File Title: Post-PnR Simulation Model file
-//Tool Version: V1.9.9.03 (64-bit)
-//Created Time: Tue May 28 15:49:41 2024
+//File Title: Post-PnR Verilog Simulation Model file
+//Tool Version: V1.9.11.02 (64-bit)
+//Created Time: Thu Jun 26 11:09:20 2025
 
 `timescale 100 ps/100 ps
 module FifoDDS(
@@ -37,30 +37,30 @@ wire VCC;
 wire WrClk;
 wire WrEn;
 wire \fifo_inst/n20_5 ;
-wire \fifo_inst/n26_4 ;
-wire \fifo_inst/n537_4 ;
+wire \fifo_inst/n24_3 ;
+wire \fifo_inst/n423_3 ;
+wire \fifo_inst/n538_4 ;
 wire \fifo_inst/rempty_val ;
 wire \fifo_inst/wfull_val_7 ;
 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.wbinnext_0_8 ;
+wire \fifo_inst/rbin_num_next_0_10 ;
+wire \fifo_inst/rempty_val1 ;
 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/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:1] \fifo_inst/rbin_num_next ;
+wire [0:0] \fifo_inst/Equal.rgraynext ;
 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 ;
@@ -82,41 +82,39 @@ LUT4 \fifo_inst/n20_s1  (
 	.F(\fifo_inst/n20_5 )
 );
 defparam \fifo_inst/n20_s1 .INIT=16'h5300;
-LUT3 \fifo_inst/n26_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])
+LUT2 \fifo_inst/n24_s0  (
+	.I0(Empty),
+	.I1(RdEn),
+	.F(\fifo_inst/n24_3 )
 );
-defparam \fifo_inst/Equal.rgraynext_0_s0 .INIT=8'h1E;
+defparam \fifo_inst/n24_s0 .INIT=4'h4;
 LUT3 \fifo_inst/Equal.wgraynext_0_s0  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
+	.I0(\fifo_inst/n20_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
 	.I2(\fifo_inst/wptr [1]),
 	.F(\fifo_inst/Equal.wgraynext [0])
 );
 defparam \fifo_inst/Equal.wgraynext_0_s0 .INIT=8'h1E;
-LUT2 \fifo_inst/n537_s1  (
+LUT2 \fifo_inst/n423_s0  (
+	.I0(\fifo_inst/rempty_val ),
+	.I1(\fifo_inst/reset_r [1]),
+	.F(\fifo_inst/n423_3 )
+);
+defparam \fifo_inst/n423_s0 .INIT=4'hE;
+LUT2 \fifo_inst/n538_s1  (
 	.I0(\fifo_inst/reset_w [1]),
 	.I1(\fifo_inst/wfull_val_7 ),
-	.F(\fifo_inst/n537_4 )
+	.F(\fifo_inst/n538_4 )
 );
-defparam \fifo_inst/n537_s1 .INIT=4'h4;
+defparam \fifo_inst/n538_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]),
+	.I0(\fifo_inst/wptr [0]),
+	.I1(\fifo_inst/rptr [0]),
+	.I2(\fifo_inst/wptr [1]),
+	.I3(\fifo_inst/rbin_num [1]),
 	.F(\fifo_inst/rempty_val )
 );
-defparam \fifo_inst/rempty_val_s3 .INIT=16'h4221;
+defparam \fifo_inst/rempty_val_s3 .INIT=16'h9009;
 LUT4 \fifo_inst/wfull_val_s3  (
 	.I0(\fifo_inst/wptr [0]),
 	.I1(\fifo_inst/wptr [1]),
@@ -133,8 +131,8 @@ LUT3 \fifo_inst/wfull_val1_s9  (
 );
 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 ),
+	.I0(\fifo_inst/wfull_val1_0 ),
+	.I1(\fifo_inst/wfull_val_7 ),
 	.I2(\fifo_inst/reset_w [1]),
 	.F(\fifo_inst/wfull_val1_0 )
 );
@@ -147,47 +145,48 @@ LUT3 \fifo_inst/Full_d_s  (
 );
 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 ),
+	.I0(\fifo_inst/Full_1 ),
+	.I1(\fifo_inst/wfull_val_7 ),
 	.I2(\fifo_inst/reset_w [1]),
 	.F(\fifo_inst/Full_1 )
 );
 defparam \fifo_inst/Full_s8 .INIT=8'h0E;
-LUT3 \fifo_inst/rbin_num_next_0_s5  (
-	.I0(Empty),
-	.I1(RdEn),
-	.I2(\fifo_inst/rbin_num [0]),
-	.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]),
-	.F(\fifo_inst/rbin_num_next [1])
-);
-defparam \fifo_inst/rbin_num_next_1_s2 .INIT=8'hB4;
 LUT2 \fifo_inst/Equal.wbinnext_0_s3  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
-	.F(\fifo_inst/Equal.wbinnext_0_7 )
+	.I0(\fifo_inst/n20_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.F(\fifo_inst/Equal.wbinnext_0_8 )
 );
 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 ),
+	.I0(\fifo_inst/n20_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
 	.I2(\fifo_inst/wptr [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 )
+LUT4 \fifo_inst/rbin_num_next_1_s3  (
+	.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_s3 .INIT=16'hBF40;
+LUT3 \fifo_inst/rbin_num_next_0_s4  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_inst/rbin_num [0]),
+	.F(\fifo_inst/rbin_num_next_0_10 )
+);
+defparam \fifo_inst/rbin_num_next_0_s4 .INIT=8'hB4;
+LUT4 \fifo_inst/Equal.rgraynext_0_s1  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_inst/rbin_num [0]),
+	.I3(\fifo_inst/rbin_num [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'h0BF4;
 DFFP \fifo_inst/reset_r_0_s0  (
 	.D(GND),
 	.CLK(\fifo_inst/n4_6 ),
@@ -217,40 +216,12 @@ DFFC \fifo_inst/rbin_num_1_s0  (
 );
 defparam \fifo_inst/rbin_num_1_s0 .INIT=1'b0;
 DFFC \fifo_inst/rbin_num_0_s0  (
-	.D(\fifo_inst/rbin_num_next [0]),
+	.D(\fifo_inst/rbin_num_next_0_10 ),
 	.CLK(RdClk),
 	.CLEAR(\fifo_inst/reset_r [1]),
 	.Q(\fifo_inst/rbin_num [0])
 );
 defparam \fifo_inst/rbin_num_0_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq1_wptr_1_s0  (
-	.D(\fifo_inst/wptr [1]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq1_wptr [1])
-);
-defparam \fifo_inst/Equal.rq1_wptr_1_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq1_wptr_0_s0  (
-	.D(\fifo_inst/wptr [0]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq1_wptr [0])
-);
-defparam \fifo_inst/Equal.rq1_wptr_0_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq2_wptr_1_s0  (
-	.D(\fifo_inst/Equal.rq1_wptr [1]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq2_wptr [1])
-);
-defparam \fifo_inst/Equal.rq2_wptr_1_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq2_wptr_0_s0  (
-	.D(\fifo_inst/Equal.rq1_wptr [0]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq2_wptr [0])
-);
-defparam \fifo_inst/Equal.rq2_wptr_0_s0 .INIT=1'b0;
 DFFC \fifo_inst/rptr_0_s0  (
 	.D(\fifo_inst/Equal.rgraynext [0]),
 	.CLK(RdClk),
@@ -273,16 +244,23 @@ DFFC \fifo_inst/wptr_0_s0  (
 );
 defparam \fifo_inst/wptr_0_s0 .INIT=1'b0;
 DFFC \fifo_inst/Equal.wbin_0_s0  (
-	.D(\fifo_inst/Equal.wbinnext_0_7 ),
+	.D(\fifo_inst/Equal.wbinnext_0_8 ),
 	.CLK(WrClk),
 	.CLEAR(\fifo_inst/reset_w [1]),
 	.Q(\fifo_inst/Equal.wbin [0])
 );
 defparam \fifo_inst/Equal.wbin_0_s0 .INIT=1'b0;
-DFFP \fifo_inst/Empty_s0  (
+DFFP \fifo_inst/rempty_val1_s0  (
 	.D(\fifo_inst/rempty_val ),
 	.CLK(RdClk),
-	.PRESET(\fifo_inst/reset_r [1]),
+	.PRESET(\fifo_inst/n423_3 ),
+	.Q(\fifo_inst/rempty_val1 )
+);
+defparam \fifo_inst/rempty_val1_s0 .INIT=1'b1;
+DFFP \fifo_inst/Empty_s0  (
+	.D(\fifo_inst/rempty_val1 ),
+	.CLK(RdClk),
+	.PRESET(\fifo_inst/n423_3 ),
 	.Q(Empty)
 );
 defparam \fifo_inst/Empty_s0 .INIT=1'b1;
@@ -303,7 +281,7 @@ defparam \fifo_inst/wfull_val1_s0 .INIT=1'b0;
 DFFP \fifo_inst/wfull_val1_s1  (
 	.D(\fifo_inst/wfull_val_7 ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n537_4 ),
+	.PRESET(\fifo_inst/n538_4 ),
 	.Q(\fifo_inst/wfull_val1_3 )
 );
 defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
@@ -317,7 +295,7 @@ defparam \fifo_inst/Full_s0 .INIT=1'b0;
 DFFP \fifo_inst/Full_s1  (
 	.D(\fifo_inst/wfull_val1 ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n537_4 ),
+	.PRESET(\fifo_inst/n538_4 ),
 	.Q(\fifo_inst/Full_2 )
 );
 defparam \fifo_inst/Full_s1 .INIT=1'b1;
@@ -326,14 +304,14 @@ SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s  (
 	.CEA(\fifo_inst/n20_5 ),
 	.RESETA(GND),
 	.CLKB(RdClk),
-	.CEB(\fifo_inst/n26_4 ),
+	.CEB(\fifo_inst/n24_3 ),
 	.RESETB(\fifo_inst/reset_r [1]),
 	.OCE(GND),
 	.BLKSELA({GND, GND, GND}),
 	.BLKSELB({GND, GND, GND}),
 	.DI({Data[31: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}),
+	.ADB({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num [0], GND, GND, GND, GND, GND}),
 	.DO({Q[31:0]})
 );
 defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .READ_MODE=1'b0;
@@ -347,14 +325,14 @@ SDPB \fifo_inst/Equal.mem_Equal.mem_0_1_s  (
 	.CEA(\fifo_inst/n20_5 ),
 	.RESETA(GND),
 	.CLKB(RdClk),
-	.CEB(\fifo_inst/n26_4 ),
+	.CEB(\fifo_inst/n24_3 ),
 	.RESETB(\fifo_inst/reset_r [1]),
 	.OCE(GND),
 	.BLKSELA({GND, GND, GND}),
 	.BLKSELB({GND, GND, GND}),
 	.DI({Data[63:32]}),
 	.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}),
+	.ADB({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num [0], GND, GND, GND, GND, GND}),
 	.DO({Q[63:32]})
 );
 defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .READ_MODE=1'b0;
@@ -368,14 +346,14 @@ SDPB \fifo_inst/Equal.mem_Equal.mem_0_2_s  (
 	.CEA(\fifo_inst/n20_5 ),
 	.RESETA(GND),
 	.CLKB(RdClk),
-	.CEB(\fifo_inst/n26_4 ),
+	.CEB(\fifo_inst/n24_3 ),
 	.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[79:64]}),
 	.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}),
+	.ADB({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num [0], GND, GND, GND, GND, GND}),
 	.DO({\fifo_inst/DO [31:16], Q[79:64]})
 );
 defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .READ_MODE=1'b0;

+ 3 - 3
src/src/WrapFifoChain/FifoDDS/FifoDDS_tmp.v

@@ -1,10 +1,10 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
 //File Title: Template file for instantiation
-//Tool Version: V1.9.9.03 (64-bit)
+//Tool Version: V1.9.11.02 (64-bit)
 //Part Number: GW1N-LV9PG256C6/I5
 //Device: GW1N-9
-//Created Time: Tue May 28 15:49:41 2024
+//Created Time: Thu Jun 26 11:09:20 2025
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------

+ 5 - 3
src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FIFOHS.prj

@@ -4,17 +4,19 @@
     <Version>beta</Version>
     <Device id="GW1N-9" package="PBGA256" speed="6" partNumber="GW1N-LV9PG256C6/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"/>
+        <File path="C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v" type="verilog"/>
+        <File path="C:/Gowin/Gowin_V1.9.11.02_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/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data"/>
         <Option type="include_path" value="C:/Gowin/Projects/SB_TMSG44V1_FPGA/src/src/WrapFifoChain/FifoDDS/temp/FIFOHS"/>
         <Option type="output_file" value="FifoDDS.vg"/>
         <Option type="output_template" value="FifoDDS_tmp.v"/>
         <Option type="ram_balance" value="1"/>
         <Option type="ram_rw_check" value="1"/>
+        <Option type="vcc" value="1.2"/>
+        <Option type="vccx" value="3.3"/>
         <Option type="verilog_language" value="sysv-2017"/>
     </OptionList>
 </Project>

+ 29 - 20
src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FifoDDS.log

@@ -1,19 +1,28 @@
 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 'FifoDDS'("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)
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Undeclared symbol 'Reset', assumed default net type 'wire'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Undeclared symbol 'RPReset', assumed default net type 'wire'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
+Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
+Compiling module 'FifoDDS'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":4)
+Compiling module '**'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Extracting RAM for identifier '**'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
 NOTE  (EX0101) : Current top module is "FifoDDS"
 [5%] Running netlist conversion ...
 Running device independent optimization ...
@@ -29,13 +38,13 @@ 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  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_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  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_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

+ 139 - 149
src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FifoDDS.vg

@@ -1,11 +1,11 @@
 //
 //Written by GowinSynthesis
-//Tool Version "V1.9.9.03 (64-bit)"
-//Tue May 28 15:49:41 2024
+//Tool Version "V1.9.11.02 (64-bit)"
+//Thu Jun 26 11:09:20 2025
 
 //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"
+//file0 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
 `timescale 100 ps/100 ps
 `pragma protect begin_protected
 `pragma protect version="2.3"
@@ -17,156 +17,146 @@
 `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
-HBNA+/9oSsy54/JlKoiN4gbbgk61v4S0vzu1SlxVV1FpSHLGFM3OwH9RYuOhFT+UXDcUiyGSTSim
-K+dcHv0CeFpV/YQWR5St8DdQGG+R45m6XWDErYGEafyEor0OduRaUiVP0XYqOL50oW/9d9x2NNiT
-ln6/o/IJCxIEaVblBTKR3tD4Ofb06tQw/6ZuEVhgWtapp5r+TlGiaQP6jx3uNfn+NBjuwyUzYkQ0
-MJjDVvgoM3zUdhRo+JtyCKggxSnoc2ym6iCL/mV/5ly8CtyjxhgYzms2pS3M3jxp5ii+uQ3L2s40
-krH8Dc9bcX5adde2FYFmhmRyz3sc5c38ia3cWA==
+h2Hk2PsTwq/dtAZ9cFVv1LIjE8XyjgauxqVI0H0KYFOYx3Oczh/IQEEmZNFaGIpF5+tpslMYL+Ka
++ZHdv2OmWeemN9OQUti1xK5PjD+tkvCGzpdHcDiZwF13UtlVVZAsEeOwAXH/+xl5iVD4XG1+sLw+
+0nK6e/8txanFzml+X3aHiYsP7g37sp/fbBNzYVGbvOdk5dBM9oFfusDzrd57y56OLNqQN8Xkw7X7
+YXRy46gZSPhUEew64wB1//OkcYXy/XR1SG8GKx0WW1dETf37zkyuWnWhtogDgOzFcnQjd4KWvyx8
+sPn/fYjDgkHcdGVe++mN41kzGiD37X68lMYU8Q==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=7872)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=7312)
 `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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
-LUKcX1Is
+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
+RduhTOFPizU7Tojp/yuOeA==
 `pragma protect end_protected
 module FifoDDS (
   Data,

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 45 - 42
src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FifoDDS_syn.rpt.html


+ 2 - 2
src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FifoDDS_syn_resource.html

@@ -30,8 +30,8 @@ table td.label { width: 20%; white-space: nowrap; min-width: 20px; background-co
 <th class="label">ROM16 NUMBER</th>
 </tr>
 <tr>
-<td class="label">FifoDDS (C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
-<td align = "center">19</td>
+<td class="label">FifoDDS (C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
+<td align = "center">16</td>
 <td align = "center">-</td>
 <td align = "center">18</td>
 <td align = "center">-</td>

+ 1 - 1
src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FifoDDS_syn_rsc.xml

@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Module name="FifoDDS" Register="19" Lut="18" Bsram="3" T_Register="19(19)" T_Lut="18(18)" T_Bsram="3(3)"/>
+<Module name="FifoDDS" Register="16" Lut="18" Bsram="3" T_Register="16(16)" T_Lut="18(18)" T_Bsram="3(3)"/>

+ 3 - 3
src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/FifoDDS_tmp.v

@@ -1,10 +1,10 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
 //File Title: Template file for instantiation
-//Tool Version: V1.9.9.03 (64-bit)
+//Tool Version: V1.9.11.02 (64-bit)
 //Part Number: GW1N-LV9PG256C6/I5
 //Device: GW1N-9
-//Created Time: Tue May 28 15:49:41 2024
+//Created Time: Thu Jun 26 11:09:20 2025
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------

+ 0 - 1
src/src/WrapFifoChain/FifoDDS/temp/FIFOHS/fifo_define.v

@@ -1,5 +1,4 @@
 `define module_name FifoDDS
 `define EBR_BASED
-`define FWFT
 `define En_Reset
 `define Reset_Synchronization

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

@@ -17,7 +17,7 @@ ECCSelected=false
 EmptyClear=1
 EmptySet=1
 EnReset=true
-FirstWordFallThrough=true
+FirstWordFallThrough=false
 FullClear=1
 FullSet=1
 LANG=0
@@ -28,7 +28,7 @@ ReadDataWidth=24
 ReadDepth=16
 ResetSynchronization=true
 SSRAM=false
-StandardFIFO=false
+StandardFIFO=true
 Synthesis_tool=GowinSynthesis
 WriteDataNum=false
 WriteDataWidth=24

+ 218 - 239
src/src/WrapFifoChain/FifoLMX/FifoLMX.v

@@ -1,11 +1,11 @@
 //
 //Written by GowinSynthesis
-//Tool Version "V1.9.9.02"
-//Thu Apr 25 16:07:21 2024
+//Tool Version "V1.9.11.02 (64-bit)"
+//Thu Jun 26 10:59:11 2025
 
 //Source file index table:
-//file0 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
-//file1 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+//file0 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
 `timescale 100 ps/100 ps
 `pragma protect begin_protected
 `pragma protect version="2.3"
@@ -17,246 +17,225 @@
 `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
-CQcsRTWNeKG9A5gO3GdSoNvW9zYr3PmooBz3vJJYrHFkazaqmvxtJGKC4UGygBk8vXE1NIKCzrix
-ts+4g61KOHhd4DYNMOb3HmV2I8s6SwAwCtu3mmY7S4+o5MuyzYTpV9YtKBoZ5ym6957lrUY9d1Be
-l7oLPcGOtiL/0cFFmy2gn3xaI84cJbhlR21C0bH47TYv5uDNGJlHNQKdqgZBDsKL3HQYCIYwveIM
-wqd3+uZjlD1zeWl08Z045RPP/iKAfoW8j34G5ZM1sLye6hjUb1N3OsyAZP+JXOeDgZ+OW1OVwvuI
-Eeo9r6zKZBCzzoX/vEjCCVRH/vbTUoQQ9buY6g==
+jb/odx/M3J8e8kRiR7CVV91CJX8BTh8PdYQ4M38+OHGehJgH1KMDpY+cpGdnH57nam7FSuZ/jq0v
+piZfja8gey2PzONKSjN1YY5U8WIx/SDut1mPRV8GcaWKki2R7RCsPgjWiwIrNHD1GCS9dTQx0c6f
+72Vq5IfQi/X1ycYiP2mLwLY6xzlmLodX2+9PwV/8vlN3OunX58HnMGGIJw2kuAe+lUZF152Ka5yp
+l6ZFwRGuAf1H3J0OgGic/RaTw/yCT49qxlvSJMr60oxwfMIGYDUnRPSjBxgMhgnhkKt/lTHcxx57
+vflXgIPlnA4Fz6U/GJBjaBy+jPW4yirAZG0Xmw==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=13040)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=11840)
 `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 FifoLMX (
   Data,

+ 116 - 172
src/src/WrapFifoChain/FifoLMX/FifoLMX.vo

@@ -1,8 +1,8 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
-//File Title: Post-PnR Simulation Model file
-//Tool Version: V1.9.9.02
-//Created Time: Thu Apr 25 16:07:21 2024
+//File Title: Post-PnR Verilog Simulation Model file
+//Tool Version: V1.9.11.02 (64-bit)
+//Created Time: Thu Jun 26 10:59:11 2025
 
 `timescale 100 ps/100 ps
 module FifoLMX(
@@ -37,46 +37,47 @@ wire VCC;
 wire WrClk;
 wire WrEn;
 wire \fifo_inst/n23_5 ;
-wire \fifo_inst/n29_4 ;
+wire \fifo_inst/n27_3 ;
 wire \fifo_inst/wfull_val ;
-wire \fifo_inst/n371_4 ;
+wire \fifo_inst/n277_3 ;
+wire \fifo_inst/n372_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/Equal.rgraynext_1_4 ;
+wire \fifo_inst/Equal.wbinnext_0_8 ;
+wire \fifo_inst/Equal.rgraynext_2_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/n372_5 ;
 wire \fifo_inst/wfull_val1_16 ;
 wire \fifo_inst/Full_11 ;
+wire \fifo_inst/rbin_num_next_0_10 ;
 wire \fifo_inst/rempty_val ;
+wire \fifo_inst/rempty_val1 ;
 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/n128_1_SUM ;
+wire \fifo_inst/n128_3 ;
+wire \fifo_inst/n129_1_SUM ;
+wire \fifo_inst/n129_3 ;
 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 [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/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 [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 ;
@@ -98,29 +99,29 @@ LUT4 \fifo_inst/n23_s1  (
 	.F(\fifo_inst/n23_5 )
 );
 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/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]),
+LUT2 \fifo_inst/n27_s0  (
+	.I0(Empty),
+	.I1(RdEn),
+	.F(\fifo_inst/n27_3 )
+);
+defparam \fifo_inst/n27_s0 .INIT=4'h4;
+LUT4 \fifo_inst/Equal.rgraynext_1_s0  (
+	.I0(\fifo_inst/n27_3 ),
+	.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=8'h1E;
+defparam \fifo_inst/Equal.rgraynext_1_s0 .INIT=16'h07F8;
 LUT3 \fifo_inst/Equal.rgraynext_2_s0  (
-	.I0(\fifo_inst/Equal.rgraynext_1_4 ),
+	.I0(\fifo_inst/Equal.rgraynext_2_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 ),
+	.I0(\fifo_inst/Equal.rgraynext_2_4 ),
 	.I1(\fifo_inst/rbin_num [2]),
 	.I2(\fifo_inst/rbin_num [3]),
 	.I3(\fifo_inst/rbin_num [4]),
@@ -166,13 +167,19 @@ LUT4 \fifo_inst/wfull_val_s0  (
 	.F(\fifo_inst/wfull_val )
 );
 defparam \fifo_inst/wfull_val_s0 .INIT=16'h6000;
-LUT3 \fifo_inst/n371_s1  (
+LUT2 \fifo_inst/n277_s0  (
+	.I0(\fifo_inst/rempty_val ),
+	.I1(\fifo_inst/reset_r [1]),
+	.F(\fifo_inst/n277_3 )
+);
+defparam \fifo_inst/n277_s0 .INIT=4'hE;
+LUT3 \fifo_inst/n372_s1  (
 	.I0(\fifo_inst/wfull_val_4 ),
 	.I1(\fifo_inst/wfull_val_5 ),
-	.I2(\fifo_inst/n371_5 ),
-	.F(\fifo_inst/n371_4 )
+	.I2(\fifo_inst/n372_5 ),
+	.F(\fifo_inst/n372_4 )
 );
-defparam \fifo_inst/n371_s1 .INIT=8'h80;
+defparam \fifo_inst/n372_s1 .INIT=8'h80;
 LUT3 \fifo_inst/wfull_val1_s9  (
 	.I0(\fifo_inst/wfull_val1_3 ),
 	.I1(\fifo_inst/wfull_val1_2 ),
@@ -182,7 +189,7 @@ LUT3 \fifo_inst/wfull_val1_s9  (
 defparam \fifo_inst/wfull_val1_s9 .INIT=8'hAC;
 LUT4 \fifo_inst/wfull_val1_s10  (
 	.I0(\fifo_inst/wfull_val_5 ),
-	.I1(\fifo_inst/n371_5 ),
+	.I1(\fifo_inst/n372_5 ),
 	.I2(\fifo_inst/wfull_val_4 ),
 	.I3(\fifo_inst/wfull_val1_16 ),
 	.F(\fifo_inst/wfull_val1_0 )
@@ -197,42 +204,27 @@ LUT3 \fifo_inst/Full_d_s  (
 defparam \fifo_inst/Full_d_s .INIT=8'hAC;
 LUT4 \fifo_inst/Full_s8  (
 	.I0(\fifo_inst/wfull_val_5 ),
-	.I1(\fifo_inst/n371_5 ),
+	.I1(\fifo_inst/n372_5 ),
 	.I2(\fifo_inst/wfull_val_4 ),
 	.I3(\fifo_inst/Full_11 ),
 	.F(\fifo_inst/Full_1 )
 );
 defparam \fifo_inst/Full_s8 .INIT=16'hFF80;
-LUT3 \fifo_inst/rbin_num_next_0_s5  (
-	.I0(Empty),
-	.I1(RdEn),
-	.I2(\fifo_inst/rbin_num [0]),
-	.F(\fifo_inst/rbin_num_next [0])
-);
-defparam \fifo_inst/rbin_num_next_0_s5 .INIT=8'hB4;
-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_s5 .INIT=16'hBF40;
-LUT2 \fifo_inst/rbin_num_next_2_s5  (
-	.I0(\fifo_inst/Equal.rgraynext_1_4 ),
+LUT2 \fifo_inst/rbin_num_next_2_s3  (
+	.I0(\fifo_inst/Equal.rgraynext_2_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 ),
+defparam \fifo_inst/rbin_num_next_2_s3 .INIT=4'h6;
+LUT3 \fifo_inst/rbin_num_next_3_s3  (
+	.I0(\fifo_inst/Equal.rgraynext_2_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;
+defparam \fifo_inst/rbin_num_next_3_s3 .INIT=8'h78;
 LUT4 \fifo_inst/rbin_num_next_4_s2  (
-	.I0(\fifo_inst/Equal.rgraynext_1_4 ),
+	.I0(\fifo_inst/Equal.rgraynext_2_4 ),
 	.I1(\fifo_inst/rbin_num [2]),
 	.I2(\fifo_inst/rbin_num [3]),
 	.I3(\fifo_inst/rbin_num [4]),
@@ -242,7 +234,7 @@ defparam \fifo_inst/rbin_num_next_4_s2 .INIT=16'h7F80;
 LUT2 \fifo_inst/Equal.wbinnext_0_s3  (
 	.I0(\fifo_inst/n23_5 ),
 	.I1(\fifo_inst/Equal.wbin [0]),
-	.F(\fifo_inst/Equal.wbinnext_0_7 )
+	.F(\fifo_inst/Equal.wbinnext_0_8 )
 );
 defparam \fifo_inst/Equal.wbinnext_0_s3 .INIT=4'h6;
 LUT3 \fifo_inst/Equal.wbinnext_2_s3  (
@@ -267,14 +259,14 @@ LUT4 \fifo_inst/Equal.wbinnext_4_s2  (
 	.F(\fifo_inst/Equal.wbinnext [4])
 );
 defparam \fifo_inst/Equal.wbinnext_4_s2 .INIT=16'hBF40;
-LUT4 \fifo_inst/Equal.rgraynext_1_s1  (
+LUT4 \fifo_inst/Equal.rgraynext_2_s1  (
 	.I0(Empty),
 	.I1(RdEn),
 	.I2(\fifo_inst/rbin_num [0]),
 	.I3(\fifo_inst/rbin_num [1]),
-	.F(\fifo_inst/Equal.rgraynext_1_4 )
+	.F(\fifo_inst/Equal.rgraynext_2_4 )
 );
-defparam \fifo_inst/Equal.rgraynext_1_s1 .INIT=16'h4000;
+defparam \fifo_inst/Equal.rgraynext_2_s1 .INIT=16'h4000;
 LUT2 \fifo_inst/Equal.wgraynext_1_s1  (
 	.I0(WrEn),
 	.I1(\fifo_inst/Equal.wbin [0]),
@@ -312,13 +304,13 @@ LUT4 \fifo_inst/wfull_val_s2  (
 	.F(\fifo_inst/wfull_val_5 )
 );
 defparam \fifo_inst/wfull_val_s2 .INIT=16'h0990;
-LUT3 \fifo_inst/n371_s2  (
+LUT3 \fifo_inst/n372_s2  (
 	.I0(\fifo_inst/reset_w [1]),
 	.I1(\fifo_inst/wptr [4]),
 	.I2(\fifo_inst/rbin_num [4]),
-	.F(\fifo_inst/n371_5 )
+	.F(\fifo_inst/n372_5 )
 );
-defparam \fifo_inst/n371_s2 .INIT=8'h14;
+defparam \fifo_inst/n372_s2 .INIT=8'h14;
 LUT2 \fifo_inst/wfull_val1_s11  (
 	.I0(\fifo_inst/reset_w [1]),
 	.I1(\fifo_inst/wfull_val1_0 ),
@@ -339,21 +331,36 @@ LUT4 \fifo_inst/Equal.wbinnext_1_s4  (
 	.F(\fifo_inst/Equal.wbinnext [1])
 );
 defparam \fifo_inst/Equal.wbinnext_1_s4 .INIT=16'hBF40;
+LUT4 \fifo_inst/rbin_num_next_1_s4  (
+	.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_s4 .INIT=16'hBF40;
+LUT3 \fifo_inst/rbin_num_next_0_s4  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_inst/rbin_num [0]),
+	.F(\fifo_inst/rbin_num_next_0_10 )
+);
+defparam \fifo_inst/rbin_num_next_0_s4 .INIT=8'hB4;
 LUT4 \fifo_inst/Equal.rgraynext_0_s1  (
 	.I0(Empty),
 	.I1(RdEn),
 	.I2(\fifo_inst/rbin_num [0]),
-	.I3(\fifo_inst/rbin_num_next [1]),
+	.I3(\fifo_inst/rbin_num [1]),
 	.F(\fifo_inst/Equal.rgraynext [0])
 );
-defparam \fifo_inst/Equal.rgraynext_0_s1 .INIT=16'h4BB4;
+defparam \fifo_inst/Equal.rgraynext_0_s1 .INIT=16'h0BF4;
 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 ),
+	.I0(\fifo_inst/n131_3 ),
+	.I1(\fifo_inst/rbin_num [4]),
+	.I2(\fifo_inst/wptr [4]),
 	.F(\fifo_inst/rempty_val )
 );
-defparam \fifo_inst/rempty_val_s2 .INIT=8'h09;
+defparam \fifo_inst/rempty_val_s2 .INIT=8'h41;
 DFFP \fifo_inst/reset_r_0_s0  (
 	.D(GND),
 	.CLK(\fifo_inst/n4_6 ),
@@ -404,82 +411,12 @@ DFFC \fifo_inst/rbin_num_1_s0  (
 );
 defparam \fifo_inst/rbin_num_1_s0 .INIT=1'b0;
 DFFC \fifo_inst/rbin_num_0_s0  (
-	.D(\fifo_inst/rbin_num_next [0]),
+	.D(\fifo_inst/rbin_num_next_0_10 ),
 	.CLK(RdClk),
 	.CLEAR(\fifo_inst/reset_r [1]),
 	.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),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq1_wptr [1])
-);
-defparam \fifo_inst/Equal.rq1_wptr_1_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq1_wptr_0_s0  (
-	.D(\fifo_inst/wptr [0]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.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),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq2_wptr [1])
-);
-defparam \fifo_inst/Equal.rq2_wptr_1_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq2_wptr_0_s0  (
-	.D(\fifo_inst/Equal.rq1_wptr [0]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.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),
@@ -565,16 +502,23 @@ DFFC \fifo_inst/Equal.wbin_1_s0  (
 );
 defparam \fifo_inst/Equal.wbin_1_s0 .INIT=1'b0;
 DFFC \fifo_inst/Equal.wbin_0_s0  (
-	.D(\fifo_inst/Equal.wbinnext_0_7 ),
+	.D(\fifo_inst/Equal.wbinnext_0_8 ),
 	.CLK(WrClk),
 	.CLEAR(\fifo_inst/reset_w [1]),
 	.Q(\fifo_inst/Equal.wbin [0])
 );
 defparam \fifo_inst/Equal.wbin_0_s0 .INIT=1'b0;
-DFFP \fifo_inst/Empty_s0  (
+DFFP \fifo_inst/rempty_val1_s0  (
 	.D(\fifo_inst/rempty_val ),
 	.CLK(RdClk),
-	.PRESET(\fifo_inst/reset_r [1]),
+	.PRESET(\fifo_inst/n277_3 ),
+	.Q(\fifo_inst/rempty_val1 )
+);
+defparam \fifo_inst/rempty_val1_s0 .INIT=1'b1;
+DFFP \fifo_inst/Empty_s0  (
+	.D(\fifo_inst/rempty_val1 ),
+	.CLK(RdClk),
+	.PRESET(\fifo_inst/n277_3 ),
 	.Q(Empty)
 );
 defparam \fifo_inst/Empty_s0 .INIT=1'b1;
@@ -595,7 +539,7 @@ defparam \fifo_inst/wfull_val1_s0 .INIT=1'b0;
 DFFP \fifo_inst/wfull_val1_s1  (
 	.D(\fifo_inst/wfull_val ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n371_4 ),
+	.PRESET(\fifo_inst/n372_4 ),
 	.Q(\fifo_inst/wfull_val1_3 )
 );
 defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
@@ -609,7 +553,7 @@ defparam \fifo_inst/Full_s0 .INIT=1'b0;
 DFFP \fifo_inst/Full_s1  (
 	.D(\fifo_inst/wfull_val1 ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n371_4 ),
+	.PRESET(\fifo_inst/n372_4 ),
 	.Q(\fifo_inst/Full_2 )
 );
 defparam \fifo_inst/Full_s1 .INIT=1'b1;
@@ -618,14 +562,14 @@ SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s  (
 	.CEA(\fifo_inst/n23_5 ),
 	.RESETA(GND),
 	.CLKB(RdClk),
-	.CEB(\fifo_inst/n29_4 ),
+	.CEB(\fifo_inst/n27_3 ),
 	.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, \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}),
+	.ADB({GND, GND, GND, GND, GND, \fifo_inst/rbin_num [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;
@@ -634,42 +578,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]),
+ALU \fifo_inst/n128_s0  (
+	.I0(\fifo_inst/wptr [0]),
+	.I1(\fifo_inst/rptr [0]),
 	.I3(GND),
 	.CIN(GND),
+	.COUT(\fifo_inst/n128_3 ),
+	.SUM(\fifo_inst/n128_1_SUM )
+);
+defparam \fifo_inst/n128_s0 .ALU_MODE=3;
+ALU \fifo_inst/n129_s0  (
+	.I0(\fifo_inst/wptr [1]),
+	.I1(\fifo_inst/rptr [1]),
+	.I3(GND),
+	.CIN(\fifo_inst/n128_3 ),
+	.COUT(\fifo_inst/n129_3 ),
+	.SUM(\fifo_inst/n129_1_SUM )
+);
+defparam \fifo_inst/n129_s0 .ALU_MODE=3;
+ALU \fifo_inst/n130_s0  (
+	.I0(\fifo_inst/wptr [2]),
+	.I1(\fifo_inst/rptr [2]),
+	.I3(GND),
+	.CIN(\fifo_inst/n129_3 ),
 	.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]),
+	.I0(\fifo_inst/wptr [3]),
+	.I1(\fifo_inst/rptr [3]),
 	.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 )

+ 13 - 13
src/src/WrapFifoChain/FifoLMX/FifoLMX_tmp.v

@@ -1,24 +1,24 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
 //File Title: Template file for instantiation
-//Tool Version: V1.9.9.02
+//Tool Version: V1.9.11.02 (64-bit)
 //Part Number: GW1N-LV9PG256C6/I5
-//Device: GW1N-
-//Created Time: Thu Apr 25 16:07:21 2024
+//Device: GW1N-9
+//Created Time: Thu Jun 26 10:59:11 2025
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------
 
 	FifoLMX your_instance_name(
-		.Data(Data_i), //input [23:0] Data
-		.Reset(Reset_i), //input Reset
-		.WrClk(WrClk_i), //input WrClk
-		.RdClk(RdClk_i), //input RdClk
-		.WrEn(WrEn_i), //input WrEn
-		.RdEn(RdEn_i), //input RdEn
-		.Q(Q_o), //output [23:0] Q
-		.Empty(Empty_o), //output Empty
-		.Full(Full_o) //output Full
+		.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-------------------

+ 6 - 4
src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FIFOHS.prj

@@ -4,17 +4,19 @@
     <Version>beta</Version>
     <Device id="GW1N-9" package="PBGA256" speed="6" partNumber="GW1N-LV9PG256C6/I5"/>
     <FileList>
-        <File path="C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v" type="verilog"/>
-        <File path="C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v" type="verilog"/>
+        <File path="C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v" type="verilog"/>
+        <File path="C:/Gowin/Gowin_V1.9.11.02_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.02_x64/IDE/ipcore/FIFO_HS/data"/>
-        <Option type="include_path" value="C:/Projects/QuestaProjects/main_tb/fifo_hs/FifoLMX/temp/FIFOHS"/>
+        <Option type="include_path" value="C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data"/>
+        <Option type="include_path" value="C:/Gowin/Projects/SB_TMSG44V1_FPGA/src/src/WrapFifoChain/FifoLMX/temp/FIFOHS"/>
         <Option type="output_file" value="FifoLMX.vg"/>
         <Option type="output_template" value="FifoLMX_tmp.v"/>
         <Option type="ram_balance" value="1"/>
         <Option type="ram_rw_check" value="1"/>
+        <Option type="vcc" value="1.2"/>
+        <Option type="vccx" value="3.3"/>
         <Option type="verilog_language" value="sysv-2017"/>
     </OptionList>
 </Project>

+ 32 - 23
src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FifoLMX.log

@@ -1,19 +1,28 @@
 GowinSynthesis start
 Running parser ...
-Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'
-Analyzing included file '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Back to file '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Undeclared symbol '**', assumed default net type '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'
-Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
-Back to file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
-Analyzing included file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
-Back to file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
-Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
-Back to file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
-Compiling module 'FifoLMX'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":4)
-Compiling module '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Extracting RAM for identifier '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Undeclared symbol 'Reset', assumed default net type 'wire'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Undeclared symbol 'RPReset', assumed default net type 'wire'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
+Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
+Compiling module 'FifoLMX'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":4)
+Compiling module '**'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Extracting RAM for identifier '**'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
 NOTE  (EX0101) : Current top module is "FifoLMX"
 [5%] Running netlist conversion ...
 Running device independent optimization ...
@@ -29,17 +38,17 @@ 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.02_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.02_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.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_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.02_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.02_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.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_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:\Projects\QuestaProjects\main_tb\fifo_hs\FifoLMX\temp\FIFOHS\FifoLMX.vg" completed
-Generate template file "C:\Projects\QuestaProjects\main_tb\fifo_hs\FifoLMX\temp\FIFOHS\FifoLMX_tmp.v" completed
-[100%] Generate report file "C:\Projects\QuestaProjects\main_tb\fifo_hs\FifoLMX\temp\FIFOHS\FifoLMX_syn.rpt.html" completed
+[95%] Generate netlist file "C:\Gowin\Projects\SB_TMSG44V1_FPGA\src\src\WrapFifoChain\FifoLMX\temp\FIFOHS\FifoLMX.vg" completed
+Generate template file "C:\Gowin\Projects\SB_TMSG44V1_FPGA\src\src\WrapFifoChain\FifoLMX\temp\FIFOHS\FifoLMX_tmp.v" completed
+[100%] Generate report file "C:\Gowin\Projects\SB_TMSG44V1_FPGA\src\src\WrapFifoChain\FifoLMX\temp\FIFOHS\FifoLMX_syn.rpt.html" completed
 GowinSynthesis finish

+ 218 - 239
src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FifoLMX.vg

@@ -1,11 +1,11 @@
 //
 //Written by GowinSynthesis
-//Tool Version "V1.9.9.02"
-//Thu Apr 25 16:07:21 2024
+//Tool Version "V1.9.11.02 (64-bit)"
+//Thu Jun 26 10:59:11 2025
 
 //Source file index table:
-//file0 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
-//file1 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+//file0 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
 `timescale 100 ps/100 ps
 `pragma protect begin_protected
 `pragma protect version="2.3"
@@ -17,246 +17,225 @@
 `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
-CQcsRTWNeKG9A5gO3GdSoNvW9zYr3PmooBz3vJJYrHFkazaqmvxtJGKC4UGygBk8vXE1NIKCzrix
-ts+4g61KOHhd4DYNMOb3HmV2I8s6SwAwCtu3mmY7S4+o5MuyzYTpV9YtKBoZ5ym6957lrUY9d1Be
-l7oLPcGOtiL/0cFFmy2gn3xaI84cJbhlR21C0bH47TYv5uDNGJlHNQKdqgZBDsKL3HQYCIYwveIM
-wqd3+uZjlD1zeWl08Z045RPP/iKAfoW8j34G5ZM1sLye6hjUb1N3OsyAZP+JXOeDgZ+OW1OVwvuI
-Eeo9r6zKZBCzzoX/vEjCCVRH/vbTUoQQ9buY6g==
+jb/odx/M3J8e8kRiR7CVV91CJX8BTh8PdYQ4M38+OHGehJgH1KMDpY+cpGdnH57nam7FSuZ/jq0v
+piZfja8gey2PzONKSjN1YY5U8WIx/SDut1mPRV8GcaWKki2R7RCsPgjWiwIrNHD1GCS9dTQx0c6f
+72Vq5IfQi/X1ycYiP2mLwLY6xzlmLodX2+9PwV/8vlN3OunX58HnMGGIJw2kuAe+lUZF152Ka5yp
+l6ZFwRGuAf1H3J0OgGic/RaTw/yCT49qxlvSJMr60oxwfMIGYDUnRPSjBxgMhgnhkKt/lTHcxx57
+vflXgIPlnA4Fz6U/GJBjaBy+jPW4yirAZG0Xmw==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=13040)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=11840)
 `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 FifoLMX (
   Data,

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 36 - 33
src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FifoLMX_syn.rpt.html


+ 3 - 3
src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FifoLMX_syn_resource.html

@@ -30,10 +30,10 @@ table td.label { width: 20%; white-space: nowrap; min-width: 20px; background-co
 <th class="label">ROM16 NUMBER</th>
 </tr>
 <tr>
-<td class="label">FifoLMX (C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
-<td align = "center">37</td>
+<td class="label">FifoLMX (C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
+<td align = "center">28</td>
 <td align = "center">4</td>
-<td align = "center">38</td>
+<td align = "center">39</td>
 <td align = "center">-</td>
 <td align = "center">1</td>
 <td align = "center">-</td>

+ 1 - 1
src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FifoLMX_syn_rsc.xml

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

+ 13 - 13
src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/FifoLMX_tmp.v

@@ -1,24 +1,24 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
 //File Title: Template file for instantiation
-//Tool Version: V1.9.9.02
+//Tool Version: V1.9.11.02 (64-bit)
 //Part Number: GW1N-LV9PG256C6/I5
-//Device: GW1N-
-//Created Time: Thu Apr 25 16:07:21 2024
+//Device: GW1N-9
+//Created Time: Thu Jun 26 10:59:11 2025
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------
 
 	FifoLMX your_instance_name(
-		.Data(Data_i), //input [23:0] Data
-		.Reset(Reset_i), //input Reset
-		.WrClk(WrClk_i), //input WrClk
-		.RdClk(RdClk_i), //input RdClk
-		.WrEn(WrEn_i), //input WrEn
-		.RdEn(RdEn_i), //input RdEn
-		.Q(Q_o), //output [23:0] Q
-		.Empty(Empty_o), //output Empty
-		.Full(Full_o) //output Full
+		.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-------------------

+ 0 - 1
src/src/WrapFifoChain/FifoLMX/temp/FIFOHS/fifo_define.v

@@ -1,5 +1,4 @@
 `define module_name FifoLMX
 `define EBR_BASED
-`define FWFT
 `define En_Reset
 `define Reset_Synchronization

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

@@ -17,7 +17,7 @@ ECCSelected=false
 EmptyClear=1
 EmptySet=1
 EnReset=true
-FirstWordFallThrough=true
+FirstWordFallThrough=false
 FullClear=1
 FullSet=1
 LANG=0
@@ -28,7 +28,7 @@ ReadDataWidth=32
 ReadDepth=4
 ResetSynchronization=true
 SSRAM=false
-StandardFIFO=false
+StandardFIFO=true
 Synthesis_tool=GowinSynthesis
 WriteDataNum=false
 WriteDataWidth=32

+ 149 - 157
src/src/WrapFifoChain/FifoMax2870/FifoMax2870.v

@@ -1,11 +1,11 @@
 //
 //Written by GowinSynthesis
-//Tool Version "V1.9.9.02"
-//Thu Apr 25 16:07:36 2024
+//Tool Version "V1.9.11.02 (64-bit)"
+//Thu Jun 26 11:10:16 2025
 
 //Source file index table:
-//file0 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
-//file1 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+//file0 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
 `timescale 100 ps/100 ps
 `pragma protect begin_protected
 `pragma protect version="2.3"
@@ -17,164 +17,156 @@
 `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
-Da6ePPXJ0x1Zkr3+qduAM8J+kvtpawq4mD4KNKBETeC4EH7Szs6BzQt56oavp90RuKDAboLkt4Jg
-+G92rwctBdMEwq+eB6c7QPHl/H1uRLQVqlR4yx0r3BOVYQPjoymqLzmZv8veGRBC1kdMpZB80yUK
-zmz+xkaf5+Uj2LoGUbWb2pOECph91GIFDeF+RqGJtZTKyt08qFT8oijjiMTL0Xb+qn22EE7E1RFY
-OllWGiYHO4QEEG6qgweiS5shJRiL6+3Pxmw7CJNrKZ/zyFyC0a6pFdp6mTM2DN5SkKBIq/YzyLXr
-XKL3+73PMXlMajN6EcsM4S1BTp7fXxaHLIWB1w==
+Z83UCZIyQLA5aZMBgRXKgKdFNZPpNcLIhN5ISEHIvdrYM8ZW+qkSUJuWKX54KlBm+8ZifH61UNQE
+RnYpGjhDRAcTJZ74gsP712dIgnpfywKWv4ZK+NEMenvCbcbjjSiXlH/CMlJO8pS4We5BK2jeExNN
+jvygdNr7IiAQc8H8ivK2qFpWjMu2r69ikmGmhsMV314okW5DdzS+IUlvNzB7oijB3r9n9PnflE90
+OUWcEehX0jCn4jb34XiJxgNam7WoJF5fx4wIx0ldjFDEBcgHbrDCTqr8ET4KrNzGyHGH9GCmUW+v
+8ygXDzlmPp+ZRlqJdLYAUkCus73410L9DCj0mg==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=8352)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=7904)
 `pragma protect data_keyowner="default-ip-vendor"
 `pragma protect data_keyname="default-ip-key"
 `pragma protect data_method="aes128-cfb"
 `pragma protect data_block
-djZ61UC/bY6dSiaZFk4KXHADb4j7VVNcUOyMEM6sUVoERwktHuJw9NRXlXsAYIvmI2RJGAhfYiGT
-FqGySEDrSPfLWTEGokUnklRw345h9NDdP11yStQPYsiNc/q7fQTPoO3cY4PGZcUpyFLYwu3bJ9Q1
-OlQMCNHVtDaEt+Hbc+slA3q+pkxF6hjMdbNHNehkvMVlYPfbR0f39y1BVpR+TW8pnmqhghwPZBB9
-+p4q/N02tL2mol0sU/z0ZTg5485h/rVAJd2IkHNVrkp68ruoMylb17xNrp9CR7T/xcYCsmrLUiqG
-jS1HOktV16kxpkDpYl+b3Ggav0z7X+03Cf3LqwbDxfEz/EbRdzNFhIe0jr5I/Lr5zgUnKWkZAFQf
-eTtS/CeV+tVF1zogFIOqy9LvzYZkIDPujTi55rc8uEJeaMNOKXwgIROcKdoiJee263hDjUVNI0nq
-/HUEN4otDEOCFfitu7XAVKJ4tEUvgX3RwuyeDYndQaycm4T1jUQ0AFdhtQ/kewRLYCLx4CQtYA+r
-Qj3HSmnnWk2UATiLG4hEJG9MkCuf6YbQNG/ISufVtVtLTlLTRHLPOl3TdAChK+Gyb9TzmAYx4sI4
-OzM/12LglFlwYP+7wkdU+yudf4mjjeR1D3AMisuGdGQh0eMm036PQzMobcL1E0ILSkJYj8h9oN8J
-CBp4gJoGAUk2qwsikUBpEGDl/IdtG5jtfTuoitGlzasu3CROX9NISuW8dOj5SdGlxpCZvbIOy+Jo
-vYxxZIG3T50vgimW43jJntlQNuKhGrc/+Xu37eiTc0FP/nMBOpNB9UmK865glyYCXf8xnuhFGF30
-bz79Cu1hzoCxeyb6pBYyVBt+Ntu4aHvT3v0Y3RQiQhudBbBl0kwhy09nst48KdjkQtvZnDR8G8g4
-igQuqBVsm+cV+GXuV4/krklOPQopx4wIv/KENvKBhRBgk0XNn9a71uuAY6vQ9x03h3Wl0Zmp7eyR
-rYcVIQXFKsMCR1TrrIyBCjgg7zi4Fe2n9Q4ARwFoFsmYZcahIiUPv/cP6B5oWT4KSDo03tedzFIF
-YwGKgwEQqZH2tgA2HRyVX/I+/F3Dl2PHWZVCM80mOptFQbKho4VsqZisP+Yv1tRifpYEH6lxZbgn
-CDfP55K4CmIxXI9+OOcgqADlJkcpAhQuYO+y+1DXAAv4/WBrUoXtlYTQL8XtBpwdtrHFBgLLC44f
-FO3OzBrt98Bb/WH6ndITbe+av401upZB1PakUnwfMuflQO7QFEb+BEO96cO0RxRci+MYOg9vRjt+
-2McixaA34N8OOJTKgzqPIgwxlAq52Jremj2uXmWBNovG6AGPsIrT2PeMA5JnfSg984ZTe/DAepZQ
-GYO0ON6E9bzURG3D625Nw7GzTUUJ2L6CTLpzi61balqmf8jbC9TpS7vyZlHin9S4CMj90ifNMEsT
-sTK72DFqUr7F6Vz/AkrFEYd5leSFEhBUIglxjFdJhqsbgCNRhXBQhF0rfLY5KPGLzhRZprwi7MdK
-qBixo+bZRHbe5VjNxk+1VVu/KtL2NZQW88fSEi48oYfcL87kS0H0b5TL9SqFvks1yxWrZ59A9//s
-s20dP+s5v3ZLkVczWrMPUSiqJ4kBzOF+A4SkfJ0asqZrOWLgOKC797BCbGgRaxuhTU0IqXCL5YwN
-XgkE9ejilivMhlKz+c85abK/Le4P2q9Z6GvFdmAF4TKMnu1rF+V9Si6bHF96GVovx8goiHHmYSfD
-CyZNsH4PeMOXrgBYfTAEzl9O7Qw9urKuniU5b0Md9mblDqw8FzSpEhsGYesiRQR+0Oqvbym++43W
-Qnwq3Yu7nEOWW7s9ofk3gdmka8ZEA0ZCfSc6Q2MaCmAOAiq8SiHdfDxj1AmJppDq2Y/VENwNbSWI
-4lI2DxTfxWfF+8pynvzSn7VyKFdLTjI8S8Pj4VeAa6dMJcOzkbIZuzV3n06RNEE0kxv8amYIrk5D
-zvriAP8Nt+X1cHLYwzhMiZ7IvMWMHKN15MAJdi+e7xBp6lUN1MBNlp0bJkPjISFVhkJPjRh4b4IO
-7FDfhdtsWMiP+cgC0a/U8JBuOPRP0I5A4/TuIJ+lLJIitO7mY7ALVd+6emF3vX/W40q+7gUHEQAV
-j3kwitkA2uLPfnVmMHb8RmtTBw7xeFC+TXu6GXCfvkdJWujOl+0BXJe8efLGXjfCrfm8LyIUivWy
-BOLg6aUi5s8/fXD/cq02xQ51G9E3bYxOYiJQVf93Rvfzc0lKfhUrxhnk60Ukt/izCsqhh2QaJpfd
-3vI5+JO1Vco2sjbP8UJvFHjjAp/q54korrdywLSti0CwnaBbFxJw3ugr/Ao/OS9vjd6hG0B5DpRh
-gSyvgCmCgX652R+c3b2Zj7Fn5nLRd5H30AyC58TXMkwffnBp4dl5CAmYbViUE08EgwWRoN4jF/zq
-hM5cfVkMsGdO2uHn1SK7O+b3wb/wD8wiXbaxUoAjmKDT0Fn42MyV59dZGHTwQQQvAAtVEPoPci+2
-B2bbY1jkc+mUIPPa7Zi4mSDAvMLZl7t/VmMAMw1L2bcTdbQYRGt2o6OkMw1DTJOf7UouXP6g0LIe
-/WA0S1vUkKakIKKs4b9lDXKanm6RYvrp8mr5NQxrGYT1zYut8A5uvEgkyVIdHU5BgPs9Sq7o+QmS
-0CjOyU0BLqhEk0DiRt5fkAGDbXkoXqCQNkiREpM4OlNaBzZSkLYPrCi+VfxRSg6adUvwnuNJc5fk
-gG9fIG18/x2Kr7+n3nP2rGtBiCehfful6sOm9IUNtPW64Xcd3ZrW7KCvaOqB/q7P40XnvlXcBIa2
-iMLFVyQRwmUKcJJPswzMh8eIAMbOceumbBcp6xyBQchijtn57PI9MXAhg/Zg8LBL0fQXMxJ6Np7M
-r7ctkXYTvbKy5LKYaPrfjN0JdoS0yF3R9dYSGVtM5OOCYf6viWdnkktRZceMczK0dZFWpZgR+ETv
-EnVrEQSJJynAvKzrSQUbXuXN79PJMc/yaJp7fts4o4ZAvwm0C0GpuzgLgjWmfJST3UodEP7C403j
-oHnQxJHgNLD+EA5E7tWobkqXcRv1/Id/uPU3EGlWGLSQxR1wJ+kq+LLhiM8UxTI+jvSQErCFCEnj
-f7RfRGiukwMHuF0BDCVCamsAbZflG+shEcx+hEy/sstwDsQR/cj4uCN//g0n9DE2grPHNzxiu0FW
-N0X/gFLrPTWxzueZd/5A9ElVFBdsmlQGYCUPTsQ5qI91GzinLXxxLVpWBeFeMVEb7l8SerQ3LULq
-epw6A49oyc3AENrHoO1J+Yzk2flAahWjyqT+dqPOfMwmkuz8RikA0RjnqKwlsNWA8kpGW1DxMjVG
-QEa0U+lIep3jTDdrSAImoiWTprC+W4tn6EczFYAA4dfK+X8hjZyFRFWEgGfWnD2sIwB2J9V/BKC+
-v3+Cx+2etwU6gq4cl9/behe9NtiqpOTX/n4ujOWVIGeXn0Mqqet5EPWsE9mGS4T6sPXYUIBQVl1q
-GZ7i4XvSsJpwjI9URc00lpW8tNpblJJa6kU5Jh2pmxPQXhT3ZOYaZlqD2Pv3/RI599vTSw3NOqQ6
-Q5nG0kCMbJmpcmpyBgsKgxP+m8OwTP/OH+QMVJz0WYjXpoIfbQZN5PFHgWRjjxLCMVA9heGJoqM7
-SiSVPukJgrpkaXjbQvgwj04LdTa6NmwruyYk+wPbmU/+Jrr3XaRiffvdt9WhQRzBKDqckOK5wfZc
-bfwOPdRVtKYV2SIq4w2qLnpqjDyailjoN/nhnPu2j23y6tWtHyu7HrybN1hpF/jZnzPa6cnge2hl
-OFr+tzmkcXHrvktCswKSYWNP4uL1Eb/C6nLmo7xNRC9UcOcbRGaxdPlTY8ftbjU8iV0XorPTLo6g
-dzInuvb6ifoNLCflwrwzJJgLyVRer3QpB9E4o9VbsUymXgiB+ERv1eB3LDF9rmaT/dYArJGGg13h
-rvJDwR0PFoNdSRuwFsXEStwZ1BP5mfJQvWyDaR4+kikj+eyr/Vd7W2QxUODYz0eIpBIjKKnSmC0x
-OJphNwG2EuGFZWqSNQOSPFfK5EmYIvi6pNudz02o7MAwZATwZaM02Jh4UfVbNmBdYFVjIMtj6MRb
-uuaWJVVU+62il8+SAZgGV4qmiTYG/DPLKVmDTvJu1hiafhk7L56Fm+09ThID7icoN7QRs4ATJp45
-PQMTihBLqmYhma34Yc6f/q5/OXEgeG+qa7JMmu6aPvI8F3NBXLF2+9sJP6AA5Tk3ubgJAlCO1A3x
-gFc6zBA2Xd5+7Fqza61ogUV42ajlkIJfm4tH/X6dZI/rAIosuBgqqz19IEeGGjXbehd3PicBeXDy
-j0PdBc26wncJ6yrld5hMRP5KjdCjWhFGwdYGG/wyhpYZApo1z2M9yR51j23nPyTlpCRcqAujet+f
-UP7tzH8/7YjA1FaoA9wrn9qt52q2EU0QeaIxSMn3CTV0ZIe0sbW/4JyqSn13EOJqdjP1t8UBrlSt
-cijw4BcHBg9mAIr+x3+55js/sdqNh8y6oGfi1PRJhBRtx+unnMi013r4n/1Edzv39GXSFLHip+dK
-68g6zR8zJBqAJ9lK4VyNQwAB2T0ygfhldw09C09hRJ5SdVYR8oPoMmHJIP9mi1Witx1EaVKzE83u
-0ZvWXtJfjxGV6Qg17tDeK5bAdjQ0XeqVVKrdlXrSJok7OXpH7DO8K7NQWpSsA+PHv85kfo+RBEXX
-tjDzSLizL7RBUVUESoszmOTzmuDMC3/Jk36jcllRC2xc4KasvYRn695J49qSub0MnDLY3T1oZqvh
-Op8PTg3Ar3CDOE6FSQm+t576YIrvCIOuRYRJkt8x5wRy7UID0oGrGsyuc/IrkeAOfatz//ZAacmS
-nyWkojdonuh4824z8PnYoOyMYMjxkBb1Y4prJH2bK+nHtjql884lG0eNuaU6Grr9waiHvFSuzYOP
-OuyLpgehFv9N9QcaAvg0JnQ3wUiYWubAxW16NAGEtc3E8p9QT5+5F93e8b0tr2n7IO/B0sJUh9/L
-T6QIj2r/AnK2pWY/app2sArOAhu6EeqmZTtZjbTgOHGasfuPyZeLLUK06GC7lbGxhEsRTewshucl
-IseBW6gSy8kwLo0cnWWGXcNAismsEb9n90kMsjUia2LN6BmNkzBWW1NwRJupMp2vY/m1JpXrmY+H
-xwr5OeriHNbRT4aS7FS+rfps7PQ5RZI8WDe+P+qOr2WdCaGNFBuGdmUjOmH8A16I/Jv3AufyWme2
-AlzIGGveCPtrS+PPc2W2aHSzuYj7sTZEMzXcIm3Wz2DgZ64ed8uQMXO4kMIucLqtpyMxPIaHTVyt
-iZ5QSrZPbLBX1ASeJKaimjbhX9pCytL3tG0ihazldu3oj/5SFg/f2ByTlZs28Kf95tzX2R7oH4ag
-HokhNHsubMYeBSwAhnlTmZcJDxF3anFoHloSygSUlW+EDsBSmRPe8FJUMZam+unQr/Zrgzr9GuCP
-WbQ+ok7Dp5kFp1AxhlZqYiPucwVzfv6Br8XO9wI/MLzQUwrdVdhbDoR+MnshCOQoP/vwsgiaS5zm
-heQRaaKOhiLFSBRnKbMJ1oVDOekpp2kbhXlqvBr6UwPBYvV0eeZF5wQONnz+G+B/wHQDmwK7s2TP
-n7d/2P2NGcZQX6FhptmGTcUdLs/wOIaPV1eogaIUOsXoGPlvpGeFwjSoDbLBjbfVMlUbt4nCI/lh
-G8m552/qX1/YQMlgLqfCbg9kUaYtPL1YCJ6jx6pfB8esK3mBj50x0ccMhl7G7XHCSq1lRKh+8QeT
-8647RrobNX1ZjeAyareOMrUBYyM8ZZvo4727UHHs/9QJqzMRvSytsoGppk+VICwf/hjIyA4IHGMA
-fgwvE3MxM0dn1X4MFci1KVUIb7nBq61hmDg0itbSx/sYFBvs5WTyGRtyffTYFbrJ+6FMtV1ZdOLS
-fPjD+MVeGp6+YUHh11zRjrLAxRMige98L++h3zu0W8YkTZ2qQxuNHEmk7CGJKq6PTeedtcNn9PQ4
-7pyW0UE/qmaEyG3nHCyaTGxlVwpSZjt+uv0rSz7A1MZyD7G+eGwoIyc02btPrgzc1nPzvlU7opcy
-XkkLoOpoTYFWBDVCB/ElCK3qXbMK1GaUmlde6QsHIty1PhyW1lMve+di9MuHK1PEkaUjtuLN+yBq
-SQEinm9wB1Vp0dIYZLwNXEl6Zv52HwsNkf/8inPYJUi7dq96spPAyxTIK4CNmpaJBhwstPDxvuzO
-aCexmbnYhwhwy8zXc+XD1ITtjuC7fuTdqTUBwGfZWIBGjf8d7z04NDK3wzIVlZJDbwNouJoxDWem
-u7Zo0VH0/AL9JNBQZMBTkMwIxNwOVl4LbWkkksohWmlhi1cHm/C8A6UE+jxigclOqZ+aNQ9JNcox
-HYCja6hBPiD9Xbnu+0laJKnRNATqZYP1PWkMcXwwcAdSC85VQFfDaC6tqi3wx4bEqVtIhY2Y7A/X
-7IFtq8g2A60lAIw85c9D/cDmmF8Apw58pdGg2ZcpMw/d/3XDdqShHFcR5ipBvXC+Jvy/opygKI01
-INxJk8/dvd9BiTyJdLTAnOWPLlwzLakV5oN19I1bLi9r9kU/ESvHL6xtBGDqF9Qu75IAF6YBBkML
-ZhGMsg22o2R9Y7DoZBf2zn5HNzthPDPO8HxDQPhYLC7gvzb6WlVTsWewLYuIGZoeaia1EyygzDRg
-4IrLyPRmozzmu1VJY6aKhPHEL0wP4uLI21RM3udjDheVxNZRmllkSYCIQx6DDIhq6I1TRIpE+PUa
-Ah5VROYzsFWP3j4A5YRtR7SIw7aGfVeIy6A/gSxJDS2kr/At9GBVrAUM5NwHqkmpNvv4HUnKIjnz
-C8o4zWgYeAXMOqLrOJzGSdlq87VgD3CIo62vdcrudwaGJP+Uc7rheJfDaHR6I80kZBu3Kc12JsMz
-TsgMURzkGZCNDCLVywcythbZxGagxPhGWCWeKYJ8Vv250GoAWxHqNH3aXAIe/Qb7lskRCQPAncvU
-GUYbqKQ5BrzjaxEJxehRxHL2M+NchAX/OtZYz84ePUFNGZDvDDIs5o8KhohIKhg+FdY+mYhZAW63
-ttOS+xuBC/AZvwSAlJi5z0RDMYnnt4jfpj4gG2ncQlKUf5xp3fSOVO41Zjr29nPSYd6os0kKeqoL
-jjytFPZVYcb0cht8qeKsMqSI3NGXH3ZvPNlqyZsKdpKmJ2tR/HpCr0icFGrTOHGtML/4p1zoBuZW
-2vUE5IcgHxnsLK8gzTe4gC7J/4dXMRCflHBMaWiLWNZSZNUpwYSfbY5dPC+7GHMduA+spIEgYod2
-1onsuiufdQXVETNtGyrNKpnIk0o/1iJrFEuKMK+QLGyVb5TokjmHYhQYSDcVt8vvaUf2UJ7XsEva
-iFlyMoPs+MxJA5VhCBC7lG0h/ib1UNn0Zxh0A4tYVxZ0U+WDMY+JPdr/0Zh3Q4lvTcIL7MSQZTtR
-35q8Ntm1l77RvKFGO2GuOFrWsbwCvbuDRXS5y6E0RhMMm0xgQFHxnvDRW6mdY+QEfmfnaoACTyCS
-gdgkJE9dv/AR1mGKPFRblkW+kOMdN/GKQybNDK1tHD+prdPnTlOdCOAholuLlb5SgHVlAgzBzT4s
-sJYR0BNEPXMc794Ob5m2Hy79biBdg5VEdwd9BRJ3+pW8VEuKOIne49tUSP1hOfAlnkTmp02Z7Wuq
-nLLJ0YUpinGhn4O32dmrfaDHc+cbBDA1vnMP7RkgnUdgYbffqRVFYtFa5n+mISNA00K1BUTO0vzT
-T96Fi3PEjmNl2rK/YjhmvZSSWzeCdq2GsUTJq//+qj4Z7spQlQQuJ2g5NJa4ytJOmGU5H1PyuaJP
-TVl1NQb62Tp+l1YNW6JNv+hjSZluwVwRUsV2XV648Zz/Rs0mwLDCD5QFCaUomFUvILQ5QHjNkvWb
-lA5rmC+5U2LN+bYPw9kywseoGIikkS9bVAtQ8MoHsfIhFOzkPbrCt2hK8P+yKa4Rh4FHL3THirlq
-kXwL59815wPAcLwmW7tGbVt5SgwRsZcpt1XjBVRBR9P4M1BZsZNiwX4ek8XcacwIY+6zGKgRswn2
-MyyvpPWW3fNMuHrCOxnZaemQuezazVDC+K7eosF8Biibn5kcu5NvCUJkdKuk4y9TzKUfkENkQz+S
-9nTmrLErYn6FD8HBiIMzcxk02hCUBWPUIex8UDrU1y0JtAkXI3u9rdVjxK2ZhsP6U39dVIUXdpSY
-LbL+rGxdleIAyqS2PfLqsB4Pf9oDcFe27LxylAp7/mAMQZn9QMjvzufK+3iIPl4eV5I3YXZRu6cZ
-t8jzxCvP8olkY0eKwfkl/g2sJ4at91FZ+t1UzW/10uZMgQXEhOydLZINR7nSVyJ02iUHBVVvUThn
-vrP7v+0CaBciYbLlYn/jM/5UefxE+EzNdTJjlORQJMj6yyXBDTJD1P9odZGPdHtOWM34O6Gr37o1
-wlajQm+Cn52GNXQhqaNnCnGXbp7FVa9UNIgdSUK1mETKNYY7/o8oZdEClFXq9Jsxq5uDDV3/gYlV
-T4d/4NFc+09v25hzX3DgEvehsIWPapXmPu3A8cBVdczfzWfKT3nOqiy+cZLlGwgFl9mDb5mcmmWJ
-ZfTn6ZUnYjOPHz48x/OL2BoJFED/OWtNrYc+f74LX2NylSU3UVVBRpLw4gH0+fHsjQco6BT/p6+7
-yKGaXjX0LY0mmVy6pJTOETDl/oKzKHEWjAq0+tHzF1oWE+Vpi6XkRXFdxVG7X+UEgAij2csWcASe
-ehtwSfriIhRBFiQAes+aIBy4BQGRxqKQ4oMTFynVij7pk1ap1KK/GNvoul5fz8bBHp7pbccU3q13
-OHp5ZcAGxssIkwOPlJmEsh/w8xBadmldGCt48n0xQDlouBR0R4HuPUvFX/l/XS9wwPIqHDyGHW38
-eOYojBoR5GJ0yAO5LGqrQxG/XmnVG4JVGkPoLB4lTM32Ckc8qsW3v7M0V3xlvwujRG4ORnFL9N48
-xN/bcpVG4iIF7Rxttr+ngaFMH9W1W0vbn650aTF1W/tPqF35nhb5m11nxWvBKmqLQQ00elMnFm5w
-fSWvQaorZVev7btoTKgyFNVdqiRLtB9l142ebD30TqKiVxHTUzuTdEMUeACuG9EPXxiCAYx5h+Bd
-69ynk9dqme3uoNR0hs09Be4hklvr1sAQejVw+dol4LvL77Tka8iGgpNJvxHbm9Jra4hNg5O+4NoK
-vvM2XJ8vIIgRjrY2T+loyd2wROWTOaRlT+LQTaoMOSBiP+8AAeX17O/cKv2WK7weiLYvvsq3Ne3m
-7s+mQ2otjB9QcUXGbLx2JSS62GfN7XsRQ8FX+r4I7bFIWZjcCfMQWjqmqmyPWEilKDVy8Lq8XtAf
-VzKIDMKEOXCMjTDgvGylEg+IvoX79PDtvV2oPc4hylSITqvGhq/sEmw0BylK9rzLwENvFRD9eAD8
-hhuptA5QwavdXrvQ6+Zd4oXWDmRHqH7yE/8O0IPYj+iQs0lJbgstEaRXa1YG52PoiHV7ZdDq5qSr
-2b8t8yZ9zUTz2TOSMNP1Pxsm6f7/NWJ0tS/cbIDZJV9jdvuTs1XfzjRC2HYrdJALrfVfQjqei/L4
-qe1Gn2KES1Qe2WUAn2EcIi1b1Lx3eV4x4JhOzasfcPHg3mvrXvmIt+X/an6raYB3ampeIsDhLSj0
-t9SCnAgsCo74yKHUTQWXt9DLXE7/I4+s2e51/LDvaMIm6J7/KPizlJuUJbcI7WjAZB3CqHGvO/9R
-pNGZSQTsq5AedAiLiuypkzqgSmaEeH6xovkdoPAux8Pl2+l7l/rVAL4X9JIMl/sO5cERU1228goc
-BcKNMwd7Q4VPIAO1Hn0aXybjGpRBnHOzyDhzuAs91PEtL6YI13M66M3cBo6jQgtv6FJO23XIitJl
-9ucbe5QZJUjs05nEdm/UXO6vxqG2fhheoxHwo3X/ubEw4D/KAGqNqCqjTIdUV822Vy+6tevKILTo
-8qh64HVn4uYtYIMlEnLyamvfjfLtCVTfovL7JTkwSqDNRb0fCStGVhkD4VPrIjljasphnSsfxfAW
-oxV5ExESEToDCfaO/BoeL6mbGYOWQX64qeZiypvVhkVSyHMNyuGFE+Htw3LUqhNV888jBwUR9/HY
-LekO4diuWgd+4Eys6z1BZsM4mpwKwzEaWygOmv7u6+Rl3ODXJ+dWXdJHK8Z09rtCD17hnl3Yi8rG
-QedUzdk5QFAx3bHpy92PXFX2QR1mXZyb4PC7d8douDsjYWHTY4m4WRtMIcG2kItduL3EpNkgMoky
-UFKPIE60GOJM5l5TV8OVLPF04vqDqtxEqK9epn57aS6bVaFBG0fQyrwu2tA6EsE5HHvY2pipLp6y
-ixYXLHGSlymNpe6Aly+o3UT7u/auEiH3kAu9tr9kZhKkQ2L7JjUJJ8tr4pdRXAgctuln3las631r
-A5d51+D5gF6dQrgjF/mP7wqY9GFeJVtTssFz6e5KLcvvzMApZvLkrWgV06xeIFoUtCxisqQn4CsI
-zwTWXWSJXFCrmjlZKaYBf9aD6z2QiU0O5j0by9GvGG0NsgJskr6d1NS2oySbE5n/AeaWIWgcF4O5
-zq7E/hAL5DhI/yzHIYyuSyqU68Z/fAJnkQzdM8BakV5Yb85fcnk4p9KNz2qB45oIh3h7MJL6DzRt
-Tacxsq8NQNnXGnr35uUaeSZqrVrupt8Roo8Ty61Grm4kZwlm2sgMKgXAApelU5R326CkO7iMCf3z
-qVmXdmdwKDtJmtYhyMOxNRK8erlu4r6zEeDvEpx2IBIOGnT0ApDjYviZlP99fgMh3yJfI/had4rT
-mC1Z685Ml2+hMNFdxFjxEm8BVqAUNgfuaDj7Li5jZnGpqdGjUKfMwV4do/jufEf8Veu3WdAF65og
-swhI56mnllNG9wN34pjZ4RslCEtlkr4Gxz+LdX+cV/WpGQJnFBIabFIQZOawAZLpev8obH3dGkEh
-q+6txUhhMK+n8SpsxnUuMuBaihhSwlhxHZuNI21WZKs4+UHD4p4XKp5/JnwAVaF7JAHMPhRyu9Lj
-17vVYGLMvKAxiswx7F8Wf/sqe2bICrBHeOwr9txjW1zLKCnxVCLfivCAi3JjVKmfaJbPbdFYZc2T
-bPVpgkyuhCzoUp+3N37RJ/RWjqbeq6RDzOkIPZox
+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
 `pragma protect end_protected
 module FifoMax2870 (
   Data,

+ 110 - 129
src/src/WrapFifoChain/FifoMax2870/FifoMax2870.vo

@@ -1,8 +1,8 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
-//File Title: Post-PnR Simulation Model file
-//Tool Version: V1.9.9.02
-//Created Time: Thu Apr 25 16:07:36 2024
+//File Title: Post-PnR Verilog Simulation Model file
+//Tool Version: V1.9.11.02 (64-bit)
+//Created Time: Thu Jun 26 11:10:16 2025
 
 `timescale 100 ps/100 ps
 module FifoMax2870(
@@ -37,35 +37,37 @@ wire VCC;
 wire WrClk;
 wire WrEn;
 wire \fifo_inst/n21_5 ;
-wire \fifo_inst/n27_4 ;
+wire \fifo_inst/n25_3 ;
+wire \fifo_inst/n257_3 ;
 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/Equal.wbinnext_0_8 ;
+wire \fifo_inst/Equal.wgraynext_1_4 ;
 wire \fifo_inst/wfull_val_4 ;
 wire \fifo_inst/wfull_val_5 ;
-wire \fifo_inst/n335_6 ;
+wire \fifo_inst/n336_6 ;
 wire \fifo_inst/wfull_val ;
+wire \fifo_inst/rbin_num_next_0_10 ;
 wire \fifo_inst/rempty_val ;
+wire \fifo_inst/rempty_val1 ;
 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/n158_1_SUM ;
-wire \fifo_inst/n158_3 ;
-wire \fifo_inst/n159_1_SUM ;
-wire \fifo_inst/n159_3 ;
+wire \fifo_inst/n156_1_SUM ;
+wire \fifo_inst/n156_3 ;
+wire \fifo_inst/n157_1_SUM ;
+wire \fifo_inst/n157_3 ;
 wire \fifo_inst/n4_6 ;
 wire \fifo_inst/n9_6 ;
 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/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 [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 ;
@@ -86,28 +88,20 @@ LUT4 \fifo_inst/n21_s1  (
 	.F(\fifo_inst/n21_5 )
 );
 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/n27_4 )
-);
-defparam \fifo_inst/n27_s1 .INIT=8'h0E;
-LUT3 \fifo_inst/Equal.rgraynext_0_s0  (
-	.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])
+LUT2 \fifo_inst/n25_s0  (
+	.I0(Empty),
+	.I1(RdEn),
+	.F(\fifo_inst/n25_3 )
 );
-defparam \fifo_inst/Equal.rgraynext_0_s0 .INIT=8'h1E;
+defparam \fifo_inst/n25_s0 .INIT=4'h4;
 LUT4 \fifo_inst/Equal.rgraynext_1_s0  (
-	.I0(\fifo_inst/rbin_num_next [0]),
+	.I0(\fifo_inst/n25_3 ),
 	.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;
+defparam \fifo_inst/Equal.rgraynext_1_s0 .INIT=16'h07F8;
 LUT3 \fifo_inst/Equal.wgraynext_0_s0  (
 	.I0(\fifo_inst/n21_5 ),
 	.I1(\fifo_inst/Equal.wbin [0]),
@@ -116,13 +110,19 @@ LUT3 \fifo_inst/Equal.wgraynext_0_s0  (
 );
 defparam \fifo_inst/Equal.wgraynext_0_s0 .INIT=8'h1E;
 LUT4 \fifo_inst/Equal.wgraynext_1_s0  (
-	.I0(\fifo_inst/n21_5 ),
-	.I1(\fifo_inst/Equal.wbin [0]),
+	.I0(Full),
+	.I1(\fifo_inst/Equal.wgraynext_1_4 ),
 	.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;
+defparam \fifo_inst/Equal.wgraynext_1_s0 .INIT=16'h0BF4;
+LUT2 \fifo_inst/n257_s0  (
+	.I0(\fifo_inst/rempty_val ),
+	.I1(\fifo_inst/reset_r [1]),
+	.F(\fifo_inst/n257_3 )
+);
+defparam \fifo_inst/n257_s0 .INIT=4'hE;
 LUT3 \fifo_inst/wfull_val1_s9  (
 	.I0(\fifo_inst/wfull_val1_3 ),
 	.I1(\fifo_inst/wfull_val1_2 ),
@@ -153,49 +153,34 @@ LUT4 \fifo_inst/Full_s8  (
 	.F(\fifo_inst/Full_1 )
 );
 defparam \fifo_inst/Full_s8 .INIT=16'h00F8;
-LUT3 \fifo_inst/rbin_num_next_0_s5  (
-	.I0(Empty),
-	.I1(RdEn),
-	.I2(\fifo_inst/rbin_num [0]),
-	.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_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_s5 .INIT=8'hB4;
 LUT4 \fifo_inst/rbin_num_next_2_s2  (
-	.I0(\fifo_inst/rbin_num_next [0]),
+	.I0(\fifo_inst/n25_3 ),
 	.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;
+defparam \fifo_inst/rbin_num_next_2_s2 .INIT=16'h7F80;
 LUT2 \fifo_inst/Equal.wbinnext_0_s3  (
 	.I0(\fifo_inst/n21_5 ),
 	.I1(\fifo_inst/Equal.wbin [0]),
-	.F(\fifo_inst/Equal.wbinnext_0_7 )
+	.F(\fifo_inst/Equal.wbinnext_0_8 )
 );
 defparam \fifo_inst/Equal.wbinnext_0_s3 .INIT=4'h6;
-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_s3 .INIT=8'h78;
 LUT4 \fifo_inst/Equal.wbinnext_2_s2  (
-	.I0(\fifo_inst/n21_5 ),
-	.I1(\fifo_inst/Equal.wbin [0]),
+	.I0(Full),
+	.I1(\fifo_inst/Equal.wgraynext_1_4 ),
 	.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;
+defparam \fifo_inst/Equal.wbinnext_2_s2 .INIT=16'hBF40;
+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;
 LUT2 \fifo_inst/wfull_val_s1  (
 	.I0(\fifo_inst/wptr [2]),
 	.I1(\fifo_inst/rbin_num [2]),
@@ -210,14 +195,22 @@ LUT4 \fifo_inst/wfull_val_s2  (
 	.F(\fifo_inst/wfull_val_5 )
 );
 defparam \fifo_inst/wfull_val_s2 .INIT=16'h0990;
-LUT4 \fifo_inst/n335_s2  (
+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_s4 .INIT=16'hBF40;
+LUT4 \fifo_inst/n336_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/n335_6 )
+	.F(\fifo_inst/n336_6 )
 );
-defparam \fifo_inst/n335_s2 .INIT=16'h0600;
+defparam \fifo_inst/n336_s2 .INIT=16'h0600;
 LUT3 \fifo_inst/wfull_val_s3  (
 	.I0(\fifo_inst/wptr [2]),
 	.I1(\fifo_inst/rbin_num [2]),
@@ -225,13 +218,36 @@ LUT3 \fifo_inst/wfull_val_s3  (
 	.F(\fifo_inst/wfull_val )
 );
 defparam \fifo_inst/wfull_val_s3 .INIT=8'h60;
+LUT4 \fifo_inst/rbin_num_next_1_s4  (
+	.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_s4 .INIT=16'hBF40;
+LUT3 \fifo_inst/rbin_num_next_0_s4  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_inst/rbin_num [0]),
+	.F(\fifo_inst/rbin_num_next_0_10 )
+);
+defparam \fifo_inst/rbin_num_next_0_s4 .INIT=8'hB4;
+LUT4 \fifo_inst/Equal.rgraynext_0_s1  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_inst/rbin_num [0]),
+	.I3(\fifo_inst/rbin_num [1]),
+	.F(\fifo_inst/Equal.rgraynext [0])
+);
+defparam \fifo_inst/Equal.rgraynext_0_s1 .INIT=16'h0BF4;
 LUT3 \fifo_inst/rempty_val_s2  (
-	.I0(\fifo_inst/rbin_num_next [2]),
-	.I1(\fifo_inst/Equal.rq2_wptr [2]),
-	.I2(\fifo_inst/n159_3 ),
+	.I0(\fifo_inst/n157_3 ),
+	.I1(\fifo_inst/rbin_num [2]),
+	.I2(\fifo_inst/wptr [2]),
 	.F(\fifo_inst/rempty_val )
 );
-defparam \fifo_inst/rempty_val_s2 .INIT=8'h09;
+defparam \fifo_inst/rempty_val_s2 .INIT=8'h41;
 DFFP \fifo_inst/reset_r_0_s0  (
 	.D(GND),
 	.CLK(\fifo_inst/n4_6 ),
@@ -268,54 +284,12 @@ DFFC \fifo_inst/rbin_num_1_s0  (
 );
 defparam \fifo_inst/rbin_num_1_s0 .INIT=1'b0;
 DFFC \fifo_inst/rbin_num_0_s0  (
-	.D(\fifo_inst/rbin_num_next [0]),
+	.D(\fifo_inst/rbin_num_next_0_10 ),
 	.CLK(RdClk),
 	.CLEAR(\fifo_inst/reset_r [1]),
 	.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),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq1_wptr [1])
-);
-defparam \fifo_inst/Equal.rq1_wptr_1_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq1_wptr_0_s0  (
-	.D(\fifo_inst/wptr [0]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.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),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq2_wptr [1])
-);
-defparam \fifo_inst/Equal.rq2_wptr_1_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq2_wptr_0_s0  (
-	.D(\fifo_inst/Equal.rq1_wptr [0]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.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),
@@ -359,16 +333,23 @@ DFFC \fifo_inst/Equal.wbin_1_s0  (
 );
 defparam \fifo_inst/Equal.wbin_1_s0 .INIT=1'b0;
 DFFC \fifo_inst/Equal.wbin_0_s0  (
-	.D(\fifo_inst/Equal.wbinnext_0_7 ),
+	.D(\fifo_inst/Equal.wbinnext_0_8 ),
 	.CLK(WrClk),
 	.CLEAR(\fifo_inst/reset_w [1]),
 	.Q(\fifo_inst/Equal.wbin [0])
 );
 defparam \fifo_inst/Equal.wbin_0_s0 .INIT=1'b0;
-DFFP \fifo_inst/Empty_s0  (
+DFFP \fifo_inst/rempty_val1_s0  (
 	.D(\fifo_inst/rempty_val ),
 	.CLK(RdClk),
-	.PRESET(\fifo_inst/reset_r [1]),
+	.PRESET(\fifo_inst/n257_3 ),
+	.Q(\fifo_inst/rempty_val1 )
+);
+defparam \fifo_inst/rempty_val1_s0 .INIT=1'b1;
+DFFP \fifo_inst/Empty_s0  (
+	.D(\fifo_inst/rempty_val1 ),
+	.CLK(RdClk),
+	.PRESET(\fifo_inst/n257_3 ),
 	.Q(Empty)
 );
 defparam \fifo_inst/Empty_s0 .INIT=1'b1;
@@ -389,7 +370,7 @@ defparam \fifo_inst/wfull_val1_s0 .INIT=1'b0;
 DFFP \fifo_inst/wfull_val1_s1  (
 	.D(\fifo_inst/wfull_val ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n335_6 ),
+	.PRESET(\fifo_inst/n336_6 ),
 	.Q(\fifo_inst/wfull_val1_3 )
 );
 defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
@@ -403,7 +384,7 @@ defparam \fifo_inst/Full_s0 .INIT=1'b0;
 DFFP \fifo_inst/Full_s1  (
 	.D(\fifo_inst/wfull_val1 ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n335_6 ),
+	.PRESET(\fifo_inst/n336_6 ),
 	.Q(\fifo_inst/Full_2 )
 );
 defparam \fifo_inst/Full_s1 .INIT=1'b1;
@@ -412,14 +393,14 @@ SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s  (
 	.CEA(\fifo_inst/n21_5 ),
 	.RESETA(GND),
 	.CLKB(RdClk),
-	.CEB(\fifo_inst/n27_4 ),
+	.CEB(\fifo_inst/n25_3 ),
 	.RESETB(\fifo_inst/reset_r [1]),
 	.OCE(GND),
 	.BLKSELA({GND, GND, GND}),
 	.BLKSELB({GND, GND, GND}),
 	.DI({Data[31:0]}),
 	.ADA({GND, GND, GND, GND, GND, GND, GND, \fifo_inst/Equal.wbin [1:0], GND, VCC, VCC, VCC, VCC}),
-	.ADB({GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num_next [1:0], GND, GND, GND, GND, GND}),
+	.ADB({GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num [1:0], GND, GND, GND, GND, GND}),
 	.DO({Q[31:0]})
 );
 defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .READ_MODE=1'b0;
@@ -428,24 +409,24 @@ 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/n158_s0  (
-	.I0(\fifo_inst/Equal.rgraynext [0]),
-	.I1(\fifo_inst/Equal.rq2_wptr [0]),
+ALU \fifo_inst/n156_s0  (
+	.I0(\fifo_inst/wptr [0]),
+	.I1(\fifo_inst/rptr [0]),
 	.I3(GND),
 	.CIN(GND),
-	.COUT(\fifo_inst/n158_3 ),
-	.SUM(\fifo_inst/n158_1_SUM )
+	.COUT(\fifo_inst/n156_3 ),
+	.SUM(\fifo_inst/n156_1_SUM )
 );
-defparam \fifo_inst/n158_s0 .ALU_MODE=3;
-ALU \fifo_inst/n159_s0  (
-	.I0(\fifo_inst/Equal.rgraynext [1]),
-	.I1(\fifo_inst/Equal.rq2_wptr [1]),
+defparam \fifo_inst/n156_s0 .ALU_MODE=3;
+ALU \fifo_inst/n157_s0  (
+	.I0(\fifo_inst/wptr [1]),
+	.I1(\fifo_inst/rptr [1]),
 	.I3(GND),
-	.CIN(\fifo_inst/n158_3 ),
-	.COUT(\fifo_inst/n159_3 ),
-	.SUM(\fifo_inst/n159_1_SUM )
+	.CIN(\fifo_inst/n156_3 ),
+	.COUT(\fifo_inst/n157_3 ),
+	.SUM(\fifo_inst/n157_1_SUM )
 );
-defparam \fifo_inst/n159_s0 .ALU_MODE=3;
+defparam \fifo_inst/n157_s0 .ALU_MODE=3;
 INV \fifo_inst/n4_s2  (
 	.I(RdClk),
 	.O(\fifo_inst/n4_6 )

+ 13 - 13
src/src/WrapFifoChain/FifoMax2870/FifoMax2870_tmp.v

@@ -1,24 +1,24 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
 //File Title: Template file for instantiation
-//Tool Version: V1.9.9.02
+//Tool Version: V1.9.11.02 (64-bit)
 //Part Number: GW1N-LV9PG256C6/I5
-//Device: GW1N-
-//Created Time: Thu Apr 25 16:07:36 2024
+//Device: GW1N-9
+//Created Time: Thu Jun 26 11:10:16 2025
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------
 
 	FifoMax2870 your_instance_name(
-		.Data(Data_i), //input [31:0] Data
-		.Reset(Reset_i), //input Reset
-		.WrClk(WrClk_i), //input WrClk
-		.RdClk(RdClk_i), //input RdClk
-		.WrEn(WrEn_i), //input WrEn
-		.RdEn(RdEn_i), //input RdEn
-		.Q(Q_o), //output [31:0] Q
-		.Empty(Empty_o), //output Empty
-		.Full(Full_o) //output Full
+		.Data(Data), //input [31: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 [31:0] Q
+		.Empty(Empty), //output Empty
+		.Full(Full) //output Full
 	);
 
 //--------Copy end-------------------

+ 6 - 4
src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FIFOHS.prj

@@ -4,17 +4,19 @@
     <Version>beta</Version>
     <Device id="GW1N-9" package="PBGA256" speed="6" partNumber="GW1N-LV9PG256C6/I5"/>
     <FileList>
-        <File path="C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v" type="verilog"/>
-        <File path="C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v" type="verilog"/>
+        <File path="C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v" type="verilog"/>
+        <File path="C:/Gowin/Gowin_V1.9.11.02_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.02_x64/IDE/ipcore/FIFO_HS/data"/>
-        <Option type="include_path" value="C:/Projects/QuestaProjects/main_tb/fifo_hs/FifoMax2870/temp/FIFOHS"/>
+        <Option type="include_path" value="C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data"/>
+        <Option type="include_path" value="C:/Gowin/Projects/SB_TMSG44V1_FPGA/src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS"/>
         <Option type="output_file" value="FifoMax2870.vg"/>
         <Option type="output_template" value="FifoMax2870_tmp.v"/>
         <Option type="ram_balance" value="1"/>
         <Option type="ram_rw_check" value="1"/>
+        <Option type="vcc" value="1.2"/>
+        <Option type="vccx" value="3.3"/>
         <Option type="verilog_language" value="sysv-2017"/>
     </OptionList>
 </Project>

+ 32 - 23
src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FifoMax2870.log

@@ -1,19 +1,28 @@
 GowinSynthesis start
 Running parser ...
-Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'
-Analyzing included file '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Back to file '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Undeclared symbol '**', assumed default net type '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'
-Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
-Back to file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
-Analyzing included file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
-Back to file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
-Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
-Back to file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
-Compiling module 'FifoMax2870'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":4)
-Compiling module '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Extracting RAM for identifier '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Undeclared symbol 'Reset', assumed default net type 'wire'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Undeclared symbol 'RPReset', assumed default net type 'wire'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
+Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
+Compiling module 'FifoMax2870'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":4)
+Compiling module '**'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Extracting RAM for identifier '**'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
 NOTE  (EX0101) : Current top module is "FifoMax2870"
 [5%] Running netlist conversion ...
 Running device independent optimization ...
@@ -29,17 +38,17 @@ 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.02_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.02_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.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_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.02_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.02_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.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_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:\Projects\QuestaProjects\main_tb\fifo_hs\FifoMax2870\temp\FIFOHS\FifoMax2870.vg" completed
-Generate template file "C:\Projects\QuestaProjects\main_tb\fifo_hs\FifoMax2870\temp\FIFOHS\FifoMax2870_tmp.v" completed
-[100%] Generate report file "C:\Projects\QuestaProjects\main_tb\fifo_hs\FifoMax2870\temp\FIFOHS\FifoMax2870_syn.rpt.html" completed
+[95%] Generate netlist file "C:\Gowin\Projects\SB_TMSG44V1_FPGA\src\src\WrapFifoChain\FifoMax2870\temp\FIFOHS\FifoMax2870.vg" completed
+Generate template file "C:\Gowin\Projects\SB_TMSG44V1_FPGA\src\src\WrapFifoChain\FifoMax2870\temp\FIFOHS\FifoMax2870_tmp.v" completed
+[100%] Generate report file "C:\Gowin\Projects\SB_TMSG44V1_FPGA\src\src\WrapFifoChain\FifoMax2870\temp\FIFOHS\FifoMax2870_syn.rpt.html" completed
 GowinSynthesis finish

+ 149 - 157
src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FifoMax2870.vg

@@ -1,11 +1,11 @@
 //
 //Written by GowinSynthesis
-//Tool Version "V1.9.9.02"
-//Thu Apr 25 16:07:36 2024
+//Tool Version "V1.9.11.02 (64-bit)"
+//Thu Jun 26 11:10:16 2025
 
 //Source file index table:
-//file0 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
-//file1 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+//file0 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
 `timescale 100 ps/100 ps
 `pragma protect begin_protected
 `pragma protect version="2.3"
@@ -17,164 +17,156 @@
 `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
-Da6ePPXJ0x1Zkr3+qduAM8J+kvtpawq4mD4KNKBETeC4EH7Szs6BzQt56oavp90RuKDAboLkt4Jg
-+G92rwctBdMEwq+eB6c7QPHl/H1uRLQVqlR4yx0r3BOVYQPjoymqLzmZv8veGRBC1kdMpZB80yUK
-zmz+xkaf5+Uj2LoGUbWb2pOECph91GIFDeF+RqGJtZTKyt08qFT8oijjiMTL0Xb+qn22EE7E1RFY
-OllWGiYHO4QEEG6qgweiS5shJRiL6+3Pxmw7CJNrKZ/zyFyC0a6pFdp6mTM2DN5SkKBIq/YzyLXr
-XKL3+73PMXlMajN6EcsM4S1BTp7fXxaHLIWB1w==
+Z83UCZIyQLA5aZMBgRXKgKdFNZPpNcLIhN5ISEHIvdrYM8ZW+qkSUJuWKX54KlBm+8ZifH61UNQE
+RnYpGjhDRAcTJZ74gsP712dIgnpfywKWv4ZK+NEMenvCbcbjjSiXlH/CMlJO8pS4We5BK2jeExNN
+jvygdNr7IiAQc8H8ivK2qFpWjMu2r69ikmGmhsMV314okW5DdzS+IUlvNzB7oijB3r9n9PnflE90
+OUWcEehX0jCn4jb34XiJxgNam7WoJF5fx4wIx0ldjFDEBcgHbrDCTqr8ET4KrNzGyHGH9GCmUW+v
+8ygXDzlmPp+ZRlqJdLYAUkCus73410L9DCj0mg==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=8352)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=7904)
 `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 FifoMax2870 (
   Data,

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 39 - 36
src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FifoMax2870_syn.rpt.html


+ 3 - 3
src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FifoMax2870_syn_resource.html

@@ -30,10 +30,10 @@ table td.label { width: 20%; white-space: nowrap; min-width: 20px; background-co
 <th class="label">ROM16 NUMBER</th>
 </tr>
 <tr>
-<td class="label">FifoMax2870 (C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
-<td align = "center">25</td>
+<td class="label">FifoMax2870 (C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
+<td align = "center">20</td>
 <td align = "center">2</td>
-<td align = "center">23</td>
+<td align = "center">25</td>
 <td align = "center">-</td>
 <td align = "center">1</td>
 <td align = "center">-</td>

+ 1 - 1
src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FifoMax2870_syn_rsc.xml

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

+ 13 - 13
src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/FifoMax2870_tmp.v

@@ -1,24 +1,24 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
 //File Title: Template file for instantiation
-//Tool Version: V1.9.9.02
+//Tool Version: V1.9.11.02 (64-bit)
 //Part Number: GW1N-LV9PG256C6/I5
-//Device: GW1N-
-//Created Time: Thu Apr 25 16:07:36 2024
+//Device: GW1N-9
+//Created Time: Thu Jun 26 11:10:16 2025
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------
 
 	FifoMax2870 your_instance_name(
-		.Data(Data_i), //input [31:0] Data
-		.Reset(Reset_i), //input Reset
-		.WrClk(WrClk_i), //input WrClk
-		.RdClk(RdClk_i), //input RdClk
-		.WrEn(WrEn_i), //input WrEn
-		.RdEn(RdEn_i), //input RdEn
-		.Q(Q_o), //output [31:0] Q
-		.Empty(Empty_o), //output Empty
-		.Full(Full_o) //output Full
+		.Data(Data), //input [31: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 [31:0] Q
+		.Empty(Empty), //output Empty
+		.Full(Full) //output Full
 	);
 
 //--------Copy end-------------------

+ 0 - 1
src/src/WrapFifoChain/FifoMax2870/temp/FIFOHS/fifo_define.v

@@ -1,5 +1,4 @@
 `define module_name FifoMax2870
 `define EBR_BASED
-`define FWFT
 `define En_Reset
 `define Reset_Synchronization

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

@@ -17,7 +17,7 @@ ECCSelected=false
 EmptyClear=1
 EmptySet=1
 EnReset=true
-FirstWordFallThrough=true
+FirstWordFallThrough=false
 FullClear=1
 FullSet=1
 LANG=0
@@ -28,7 +28,7 @@ ReadDataWidth=8
 ReadDepth=2
 ResetSynchronization=true
 SSRAM=false
-StandardFIFO=false
+StandardFIFO=true
 Synthesis_tool=GowinSynthesis
 WriteDataNum=false
 WriteDataWidth=8

+ 113 - 123
src/src/WrapFifoChain/FifoShiftReg/FifoShiftReg.v

@@ -1,11 +1,11 @@
 //
 //Written by GowinSynthesis
-//Tool Version "V1.9.9.02"
-//Thu Apr 25 16:08:18 2024
+//Tool Version "V1.9.11.02 (64-bit)"
+//Thu Jun 26 12:23:20 2025
 
 //Source file index table:
-//file0 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
-//file1 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+//file0 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
 `timescale 100 ps/100 ps
 `pragma protect begin_protected
 `pragma protect version="2.3"
@@ -17,130 +17,120 @@
 `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
-rE66WtNKtc22HlKA/X4eJurtJEnvZemh7Zi9pohq7hHdYu15Y21d8CKvWJizh8HxY9I0OT+eTJYe
-eqAmDwscz3d6gWPx0ty1wAovCUkRxoMRBOBCmiJBj1FAq23KXlKei5tCXIQQG+7uAA9Mz6Jr+6hd
-+siV1FTOW4hlWZSMlHvcc5M3QH2IpgONxuKpGtgigAjcxFHeL61jOKWUafSHFW6bf8j2J5rsbwqY
-ArJzg7FAyvR/3aNkWyNra/6lK47Ld15z5DXOp6Qw4yowJyzNpUIg7BGTwuT5hvVdE8HU5+LAGBLC
-8DM4h8FNMqFHubE/tetwFYOqKFxGclYw1Xqrhw==
+cmKgCo6fl4yQ2daLlTEWjlhIxL+cA+gLe2lZZKzdOibLuR2nTfuVFWjCEwTh13nKYXD2E4QQIKnU
+CgcZ63ka3W0fX8FDJliq5hS84GB/V4uX5isGQ3HQR8lU0cUGT1+2BNIgZP5xRrupuGV015dOS6pk
+8eq1CfA4bEzcv43TsfOVPVn57dyX8YDzui1OAcbghOU36J+oNd8SMTZja0oNucAm66qjYGWyuw0x
+2qPn1Bh9TILELT6drK50uiV+QqRfK/4noLg1AskmjWMyuYAyqw9NLSxsYSSTBRo+rj6cekwvE33T
+HIh3VFyc2t5fnAnrVhmzNZEMicj1U34soUinRQ==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=6400)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=5840)
 `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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
-BrWHDjSsnheYikR4eooDlA==
+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
+BfEUBlASDwCIOUXz90zB1rtT+awvNQfLQ0k=
 `pragma protect end_protected
 module FifoShiftReg (
   Data,

+ 79 - 101
src/src/WrapFifoChain/FifoShiftReg/FifoShiftReg.vo

@@ -1,8 +1,8 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
-//File Title: Post-PnR Simulation Model file
-//Tool Version: V1.9.9.02
-//Created Time: Thu Apr 25 16:08:18 2024
+//File Title: Post-PnR Verilog Simulation Model file
+//Tool Version: V1.9.11.02 (64-bit)
+//Created Time: Thu Jun 26 12:23:20 2025
 
 `timescale 100 ps/100 ps
 module FifoShiftReg(
@@ -37,30 +37,30 @@ wire VCC;
 wire WrClk;
 wire WrEn;
 wire \fifo_inst/n20_5 ;
-wire \fifo_inst/n26_4 ;
-wire \fifo_inst/n177_4 ;
+wire \fifo_inst/n24_3 ;
+wire \fifo_inst/n135_3 ;
+wire \fifo_inst/n178_4 ;
 wire \fifo_inst/rempty_val ;
 wire \fifo_inst/wfull_val_7 ;
 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.wbinnext_0_8 ;
+wire \fifo_inst/rbin_num_next_0_10 ;
+wire \fifo_inst/rempty_val1 ;
 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/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:1] \fifo_inst/rbin_num_next ;
+wire [0:0] \fifo_inst/Equal.rgraynext ;
 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 ;
@@ -82,41 +82,39 @@ LUT4 \fifo_inst/n20_s1  (
 	.F(\fifo_inst/n20_5 )
 );
 defparam \fifo_inst/n20_s1 .INIT=16'h5300;
-LUT3 \fifo_inst/n26_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])
+LUT2 \fifo_inst/n24_s0  (
+	.I0(Empty),
+	.I1(RdEn),
+	.F(\fifo_inst/n24_3 )
 );
-defparam \fifo_inst/Equal.rgraynext_0_s0 .INIT=8'h1E;
+defparam \fifo_inst/n24_s0 .INIT=4'h4;
 LUT3 \fifo_inst/Equal.wgraynext_0_s0  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
+	.I0(\fifo_inst/n20_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
 	.I2(\fifo_inst/wptr [1]),
 	.F(\fifo_inst/Equal.wgraynext [0])
 );
 defparam \fifo_inst/Equal.wgraynext_0_s0 .INIT=8'h1E;
-LUT2 \fifo_inst/n177_s1  (
+LUT2 \fifo_inst/n135_s0  (
+	.I0(\fifo_inst/rempty_val ),
+	.I1(\fifo_inst/reset_r [1]),
+	.F(\fifo_inst/n135_3 )
+);
+defparam \fifo_inst/n135_s0 .INIT=4'hE;
+LUT2 \fifo_inst/n178_s1  (
 	.I0(\fifo_inst/reset_w [1]),
 	.I1(\fifo_inst/wfull_val_7 ),
-	.F(\fifo_inst/n177_4 )
+	.F(\fifo_inst/n178_4 )
 );
-defparam \fifo_inst/n177_s1 .INIT=4'h4;
+defparam \fifo_inst/n178_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]),
+	.I0(\fifo_inst/wptr [0]),
+	.I1(\fifo_inst/rptr [0]),
+	.I2(\fifo_inst/wptr [1]),
+	.I3(\fifo_inst/rbin_num [1]),
 	.F(\fifo_inst/rempty_val )
 );
-defparam \fifo_inst/rempty_val_s3 .INIT=16'h4221;
+defparam \fifo_inst/rempty_val_s3 .INIT=16'h9009;
 LUT4 \fifo_inst/wfull_val_s3  (
 	.I0(\fifo_inst/wptr [0]),
 	.I1(\fifo_inst/wptr [1]),
@@ -133,8 +131,8 @@ LUT3 \fifo_inst/wfull_val1_s9  (
 );
 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 ),
+	.I0(\fifo_inst/wfull_val1_0 ),
+	.I1(\fifo_inst/wfull_val_7 ),
 	.I2(\fifo_inst/reset_w [1]),
 	.F(\fifo_inst/wfull_val1_0 )
 );
@@ -147,47 +145,48 @@ LUT3 \fifo_inst/Full_d_s  (
 );
 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 ),
+	.I0(\fifo_inst/Full_1 ),
+	.I1(\fifo_inst/wfull_val_7 ),
 	.I2(\fifo_inst/reset_w [1]),
 	.F(\fifo_inst/Full_1 )
 );
 defparam \fifo_inst/Full_s8 .INIT=8'h0E;
-LUT3 \fifo_inst/rbin_num_next_0_s5  (
-	.I0(Empty),
-	.I1(RdEn),
-	.I2(\fifo_inst/rbin_num [0]),
-	.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]),
-	.F(\fifo_inst/rbin_num_next [1])
-);
-defparam \fifo_inst/rbin_num_next_1_s2 .INIT=8'hB4;
 LUT2 \fifo_inst/Equal.wbinnext_0_s3  (
-	.I0(\fifo_inst/Equal.wbin [0]),
-	.I1(\fifo_inst/n20_5 ),
-	.F(\fifo_inst/Equal.wbinnext_0_7 )
+	.I0(\fifo_inst/n20_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
+	.F(\fifo_inst/Equal.wbinnext_0_8 )
 );
 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 ),
+	.I0(\fifo_inst/n20_5 ),
+	.I1(\fifo_inst/Equal.wbin [0]),
 	.I2(\fifo_inst/wptr [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 )
+LUT4 \fifo_inst/rbin_num_next_1_s3  (
+	.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_s3 .INIT=16'hBF40;
+LUT3 \fifo_inst/rbin_num_next_0_s4  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_inst/rbin_num [0]),
+	.F(\fifo_inst/rbin_num_next_0_10 )
+);
+defparam \fifo_inst/rbin_num_next_0_s4 .INIT=8'hB4;
+LUT4 \fifo_inst/Equal.rgraynext_0_s1  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_inst/rbin_num [0]),
+	.I3(\fifo_inst/rbin_num [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'h0BF4;
 DFFP \fifo_inst/reset_r_0_s0  (
 	.D(GND),
 	.CLK(\fifo_inst/n4_6 ),
@@ -217,40 +216,12 @@ DFFC \fifo_inst/rbin_num_1_s0  (
 );
 defparam \fifo_inst/rbin_num_1_s0 .INIT=1'b0;
 DFFC \fifo_inst/rbin_num_0_s0  (
-	.D(\fifo_inst/rbin_num_next [0]),
+	.D(\fifo_inst/rbin_num_next_0_10 ),
 	.CLK(RdClk),
 	.CLEAR(\fifo_inst/reset_r [1]),
 	.Q(\fifo_inst/rbin_num [0])
 );
 defparam \fifo_inst/rbin_num_0_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq1_wptr_1_s0  (
-	.D(\fifo_inst/wptr [1]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq1_wptr [1])
-);
-defparam \fifo_inst/Equal.rq1_wptr_1_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq1_wptr_0_s0  (
-	.D(\fifo_inst/wptr [0]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq1_wptr [0])
-);
-defparam \fifo_inst/Equal.rq1_wptr_0_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq2_wptr_1_s0  (
-	.D(\fifo_inst/Equal.rq1_wptr [1]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq2_wptr [1])
-);
-defparam \fifo_inst/Equal.rq2_wptr_1_s0 .INIT=1'b0;
-DFFC \fifo_inst/Equal.rq2_wptr_0_s0  (
-	.D(\fifo_inst/Equal.rq1_wptr [0]),
-	.CLK(RdClk),
-	.CLEAR(\fifo_inst/reset_r [1]),
-	.Q(\fifo_inst/Equal.rq2_wptr [0])
-);
-defparam \fifo_inst/Equal.rq2_wptr_0_s0 .INIT=1'b0;
 DFFC \fifo_inst/rptr_0_s0  (
 	.D(\fifo_inst/Equal.rgraynext [0]),
 	.CLK(RdClk),
@@ -273,16 +244,23 @@ DFFC \fifo_inst/wptr_0_s0  (
 );
 defparam \fifo_inst/wptr_0_s0 .INIT=1'b0;
 DFFC \fifo_inst/Equal.wbin_0_s0  (
-	.D(\fifo_inst/Equal.wbinnext_0_7 ),
+	.D(\fifo_inst/Equal.wbinnext_0_8 ),
 	.CLK(WrClk),
 	.CLEAR(\fifo_inst/reset_w [1]),
 	.Q(\fifo_inst/Equal.wbin [0])
 );
 defparam \fifo_inst/Equal.wbin_0_s0 .INIT=1'b0;
-DFFP \fifo_inst/Empty_s0  (
+DFFP \fifo_inst/rempty_val1_s0  (
 	.D(\fifo_inst/rempty_val ),
 	.CLK(RdClk),
-	.PRESET(\fifo_inst/reset_r [1]),
+	.PRESET(\fifo_inst/n135_3 ),
+	.Q(\fifo_inst/rempty_val1 )
+);
+defparam \fifo_inst/rempty_val1_s0 .INIT=1'b1;
+DFFP \fifo_inst/Empty_s0  (
+	.D(\fifo_inst/rempty_val1 ),
+	.CLK(RdClk),
+	.PRESET(\fifo_inst/n135_3 ),
 	.Q(Empty)
 );
 defparam \fifo_inst/Empty_s0 .INIT=1'b1;
@@ -303,7 +281,7 @@ defparam \fifo_inst/wfull_val1_s0 .INIT=1'b0;
 DFFP \fifo_inst/wfull_val1_s1  (
 	.D(\fifo_inst/wfull_val_7 ),
 	.CLK(WrClk),
-	.PRESET(\fifo_inst/n177_4 ),
+	.PRESET(\fifo_inst/n178_4 ),
 	.Q(\fifo_inst/wfull_val1_3 )
 );
 defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
@@ -317,7 +295,7 @@ 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/n178_4 ),
 	.Q(\fifo_inst/Full_2 )
 );
 defparam \fifo_inst/Full_s1 .INIT=1'b1;
@@ -326,14 +304,14 @@ SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s  (
 	.CEA(\fifo_inst/n20_5 ),
 	.RESETA(GND),
 	.CLKB(RdClk),
-	.CEB(\fifo_inst/n26_4 ),
+	.CEB(\fifo_inst/n24_3 ),
 	.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}),
+	.ADB({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num [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;

+ 13 - 13
src/src/WrapFifoChain/FifoShiftReg/FifoShiftReg_tmp.v

@@ -1,24 +1,24 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
 //File Title: Template file for instantiation
-//Tool Version: V1.9.9.02
+//Tool Version: V1.9.11.02 (64-bit)
 //Part Number: GW1N-LV9PG256C6/I5
-//Device: GW1N-
-//Created Time: Thu Apr 25 16:08:18 2024
+//Device: GW1N-9
+//Created Time: Thu Jun 26 12:23:20 2025
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------
 
 	FifoShiftReg your_instance_name(
-		.Data(Data_i), //input [7:0] Data
-		.Reset(Reset_i), //input Reset
-		.WrClk(WrClk_i), //input WrClk
-		.RdClk(RdClk_i), //input RdClk
-		.WrEn(WrEn_i), //input WrEn
-		.RdEn(RdEn_i), //input RdEn
-		.Q(Q_o), //output [7:0] Q
-		.Empty(Empty_o), //output Empty
-		.Full(Full_o) //output Full
+		.Data(Data), //input [7: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 [7:0] Q
+		.Empty(Empty), //output Empty
+		.Full(Full) //output Full
 	);
 
 //--------Copy end-------------------

+ 6 - 4
src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FIFOHS.prj

@@ -4,17 +4,19 @@
     <Version>beta</Version>
     <Device id="GW1N-9" package="PBGA256" speed="6" partNumber="GW1N-LV9PG256C6/I5"/>
     <FileList>
-        <File path="C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v" type="verilog"/>
-        <File path="C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v" type="verilog"/>
+        <File path="C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v" type="verilog"/>
+        <File path="C:/Gowin/Gowin_V1.9.11.02_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.02_x64/IDE/ipcore/FIFO_HS/data"/>
-        <Option type="include_path" value="C:/Projects/QuestaProjects/main_tb/fifo_hs/FifoShiftReg/temp/FIFOHS"/>
+        <Option type="include_path" value="C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data"/>
+        <Option type="include_path" value="C:/Gowin/Projects/SB_TMSG44V1_FPGA/src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS"/>
         <Option type="output_file" value="FifoShiftReg.vg"/>
         <Option type="output_template" value="FifoShiftReg_tmp.v"/>
         <Option type="ram_balance" value="1"/>
         <Option type="ram_rw_check" value="1"/>
+        <Option type="vcc" value="1.2"/>
+        <Option type="vccx" value="3.3"/>
         <Option type="verilog_language" value="sysv-2017"/>
     </OptionList>
 </Project>

+ 32 - 23
src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FifoShiftReg.log

@@ -1,19 +1,28 @@
 GowinSynthesis start
 Running parser ...
-Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'
-Analyzing included file '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Back to file '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Undeclared symbol '**', assumed default net type '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'
-Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
-Back to file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
-Analyzing included file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
-Back to file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
-Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
-Back to file 'C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
-Compiling module 'FifoShiftReg'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":4)
-Compiling module '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
-Extracting RAM for identifier '**'("C:\Gowin\Gowin_V1.9.9.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Undeclared symbol 'Reset', assumed default net type 'wire'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Undeclared symbol 'RPReset', assumed default net type 'wire'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'
+Analyzing included file 'fifo_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":1)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":2)
+Analyzing included file 'fifo_parameter.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
+Back to file 'C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":57)
+Compiling module 'FifoShiftReg'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs_top.v":4)
+Compiling module '**'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+Extracting RAM for identifier '**'("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
 NOTE  (EX0101) : Current top module is "FifoShiftReg"
 [5%] Running netlist conversion ...
 Running device independent optimization ...
@@ -29,17 +38,17 @@ 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.02_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.02_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.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "wfull_val1"("C:\Gowin\Gowin_V1.9.11.02_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.02_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.02_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.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_x64\IDE\ipcore\FIFO_HS\data\fifo_hs.v":15293)
+WARN  (AG0100) : Find logical loop signal : "Full"("C:\Gowin\Gowin_V1.9.11.02_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:\Projects\QuestaProjects\main_tb\fifo_hs\FifoShiftReg\temp\FIFOHS\FifoShiftReg.vg" completed
-Generate template file "C:\Projects\QuestaProjects\main_tb\fifo_hs\FifoShiftReg\temp\FIFOHS\FifoShiftReg_tmp.v" completed
-[100%] Generate report file "C:\Projects\QuestaProjects\main_tb\fifo_hs\FifoShiftReg\temp\FIFOHS\FifoShiftReg_syn.rpt.html" completed
+[95%] Generate netlist file "C:\Gowin\Projects\SB_TMSG44V1_FPGA\src\src\WrapFifoChain\FifoShiftReg\temp\FIFOHS\FifoShiftReg.vg" completed
+Generate template file "C:\Gowin\Projects\SB_TMSG44V1_FPGA\src\src\WrapFifoChain\FifoShiftReg\temp\FIFOHS\FifoShiftReg_tmp.v" completed
+[100%] Generate report file "C:\Gowin\Projects\SB_TMSG44V1_FPGA\src\src\WrapFifoChain\FifoShiftReg\temp\FIFOHS\FifoShiftReg_syn.rpt.html" completed
 GowinSynthesis finish

+ 113 - 123
src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FifoShiftReg.vg

@@ -1,11 +1,11 @@
 //
 //Written by GowinSynthesis
-//Tool Version "V1.9.9.02"
-//Thu Apr 25 16:08:18 2024
+//Tool Version "V1.9.11.02 (64-bit)"
+//Thu Jun 26 12:23:20 2025
 
 //Source file index table:
-//file0 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
-//file1 "\C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+//file0 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
 `timescale 100 ps/100 ps
 `pragma protect begin_protected
 `pragma protect version="2.3"
@@ -17,130 +17,120 @@
 `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
-rE66WtNKtc22HlKA/X4eJurtJEnvZemh7Zi9pohq7hHdYu15Y21d8CKvWJizh8HxY9I0OT+eTJYe
-eqAmDwscz3d6gWPx0ty1wAovCUkRxoMRBOBCmiJBj1FAq23KXlKei5tCXIQQG+7uAA9Mz6Jr+6hd
-+siV1FTOW4hlWZSMlHvcc5M3QH2IpgONxuKpGtgigAjcxFHeL61jOKWUafSHFW6bf8j2J5rsbwqY
-ArJzg7FAyvR/3aNkWyNra/6lK47Ld15z5DXOp6Qw4yowJyzNpUIg7BGTwuT5hvVdE8HU5+LAGBLC
-8DM4h8FNMqFHubE/tetwFYOqKFxGclYw1Xqrhw==
+cmKgCo6fl4yQ2daLlTEWjlhIxL+cA+gLe2lZZKzdOibLuR2nTfuVFWjCEwTh13nKYXD2E4QQIKnU
+CgcZ63ka3W0fX8FDJliq5hS84GB/V4uX5isGQ3HQR8lU0cUGT1+2BNIgZP5xRrupuGV015dOS6pk
+8eq1CfA4bEzcv43TsfOVPVn57dyX8YDzui1OAcbghOU36J+oNd8SMTZja0oNucAm66qjYGWyuw0x
+2qPn1Bh9TILELT6drK50uiV+QqRfK/4noLg1AskmjWMyuYAyqw9NLSxsYSSTBRo+rj6cekwvE33T
+HIh3VFyc2t5fnAnrVhmzNZEMicj1U34soUinRQ==
 
-`pragma protect encoding=(enctype="base64", line_length=76, bytes=6400)
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=5840)
 `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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
-BrWHDjSsnheYikR4eooDlA==
+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
+BfEUBlASDwCIOUXz90zB1rtT+awvNQfLQ0k=
 `pragma protect end_protected
 module FifoShiftReg (
   Data,

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 46 - 43
src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FifoShiftReg_syn.rpt.html


+ 2 - 2
src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FifoShiftReg_syn_resource.html

@@ -30,8 +30,8 @@ table td.label { width: 20%; white-space: nowrap; min-width: 20px; background-co
 <th class="label">ROM16 NUMBER</th>
 </tr>
 <tr>
-<td class="label">FifoShiftReg (C:/Gowin/Gowin_V1.9.9.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
-<td align = "center">19</td>
+<td class="label">FifoShiftReg (C:/Gowin/Gowin_V1.9.11.02_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v)</td>
+<td align = "center">16</td>
 <td align = "center">-</td>
 <td align = "center">18</td>
 <td align = "center">-</td>

+ 1 - 1
src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FifoShiftReg_syn_rsc.xml

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

+ 13 - 13
src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/FifoShiftReg_tmp.v

@@ -1,24 +1,24 @@
-//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//Copyright (C)2014-2025 Gowin Semiconductor Corporation.
 //All rights reserved.
 //File Title: Template file for instantiation
-//Tool Version: V1.9.9.02
+//Tool Version: V1.9.11.02 (64-bit)
 //Part Number: GW1N-LV9PG256C6/I5
-//Device: GW1N-
-//Created Time: Thu Apr 25 16:08:18 2024
+//Device: GW1N-9
+//Created Time: Thu Jun 26 12:23:20 2025
 
 //Change the instance name and port connections to the signal names
 //--------Copy here to design--------
 
 	FifoShiftReg your_instance_name(
-		.Data(Data_i), //input [7:0] Data
-		.Reset(Reset_i), //input Reset
-		.WrClk(WrClk_i), //input WrClk
-		.RdClk(RdClk_i), //input RdClk
-		.WrEn(WrEn_i), //input WrEn
-		.RdEn(RdEn_i), //input RdEn
-		.Q(Q_o), //output [7:0] Q
-		.Empty(Empty_o), //output Empty
-		.Full(Full_o) //output Full
+		.Data(Data), //input [7: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 [7:0] Q
+		.Empty(Empty), //output Empty
+		.Full(Full) //output Full
 	);
 
 //--------Copy end-------------------

+ 0 - 1
src/src/WrapFifoChain/FifoShiftReg/temp/FIFOHS/fifo_define.v

@@ -1,5 +1,4 @@
 `define module_name FifoShiftReg
 `define EBR_BASED
-`define FWFT
 `define En_Reset
 `define Reset_Synchronization