Anatoliy Chigirinskiy 1 rok pred
commit
e3495a1d9f
91 zmenil súbory, kde vykonal 15301 pridanie a 0 odobranie
  1. 57 0
      src/src/ClkGen/ClkGen.v
  2. 12 0
      src/src/ClkGen/GowinClkDiv3dot5/GowinClkDiv3dot5.ipc
  3. 14 0
      src/src/ClkGen/GowinClkDiv3dot5/GowinClkDiv3dot5.mod
  4. 29 0
      src/src/ClkGen/GowinClkDiv3dot5/GowinClkDiv3dot5.v
  5. 18 0
      src/src/ClkGen/GowinClkDiv3dot5/GowinClkDiv3dot5_tmp.v
  6. 14 0
      src/src/ClkGen/GowinInternalOsc25MHz/GowinInternalOsc25MHz.ipc
  7. 14 0
      src/src/ClkGen/GowinInternalOsc25MHz/GowinInternalOsc25MHz.mod
  8. 20 0
      src/src/ClkGen/GowinInternalOsc25MHz/GowinInternalOsc25MHz.v
  9. 16 0
      src/src/ClkGen/GowinInternalOsc25MHz/GowinInternalOsc25MHz_tmp.v
  10. 24 0
      src/src/ClkGen/GowinPllFirst/GowinPllFirst.ipc
  11. 33 0
      src/src/ClkGen/GowinPllFirst/GowinPllFirst.mod
  12. 63 0
      src/src/ClkGen/GowinPllFirst/GowinPllFirst.v
  13. 18 0
      src/src/ClkGen/GowinPllFirst/GowinPllFirst_tmp.v
  14. 104 0
      src/src/InitRst/InitRst.v
  15. 416 0
      src/src/InterfaceArbiter/InterfaceArbiter.v
  16. 141 0
      src/src/PacketAnalyzer1Mosi/PacketAnalyzer1Mosi.v
  17. 196 0
      src/src/PacketAnalyzer4Mosi/PacketAnalyzer4Mosi.v
  18. 1219 0
      src/src/Top/ExtQspiMEmul.v
  19. 536 0
      src/src/Top/ExtSpiMEmul.v
  20. 180 0
      src/src/Top/TopBochV3.v
  21. 497 0
      src/src/Top/TopBochV3Tb.sv
  22. 25 0
      src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444.ipc
  23. 213 0
      src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444.v
  24. 465 0
      src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444.vo
  25. 23 0
      src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444_tmp.v
  26. 20 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/FIFO_SC.prj
  27. 42 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/FifoCtrlCp2444.log
  28. 213 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/FifoCtrlCp2444.vg
  29. 1567 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/FifoCtrlCp2444_syn.rpt.html
  30. 46 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/FifoCtrlCp2444_syn_resource.html
  31. 2 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/FifoCtrlCp2444_syn_rsc.xml
  32. 23 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/FifoCtrlCp2444_tmp.v
  33. 4 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/fifo_sc_hs_define.v
  34. 3 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/fifo_sc_hs_parameter.v
  35. 1 0
      src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/project.ini
  36. 35 0
      src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes.ipc
  37. 187 0
      src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes.v
  38. 353 0
      src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes.vo
  39. 24 0
      src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes_tmp.v
  40. 20 0
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FIFOHS.prj
  41. 45 0
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes.log
  42. 187 0
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes.vg
  43. 1300 0
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_syn.rpt.html
  44. 46 0
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_syn_resource.html
  45. 2 0
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_syn_rsc.xml
  46. 24 0
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_tmp.v
  47. 5 0
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/fifo_define.v
  48. 6 0
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/fifo_parameter.v
  49. 1 0
      src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/project.ini
  50. 35 0
      src/src/WrapFifoChain/FifoTfe4Bytes/FifoTfe4Bytes.ipc
  51. 186 0
      src/src/WrapFifoChain/FifoTfe4Bytes/FifoTfe4Bytes.v
  52. 352 0
      src/src/WrapFifoChain/FifoTfe4Bytes/FifoTfe4Bytes.vo
  53. 24 0
      src/src/WrapFifoChain/FifoTfe4Bytes/FifoTfe4Bytes_tmp.v
  54. 20 0
      src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/FIFOHS.prj
  55. 45 0
      src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/FifoTfe4Bytes.log
  56. 186 0
      src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/FifoTfe4Bytes.vg
  57. 1300 0
      src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/FifoTfe4Bytes_syn.rpt.html
  58. 46 0
      src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/FifoTfe4Bytes_syn_resource.html
  59. 2 0
      src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/FifoTfe4Bytes_syn_rsc.xml
  60. 24 0
      src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/FifoTfe4Bytes_tmp.v
  61. 5 0
      src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/fifo_define.v
  62. 6 0
      src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/fifo_parameter.v
  63. 1 0
      src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/project.ini
  64. 35 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/FifoTfe6Bytes.ipc
  65. 201 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/FifoTfe6Bytes.v
  66. 374 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/FifoTfe6Bytes.vo
  67. 24 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/FifoTfe6Bytes_tmp.v
  68. 20 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FIFOHS.prj
  69. 45 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FifoTfe6Bytes.log
  70. 201 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FifoTfe6Bytes.vg
  71. 1300 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FifoTfe6Bytes_syn.rpt.html
  72. 46 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FifoTfe6Bytes_syn_resource.html
  73. 2 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FifoTfe6Bytes_syn_rsc.xml
  74. 24 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FifoTfe6Bytes_tmp.v
  75. 5 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/fifo_define.v
  76. 6 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/fifo_parameter.v
  77. 1 0
      src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/project.ini
  78. 35 0
      src/src/WrapFifoChain/FifoTfe7Bytes/FifoTfe7Bytes.ipc
  79. 200 0
      src/src/WrapFifoChain/FifoTfe7Bytes/FifoTfe7Bytes.v
  80. 374 0
      src/src/WrapFifoChain/FifoTfe7Bytes/FifoTfe7Bytes.vo
  81. 24 0
      src/src/WrapFifoChain/FifoTfe7Bytes/FifoTfe7Bytes_tmp.v
  82. 20 0
      src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/FIFOHS.prj
  83. 45 0
      src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/FifoTfe7Bytes.log
  84. 200 0
      src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/FifoTfe7Bytes.vg
  85. 1300 0
      src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/FifoTfe7Bytes_syn.rpt.html
  86. 46 0
      src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/FifoTfe7Bytes_syn_resource.html
  87. 2 0
      src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/FifoTfe7Bytes_syn_rsc.xml
  88. 24 0
      src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/FifoTfe7Bytes_tmp.v
  89. 5 0
      src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/fifo_define.v
  90. 6 0
      src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/fifo_parameter.v
  91. 1 0
      src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/project.ini

+ 57 - 0
src/src/ClkGen/ClkGen.v

@@ -0,0 +1,57 @@
+////////////////////////////////////////////////////////////////////////////////////////////
+// Company:			TAIR
+// Engineer:		Zaytsev Mikhail
+// 
+// Create Date:		23/04/2024 
+// Design Name: 
+// Module Name:		ClkGen 
+// Project Name:	BOCHV3_FPGA
+// Target Devices:	Board: BOCHV3. FPGA: GW1N-UV9QN88C6/I5
+// Tool versions:					
+// Dependencies:	
+// Revision: 
+// Revision 1.0 - File Created
+// Additional Comments: 
+//
+////////////////////////////////////////////////////////////////////////////////////////////
+module ClkGen (
+	output Clk60Mhz_o,
+	output Clk25Mhz_o
+);
+
+//==========================================
+// Wires
+//==========================================
+wire clk25Mhz;
+wire clk210Mhz;
+wire clk60Mhz;
+
+wire lockFirstPll;
+
+//==========================================
+// Assignments
+//==========================================
+assign Clk25Mhz_o = clk25Mhz;
+//==========================================================================//
+//									CODING									//
+//==========================================================================//
+GowinInternalOsc25MHZ GowinInternalOsc25MHZ
+(
+	.oscout(clk25Mhz)
+); 
+
+GowinPllFirst GowinPllFirst
+(
+	.clkin(clk25Mhz),
+	.lock(lockFirstPll),
+	.clkout(clk210Mhz)
+);
+
+GowinClkDiv3dot5 GowinClkDiv210MhzTo60Mhz
+(
+	.hclkin(clk210Mhz),
+	.clkout(Clk60Mhz_o),
+	.resetn(lockFirstPll)
+);
+
+endmodule

+ 12 - 0
src/src/ClkGen/GowinClkDiv3dot5/GowinClkDiv3dot5.ipc

@@ -0,0 +1,12 @@
+[General]
+ipc_version=4
+file=GowinClkDiv3dot5
+module=GowinClkDiv3dot5
+target_device=gw1n9-022
+type=clock_clkdiv
+version=1.0
+
+[Config]
+Calibration=false
+Division_Factor=3.5
+Language=0

+ 14 - 0
src/src/ClkGen/GowinClkDiv3dot5/GowinClkDiv3dot5.mod

@@ -0,0 +1,14 @@
+-series GW1N
+-device GW1N-9
+-device_version 
+-package QFN88
+-part_number GW1N-UV9QN88C6/I5
+
+
+-mod_name GowinClkDiv3dot5
+-file_name GowinClkDiv3dot5
+-path C:/Gowin/Projects/BOCHv3_FPGA/src/src/ClkGen/GowinClkDiv3dot5/
+-type CLKDIV
+-file_type vlg
+-division_factor 3.5
+-calib false

+ 29 - 0
src/src/ClkGen/GowinClkDiv3dot5/GowinClkDiv3dot5.v

@@ -0,0 +1,29 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: IP file
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 15:18:20 2024
+
+module GowinClkDiv3dot5 (clkout, hclkin, resetn);
+
+output clkout;
+input hclkin;
+input resetn;
+
+wire gw_gnd;
+
+assign gw_gnd = 1'b0;
+
+CLKDIV clkdiv_inst (
+    .CLKOUT(clkout),
+    .HCLKIN(hclkin),
+    .RESETN(resetn),
+    .CALIB(gw_gnd)
+);
+
+defparam clkdiv_inst.DIV_MODE = "3.5";
+defparam clkdiv_inst.GSREN = "false";
+
+endmodule //GowinClkDiv3dot5

+ 18 - 0
src/src/ClkGen/GowinClkDiv3dot5/GowinClkDiv3dot5_tmp.v

@@ -0,0 +1,18 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Template file for instantiation
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 15:18:20 2024
+
+//Change the instance name and port connections to the signal names
+//--------Copy here to design--------
+
+    GowinClkDiv3dot5 your_instance_name(
+        .clkout(clkout), //output clkout
+        .hclkin(hclkin), //input hclkin
+        .resetn(resetn) //input resetn
+    );
+
+//--------Copy end-------------------

+ 14 - 0
src/src/ClkGen/GowinInternalOsc25MHz/GowinInternalOsc25MHz.ipc

@@ -0,0 +1,14 @@
+[General]
+ipc_version=4
+file=GowinInternalOsc25MHz
+module=GowinInternalOsc25MHz
+target_device=gw1n9-022
+type=clock_osc
+version=3.0
+
+[Config]
+FREQ=10
+LANG=0
+OSCILLATOR_FREQUENCY_210MHz=false
+OSCILLATOR_FREQUENCY_25MHz=false
+REGULATOR_ENABLE=false

+ 14 - 0
src/src/ClkGen/GowinInternalOsc25MHz/GowinInternalOsc25MHz.mod

@@ -0,0 +1,14 @@
+-series GW1N
+-device GW1N-9
+-device_version 
+-package QFN88
+-part_number GW1N-UV9QN88C6/I5
+
+
+-mod_name GowinInternalOsc25MHz
+-file_name GowinInternalOsc25MHz
+-path C:/Gowin/Projects/BOCHv3_FPGA/src/src/ClkGen/GowinInternalOsc25MHz/
+-type OSC
+-file_type vlg
+-dev_type GW1N-9
+-freq_div 10

+ 20 - 0
src/src/ClkGen/GowinInternalOsc25MHz/GowinInternalOsc25MHz.v

@@ -0,0 +1,20 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: IP file
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 17:38:07 2024
+
+module GowinInternalOsc25MHz (oscout);
+
+output oscout;
+
+OSC osc_inst (
+    .OSCOUT(oscout)
+);
+
+defparam osc_inst.FREQ_DIV = 10;
+defparam osc_inst.DEVICE = "GW1N-9";
+
+endmodule //GowinInternalOsc25MHz

+ 16 - 0
src/src/ClkGen/GowinInternalOsc25MHz/GowinInternalOsc25MHz_tmp.v

@@ -0,0 +1,16 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Template file for instantiation
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 17:38:07 2024
+
+//Change the instance name and port connections to the signal names
+//--------Copy here to design--------
+
+    GowinInternalOsc25MHz your_instance_name(
+        .oscout(oscout) //output oscout
+    );
+
+//--------Copy end-------------------

+ 24 - 0
src/src/ClkGen/GowinPllFirst/GowinPllFirst.ipc

@@ -0,0 +1,24 @@
+[General]
+ipc_version=4
+file=GowinPllFirst
+module=GowinPllFirst
+target_device=gw1n9-022
+type=clock_rpll
+version=1.0
+
+[Config]
+CKLOUTD3=false
+CLKFB_SOURCE=0
+CLKIN_FREQ=25
+CLKOUTD=false
+CLKOUTP=false
+CLKOUT_BYPASS=false
+CLKOUT_DIVIDE_DYN=true
+CLKOUT_FREQ=210
+CLKOUT_TOLERANCE=0
+DYNAMIC=true
+LANG=0
+LOCK_EN=true
+MODE_GENERAL=true
+PLL_PWD=false
+RESET_PLL=false

+ 33 - 0
src/src/ClkGen/GowinPllFirst/GowinPllFirst.mod

@@ -0,0 +1,33 @@
+-series GW1N
+-device GW1N-9
+-device_version 
+-package QFN88
+-part_number GW1N-UV9QN88C6/I5
+
+
+-mod_name GowinPllFirst
+-file_name GowinPllFirst
+-path C:/Gowin/Projects/BOCHv3_FPGA/src/src/ClkGen/GowinPllFirst/
+-type PLL
+-rPll true
+-file_type vlg
+-dev_type GW1N-9
+-dyn_idiv_sel false
+-idiv_sel 5
+-dyn_fbdiv_sel false
+-fbdiv_sel 42
+-dyn_odiv_sel false
+-odiv_sel 4
+-dyn_da_en true
+-rst_sig false
+-rst_sig_p false
+-fclkin 25
+-clkfb_sel 0
+-en_lock true
+-clkout_bypass false
+-clkout_ft_dir 1
+-en_clkoutp false
+-clkoutp_bypass false
+-en_clkoutd false
+-clkoutd_bypass false
+-en_clkoutd3 false

+ 63 - 0
src/src/ClkGen/GowinPllFirst/GowinPllFirst.v

@@ -0,0 +1,63 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: IP file
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 15:11:57 2024
+
+module GowinPllFirst (clkout, lock, clkin);
+
+output clkout;
+output lock;
+input clkin;
+
+wire clkoutp_o;
+wire clkoutd_o;
+wire clkoutd3_o;
+wire gw_gnd;
+
+assign gw_gnd = 1'b0;
+
+rPLL rpll_inst (
+    .CLKOUT(clkout),
+    .LOCK(lock),
+    .CLKOUTP(clkoutp_o),
+    .CLKOUTD(clkoutd_o),
+    .CLKOUTD3(clkoutd3_o),
+    .RESET(gw_gnd),
+    .RESET_P(gw_gnd),
+    .CLKIN(clkin),
+    .CLKFB(gw_gnd),
+    .FBDSEL({gw_gnd,gw_gnd,gw_gnd,gw_gnd,gw_gnd,gw_gnd}),
+    .IDSEL({gw_gnd,gw_gnd,gw_gnd,gw_gnd,gw_gnd,gw_gnd}),
+    .ODSEL({gw_gnd,gw_gnd,gw_gnd,gw_gnd,gw_gnd,gw_gnd}),
+    .PSDA({gw_gnd,gw_gnd,gw_gnd,gw_gnd}),
+    .DUTYDA({gw_gnd,gw_gnd,gw_gnd,gw_gnd}),
+    .FDLY({gw_gnd,gw_gnd,gw_gnd,gw_gnd})
+);
+
+defparam rpll_inst.FCLKIN = "25";
+defparam rpll_inst.DYN_IDIV_SEL = "false";
+defparam rpll_inst.IDIV_SEL = 4;
+defparam rpll_inst.DYN_FBDIV_SEL = "false";
+defparam rpll_inst.FBDIV_SEL = 41;
+defparam rpll_inst.DYN_ODIV_SEL = "false";
+defparam rpll_inst.ODIV_SEL = 4;
+defparam rpll_inst.PSDA_SEL = "0000";
+defparam rpll_inst.DYN_DA_EN = "true";
+defparam rpll_inst.DUTYDA_SEL = "1000";
+defparam rpll_inst.CLKOUT_FT_DIR = 1'b1;
+defparam rpll_inst.CLKOUTP_FT_DIR = 1'b1;
+defparam rpll_inst.CLKOUT_DLY_STEP = 0;
+defparam rpll_inst.CLKOUTP_DLY_STEP = 0;
+defparam rpll_inst.CLKFB_SEL = "internal";
+defparam rpll_inst.CLKOUT_BYPASS = "false";
+defparam rpll_inst.CLKOUTP_BYPASS = "false";
+defparam rpll_inst.CLKOUTD_BYPASS = "false";
+defparam rpll_inst.DYN_SDIV_SEL = 2;
+defparam rpll_inst.CLKOUTD_SRC = "CLKOUT";
+defparam rpll_inst.CLKOUTD3_SRC = "CLKOUT";
+defparam rpll_inst.DEVICE = "GW1N-9";
+
+endmodule //GowinPllFirst

+ 18 - 0
src/src/ClkGen/GowinPllFirst/GowinPllFirst_tmp.v

@@ -0,0 +1,18 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Template file for instantiation
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 15:11:57 2024
+
+//Change the instance name and port connections to the signal names
+//--------Copy here to design--------
+
+    GowinPllFirst your_instance_name(
+        .clkout(clkout), //output clkout
+        .lock(lock), //output lock
+        .clkin(clkin) //input clkin
+    );
+
+//--------Copy end-------------------

+ 104 - 0
src/src/InitRst/InitRst.v

@@ -0,0 +1,104 @@
+module InitRst (
+    clk_i,
+    signal_o
+);
+
+//================================================================================
+//
+//  FUNCTIONS
+//
+//================================================================================
+
+    function integer bit_num;
+        input integer value;
+        begin
+            bit_num = 0;
+            while (value > 0) begin
+                value   = value >> 1;
+                bit_num = bit_num + 1;
+            end
+        end
+    endfunction
+
+//================================================================================
+//
+//  PARAMETER/LOCALPARAM
+//
+//================================================================================
+
+    parameter   DELAY_VALUE     = 12000;
+    localparam  DELAY_CNT_W     = bit_num(DELAY_VALUE);
+
+//================================================================================
+//
+//  PORTS
+//
+//================================================================================
+
+    input           clk_i;
+    output  reg     signal_o;
+
+//================================================================================
+//
+//  STATE MACHINE STATES
+//
+//================================================================================
+
+    localparam      SM_RST_S    = 1'b0;
+    localparam      SM_DONE_S   = 1'b1;
+
+//================================================================================
+//
+//  REG/WIRE
+//
+//================================================================================
+
+    reg                         curr_state  = SM_RST_S;
+    reg     [DELAY_CNT_W-1:0]   delay_cnt   = {DELAY_CNT_W{1'b0}};
+    reg                         delay_flag  = 1'b0;
+
+    reg                         next_state;
+    reg     [DELAY_CNT_W-1:0]   delay_cnt_next	=	{DELAY_CNT_W{1'b0}};
+    reg                         signal_next;
+
+//================================================================================
+//
+//  CODING
+//
+//================================================================================
+
+initial begin
+    curr_state  = SM_RST_S;
+    delay_cnt   = {DELAY_CNT_W{1'b0}};
+    signal_o    = 1'b1;
+    delay_flag  = 1'b0;
+end
+
+always @(posedge clk_i) begin
+    curr_state  <= next_state;
+    delay_cnt   <= delay_cnt_next;
+    signal_o    <= signal_next;
+    delay_flag  <= delay_cnt > (DELAY_VALUE - 1);
+end
+
+always @(*) begin
+    next_state      = SM_RST_S;
+    delay_cnt_next  = delay_cnt;
+    signal_next     = 1'b1;
+    case(curr_state)
+        SM_RST_S    : begin
+            if (delay_flag) begin
+                next_state      = SM_DONE_S;
+            end else begin
+                next_state      = SM_RST_S;
+                delay_cnt_next  = delay_cnt + {{(DELAY_CNT_W-1){1'b0}}, 1'b1};
+            end
+        end
+        SM_DONE_S   : begin
+            signal_next = 1'b0;
+            next_state  = SM_DONE_S;
+        end
+    endcase
+end
+
+endmodule

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

@@ -0,0 +1,416 @@
+`timescale 1ns / 1ps
+
+//////////////////////////////////////////////////////////////////////////////////
+// Company: Tair
+// Engineer: Churbanov S.
+// 
+// Create Date:     
+// Design Name: 
+// Module Name:    InterfaceArbiter
+// Project Name: 
+// Target Devices: 
+// Tool versions: 
+// Description: 
+//
+// Dependencies: 
+//
+// Revision: 
+// Revision 0.01 - File Created
+// Additional Comments: 
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+module InterfaceArbiter 
+#(	
+	parameter OUTWORDWIDTH = 24,
+	parameter SSPIWORDWIDTH = 24,
+	parameter QSPIWORDWIDTH = SSPIWORDWIDTH/4
+)
+(
+	input Rst_i,
+	input Clk_i,
+	
+	input Sck_i,
+	input Ss_i,
+	input SsFlash_i,
+	
+	input Mosi0_i,
+	input Mosi1_i,
+	input Mosi2_i,
+	input Mosi3_i,
+
+	input DirectFlagFlash_i,
+	
+	
+	output DataVal_o,
+	output reg TestTrig_o,
+	output [OUTWORDWIDTH-1:0] Data_o
+);
+
+//================================================================================
+//  REG/WIRE
+
+	localparam [1:0] IDLE = 0;
+	localparam [1:0] DATARX = 1;
+	
+	reg [OUTWORDWIDTH-1:0] dataRegSSpi;
+	reg [OUTWORDWIDTH-1:0] dataRegQSpi;
+	
+	reg [OUTWORDWIDTH-1:0] captRegSspi;
+	
+	reg [QSPIWORDWIDTH-1:0] captReg0;
+	reg [QSPIWORDWIDTH-1:0] captReg1;
+	reg [QSPIWORDWIDTH-1:0] captReg2;
+	reg [QSPIWORDWIDTH-1:0] captReg3;
+
+	reg [OUTWORDWIDTH-1:0] captRegSspiR;
+	reg [OUTWORDWIDTH-1:0] captRegSspiRR;
+
+	reg [QSPIWORDWIDTH-1:0] captReg0R;
+	reg [QSPIWORDWIDTH-1:0] captReg0RR;
+	reg [QSPIWORDWIDTH-1:0] captReg1R;
+	reg [QSPIWORDWIDTH-1:0] captReg1RR;
+	reg [QSPIWORDWIDTH-1:0] captReg2R;
+	reg [QSPIWORDWIDTH-1:0] captReg2RR;
+	reg [QSPIWORDWIDTH-1:0] captReg3R;
+	reg [QSPIWORDWIDTH-1:0] captReg3RR;
+
+	reg ssReg;
+	reg ssRegR;
+	reg ssRegRR;
+	
+	reg spiMode;
+	reg qSpiDirectMode;
+	
+	wire ssPos;
+	reg ssPosR;
+	
+	reg dataValReg;
+	
+	reg [OUTWORDWIDTH/4-1:0] ssCnt;
+	reg [15:0] wordsCnt;
+	// wire [OUTWORDWIDTH/4-1:0] ssCntRstThresh = (spiMode) ? QSPIWORDWIDTH-1:SSPIWORDWIDTH-1;
+	
+	reg [15:0] wordsNum;
+	
+	reg [1:0] nextState;
+	reg [1:0] currState;
+	
+	reg rxDone;
+
+	wire plsToggleSyncSignal;
+	reg plsToggle;
+	reg plsToggleSyncA;
+	reg plsToggleSyncB;
+	reg plsToggleSyncC;
+	reg plsToggleSyncSignalR;
+
+	/*Flash signals*/
+	reg plsToggleFlash;
+
+//================================================================================
+//  ASSIGNMENTS
+	assign ssPos = ssRegR & !ssRegRR;
+
+	
+	assign DataVal_o = plsToggleSyncSignalR;
+	assign Data_o = (spiMode)? dataRegQSpi:dataRegSSpi;
+
+	assign plsToggleSyncSignal = plsToggleSyncA^plsToggle;
+
+	//assign ssCntRstThresh = (spiMode) ? QSPIWORDWIDTH-1:SSPIWORDWIDTH-1;
+	
+//================================================================================
+//  CODING
+
+	always @(posedge Clk_i) begin 
+    	if (Rst_i) begin 
+    	    plsToggleSyncA <= 1'b0;
+    	    plsToggleSyncB <= 1'b0;
+    	end
+    	else begin 
+    	    plsToggleSyncA <= plsToggle;
+    	    plsToggleSyncB <= plsToggleSyncA;
+    	end
+	end
+
+	always @(posedge Clk_i) begin 
+	    if (Rst_i) begin 
+	        plsToggleSyncC <= 1'b0;
+	    end
+	    else begin
+	        plsToggleSyncC <= plsToggleSyncB;
+	    end
+	end
+	
+	always @(posedge Ss_i or posedge Rst_i) begin 
+		if (Rst_i) begin 
+			plsToggle <= 1'b0;
+		end
+		else begin 
+			if (Ss_i) begin 
+				plsToggle <= ~plsToggle;
+			end
+			else begin 
+				plsToggle <= plsToggle;
+			end
+		end
+	end
+
+	always @(posedge SsFlash_i or posedge Rst_i) begin 
+		if (Rst_i) begin 
+			plsToggleFlash <= 1'b0;
+		end
+		else begin 
+			if (SsFlash_i) begin 
+				plsToggleFlash <= ~plsToggleFlash;
+			end
+			else begin 
+				plsToggleFlash <= plsToggleFlash;
+			end
+		end
+	end
+
+	always @(posedge Clk_i) begin 
+		if (Rst_i) begin 
+			plsToggleSyncSignalR <= 1'b0;
+		end
+		else begin 
+			plsToggleSyncSignalR <= plsToggleSyncSignal;
+		end
+	end
+
+	always @(posedge Sck_i or posedge Rst_i) begin 
+		if (Rst_i) begin 
+			captRegSspi <= 0;
+
+			captReg0 <= 0;
+			captReg1 <= 0;
+			captReg2 <= 0;
+			captReg3 <= 0;
+		end
+		else begin 
+			if (!Ss_i) begin 
+				captRegSspi <= {captRegSspi[OUTWORDWIDTH-2:0], Mosi0_i};
+				
+				captReg0 <= {captReg0[QSPIWORDWIDTH-2:0], Mosi0_i};
+				captReg1 <= {captReg1[QSPIWORDWIDTH-2:0], Mosi1_i};
+				captReg2 <= {captReg2[QSPIWORDWIDTH-2:0], Mosi2_i};
+				captReg3 <= {captReg3[QSPIWORDWIDTH-2:0], Mosi3_i};
+			end
+		end
+	end
+
+	always @(posedge Clk_i) begin 
+		if (Rst_i) begin 
+			captRegSspiR <= 0;
+			captRegSspiRR <= 0;
+		end
+		else begin 
+			captRegSspiR <= captRegSspi;
+			captRegSspiRR <= captRegSspiR;
+		end
+	end
+
+	always @(posedge Clk_i) begin 
+		if (Rst_i) begin 
+			captReg0R <= 0;
+			captReg0RR <= 0;
+			captReg1R <= 0;
+			captReg1RR <= 0;
+			captReg2R <= 0;
+			captReg2RR <= 0;
+			captReg3R <= 0;
+			captReg3RR <= 0;
+		end
+		else begin 
+			captReg0R <= captReg0;
+			captReg0RR <= captReg0R;
+			captReg1R <= captReg1;
+			captReg1RR <= captReg1R;
+			captReg2R <= captReg2;
+			captReg2RR <= captReg2R;
+			captReg3R <= captReg3;
+			captReg3RR <= captReg3R;
+		end
+	end
+
+	always @(*) begin
+		if (currState == IDLE && (Data_o[11]& Data_o[8])) begin
+			TestTrig_o = 1'b1;
+		end
+		else begin
+			TestTrig_o = 1'b0;
+		end
+	end
+
+	always @(posedge Sck_i or posedge Rst_i) begin 
+		if (Rst_i) begin 
+			ssCnt <= 0;
+		end
+		else begin 
+			if (currState == IDLE) begin
+				if (!Ss_i) begin 
+					ssCnt <= ssCnt+1; 
+				end
+			end else begin
+				ssCnt <= 0;
+			end
+		end
+	end
+
+	always @(posedge Clk_i) begin
+		if (!Rst_i) begin
+			if (currState == DATARX) begin
+				if (plsToggleSyncSignal) begin
+					if (wordsCnt == wordsNum-1) begin
+						wordsCnt <= 0;
+						rxDone <= 1'b1;
+					end else begin
+						wordsCnt <= wordsCnt+1;
+						rxDone <= 1'b0;
+					end
+				end
+			end else begin
+				wordsCnt <= 0;
+				rxDone <= 1'b0;
+			end
+		end else begin
+			wordsCnt <= 0;
+			rxDone <= 1'b0;
+		end
+	end
+	
+	always @(posedge Sck_i or posedge Rst_i) begin 
+		if (Rst_i) begin 
+			spiMode <= 1'b0;
+		end
+		else begin
+			if (currState == IDLE) begin 
+				if (ssCnt == 1) begin 
+					if (captRegSspi[0]) begin 
+						spiMode <= 1'b1; 
+					end 
+					else begin 
+						spiMode <= 1'b0; 
+					end
+				end
+			end
+		end
+	end
+
+	always @(posedge Sck_i or posedge Rst_i) begin 
+		if (Rst_i) begin 
+			qSpiDirectMode <= 1'b0;
+		end
+		else begin 
+			if (currState == IDLE) begin 
+				if (ssCnt == 2) begin 
+					if (captRegSspi[1:0] == 2'b11) begin 
+						qSpiDirectMode <= 1'b1; 
+					end 
+					else begin 
+						qSpiDirectMode <= 1'b0; 
+					end
+				end
+			end
+		end
+	end
+
+	always @(posedge Clk_i) begin
+		if (!Rst_i) begin
+			if (currState == IDLE) begin
+				if (!spiMode) begin
+					wordsNum <= dataRegSSpi[16:1];
+				end else begin
+					if (!qSpiDirectMode) begin
+						wordsNum <= dataRegQSpi[21:19]+dataRegQSpi[17:16]+dataRegQSpi[15:12]+dataRegQSpi[10:9]+dataRegQSpi[7:6]+dataRegQSpi[4:3]+dataRegQSpi[2]+dataRegQSpi[1];
+					end else begin
+						wordsNum <= dataRegQSpi[16:1];
+					end
+				end 
+			end
+		end else begin
+			wordsNum <= 0;
+		end
+	end 
+	
+	always @(posedge Clk_i) begin
+		if (!Rst_i) begin
+			ssReg <= Ss_i;
+			ssRegR <= ssReg;
+			ssRegRR <= ssRegR;
+			ssPosR <= ssPos;
+		end else begin
+			ssReg <= 1;
+			ssRegR <= 1;
+			ssRegRR <= 1;
+			ssPosR <= 0;
+		end
+	end 
+	
+	always @(posedge Clk_i) begin
+		if (!Rst_i) begin
+			if (plsToggleSyncSignal) begin
+				dataRegSSpi <= captRegSspi;
+				dataRegQSpi <= {captReg0,captReg1,captReg2,captReg3};
+				dataValReg <= 1'b1;
+			end else begin
+				dataValReg <= 1'b0;
+			end
+		end else begin
+			dataRegSSpi <= 0;
+			dataRegQSpi <= 0;
+			dataValReg <= 0;
+		end
+	end
+
+	always @(posedge Clk_i) begin
+		if (Rst_i) begin
+			currState <= IDLE;
+		end else begin
+			currState <= nextState;
+		end
+	end
+
+	always @(*) begin
+		nextState = IDLE;
+		case(currState)
+		IDLE		:begin
+						if (plsToggleSyncSignalR)	begin
+							nextState = DATARX;
+						end	else begin
+							nextState = IDLE;
+						end
+					end
+
+		DATARX		:begin
+						if (rxDone) begin
+							nextState  = IDLE;
+						end	else begin
+							nextState  = DATARX;
+						end
+					end
+		endcase
+	end
+
+endmodule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 141 - 0
src/src/PacketAnalyzer1Mosi/PacketAnalyzer1Mosi.v

@@ -0,0 +1,141 @@
+////////////////////////////////////////////////////////////////////////////////////////////
+// Company:			TAIR
+// Engineer:		Zaytsev Mikhail
+// 
+// Create Date:		19/04/2024 
+// Design Name: 
+// Module Name:		PacketAnalyzer1Mosi 
+// Project Name:	BOCHV3_FPGA
+// Target Devices:	Board: BOCHV3. FPGA: GW1N-UV9QN88
+// Tool versions:
+// Description:		The module analyzes the data on the DataFromSpi_i[23:0] bus using the 
+// 					ValDataFromSpi_i validity signal.  When a configuration packet is received, 
+// 					data is captured into the two internal registers devId and cntData. 
+// 					Next, the cntData register is decremented with each incoming data parcel 
+// 					until it becomes zero. If the value in the register is equal to zero means 
+// 					that the module is ready to receive the next configuration packet. 
+// 					As long as the value of cntData is not equal to zero at the output of the 
+// 					module is active signal FlagDirect..._o for the device specified in the 
+// 					register devId. The module also has an output signal Busy_o, which signals 
+// 					that the module is in the state of processing data received in 1MOSI mode.
+// Dependencies:	
+// Revision: 
+// Revision 1.0 - File Created
+// Additional Comments: 
+//
+////////////////////////////////////////////////////////////////////////////////////////////
+module PacketAnalyzer1Mosi (
+	input Clk_i,
+	input Rst_i,
+
+	input [23:0] DataFromSpi_i,
+	input ValDataFromSpi_i,
+
+	input BusyMosi4_i,
+
+	output reg FlagDirectLmkA_o,
+	output reg FlagDirectLmkB_o,
+	output reg FlagDirectHubTfe_o,
+	output reg FlagDirectFlash_o,
+
+	output reg Busy_o
+);
+
+//==========================================
+// Registers
+//==========================================
+reg [4:0] devId;
+reg [16:0] cntData;
+
+//==========================================
+// Wires
+//==========================================
+
+//==========================================
+// Parameters
+//==========================================
+localparam DEV_ID_LMKA 						= 5'd0;
+localparam DEV_ID_LMKB 						= 5'd1;
+localparam DEV_ID_CTRL_COLD_PART 			= 5'd2;
+localparam DEV_ID_HUB_TFE 					= 5'd3;
+localparam DEV_ID_FLASH 					= 5'd4;
+
+//==========================================
+// Assignments
+//==========================================
+
+//==========================================================================//
+//									CODING									//
+//==========================================================================//
+always @(posedge Clk_i) begin
+	if(Rst_i || BusyMosi4_i) begin
+		devId 	<= 5'b0;
+		cntData <= 17'b0;
+	end 
+	else if (ValDataFromSpi_i) begin
+		if (cntData == 0) begin 
+			if (DataFromSpi_i[23] == 0) begin
+				cntData <= DataFromSpi_i[17:1];
+				devId 	<= DataFromSpi_i[22:18];
+			end
+			else begin
+				cntData <= 5'b0;
+				devId 	<= 17'b0;
+			end
+		end	
+		else begin
+			cntData <= cntData - 1'b1;	
+		end
+	end
+	else if (cntData == 0) begin
+		devId <= 5'b0;
+	end
+end
+
+always @(posedge Clk_i) begin
+	if (Rst_i) begin
+		FlagDirectLmkA_o 	<= 1'b0;
+		FlagDirectLmkB_o 	<= 1'b0;
+		FlagDirectHubTfe_o <= 1'b0;
+		FlagDirectFlash_o 	<= 1'b0;
+	end
+	else if (cntData != 0) begin
+		case (devId)
+			DEV_ID_LMKA : begin
+				FlagDirectLmkA_o <= 1'b1;
+			end
+			DEV_ID_LMKB : begin
+				FlagDirectLmkB_o <= 1'b1;
+			end
+			DEV_ID_HUB_TFE : begin
+				FlagDirectHubTfe_o <= 1'b1;
+			end
+			DEV_ID_FLASH : begin
+				FlagDirectFlash_o <= 1'b1;
+			end
+			default : begin
+
+			end
+		endcase
+	end
+	else begin
+		FlagDirectLmkA_o 	<= 1'b0;
+		FlagDirectLmkB_o 	<= 1'b0;
+		FlagDirectHubTfe_o <= 1'b0;
+		FlagDirectFlash_o 	<= 1'b0;
+	end
+end
+
+always @(posedge Clk_i) begin
+	if (Rst_i) begin
+		Busy_o <= 1'b0;
+	end
+	else if (cntData != 0) begin
+		Busy_o <= 1'b1;
+	end
+	else begin
+		Busy_o <= 1'b0;
+	end
+end
+
+endmodule

+ 196 - 0
src/src/PacketAnalyzer4Mosi/PacketAnalyzer4Mosi.v

@@ -0,0 +1,196 @@
+////////////////////////////////////////////////////////////////////////////////////////////
+// Company:			TAIR
+// Engineer:		Zaytsev Mikhail
+// 
+// Create Date:		18/04/2024 
+// Design Name: 
+// Module Name:		PacketAnalyzer4Mosi 
+// Project Name:	BOCHV3_FPGA
+// Target Devices:	Board: BOCHV3. FPGA: GW1N-UV9QN88
+// Tool versions:
+// Description:		The module analyzes the input data bus DataFromSpi_i[23:0] by the 
+//					validity signal ValDataFromSpi_i. When a configuration packet is 
+//					received, it is captured into the internal register. Further, each 
+//					incoming data packet decrements the internal configuration register 
+//					until the internal configuration register is zero, which means that 
+//					the module is ready to receive the next configuration packet. Each 
+//					decrement sets the data validity bit for the specific end device. 
+//					The module also has an output signal Busy_o, which signals that 
+//					the module is in the state of processing the data received in 
+//					4MOSI mode for writing to the FIFO.
+//
+// Dependencies:	
+// Revision: 
+// Revision 1.0 - File Created
+// Additional Comments: 
+//
+////////////////////////////////////////////////////////////////////////////////////////////
+module PacketAnalyzer4Mosi (
+	input Clk_i,
+	input Rst_i,
+
+	input [23:0] DataFromSpi_i,
+	input ValDataFromSpi_i,
+
+	input BusyMosi1_i,
+
+	output reg ValCtrlColdPartDataToFifo_o,
+	output reg ValTfe2BytesDataToFifo_o,
+	output reg ValTfe4BytesDataToFifo_o,
+	output reg ValTfe7BytesDataToFifo_o,
+	output reg ValTfe6BytesDataToFifo_o,
+
+
+	output reg Busy_o
+);
+
+//==========================================
+// Registers
+//==========================================
+reg [22:0] dataSpiReg;
+
+//==========================================
+// Wires
+//==========================================
+wire ctrlColdPartOr;
+wire tfe2BytesOr;
+wire tfe4BytesOr;
+wire tfe7BytesOr;
+wire tfe6BytesOr;
+
+wire [4:0] selector;
+
+//==========================================
+// Parameters
+//==========================================
+localparam [22:0] DECREMENT_CTRL_COLD_PART 	= 23'h40000;	//23'b000 0100 0000 0000 0000 0000
+localparam [22:0] DECREMENT_TFE_2_BYTES 	= 23'h20000;	//23'b000 0010 0000 0000 0000 0000
+localparam [22:0] DECREMENT_TFE_4_BYTES 	= 23'h10000;	//23'b000 0001 0000 0000 0000 0000
+localparam [22:0] DECREMENT_TFE_7_BYTES 	= 23'h2000;		//23'b000 0000 0010 0000 0000 0000
+localparam [22:0] DECREMENT_TFE_6_BYTES 	= 23'h800 ;		//23'b000 0000 0000 1000 0000 0000
+
+//==========================================
+// Assignments
+//==========================================
+assign ctrlColdPartOr 	= 	|dataSpiReg[21:18];
+assign tfe2BytesOr 	= 	|dataSpiReg[17];
+assign tfe4BytesOr 	= 	|dataSpiReg[16:15];
+assign tfe7BytesOr 	= 	|dataSpiReg[14:13];
+assign tfe6BytesOr 	= 	|dataSpiReg[12:11];
+
+assign selector = {ctrlColdPartOr, tfe2BytesOr, tfe4BytesOr, tfe7BytesOr, tfe6BytesOr};
+
+//==========================================================================//
+//									CODING									//
+//==========================================================================//
+always @(posedge Clk_i) begin
+	if (Rst_i) begin
+		Busy_o <= 1'b0;
+	end
+	else if (dataSpiReg != 0) begin
+		Busy_o <= 1'b1;
+	end
+	else begin
+		Busy_o <= 1'b0;
+	end
+end
+
+always @(posedge Clk_i) begin
+	if (Rst_i || BusyMosi1_i) begin
+		dataSpiReg <= 23'b0;
+		ValCtrlColdPartDataToFifo_o <= 1'b0;
+		ValTfe2BytesDataToFifo_o <= 1'b0;
+		ValTfe4BytesDataToFifo_o <= 1'b0;
+		ValTfe7BytesDataToFifo_o <= 1'b0;
+		ValTfe6BytesDataToFifo_o <= 1'b0;
+	end
+	else if (ValDataFromSpi_i) begin
+		if ((dataSpiReg == 0) && (DataFromSpi_i[23] == 1'b1)) begin
+			dataSpiReg[22:1] <= DataFromSpi_i[22:1];
+		end
+		else begin
+			casez(selector)
+			5'b1????: begin //CtrlColdPart
+				dataSpiReg <= dataSpiReg - DECREMENT_CTRL_COLD_PART;
+				ValCtrlColdPartDataToFifo_o <= 1'b1;
+			end
+			5'b01???: begin //Tfe2Bytes
+				dataSpiReg <= dataSpiReg - DECREMENT_TFE_2_BYTES;
+				ValTfe2BytesDataToFifo_o <= 1'b1;
+			end
+			5'b001??: begin //Tfe4Bytes
+				dataSpiReg <= dataSpiReg - DECREMENT_TFE_4_BYTES;
+				ValTfe4BytesDataToFifo_o <= 1'b1;
+			end
+			5'b0001?: begin //Tfe7Bytes
+				dataSpiReg <= dataSpiReg - DECREMENT_TFE_7_BYTES;
+				ValTfe7BytesDataToFifo_o <= 1'b1;
+			end
+			5'b00001: begin //Tfe6Bytes
+				dataSpiReg <= dataSpiReg - DECREMENT_TFE_6_BYTES;
+				ValTfe6BytesDataToFifo_o <= 1'b1;
+			end
+			default: begin
+				ValCtrlColdPartDataToFifo_o <= 1'b0;
+				ValTfe2BytesDataToFifo_o <= 1'b0;
+				ValTfe4BytesDataToFifo_o <= 1'b0;
+				ValTfe7BytesDataToFifo_o <= 1'b0;
+				ValTfe6BytesDataToFifo_o <= 1'b0;
+			end
+		endcase
+//=========================DELETE AFTER HARDWARE TEST===========================
+			/*if (lmxOr) begin //LMX
+				dataSpiReg <= dataSpiReg - DECREMENT_LMX;
+				ValLmxDataToFifo_o 		<= 1'b1;
+			end
+			else if (ddsOr) begin //DDS
+				dataSpiReg <= dataSpiReg - DECREMENT_DDS;
+				ValDdsDataToFifo_o 		<= 1'b1;
+			end
+			else if (potOr) begin //POT
+				dataSpiReg <= dataSpiReg - DECREMENT_POT;
+				ValPotDataToFifo_o 		<= 1'b1;
+			end
+			else if (dacOr) begin //DAC
+				dataSpiReg <= dataSpiReg - DECREMENT_DAC;
+				ValDacDataToFifo_o 		<= 1'b1;
+			end
+			else if (attOr) begin
+				dataSpiReg <= dataSpiReg - DECREMENT_ATT;
+				ValAttDataToFifo_o 		<= 1'b1;
+			end
+			else if (shRegOr) begin
+				dataSpiReg <= dataSpiReg - DECREMENT_SH_REG;
+				ValShRegDataToFifo_o 	<= 1'b1;
+			end
+			else if (maxOr) begin
+				dataSpiReg <= dataSpiReg - DECREMENT_MAX;
+				ValMaxDataToFifo_o 		<= 1'b1;
+			end
+			else if (gpioOr) begin
+				dataSpiReg <= dataSpiReg - DECREMENT_GPIO;
+				ValGpioDataToFifo_o 	<= 1'b1;
+			end
+			else begin
+				ValLmxDataToFifo_o 		<= 1'b0;
+				ValDdsDataToFifo_o 		<= 1'b0;
+				ValPotDataToFifo_o 		<= 1'b0;
+				ValDacDataToFifo_o 		<= 1'b0;
+				ValAttDataToFifo_o 		<= 1'b0;
+				ValShRegDataToFifo_o 	<= 1'b0;
+				ValMaxDataToFifo_o 		<= 1'b0;
+				ValGpioDataToFifo_o 	<= 1'b0;
+			end*/
+//=========================DELETE AFTER HARDWARE TEST===========================
+		end
+	end
+	else begin
+		ValCtrlColdPartDataToFifo_o <= 1'b0;
+		ValTfe2BytesDataToFifo_o <= 1'b0;
+		ValTfe4BytesDataToFifo_o <= 1'b0;
+		ValTfe7BytesDataToFifo_o <= 1'b0;
+		ValTfe6BytesDataToFifo_o <= 1'b0;
+	end
+end
+
+endmodule

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1219 - 0
src/src/Top/ExtQspiMEmul.v


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

@@ -0,0 +1,536 @@
+module ExtSpiMEmul (
+    input Clk_i,
+    input Rst_i,
+    input Start_i,
+    input EmptyFlag_i,
+    input ClockPhase_i,
+    input [31:0] SpiData_i,
+    input SelSt_i,
+    input [1:0] WidthSel_i,
+    input  Lag_i,
+    input  Lead_i,
+    input EndianSel_i,
+    input [5:0] Stop_i,
+    input PulsePol_i,
+
+
+    output reg Mosi0_o,
+    output reg Sck_o,
+    output  Ss_o,
+    output reg  Val_o
+);
+
+
+//================================================================================
+//	REG/WIRE
+//================================================================================
+
+    reg startFlag;
+    reg startR;
+    reg [31:0] trCnt;
+    reg valReg;
+    reg valToRxFifo1;
+    reg lineBusy;
+    reg [5:0] ssCnt;
+    reg Ss;
+    reg [31:0]spiDataR;
+    reg oldDataFlag;
+    
+    reg ssR;
+    reg SSR;
+    reg [31:0] mosiReg0;
+    reg [5:0] ssNum;
+    reg [2:0] delayCnt;
+    reg stopFlag;
+    
+    wire ssPol = SelSt_i ? Ss : ~Ss;
+    
+    
+    //================================================================================
+    //  ASSIGNMENTS
+    //================================================================================
+    
+    
+    assign Ss_o = ssPol; 
+    
+    //================================================================================
+    //	CODING
+    //================================================================================
+    
+    always @(*) begin 
+        if (Start_i) begin  
+            Val_o = valReg;
+        end
+        else begin 
+            Val_o = 1'b0;
+        end
+    end
+    
+    
+    always @(*) begin 
+        if (SelSt_i) begin 
+            if (!Ss_o) begin 
+                lineBusy = 1'b1;
+            end
+            else begin 
+                lineBusy = 1'b0;
+            end
+        end
+        else begin 
+            if (Ss_o) begin 
+                lineBusy = 1'b1;
+            end
+            else begin 
+                lineBusy = 1'b0;
+            end
+        end
+    end
+    
+    
+    
+    always @(posedge Clk_i) begin
+        if (valReg) begin  
+            spiDataR <= SpiData_i;
+        end
+    end
+    
+    
+    always @(*) begin 
+        if (Rst_i) begin 
+            oldDataFlag = 1'b0;
+        end
+        else begin 
+            if (spiDataR == SpiData_i && (SpiData_i != 0) || EmptyFlag_i) begin 
+                oldDataFlag = 1'b1;
+            end
+            else begin 
+                oldDataFlag = 1'b0;
+            end
+        end
+    end
+    
+    
+    always @(posedge Clk_i) begin 
+        startR <= Start_i;
+    end
+    
+    always @(*) begin 
+        if (Rst_i) begin 
+            valToRxFifo1 = 1'b0;
+        end
+        else begin 
+            if (Start_i && !startR) begin 
+                valToRxFifo1 = 1'b1;
+            end
+            else begin 
+                valToRxFifo1 = 1'b0;
+            end
+        end
+    end
+    
+    always @(negedge Clk_i) begin 
+        if (Rst_i) begin 
+            delayCnt <= 1'b0;
+        end
+        else begin 
+            if (stopFlag &&delayCnt < Stop_i) begin 
+                delayCnt <= delayCnt + 1'b1;
+            end
+            else begin 
+                delayCnt <= 1'b0;
+            end
+        end
+    end
+    
+    always @(posedge Clk_i) begin 
+        if (Rst_i) begin 
+            stopFlag <= 1'b0;
+        end
+        else begin
+            if (SelSt_i) begin 
+                if (Ss && !ssR) begin 
+                    stopFlag <= 1'b1;
+                end
+                else if ( delayCnt == Stop_i) begin 
+                    stopFlag <= 1'b0;
+                end
+            end
+            else begin 
+                if (!Ss && ssR) begin 
+                    stopFlag <= 1'b1;
+                end
+                else if (delayCnt == Stop_i) begin 
+                    stopFlag <= 1'b0;
+                end
+            end
+        end
+    end
+    
+    
+    
+    
+    always @(*) begin
+        if (SelSt_i) begin 
+            if (PulsePol_i) begin 
+                if (ClockPhase_i) begin
+                    if (Lead_i == 0) begin 
+                        if (!Ss && (ssCnt <= ssNum+Lag_i+Lead_i && ssCnt > Lag_i) ) begin 
+                            Sck_o = ~(~Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                    else begin 
+                        if (!Ss && (ssCnt < ssNum+Lag_i+Lead_i && ssCnt > Lag_i)) begin 
+                            Sck_o = ~(~Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                end
+                else begin
+                    if (Lead_i == 0) begin 
+                        if (!Ss && (ssCnt <= ssNum+Lag_i+Lead_i && ssCnt > Lag_i) ) begin 
+                            Sck_o = ~(Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                    else begin 
+                        if (!Ss && (ssCnt < ssNum + Lag_i + Lead_i && ssCnt > Lag_i)) begin 
+                            Sck_o = ~(Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                end
+            end
+            else begin 
+                if (ClockPhase_i) begin
+                    if (Lead_i == 0) begin  
+                        if (!Ss && (ssCnt <= ssNum+Lag_i+Lead_i && ssCnt > Lag_i) ) begin 
+                            Sck_o = ~(Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                    else begin 
+                        if (!Ss && (ssCnt <ssNum + Lag_i + Lag_i && ssCnt > Lag_i)) begin 
+                            Sck_o = ~(Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                end 
+                else begin
+                    if (Lead_i == 0) begin 
+                        if (!Ss && (ssCnt <= ssNum+Lag_i+Lead_i && ssCnt > Lag_i) ) begin 
+                            Sck_o = ~(~Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                    else begin 
+                        if (!Ss && (ssCnt < ssNum + Lag_i + Lead_i && ssCnt > Lag_i)) begin 
+                            Sck_o = ~(~Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                end
+            end
+        end
+        else begin 
+              if (PulsePol_i) begin 
+                if (ClockPhase_i) begin
+                    if (Lead_i == 0) begin 
+                        if (ssPol && (ssCnt <= ssNum+Lag_i+Lead_i && ssCnt > Lag_i) ) begin 
+                            Sck_o = ~(~Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                    else begin 
+                        if (ssPol && (ssCnt < ssNum+Lag_i+Lead_i && ssCnt > Lag_i)) begin 
+                            Sck_o = ~(~Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                end
+                else begin
+                    if (Lead_i == 0) begin 
+                        if (ssPol && (ssCnt <= ssNum+Lag_i+Lead_i && ssCnt > Lag_i) ) begin 
+                            Sck_o = ~(Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                    else begin 
+                        if (ssPol && (ssCnt < ssNum + Lag_i + Lead_i && ssCnt > Lag_i)) begin 
+                            Sck_o = ~(Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                end
+            end
+            else begin 
+                if (ClockPhase_i) begin
+                    if (Lead_i == 0) begin  
+                        if (ssPol && (ssCnt <= ssNum+Lag_i+Lead_i && ssCnt > Lag_i) ) begin 
+                            Sck_o = ~(Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                    else begin 
+                        if (ssPol && (ssCnt <ssNum + Lag_i + Lag_i && ssCnt > Lag_i)) begin 
+                            Sck_o = ~(Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                end 
+                else begin
+                    if (Lead_i == 0) begin 
+                        if (ssPol && (ssCnt <= ssNum+Lag_i+Lead_i && ssCnt > Lag_i) ) begin 
+                            Sck_o = ~(~Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                    else begin 
+                        if (ssPol && (ssCnt < ssNum + Lag_i + Lead_i && ssCnt > Lag_i)) begin 
+                            Sck_o = ~(~Clk_i);
+                        end
+                        else begin 
+                            Sck_o = 1'b0;
+                        end
+                    end
+                end
+            end
+        end
+            
+    end
+    
+    
+    always @(*) begin
+        if (Rst_i) begin 
+            Mosi0_o = 1'b0;
+        end
+        else begin
+            if (SelSt_i) begin 
+                if (!EndianSel_i) begin 
+                    case (WidthSel_i)  
+                        0 : begin
+                            Mosi0_o = (!Ss&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[7]):1'b0;
+                        end
+                        1 : begin
+                            Mosi0_o = (!Ss&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[15]):1'b0;
+                        end
+                        2 : begin
+                            Mosi0_o = (!Ss&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[23]):1'b0;
+                        end
+                        3 : begin
+                            Mosi0_o = (!Ss&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[31]):1'b0;
+                        end
+                    endcase
+                end
+                else begin 
+                    case (WidthSel_i)  
+                        0 : begin
+                            Mosi0_o = (!Ss&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[0]):1'b0;
+                        end
+                        1 : begin
+                            Mosi0_o = (!Ss&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[0]):1'b0;
+                        end
+                        2 : begin
+                            Mosi0_o = (!Ss&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[0]):1'b0;
+                        end
+                        3 : begin
+                            Mosi0_o = (!Ss&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[0]):1'b0;
+                        end
+                    endcase
+                end
+            end
+            else begin 
+                if (!EndianSel_i) begin 
+                    case (WidthSel_i)  
+                        0 : begin
+                            Mosi0_o = (ssPol&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[7]):1'b0;
+                        end
+                        1 : begin
+                            Mosi0_o = (ssPol&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[15]):1'b0;
+                        end
+                        2 : begin
+                            Mosi0_o = (ssPol&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[23]):1'b0;
+                        end
+                        3 : begin
+                            Mosi0_o = (ssPol&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[31]):1'b0;
+                        end
+                    endcase
+                end
+                else begin 
+                    case (WidthSel_i)  
+                        0 : begin
+                            Mosi0_o = (ssPol&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[0]):1'b0;
+                        end
+                        1 : begin
+                            Mosi0_o = (ssPol&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[0]):1'b0;
+                        end
+                        2 : begin
+                            Mosi0_o = (ssPol&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[0]):1'b0;
+                        end
+                        3 : begin
+                            Mosi0_o = (ssPol&& (ssCnt <= ssNum+Lag_i && ssCnt > Lag_i))? (mosiReg0[0]):1'b0;
+                        end
+                    endcase
+                end
+            end
+        end
+    end
+    
+    
+    
+    always @(posedge Clk_i) begin
+        ssR <= ssPol;
+        SSR <= Ss;
+    end
+    
+    
+    always @(*) begin 
+        if (Rst_i) begin 
+            startFlag = 1'b0;
+        end
+        else begin 
+            if (Start_i && !stopFlag && !EmptyFlag_i) begin 
+                startFlag = 1'b1;
+            end
+            else begin 
+                startFlag = 1'b0;
+            end
+        end
+    end
+    
+    always @(*) begin
+        if (SelSt_i) begin 
+            if (Ss_o && !ssR) begin 
+                valReg = 1'b1;
+            end
+            else begin 
+                valReg = 1'b0;
+            end
+        end
+        else begin 
+            if (!Ss_o&& ssR) begin 
+                valReg = 1'b1;
+            end
+            else begin 
+                valReg = 1'b0;
+            end
+        end
+    end
+    
+    
+    always @(*) begin 
+        if (Rst_i) begin 
+            ssNum = 1'b0;
+        end
+        else begin 
+            case (WidthSel_i) 
+                0 : begin 
+                    ssNum = 8;
+                end
+                1 : begin 
+                    ssNum = 16;
+                end
+                2 : begin 
+                    ssNum = 24;
+                end
+                3 : begin 
+                    ssNum = 32;
+                end
+            endcase
+        end
+    end
+    
+    
+    always @(negedge Clk_i) begin 
+        if (Rst_i) begin 
+            ssCnt <= 1'b0;
+        end
+        else if (ssCnt <= (ssNum+Lag_i+Lead_i)  && startFlag  ) begin 
+            ssCnt <= ssCnt + 1'b1;
+        end
+        else begin
+            if (ssCnt == ssNum-1 || !startFlag) begin 
+                ssCnt <= 1'b0;
+            end
+        end
+    end
+    
+    
+    
+    
+    always @(negedge Clk_i) begin 
+        if (Rst_i) begin 
+            Ss <= 1'b1;
+        end
+        else begin 
+            if (ssCnt <= (ssNum+Lag_i+Lead_i)  && startFlag ) begin 
+                Ss <= 1'b0;
+            end
+            else begin 
+                Ss <= 1'b1;
+            end
+        end
+    end
+    
+    
+    always @(negedge Clk_i) begin 
+        if (Rst_i) begin 
+            mosiReg0 <= SpiData_i[31:0];
+        end
+        else begin
+            if (!EndianSel_i) begin 
+                if (!SSR && (ssCnt > Lag_i && ssCnt < ssNum + Lag_i + Lead_i)) begin
+                    mosiReg0 <= mosiReg0 << 1;
+                end
+                else begin 
+                    mosiReg0 <= SpiData_i[31:0];
+                end
+            end
+            else begin 
+                if (!SSR && (ssCnt > Lag_i && ssCnt < ssNum + Lag_i + Lead_i)) begin
+                    mosiReg0 <= mosiReg0 >> 1;
+                end
+                else begin 
+                    mosiReg0 <= SpiData_i[31:0];
+                end
+            end
+        end
+    end
+    
+    
+    
+    
+    
+    
+    
+    endmodule

+ 180 - 0
src/src/Top/TopBochV3.v

@@ -0,0 +1,180 @@
+module TopBochv3 #(
+    parameter WORDWIDTH = 24,
+    parameter SSPIWORDWIDTH = 24,
+)
+
+input Clk_i,
+input Rst_i,
+
+input Sck_i,
+input Ss_i,
+input SsFlash_i,
+
+input Mosi0_i,
+input Mosi1_io,
+input Mosi2_i,
+input Mosi3_i,
+
+/* LMK_A */
+output LmkAMosi_o,
+output LmkACs_o,
+output LmkASck_o,
+input  LmkAMiso_i,
+/* LMK_B */
+output LmkBMosi_o,
+output LmkBCs_o,
+output LmkBSck_o,
+input  LmkBMiso_i,
+/*  CtrlCp2444v1  */
+output CtrlCp2444v1Mosi0_o,
+output CtrlCp2444v1Mosi1_o,
+output CtrlCp2444v1Mosi2_o,
+output CtrlCp2444v1Mosi3_o,
+output CtrlCp2444v1Cs_o,
+output CtrlCp2444v1CsFlash_o,
+output CtrlCp2444v1Sck_o,
+output CtrlCp2444v1Rst_o,
+input  CtrlCp2444v1Ld_i,
+/*  HUB-1854  */
+output TfeClk_o,
+output TfeMosi_o,
+output TfeCs_o,
+input  TfeMiso_i,
+//***********************************************
+//	                REG/WIRE
+//***********************************************
+wire [23:0] spiData;
+wire spiDataVal;
+
+/* PacketAnalyzer1Mosi Flags */
+wire flagDirectLmkA;
+wire flagDirectLmkB;
+wire flagDirectHubTfe;
+wire flagDirectFlash;
+/* PacketAnalyzer4Mosi Flags */
+wire valCtrlColdPartDataToFifo;
+wire valTfe2BytesDataToFifo;
+wire valTfe4BytesDataToFifo;
+wire valTfe7BytesDataToFifo;
+wire valTfe6BytesDataToFifo;
+/* ClkGen wires */
+wire clk60;
+wire clk25;
+/* InitRst */
+wire initRst;
+
+//***********************************************
+//	                CODING
+//***********************************************
+
+/* MUX SpiM devices */
+always @(*) begin 
+    if (flagDirectLmkA) begin   // LMK_A
+        LmkAMosi_o = Mosi0_i;
+        LmkACs_o = Ss_i;
+        LmkASck_o = Sck_i;
+    end
+    else begin 
+        LmkAMosi_o = 24'b0;
+        LmkACs_o = 1'b1;
+        LmkASck_o = 1'b0;
+    end
+    if (flagDirectLmkB) begin // LMK_B
+        LmkBMosi_o = Mosi0_i;
+        LmkBCs_o = Ss_i;
+        LmkBSck_o = Sck_i;
+    end
+    else begin 
+        LmkBMosi_o = 24'b0;
+        LmkBCs_o = 1'b1;
+        LmkBSck_o = 1'b0;
+    end
+    if (flagDirectHubTfe) begin // HUB-1854
+        TfeClk_o = Sck_i;
+        TfeMosi_o = Mosi0_i;
+        TfeCs_o = Ss_i;
+    end
+    else begin 
+        TfeClk_o = 1'b0;
+        TfeMosi_o = 24'b0;
+        TfeCs_o = 1'b1;
+    end
+    if (flagDirectFlash) begin // Flash
+        CtrlCp2444v1CsFlash_o = SsFlash_i;
+    end
+    else begin 
+        CtrlCp2444v1CsFlash_o = 1'b1;
+    end
+end
+
+ClkGen ClkGen
+(
+    .Clk60Mhz_o(clk60),
+    .Clk25Mhz_o(clk25)
+);
+
+InitRst InitRst
+(
+    .clk_i(clk25),
+    .signal_o(initRst)
+);
+
+InterfaceArbiter#
+(
+    .OUTWORDWIDTH(WORDWIDTH),
+    .SSPIWORDWIDTH(SSPIWORDWIDTH)
+)
+SpiSlaveArbiter
+(
+    .Rst_i(Rst_i),
+    .Clk_i(Clk_i),
+    .Sck_i(Sck_i),
+    .Ss_i(Ss_i),
+    .SsFlash_i(SsFlash_i),
+    .Mosi0_i(Mosi0_i),
+    .Mosi1_i(Mosi1_io),
+    .Mosi2_i(Mosi2_i),
+    .Mosi3_i(Mosi3_i),
+    .DataVal_o(spiDataVal),
+    .Data_o(spiData)
+);
+
+PacketAnalyzer1Mosi	PacketAnalyzer1Mosi
+(
+	.Clk_i					        (clk60),
+	.Rst_i					        (Rst_i),
+
+	.DataFromSpi_i			        (spiData),
+	.ValDataFromSpi_i		        (spiDataVal),
+
+	.BusyMosi4_i			        (busyMosi4),
+
+	.FlagDirectLmkA_o		        (flagDirectLmkA),
+    .FlagDirectLmkB_o		        (flagDirectLmkB),
+    .FlagDirectHubTfe_o		        (flagDirectHubTfe),
+    .FlagDirectFlash_o		        (flagDirectFlash),
+	
+	.Busy_o					        (busyMosi1)
+);
+
+PacketAnalyzer4Mosi PacketAnalyzer4Mosi
+(
+    .Clk_i					        (clk60),
+    .Rst_i					        (Rst_i),
+    
+    .DataFromSpi_i			        (spiData),
+    .ValDataFromSpi_i		        (spiDataVal),
+    
+    .BusyMosi1_i			        (busyMosi1),
+    
+    .ValCtrlColdPartDataToFifo_o	(valCtrlColdPartDataToFifo),
+    .ValTfe2BytesDataToFifo_o		(valTfe2BytesDataToFifo),
+    .ValTfe4BytesDataToFifo_o		(valTfe4BytesDataToFifo),
+    .ValTfe7BytesDataToFifo_o		(valTfe7BytesDataToFifo),
+    .ValTfe6BytesDataToFifo_o		(valTfe6BytesDataToFifo),
+    
+    .Busy_o					        (busyMosi4)
+);
+
+
+endmodule

+ 497 - 0
src/src/Top/TopBochV3Tb.sv

@@ -0,0 +1,497 @@
+`timescale 1ns/1ns
+
+module TopBochV3Tb;
+
+
+//***********************************************
+//	            INPUTS
+//***********************************************
+    logic Clk_i;
+    logic Clk100;
+    logic Clk200;
+    logic Clk125;
+    logic Clk60;
+    logic Clk20;
+    logic Clk80;
+    logic Clk50;
+    logic Clk24;
+    logic Clk10; 
+    logic Rst_i;
+    logic Start_i;
+    logic CPHA_i;
+    logic [31:0] SPIdata;
+	logic SpiDataVal_i;
+    logic SELST_i;
+    logic [1:0] WidthSel_i;
+    logic LAG_i;
+    logic LEAD_i;
+    logic EndianSel_i;
+    logic [5:0] Stop_i;
+    logic PulsePol_i;
+    logic MisoLdLmx_i;
+
+//***********************************************
+//	            OUTPUTS
+//***********************************************
+    wire Mosi0_o;
+    wire Mosi1_o;
+    wire Mosi2_o;
+    wire Mosi3_o;
+    wire Sck_o;
+    wire Ss_o;
+    wire Val_o;
+    wire anyFlag;
+
+    wire valR;
+    wire valQ;
+    wire SckR;
+    wire SckQ;
+    wire SsR;
+    wire SsQ;
+    wire mosi0R;
+    wire mosi0Q;
+
+    wire locked;
+    wire rstInit;
+
+    logic mosi1Reg;
+
+    logic [16:0] trCnt;
+    logic [4:0] trCntSync;
+
+
+    logic modeSel; 
+    logic [23:0] randData;
+    logic [31:0] randData32;
+    logic [5:0] QSPITotalWordNum;
+    logic [5:0] QSpiBochv3TotalWordNum;
+    logic [5:0] QSpiCtrlCp2444v1TotalWordNum;
+    logic Stop;
+    logic [31:0] stopCnt;
+    logic rstForFPGA;
+
+//***********************************************
+//	            Lines From RF Top
+//***********************************************
+
+    logic [7:0] sckFromRFTop;
+    logic [7:0] mosiFromRFTop;
+    logic [7:0] ssFromRFTop;
+
+
+    logic [23:0] dataFromSPItb;
+    logic        valFromSPItb; 
+
+//***********************************************
+//	            CLASSES
+//***********************************************
+
+class Packet;
+    rand bit [23:0] data;
+    rand bit [31:0] data32;
+endclass
+
+Packet pkt;
+
+//***********************************************
+//	            FUNCTIONS
+//***********************************************
+task automatic Packet::randomize();
+    data = $urandom_range(0, 2**24-1);
+    data32 = $urandom_range(0, 2**32-1);
+endtask
+
+//***********************************************
+//	      HEADERS FOR DEVICES - SB_TMSG
+//***********************************************
+localparam [4:0]  DeviceIdLmx2594 = 5'h0;
+localparam [4:0]  DeviceIdDDS = 5'h1;
+localparam [4:0]  DeviceIdPot = 5'h2;
+localparam [4:0]  DeviceIdDac = 5'h3;
+localparam [4:0]  DeviceIdAtt = 5'h4;
+localparam [4:0]  DeviceIdShReg = 5'h5;
+localparam [4:0]  DeviceIdMax2870 = 5'h6;
+localparam [4:0]  DeviceIdGpio1 = 5'h7;
+localparam [4:0]  DeviceIdTemp = 5'h8;
+localparam [4:0]  DeviceIdGpio2 = 5'h9;
+
+localparam [16:0] Gpio1InitWordNum = 17'd1;
+localparam [16:0] Gpio2InitWordNum = 17'd1;
+localparam [16:0] PotWordInitNum = 17'd1;
+localparam [16:0] DacWordInitNum = 17'd1;
+localparam [16:0] AttWordInitNum = 17'd1;
+localparam [16:0] ShRegWordInitNum = 17'd1;
+localparam [16:0] Lmx2594InitWordNum = 17'd13;
+localparam [16:0] DDSInitWordNum = 17'd7;
+localparam [16:0] MaxInitWordNum = 17'd6;
+localparam [16:0] TempSensWordNum = 17'd1;
+
+localparam [23:0] InitGpio1Header       = {1'h0, DeviceIdGpio1, Gpio1InitWordNum, 1'h1};
+localparam [23:0] InitGpio2Header       = {1'b0, DeviceIdGpio2,Gpio2InitWordNum,1'h1 };
+localparam [23:0] TempSensHeader        = {1'h0, DeviceIdTemp, TempSensWordNum, 1'h1};
+localparam [23:0] InitLMX2594Header     = {1'h0, DeviceIdLmx2594, Lmx2594InitWordNum, 1'h1};
+localparam [23:0] InitDDSHeader         = {1'h0, DeviceIdDDS, DDSInitWordNum, 1'h1};
+localparam [23:0] InitMAX2870Header     = {1'h0, DeviceIdMax2870, MaxInitWordNum, 1'h1};
+localparam [23:0] InitPotHeader         = {1'h0, DeviceIdPot, PotWordInitNum, 1'h1};
+localparam [23:0] InitDacHeader         = {1'h0, DeviceIdDac, DacWordInitNum, 1'h1};
+localparam [23:0] InitAttHeader         = {1'h0, DeviceIdAtt, AttWordInitNum, 1'h1};
+localparam [23:0] InitShRegHeader       = {1'h0, DeviceIdShReg, ShRegWordInitNum, 1'h1};
+
+localparam [3:0]  LMXWordNum = 4'd14;
+localparam [2:0]  DDSWordNum = 3'd4;
+localparam        POTWordNum = 2'd2;
+localparam        DACWordNum = 1'd1;
+localparam        ATTWordNum = 1'd1;
+localparam [1:0]  ShRegWordNum = 2'd1;
+localparam [1:0]  MaxWordNum =   2'd2;
+localparam [1:0]  GPIOWordNum =  2'd1;
+
+//***********************************************
+//	           GPIO 1 REG 
+//***********************************************
+localparam [0:0] RF_SW1 = 1'h0;
+localparam [0:0] RF_SW2 = 1'h0;
+localparam [0:0] CTRL_AM_SW3 = 1'h0;
+localparam [0:0] DDS_SYNC_CTRL_FPGA = 1'h0;
+localparam [0:0] DDS_RESET_FPGA = 1'h0;
+localparam [0:0] DDS_SYNC_FPGA = 1'h0;
+localparam [0:0] SW_CAP4 = 1'h0;
+localparam [0:0] AM_ALC_SW = 1'h0;
+localparam [0:0] SW_CAP3 = 1'h0;
+localparam [0:0] SW_CAP2 = 1'h0;
+localparam [0:0] SW_CAP1 = 1'h0;
+localparam [0:0] AM_ALC_1_FIX = 1'h0;
+localparam [0:0] PLL_VTUNE_CTRL = 1'h0;
+localparam [0:0] PLL_SYNC_CTRL = 1'h0;
+localparam [0:0] PLL_SYNC = 1'h0;
+localparam [0:0] PLL_LOOP_CTRL = 1'h0;
+localparam [0:0] DDS_X2_FPGA = 1'h0;
+localparam [0:0] DDS_SAW2_FPGA = 1'h0;
+localparam [0:0] REF_OFFSET_CTRL_FPGA = 1'h0;
+localparam [0:0] GPIO_ADRF_V1 = 1'h0;
+localparam [0:0] GPIO_ADRF_V2 = 1'h0;
+localparam [0:0] DDS_SAW1_FPGA = 1'h0;
+
+localparam [23:0] GPIO_REG = {DDS_SAW1_FPGA,GPIO_ADRF_V2,GPIO_ADRF_V1,REF_OFFSET_CTRL_FPGA,DDS_SAW2_FPGA,DDS_X2_FPGA,PLL_LOOP_CTRL,PLL_SYNC,PLL_SYNC_CTRL,PLL_VTUNE_CTRL,AM_ALC_1_FIX,SW_CAP1,SW_CAP2,SW_CAP3,AM_ALC_SW,SW_CAP4,DDS_SYNC_FPGA,DDS_RESET_FPGA,DDS_SYNC_CTRL_FPGA,CTRL_AM_SW3,RF_SW2,RF_SW1};
+
+//***********************************************
+
+// localparam [23:0] AllDevQSPIHeader = {1'h1, LMXWordNum, DDSWordNum, POTWordNum, DACWordNum,ATTWordNum, ShRegWordNum,MaxWordNum, GPIOWordNum, 7'h1};
+localparam [23:0] AllDevQSPIHeader = {1'h1, 1'h0,DDSWordNum,1'h0,GPIOWordNum, LMXWordNum,1'h0,MaxWordNum,1'h0,ShRegWordNum,1'h0,POTWordNum,DACWordNum,ATTWordNum,1'h1};
+
+//***********************************************
+//	      HEADERS FOR DEVICES - BOCHv3
+//***********************************************
+/* Device ID's for 1 MOSI */
+localparam [4:0]  DeviceIdLmkA = 5'h0;
+localparam [4:0]  DeviceIdLmkB = 5'h1;
+localparam [4:0]  DeviceIdTfeHub = 5'h3;
+localparam [4:0]  DeviceIdFlash = 5'h4;
+/* Init Word Numbers */
+localparam [16:0] LmkAInitWordNum = 17'd129;
+localparam [16:0] LmkBInitWordNum = 17'd129;
+localparam [16:0] TfeHubInitWordNum = 17'd3;
+localparam [16:0] FlashInitWordNum = 17'd1;
+/* Headers */
+localparam [23:0] InitLmkAHeader = {1'h0, DeviceIdLmkA, LmkAInitWordNum, 1'h1};
+localparam [23:0] InitLmkBHeader = {1'h0, DeviceIdLmkB, LmkBInitWordNum, 1'h1};
+localparam [23:0] InitFlashHeader = {1'h0, DeviceIdFlash, FlashInitWordNum, 1'h1};
+/* Word Numbers 4-MOSI */
+localparam [3:0] CtrlColdPartWordNum = 4'd7;
+localparam [0:0]     Tfe2bWordNum = 1'd1;
+localparam [0:0]      Tfe4bWordNum= 2'd2;
+localparam [0:0]      Tfe7bWordNum= 2'd3;
+localparam [0:0]      Tfe6bWordNum= 2'd2;
+/* Headers 4-MOSI */
+localparam [23:0] CtrlColdPartHeader = {1'h1, 1'h0, CtrlColdPartWordNum, 1'h0, 2'h0, 2'h0, 2'h0, 10'h0, 1'h1};
+localparam [23:0] Tfe2bHeader = {1'h1, 1'h0, 4'h0, Tfe2bWordNum, 2'h0, 2'h0, 2'h0, 10'h0, 1'h1};
+localparam [23:0] Tfe4bHeader = {1'h1, 1'h0, 4'h0, 1'h0, Tfe4bWordNum, 2'h0, 2'h0, 10'h0, 1'h1};
+localparam [23:0] Tfe7bHeader = {1'h1, 1'h0, 4'h0, 1'h0, 1'h0, Tfe7bWordNum, 2'h0, 10'h0, 1'h1};
+localparam [23:0] Tfe6bHeader = {1'h1, 1'h0, 4'h0, 1'h0, 1'h0, 1'h0, Tfe6bWordNum, 10'h0, 1'h1};
+/* All Devices Header */
+localparam [23:0] AllDevBochv3QSpiHeader = {1'h1, 1'h0, CtrlColdPartWordNum, Tfe2bWordNum, Tfe4bWordNum, Tfe7bWordNum, Tfe6bWordNum, 10'h0, 1'h1};
+//***********************************************
+//	      HEADERS FOR DEVICES - CTRL_CP2444v1
+//***********************************************
+localparam [4:0] DeviceIdSwCtrlP1 = 5'h0;
+localparam [4:0] DeviceIdAttCtrlP1 = 5'h1;
+localparam [4:0] DeviceIdAttCtrlP2 = 5'h2;
+localparam [4:0] DeviceIdAttCtrlP3 = 5'h3;
+localparam [4:0] DeviceIdAttCtrlP4 = 5'h4;
+localparam [4:0] DeviceIdCtrlCp2444v1Gpio = 5'h5;
+/* Init Word Numbers */
+localparam [16:0] SwCtrlP1WordNum = 17'd1;
+localparam [16:0] AttCtrlP1WordNum = 17'd1;
+localparam [16:0] AttCtrlP2WordNum = 17'd1;
+localparam [16:0] AttCtrlP3WordNum = 17'd1;
+localparam [16:0] AttCtrlP4WordNum = 17'd1;
+localparam [16:0] CtrlCp2444v1GpioWordNum = 17'd1;
+/* Headers */
+localparam [23:0] SwCtrlP1Header = {1'h0, DeviceIdSwCtrlP1, SwCtrlP1WordNum, 1'h1};
+localparam [23:0] AttCtrlP1Header = {1'h0, DeviceIdAttCtrlP1, AttCtrlP1WordNum, 1'h1};
+localparam [23:0] AttCtrlP2Header = {1'h0, DeviceIdAttCtrlP2, AttCtrlP2WordNum, 1'h1};
+localparam [23:0] AttCtrlP3Header = {1'h0, DeviceIdAttCtrlP3, AttCtrlP3WordNum, 1'h1};
+localparam [23:0] AttCtrlP4Header = {1'h0, DeviceIdAttCtrlP4, AttCtrlP4WordNum, 1'h1};
+localparam [23:0] CtrlCp2444v1GpioHeader = {1'h0, DeviceIdCtrlCp2444v1Gpio, CtrlCp2444v1GpioWordNum, 1'h1};
+/* Word Numbers */
+localparam [3:0] SwCtrlP1WordNum = 1'd1;
+localparam [3:0] AttCtrlP1WordNum = 1'd1;
+localparam [3:0] AttCtrlP2WordNum = 1'd1;
+localparam [3:0] AttCtrlP3WordNum = 1'd1;
+localparam [3:0] AttCtrlP4WordNum = 1'd1;
+localparam [3:0] CtrlCp2444v1GpioWordNum = 1'd1;
+/* QSpi Headers */
+localparam [23:0] CtrlCp2444v1GpioHeader = {1'h1, CtrlCp2444v1GpioWordNum, 1'h0,1'h0,1'h0,1'h0,1'h0, 15'h0, 1'h1};
+localparam [23:0] SwCtrlP1Header = {1'h1, 1'h0, SwCtrlP1WordNum, 1'h0, 1'h0, 1'h0, 1'h0, 15'h0, 1'h1};
+localparam [23:0] AttCtrlP1Header = {1'h1, 1'h0, 1'h0, AttCtrlP1WordNum, 1'h0, 1'h0, 1'h0, 15'h0, 1'h1};
+localparam [23:0] AttCtrlP2Header = {1'h1, 1'h0, 1'h0, 1'h0, AttCtrlP2WordNum, 1'h0, 1'h0, 15'h0, 1'h1};
+localparam [23:0] AttCtrlP3Header = {1'h1, 1'h0, 1'h0, 1'h0, 1'h0, AttCtrlP3WordNum, 1'h0, 15'h0, 1'h1};
+localparam [23:0] AttCtrlP4Header = {1'h1, 1'h0, 1'h0, 1'h0, 1'h0, 1'h0, AttCtrlP4WordNum, 15'h0, 1'h1};
+localparam [23:0] AllDevCtrlCp2444v1QSpiHeader = {1'h1,CtrlCp2444v1GpioWordNum, SwCtrlP1WordNum, AttCtrlP1WordNum, AttCtrlP2WordNum, AttCtrlP3WordNum, AttCtrlP4WordNum, 15'h0, 1'h1};
+
+
+//***********************************************
+//	           ASSIGNS
+//***********************************************
+assign Val_o = (modeSel) ? valQ : valR;
+assign Sck_o = (modeSel) ? SckQ : SckR;
+assign Ss_o = (modeSel) ? SsQ : SsR;
+assign Mosi0_o = (modeSel) ? mosi0Q : mosi0R;
+assign Mosi1_io = (anyFlag) ? 1'bz : Mosi1_o;
+assign MisoLdLmx_i = 1'b1;
+
+assign emptyFlagTx = (trCnt > 260+QSpiBochv3TotalWordNum) ? 1'b1 : 1'b0;
+assign QSPITotalWordNum = LMXWordNum + DDSWordNum + POTWordNum + DACWordNum + ATTWordNum + ShRegWordNum + MaxWordNum + GPIOWordNum; 
+assign QSpiBochv3TotalWordNum = CtrlColdPartWordNum + Tfe2bWordNum + Tfe4bWordNum + Tfe7bWordNum + Tfe6bWordNum;
+assign QSpiCtrlCp2444v1TotalWordNum = CtrlCp2444v1GpioWordNum + SwCtrlP1WordNum + AttCtrlP1WordNum + AttCtrlP2WordNum + AttCtrlP3WordNum + AttCtrlP4WordNum;
+
+assign currClk = (modeSel) ? Clk60 : Clk10;
+
+//***********************************************
+//	           CLOCK GENERATION
+//***********************************************
+always #(CLK_PERIOD/2) Clk_i = ~Clk_i;
+always #(10/2) Clk100 = ~Clk100;
+always #(5/2) Clk200 = ~Clk200;
+always #(8/2) Clk125 = ~Clk125;
+always #(16.67/2) Clk60 = ~Clk60;
+always #(20/2) Clk50 = ~Clk50;
+always #(12.5/2) Clk80 = ~Clk80;
+always #(41.67/2) Clk24 = ~Clk24;
+always #(50/2) Clk20 = ~Clk20;
+always #(50)   Clk10 = ~Clk10; 
+
+//***********************************************
+//	           INITIALIZATION
+//***********************************************
+
+initial begin
+      // Initialize Inputs
+      Clk_i = 1;
+      Clk100= 1;
+      Clk200 = 1;
+      Clk125 = 1;
+      Clk60 = 1;
+      Clk20 = 1;
+      Clk50 = 1;
+      Clk80 = 1;
+      Clk24 = 1;
+      rstForFPGA = 0;
+      Clk10 = 1;
+      pkt = new();
+      Rst_i = 1;
+      Start_i = 0;
+      CPHA_i = 0;		SpiDataVal_i = 0;
+      SELST_i = 1;//0:High, 1:Low
+      WidthSel_i = 2; // 3-32bit, 2-24bit, 1-16bit, 0-8bit
+      LAG_i = 0;
+      LEAD_i = 0;
+      EndianSel_i = 0; // 0:MSB first, 1:lsb first
+      PulsePol_i = 0;
+      // Reset the system
+      #(CLK_PERIOD*10) Rst_i = 0;
+      #(700000-60) rstForFPGA = 1;
+      #(CLK_PERIOD*74) rstForFPGA = 0;
+      #(165000) Start_i = 1; // Start SPI transaction
+       wait (trCnt == 45) begin 
+            Start_i = 0;
+        end
+        #(CLK_PERIOD*100) 
+        Start_i = 1; // Start SPI transaction
+      wait (trCnt == 70) begin 
+            Start_i = 0;
+        end
+        #(CLK_PERIOD*1000) 
+        Start_i = 1; // Start SPI transaction
+  end
+//***********************************************
+always_ff @(posedge currClk) begin
+    if (Rst_i) begin 
+        trCnt <= 0;
+    end
+    else begin 
+        if (Val_o) begin 
+            trCnt <= trCnt + 1;
+        end
+    end
+end
+
+always_comb begin 
+    if (Rst_i) begin 
+        mosi1Reg = 0;
+    end
+    else begin 
+        mosi1Reg = Mosi1_io;
+    end
+end
+
+
+
+genvar i;
+// always_comb begin 
+//     if (Rst_i) begin 
+//         WidthSel_i = 2'd0;
+//     end
+//     else begin
+//         if (trCnt == 1 || trCnt == 3 ) begin 
+//             WidthSel_i = 2'd0;
+//         end 
+//         else if (trCnt > 36 && trCnt < 43) begin 
+//             WidthSel_i = 2'd3;
+//         end
+//         else begin 
+//             WidthSel_i = 2'd2;
+//         end
+//     end
+// end
+
+always_comb begin 
+    if (Rst_i) begin 
+        modeSel = 0;
+    end
+    else begin 
+        if (trCnt == 260) begin 
+            modeSel = 1;
+        end
+    end
+end
+
+always_comb begin 
+    if (Rst_i) begin 
+        Stop_i = 6'd0;
+    end
+    else begin 
+        if (trCnt == 158) begin 
+            Stop_i = 6'h0;
+        end
+        else begin
+            Stop_i = 6'd0;
+        end
+    end
+end
+
+always_ff @(posedge currClk) begin 
+    if (Rst_i) begin 
+        randData<=0;
+        randData32 <= 0;
+    end
+    else begin 
+        randData <= pkt.randomize(data);
+        randData32 <= pkt.randomize(data32);
+    end
+end
+
+/* Data generation for SPI */
+always_comb begin 
+    if (Rst_i) begin 
+        SPIdata = 0; 
+    end
+    else begin 
+        /* Firstly the header for LMK_A */
+        if (trCnt == 0) begin 
+            SPIdata = InitLmkAHeader;
+        end
+        /* Then the data for LMK_A */
+        else if (trCnt > 0 && trCnt < 130) begin 
+            SPIdata = randData;
+        end
+        /* Then the header for LMK_B */
+        else if (trCnt == 130) begin 
+            SPIdata = InitLmkBHeader;
+        end
+        /* Then the data for LMK_B */
+        else if (trCnt > 130 && trCnt < 260) begin 
+            SPIdata = randData;
+        end
+        /* Then the header for the Flash */
+        else if (trCnt == 260) begin 
+            SPIdata = InitFlashHeader;
+        end
+        /* Then the data for the Flash but the SsFlash should be active instead of Ss_o */
+        else if (trCnt > 260 && trCnt < 261) begin 
+            SPIdata = randData;
+        end
+        /* Then the header for QSpi header */
+        else if (trCnt == 262) begin 
+            SPIdata = AllDevBochv3QSpiHeader;
+        end
+        /* First word after is a header for CtrlCp2444v1 */
+        else if (trCnt == 263) begin 
+            SPIdata = AllDevCtrlCp2444v1QSpiHeader;
+        end
+        /* Then the data for QSpi */
+        else if (trCnt > 263 && trCnt < 260+QSpiBochv3TotalWordNum) begin
+            SPIdata = randData;
+        end
+    end
+end
+//***********************************************
+//	           DUT INSTANTIATION
+//***********************************************
+ExtSpiMEmul ExtSpiMEmul_inst (
+        .Clk_i(currClk), 
+        .Rst_i(Rst_i || modeSel), 
+        .Start_i(Start_i), 
+        .ClockPhase_i(CPHA_i),
+        .EmptyFlag_i(emptyFlagTx), 
+        .SpiData_i(SPIdata),
+        .SelSt_i(SELST_i),
+        .WidthSel_i(WidthSel_i),
+        .Lag_i(LAG_i),
+        .Lead_i(LEAD_i),
+        .EndianSel_i(EndianSel_i),
+        .Stop_i(6'h0),
+        .PulsePol_i(PulsePol_i),
+        .Mosi0_o(mosi0R),
+        .Sck_o(SckR),
+        .Ss_o(SsR),
+        .Val_o(valR)
+    );
+
+    ExtQspiMEmul ExtQspiMEmul_inst (
+        .Clk_i(currClk),
+        .Rst_i(Rst_i || !modeSel),
+        .Start_i(Start_i),
+        .ClockPhase_i(CPHA_i),
+        .EmptyFlag_i(emptyFlagTx),
+        .SpiData_i(SPIdata),
+        .SelSt_i(SELST_i),
+        .WidthSel_i(WidthSel_i),
+        .Lag_i(LAG_i),
+        .Lead_i(LEAD_i),
+        .EndianSel_i(EndianSel_i),
+        .Stop_i(6'h0),
+        .PulsePol_i(PulsePol_i),
+        .Mosi0_o(mosi0Q),
+        .Mosi1_o(Mosi1_o),
+        .Mosi2_o(Mosi2_o),
+        .Mosi3_o(Mosi3_o),
+        .Sck_o(SckQ),
+        .Ss_o(SsQ),
+        .Val_o(valQ)
+    );
+
+
+
+
+endmodule

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

@@ -0,0 +1,25 @@
+[General]
+ipc_version=4
+file=FifoCtrlCp2444
+module=FifoCtrlCp2444
+target_device=gw1n9-022
+type=fifo_sc_hs
+version=1.0
+
+[Config]
+ALEMPTY=0
+ALFULL=0
+COUNT_W=false
+DEPTH_W=3
+ECC=false
+EN_ALEMPTY=false
+EN_ALFULL=false
+FWFT=true
+IMPL=0
+IO_INSERTION=false
+LANG=0
+OUTPUT_REG=false
+RDEN_CTRL=false
+STD=false
+Synthesis_tool=GowinSynthesis
+WIDTH_W=1

+ 213 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444.v

@@ -0,0 +1,213 @@
+//
+//Written by GowinSynthesis
+//Tool Version "V1.9.9.03 (64-bit)"
+//Fri Nov 22 15:53:09 2024
+
+//Source file index table:
+//file0 "\C:/Gowin/Projects/BOCHv3_FPGA/src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/fifo_sc_hs_define.v"
+//file1 "\C:/Gowin/Projects/BOCHv3_FPGA/src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/fifo_sc_hs_parameter.v"
+//file2 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_SC_HS/data/fifo_sc_hs.v"
+//file3 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_SC_HS/data/fifo_sc_hs_top.v"
+`timescale 100 ps/100 ps
+`pragma protect begin_protected
+`pragma protect version="2.3"
+`pragma protect author="default"
+`pragma protect author_info="default"
+`pragma protect encrypt_agent="GOWIN"
+`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3"
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
+`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
+`pragma protect key_block
+JnZKJ7GaWVqDTszoy1iCRmKyKGMSHLaWm1japgoeI5ln2gYI1sxriYVd0aNeM4eiCTMzx0pKDdXz
+P99vGM4AhxvViICmU1WFMpRSoHum6dj2mmGd4ON+lhfqp6gSJTN1/JSrWj8CemGhSfRspWr7eFbv
+PuOOCsyDzoftY3DLJ23reHN0Ua+AXwukMupBAhj7qJicuinp1x8IaAluoFY3zp5dajSvgKQsczvs
+MLURMwoA47Wt/nDEEH1yjQgkjm27fqOwXZix+7K5Yr4hC38XWR5W9YuqfCSnwQ12/gQtEtMOGtdu
+S+f1ibT0m4sboaD1lgHAky6FI2Ar144lC2gg0g==
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=7872)
+`pragma protect data_keyowner="default-ip-vendor"
+`pragma protect data_keyname="default-ip-key"
+`pragma protect data_method="aes128-cfb"
+`pragma protect data_block
+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
+qo2t5tua
+`pragma protect end_protected
+module FifoCtrlCp2444 (
+  Data,
+  Clk,
+  WrEn,
+  RdEn,
+  Reset,
+  Q,
+  Empty,
+  Full
+)
+;
+input [0:0] Data;
+input Clk;
+input WrEn;
+input RdEn;
+input Reset;
+output [0:0] Q;
+output Empty;
+output Full;
+wire VCC;
+wire GND;
+  \~fifo_sc_hs.FifoCtrlCp2444  fifo_sc_hs_inst (
+    .Clk(Clk),
+    .Reset(Reset),
+    .WrEn(WrEn),
+    .RdEn(RdEn),
+    .Data(Data[0]),
+    .Empty(Empty),
+    .Full(Full),
+    .Q(Q[0])
+);
+  VCC VCC_cZ (
+    .V(VCC)
+);
+  GND GND_cZ (
+    .G(GND)
+);
+  GSR GSR (
+    .GSRI(VCC) 
+);
+endmodule /* FifoCtrlCp2444 */

+ 465 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444.vo

@@ -0,0 +1,465 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Post-PnR Simulation Model file
+//Tool Version: V1.9.9.03 (64-bit)
+//Created Time: Fri Nov 22 15:53:09 2024
+
+`timescale 100 ps/100 ps
+module FifoCtrlCp2444(
+	Data,
+	Clk,
+	WrEn,
+	RdEn,
+	Reset,
+	Q,
+	Empty,
+	Full
+);
+input [0:0] Data;
+input Clk;
+input WrEn;
+input RdEn;
+input Reset;
+output [0:0] Q;
+output Empty;
+output Full;
+wire Clk;
+wire [0:0] Data;
+wire Empty;
+wire Full;
+wire GND;
+wire [0:0] Q;
+wire RdEn;
+wire Reset;
+wire VCC;
+wire WrEn;
+wire \fifo_sc_hs_inst/n7_5 ;
+wire \fifo_sc_hs_inst/n13_4 ;
+wire \fifo_sc_hs_inst/n60_3 ;
+wire \fifo_sc_hs_inst/Wnum_4_8 ;
+wire \fifo_sc_hs_inst/n7_6 ;
+wire \fifo_sc_hs_inst/n60_4 ;
+wire \fifo_sc_hs_inst/rbin_next_2_10 ;
+wire \fifo_sc_hs_inst/n60_1_4 ;
+wire \fifo_sc_hs_inst/n110_2 ;
+wire \fifo_sc_hs_inst/n110_1_1 ;
+wire \fifo_sc_hs_inst/n109_2 ;
+wire \fifo_sc_hs_inst/n109_1_1 ;
+wire \fifo_sc_hs_inst/n108_2 ;
+wire \fifo_sc_hs_inst/n108_1_1 ;
+wire \fifo_sc_hs_inst/n107_2 ;
+wire \fifo_sc_hs_inst/n107_1_1 ;
+wire \fifo_sc_hs_inst/n106_2 ;
+wire \fifo_sc_hs_inst/n106_1_0_COUT ;
+wire \fifo_sc_hs_inst/wbin_next_0_2 ;
+wire \fifo_sc_hs_inst/wbin_next_1_2 ;
+wire \fifo_sc_hs_inst/wbin_next_2_2 ;
+wire \fifo_sc_hs_inst/wbin_next_3_2 ;
+wire \fifo_sc_hs_inst/wbin_next_4_0_COUT ;
+wire \fifo_sc_hs_inst/n123_1_SUM ;
+wire \fifo_sc_hs_inst/n123_3 ;
+wire \fifo_sc_hs_inst/n124_1_SUM ;
+wire \fifo_sc_hs_inst/n124_3 ;
+wire \fifo_sc_hs_inst/n125_1_SUM ;
+wire \fifo_sc_hs_inst/n125_3 ;
+wire \fifo_sc_hs_inst/n126_1_SUM ;
+wire \fifo_sc_hs_inst/n126_3 ;
+wire \fifo_sc_hs_inst/n127_1_SUM ;
+wire \fifo_sc_hs_inst/n127_3 ;
+wire \fifo_sc_hs_inst/rempty_val_5 ;
+wire [4:0] \fifo_sc_hs_inst/rbin_next ;
+wire [4:0] \fifo_sc_hs_inst/rbin ;
+wire [4:0] \fifo_sc_hs_inst/wbin ;
+wire [4:0] \fifo_sc_hs_inst/Wnum ;
+wire [4:0] \fifo_sc_hs_inst/wbin_next ;
+wire [31:1] \fifo_sc_hs_inst/DO ;
+VCC VCC_cZ (
+  .V(VCC)
+);
+GND GND_cZ (
+  .G(GND)
+);
+GSR GSR (
+	.GSRI(VCC)
+);
+LUT3 \fifo_sc_hs_inst/n7_s1  (
+	.I0(\fifo_sc_hs_inst/Wnum [0]),
+	.I1(\fifo_sc_hs_inst/n7_6 ),
+	.I2(WrEn),
+	.F(\fifo_sc_hs_inst/n7_5 )
+);
+defparam \fifo_sc_hs_inst/n7_s1 .INIT=8'hB0;
+LUT3 \fifo_sc_hs_inst/n13_s1  (
+	.I0(RdEn),
+	.I1(Empty),
+	.I2(\fifo_sc_hs_inst/n127_3 ),
+	.F(\fifo_sc_hs_inst/n13_4 )
+);
+defparam \fifo_sc_hs_inst/n13_s1 .INIT=8'hE0;
+LUT4 \fifo_sc_hs_inst/n60_s0  (
+	.I0(\fifo_sc_hs_inst/Wnum [0]),
+	.I1(\fifo_sc_hs_inst/n7_6 ),
+	.I2(\fifo_sc_hs_inst/n60_4 ),
+	.I3(WrEn),
+	.F(\fifo_sc_hs_inst/n60_3 )
+);
+defparam \fifo_sc_hs_inst/n60_s0 .INIT=16'h0B00;
+LUT2 \fifo_sc_hs_inst/Full_d_s  (
+	.I0(\fifo_sc_hs_inst/Wnum [0]),
+	.I1(\fifo_sc_hs_inst/n7_6 ),
+	.F(Full)
+);
+defparam \fifo_sc_hs_inst/Full_d_s .INIT=4'h4;
+LUT4 \fifo_sc_hs_inst/Wnum_4_s3  (
+	.I0(\fifo_sc_hs_inst/n7_6 ),
+	.I1(\fifo_sc_hs_inst/Wnum [0]),
+	.I2(WrEn),
+	.I3(\fifo_sc_hs_inst/n60_4 ),
+	.F(\fifo_sc_hs_inst/Wnum_4_8 )
+);
+defparam \fifo_sc_hs_inst/Wnum_4_s3 .INIT=16'h2FD0;
+LUT2 \fifo_sc_hs_inst/rbin_next_2_s5  (
+	.I0(\fifo_sc_hs_inst/rbin_next_2_10 ),
+	.I1(\fifo_sc_hs_inst/rbin [2]),
+	.F(\fifo_sc_hs_inst/rbin_next [2])
+);
+defparam \fifo_sc_hs_inst/rbin_next_2_s5 .INIT=4'h6;
+LUT3 \fifo_sc_hs_inst/rbin_next_3_s5  (
+	.I0(\fifo_sc_hs_inst/rbin_next_2_10 ),
+	.I1(\fifo_sc_hs_inst/rbin [2]),
+	.I2(\fifo_sc_hs_inst/rbin [3]),
+	.F(\fifo_sc_hs_inst/rbin_next [3])
+);
+defparam \fifo_sc_hs_inst/rbin_next_3_s5 .INIT=8'h78;
+LUT4 \fifo_sc_hs_inst/rbin_next_4_s2  (
+	.I0(\fifo_sc_hs_inst/rbin_next_2_10 ),
+	.I1(\fifo_sc_hs_inst/rbin [2]),
+	.I2(\fifo_sc_hs_inst/rbin [3]),
+	.I3(\fifo_sc_hs_inst/rbin [4]),
+	.F(\fifo_sc_hs_inst/rbin_next [4])
+);
+defparam \fifo_sc_hs_inst/rbin_next_4_s2 .INIT=16'h7F80;
+LUT4 \fifo_sc_hs_inst/n7_s2  (
+	.I0(\fifo_sc_hs_inst/Wnum [1]),
+	.I1(\fifo_sc_hs_inst/Wnum [2]),
+	.I2(\fifo_sc_hs_inst/Wnum [3]),
+	.I3(\fifo_sc_hs_inst/Wnum [4]),
+	.F(\fifo_sc_hs_inst/n7_6 )
+);
+defparam \fifo_sc_hs_inst/n7_s2 .INIT=16'h0100;
+LUT2 \fifo_sc_hs_inst/n60_s1  (
+	.I0(Empty),
+	.I1(RdEn),
+	.F(\fifo_sc_hs_inst/n60_4 )
+);
+defparam \fifo_sc_hs_inst/n60_s1 .INIT=4'h4;
+LUT4 \fifo_sc_hs_inst/rbin_next_2_s6  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_sc_hs_inst/rbin [0]),
+	.I3(\fifo_sc_hs_inst/rbin [1]),
+	.F(\fifo_sc_hs_inst/rbin_next_2_10 )
+);
+defparam \fifo_sc_hs_inst/rbin_next_2_s6 .INIT=16'h4000;
+LUT4 \fifo_sc_hs_inst/rbin_next_1_s6  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_sc_hs_inst/rbin [0]),
+	.I3(\fifo_sc_hs_inst/rbin [1]),
+	.F(\fifo_sc_hs_inst/rbin_next [1])
+);
+defparam \fifo_sc_hs_inst/rbin_next_1_s6 .INIT=16'hBF40;
+LUT3 \fifo_sc_hs_inst/rbin_next_0_s6  (
+	.I0(Empty),
+	.I1(RdEn),
+	.I2(\fifo_sc_hs_inst/rbin [0]),
+	.F(\fifo_sc_hs_inst/rbin_next [0])
+);
+defparam \fifo_sc_hs_inst/rbin_next_0_s6 .INIT=8'hB4;
+LUT4 \fifo_sc_hs_inst/n60_1_s1  (
+	.I0(\fifo_sc_hs_inst/Wnum [0]),
+	.I1(\fifo_sc_hs_inst/n7_6 ),
+	.I2(\fifo_sc_hs_inst/n60_4 ),
+	.I3(WrEn),
+	.F(\fifo_sc_hs_inst/n60_1_4 )
+);
+defparam \fifo_sc_hs_inst/n60_1_s1 .INIT=16'hF4FF;
+DFFC \fifo_sc_hs_inst/rbin_4_s0  (
+	.D(\fifo_sc_hs_inst/rbin_next [4]),
+	.CLK(Clk),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/rbin [4])
+);
+defparam \fifo_sc_hs_inst/rbin_4_s0 .INIT=1'b0;
+DFFC \fifo_sc_hs_inst/rbin_3_s0  (
+	.D(\fifo_sc_hs_inst/rbin_next [3]),
+	.CLK(Clk),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/rbin [3])
+);
+defparam \fifo_sc_hs_inst/rbin_3_s0 .INIT=1'b0;
+DFFC \fifo_sc_hs_inst/rbin_2_s0  (
+	.D(\fifo_sc_hs_inst/rbin_next [2]),
+	.CLK(Clk),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/rbin [2])
+);
+defparam \fifo_sc_hs_inst/rbin_2_s0 .INIT=1'b0;
+DFFC \fifo_sc_hs_inst/rbin_1_s0  (
+	.D(\fifo_sc_hs_inst/rbin_next [1]),
+	.CLK(Clk),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/rbin [1])
+);
+defparam \fifo_sc_hs_inst/rbin_1_s0 .INIT=1'b0;
+DFFC \fifo_sc_hs_inst/rbin_0_s0  (
+	.D(\fifo_sc_hs_inst/rbin_next [0]),
+	.CLK(Clk),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/rbin [0])
+);
+defparam \fifo_sc_hs_inst/rbin_0_s0 .INIT=1'b0;
+DFFC \fifo_sc_hs_inst/wbin_4_s0  (
+	.D(\fifo_sc_hs_inst/wbin_next [4]),
+	.CLK(Clk),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/wbin [4])
+);
+defparam \fifo_sc_hs_inst/wbin_4_s0 .INIT=1'b0;
+DFFC \fifo_sc_hs_inst/wbin_3_s0  (
+	.D(\fifo_sc_hs_inst/wbin_next [3]),
+	.CLK(Clk),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/wbin [3])
+);
+defparam \fifo_sc_hs_inst/wbin_3_s0 .INIT=1'b0;
+DFFC \fifo_sc_hs_inst/wbin_2_s0  (
+	.D(\fifo_sc_hs_inst/wbin_next [2]),
+	.CLK(Clk),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/wbin [2])
+);
+defparam \fifo_sc_hs_inst/wbin_2_s0 .INIT=1'b0;
+DFFC \fifo_sc_hs_inst/wbin_1_s0  (
+	.D(\fifo_sc_hs_inst/wbin_next [1]),
+	.CLK(Clk),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/wbin [1])
+);
+defparam \fifo_sc_hs_inst/wbin_1_s0 .INIT=1'b0;
+DFFC \fifo_sc_hs_inst/wbin_0_s0  (
+	.D(\fifo_sc_hs_inst/wbin_next [0]),
+	.CLK(Clk),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/wbin [0])
+);
+defparam \fifo_sc_hs_inst/wbin_0_s0 .INIT=1'b0;
+DFFP \fifo_sc_hs_inst/Empty_s0  (
+	.D(\fifo_sc_hs_inst/rempty_val_5 ),
+	.CLK(Clk),
+	.PRESET(Reset),
+	.Q(Empty)
+);
+defparam \fifo_sc_hs_inst/Empty_s0 .INIT=1'b1;
+DFFCE \fifo_sc_hs_inst/Wnum_4_s1  (
+	.D(\fifo_sc_hs_inst/n106_2 ),
+	.CLK(Clk),
+	.CE(\fifo_sc_hs_inst/Wnum_4_8 ),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/Wnum [4])
+);
+defparam \fifo_sc_hs_inst/Wnum_4_s1 .INIT=1'b0;
+DFFCE \fifo_sc_hs_inst/Wnum_3_s1  (
+	.D(\fifo_sc_hs_inst/n107_2 ),
+	.CLK(Clk),
+	.CE(\fifo_sc_hs_inst/Wnum_4_8 ),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/Wnum [3])
+);
+defparam \fifo_sc_hs_inst/Wnum_3_s1 .INIT=1'b0;
+DFFCE \fifo_sc_hs_inst/Wnum_2_s1  (
+	.D(\fifo_sc_hs_inst/n108_2 ),
+	.CLK(Clk),
+	.CE(\fifo_sc_hs_inst/Wnum_4_8 ),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/Wnum [2])
+);
+defparam \fifo_sc_hs_inst/Wnum_2_s1 .INIT=1'b0;
+DFFCE \fifo_sc_hs_inst/Wnum_1_s1  (
+	.D(\fifo_sc_hs_inst/n109_2 ),
+	.CLK(Clk),
+	.CE(\fifo_sc_hs_inst/Wnum_4_8 ),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/Wnum [1])
+);
+defparam \fifo_sc_hs_inst/Wnum_1_s1 .INIT=1'b0;
+DFFCE \fifo_sc_hs_inst/Wnum_0_s1  (
+	.D(\fifo_sc_hs_inst/n110_2 ),
+	.CLK(Clk),
+	.CE(\fifo_sc_hs_inst/Wnum_4_8 ),
+	.CLEAR(Reset),
+	.Q(\fifo_sc_hs_inst/Wnum [0])
+);
+defparam \fifo_sc_hs_inst/Wnum_0_s1 .INIT=1'b0;
+SDPB \fifo_sc_hs_inst/mem_mem_0_0_s  (
+	.CLKA(Clk),
+	.CEA(\fifo_sc_hs_inst/n7_5 ),
+	.RESETA(GND),
+	.CLKB(Clk),
+	.CEB(\fifo_sc_hs_inst/n13_4 ),
+	.RESETB(Reset),
+	.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, GND, GND, GND, GND, GND, GND, GND, Data[0]}),
+	.ADA({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, \fifo_sc_hs_inst/wbin [3:0]}),
+	.ADB({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, \fifo_sc_hs_inst/rbin_next [3:0]}),
+	.DO({\fifo_sc_hs_inst/DO [31:1], Q[0]})
+);
+defparam \fifo_sc_hs_inst/mem_mem_0_0_s .READ_MODE=1'b0;
+defparam \fifo_sc_hs_inst/mem_mem_0_0_s .BIT_WIDTH_0=1;
+defparam \fifo_sc_hs_inst/mem_mem_0_0_s .BIT_WIDTH_1=1;
+defparam \fifo_sc_hs_inst/mem_mem_0_0_s .RESET_MODE="ASYNC";
+defparam \fifo_sc_hs_inst/mem_mem_0_0_s .BLK_SEL_0=3'b000;
+defparam \fifo_sc_hs_inst/mem_mem_0_0_s .BLK_SEL_1=3'b000;
+ALU \fifo_sc_hs_inst/n110_1_s  (
+	.I0(\fifo_sc_hs_inst/Wnum [0]),
+	.I1(VCC),
+	.I3(\fifo_sc_hs_inst/n60_3 ),
+	.CIN(\fifo_sc_hs_inst/n60_1_4 ),
+	.COUT(\fifo_sc_hs_inst/n110_1_1 ),
+	.SUM(\fifo_sc_hs_inst/n110_2 )
+);
+defparam \fifo_sc_hs_inst/n110_1_s .ALU_MODE=2;
+ALU \fifo_sc_hs_inst/n109_1_s  (
+	.I0(\fifo_sc_hs_inst/Wnum [1]),
+	.I1(GND),
+	.I3(\fifo_sc_hs_inst/n60_3 ),
+	.CIN(\fifo_sc_hs_inst/n110_1_1 ),
+	.COUT(\fifo_sc_hs_inst/n109_1_1 ),
+	.SUM(\fifo_sc_hs_inst/n109_2 )
+);
+defparam \fifo_sc_hs_inst/n109_1_s .ALU_MODE=2;
+ALU \fifo_sc_hs_inst/n108_1_s  (
+	.I0(\fifo_sc_hs_inst/Wnum [2]),
+	.I1(GND),
+	.I3(\fifo_sc_hs_inst/n60_3 ),
+	.CIN(\fifo_sc_hs_inst/n109_1_1 ),
+	.COUT(\fifo_sc_hs_inst/n108_1_1 ),
+	.SUM(\fifo_sc_hs_inst/n108_2 )
+);
+defparam \fifo_sc_hs_inst/n108_1_s .ALU_MODE=2;
+ALU \fifo_sc_hs_inst/n107_1_s  (
+	.I0(\fifo_sc_hs_inst/Wnum [3]),
+	.I1(GND),
+	.I3(\fifo_sc_hs_inst/n60_3 ),
+	.CIN(\fifo_sc_hs_inst/n108_1_1 ),
+	.COUT(\fifo_sc_hs_inst/n107_1_1 ),
+	.SUM(\fifo_sc_hs_inst/n107_2 )
+);
+defparam \fifo_sc_hs_inst/n107_1_s .ALU_MODE=2;
+ALU \fifo_sc_hs_inst/n106_1_s  (
+	.I0(\fifo_sc_hs_inst/Wnum [4]),
+	.I1(GND),
+	.I3(\fifo_sc_hs_inst/n60_3 ),
+	.CIN(\fifo_sc_hs_inst/n107_1_1 ),
+	.COUT(\fifo_sc_hs_inst/n106_1_0_COUT ),
+	.SUM(\fifo_sc_hs_inst/n106_2 )
+);
+defparam \fifo_sc_hs_inst/n106_1_s .ALU_MODE=2;
+ALU \fifo_sc_hs_inst/wbin_next_0_s  (
+	.I0(\fifo_sc_hs_inst/wbin [0]),
+	.I1(\fifo_sc_hs_inst/n7_5 ),
+	.I3(GND),
+	.CIN(GND),
+	.COUT(\fifo_sc_hs_inst/wbin_next_0_2 ),
+	.SUM(\fifo_sc_hs_inst/wbin_next [0])
+);
+defparam \fifo_sc_hs_inst/wbin_next_0_s .ALU_MODE=0;
+ALU \fifo_sc_hs_inst/wbin_next_1_s  (
+	.I0(GND),
+	.I1(\fifo_sc_hs_inst/wbin [1]),
+	.I3(GND),
+	.CIN(\fifo_sc_hs_inst/wbin_next_0_2 ),
+	.COUT(\fifo_sc_hs_inst/wbin_next_1_2 ),
+	.SUM(\fifo_sc_hs_inst/wbin_next [1])
+);
+defparam \fifo_sc_hs_inst/wbin_next_1_s .ALU_MODE=0;
+ALU \fifo_sc_hs_inst/wbin_next_2_s  (
+	.I0(GND),
+	.I1(\fifo_sc_hs_inst/wbin [2]),
+	.I3(GND),
+	.CIN(\fifo_sc_hs_inst/wbin_next_1_2 ),
+	.COUT(\fifo_sc_hs_inst/wbin_next_2_2 ),
+	.SUM(\fifo_sc_hs_inst/wbin_next [2])
+);
+defparam \fifo_sc_hs_inst/wbin_next_2_s .ALU_MODE=0;
+ALU \fifo_sc_hs_inst/wbin_next_3_s  (
+	.I0(GND),
+	.I1(\fifo_sc_hs_inst/wbin [3]),
+	.I3(GND),
+	.CIN(\fifo_sc_hs_inst/wbin_next_2_2 ),
+	.COUT(\fifo_sc_hs_inst/wbin_next_3_2 ),
+	.SUM(\fifo_sc_hs_inst/wbin_next [3])
+);
+defparam \fifo_sc_hs_inst/wbin_next_3_s .ALU_MODE=0;
+ALU \fifo_sc_hs_inst/wbin_next_4_s  (
+	.I0(GND),
+	.I1(\fifo_sc_hs_inst/wbin [4]),
+	.I3(GND),
+	.CIN(\fifo_sc_hs_inst/wbin_next_3_2 ),
+	.COUT(\fifo_sc_hs_inst/wbin_next_4_0_COUT ),
+	.SUM(\fifo_sc_hs_inst/wbin_next [4])
+);
+defparam \fifo_sc_hs_inst/wbin_next_4_s .ALU_MODE=0;
+ALU \fifo_sc_hs_inst/n123_s0  (
+	.I0(\fifo_sc_hs_inst/rbin_next [0]),
+	.I1(\fifo_sc_hs_inst/wbin [0]),
+	.I3(GND),
+	.CIN(GND),
+	.COUT(\fifo_sc_hs_inst/n123_3 ),
+	.SUM(\fifo_sc_hs_inst/n123_1_SUM )
+);
+defparam \fifo_sc_hs_inst/n123_s0 .ALU_MODE=3;
+ALU \fifo_sc_hs_inst/n124_s0  (
+	.I0(\fifo_sc_hs_inst/rbin_next [1]),
+	.I1(\fifo_sc_hs_inst/wbin [1]),
+	.I3(GND),
+	.CIN(\fifo_sc_hs_inst/n123_3 ),
+	.COUT(\fifo_sc_hs_inst/n124_3 ),
+	.SUM(\fifo_sc_hs_inst/n124_1_SUM )
+);
+defparam \fifo_sc_hs_inst/n124_s0 .ALU_MODE=3;
+ALU \fifo_sc_hs_inst/n125_s0  (
+	.I0(\fifo_sc_hs_inst/rbin_next [2]),
+	.I1(\fifo_sc_hs_inst/wbin [2]),
+	.I3(GND),
+	.CIN(\fifo_sc_hs_inst/n124_3 ),
+	.COUT(\fifo_sc_hs_inst/n125_3 ),
+	.SUM(\fifo_sc_hs_inst/n125_1_SUM )
+);
+defparam \fifo_sc_hs_inst/n125_s0 .ALU_MODE=3;
+ALU \fifo_sc_hs_inst/n126_s0  (
+	.I0(\fifo_sc_hs_inst/rbin_next [3]),
+	.I1(\fifo_sc_hs_inst/wbin [3]),
+	.I3(GND),
+	.CIN(\fifo_sc_hs_inst/n125_3 ),
+	.COUT(\fifo_sc_hs_inst/n126_3 ),
+	.SUM(\fifo_sc_hs_inst/n126_1_SUM )
+);
+defparam \fifo_sc_hs_inst/n126_s0 .ALU_MODE=3;
+ALU \fifo_sc_hs_inst/n127_s0  (
+	.I0(\fifo_sc_hs_inst/rbin_next [4]),
+	.I1(\fifo_sc_hs_inst/wbin [4]),
+	.I3(GND),
+	.CIN(\fifo_sc_hs_inst/n126_3 ),
+	.COUT(\fifo_sc_hs_inst/n127_3 ),
+	.SUM(\fifo_sc_hs_inst/n127_1_SUM )
+);
+defparam \fifo_sc_hs_inst/n127_s0 .ALU_MODE=3;
+LUT1 \fifo_sc_hs_inst/rempty_val_s1  (
+	.I0(\fifo_sc_hs_inst/n127_3 ),
+	.F(\fifo_sc_hs_inst/rempty_val_5 )
+);
+defparam \fifo_sc_hs_inst/rempty_val_s1 .INIT=2'h1;
+endmodule

+ 23 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/FifoCtrlCp2444_tmp.v

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

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

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

+ 42 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/FifoCtrlCp2444.log

@@ -0,0 +1,42 @@
+GowinSynthesis start
+Running parser ...
+Analyzing Verilog file 'C:\Gowin\Projects\BOCHv3_FPGA\src\src\WrapFifoChain\FifoCtrlCp2444\temp\FIFO_SC\fifo_sc_hs_define.v'
+Analyzing Verilog file 'C:\Gowin\Projects\BOCHv3_FPGA\src\src\WrapFifoChain\FifoCtrlCp2444\temp\FIFO_SC\fifo_sc_hs_parameter.v'
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs.v'
+Analyzing included file '**'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs.v":14570)
+Back to file '**'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs.v":14570)
+Analyzing Verilog file 'C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs_top.v'
+Analyzing included file 'fifo_sc_hs_define.v'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs_top.v":1)
+Back to file 'C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs_top.v'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs_top.v":1)
+Analyzing included file 'C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\static_macro_define.v'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs_top.v":2)
+Back to file 'C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs_top.v'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs_top.v":2)
+Analyzing included file 'fifo_sc_hs_parameter.v'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs_top.v":47)
+Back to file 'C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs_top.v'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs_top.v":47)
+WARN  (EX2582) : Parameter 'DEPTH' declared inside compilation unit '$unit_fifo_sc_hs_define_v' shall be treated as localparam("fifo_sc_hs_parameter.v":1)
+WARN  (EX2582) : Parameter 'DSIZE' declared inside compilation unit '$unit_fifo_sc_hs_define_v' shall be treated as localparam("fifo_sc_hs_parameter.v":2)
+WARN  (EX2582) : Parameter 'ASIZE' declared inside compilation unit '$unit_fifo_sc_hs_define_v' shall be treated as localparam("fifo_sc_hs_parameter.v":3)
+Compiling module 'FifoCtrlCp2444'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs_top.v":4)
+Compiling module '**'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs.v":14570)
+Extracting RAM for identifier '**'("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs.v":14570)
+WARN  (EX3791) : Expression size ** truncated to fit in target size **("C:\Gowin\Gowin_V1.9.9.03_x64\IDE\ipcore\FIFO_SC_HS\data\fifo_sc_hs.v":14570)
+NOTE  (EX0101) : Current top module is "FifoCtrlCp2444"
+[5%] Running netlist conversion ...
+Running device independent optimization ...
+[10%] Optimizing Phase 0 completed
+[15%] Optimizing Phase 1 completed
+[25%] Optimizing Phase 2 completed
+Running inference ...
+[30%] Inferring Phase 0 completed
+[40%] Inferring Phase 1 completed
+[50%] Inferring Phase 2 completed
+[55%] Inferring Phase 3 completed
+Running technical mapping ...
+[60%] Tech-Mapping Phase 0 completed
+[65%] Tech-Mapping Phase 1 completed
+[75%] Tech-Mapping Phase 2 completed
+[80%] Tech-Mapping Phase 3 completed
+[90%] Tech-Mapping Phase 4 completed
+[95%] Generate netlist file "C:\Gowin\Projects\BOCHv3_FPGA\src\src\WrapFifoChain\FifoCtrlCp2444\temp\FIFO_SC\FifoCtrlCp2444.vg" completed
+Generate template file "C:\Gowin\Projects\BOCHv3_FPGA\src\src\WrapFifoChain\FifoCtrlCp2444\temp\FIFO_SC\FifoCtrlCp2444_tmp.v" completed
+[100%] Generate report file "C:\Gowin\Projects\BOCHv3_FPGA\src\src\WrapFifoChain\FifoCtrlCp2444\temp\FIFO_SC\FifoCtrlCp2444_syn.rpt.html" completed
+GowinSynthesis finish

+ 213 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/FifoCtrlCp2444.vg

@@ -0,0 +1,213 @@
+//
+//Written by GowinSynthesis
+//Tool Version "V1.9.9.03 (64-bit)"
+//Fri Nov 22 15:53:09 2024
+
+//Source file index table:
+//file0 "\C:/Gowin/Projects/BOCHv3_FPGA/src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/fifo_sc_hs_define.v"
+//file1 "\C:/Gowin/Projects/BOCHv3_FPGA/src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/fifo_sc_hs_parameter.v"
+//file2 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_SC_HS/data/fifo_sc_hs.v"
+//file3 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_SC_HS/data/fifo_sc_hs_top.v"
+`timescale 100 ps/100 ps
+`pragma protect begin_protected
+`pragma protect version="2.3"
+`pragma protect author="default"
+`pragma protect author_info="default"
+`pragma protect encrypt_agent="GOWIN"
+`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3"
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
+`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
+`pragma protect key_block
+JnZKJ7GaWVqDTszoy1iCRmKyKGMSHLaWm1japgoeI5ln2gYI1sxriYVd0aNeM4eiCTMzx0pKDdXz
+P99vGM4AhxvViICmU1WFMpRSoHum6dj2mmGd4ON+lhfqp6gSJTN1/JSrWj8CemGhSfRspWr7eFbv
+PuOOCsyDzoftY3DLJ23reHN0Ua+AXwukMupBAhj7qJicuinp1x8IaAluoFY3zp5dajSvgKQsczvs
+MLURMwoA47Wt/nDEEH1yjQgkjm27fqOwXZix+7K5Yr4hC38XWR5W9YuqfCSnwQ12/gQtEtMOGtdu
+S+f1ibT0m4sboaD1lgHAky6FI2Ar144lC2gg0g==
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=7872)
+`pragma protect data_keyowner="default-ip-vendor"
+`pragma protect data_keyname="default-ip-key"
+`pragma protect data_method="aes128-cfb"
+`pragma protect data_block
+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
+qo2t5tua
+`pragma protect end_protected
+module FifoCtrlCp2444 (
+  Data,
+  Clk,
+  WrEn,
+  RdEn,
+  Reset,
+  Q,
+  Empty,
+  Full
+)
+;
+input [0:0] Data;
+input Clk;
+input WrEn;
+input RdEn;
+input Reset;
+output [0:0] Q;
+output Empty;
+output Full;
+wire VCC;
+wire GND;
+  \~fifo_sc_hs.FifoCtrlCp2444  fifo_sc_hs_inst (
+    .Clk(Clk),
+    .Reset(Reset),
+    .WrEn(WrEn),
+    .RdEn(RdEn),
+    .Data(Data[0]),
+    .Empty(Empty),
+    .Full(Full),
+    .Q(Q[0])
+);
+  VCC VCC_cZ (
+    .V(VCC)
+);
+  GND GND_cZ (
+    .G(GND)
+);
+  GSR GSR (
+    .GSRI(VCC) 
+);
+endmodule /* FifoCtrlCp2444 */

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1567 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/FifoCtrlCp2444_syn.rpt.html


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

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

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

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

+ 23 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/FifoCtrlCp2444_tmp.v

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

+ 4 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/fifo_sc_hs_define.v

@@ -0,0 +1,4 @@
+`define module_name FifoCtrlCp2444
+`define getname(oriName,tmodule_name) \~oriName.tmodule_name 
+`define EBR_BASED
+`define FWFT

+ 3 - 0
src/src/WrapFifoChain/FifoCtrlCp2444/temp/FIFO_SC/fifo_sc_hs_parameter.v

@@ -0,0 +1,3 @@
+parameter DEPTH = 16;
+parameter DSIZE = 1;
+parameter ASIZE = 4;

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

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

+ 35 - 0
src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes.ipc

@@ -0,0 +1,35 @@
+[General]
+ipc_version=4
+file=FifoTfe2Bytes
+module=FifoTfe2Bytes
+target_device=gw1n9-022
+type=fifo_hs
+version=1.0
+
+[Config]
+AlmostEmptyFlag=false
+AlmostEmptyFlagItem=Empty_Single Threshold Constant Parameter
+AlmostFullFlag=false
+AlmostFullFlagItem=Full_Single Threshold Constant Parameter
+BSRAM=true
+ControlledByRdEn=false
+ECCSelected=false
+EmptyClear=1
+EmptySet=1
+EnReset=true
+FirstWordFallThrough=true
+FullClear=1
+FullSet=1
+LANG=0
+OutputRegistersSelected=false
+REG=false
+ReadDataNum=false
+ReadDataWidth=24
+ReadDepth=2
+ResetSynchronization=true
+SSRAM=false
+StandardFIFO=false
+Synthesis_tool=GowinSynthesis
+WriteDataNum=false
+WriteDataWidth=24
+WriteDepth=2

+ 187 - 0
src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes.v

@@ -0,0 +1,187 @@
+//
+//Written by GowinSynthesis
+//Tool Version "V1.9.9.03 (64-bit)"
+//Fri Nov 22 16:03:28 2024
+
+//Source file index table:
+//file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+`timescale 100 ps/100 ps
+`pragma protect begin_protected
+`pragma protect version="2.3"
+`pragma protect author="default"
+`pragma protect author_info="default"
+`pragma protect encrypt_agent="GOWIN"
+`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3"
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
+`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
+`pragma protect key_block
+hS3ZzrG6GhSoDMUaU34akA2hr7CpJ1XY1quGCcSQ2rSB9J3GfZH+ckKP6lXwQ3mhVzHAyeib/hzB
+A9L6j9Zsv8qHPfMXUXVoM0SiBoxGr+wAkVevzK+bVWRBuECq1CqsgNVNNnPin6O94st+KcP9NK9Z
+yyqO/fpHE96VQ30vAZcDHybyexgnpwiCLntSbx9O55DXt6FvqLuwlAGFki5SZqMB4EPVqmcY8pcX
++ifLayPE/UGAWylIZUP+12EEYl0N//kiPbhlzG7g1Wrp0u2UjoC6JiAu1M6LrCQ0BBPVmoJPVUaQ
+0YC6y+uoa1d1w/xE+iARWRj7f9iDrvCbKDSjcw==
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=6352)
+`pragma protect data_keyowner="default-ip-vendor"
+`pragma protect data_keyname="default-ip-key"
+`pragma protect data_method="aes128-cfb"
+`pragma protect data_block
+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
+kfCP2hpOQXKYEiUbsebH95bKxEdsFVOlRA==
+`pragma protect end_protected
+module FifoTfe2Bytes (
+  Data,
+  Reset,
+  WrClk,
+  RdClk,
+  WrEn,
+  RdEn,
+  Q,
+  Empty,
+  Full
+)
+;
+input [23:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [23:0] Q;
+output Empty;
+output Full;
+wire VCC;
+wire GND;
+  \~fifo.FifoTfe2Bytes  fifo_inst (
+    .Reset(Reset),
+    .RdClk(RdClk),
+    .WrClk(WrClk),
+    .WrEn(WrEn),
+    .RdEn(RdEn),
+    .Data(Data[23:0]),
+    .Empty(Empty),
+    .Full(Full),
+    .Q(Q[23:0])
+);
+  VCC VCC_cZ (
+    .V(VCC)
+);
+  GND GND_cZ (
+    .G(GND)
+);
+  GSR GSR (
+    .GSRI(VCC) 
+);
+endmodule /* FifoTfe2Bytes */

+ 353 - 0
src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes.vo

@@ -0,0 +1,353 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Post-PnR Simulation Model file
+//Tool Version: V1.9.9.03 (64-bit)
+//Created Time: Fri Nov 22 16:03:28 2024
+
+`timescale 100 ps/100 ps
+module FifoTfe2Bytes(
+	Data,
+	Reset,
+	WrClk,
+	RdClk,
+	WrEn,
+	RdEn,
+	Q,
+	Empty,
+	Full
+);
+input [23:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [23:0] Q;
+output Empty;
+output Full;
+wire [23:0] Data;
+wire Empty;
+wire Full;
+wire GND;
+wire [23:0] Q;
+wire RdClk;
+wire RdEn;
+wire Reset;
+wire VCC;
+wire WrClk;
+wire WrEn;
+wire \fifo_inst/n20_5 ;
+wire \fifo_inst/n26_4 ;
+wire \fifo_inst/n257_4 ;
+wire \fifo_inst/rempty_val ;
+wire \fifo_inst/wfull_val_7 ;
+wire \fifo_inst/wfull_val1 ;
+wire \fifo_inst/wfull_val1_0 ;
+wire \fifo_inst/Full_1 ;
+wire \fifo_inst/Equal.wbinnext_0_7 ;
+wire \fifo_inst/rempty_val_8 ;
+wire \fifo_inst/wfull_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:0] \fifo_inst/reset_r ;
+wire [1:0] \fifo_inst/reset_w ;
+wire [1:0] \fifo_inst/rbin_num ;
+wire [1:0] \fifo_inst/Equal.rq1_wptr ;
+wire [1:0] \fifo_inst/Equal.rq2_wptr ;
+wire [0:0] \fifo_inst/rptr ;
+wire [1:0] \fifo_inst/wptr ;
+wire [0:0] \fifo_inst/Equal.wbin ;
+wire [31:24] \fifo_inst/DO ;
+VCC VCC_cZ (
+  .V(VCC)
+);
+GND GND_cZ (
+  .G(GND)
+);
+GSR GSR (
+	.GSRI(VCC)
+);
+LUT4 \fifo_inst/n20_s1  (
+	.I0(\fifo_inst/Full_2 ),
+	.I1(\fifo_inst/Full_1_2 ),
+	.I2(\fifo_inst/Full_1 ),
+	.I3(WrEn),
+	.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])
+);
+defparam \fifo_inst/Equal.rgraynext_0_s0 .INIT=8'h1E;
+LUT3 \fifo_inst/Equal.wgraynext_0_s0  (
+	.I0(\fifo_inst/Equal.wbin [0]),
+	.I1(\fifo_inst/n20_5 ),
+	.I2(\fifo_inst/wptr [1]),
+	.F(\fifo_inst/Equal.wgraynext [0])
+);
+defparam \fifo_inst/Equal.wgraynext_0_s0 .INIT=8'h1E;
+LUT2 \fifo_inst/n257_s1  (
+	.I0(\fifo_inst/reset_w [1]),
+	.I1(\fifo_inst/wfull_val_7 ),
+	.F(\fifo_inst/n257_4 )
+);
+defparam \fifo_inst/n257_s1 .INIT=4'h4;
+LUT4 \fifo_inst/rempty_val_s3  (
+	.I0(\fifo_inst/Equal.rq2_wptr [1]),
+	.I1(\fifo_inst/rempty_val_8 ),
+	.I2(\fifo_inst/Equal.rq2_wptr [0]),
+	.I3(\fifo_inst/rbin_num_next [0]),
+	.F(\fifo_inst/rempty_val )
+);
+defparam \fifo_inst/rempty_val_s3 .INIT=16'h4221;
+LUT4 \fifo_inst/wfull_val_s3  (
+	.I0(\fifo_inst/wptr [0]),
+	.I1(\fifo_inst/wptr [1]),
+	.I2(\fifo_inst/rbin_num [1]),
+	.I3(\fifo_inst/rptr [0]),
+	.F(\fifo_inst/wfull_val_7 )
+);
+defparam \fifo_inst/wfull_val_s3 .INIT=16'h1428;
+LUT3 \fifo_inst/wfull_val1_s9  (
+	.I0(\fifo_inst/wfull_val1_3 ),
+	.I1(\fifo_inst/wfull_val1_2 ),
+	.I2(\fifo_inst/wfull_val1_0 ),
+	.F(\fifo_inst/wfull_val1 )
+);
+defparam \fifo_inst/wfull_val1_s9 .INIT=8'hAC;
+LUT3 \fifo_inst/wfull_val1_s10  (
+	.I0(\fifo_inst/wfull_val_7 ),
+	.I1(\fifo_inst/wfull_val1_0 ),
+	.I2(\fifo_inst/reset_w [1]),
+	.F(\fifo_inst/wfull_val1_0 )
+);
+defparam \fifo_inst/wfull_val1_s10 .INIT=8'h0E;
+LUT3 \fifo_inst/Full_d_s  (
+	.I0(\fifo_inst/Full_2 ),
+	.I1(\fifo_inst/Full_1_2 ),
+	.I2(\fifo_inst/Full_1 ),
+	.F(Full)
+);
+defparam \fifo_inst/Full_d_s .INIT=8'hAC;
+LUT3 \fifo_inst/Full_s8  (
+	.I0(\fifo_inst/wfull_val_7 ),
+	.I1(\fifo_inst/Full_1 ),
+	.I2(\fifo_inst/reset_w [1]),
+	.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 )
+);
+defparam \fifo_inst/Equal.wbinnext_0_s3 .INIT=4'h6;
+LUT3 \fifo_inst/Equal.wbinnext_1_s2  (
+	.I0(\fifo_inst/Equal.wbin [0]),
+	.I1(\fifo_inst/n20_5 ),
+	.I2(\fifo_inst/wptr [1]),
+	.F(\fifo_inst/Equal.wbinnext [1])
+);
+defparam \fifo_inst/Equal.wbinnext_1_s2 .INIT=8'h78;
+LUT4 \fifo_inst/rempty_val_s4  (
+	.I0(\fifo_inst/Equal.rq2_wptr [0]),
+	.I1(\fifo_inst/Equal.rq2_wptr [1]),
+	.I2(\fifo_inst/rbin_num [1]),
+	.I3(\fifo_inst/rbin_num [0]),
+	.F(\fifo_inst/rempty_val_8 )
+);
+defparam \fifo_inst/rempty_val_s4 .INIT=16'h871E;
+DFFP \fifo_inst/reset_r_0_s0  (
+	.D(GND),
+	.CLK(\fifo_inst/n4_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_r [0])
+);
+defparam \fifo_inst/reset_r_0_s0 .INIT=1'b1;
+DFFP \fifo_inst/reset_w_1_s0  (
+	.D(\fifo_inst/reset_w [0]),
+	.CLK(\fifo_inst/n9_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_w [1])
+);
+defparam \fifo_inst/reset_w_1_s0 .INIT=1'b1;
+DFFP \fifo_inst/reset_w_0_s0  (
+	.D(GND),
+	.CLK(\fifo_inst/n9_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_w [0])
+);
+defparam \fifo_inst/reset_w_0_s0 .INIT=1'b1;
+DFFC \fifo_inst/rbin_num_1_s0  (
+	.D(\fifo_inst/rbin_num_next [1]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rbin_num [1])
+);
+defparam \fifo_inst/rbin_num_1_s0 .INIT=1'b0;
+DFFC \fifo_inst/rbin_num_0_s0  (
+	.D(\fifo_inst/rbin_num_next [0]),
+	.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),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rptr [0])
+);
+defparam \fifo_inst/rptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_1_s0  (
+	.D(\fifo_inst/Equal.wbinnext [1]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wptr [1])
+);
+defparam \fifo_inst/wptr_1_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_0_s0  (
+	.D(\fifo_inst/Equal.wgraynext [0]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wptr [0])
+);
+defparam \fifo_inst/wptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.wbin_0_s0  (
+	.D(\fifo_inst/Equal.wbinnext_0_7 ),
+	.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  (
+	.D(\fifo_inst/rempty_val ),
+	.CLK(RdClk),
+	.PRESET(\fifo_inst/reset_r [1]),
+	.Q(Empty)
+);
+defparam \fifo_inst/Empty_s0 .INIT=1'b1;
+DFFP \fifo_inst/reset_r_1_s0  (
+	.D(\fifo_inst/reset_r [0]),
+	.CLK(\fifo_inst/n4_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_r [1])
+);
+defparam \fifo_inst/reset_r_1_s0 .INIT=1'b1;
+DFFC \fifo_inst/wfull_val1_s0  (
+	.D(\fifo_inst/wfull_val_7 ),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wfull_val1_2 )
+);
+defparam \fifo_inst/wfull_val1_s0 .INIT=1'b0;
+DFFP \fifo_inst/wfull_val1_s1  (
+	.D(\fifo_inst/wfull_val_7 ),
+	.CLK(WrClk),
+	.PRESET(\fifo_inst/n257_4 ),
+	.Q(\fifo_inst/wfull_val1_3 )
+);
+defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
+DFFC \fifo_inst/Full_s0  (
+	.D(\fifo_inst/wfull_val1 ),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/Full_1_2 )
+);
+defparam \fifo_inst/Full_s0 .INIT=1'b0;
+DFFP \fifo_inst/Full_s1  (
+	.D(\fifo_inst/wfull_val1 ),
+	.CLK(WrClk),
+	.PRESET(\fifo_inst/n257_4 ),
+	.Q(\fifo_inst/Full_2 )
+);
+defparam \fifo_inst/Full_s1 .INIT=1'b1;
+SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s  (
+	.CLKA(WrClk),
+	.CEA(\fifo_inst/n20_5 ),
+	.RESETA(GND),
+	.CLKB(RdClk),
+	.CEB(\fifo_inst/n26_4 ),
+	.RESETB(\fifo_inst/reset_r [1]),
+	.OCE(GND),
+	.BLKSELA({GND, GND, GND}),
+	.BLKSELB({GND, GND, GND}),
+	.DI({GND, GND, GND, GND, GND, GND, GND, GND, Data[23:0]}),
+	.ADA({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/Equal.wbin [0], GND, VCC, VCC, VCC, VCC}),
+	.ADB({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num_next [0], GND, GND, GND, GND, GND}),
+	.DO({\fifo_inst/DO [31:24], Q[23:0]})
+);
+defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .READ_MODE=1'b0;
+defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BIT_WIDTH_0=32;
+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;
+INV \fifo_inst/n4_s2  (
+	.I(RdClk),
+	.O(\fifo_inst/n4_6 )
+);
+INV \fifo_inst/n9_s2  (
+	.I(WrClk),
+	.O(\fifo_inst/n9_6 )
+);
+endmodule

+ 24 - 0
src/src/WrapFifoChain/FifoTfe2Bytes/FifoTfe2Bytes_tmp.v

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

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

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

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

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

+ 187 - 0
src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes.vg

@@ -0,0 +1,187 @@
+//
+//Written by GowinSynthesis
+//Tool Version "V1.9.9.03 (64-bit)"
+//Fri Nov 22 16:03:28 2024
+
+//Source file index table:
+//file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+`timescale 100 ps/100 ps
+`pragma protect begin_protected
+`pragma protect version="2.3"
+`pragma protect author="default"
+`pragma protect author_info="default"
+`pragma protect encrypt_agent="GOWIN"
+`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3"
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
+`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
+`pragma protect key_block
+hS3ZzrG6GhSoDMUaU34akA2hr7CpJ1XY1quGCcSQ2rSB9J3GfZH+ckKP6lXwQ3mhVzHAyeib/hzB
+A9L6j9Zsv8qHPfMXUXVoM0SiBoxGr+wAkVevzK+bVWRBuECq1CqsgNVNNnPin6O94st+KcP9NK9Z
+yyqO/fpHE96VQ30vAZcDHybyexgnpwiCLntSbx9O55DXt6FvqLuwlAGFki5SZqMB4EPVqmcY8pcX
++ifLayPE/UGAWylIZUP+12EEYl0N//kiPbhlzG7g1Wrp0u2UjoC6JiAu1M6LrCQ0BBPVmoJPVUaQ
+0YC6y+uoa1d1w/xE+iARWRj7f9iDrvCbKDSjcw==
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=6352)
+`pragma protect data_keyowner="default-ip-vendor"
+`pragma protect data_keyname="default-ip-key"
+`pragma protect data_method="aes128-cfb"
+`pragma protect data_block
+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
+kfCP2hpOQXKYEiUbsebH95bKxEdsFVOlRA==
+`pragma protect end_protected
+module FifoTfe2Bytes (
+  Data,
+  Reset,
+  WrClk,
+  RdClk,
+  WrEn,
+  RdEn,
+  Q,
+  Empty,
+  Full
+)
+;
+input [23:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [23:0] Q;
+output Empty;
+output Full;
+wire VCC;
+wire GND;
+  \~fifo.FifoTfe2Bytes  fifo_inst (
+    .Reset(Reset),
+    .RdClk(RdClk),
+    .WrClk(WrClk),
+    .WrEn(WrEn),
+    .RdEn(RdEn),
+    .Data(Data[23:0]),
+    .Empty(Empty),
+    .Full(Full),
+    .Q(Q[23:0])
+);
+  VCC VCC_cZ (
+    .V(VCC)
+);
+  GND GND_cZ (
+    .G(GND)
+);
+  GSR GSR (
+    .GSRI(VCC) 
+);
+endmodule /* FifoTfe2Bytes */

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


+ 46 - 0
src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_syn_resource.html

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

+ 2 - 0
src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_syn_rsc.xml

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

+ 24 - 0
src/src/WrapFifoChain/FifoTfe2Bytes/temp/FIFOHS/FifoTfe2Bytes_tmp.v

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

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

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

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

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

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

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

+ 35 - 0
src/src/WrapFifoChain/FifoTfe4Bytes/FifoTfe4Bytes.ipc

@@ -0,0 +1,35 @@
+[General]
+ipc_version=4
+file=FifoTfe4Bytes
+module=FifoTfe4Bytes
+target_device=gw1n9-022
+type=fifo_hs
+version=1.0
+
+[Config]
+AlmostEmptyFlag=false
+AlmostEmptyFlagItem=Empty_Single Threshold Constant Parameter
+AlmostFullFlag=false
+AlmostFullFlagItem=Full_Single Threshold Constant Parameter
+BSRAM=true
+ControlledByRdEn=false
+ECCSelected=false
+EmptyClear=1
+EmptySet=1
+EnReset=true
+FirstWordFallThrough=true
+FullClear=1
+FullSet=1
+LANG=0
+OutputRegistersSelected=false
+REG=false
+ReadDataNum=false
+ReadDataWidth=32
+ReadDepth=2
+ResetSynchronization=true
+SSRAM=false
+StandardFIFO=false
+Synthesis_tool=GowinSynthesis
+WriteDataNum=false
+WriteDataWidth=32
+WriteDepth=2

+ 186 - 0
src/src/WrapFifoChain/FifoTfe4Bytes/FifoTfe4Bytes.v

@@ -0,0 +1,186 @@
+//
+//Written by GowinSynthesis
+//Tool Version "V1.9.9.03 (64-bit)"
+//Fri Nov 22 16:04:43 2024
+
+//Source file index table:
+//file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+`timescale 100 ps/100 ps
+`pragma protect begin_protected
+`pragma protect version="2.3"
+`pragma protect author="default"
+`pragma protect author_info="default"
+`pragma protect encrypt_agent="GOWIN"
+`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3"
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
+`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
+`pragma protect key_block
+j6k58xrOQ8NiTqxpDvExvVWMNOVIR/lcfZqrbnK1rZSnt+h2pkYESg+2+aOY7tIb67oNaN/2soOE
+ITv8IjkNrSdsNbdZ+Wty97ml+ogpICKi4iMdF99xjcvQl1y1gQtGpW8fqnvb9a8mnGIb4Pa90SnS
+M+29p3fwauL859715opNNp6auo2V7pE9bcCthLizzJN8uryiF1wJmkP9mt/fp0v7KbgH7ggBJBER
+t3i749XXkP6myjatDfHepUHirhr7yIABPJNPzEjSjMUQkpQ+l5fA8CFSQxlhN29R68s+5usIngUe
+88Ko0yI0dHTZsEVnleAM44Snle2GJb1wBpYyRQ==
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=6288)
+`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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
+PKwDKgs7jfaY4CMfOtbtmffk
+`pragma protect end_protected
+module FifoTfe4Bytes (
+  Data,
+  Reset,
+  WrClk,
+  RdClk,
+  WrEn,
+  RdEn,
+  Q,
+  Empty,
+  Full
+)
+;
+input [31:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [31:0] Q;
+output Empty;
+output Full;
+wire VCC;
+wire GND;
+  \~fifo.FifoTfe4Bytes  fifo_inst (
+    .Reset(Reset),
+    .RdClk(RdClk),
+    .WrClk(WrClk),
+    .WrEn(WrEn),
+    .RdEn(RdEn),
+    .Data(Data[31:0]),
+    .Empty(Empty),
+    .Full(Full),
+    .Q(Q[31:0])
+);
+  VCC VCC_cZ (
+    .V(VCC)
+);
+  GND GND_cZ (
+    .G(GND)
+);
+  GSR GSR (
+    .GSRI(VCC) 
+);
+endmodule /* FifoTfe4Bytes */

+ 352 - 0
src/src/WrapFifoChain/FifoTfe4Bytes/FifoTfe4Bytes.vo

@@ -0,0 +1,352 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Post-PnR Simulation Model file
+//Tool Version: V1.9.9.03 (64-bit)
+//Created Time: Fri Nov 22 16:04:44 2024
+
+`timescale 100 ps/100 ps
+module FifoTfe4Bytes(
+	Data,
+	Reset,
+	WrClk,
+	RdClk,
+	WrEn,
+	RdEn,
+	Q,
+	Empty,
+	Full
+);
+input [31:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [31:0] Q;
+output Empty;
+output Full;
+wire [31:0] Data;
+wire Empty;
+wire Full;
+wire GND;
+wire [31:0] Q;
+wire RdClk;
+wire RdEn;
+wire Reset;
+wire VCC;
+wire WrClk;
+wire WrEn;
+wire \fifo_inst/n20_5 ;
+wire \fifo_inst/n26_4 ;
+wire \fifo_inst/n297_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/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: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 ;
+VCC VCC_cZ (
+  .V(VCC)
+);
+GND GND_cZ (
+  .G(GND)
+);
+GSR GSR (
+	.GSRI(VCC)
+);
+LUT4 \fifo_inst/n20_s1  (
+	.I0(\fifo_inst/Full_2 ),
+	.I1(\fifo_inst/Full_1_2 ),
+	.I2(\fifo_inst/Full_1 ),
+	.I3(WrEn),
+	.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])
+);
+defparam \fifo_inst/Equal.rgraynext_0_s0 .INIT=8'h1E;
+LUT3 \fifo_inst/Equal.wgraynext_0_s0  (
+	.I0(\fifo_inst/Equal.wbin [0]),
+	.I1(\fifo_inst/n20_5 ),
+	.I2(\fifo_inst/wptr [1]),
+	.F(\fifo_inst/Equal.wgraynext [0])
+);
+defparam \fifo_inst/Equal.wgraynext_0_s0 .INIT=8'h1E;
+LUT2 \fifo_inst/n297_s1  (
+	.I0(\fifo_inst/reset_w [1]),
+	.I1(\fifo_inst/wfull_val_7 ),
+	.F(\fifo_inst/n297_4 )
+);
+defparam \fifo_inst/n297_s1 .INIT=4'h4;
+LUT4 \fifo_inst/rempty_val_s3  (
+	.I0(\fifo_inst/Equal.rq2_wptr [1]),
+	.I1(\fifo_inst/rempty_val_8 ),
+	.I2(\fifo_inst/Equal.rq2_wptr [0]),
+	.I3(\fifo_inst/rbin_num_next [0]),
+	.F(\fifo_inst/rempty_val )
+);
+defparam \fifo_inst/rempty_val_s3 .INIT=16'h4221;
+LUT4 \fifo_inst/wfull_val_s3  (
+	.I0(\fifo_inst/wptr [0]),
+	.I1(\fifo_inst/wptr [1]),
+	.I2(\fifo_inst/rbin_num [1]),
+	.I3(\fifo_inst/rptr [0]),
+	.F(\fifo_inst/wfull_val_7 )
+);
+defparam \fifo_inst/wfull_val_s3 .INIT=16'h1428;
+LUT3 \fifo_inst/wfull_val1_s9  (
+	.I0(\fifo_inst/wfull_val1_3 ),
+	.I1(\fifo_inst/wfull_val1_2 ),
+	.I2(\fifo_inst/wfull_val1_0 ),
+	.F(\fifo_inst/wfull_val1 )
+);
+defparam \fifo_inst/wfull_val1_s9 .INIT=8'hAC;
+LUT3 \fifo_inst/wfull_val1_s10  (
+	.I0(\fifo_inst/wfull_val_7 ),
+	.I1(\fifo_inst/wfull_val1_0 ),
+	.I2(\fifo_inst/reset_w [1]),
+	.F(\fifo_inst/wfull_val1_0 )
+);
+defparam \fifo_inst/wfull_val1_s10 .INIT=8'h0E;
+LUT3 \fifo_inst/Full_d_s  (
+	.I0(\fifo_inst/Full_2 ),
+	.I1(\fifo_inst/Full_1_2 ),
+	.I2(\fifo_inst/Full_1 ),
+	.F(Full)
+);
+defparam \fifo_inst/Full_d_s .INIT=8'hAC;
+LUT3 \fifo_inst/Full_s8  (
+	.I0(\fifo_inst/wfull_val_7 ),
+	.I1(\fifo_inst/Full_1 ),
+	.I2(\fifo_inst/reset_w [1]),
+	.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 )
+);
+defparam \fifo_inst/Equal.wbinnext_0_s3 .INIT=4'h6;
+LUT3 \fifo_inst/Equal.wbinnext_1_s2  (
+	.I0(\fifo_inst/Equal.wbin [0]),
+	.I1(\fifo_inst/n20_5 ),
+	.I2(\fifo_inst/wptr [1]),
+	.F(\fifo_inst/Equal.wbinnext [1])
+);
+defparam \fifo_inst/Equal.wbinnext_1_s2 .INIT=8'h78;
+LUT4 \fifo_inst/rempty_val_s4  (
+	.I0(\fifo_inst/Equal.rq2_wptr [0]),
+	.I1(\fifo_inst/Equal.rq2_wptr [1]),
+	.I2(\fifo_inst/rbin_num [1]),
+	.I3(\fifo_inst/rbin_num [0]),
+	.F(\fifo_inst/rempty_val_8 )
+);
+defparam \fifo_inst/rempty_val_s4 .INIT=16'h871E;
+DFFP \fifo_inst/reset_r_0_s0  (
+	.D(GND),
+	.CLK(\fifo_inst/n4_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_r [0])
+);
+defparam \fifo_inst/reset_r_0_s0 .INIT=1'b1;
+DFFP \fifo_inst/reset_w_1_s0  (
+	.D(\fifo_inst/reset_w [0]),
+	.CLK(\fifo_inst/n9_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_w [1])
+);
+defparam \fifo_inst/reset_w_1_s0 .INIT=1'b1;
+DFFP \fifo_inst/reset_w_0_s0  (
+	.D(GND),
+	.CLK(\fifo_inst/n9_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_w [0])
+);
+defparam \fifo_inst/reset_w_0_s0 .INIT=1'b1;
+DFFC \fifo_inst/rbin_num_1_s0  (
+	.D(\fifo_inst/rbin_num_next [1]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rbin_num [1])
+);
+defparam \fifo_inst/rbin_num_1_s0 .INIT=1'b0;
+DFFC \fifo_inst/rbin_num_0_s0  (
+	.D(\fifo_inst/rbin_num_next [0]),
+	.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),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rptr [0])
+);
+defparam \fifo_inst/rptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_1_s0  (
+	.D(\fifo_inst/Equal.wbinnext [1]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wptr [1])
+);
+defparam \fifo_inst/wptr_1_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_0_s0  (
+	.D(\fifo_inst/Equal.wgraynext [0]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wptr [0])
+);
+defparam \fifo_inst/wptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.wbin_0_s0  (
+	.D(\fifo_inst/Equal.wbinnext_0_7 ),
+	.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  (
+	.D(\fifo_inst/rempty_val ),
+	.CLK(RdClk),
+	.PRESET(\fifo_inst/reset_r [1]),
+	.Q(Empty)
+);
+defparam \fifo_inst/Empty_s0 .INIT=1'b1;
+DFFP \fifo_inst/reset_r_1_s0  (
+	.D(\fifo_inst/reset_r [0]),
+	.CLK(\fifo_inst/n4_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_r [1])
+);
+defparam \fifo_inst/reset_r_1_s0 .INIT=1'b1;
+DFFC \fifo_inst/wfull_val1_s0  (
+	.D(\fifo_inst/wfull_val_7 ),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wfull_val1_2 )
+);
+defparam \fifo_inst/wfull_val1_s0 .INIT=1'b0;
+DFFP \fifo_inst/wfull_val1_s1  (
+	.D(\fifo_inst/wfull_val_7 ),
+	.CLK(WrClk),
+	.PRESET(\fifo_inst/n297_4 ),
+	.Q(\fifo_inst/wfull_val1_3 )
+);
+defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
+DFFC \fifo_inst/Full_s0  (
+	.D(\fifo_inst/wfull_val1 ),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/Full_1_2 )
+);
+defparam \fifo_inst/Full_s0 .INIT=1'b0;
+DFFP \fifo_inst/Full_s1  (
+	.D(\fifo_inst/wfull_val1 ),
+	.CLK(WrClk),
+	.PRESET(\fifo_inst/n297_4 ),
+	.Q(\fifo_inst/Full_2 )
+);
+defparam \fifo_inst/Full_s1 .INIT=1'b1;
+SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s  (
+	.CLKA(WrClk),
+	.CEA(\fifo_inst/n20_5 ),
+	.RESETA(GND),
+	.CLKB(RdClk),
+	.CEB(\fifo_inst/n26_4 ),
+	.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}),
+	.DO({Q[31:0]})
+);
+defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .READ_MODE=1'b0;
+defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BIT_WIDTH_0=32;
+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;
+INV \fifo_inst/n4_s2  (
+	.I(RdClk),
+	.O(\fifo_inst/n4_6 )
+);
+INV \fifo_inst/n9_s2  (
+	.I(WrClk),
+	.O(\fifo_inst/n9_6 )
+);
+endmodule

+ 24 - 0
src/src/WrapFifoChain/FifoTfe4Bytes/FifoTfe4Bytes_tmp.v

@@ -0,0 +1,24 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Template file for instantiation
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 16:04:43 2024
+
+//Change the instance name and port connections to the signal names
+//--------Copy here to design--------
+
+	FifoTfe4Bytes your_instance_name(
+		.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-------------------

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

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

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

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

+ 186 - 0
src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/FifoTfe4Bytes.vg

@@ -0,0 +1,186 @@
+//
+//Written by GowinSynthesis
+//Tool Version "V1.9.9.03 (64-bit)"
+//Fri Nov 22 16:04:43 2024
+
+//Source file index table:
+//file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+`timescale 100 ps/100 ps
+`pragma protect begin_protected
+`pragma protect version="2.3"
+`pragma protect author="default"
+`pragma protect author_info="default"
+`pragma protect encrypt_agent="GOWIN"
+`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3"
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
+`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
+`pragma protect key_block
+j6k58xrOQ8NiTqxpDvExvVWMNOVIR/lcfZqrbnK1rZSnt+h2pkYESg+2+aOY7tIb67oNaN/2soOE
+ITv8IjkNrSdsNbdZ+Wty97ml+ogpICKi4iMdF99xjcvQl1y1gQtGpW8fqnvb9a8mnGIb4Pa90SnS
+M+29p3fwauL859715opNNp6auo2V7pE9bcCthLizzJN8uryiF1wJmkP9mt/fp0v7KbgH7ggBJBER
+t3i749XXkP6myjatDfHepUHirhr7yIABPJNPzEjSjMUQkpQ+l5fA8CFSQxlhN29R68s+5usIngUe
+88Ko0yI0dHTZsEVnleAM44Snle2GJb1wBpYyRQ==
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=6288)
+`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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
+PKwDKgs7jfaY4CMfOtbtmffk
+`pragma protect end_protected
+module FifoTfe4Bytes (
+  Data,
+  Reset,
+  WrClk,
+  RdClk,
+  WrEn,
+  RdEn,
+  Q,
+  Empty,
+  Full
+)
+;
+input [31:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [31:0] Q;
+output Empty;
+output Full;
+wire VCC;
+wire GND;
+  \~fifo.FifoTfe4Bytes  fifo_inst (
+    .Reset(Reset),
+    .RdClk(RdClk),
+    .WrClk(WrClk),
+    .WrEn(WrEn),
+    .RdEn(RdEn),
+    .Data(Data[31:0]),
+    .Empty(Empty),
+    .Full(Full),
+    .Q(Q[31:0])
+);
+  VCC VCC_cZ (
+    .V(VCC)
+);
+  GND GND_cZ (
+    .G(GND)
+);
+  GSR GSR (
+    .GSRI(VCC) 
+);
+endmodule /* FifoTfe4Bytes */

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


+ 46 - 0
src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/FifoTfe4Bytes_syn_resource.html

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

+ 2 - 0
src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/FifoTfe4Bytes_syn_rsc.xml

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

+ 24 - 0
src/src/WrapFifoChain/FifoTfe4Bytes/temp/FIFOHS/FifoTfe4Bytes_tmp.v

@@ -0,0 +1,24 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Template file for instantiation
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 16:04:43 2024
+
+//Change the instance name and port connections to the signal names
+//--------Copy here to design--------
+
+	FifoTfe4Bytes your_instance_name(
+		.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-------------------

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

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

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

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

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

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

+ 35 - 0
src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/FifoTfe6Bytes.ipc

@@ -0,0 +1,35 @@
+[General]
+ipc_version=4
+file=FifoTfe6Bytes
+module=FifoTfe6Bytes
+target_device=gw1n9-022
+type=fifo_hs
+version=1.0
+
+[Config]
+AlmostEmptyFlag=false
+AlmostEmptyFlagItem=Empty_Single Threshold Constant Parameter
+AlmostFullFlag=false
+AlmostFullFlagItem=Full_Single Threshold Constant Parameter
+BSRAM=true
+ControlledByRdEn=false
+ECCSelected=false
+EmptyClear=1
+EmptySet=1
+EnReset=true
+FirstWordFallThrough=true
+FullClear=1
+FullSet=1
+LANG=0
+OutputRegistersSelected=false
+REG=false
+ReadDataNum=false
+ReadDataWidth=48
+ReadDepth=2
+ResetSynchronization=true
+SSRAM=false
+StandardFIFO=false
+Synthesis_tool=GowinSynthesis
+WriteDataNum=false
+WriteDataWidth=48
+WriteDepth=2

+ 201 - 0
src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/FifoTfe6Bytes.v

@@ -0,0 +1,201 @@
+//
+//Written by GowinSynthesis
+//Tool Version "V1.9.9.03 (64-bit)"
+//Fri Nov 22 16:07:51 2024
+
+//Source file index table:
+//file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+`timescale 100 ps/100 ps
+`pragma protect begin_protected
+`pragma protect version="2.3"
+`pragma protect author="default"
+`pragma protect author_info="default"
+`pragma protect encrypt_agent="GOWIN"
+`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3"
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
+`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
+`pragma protect key_block
+eVx2GS+EpYkFF40Lcjcxf5wn1X7Bs6YgwecTcs+5taMkjCEDi36Sf4LsDW5msK5QSgjmSCgQZ+jP
+qypzGRxVpd+DFJwD9lTJTDI8nKtLrLBP934bD6TVf9U0poeTHom0wNINVwahZTiUs/P0/XmqOAim
+9dVOFxWiiRNxMIcN6YnP9ab2Zs+ikHTgD5Y2Xb/8ggidRROeQ2mS8BYxMfu8XH+jLsIGzXx6GU5Q
+HPsoPaN4UDeJB0FPeoEuMMnZgyYmFZz4ouFbNmHicr+XuuqNCtjWXVMRGgbKuaRVOkhMQr8LIDoz
+TMz6WSobcGnS0P51nPOCv6H7tiXNIwziR7+ekg==
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=7136)
+`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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
+std/lcv1FqX4Wk4=
+`pragma protect end_protected
+module FifoTfe6Bytes (
+  Data,
+  Reset,
+  WrClk,
+  RdClk,
+  WrEn,
+  RdEn,
+  Q,
+  Empty,
+  Full
+)
+;
+input [47:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [47:0] Q;
+output Empty;
+output Full;
+wire VCC;
+wire GND;
+  \~fifo.FifoTfe6Bytes  fifo_inst (
+    .Reset(Reset),
+    .RdClk(RdClk),
+    .WrClk(WrClk),
+    .WrEn(WrEn),
+    .RdEn(RdEn),
+    .Data(Data[47:0]),
+    .Empty(Empty),
+    .Full(Full),
+    .Q(Q[47:0])
+);
+  VCC VCC_cZ (
+    .V(VCC)
+);
+  GND GND_cZ (
+    .G(GND)
+);
+  GSR GSR (
+    .GSRI(VCC) 
+);
+endmodule /* FifoTfe6Bytes */

+ 374 - 0
src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/FifoTfe6Bytes.vo

@@ -0,0 +1,374 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Post-PnR Simulation Model file
+//Tool Version: V1.9.9.03 (64-bit)
+//Created Time: Fri Nov 22 16:07:51 2024
+
+`timescale 100 ps/100 ps
+module FifoTfe6Bytes(
+	Data,
+	Reset,
+	WrClk,
+	RdClk,
+	WrEn,
+	RdEn,
+	Q,
+	Empty,
+	Full
+);
+input [47:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [47:0] Q;
+output Empty;
+output Full;
+wire [47:0] Data;
+wire Empty;
+wire Full;
+wire GND;
+wire [47:0] Q;
+wire RdClk;
+wire RdEn;
+wire Reset;
+wire VCC;
+wire WrClk;
+wire WrEn;
+wire \fifo_inst/n20_5 ;
+wire \fifo_inst/n26_4 ;
+wire \fifo_inst/n377_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/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:0] \fifo_inst/reset_r ;
+wire [1:0] \fifo_inst/reset_w ;
+wire [1:0] \fifo_inst/rbin_num ;
+wire [1:0] \fifo_inst/Equal.rq1_wptr ;
+wire [1:0] \fifo_inst/Equal.rq2_wptr ;
+wire [0:0] \fifo_inst/rptr ;
+wire [1:0] \fifo_inst/wptr ;
+wire [0:0] \fifo_inst/Equal.wbin ;
+wire [31:16] \fifo_inst/DO ;
+VCC VCC_cZ (
+  .V(VCC)
+);
+GND GND_cZ (
+  .G(GND)
+);
+GSR GSR (
+	.GSRI(VCC)
+);
+LUT4 \fifo_inst/n20_s1  (
+	.I0(\fifo_inst/Full_2 ),
+	.I1(\fifo_inst/Full_1_2 ),
+	.I2(\fifo_inst/Full_1 ),
+	.I3(WrEn),
+	.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])
+);
+defparam \fifo_inst/Equal.rgraynext_0_s0 .INIT=8'h1E;
+LUT3 \fifo_inst/Equal.wgraynext_0_s0  (
+	.I0(\fifo_inst/Equal.wbin [0]),
+	.I1(\fifo_inst/n20_5 ),
+	.I2(\fifo_inst/wptr [1]),
+	.F(\fifo_inst/Equal.wgraynext [0])
+);
+defparam \fifo_inst/Equal.wgraynext_0_s0 .INIT=8'h1E;
+LUT2 \fifo_inst/n377_s1  (
+	.I0(\fifo_inst/reset_w [1]),
+	.I1(\fifo_inst/wfull_val_7 ),
+	.F(\fifo_inst/n377_4 )
+);
+defparam \fifo_inst/n377_s1 .INIT=4'h4;
+LUT4 \fifo_inst/rempty_val_s3  (
+	.I0(\fifo_inst/Equal.rq2_wptr [1]),
+	.I1(\fifo_inst/rempty_val_8 ),
+	.I2(\fifo_inst/Equal.rq2_wptr [0]),
+	.I3(\fifo_inst/rbin_num_next [0]),
+	.F(\fifo_inst/rempty_val )
+);
+defparam \fifo_inst/rempty_val_s3 .INIT=16'h4221;
+LUT4 \fifo_inst/wfull_val_s3  (
+	.I0(\fifo_inst/wptr [0]),
+	.I1(\fifo_inst/wptr [1]),
+	.I2(\fifo_inst/rbin_num [1]),
+	.I3(\fifo_inst/rptr [0]),
+	.F(\fifo_inst/wfull_val_7 )
+);
+defparam \fifo_inst/wfull_val_s3 .INIT=16'h1428;
+LUT3 \fifo_inst/wfull_val1_s9  (
+	.I0(\fifo_inst/wfull_val1_3 ),
+	.I1(\fifo_inst/wfull_val1_2 ),
+	.I2(\fifo_inst/wfull_val1_0 ),
+	.F(\fifo_inst/wfull_val1 )
+);
+defparam \fifo_inst/wfull_val1_s9 .INIT=8'hAC;
+LUT3 \fifo_inst/wfull_val1_s10  (
+	.I0(\fifo_inst/wfull_val_7 ),
+	.I1(\fifo_inst/wfull_val1_0 ),
+	.I2(\fifo_inst/reset_w [1]),
+	.F(\fifo_inst/wfull_val1_0 )
+);
+defparam \fifo_inst/wfull_val1_s10 .INIT=8'h0E;
+LUT3 \fifo_inst/Full_d_s  (
+	.I0(\fifo_inst/Full_2 ),
+	.I1(\fifo_inst/Full_1_2 ),
+	.I2(\fifo_inst/Full_1 ),
+	.F(Full)
+);
+defparam \fifo_inst/Full_d_s .INIT=8'hAC;
+LUT3 \fifo_inst/Full_s8  (
+	.I0(\fifo_inst/wfull_val_7 ),
+	.I1(\fifo_inst/Full_1 ),
+	.I2(\fifo_inst/reset_w [1]),
+	.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 )
+);
+defparam \fifo_inst/Equal.wbinnext_0_s3 .INIT=4'h6;
+LUT3 \fifo_inst/Equal.wbinnext_1_s2  (
+	.I0(\fifo_inst/Equal.wbin [0]),
+	.I1(\fifo_inst/n20_5 ),
+	.I2(\fifo_inst/wptr [1]),
+	.F(\fifo_inst/Equal.wbinnext [1])
+);
+defparam \fifo_inst/Equal.wbinnext_1_s2 .INIT=8'h78;
+LUT4 \fifo_inst/rempty_val_s4  (
+	.I0(\fifo_inst/Equal.rq2_wptr [0]),
+	.I1(\fifo_inst/Equal.rq2_wptr [1]),
+	.I2(\fifo_inst/rbin_num [1]),
+	.I3(\fifo_inst/rbin_num [0]),
+	.F(\fifo_inst/rempty_val_8 )
+);
+defparam \fifo_inst/rempty_val_s4 .INIT=16'h871E;
+DFFP \fifo_inst/reset_r_0_s0  (
+	.D(GND),
+	.CLK(\fifo_inst/n4_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_r [0])
+);
+defparam \fifo_inst/reset_r_0_s0 .INIT=1'b1;
+DFFP \fifo_inst/reset_w_1_s0  (
+	.D(\fifo_inst/reset_w [0]),
+	.CLK(\fifo_inst/n9_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_w [1])
+);
+defparam \fifo_inst/reset_w_1_s0 .INIT=1'b1;
+DFFP \fifo_inst/reset_w_0_s0  (
+	.D(GND),
+	.CLK(\fifo_inst/n9_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_w [0])
+);
+defparam \fifo_inst/reset_w_0_s0 .INIT=1'b1;
+DFFC \fifo_inst/rbin_num_1_s0  (
+	.D(\fifo_inst/rbin_num_next [1]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rbin_num [1])
+);
+defparam \fifo_inst/rbin_num_1_s0 .INIT=1'b0;
+DFFC \fifo_inst/rbin_num_0_s0  (
+	.D(\fifo_inst/rbin_num_next [0]),
+	.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),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rptr [0])
+);
+defparam \fifo_inst/rptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_1_s0  (
+	.D(\fifo_inst/Equal.wbinnext [1]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wptr [1])
+);
+defparam \fifo_inst/wptr_1_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_0_s0  (
+	.D(\fifo_inst/Equal.wgraynext [0]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wptr [0])
+);
+defparam \fifo_inst/wptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.wbin_0_s0  (
+	.D(\fifo_inst/Equal.wbinnext_0_7 ),
+	.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  (
+	.D(\fifo_inst/rempty_val ),
+	.CLK(RdClk),
+	.PRESET(\fifo_inst/reset_r [1]),
+	.Q(Empty)
+);
+defparam \fifo_inst/Empty_s0 .INIT=1'b1;
+DFFP \fifo_inst/reset_r_1_s0  (
+	.D(\fifo_inst/reset_r [0]),
+	.CLK(\fifo_inst/n4_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_r [1])
+);
+defparam \fifo_inst/reset_r_1_s0 .INIT=1'b1;
+DFFC \fifo_inst/wfull_val1_s0  (
+	.D(\fifo_inst/wfull_val_7 ),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wfull_val1_2 )
+);
+defparam \fifo_inst/wfull_val1_s0 .INIT=1'b0;
+DFFP \fifo_inst/wfull_val1_s1  (
+	.D(\fifo_inst/wfull_val_7 ),
+	.CLK(WrClk),
+	.PRESET(\fifo_inst/n377_4 ),
+	.Q(\fifo_inst/wfull_val1_3 )
+);
+defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
+DFFC \fifo_inst/Full_s0  (
+	.D(\fifo_inst/wfull_val1 ),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/Full_1_2 )
+);
+defparam \fifo_inst/Full_s0 .INIT=1'b0;
+DFFP \fifo_inst/Full_s1  (
+	.D(\fifo_inst/wfull_val1 ),
+	.CLK(WrClk),
+	.PRESET(\fifo_inst/n377_4 ),
+	.Q(\fifo_inst/Full_2 )
+);
+defparam \fifo_inst/Full_s1 .INIT=1'b1;
+SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s  (
+	.CLKA(WrClk),
+	.CEA(\fifo_inst/n20_5 ),
+	.RESETA(GND),
+	.CLKB(RdClk),
+	.CEB(\fifo_inst/n26_4 ),
+	.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}),
+	.DO({Q[31:0]})
+);
+defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .READ_MODE=1'b0;
+defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BIT_WIDTH_0=32;
+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;
+SDPB \fifo_inst/Equal.mem_Equal.mem_0_1_s  (
+	.CLKA(WrClk),
+	.CEA(\fifo_inst/n20_5 ),
+	.RESETA(GND),
+	.CLKB(RdClk),
+	.CEB(\fifo_inst/n26_4 ),
+	.RESETB(\fifo_inst/reset_r [1]),
+	.OCE(GND),
+	.BLKSELA({GND, GND, GND}),
+	.BLKSELB({GND, GND, GND}),
+	.DI({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, Data[47: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}),
+	.DO({\fifo_inst/DO [31:16], Q[47:32]})
+);
+defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .READ_MODE=1'b0;
+defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BIT_WIDTH_0=32;
+defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BIT_WIDTH_1=32;
+defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .RESET_MODE="ASYNC";
+defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BLK_SEL_0=3'b000;
+defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BLK_SEL_1=3'b000;
+INV \fifo_inst/n4_s2  (
+	.I(RdClk),
+	.O(\fifo_inst/n4_6 )
+);
+INV \fifo_inst/n9_s2  (
+	.I(WrClk),
+	.O(\fifo_inst/n9_6 )
+);
+endmodule

+ 24 - 0
src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/FifoTfe6Bytes_tmp.v

@@ -0,0 +1,24 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Template file for instantiation
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 16:07:51 2024
+
+//Change the instance name and port connections to the signal names
+//--------Copy here to design--------
+
+	FifoTfe6Bytes your_instance_name(
+		.Data(Data), //input [47: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 [47:0] Q
+		.Empty(Empty), //output Empty
+		.Full(Full) //output Full
+	);
+
+//--------Copy end-------------------

+ 20 - 0
src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FIFOHS.prj

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

+ 45 - 0
src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FifoTfe6Bytes.log

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

+ 201 - 0
src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FifoTfe6Bytes.vg

@@ -0,0 +1,201 @@
+//
+//Written by GowinSynthesis
+//Tool Version "V1.9.9.03 (64-bit)"
+//Fri Nov 22 16:07:51 2024
+
+//Source file index table:
+//file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+`timescale 100 ps/100 ps
+`pragma protect begin_protected
+`pragma protect version="2.3"
+`pragma protect author="default"
+`pragma protect author_info="default"
+`pragma protect encrypt_agent="GOWIN"
+`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3"
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
+`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
+`pragma protect key_block
+eVx2GS+EpYkFF40Lcjcxf5wn1X7Bs6YgwecTcs+5taMkjCEDi36Sf4LsDW5msK5QSgjmSCgQZ+jP
+qypzGRxVpd+DFJwD9lTJTDI8nKtLrLBP934bD6TVf9U0poeTHom0wNINVwahZTiUs/P0/XmqOAim
+9dVOFxWiiRNxMIcN6YnP9ab2Zs+ikHTgD5Y2Xb/8ggidRROeQ2mS8BYxMfu8XH+jLsIGzXx6GU5Q
+HPsoPaN4UDeJB0FPeoEuMMnZgyYmFZz4ouFbNmHicr+XuuqNCtjWXVMRGgbKuaRVOkhMQr8LIDoz
+TMz6WSobcGnS0P51nPOCv6H7tiXNIwziR7+ekg==
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=7136)
+`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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
+std/lcv1FqX4Wk4=
+`pragma protect end_protected
+module FifoTfe6Bytes (
+  Data,
+  Reset,
+  WrClk,
+  RdClk,
+  WrEn,
+  RdEn,
+  Q,
+  Empty,
+  Full
+)
+;
+input [47:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [47:0] Q;
+output Empty;
+output Full;
+wire VCC;
+wire GND;
+  \~fifo.FifoTfe6Bytes  fifo_inst (
+    .Reset(Reset),
+    .RdClk(RdClk),
+    .WrClk(WrClk),
+    .WrEn(WrEn),
+    .RdEn(RdEn),
+    .Data(Data[47:0]),
+    .Empty(Empty),
+    .Full(Full),
+    .Q(Q[47:0])
+);
+  VCC VCC_cZ (
+    .V(VCC)
+);
+  GND GND_cZ (
+    .G(GND)
+);
+  GSR GSR (
+    .GSRI(VCC) 
+);
+endmodule /* FifoTfe6Bytes */

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1300 - 0
src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FifoTfe6Bytes_syn.rpt.html


+ 46 - 0
src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FifoTfe6Bytes_syn_resource.html

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

+ 2 - 0
src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FifoTfe6Bytes_syn_rsc.xml

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

+ 24 - 0
src/src/WrapFifoChain/FifoTfe6Bytes/fifo_hs/temp/FIFOHS/FifoTfe6Bytes_tmp.v

@@ -0,0 +1,24 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Template file for instantiation
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 16:07:51 2024
+
+//Change the instance name and port connections to the signal names
+//--------Copy here to design--------
+
+	FifoTfe6Bytes your_instance_name(
+		.Data(Data), //input [47: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 [47:0] Q
+		.Empty(Empty), //output Empty
+		.Full(Full) //output Full
+	);
+
+//--------Copy end-------------------

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

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

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

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

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

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

+ 35 - 0
src/src/WrapFifoChain/FifoTfe7Bytes/FifoTfe7Bytes.ipc

@@ -0,0 +1,35 @@
+[General]
+ipc_version=4
+file=FifoTfe7Bytes
+module=FifoTfe2Bytes
+target_device=gw1n9-022
+type=fifo_hs
+version=1.0
+
+[Config]
+AlmostEmptyFlag=false
+AlmostEmptyFlagItem=Empty_Single Threshold Constant Parameter
+AlmostFullFlag=false
+AlmostFullFlagItem=Full_Dual Threshold Constant Parameter
+BSRAM=true
+ControlledByRdEn=false
+ECCSelected=false
+EmptyClear=1
+EmptySet=1
+EnReset=true
+FirstWordFallThrough=true
+FullClear=1
+FullSet=1
+LANG=0
+OutputRegistersSelected=false
+REG=false
+ReadDataNum=false
+ReadDataWidth=56
+ReadDepth=2
+ResetSynchronization=true
+SSRAM=false
+StandardFIFO=false
+Synthesis_tool=GowinSynthesis
+WriteDataNum=false
+WriteDataWidth=56
+WriteDepth=2

+ 200 - 0
src/src/WrapFifoChain/FifoTfe7Bytes/FifoTfe7Bytes.v

@@ -0,0 +1,200 @@
+//
+//Written by GowinSynthesis
+//Tool Version "V1.9.9.03 (64-bit)"
+//Fri Nov 22 16:10:39 2024
+
+//Source file index table:
+//file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+`timescale 100 ps/100 ps
+`pragma protect begin_protected
+`pragma protect version="2.3"
+`pragma protect author="default"
+`pragma protect author_info="default"
+`pragma protect encrypt_agent="GOWIN"
+`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3"
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
+`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
+`pragma protect key_block
+C5fLb2KxIhKnQirCC/KZ5sfPTjLqghcylp11BntEaEweKJe5CJcVbHpVkkr664QmVjQrgNPK5WZY
+8p4C7MtDREwqkAGbSoMCUfLFFCNL4iiBTK8eKtVjEuIk5QT9Wuw0/IAUbNzouCb+wi84KI+ke+pB
+EOp+UGM8ZtlaF0wZPeiGX45BrdoqePgJ+gs/I/85yYFfutqYHGkBekcPLIC9Mz6H+QykDF/IYj1P
+GvD2aunMa/hBACYVcSI7NTLgRY1w6asJ/8bwInSKqluaGgsedXPxaohyWFR9wYXFSaY/Xv8wIWiQ
++pfQH0mMgLnxdZ7w6KkL07UfaqpA4YTfcqQl7w==
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=7104)
+`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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
+`pragma protect end_protected
+module FifoTfe2Bytes (
+  Data,
+  Reset,
+  WrClk,
+  RdClk,
+  WrEn,
+  RdEn,
+  Q,
+  Empty,
+  Full
+)
+;
+input [55:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [55:0] Q;
+output Empty;
+output Full;
+wire VCC;
+wire GND;
+  \~fifo.FifoTfe2Bytes  fifo_inst (
+    .Reset(Reset),
+    .RdClk(RdClk),
+    .WrClk(WrClk),
+    .WrEn(WrEn),
+    .RdEn(RdEn),
+    .Data(Data[55:0]),
+    .Empty(Empty),
+    .Full(Full),
+    .Q(Q[55:0])
+);
+  VCC VCC_cZ (
+    .V(VCC)
+);
+  GND GND_cZ (
+    .G(GND)
+);
+  GSR GSR (
+    .GSRI(VCC) 
+);
+endmodule /* FifoTfe2Bytes */

+ 374 - 0
src/src/WrapFifoChain/FifoTfe7Bytes/FifoTfe7Bytes.vo

@@ -0,0 +1,374 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Post-PnR Simulation Model file
+//Tool Version: V1.9.9.03 (64-bit)
+//Created Time: Fri Nov 22 16:10:39 2024
+
+`timescale 100 ps/100 ps
+module FifoTfe2Bytes(
+	Data,
+	Reset,
+	WrClk,
+	RdClk,
+	WrEn,
+	RdEn,
+	Q,
+	Empty,
+	Full
+);
+input [55:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [55:0] Q;
+output Empty;
+output Full;
+wire [55:0] Data;
+wire Empty;
+wire Full;
+wire GND;
+wire [55:0] Q;
+wire RdClk;
+wire RdEn;
+wire Reset;
+wire VCC;
+wire WrClk;
+wire WrEn;
+wire \fifo_inst/n20_5 ;
+wire \fifo_inst/n26_4 ;
+wire \fifo_inst/n417_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/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:0] \fifo_inst/reset_r ;
+wire [1:0] \fifo_inst/reset_w ;
+wire [1:0] \fifo_inst/rbin_num ;
+wire [1:0] \fifo_inst/Equal.rq1_wptr ;
+wire [1:0] \fifo_inst/Equal.rq2_wptr ;
+wire [0:0] \fifo_inst/rptr ;
+wire [1:0] \fifo_inst/wptr ;
+wire [0:0] \fifo_inst/Equal.wbin ;
+wire [31:24] \fifo_inst/DO ;
+VCC VCC_cZ (
+  .V(VCC)
+);
+GND GND_cZ (
+  .G(GND)
+);
+GSR GSR (
+	.GSRI(VCC)
+);
+LUT4 \fifo_inst/n20_s1  (
+	.I0(\fifo_inst/Full_2 ),
+	.I1(\fifo_inst/Full_1_2 ),
+	.I2(\fifo_inst/Full_1 ),
+	.I3(WrEn),
+	.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])
+);
+defparam \fifo_inst/Equal.rgraynext_0_s0 .INIT=8'h1E;
+LUT3 \fifo_inst/Equal.wgraynext_0_s0  (
+	.I0(\fifo_inst/Equal.wbin [0]),
+	.I1(\fifo_inst/n20_5 ),
+	.I2(\fifo_inst/wptr [1]),
+	.F(\fifo_inst/Equal.wgraynext [0])
+);
+defparam \fifo_inst/Equal.wgraynext_0_s0 .INIT=8'h1E;
+LUT2 \fifo_inst/n417_s1  (
+	.I0(\fifo_inst/reset_w [1]),
+	.I1(\fifo_inst/wfull_val_7 ),
+	.F(\fifo_inst/n417_4 )
+);
+defparam \fifo_inst/n417_s1 .INIT=4'h4;
+LUT4 \fifo_inst/rempty_val_s3  (
+	.I0(\fifo_inst/Equal.rq2_wptr [1]),
+	.I1(\fifo_inst/rempty_val_8 ),
+	.I2(\fifo_inst/Equal.rq2_wptr [0]),
+	.I3(\fifo_inst/rbin_num_next [0]),
+	.F(\fifo_inst/rempty_val )
+);
+defparam \fifo_inst/rempty_val_s3 .INIT=16'h4221;
+LUT4 \fifo_inst/wfull_val_s3  (
+	.I0(\fifo_inst/wptr [0]),
+	.I1(\fifo_inst/wptr [1]),
+	.I2(\fifo_inst/rbin_num [1]),
+	.I3(\fifo_inst/rptr [0]),
+	.F(\fifo_inst/wfull_val_7 )
+);
+defparam \fifo_inst/wfull_val_s3 .INIT=16'h1428;
+LUT3 \fifo_inst/wfull_val1_s9  (
+	.I0(\fifo_inst/wfull_val1_3 ),
+	.I1(\fifo_inst/wfull_val1_2 ),
+	.I2(\fifo_inst/wfull_val1_0 ),
+	.F(\fifo_inst/wfull_val1 )
+);
+defparam \fifo_inst/wfull_val1_s9 .INIT=8'hAC;
+LUT3 \fifo_inst/wfull_val1_s10  (
+	.I0(\fifo_inst/wfull_val_7 ),
+	.I1(\fifo_inst/wfull_val1_0 ),
+	.I2(\fifo_inst/reset_w [1]),
+	.F(\fifo_inst/wfull_val1_0 )
+);
+defparam \fifo_inst/wfull_val1_s10 .INIT=8'h0E;
+LUT3 \fifo_inst/Full_d_s  (
+	.I0(\fifo_inst/Full_2 ),
+	.I1(\fifo_inst/Full_1_2 ),
+	.I2(\fifo_inst/Full_1 ),
+	.F(Full)
+);
+defparam \fifo_inst/Full_d_s .INIT=8'hAC;
+LUT3 \fifo_inst/Full_s8  (
+	.I0(\fifo_inst/wfull_val_7 ),
+	.I1(\fifo_inst/Full_1 ),
+	.I2(\fifo_inst/reset_w [1]),
+	.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 )
+);
+defparam \fifo_inst/Equal.wbinnext_0_s3 .INIT=4'h6;
+LUT3 \fifo_inst/Equal.wbinnext_1_s2  (
+	.I0(\fifo_inst/Equal.wbin [0]),
+	.I1(\fifo_inst/n20_5 ),
+	.I2(\fifo_inst/wptr [1]),
+	.F(\fifo_inst/Equal.wbinnext [1])
+);
+defparam \fifo_inst/Equal.wbinnext_1_s2 .INIT=8'h78;
+LUT4 \fifo_inst/rempty_val_s4  (
+	.I0(\fifo_inst/Equal.rq2_wptr [0]),
+	.I1(\fifo_inst/Equal.rq2_wptr [1]),
+	.I2(\fifo_inst/rbin_num [1]),
+	.I3(\fifo_inst/rbin_num [0]),
+	.F(\fifo_inst/rempty_val_8 )
+);
+defparam \fifo_inst/rempty_val_s4 .INIT=16'h871E;
+DFFP \fifo_inst/reset_r_0_s0  (
+	.D(GND),
+	.CLK(\fifo_inst/n4_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_r [0])
+);
+defparam \fifo_inst/reset_r_0_s0 .INIT=1'b1;
+DFFP \fifo_inst/reset_w_1_s0  (
+	.D(\fifo_inst/reset_w [0]),
+	.CLK(\fifo_inst/n9_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_w [1])
+);
+defparam \fifo_inst/reset_w_1_s0 .INIT=1'b1;
+DFFP \fifo_inst/reset_w_0_s0  (
+	.D(GND),
+	.CLK(\fifo_inst/n9_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_w [0])
+);
+defparam \fifo_inst/reset_w_0_s0 .INIT=1'b1;
+DFFC \fifo_inst/rbin_num_1_s0  (
+	.D(\fifo_inst/rbin_num_next [1]),
+	.CLK(RdClk),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rbin_num [1])
+);
+defparam \fifo_inst/rbin_num_1_s0 .INIT=1'b0;
+DFFC \fifo_inst/rbin_num_0_s0  (
+	.D(\fifo_inst/rbin_num_next [0]),
+	.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),
+	.CLEAR(\fifo_inst/reset_r [1]),
+	.Q(\fifo_inst/rptr [0])
+);
+defparam \fifo_inst/rptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_1_s0  (
+	.D(\fifo_inst/Equal.wbinnext [1]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wptr [1])
+);
+defparam \fifo_inst/wptr_1_s0 .INIT=1'b0;
+DFFC \fifo_inst/wptr_0_s0  (
+	.D(\fifo_inst/Equal.wgraynext [0]),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wptr [0])
+);
+defparam \fifo_inst/wptr_0_s0 .INIT=1'b0;
+DFFC \fifo_inst/Equal.wbin_0_s0  (
+	.D(\fifo_inst/Equal.wbinnext_0_7 ),
+	.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  (
+	.D(\fifo_inst/rempty_val ),
+	.CLK(RdClk),
+	.PRESET(\fifo_inst/reset_r [1]),
+	.Q(Empty)
+);
+defparam \fifo_inst/Empty_s0 .INIT=1'b1;
+DFFP \fifo_inst/reset_r_1_s0  (
+	.D(\fifo_inst/reset_r [0]),
+	.CLK(\fifo_inst/n4_6 ),
+	.PRESET(Reset),
+	.Q(\fifo_inst/reset_r [1])
+);
+defparam \fifo_inst/reset_r_1_s0 .INIT=1'b1;
+DFFC \fifo_inst/wfull_val1_s0  (
+	.D(\fifo_inst/wfull_val_7 ),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/wfull_val1_2 )
+);
+defparam \fifo_inst/wfull_val1_s0 .INIT=1'b0;
+DFFP \fifo_inst/wfull_val1_s1  (
+	.D(\fifo_inst/wfull_val_7 ),
+	.CLK(WrClk),
+	.PRESET(\fifo_inst/n417_4 ),
+	.Q(\fifo_inst/wfull_val1_3 )
+);
+defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
+DFFC \fifo_inst/Full_s0  (
+	.D(\fifo_inst/wfull_val1 ),
+	.CLK(WrClk),
+	.CLEAR(\fifo_inst/reset_w [1]),
+	.Q(\fifo_inst/Full_1_2 )
+);
+defparam \fifo_inst/Full_s0 .INIT=1'b0;
+DFFP \fifo_inst/Full_s1  (
+	.D(\fifo_inst/wfull_val1 ),
+	.CLK(WrClk),
+	.PRESET(\fifo_inst/n417_4 ),
+	.Q(\fifo_inst/Full_2 )
+);
+defparam \fifo_inst/Full_s1 .INIT=1'b1;
+SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s  (
+	.CLKA(WrClk),
+	.CEA(\fifo_inst/n20_5 ),
+	.RESETA(GND),
+	.CLKB(RdClk),
+	.CEB(\fifo_inst/n26_4 ),
+	.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}),
+	.DO({Q[31:0]})
+);
+defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .READ_MODE=1'b0;
+defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BIT_WIDTH_0=32;
+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;
+SDPB \fifo_inst/Equal.mem_Equal.mem_0_1_s  (
+	.CLKA(WrClk),
+	.CEA(\fifo_inst/n20_5 ),
+	.RESETA(GND),
+	.CLKB(RdClk),
+	.CEB(\fifo_inst/n26_4 ),
+	.RESETB(\fifo_inst/reset_r [1]),
+	.OCE(GND),
+	.BLKSELA({GND, GND, GND}),
+	.BLKSELB({GND, GND, GND}),
+	.DI({GND, GND, GND, GND, GND, GND, GND, GND, Data[55: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}),
+	.DO({\fifo_inst/DO [31:24], Q[55:32]})
+);
+defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .READ_MODE=1'b0;
+defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BIT_WIDTH_0=32;
+defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BIT_WIDTH_1=32;
+defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .RESET_MODE="ASYNC";
+defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BLK_SEL_0=3'b000;
+defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BLK_SEL_1=3'b000;
+INV \fifo_inst/n4_s2  (
+	.I(RdClk),
+	.O(\fifo_inst/n4_6 )
+);
+INV \fifo_inst/n9_s2  (
+	.I(WrClk),
+	.O(\fifo_inst/n9_6 )
+);
+endmodule

+ 24 - 0
src/src/WrapFifoChain/FifoTfe7Bytes/FifoTfe7Bytes_tmp.v

@@ -0,0 +1,24 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Template file for instantiation
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 16:10:39 2024
+
+//Change the instance name and port connections to the signal names
+//--------Copy here to design--------
+
+	FifoTfe2Bytes your_instance_name(
+		.Data(Data), //input [55: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 [55:0] Q
+		.Empty(Empty), //output Empty
+		.Full(Full) //output Full
+	);
+
+//--------Copy end-------------------

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

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

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

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

+ 200 - 0
src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/FifoTfe7Bytes.vg

@@ -0,0 +1,200 @@
+//
+//Written by GowinSynthesis
+//Tool Version "V1.9.9.03 (64-bit)"
+//Fri Nov 22 16:10:39 2024
+
+//Source file index table:
+//file0 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs.v"
+//file1 "\C:/Gowin/Gowin_V1.9.9.03_x64/IDE/ipcore/FIFO_HS/data/fifo_hs_top.v"
+`timescale 100 ps/100 ps
+`pragma protect begin_protected
+`pragma protect version="2.3"
+`pragma protect author="default"
+`pragma protect author_info="default"
+`pragma protect encrypt_agent="GOWIN"
+`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.3"
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
+`pragma protect key_keyowner="GOWIN",key_keyname="GWK2023-09",key_method="rsa"
+`pragma protect key_block
+C5fLb2KxIhKnQirCC/KZ5sfPTjLqghcylp11BntEaEweKJe5CJcVbHpVkkr664QmVjQrgNPK5WZY
+8p4C7MtDREwqkAGbSoMCUfLFFCNL4iiBTK8eKtVjEuIk5QT9Wuw0/IAUbNzouCb+wi84KI+ke+pB
+EOp+UGM8ZtlaF0wZPeiGX45BrdoqePgJ+gs/I/85yYFfutqYHGkBekcPLIC9Mz6H+QykDF/IYj1P
+GvD2aunMa/hBACYVcSI7NTLgRY1w6asJ/8bwInSKqluaGgsedXPxaohyWFR9wYXFSaY/Xv8wIWiQ
++pfQH0mMgLnxdZ7w6KkL07UfaqpA4YTfcqQl7w==
+
+`pragma protect encoding=(enctype="base64", line_length=76, bytes=7104)
+`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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
+`pragma protect end_protected
+module FifoTfe2Bytes (
+  Data,
+  Reset,
+  WrClk,
+  RdClk,
+  WrEn,
+  RdEn,
+  Q,
+  Empty,
+  Full
+)
+;
+input [55:0] Data;
+input Reset;
+input WrClk;
+input RdClk;
+input WrEn;
+input RdEn;
+output [55:0] Q;
+output Empty;
+output Full;
+wire VCC;
+wire GND;
+  \~fifo.FifoTfe2Bytes  fifo_inst (
+    .Reset(Reset),
+    .RdClk(RdClk),
+    .WrClk(WrClk),
+    .WrEn(WrEn),
+    .RdEn(RdEn),
+    .Data(Data[55:0]),
+    .Empty(Empty),
+    .Full(Full),
+    .Q(Q[55:0])
+);
+  VCC VCC_cZ (
+    .V(VCC)
+);
+  GND GND_cZ (
+    .G(GND)
+);
+  GSR GSR (
+    .GSRI(VCC) 
+);
+endmodule /* FifoTfe2Bytes */

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


+ 46 - 0
src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/FifoTfe7Bytes_syn_resource.html

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

+ 2 - 0
src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/FifoTfe7Bytes_syn_rsc.xml

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

+ 24 - 0
src/src/WrapFifoChain/FifoTfe7Bytes/temp/FIFOHS/FifoTfe7Bytes_tmp.v

@@ -0,0 +1,24 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved.
+//File Title: Template file for instantiation
+//Tool Version: V1.9.9.03 (64-bit)
+//Part Number: GW1N-UV9QN88C6/I5
+//Device: GW1N-9
+//Created Time: Fri Nov 22 16:10:39 2024
+
+//Change the instance name and port connections to the signal names
+//--------Copy here to design--------
+
+	FifoTfe2Bytes your_instance_name(
+		.Data(Data), //input [55: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 [55:0] Q
+		.Empty(Empty), //output Empty
+		.Full(Full) //output Full
+	);
+
+//--------Copy end-------------------

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

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

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

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

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

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