This commit is contained in:
2026-08-08 21:41:43 -07:00
parent a76a054387
commit 82c05ac4dc
102 changed files with 80937 additions and 633 deletions

5
.gitignore vendored
View File

@@ -6,4 +6,7 @@
__pycache__/
# Simulations
sim_build/
sim_build/
outflow/
work*/

9
.gitmodules vendored
View File

@@ -1,6 +1,9 @@
[submodule "src/common/crypto"]
path = src/common/crypto
url = ../../bslathi19/crypto.git
[submodule "src/common/taxi"]
path = src/common/taxi
url = ../../bslathi19/taxi.git
[submodule "src/common/fifo"]
path = src/common/fifo
url = https://github.com/olofk/fifo.git
[submodule "src/common/taxi-bsl"]
path = src/common/taxi-bsl
url = ../../bslathi19/taxi-bsl.git

1
Ti375C529_devkit/.lock Normal file
View File

@@ -0,0 +1 @@
4176154

View File

@@ -0,0 +1,50 @@
:02000004F90001
:1000000097110000938181AC23A00182732540F1F8
:1000100015C503A5018275DD0F0020020F10000039
:1000200083A7C181014581450146828723AEA18016
:100030000F001001054523A0A182828013818192C7
:1000400013850181938501811386C18163FAC500FF
:100050008322050023A0550011059105E3EAC5FEA2
:100060001385C181938581826377B50023200500C4
:0E0070001105E36DB5FEDD2A192001A0828086
:10007E00B70701E81307E01098C7B70701E81D4757
:10008E00D8C771A8B70603E8416791067D179C4251
:10009E00F98FF5DF856793870780370703E81CC361
:1000AE008280B70603E8416791067D179C42F98F5F
:1000BE00F5DF13070020B70703E898C3370703E8F7
:1000CE0011071C43C183F5DFB70703E88843137597
:1000DE00F50F8280B70603E8416791067D179C42B3
:1000EE00F98FF5DF13650510B70703E888C3828023
:1000FE00B7C7B0F8E11794439386A60F984333879A
:10010E00E640E35D07FEB70603E8416791067D17FB
:10011E00130600109C42F98FE39EC7FE82804111A8
:10012E0006C622C426C2B70703E823A40700094760
:10013E00B70703E898D39546B70703E8D4D3B707B4
:10014E0003E898D71D47B70703E8D8D755371D3FA3
:10015E00B70603E8416791067D179C42F98FF5DFDC
:10016E00856793870788370703E81CC31305B00A12
:10017E009537093FB53FB7C7B0F8E11794431967F4
:10018E001307871ABA9698433387E640E35D07FE56
:10019E00B70603E8416791067D179C42F98FF5DF9C
:1001AE00856793870788370703E81CC31305F00993
:1001BE001537C53DB7C7B0F8E11794434967130724
:1001CE00874F2A84BA9698433387E640E35D07FE4D
:1001DE00553D393FB70603E8416791067D179C42AE
:1001EE00F98FF5DF856793870788370703E81CC308
:1001FE009307D009130590026304F4001305900EC3
:10020E00D13D4935F535B70603E8416791067D17AF
:10021E009C42F98FF5DF856793870788370703E8D8
:10022E001CC32D45453D130500046D3501455D3557
:10023E0001454D350145793D0564B70402009535FC
:10024E00A2872380A7000504E31B94FE253D0565C8
:10025E00F9332244B24092448567410182874111AD
:10026E0022C44AC097070000938747061704000070
:10027E001304C40506C626C233898740638B8700E4
:10028E001359294081441C40850411048297E3ECE4
:10029E0024FF9707000093876703170400001304D9
:1002AE00E4023389874013592940638987008144CA
:1002BE001C40850411048297E3EC24FFB2402244D3
:0802CE009244024941018280C3
:0C02D6000000000000000000000000001C
:04000005F9000000FE
:00000001FF

View File

@@ -0,0 +1,285 @@
# Efinity Interface Configuration
# Version: 2026.1.132
# Date: 2026-08-08 20:48
#
# Copyright (C) 2013 - 2026 Efinix Inc. All rights reserved.
#
# Device: Ti375C529
# Package: 529-ball FBGA (final)
# Project: Ti375C529_devkit
# Configuration mode: active (x1)
# Timing Model: C4 (final)
# Device setting
design.set_device_property("2A","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("2A","2A_MODE_SEL","2A")
design.set_device_property("2A","VOLTAGE","1.8","IOBANK")
design.set_device_property("2B","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("2B","2B_MODE_SEL","2B")
design.set_device_property("2B","VOLTAGE","1.8","IOBANK")
design.set_device_property("2C","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("2C","2C_MODE_SEL","2C")
design.set_device_property("2C","VOLTAGE","1.8","IOBANK")
design.set_device_property("2D","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("2D","2D_MODE_SEL","2D")
design.set_device_property("2D","VOLTAGE","1.8","IOBANK")
design.set_device_property("2E","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("2E","2E_MODE_SEL","2E")
design.set_device_property("2E","VOLTAGE","1.8","IOBANK")
design.set_device_property("4A_4B","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("4A_4B","4A_4B_MODE_SEL","4A_4B")
design.set_device_property("4A_4B","VOLTAGE","1.8","IOBANK")
design.set_device_property("4C","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("4C","4C_MODE_SEL","4C")
design.set_device_property("4C","VOLTAGE","1.8","IOBANK")
design.set_device_property("4D","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("4D","4D_MODE_SEL","4D")
design.set_device_property("4D","VOLTAGE","1.8","IOBANK")
design.set_device_property("BL2_BL3","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("BL2_BL3","BL2_BL3_MODE_SEL","BL2_BL3")
design.set_device_property("BL2_BL3","VOLTAGE","3.3","IOBANK")
design.set_device_property("BR0","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("BR0","BR0_MODE_SEL","BR0")
design.set_device_property("BR0","VOLTAGE","3.3","IOBANK")
design.set_device_property("BR3_BR4","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("BR3_BR4","BR3_BR4_MODE_SEL","BR3_BR4")
design.set_device_property("BR3_BR4","VOLTAGE","3.3","IOBANK")
design.set_device_property("TL1_TL5","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("TL1_TL5","TL1_TL5_MODE_SEL","TL1_TL5")
design.set_device_property("TL1_TL5","VOLTAGE","3.3","IOBANK")
design.set_device_property("TR0","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("TR0","TR0_MODE_SEL","TR0")
design.set_device_property("TR0","VOLTAGE","3.3","IOBANK")
design.set_device_property("TR1","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("TR1","TR1_MODE_SEL","TR1")
design.set_device_property("TR1","VOLTAGE","3.3","IOBANK")
design.set_device_property("TR2","DYNAMIC_VOLTAGE","0","IOBANK")
design.set_mode_sel_name("TR2","TR2_MODE_SEL","TR2")
design.set_device_property("TR2","VOLTAGE","3.3","IOBANK")
design.set_device_property("seu","ENA_DETECT","0","SEU")
design.set_device_property("cfg","CBSEL_PIN","cfg_CBSEL","RU")
design.set_device_property("cfg","CLK_PIN","","RU")
design.set_device_property("cfg","CONFIG_PIN","cfg_CONFIG","RU")
design.set_device_property("cfg","ENA_PIN","cfg_ENA","RU")
design.set_device_property("cfg","ERROR_PIN","cfg_ERROR","RU")
design.set_device_property("cfg","INVERT_CLK_EN","0","RU")
design.set_device_property("cfg","RECONFIG_EN","0","RU")
design.set_device_property("cfg","REMOTE_UPDATE_RETRIES","3","RU")
design.set_device_property("Bottom","CORE0_PIN","","CLKMUX")
design.set_device_property("Bottom","CORE1_PIN","","CLKMUX")
design.set_device_property("Bottom","CORE2_PIN","","CLKMUX")
design.set_device_property("Bottom","CORE3_PIN","","CLKMUX")
design.set_device_property("Bottom","DYN_MUX0_EN","0","CLKMUX")
design.set_device_property("Bottom","DYN_MUX7_EN","0","CLKMUX")
design.set_device_property("Left","CORE0_PIN","","CLKMUX")
design.set_device_property("Left","CORE1_PIN","","CLKMUX")
design.set_device_property("Left","CORE2_PIN","","CLKMUX")
design.set_device_property("Left","CORE3_PIN","","CLKMUX")
design.set_device_property("Left","DYN_MUX0_EN","0","CLKMUX")
design.set_device_property("Left","DYN_MUX7_EN","0","CLKMUX")
design.set_device_property("Right","CORE0_PIN","","CLKMUX")
design.set_device_property("Right","CORE1_PIN","","CLKMUX")
design.set_device_property("Right","CORE2_PIN","","CLKMUX")
design.set_device_property("Right","CORE3_PIN","","CLKMUX")
design.set_device_property("Right","DYN_MUX0_EN","0","CLKMUX")
design.set_device_property("Right","DYN_MUX7_EN","0","CLKMUX")
design.set_device_property("Top","CORE0_PIN","","CLKMUX")
design.set_device_property("Top","CORE1_PIN","","CLKMUX")
design.set_device_property("Top","CORE2_PIN","","CLKMUX")
design.set_device_property("Top","CORE3_PIN","","CLKMUX")
design.set_device_property("Top","DYN_MUX0_EN","0","CLKMUX")
design.set_device_property("Top","DYN_MUX7_EN","0","CLKMUX")
design.set_gpio_unused_state("INPUT_WEAK_PULLUP")
# Create instance
design.create_block("soc_jtag_inst1","JTAG")
design.create_block("qcrv32_inst1","SOC")
# Set property, non-defaults
design.set_property("soc_jtag_inst1","NAME","soc_jtag_inst1","JTAG")
design.set_property("soc_jtag_inst1","RESOURCE","JTAG_USER1","JTAG")
design.set_property("soc_jtag_inst1","CAPTURE","ut_jtagCtrl_capture","JTAG")
design.set_property("soc_jtag_inst1","DRCK","","JTAG")
design.set_property("soc_jtag_inst1","RESET","ut_jtagCtrl_reset","JTAG")
design.set_property("soc_jtag_inst1","RUNTEST","","JTAG")
design.set_property("soc_jtag_inst1","SEL","ut_jtagCtrl_enable","JTAG")
design.set_property("soc_jtag_inst1","SHIFT","ut_jtagCtrl_shift","JTAG")
design.set_property("soc_jtag_inst1","TCK","jtagCtrl_tck","JTAG")
design.set_property("soc_jtag_inst1","TDI","ut_jtagCtrl_tdi","JTAG")
design.set_property("soc_jtag_inst1","TMS","","JTAG")
design.set_property("soc_jtag_inst1","UPDATE","ut_jtagCtrl_update","JTAG")
design.set_property("soc_jtag_inst1","TDO","ut_jtagCtrl_tdo","JTAG")
design.set_property("qcrv32_inst1","AXIAINTERRUPT_PIN","axiAInterrupt","SOC")
design.set_property("qcrv32_inst1","AXIA_ARADDR_PIN","axiA_araddr","SOC")
design.set_property("qcrv32_inst1","AXIA_ARBURST_PIN","axiA_arburst","SOC")
design.set_property("qcrv32_inst1","AXIA_ARCACHE_PIN","axiA_arcache","SOC")
design.set_property("qcrv32_inst1","AXIA_ARLEN_PIN","axiA_arlen","SOC")
design.set_property("qcrv32_inst1","AXIA_ARLOCK_PIN","axiA_arlock","SOC")
design.set_property("qcrv32_inst1","AXIA_ARPROT_PIN","axiA_arprot","SOC")
design.set_property("qcrv32_inst1","AXIA_ARQOS_PIN","axiA_arqos","SOC")
design.set_property("qcrv32_inst1","AXIA_ARREADY_PIN","axiA_arready","SOC")
design.set_property("qcrv32_inst1","AXIA_ARREGION_PIN","axiA_arregion","SOC")
design.set_property("qcrv32_inst1","AXIA_ARSIZE_PIN","axiA_arsize","SOC")
design.set_property("qcrv32_inst1","AXIA_ARVALID_PIN","axiA_arvalid","SOC")
design.set_property("qcrv32_inst1","AXIA_AWADDR_PIN","axiA_awaddr","SOC")
design.set_property("qcrv32_inst1","AXIA_AWBURST_PIN","axiA_awburst","SOC")
design.set_property("qcrv32_inst1","AXIA_AWCACHE_PIN","axiA_awcache","SOC")
design.set_property("qcrv32_inst1","AXIA_AWLEN_PIN","axiA_awlen","SOC")
design.set_property("qcrv32_inst1","AXIA_AWLOCK_PIN","axiA_awlock","SOC")
design.set_property("qcrv32_inst1","AXIA_AWPROT_PIN","axiA_awprot","SOC")
design.set_property("qcrv32_inst1","AXIA_AWQOS_PIN","axiA_awqos","SOC")
design.set_property("qcrv32_inst1","AXIA_AWREADY_PIN","axiA_awready","SOC")
design.set_property("qcrv32_inst1","AXIA_AWREGION_PIN","axiA_awregion","SOC")
design.set_property("qcrv32_inst1","AXIA_AWSIZE_PIN","axiA_awsize","SOC")
design.set_property("qcrv32_inst1","AXIA_AWVALID_PIN","axiA_awvalid","SOC")
design.set_property("qcrv32_inst1","AXIA_BREADY_PIN","axiA_bready","SOC")
design.set_property("qcrv32_inst1","AXIA_BRESP_PIN","axiA_bresp","SOC")
design.set_property("qcrv32_inst1","AXIA_BVALID_PIN","axiA_bvalid","SOC")
design.set_property("qcrv32_inst1","AXIA_RDATA_PIN","axiA_rdata","SOC")
design.set_property("qcrv32_inst1","AXIA_RLAST_PIN","axiA_rlast","SOC")
design.set_property("qcrv32_inst1","AXIA_RREADY_PIN","axiA_rready","SOC")
design.set_property("qcrv32_inst1","AXIA_RRESP_PIN","axiA_rresp","SOC")
design.set_property("qcrv32_inst1","AXIA_RVALID_PIN","axiA_rvalid","SOC")
design.set_property("qcrv32_inst1","AXIA_WDATA_PIN","axiA_wdata","SOC")
design.set_property("qcrv32_inst1","AXIA_WLAST_PIN","axiA_wlast","SOC")
design.set_property("qcrv32_inst1","AXIA_WREADY_PIN","axiA_wready","SOC")
design.set_property("qcrv32_inst1","AXIA_WSTRB_PIN","axiA_wstrb","SOC")
design.set_property("qcrv32_inst1","AXIA_WVALID_PIN","axiA_wvalid","SOC")
design.set_property("qcrv32_inst1","AXI_MASTER_EN","1","SOC")
design.set_property("qcrv32_inst1","AXI_SLAVE_EN","1","SOC")
design.set_property("qcrv32_inst1","CPU0_CUSTOMINSTRUCTION_CMD_READY_PIN","cpu0_customInstruction_cmd_ready","SOC")
design.set_property("qcrv32_inst1","CPU0_CUSTOMINSTRUCTION_CMD_VALID_PIN","cpu0_customInstruction_cmd_valid","SOC")
design.set_property("qcrv32_inst1","CPU0_CUSTOMINSTRUCTION_FUNCTION_ID_PIN","cpu0_customInstruction_function_id","SOC")
design.set_property("qcrv32_inst1","CPU0_CUSTOMINSTRUCTION_INPUTS_0_PIN","cpu0_customInstruction_inputs_0","SOC")
design.set_property("qcrv32_inst1","CPU0_CUSTOMINSTRUCTION_INPUTS_1_PIN","cpu0_customInstruction_inputs_1","SOC")
design.set_property("qcrv32_inst1","CPU0_CUSTOMINSTRUCTION_OUTPUTS_0_PIN","cpu0_customInstruction_outputs_0","SOC")
design.set_property("qcrv32_inst1","CPU0_CUSTOMINSTRUCTION_RSP_READY_PIN","cpu0_customInstruction_rsp_ready","SOC")
design.set_property("qcrv32_inst1","CPU0_CUSTOMINSTRUCTION_RSP_VALID_PIN","cpu0_customInstruction_rsp_valid","SOC")
design.set_property("qcrv32_inst1","CPU1_CUSTOMINSTRUCTION_CMD_READY_PIN","cpu1_customInstruction_cmd_ready","SOC")
design.set_property("qcrv32_inst1","CPU1_CUSTOMINSTRUCTION_CMD_VALID_PIN","cpu1_customInstruction_cmd_valid","SOC")
design.set_property("qcrv32_inst1","CPU1_CUSTOMINSTRUCTION_FUNCTION_ID_PIN","cpu1_customInstruction_function_id","SOC")
design.set_property("qcrv32_inst1","CPU1_CUSTOMINSTRUCTION_INPUTS_0_PIN","cpu1_customInstruction_inputs_0","SOC")
design.set_property("qcrv32_inst1","CPU1_CUSTOMINSTRUCTION_INPUTS_1_PIN","cpu1_customInstruction_inputs_1","SOC")
design.set_property("qcrv32_inst1","CPU1_CUSTOMINSTRUCTION_OUTPUTS_0_PIN","cpu1_customInstruction_outputs_0","SOC")
design.set_property("qcrv32_inst1","CPU1_CUSTOMINSTRUCTION_RSP_READY_PIN","cpu1_customInstruction_rsp_ready","SOC")
design.set_property("qcrv32_inst1","CPU1_CUSTOMINSTRUCTION_RSP_VALID_PIN","cpu1_customInstruction_rsp_valid","SOC")
design.set_property("qcrv32_inst1","CPU2_CUSTOMINSTRUCTION_CMD_READY_PIN","cpu2_customInstruction_cmd_ready","SOC")
design.set_property("qcrv32_inst1","CPU2_CUSTOMINSTRUCTION_CMD_VALID_PIN","cpu2_customInstruction_cmd_valid","SOC")
design.set_property("qcrv32_inst1","CPU2_CUSTOMINSTRUCTION_FUNCTION_ID_PIN","cpu2_customInstruction_function_id","SOC")
design.set_property("qcrv32_inst1","CPU2_CUSTOMINSTRUCTION_INPUTS_0_PIN","cpu2_customInstruction_inputs_0","SOC")
design.set_property("qcrv32_inst1","CPU2_CUSTOMINSTRUCTION_INPUTS_1_PIN","cpu2_customInstruction_inputs_1","SOC")
design.set_property("qcrv32_inst1","CPU2_CUSTOMINSTRUCTION_OUTPUTS_0_PIN","cpu2_customInstruction_outputs_0","SOC")
design.set_property("qcrv32_inst1","CPU2_CUSTOMINSTRUCTION_RSP_READY_PIN","cpu2_customInstruction_rsp_ready","SOC")
design.set_property("qcrv32_inst1","CPU2_CUSTOMINSTRUCTION_RSP_VALID_PIN","cpu2_customInstruction_rsp_valid","SOC")
design.set_property("qcrv32_inst1","CPU3_CUSTOMINSTRUCTION_CMD_READY_PIN","cpu3_customInstruction_cmd_ready","SOC")
design.set_property("qcrv32_inst1","CPU3_CUSTOMINSTRUCTION_CMD_VALID_PIN","cpu3_customInstruction_cmd_valid","SOC")
design.set_property("qcrv32_inst1","CPU3_CUSTOMINSTRUCTION_FUNCTION_ID_PIN","cpu3_customInstruction_function_id","SOC")
design.set_property("qcrv32_inst1","CPU3_CUSTOMINSTRUCTION_INPUTS_0_PIN","cpu3_customInstruction_inputs_0","SOC")
design.set_property("qcrv32_inst1","CPU3_CUSTOMINSTRUCTION_INPUTS_1_PIN","cpu3_customInstruction_inputs_1","SOC")
design.set_property("qcrv32_inst1","CPU3_CUSTOMINSTRUCTION_OUTPUTS_0_PIN","cpu3_customInstruction_outputs_0","SOC")
design.set_property("qcrv32_inst1","CPU3_CUSTOMINSTRUCTION_RSP_READY_PIN","cpu3_customInstruction_rsp_ready","SOC")
design.set_property("qcrv32_inst1","CPU3_CUSTOMINSTRUCTION_RSP_VALID_PIN","cpu3_customInstruction_rsp_valid","SOC")
design.set_property("qcrv32_inst1","CUSTOM_INSTRUCTION_0_EN","1","SOC")
design.set_property("qcrv32_inst1","CUSTOM_INSTRUCTION_1_EN","1","SOC")
design.set_property("qcrv32_inst1","CUSTOM_INSTRUCTION_2_EN","1","SOC")
design.set_property("qcrv32_inst1","CUSTOM_INSTRUCTION_3_EN","1","SOC")
design.set_property("qcrv32_inst1","IO_ASYNCRESET_PIN","io_asyncReset","SOC")
design.set_property("qcrv32_inst1","IO_CFUCLK_INVERT_EN","0","SOC")
design.set_property("qcrv32_inst1","IO_CFUCLK_PIN","io_cfuClk","SOC")
design.set_property("qcrv32_inst1","IO_CFURESET_PIN","io_cfuReset","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AR_PAYLOAD_ADDR_PIN","io_ddrMasters_0_ar_payload_addr","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AR_PAYLOAD_BURST_PIN","io_ddrMasters_0_ar_payload_burst","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AR_PAYLOAD_CACHE_PIN","io_ddrMasters_0_ar_payload_cache","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AR_PAYLOAD_ID_PIN","io_ddrMasters_0_ar_payload_id","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AR_PAYLOAD_LEN_PIN","io_ddrMasters_0_ar_payload_len","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AR_PAYLOAD_LOCK_PIN","io_ddrMasters_0_ar_payload_lock","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AR_PAYLOAD_PROT_PIN","io_ddrMasters_0_ar_payload_prot","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AR_PAYLOAD_QOS_PIN","io_ddrMasters_0_ar_payload_qos","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AR_PAYLOAD_REGION_PIN","io_ddrMasters_0_ar_payload_region","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AR_PAYLOAD_SIZE_PIN","io_ddrMasters_0_ar_payload_size","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AR_READY_PIN","io_ddrMasters_0_ar_ready","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AR_VALID_PIN","io_ddrMasters_0_ar_valid","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_PAYLOAD_ADDR_PIN","io_ddrMasters_0_aw_payload_addr","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_PAYLOAD_ALLSTRB_PIN","io_ddrMasters_0_aw_payload_allStrb","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_PAYLOAD_BURST_PIN","io_ddrMasters_0_aw_payload_burst","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_PAYLOAD_CACHE_PIN","io_ddrMasters_0_aw_payload_cache","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_PAYLOAD_ID_PIN","io_ddrMasters_0_aw_payload_id","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_PAYLOAD_LEN_PIN","io_ddrMasters_0_aw_payload_len","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_PAYLOAD_LOCK_PIN","io_ddrMasters_0_aw_payload_lock","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_PAYLOAD_PROT_PIN","io_ddrMasters_0_aw_payload_prot","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_PAYLOAD_QOS_PIN","io_ddrMasters_0_aw_payload_qos","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_PAYLOAD_REGION_PIN","io_ddrMasters_0_aw_payload_region","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_PAYLOAD_SIZE_PIN","io_ddrMasters_0_aw_payload_size","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_READY_PIN","io_ddrMasters_0_aw_ready","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_AW_VALID_PIN","io_ddrMasters_0_aw_valid","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_B_PAYLOAD_ID_PIN","io_ddrMasters_0_b_payload_id","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_B_PAYLOAD_RESP_PIN","io_ddrMasters_0_b_payload_resp","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_B_READY_PIN","io_ddrMasters_0_b_ready","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_B_VALID_PIN","io_ddrMasters_0_b_valid","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_CLK_INVERT_EN","0","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_CLK_PIN","io_ddrMasters_0_clk","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_RESET_PIN","io_ddrMasters_0_reset","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_R_PAYLOAD_DATA_PIN","io_ddrMasters_0_r_payload_data","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_R_PAYLOAD_ID_PIN","io_ddrMasters_0_r_payload_id","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_R_PAYLOAD_LAST_PIN","io_ddrMasters_0_r_payload_last","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_R_PAYLOAD_RESP_PIN","io_ddrMasters_0_r_payload_resp","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_R_READY_PIN","io_ddrMasters_0_r_ready","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_R_VALID_PIN","io_ddrMasters_0_r_valid","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_W_PAYLOAD_DATA_PIN","io_ddrMasters_0_w_payload_data","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_W_PAYLOAD_LAST_PIN","io_ddrMasters_0_w_payload_last","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_W_PAYLOAD_STRB_PIN","io_ddrMasters_0_w_payload_strb","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_W_READY_PIN","io_ddrMasters_0_w_ready","SOC")
design.set_property("qcrv32_inst1","IO_DDRMASTERS_0_W_VALID_PIN","io_ddrMasters_0_w_valid","SOC")
design.set_property("qcrv32_inst1","IO_JTAG_TCK_INVERT_EN","0","SOC")
design.set_property("qcrv32_inst1","IO_JTAG_TCK_PIN","","SOC")
design.set_property("qcrv32_inst1","IO_JTAG_TDI_PIN","","SOC")
design.set_property("qcrv32_inst1","IO_JTAG_TDO_PIN","","SOC")
design.set_property("qcrv32_inst1","IO_JTAG_TMS_PIN","","SOC")
design.set_property("qcrv32_inst1","IO_PERIPHERALCLK_INVERT_EN","0","SOC")
design.set_property("qcrv32_inst1","IO_PERIPHERALCLK_PIN","io_peripheralClk","SOC")
design.set_property("qcrv32_inst1","IO_PERIPHERALRESET_PIN","io_peripheralReset","SOC")
design.set_property("qcrv32_inst1","IO_SYSTEMRESET_PIN","io_systemReset","SOC")
design.set_property("qcrv32_inst1","JTAGCTRL_CAPTURE_PIN","jtagCtrl_capture","SOC")
design.set_property("qcrv32_inst1","JTAGCTRL_ENABLE_PIN","jtagCtrl_enable","SOC")
design.set_property("qcrv32_inst1","JTAGCTRL_RESET_PIN","jtagCtrl_reset","SOC")
design.set_property("qcrv32_inst1","JTAGCTRL_SHIFT_PIN","jtagCtrl_shift","SOC")
design.set_property("qcrv32_inst1","JTAGCTRL_TCK_INVERT_EN","0","SOC")
design.set_property("qcrv32_inst1","JTAGCTRL_TCK_PIN","jtagCtrl_tck","SOC")
design.set_property("qcrv32_inst1","JTAGCTRL_TDI_PIN","jtagCtrl_tdi","SOC")
design.set_property("qcrv32_inst1","JTAGCTRL_TDO_PIN","jtagCtrl_tdo","SOC")
design.set_property("qcrv32_inst1","JTAGCTRL_UPDATE_PIN","jtagCtrl_update","SOC")
design.set_property("qcrv32_inst1","JTAG_TYPE","FPGA","SOC")
design.set_property("qcrv32_inst1","MEM_CLK_SOURCE","Clock 0","SOC")
design.set_property("qcrv32_inst1","OCR_FILE_PATH","EfxSapphireHpSoc_bootloader/default_bootloader.hex","SOC")
design.set_property("qcrv32_inst1","PIPELINE_SOC_AXI_MEM_INTERFACE_EN","0","SOC")
design.set_property("qcrv32_inst1","SYS_CLK_SOURCE","Clock 0","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTA_PIN","userInterruptA","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTB_PIN","userInterruptB","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTC_PIN","userInterruptC","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTD_PIN","userInterruptD","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTE_PIN","userInterruptE","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTF_PIN","userInterruptF","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTG_PIN","userInterruptG","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTH_PIN","userInterruptH","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTI_PIN","userInterruptI","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTJ_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTK_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTL_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTM_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTN_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTO_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTP_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTQ_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTR_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTS_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTT_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTU_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTV_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTW_PIN","","SOC")
design.set_property("qcrv32_inst1","USERINTERRUPTX_PIN","","SOC")
design.set_property("qcrv32_inst1","WRITEBUFFER_SOC_AXI_INTERFACE_EN","0","SOC")
# Set resource assignment
design.assign_resource("soc_jtag_inst1","JTAG_USER1","JTAG")
design.assign_resource("qcrv32_inst1","SOC_0","SOC")

View File

@@ -0,0 +1,853 @@
<?xml version="1.0" encoding="UTF-8"?>
<efxpt:design_db name="Ti375C529_devkit" device_def="Ti375C529" version="2026.1.132" db_version="20261009" last_change_date="Sat Aug 8 20:48:48 2026" xmlns:efxpt="http://www.efinixinc.com/peri_design_db" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.efinixinc.com/peri_design_db peri_design_db.xsd ">
<efxpt:device_info>
<efxpt:iobank_info>
<efxpt:iobank name="2A" iostd="1.8 V LVCMOS" is_dyn_voltage="false" mode_sel_name="2A_MODE_SEL"/>
<efxpt:iobank name="2B" iostd="1.8 V LVCMOS" is_dyn_voltage="false" mode_sel_name="2B_MODE_SEL"/>
<efxpt:iobank name="2C" iostd="1.8 V LVCMOS" is_dyn_voltage="false" mode_sel_name="2C_MODE_SEL"/>
<efxpt:iobank name="2D" iostd="1.8 V LVCMOS" is_dyn_voltage="false" mode_sel_name="2D_MODE_SEL"/>
<efxpt:iobank name="2E" iostd="1.8 V LVCMOS" is_dyn_voltage="false" mode_sel_name="2E_MODE_SEL"/>
<efxpt:iobank name="4A_4B" iostd="1.8 V LVCMOS" is_dyn_voltage="false" mode_sel_name="4A_4B_MODE_SEL"/>
<efxpt:iobank name="4C" iostd="1.8 V LVCMOS" is_dyn_voltage="false" mode_sel_name="4C_MODE_SEL"/>
<efxpt:iobank name="4D" iostd="1.8 V LVCMOS" is_dyn_voltage="false" mode_sel_name="4D_MODE_SEL"/>
<efxpt:iobank name="BL2_BL3" iostd="3.3 V LVCMOS" is_dyn_voltage="false" mode_sel_name="BL2_BL3_MODE_SEL"/>
<efxpt:iobank name="BR0" iostd="3.3 V LVCMOS" is_dyn_voltage="false" mode_sel_name="BR0_MODE_SEL"/>
<efxpt:iobank name="BR3_BR4" iostd="3.3 V LVCMOS" is_dyn_voltage="false" mode_sel_name="BR3_BR4_MODE_SEL"/>
<efxpt:iobank name="TL1_TL5" iostd="3.3 V LVCMOS" is_dyn_voltage="false" mode_sel_name="TL1_TL5_MODE_SEL"/>
<efxpt:iobank name="TR0" iostd="3.3 V LVCMOS" is_dyn_voltage="false" mode_sel_name="TR0_MODE_SEL"/>
<efxpt:iobank name="TR1" iostd="3.3 V LVCMOS" is_dyn_voltage="false" mode_sel_name="TR1_MODE_SEL"/>
<efxpt:iobank name="TR2" iostd="3.3 V LVCMOS" is_dyn_voltage="false" mode_sel_name="TR2_MODE_SEL"/>
</efxpt:iobank_info>
<efxpt:ctrl_info>
<efxpt:ctrl name="cfg" ctrl_def="CONFIG_CTRL0" clock_name="" is_clk_invert="false" cbsel_bus_name="cfg_CBSEL" config_ctrl_name="cfg_CONFIG" ena_capture_name="cfg_ENA" error_status_name="cfg_ERROR" um_signal_status_name="cfg_USR_STATUS" is_remote_update_enable="false" is_user_mode_enable="false">
<efxpt:gen_param>
<efxpt:param name="remote_update_retries" value="3" value_type="int"/>
</efxpt:gen_param>
</efxpt:ctrl>
</efxpt:ctrl_info>
<efxpt:seu_info>
<efxpt:seu name="seu" block_def="CONFIG_SEU0" mode="auto" ena_detect="false" wait_interval="16500000">
<efxpt:gen_pin>
<efxpt:pin name="seu_START" type_name="START" is_bus="false"/>
<efxpt:pin name="seu_INJECT_ERROR" type_name="INJECT_ERROR" is_bus="false"/>
<efxpt:pin name="seu_RST" type_name="RST" is_bus="false"/>
<efxpt:pin name="seu_CONFIG" type_name="CONFIG" is_bus="false"/>
<efxpt:pin name="seu_ERROR" type_name="ERROR" is_bus="false"/>
<efxpt:pin name="seu_DONE" type_name="DONE" is_bus="false"/>
</efxpt:gen_pin>
</efxpt:seu>
</efxpt:seu_info>
<efxpt:clkmux_info>
<efxpt:clkmux name="GCLKMUX_B" block_def="GCLKMUX_B" is_mux_bot0_dyn="false" is_mux_bot7_dyn="false">
<efxpt:gen_pin>
<efxpt:pin name="" type_name="ROUTE0" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ROUTE1" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ROUTE2" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ROUTE3" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="DYN_MUX_OUT_0" is_bus="false"/>
<efxpt:pin name="" type_name="DYN_MUX_OUT_7" is_bus="false"/>
<efxpt:pin name="" type_name="DYN_MUX_SEL_0" is_bus="true"/>
<efxpt:pin name="" type_name="DYN_MUX_SEL_7" is_bus="true"/>
</efxpt:gen_pin>
</efxpt:clkmux>
<efxpt:clkmux name="GCLKMUX_L" block_def="GCLKMUX_L" is_mux_bot0_dyn="false" is_mux_bot7_dyn="false">
<efxpt:gen_pin>
<efxpt:pin name="" type_name="ROUTE0" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ROUTE1" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ROUTE2" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ROUTE3" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="DYN_MUX_OUT_0" is_bus="false"/>
<efxpt:pin name="" type_name="DYN_MUX_OUT_7" is_bus="false"/>
<efxpt:pin name="" type_name="DYN_MUX_SEL_0" is_bus="true"/>
<efxpt:pin name="" type_name="DYN_MUX_SEL_7" is_bus="true"/>
</efxpt:gen_pin>
</efxpt:clkmux>
<efxpt:clkmux name="GCLKMUX_R" block_def="GCLKMUX_R" is_mux_bot0_dyn="false" is_mux_bot7_dyn="false">
<efxpt:gen_pin>
<efxpt:pin name="" type_name="ROUTE0" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ROUTE1" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ROUTE2" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ROUTE3" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="DYN_MUX_OUT_0" is_bus="false"/>
<efxpt:pin name="" type_name="DYN_MUX_OUT_7" is_bus="false"/>
<efxpt:pin name="" type_name="DYN_MUX_SEL_0" is_bus="true"/>
<efxpt:pin name="" type_name="DYN_MUX_SEL_7" is_bus="true"/>
</efxpt:gen_pin>
</efxpt:clkmux>
<efxpt:clkmux name="GCLKMUX_T" block_def="GCLKMUX_T" is_mux_bot0_dyn="false" is_mux_bot7_dyn="false">
<efxpt:gen_pin>
<efxpt:pin name="" type_name="ROUTE0" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ROUTE1" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ROUTE2" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ROUTE3" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="DYN_MUX_OUT_0" is_bus="false"/>
<efxpt:pin name="" type_name="DYN_MUX_OUT_7" is_bus="false"/>
<efxpt:pin name="" type_name="DYN_MUX_SEL_0" is_bus="true"/>
<efxpt:pin name="" type_name="DYN_MUX_SEL_7" is_bus="true"/>
</efxpt:gen_pin>
</efxpt:clkmux>
</efxpt:clkmux_info>
</efxpt:device_info>
<efxpt:gpio_info>
<efxpt:comp_gpio name="io_gpio_sw_n" gpio_def="GPIOL_52" mode="input" bus_name="" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="io_gpio_sw_n" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="io_gpio_sw_n_PULL_UP_ENA" dyn_delay_en_name="io_gpio_sw_n_DLY_ENA" dyn_delay_reset_name="io_gpio_sw_n_DLY_RST" dyn_delay_ctrl_name="io_gpio_sw_n_DLY_CTRL" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="phy_mdc" gpio_def="GPIOT_N_54" mode="output" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:output_config name="phy_mdc" name_ddio_lo="" register_option="none" clock_name="" is_clock_inverted="false" is_slew_rate="true" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="phy_mdio" gpio_def="GPIOT_P_55" mode="inout" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="phy_mdi" name_ddio_lo="" conn_type="normal" is_register="true" clock_name="io_tseClk" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="phy_mdio_PULL_UP_ENA" dyn_delay_en_name="phy_mdio_DLY_ENA" dyn_delay_reset_name="phy_mdio_DLY_RST" dyn_delay_ctrl_name="phy_mdio_DLY_CTRL" clkmux_buf_name=""/>
<efxpt:output_config name="phy_mdo" name_ddio_lo="" register_option="register" clock_name="io_tseClk" is_clock_inverted="false" is_slew_rate="true" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
<efxpt:output_enable_config name="phy_mdo_en" is_register="true" clock_name="io_tseClk" is_clock_inverted="false" name_oen="phy_mdio_OEN"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="phy_rstn" gpio_def="GPIOR_144" mode="inout" bus_name="" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="phy_rstn_IN" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="phy_rstn_PULL_UP_ENA" dyn_delay_en_name="phy_rstn_DLY_ENA" dyn_delay_reset_name="phy_rstn_DLY_RST" dyn_delay_ctrl_name="phy_rstn_DLY_CTRL" clkmux_buf_name=""/>
<efxpt:output_config name="phy_rstn_OUT" name_ddio_lo="" register_option="none" clock_name="" is_clock_inverted="false" is_slew_rate="false" tied_option="__gnd__" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
<efxpt:output_enable_config name="phy_rst" is_register="false" clock_name="" is_clock_inverted="false" name_oen="phy_rstn_OEN"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_rx_ctl" gpio_def="GPIOT_N_56" mode="input" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="rgmii_rx_ctl_HI" name_ddio_lo="rgmii_rx_ctl_LO" conn_type="normal" is_register="true" clock_name="rgmii_rxc" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="resync" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="rgmii_rx_ctl_PULL_UP_ENA" dyn_delay_en_name="rgmii_rx_ctl_DLY_ENA" dyn_delay_reset_name="rgmii_rx_ctl_DLY_RST" dyn_delay_ctrl_name="rgmii_rx_ctl_DLY_CTRL" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_rxc_phy" gpio_def="GPIOT_N_55" mode="input" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="rgmii_rxc_phy" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="rgmii_rxc_phy_PULL_UP_ENA" dyn_delay_en_name="rgmii_rxc_phy_DLY_ENA" dyn_delay_reset_name="rgmii_rxc_phy_DLY_RST" dyn_delay_ctrl_name="rgmii_rxc_phy_DLY_CTRL" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_rxc_slow" gpio_def="GPIOT_P_59" mode="input" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="rgmii_rxc_slow" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="rgmii_rxc_slow_PULL_UP_ENA" dyn_delay_en_name="rgmii_rxc_slow_DLY_ENA" dyn_delay_reset_name="rgmii_rxc_slow_DLY_RST" dyn_delay_ctrl_name="rgmii_rxc_slow_DLY_CTRL" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_rxd[0]" gpio_def="GPIOT_P_57" mode="input" bus_name="rgmii_rxd" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="rgmii_rxd_HI[0]" name_ddio_lo="rgmii_rxd_LO[0]" conn_type="normal" is_register="true" clock_name="rgmii_rxc" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="resync" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="rgmii_rxd_PULL_UP_ENA[0]" dyn_delay_en_name="rgmii_rxd_DLY_ENA[0]" dyn_delay_reset_name="rgmii_rxd_DLY_RST[0]" dyn_delay_ctrl_name="rgmii_rxd_DLY_CTRL[0]" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_rxd[1]" gpio_def="GPIOT_N_57" mode="input" bus_name="rgmii_rxd" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="rgmii_rxd_HI[1]" name_ddio_lo="rgmii_rxd_LO[1]" conn_type="normal" is_register="true" clock_name="rgmii_rxc" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="resync" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="rgmii_rxd_PULL_UP_ENA[1]" dyn_delay_en_name="rgmii_rxd_DLY_ENA[1]" dyn_delay_reset_name="rgmii_rxd_DLY_RST[1]" dyn_delay_ctrl_name="rgmii_rxd_DLY_CTRL[1]" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_rxd[2]" gpio_def="GPIOT_P_58" mode="input" bus_name="rgmii_rxd" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="rgmii_rxd_HI[2]" name_ddio_lo="rgmii_rxd_LO[2]" conn_type="normal" is_register="true" clock_name="rgmii_rxc" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="resync" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="rgmii_rxd_PULL_UP_ENA[2]" dyn_delay_en_name="rgmii_rxd_DLY_ENA[2]" dyn_delay_reset_name="rgmii_rxd_DLY_RST[2]" dyn_delay_ctrl_name="rgmii_rxd_DLY_CTRL[2]" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_rxd[3]" gpio_def="GPIOT_N_58" mode="input" bus_name="rgmii_rxd" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="rgmii_rxd_HI[3]" name_ddio_lo="rgmii_rxd_LO[3]" conn_type="normal" is_register="true" clock_name="rgmii_rxc" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="resync" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="rgmii_rxd_PULL_UP_ENA[3]" dyn_delay_en_name="rgmii_rxd_DLY_ENA[3]" dyn_delay_reset_name="rgmii_rxd_DLY_RST[3]" dyn_delay_ctrl_name="rgmii_rxd_DLY_CTRL[3]" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_tx_ctl" gpio_def="GPIOT_N_51" mode="output" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:output_config name="rgmii_tx_ctl_HI" name_ddio_lo="rgmii_tx_ctl_LO" register_option="register" clock_name="io_tseClk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="resync" delay="0" is_serial="false" drive_strength="16" fastclk_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_txc" gpio_def="GPIOT_P_52" mode="output" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:output_config name="rgmii_txc_HI" name_ddio_lo="rgmii_txc_LO" register_option="register" clock_name="io_tseClk_90" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="resync" delay="0" is_serial="false" drive_strength="16" fastclk_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_txd[0]" gpio_def="GPIOT_N_52" mode="output" bus_name="rgmii_txd" io_standard="1.8 V LVCMOS">
<efxpt:output_config name="rgmii_txd_HI[0]" name_ddio_lo="rgmii_txd_LO[0]" register_option="register" clock_name="io_tseClk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="resync" delay="0" is_serial="false" drive_strength="16" fastclk_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_txd[1]" gpio_def="GPIOT_P_53" mode="output" bus_name="rgmii_txd" io_standard="1.8 V LVCMOS">
<efxpt:output_config name="rgmii_txd_HI[1]" name_ddio_lo="rgmii_txd_LO[1]" register_option="register" clock_name="io_tseClk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="resync" delay="0" is_serial="false" drive_strength="16" fastclk_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_txd[2]" gpio_def="GPIOT_N_53" mode="output" bus_name="rgmii_txd" io_standard="1.8 V LVCMOS">
<efxpt:output_config name="rgmii_txd_HI[2]" name_ddio_lo="rgmii_txd_LO[2]" register_option="register" clock_name="io_tseClk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="resync" delay="0" is_serial="false" drive_strength="16" fastclk_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="rgmii_txd[3]" gpio_def="GPIOT_P_54" mode="output" bus_name="rgmii_txd" io_standard="1.8 V LVCMOS">
<efxpt:output_config name="rgmii_txd_HI[3]" name_ddio_lo="rgmii_txd_LO[3]" register_option="register" clock_name="io_tseClk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="resync" delay="0" is_serial="false" drive_strength="16" fastclk_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="sd_cd_n" gpio_def="GPIOT_P_49" mode="input" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="sd_cd_n" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="sd_cd_n_PULL_UP_ENA" dyn_delay_en_name="sd_cd_n_DLY_ENA" dyn_delay_reset_name="sd_cd_n_DLY_RST" dyn_delay_ctrl_name="sd_cd_n_DLY_CTRL" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="sd_clk" gpio_def="GPIOR_166" mode="output" bus_name="" io_standard="3.3 V LVCMOS">
<efxpt:output_config name="sd_clk_hi" name_ddio_lo="" register_option="register" clock_name="sd_base_clk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="2" fastclk_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="sd_cmd" gpio_def="GPIOR_167" mode="inout" bus_name="" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="sd_cmd_i" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="sd_cmd_PULL_UP_ENA" dyn_delay_en_name="sd_cmd_DLY_ENA" dyn_delay_reset_name="sd_cmd_DLY_RST" dyn_delay_ctrl_name="sd_cmd_DLY_CTRL" clkmux_buf_name=""/>
<efxpt:output_config name="sd_cmd_o" name_ddio_lo="" register_option="none" clock_name="sd_base_clk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
<efxpt:output_enable_config name="sd_cmd_oe" is_register="false" clock_name="sd_base_clk" is_clock_inverted="false" name_oen="sd_cmd_OEN"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="sd_dat[0]" gpio_def="GPIOR_168" mode="inout" bus_name="sd_dat" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="sd_dat_i[0]" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="sd_dat_PULL_UP_ENA[0]" dyn_delay_en_name="sd_dat_DLY_ENA[0]" dyn_delay_reset_name="sd_dat_DLY_RST[0]" dyn_delay_ctrl_name="sd_dat_DLY_CTRL[0]" clkmux_buf_name=""/>
<efxpt:output_config name="sd_dat_o[0]" name_ddio_lo="" register_option="none" clock_name="sd_base_clk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
<efxpt:output_enable_config name="sd_dat_oe[0]" is_register="false" clock_name="sd_base_clk" is_clock_inverted="false" name_oen="sd_dat_OEN[0]"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="sd_dat[1]" gpio_def="GPIOR_169" mode="inout" bus_name="sd_dat" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="sd_dat_i[1]" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="sd_dat_PULL_UP_ENA[1]" dyn_delay_en_name="sd_dat_DLY_ENA[1]" dyn_delay_reset_name="sd_dat_DLY_RST[1]" dyn_delay_ctrl_name="sd_dat_DLY_CTRL[1]" clkmux_buf_name=""/>
<efxpt:output_config name="sd_dat_o[1]" name_ddio_lo="" register_option="none" clock_name="sd_base_clk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
<efxpt:output_enable_config name="sd_dat_oe[1]" is_register="false" clock_name="sd_base_clk" is_clock_inverted="false" name_oen="sd_dat_OEN[1]"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="sd_dat[2]" gpio_def="GPIOR_170" mode="inout" bus_name="sd_dat" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="sd_dat_i[2]" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="sd_dat_PULL_UP_ENA[2]" dyn_delay_en_name="sd_dat_DLY_ENA[2]" dyn_delay_reset_name="sd_dat_DLY_RST[2]" dyn_delay_ctrl_name="sd_dat_DLY_CTRL[2]" clkmux_buf_name=""/>
<efxpt:output_config name="sd_dat_o[2]" name_ddio_lo="" register_option="none" clock_name="sd_base_clk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
<efxpt:output_enable_config name="sd_dat_oe[2]" is_register="false" clock_name="sd_base_clk" is_clock_inverted="false" name_oen="sd_dat_OEN[2]"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="sd_dat[3]" gpio_def="GPIOR_171" mode="inout" bus_name="sd_dat" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="sd_dat_i[3]" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="sd_dat_PULL_UP_ENA[3]" dyn_delay_en_name="sd_dat_DLY_ENA[3]" dyn_delay_reset_name="sd_dat_DLY_RST[3]" dyn_delay_ctrl_name="sd_dat_DLY_CTRL[3]" clkmux_buf_name=""/>
<efxpt:output_config name="sd_dat_o[3]" name_ddio_lo="" register_option="none" clock_name="sd_base_clk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
<efxpt:output_enable_config name="sd_dat_oe[3]" is_register="false" clock_name="sd_base_clk" is_clock_inverted="false" name_oen="sd_dat_OEN[3]"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="sd_wp" gpio_def="GPIOR_102" mode="input" bus_name="" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="sd_wp" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="sd_wp_PULL_UP_ENA" dyn_delay_en_name="sd_wp_DLY_ENA" dyn_delay_reset_name="sd_wp_DLY_RST" dyn_delay_ctrl_name="sd_wp_DLY_CTRL" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="soc_pll_peri_clk_ext_clk" gpio_def="GPIOT_P_50" mode="input" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="soc_pll_peri_clk_ext_clk" name_ddio_lo="" conn_type="pll_clkin" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="soc_pll_peri_clk_ext_clk_PULL_UP_ENA" dyn_delay_en_name="soc_pll_peri_clk_ext_clk_DLY_ENA" dyn_delay_reset_name="soc_pll_peri_clk_ext_clk_DLY_RST" dyn_delay_ctrl_name="soc_pll_peri_clk_ext_clk_DLY_CTRL" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="soc_pll_sys_clk_ext_clk" gpio_def="GPIOL_25" mode="input" bus_name="" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="soc_pll_sys_clk_ext_clk" name_ddio_lo="" conn_type="pll_clkin" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="soc_pll_sys_clk_ext_clk_PULL_UP_ENA" dyn_delay_en_name="soc_pll_sys_clk_ext_clk_DLY_ENA" dyn_delay_reset_name="soc_pll_sys_clk_ext_clk_DLY_RST" dyn_delay_ctrl_name="soc_pll_sys_clk_ext_clk_DLY_CTRL" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="system_gpio_0_io[0]" gpio_def="GPIOT_P_19" mode="inout" bus_name="system_gpio_0_io" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="system_gpio_0_io_read[0]" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="system_gpio_0_io_PULL_UP_ENA[0]" dyn_delay_en_name="system_gpio_0_io_DLY_ENA[0]" dyn_delay_reset_name="system_gpio_0_io_DLY_RST[0]" dyn_delay_ctrl_name="system_gpio_0_io_DLY_CTRL[0]" clkmux_buf_name=""/>
<efxpt:output_config name="system_gpio_0_io_write[0]" name_ddio_lo="" register_option="none" clock_name="" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
<efxpt:output_enable_config name="system_gpio_0_io_writeEnable[0]" is_register="false" clock_name="" is_clock_inverted="false" name_oen="system_gpio_0_io_OEN[0]"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="system_gpio_0_io[1]" gpio_def="GPIOL_23" mode="inout" bus_name="system_gpio_0_io" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="system_gpio_0_io_read[1]" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="system_gpio_0_io_PULL_UP_ENA[1]" dyn_delay_en_name="system_gpio_0_io_DLY_ENA[1]" dyn_delay_reset_name="system_gpio_0_io_DLY_RST[1]" dyn_delay_ctrl_name="system_gpio_0_io_DLY_CTRL[1]" clkmux_buf_name=""/>
<efxpt:output_config name="system_gpio_0_io_write[1]" name_ddio_lo="" register_option="none" clock_name="" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="2" fastclk_name=""/>
<efxpt:output_enable_config name="system_gpio_0_io_writeEnable[1]" is_register="false" clock_name="" is_clock_inverted="false" name_oen="system_gpio_0_io_OEN[1]"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="system_gpio_0_io[2]" gpio_def="GPIOL_24" mode="inout" bus_name="system_gpio_0_io" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="system_gpio_0_io_read[2]" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="system_gpio_0_io_PULL_UP_ENA[2]" dyn_delay_en_name="system_gpio_0_io_DLY_ENA[2]" dyn_delay_reset_name="system_gpio_0_io_DLY_RST[2]" dyn_delay_ctrl_name="system_gpio_0_io_DLY_CTRL[2]" clkmux_buf_name=""/>
<efxpt:output_config name="system_gpio_0_io_write[2]" name_ddio_lo="" register_option="none" clock_name="" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="2" fastclk_name=""/>
<efxpt:output_enable_config name="system_gpio_0_io_writeEnable[2]" is_register="false" clock_name="" is_clock_inverted="false" name_oen="system_gpio_0_io_OEN[2]"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="system_gpio_0_io[3]" gpio_def="GPIOT_N_50" mode="inout" bus_name="system_gpio_0_io" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="system_gpio_0_io_read[3]" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="system_gpio_0_io_PULL_UP_ENA[3]" dyn_delay_en_name="system_gpio_0_io_DLY_ENA[3]" dyn_delay_reset_name="system_gpio_0_io_DLY_RST[3]" dyn_delay_ctrl_name="system_gpio_0_io_DLY_CTRL[3]" clkmux_buf_name=""/>
<efxpt:output_config name="system_gpio_0_io_write[3]" name_ddio_lo="" register_option="none" clock_name="" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
<efxpt:output_enable_config name="system_gpio_0_io_writeEnable[3]" is_register="false" clock_name="" is_clock_inverted="false" name_oen="system_gpio_0_io_OEN[3]"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="system_i2c_0_io_scl" gpio_def="GPIOL_85" mode="inout" bus_name="" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="system_i2c_0_io_scl_read" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="system_i2c_0_io_scl_PULL_UP_ENA" dyn_delay_en_name="system_i2c_0_io_scl_DLY_ENA" dyn_delay_reset_name="system_i2c_0_io_scl_DLY_RST" dyn_delay_ctrl_name="system_i2c_0_io_scl_DLY_CTRL" clkmux_buf_name=""/>
<efxpt:output_config name="system_i2c_0_io_scl_write" name_ddio_lo="" register_option="none" clock_name="" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="2" fastclk_name=""/>
<efxpt:output_enable_config name="system_i2c_0_io_scl_writeEnable" is_register="false" clock_name="" is_clock_inverted="false" name_oen="system_i2c_0_io_scl_OEN"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="system_i2c_0_io_sda" gpio_def="GPIOL_84" mode="inout" bus_name="" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="system_i2c_0_io_sda_read" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="system_i2c_0_io_sda_PULL_UP_ENA" dyn_delay_en_name="system_i2c_0_io_sda_DLY_ENA" dyn_delay_reset_name="system_i2c_0_io_sda_DLY_RST" dyn_delay_ctrl_name="system_i2c_0_io_sda_DLY_CTRL" clkmux_buf_name=""/>
<efxpt:output_config name="system_i2c_0_io_sda_write" name_ddio_lo="" register_option="none" clock_name="" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="2" fastclk_name=""/>
<efxpt:output_enable_config name="system_i2c_0_io_sda_writeEnable" is_register="false" clock_name="" is_clock_inverted="false" name_oen="system_i2c_0_io_sda_OEN"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="system_spi_0_io_data_0" gpio_def="GPIOB_N_40" mode="inout" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="system_spi_0_io_data_0_read" name_ddio_lo="" conn_type="normal" is_register="true" clock_name="io_peripheralClk" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="system_spi_0_io_data_0_PULL_UP_ENA" dyn_delay_en_name="system_spi_0_io_data_0_DLY_ENA" dyn_delay_reset_name="system_spi_0_io_data_0_DLY_RST" dyn_delay_ctrl_name="system_spi_0_io_data_0_DLY_CTRL" clkmux_buf_name=""/>
<efxpt:output_config name="system_spi_0_io_data_0_write" name_ddio_lo="" register_option="register" clock_name="io_peripheralClk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
<efxpt:output_enable_config name="system_spi_0_io_data_0_writeEnable" is_register="true" clock_name="io_peripheralClk" is_clock_inverted="false" name_oen="system_spi_0_io_data_0_OEN"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="system_spi_0_io_data_1" gpio_def="GPIOB_P_40" mode="inout" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:input_config name="system_spi_0_io_data_1_read" name_ddio_lo="" conn_type="normal" is_register="true" clock_name="io_peripheralClk" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="system_spi_0_io_data_1_PULL_UP_ENA" dyn_delay_en_name="system_spi_0_io_data_1_DLY_ENA" dyn_delay_reset_name="system_spi_0_io_data_1_DLY_RST" dyn_delay_ctrl_name="system_spi_0_io_data_1_DLY_CTRL" clkmux_buf_name=""/>
<efxpt:output_config name="system_spi_0_io_data_1_write" name_ddio_lo="" register_option="register" clock_name="io_peripheralClk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
<efxpt:output_enable_config name="system_spi_0_io_data_1_writeEnable" is_register="true" clock_name="io_peripheralClk" is_clock_inverted="false" name_oen="system_spi_0_io_data_1_OEN"/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="system_spi_0_io_sclk_write" gpio_def="GPIOB_P_39" mode="output" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:output_config name="system_spi_0_io_sclk_write" name_ddio_lo="" register_option="register" clock_name="io_peripheralClk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="system_spi_0_io_ss" gpio_def="GPIOB_N_38" mode="output" bus_name="" io_standard="1.8 V LVCMOS">
<efxpt:output_config name="system_spi_0_io_ss[0]" name_ddio_lo="" register_option="register" clock_name="io_peripheralClk" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="4" fastclk_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="system_uart_0_io_rxd" gpio_def="GPIOR_145" mode="input" bus_name="" io_standard="3.3 V LVCMOS">
<efxpt:input_config name="system_uart_0_io_rxd" name_ddio_lo="" conn_type="normal" is_register="false" clock_name="" is_clock_inverted="false" pull_option="none" is_schmitt_trigger="false" ddio_type="none" is_bus_hold="false" delay="0" is_serial="false" is_dyn_delay="false" fastclk_name="" pullup_ena_name="system_uart_0_io_rxd_PULL_UP_ENA" dyn_delay_en_name="system_uart_0_io_rxd_DLY_ENA" dyn_delay_reset_name="system_uart_0_io_rxd_DLY_RST" dyn_delay_ctrl_name="system_uart_0_io_rxd_DLY_CTRL" clkmux_buf_name=""/>
</efxpt:comp_gpio>
<efxpt:comp_gpio name="system_uart_0_io_txd" gpio_def="GPIOR_165" mode="output" bus_name="" io_standard="3.3 V LVCMOS">
<efxpt:output_config name="system_uart_0_io_txd" name_ddio_lo="" register_option="none" clock_name="" is_clock_inverted="false" is_slew_rate="false" tied_option="none" ddio_type="none" delay="0" is_serial="false" drive_strength="2" fastclk_name=""/>
</efxpt:comp_gpio>
<efxpt:global_unused_config state="input with weak pullup"/>
<efxpt:bus name="system_gpio_0_io" mode="inout" msb="3" lsb="0"/>
<efxpt:bus name="rgmii_rxd" mode="input" msb="3" lsb="0"/>
<efxpt:bus name="rgmii_txd" mode="output" msb="3" lsb="0"/>
<efxpt:bus name="sd_dat" mode="inout" msb="3" lsb="0"/>
</efxpt:gpio_info>
<efxpt:pll_info>
<efxpt:pll name="soc_pll_sys_clk" pll_def="PLL_BL0" ref_clock_name="" ref_clock_freq="100.0000" multiplier="1" pre_divider="1" post_divider="1" reset_name="" locked_name="pll_system_locked" is_ipfrz="false" is_bypass_lock="true">
<efxpt:adv_prop ref_clock_mode="external" ref_clock1_name="" ext_ref_clock_id="3" clksel_name="" feedback_clock_name="io_sysFbClk" feedback_mode="local"/>
<efxpt:gen_pin>
<efxpt:pin name="" type_name="SHIFT_ENA" is_bus="false"/>
<efxpt:pin name="" type_name="DESKEWED" is_bus="false"/>
<efxpt:pin name="" type_name="CFG_CLK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="CFG_DATA_IN" is_bus="false"/>
<efxpt:pin name="" type_name="CFG_DATA_OUT" is_bus="false"/>
<efxpt:pin name="" type_name="CFG_SEL" is_bus="false"/>
<efxpt:pin name="" type_name="USER_SSC_EN" is_bus="false"/>
<efxpt:pin name="" type_name="SHIFT" is_bus="true"/>
<efxpt:pin name="" type_name="SHIFT_SEL" is_bus="true"/>
</efxpt:gen_pin>
<efxpt:comp_output_clock name="io_sysFbClk" number="0" out_divider="40" is_dyn_phase="false" phase_setting="0" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param/>
</efxpt:comp_output_clock>
<efxpt:comp_output_clock name="io_systemClk" number="1" out_divider="4" is_dyn_phase="false" phase_setting="0" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param>
<efxpt:param name="HALF_DC_SHIFT_EN" value="false" value_type="bool"/>
<efxpt:param name="PDIV" value="2" value_type="int"/>
<efxpt:param name="PROG_DUTY_CYCLE_EN" value="false" value_type="bool"/>
<efxpt:param name="REQUEST_DUTY_CYCLE" value="50.0000" value_type="float"/>
<efxpt:param name="SWALLOWING_DIV" value="2" value_type="int"/>
</efxpt:gen_param>
</efxpt:comp_output_clock>
<efxpt:comp_output_clock name="io_memoryClk" number="2" out_divider="16" is_dyn_phase="false" phase_setting="0" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param/>
</efxpt:comp_output_clock>
<efxpt:comp_output_clock name="ddrClk" number="3" out_divider="5" is_dyn_phase="false" phase_setting="0" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param/>
</efxpt:comp_output_clock>
<efxpt:comp_prop/>
<efxpt:gen_param>
<efxpt:param name="DYN_RECONFIG_EN" value="false" value_type="bool"/>
<efxpt:param name="FRACTIONAL_EN" value="false" value_type="bool"/>
<efxpt:param name="FRACTIONAL_K" value="0" value_type="int"/>
<efxpt:param name="REFCLK" value="EXT_CLK1" value_type="str"/>
<efxpt:param name="SSC_AMPLITUDE" value="0.5000" value_type="float"/>
<efxpt:param name="SSC_EN" value="DISABLE" value_type="str"/>
<efxpt:param name="SSC_FREQUENCY" value="30.0000" value_type="float"/>
<efxpt:param name="SSC_MODULATION_TYPE" value="DOWN" value_type="str"/>
</efxpt:gen_param>
</efxpt:pll>
<efxpt:pll name="soc_pll_peri_clk" pll_def="PLL_TR0" ref_clock_name="" ref_clock_freq="25.0000" multiplier="4" pre_divider="1" post_divider="1" reset_name="" locked_name="pll_peripheral_locked" is_ipfrz="false" is_bypass_lock="true">
<efxpt:adv_prop ref_clock_mode="external" ref_clock1_name="" ext_ref_clock_id="2" clksel_name="" feedback_clock_name="io_memFbClk" feedback_mode="local"/>
<efxpt:gen_pin>
<efxpt:pin name="" type_name="SHIFT_ENA" is_bus="false"/>
<efxpt:pin name="" type_name="DESKEWED" is_bus="false"/>
<efxpt:pin name="" type_name="CFG_CLK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="CFG_DATA_IN" is_bus="false"/>
<efxpt:pin name="" type_name="CFG_DATA_OUT" is_bus="false"/>
<efxpt:pin name="" type_name="CFG_SEL" is_bus="false"/>
<efxpt:pin name="" type_name="USER_SSC_EN" is_bus="false"/>
<efxpt:pin name="" type_name="SHIFT" is_bus="true"/>
<efxpt:pin name="" type_name="SHIFT_SEL" is_bus="true"/>
</efxpt:gen_pin>
<efxpt:comp_output_clock name="io_memFbClk" number="0" out_divider="40" is_dyn_phase="false" phase_setting="0" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param/>
</efxpt:comp_output_clock>
<efxpt:comp_output_clock name="io_peripheralClk" number="1" out_divider="20" is_dyn_phase="false" phase_setting="0" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param>
<efxpt:param name="HALF_DC_SHIFT_EN" value="false" value_type="bool"/>
<efxpt:param name="PDIV" value="10" value_type="int"/>
<efxpt:param name="PROG_DUTY_CYCLE_EN" value="false" value_type="bool"/>
<efxpt:param name="REQUEST_DUTY_CYCLE" value="50.0000" value_type="float"/>
<efxpt:param name="SWALLOWING_DIV" value="10" value_type="int"/>
</efxpt:gen_param>
</efxpt:comp_output_clock>
<efxpt:comp_output_clock name="io_ddrMasters_0_clk" number="2" out_divider="16" is_dyn_phase="false" phase_setting="0" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param/>
</efxpt:comp_output_clock>
<efxpt:comp_output_clock name="io_cfuClk" number="3" out_divider="32" is_dyn_phase="false" phase_setting="0" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param/>
</efxpt:comp_output_clock>
<efxpt:comp_output_clock name="sd_base_clk" number="4" out_divider="40" is_dyn_phase="false" phase_setting="0" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param/>
</efxpt:comp_output_clock>
<efxpt:comp_prop/>
<efxpt:gen_param>
<efxpt:param name="DYN_RECONFIG_EN" value="false" value_type="bool"/>
<efxpt:param name="FRACTIONAL_EN" value="false" value_type="bool"/>
<efxpt:param name="FRACTIONAL_K" value="0" value_type="int"/>
<efxpt:param name="REFCLK" value="EXT_CLK0" value_type="str"/>
<efxpt:param name="SSC_AMPLITUDE" value="0.5000" value_type="float"/>
<efxpt:param name="SSC_EN" value="DISABLE" value_type="str"/>
<efxpt:param name="SSC_FREQUENCY" value="30.0000" value_type="float"/>
<efxpt:param name="SSC_MODULATION_TYPE" value="DOWN" value_type="str"/>
</efxpt:gen_param>
</efxpt:pll>
<efxpt:pll name="tse_pll_clk" pll_def="PLL_BL2" ref_clock_name="rgmii_rxc_phy" ref_clock_freq="125.0000" multiplier="1" pre_divider="1" post_divider="4" reset_name="" locked_name="pll_tse_locked" is_ipfrz="false" is_bypass_lock="true">
<efxpt:adv_prop ref_clock_mode="core" ref_clock1_name="" ext_ref_clock_id="2" clksel_name="" feedback_clock_name="tse_pll_clk_CLKOUT0" feedback_mode="local"/>
<efxpt:gen_pin>
<efxpt:pin name="" type_name="SHIFT_ENA" is_bus="false"/>
<efxpt:pin name="" type_name="DESKEWED" is_bus="false"/>
<efxpt:pin name="" type_name="CFG_CLK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="CFG_DATA_IN" is_bus="false"/>
<efxpt:pin name="" type_name="CFG_DATA_OUT" is_bus="false"/>
<efxpt:pin name="" type_name="CFG_SEL" is_bus="false"/>
<efxpt:pin name="" type_name="USER_SSC_EN" is_bus="false"/>
<efxpt:pin name="" type_name="SHIFT" is_bus="true"/>
<efxpt:pin name="" type_name="SHIFT_SEL" is_bus="true"/>
</efxpt:gen_pin>
<efxpt:comp_output_clock name="tse_pll_clk_CLKOUT0" number="0" out_divider="10" is_dyn_phase="false" phase_setting="0" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param/>
</efxpt:comp_output_clock>
<efxpt:comp_output_clock name="rgmii_rxc" number="1" out_divider="10" is_dyn_phase="false" phase_setting="0" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param>
<efxpt:param name="HALF_DC_SHIFT_EN" value="false" value_type="bool"/>
<efxpt:param name="PDIV" value="5" value_type="int"/>
<efxpt:param name="PROG_DUTY_CYCLE_EN" value="false" value_type="bool"/>
<efxpt:param name="REQUEST_DUTY_CYCLE" value="50.0000" value_type="float"/>
<efxpt:param name="SWALLOWING_DIV" value="5" value_type="int"/>
</efxpt:gen_param>
</efxpt:comp_output_clock>
<efxpt:comp_output_clock name="io_tseClk_90" number="2" out_divider="10" is_dyn_phase="false" phase_setting="5" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param/>
</efxpt:comp_output_clock>
<efxpt:comp_output_clock name="io_tseClk" number="3" out_divider="10" is_dyn_phase="false" phase_setting="0" is_inverted="false" conn_type="gclk" clkmux_buf_name="">
<efxpt:gen_pin/>
<efxpt:gen_param/>
</efxpt:comp_output_clock>
<efxpt:comp_prop/>
<efxpt:gen_param>
<efxpt:param name="DYN_RECONFIG_EN" value="false" value_type="bool"/>
<efxpt:param name="FRACTIONAL_EN" value="false" value_type="bool"/>
<efxpt:param name="FRACTIONAL_K" value="0" value_type="int"/>
<efxpt:param name="REFCLK" value="CORE_CLK1" value_type="str"/>
<efxpt:param name="SSC_AMPLITUDE" value="0.5000" value_type="float"/>
<efxpt:param name="SSC_EN" value="DISABLE" value_type="str"/>
<efxpt:param name="SSC_FREQUENCY" value="30.0000" value_type="float"/>
<efxpt:param name="SSC_MODULATION_TYPE" value="DOWN" value_type="str"/>
</efxpt:gen_param>
</efxpt:pll>
</efxpt:pll_info>
<efxpt:osc_info/>
<efxpt:lvds_info/>
<efxpt:jtag_info>
<efxpt:jtag name="soc_jtag_inst1" jtag_def="JTAG_USER1">
<efxpt:gen_pin>
<efxpt:pin name="ut_jtagCtrl_capture" type_name="CAPTURE" is_bus="false"/>
<efxpt:pin name="" type_name="DRCK" is_bus="false"/>
<efxpt:pin name="ut_jtagCtrl_reset" type_name="RESET" is_bus="false"/>
<efxpt:pin name="" type_name="RUNTEST" is_bus="false"/>
<efxpt:pin name="ut_jtagCtrl_enable" type_name="SEL" is_bus="false"/>
<efxpt:pin name="ut_jtagCtrl_shift" type_name="SHIFT" is_bus="false"/>
<efxpt:pin name="jtagCtrl_tck" type_name="TCK" is_bus="false"/>
<efxpt:pin name="ut_jtagCtrl_tdi" type_name="TDI" is_bus="false"/>
<efxpt:pin name="" type_name="TMS" is_bus="false"/>
<efxpt:pin name="ut_jtagCtrl_update" type_name="UPDATE" is_bus="false"/>
<efxpt:pin name="ut_jtagCtrl_tdo" type_name="TDO" is_bus="false"/>
</efxpt:gen_pin>
</efxpt:jtag>
</efxpt:jtag_info>
<efxpt:ddr_info>
<efxpt:adv_ddr name="soc_ddr_inst1" ddr_def="DDR_0" clkin_sel="0" data_width="32" physical_rank="1" mem_type="LPDDR4x" mem_density="8G">
<efxpt:axi_target0 is_axi_width_256="false" is_axi_enable="false">
<efxpt:gen_pin_axi>
<efxpt:pin name="" type_name="ACLK_0" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ARSTN_0" is_bus="false"/>
<efxpt:pin name="" type_name="ARAPCMD_0" is_bus="false"/>
<efxpt:pin name="" type_name="ARREADY_0" is_bus="false"/>
<efxpt:pin name="" type_name="ARVALID_0" is_bus="false"/>
<efxpt:pin name="" type_name="ARLOCK_0" is_bus="false"/>
<efxpt:pin name="" type_name="ARQOS_0" is_bus="false"/>
<efxpt:pin name="" type_name="AWAPCMD_0" is_bus="false"/>
<efxpt:pin name="" type_name="AWALLSTRB_0" is_bus="false"/>
<efxpt:pin name="" type_name="AWCOBUF_0" is_bus="false"/>
<efxpt:pin name="" type_name="AWREADY_0" is_bus="false"/>
<efxpt:pin name="" type_name="AWVALID_0" is_bus="false"/>
<efxpt:pin name="" type_name="AWLOCK_0" is_bus="false"/>
<efxpt:pin name="" type_name="AWQOS_0" is_bus="false"/>
<efxpt:pin name="" type_name="BREADY_0" is_bus="false"/>
<efxpt:pin name="" type_name="BVALID_0" is_bus="false"/>
<efxpt:pin name="" type_name="RLAST_0" is_bus="false"/>
<efxpt:pin name="" type_name="RREADY_0" is_bus="false"/>
<efxpt:pin name="" type_name="RVALID_0" is_bus="false"/>
<efxpt:pin name="" type_name="WLAST_0" is_bus="false"/>
<efxpt:pin name="" type_name="WREADY_0" is_bus="false"/>
<efxpt:pin name="" type_name="WVALID_0" is_bus="false"/>
<efxpt:pin name="" type_name="ARADDR_0" is_bus="true"/>
<efxpt:pin name="" type_name="ARBURST_0" is_bus="true"/>
<efxpt:pin name="" type_name="ARID_0" is_bus="true"/>
<efxpt:pin name="" type_name="ARLEN_0" is_bus="true"/>
<efxpt:pin name="" type_name="ARSIZE_0" is_bus="true"/>
<efxpt:pin name="" type_name="AWADDR_0" is_bus="true"/>
<efxpt:pin name="" type_name="AWBURST_0" is_bus="true"/>
<efxpt:pin name="" type_name="AWID_0" is_bus="true"/>
<efxpt:pin name="" type_name="AWLEN_0" is_bus="true"/>
<efxpt:pin name="" type_name="AWSIZE_0" is_bus="true"/>
<efxpt:pin name="" type_name="AWCACHE_0" is_bus="true"/>
<efxpt:pin name="" type_name="BID_0" is_bus="true"/>
<efxpt:pin name="" type_name="BRESP_0" is_bus="true"/>
<efxpt:pin name="" type_name="RDATA_0" is_bus="true"/>
<efxpt:pin name="" type_name="RID_0" is_bus="true"/>
<efxpt:pin name="" type_name="RRESP_0" is_bus="true"/>
<efxpt:pin name="" type_name="WDATA_0" is_bus="true"/>
<efxpt:pin name="" type_name="WSTRB_0" is_bus="true"/>
</efxpt:gen_pin_axi>
</efxpt:axi_target0>
<efxpt:axi_target1 is_axi_width_256="false" is_axi_enable="false">
<efxpt:gen_pin_axi>
<efxpt:pin name="" type_name="ACLK_1" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="ARSTN_1" is_bus="false"/>
<efxpt:pin name="" type_name="ARAPCMD_1" is_bus="false"/>
<efxpt:pin name="" type_name="ARREADY_1" is_bus="false"/>
<efxpt:pin name="" type_name="ARVALID_1" is_bus="false"/>
<efxpt:pin name="" type_name="ARLOCK_1" is_bus="false"/>
<efxpt:pin name="" type_name="ARQOS_1" is_bus="false"/>
<efxpt:pin name="" type_name="AWAPCMD_1" is_bus="false"/>
<efxpt:pin name="" type_name="AWALLSTRB_1" is_bus="false"/>
<efxpt:pin name="" type_name="AWCOBUF_1" is_bus="false"/>
<efxpt:pin name="" type_name="AWREADY_1" is_bus="false"/>
<efxpt:pin name="" type_name="AWVALID_1" is_bus="false"/>
<efxpt:pin name="" type_name="AWLOCK_1" is_bus="false"/>
<efxpt:pin name="" type_name="AWQOS_1" is_bus="false"/>
<efxpt:pin name="" type_name="BREADY_1" is_bus="false"/>
<efxpt:pin name="" type_name="BVALID_1" is_bus="false"/>
<efxpt:pin name="" type_name="RLAST_1" is_bus="false"/>
<efxpt:pin name="" type_name="RREADY_1" is_bus="false"/>
<efxpt:pin name="" type_name="RVALID_1" is_bus="false"/>
<efxpt:pin name="" type_name="WLAST_1" is_bus="false"/>
<efxpt:pin name="" type_name="WREADY_1" is_bus="false"/>
<efxpt:pin name="" type_name="WVALID_1" is_bus="false"/>
<efxpt:pin name="" type_name="ARADDR_1" is_bus="true"/>
<efxpt:pin name="" type_name="ARBURST_1" is_bus="true"/>
<efxpt:pin name="" type_name="ARID_1" is_bus="true"/>
<efxpt:pin name="" type_name="ARLEN_1" is_bus="true"/>
<efxpt:pin name="" type_name="ARSIZE_1" is_bus="true"/>
<efxpt:pin name="" type_name="AWADDR_1" is_bus="true"/>
<efxpt:pin name="" type_name="AWBURST_1" is_bus="true"/>
<efxpt:pin name="" type_name="AWID_1" is_bus="true"/>
<efxpt:pin name="" type_name="AWLEN_1" is_bus="true"/>
<efxpt:pin name="" type_name="AWSIZE_1" is_bus="true"/>
<efxpt:pin name="" type_name="AWCACHE_1" is_bus="true"/>
<efxpt:pin name="" type_name="BID_1" is_bus="true"/>
<efxpt:pin name="" type_name="BRESP_1" is_bus="true"/>
<efxpt:pin name="" type_name="RDATA_1" is_bus="true"/>
<efxpt:pin name="" type_name="RID_1" is_bus="true"/>
<efxpt:pin name="" type_name="RRESP_1" is_bus="true"/>
<efxpt:pin name="" type_name="WDATA_1" is_bus="true"/>
<efxpt:pin name="" type_name="WSTRB_1" is_bus="true"/>
</efxpt:gen_pin_axi>
</efxpt:axi_target1>
<efxpt:gen_pin_controller>
<efxpt:pin name="io_sysFbClk" type_name="CTRL_CLK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="soc_ddr_inst1_CTRL_INT" type_name="CTRL_INT" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CTRL_MEM_RST_VALID" type_name="CTRL_MEM_RST_VALID" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CTRL_REFRESH" type_name="CTRL_REFRESH" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CTRL_BUSY" type_name="CTRL_BUSY" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CTRL_CMD_Q_ALMOST_FULL" type_name="CTRL_CMD_Q_ALMOST_FULL" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CTRL_DP_IDLE" type_name="CTRL_DP_IDLE" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CTRL_CKE" type_name="CTRL_CKE" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CTRL_PORT_BUSY" type_name="CTRL_PORT_BUSY" is_bus="true"/>
</efxpt:gen_pin_controller>
<efxpt:gen_pin_cfg_ctrl>
<efxpt:pin name="cfg_done" type_name="CFG_DONE" is_bus="false"/>
<efxpt:pin name="cfg_start" type_name="CFG_START" is_bus="false"/>
<efxpt:pin name="cfg_reset" type_name="CFG_RESET" is_bus="false"/>
<efxpt:pin name="cfg_sel" type_name="CFG_SEL" is_bus="false"/>
</efxpt:gen_pin_cfg_ctrl>
<efxpt:ctrl_reg_inf is_reg_ena="false">
<efxpt:gen_pin_ctrl_reg_inf>
<efxpt:pin name="" type_name="CR_ACLK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_ARESETN" type_name="CR_ARESETN" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_ARVALID" type_name="CR_ARVALID" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_ARREADY" type_name="CR_ARREADY" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_AWVALID" type_name="CR_AWVALID" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_AWREADY" type_name="CR_AWREADY" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_BVALID" type_name="CR_BVALID" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_BREADY" type_name="CR_BREADY" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_RLAST" type_name="CR_RLAST" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_RVALID" type_name="CR_RVALID" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_RREADY" type_name="CR_RREADY" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_WLAST" type_name="CR_WLAST" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_WVALID" type_name="CR_WVALID" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_WREADY" type_name="CR_WREADY" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CFG_PHY_RSTN" type_name="CFG_PHY_RSTN" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CTRL_RSTN" type_name="CTRL_RSTN" is_bus="false"/>
<efxpt:pin name="soc_ddr_inst1_CR_ARADDR" type_name="CR_ARADDR" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_ARID" type_name="CR_ARID" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_ARLEN" type_name="CR_ARLEN" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_ARSIZE" type_name="CR_ARSIZE" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_ARBURST" type_name="CR_ARBURST" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_AWADDR" type_name="CR_AWADDR" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_AWID" type_name="CR_AWID" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_AWLEN" type_name="CR_AWLEN" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_AWSIZE" type_name="CR_AWSIZE" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_AWBURST" type_name="CR_AWBURST" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_BID" type_name="CR_BID" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_BRESP" type_name="CR_BRESP" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_RDATA" type_name="CR_RDATA" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_RID" type_name="CR_RID" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_RRESP" type_name="CR_RRESP" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_WDATA" type_name="CR_WDATA" is_bus="true"/>
<efxpt:pin name="soc_ddr_inst1_CR_WSTRB" type_name="CR_WSTRB" is_bus="true"/>
</efxpt:gen_pin_ctrl_reg_inf>
</efxpt:ctrl_reg_inf>
<efxpt:cs_fpga>
<efxpt:param name="DQ_PULLDOWN_DRV" value="34.3" value_type="str"/>
<efxpt:param name="DQ_PULLDOWN_ODT" value="60" value_type="str"/>
<efxpt:param name="DQ_PULLUP_DRV" value="34.3" value_type="str"/>
<efxpt:param name="DQ_PULLUP_ODT" value="Hi-Z" value_type="str"/>
<efxpt:param name="FPGA_VREF_RANGE0" value="20.300" value_type="float"/>
<efxpt:param name="FPGA_VREF_RANGE1" value="23.000" value_type="float"/>
<efxpt:param name="LP_AUTO_MODE" value="Disable" value_type="str"/>
<efxpt:param name="MEM_FPGA_VREF_RANGE" value="Range 1" value_type="str"/>
</efxpt:cs_fpga>
<efxpt:cs_memory>
<efxpt:param name="BLEN" value="BL=16 Sequential" value_type="str"/>
<efxpt:param name="CA_ODT_CS0" value="RZQ/4" value_type="str"/>
<efxpt:param name="CA_ODT_CS1" value="RZQ/6" value_type="str"/>
<efxpt:param name="CA_VREF_RANGE0" value="22.000" value_type="float"/>
<efxpt:param name="CA_VREF_RANGE1" value="22.000" value_type="float"/>
<efxpt:param name="DQ_ODT_CS0" value="RZQ/4" value_type="str"/>
<efxpt:param name="DQ_ODT_CS1" value="RZQ/4" value_type="str"/>
<efxpt:param name="DQ_VREF_RANGE0" value="20.000" value_type="float"/>
<efxpt:param name="DQ_VREF_RANGE1" value="27.200" value_type="float"/>
<efxpt:param name="MEM_CA_RANGE" value="RANGE[1]" value_type="str"/>
<efxpt:param name="MEM_DQ_RANGE" value="RANGE[1]" value_type="str"/>
<efxpt:param name="NWR" value="nWR=6" value_type="str"/>
<efxpt:param name="ODTD_CA_CS0" value="Obeys ODT_CA Bond Pad" value_type="str"/>
<efxpt:param name="ODTD_CA_CS1" value="Obeys ODT_CA Bond Pad" value_type="str"/>
<efxpt:param name="ODTE_CK_CS0" value="Override Disabled" value_type="str"/>
<efxpt:param name="ODTE_CK_CS1" value="Override Disabled" value_type="str"/>
<efxpt:param name="ODTE_CS_CS0" value="Override Disabled" value_type="str"/>
<efxpt:param name="ODTE_CS_CS1" value="Override Disabled" value_type="str"/>
<efxpt:param name="PDDS_CS0" value="RZQ/6" value_type="str"/>
<efxpt:param name="PDDS_CS1" value="RZQ/6" value_type="str"/>
<efxpt:param name="RL_DBI_READ" value="Yes" value_type="str"/>
<efxpt:param name="RL_DBI_READ_DISABLED" value="RL=6,nRTP=8" value_type="str"/>
<efxpt:param name="RL_DBI_READ_ENABLED" value="RL=6,nRTP=8" value_type="str"/>
<efxpt:param name="RL_DBI_WRITE" value="Yes" value_type="str"/>
<efxpt:param name="WL_SET" value="Set A" value_type="str"/>
<efxpt:param name="WL_SET_A" value="WL=4" value_type="str"/>
<efxpt:param name="WL_SET_B" value="WL=4" value_type="str"/>
</efxpt:cs_memory>
<efxpt:cs_memory_timing>
<efxpt:param name="tCCD" value="8" value_type="int"/>
<efxpt:param name="tCCDMW" value="32" value_type="int"/>
<efxpt:param name="tFAW" value="40.000" value_type="float"/>
<efxpt:param name="tPPD" value="4" value_type="int"/>
<efxpt:param name="tRAS" value="42.000" value_type="float"/>
<efxpt:param name="tRCD" value="18.000" value_type="float"/>
<efxpt:param name="tRPab" value="21.000" value_type="float"/>
<efxpt:param name="tRPpb" value="18.000" value_type="float"/>
<efxpt:param name="tRRD" value="10.000" value_type="float"/>
<efxpt:param name="tRTP" value="7.500" value_type="float"/>
<efxpt:param name="tSR" value="15.000" value_type="float"/>
<efxpt:param name="tWR" value="18.000" value_type="float"/>
<efxpt:param name="tWTR" value="10.000" value_type="float"/>
</efxpt:cs_memory_timing>
<efxpt:pin_swap>
<efxpt:param name="CA[0]" value="CA[0]" value_type="str"/>
<efxpt:param name="CA[1]" value="CA[1]" value_type="str"/>
<efxpt:param name="CA[2]" value="CA[2]" value_type="str"/>
<efxpt:param name="CA[3]" value="CA[3]" value_type="str"/>
<efxpt:param name="CA[4]" value="CA[4]" value_type="str"/>
<efxpt:param name="CA[5]" value="CA[5]" value_type="str"/>
<efxpt:param name="DM[0]" value="DM[0]" value_type="str"/>
<efxpt:param name="DM[1]" value="DM[1]" value_type="str"/>
<efxpt:param name="DM[2]" value="DM[2]" value_type="str"/>
<efxpt:param name="DM[3]" value="DM[3]" value_type="str"/>
<efxpt:param name="DQ[0]" value="DQ[3]" value_type="str"/>
<efxpt:param name="DQ[10]" value="DQ[12]" value_type="str"/>
<efxpt:param name="DQ[11]" value="DQ[11]" value_type="str"/>
<efxpt:param name="DQ[12]" value="DQ[8]" value_type="str"/>
<efxpt:param name="DQ[13]" value="DQ[10]" value_type="str"/>
<efxpt:param name="DQ[14]" value="DQ[13]" value_type="str"/>
<efxpt:param name="DQ[15]" value="DQ[14]" value_type="str"/>
<efxpt:param name="DQ[16]" value="DQ[22]" value_type="str"/>
<efxpt:param name="DQ[17]" value="DQ[17]" value_type="str"/>
<efxpt:param name="DQ[18]" value="DQ[18]" value_type="str"/>
<efxpt:param name="DQ[19]" value="DQ[19]" value_type="str"/>
<efxpt:param name="DQ[1]" value="DQ[6]" value_type="str"/>
<efxpt:param name="DQ[20]" value="DQ[16]" value_type="str"/>
<efxpt:param name="DQ[21]" value="DQ[20]" value_type="str"/>
<efxpt:param name="DQ[22]" value="DQ[21]" value_type="str"/>
<efxpt:param name="DQ[23]" value="DQ[23]" value_type="str"/>
<efxpt:param name="DQ[24]" value="DQ[29]" value_type="str"/>
<efxpt:param name="DQ[25]" value="DQ[31]" value_type="str"/>
<efxpt:param name="DQ[26]" value="DQ[28]" value_type="str"/>
<efxpt:param name="DQ[27]" value="DQ[30]" value_type="str"/>
<efxpt:param name="DQ[28]" value="DQ[25]" value_type="str"/>
<efxpt:param name="DQ[29]" value="DQ[27]" value_type="str"/>
<efxpt:param name="DQ[2]" value="DQ[4]" value_type="str"/>
<efxpt:param name="DQ[30]" value="DQ[26]" value_type="str"/>
<efxpt:param name="DQ[31]" value="DQ[24]" value_type="str"/>
<efxpt:param name="DQ[3]" value="DQ[5]" value_type="str"/>
<efxpt:param name="DQ[4]" value="DQ[0]" value_type="str"/>
<efxpt:param name="DQ[5]" value="DQ[1]" value_type="str"/>
<efxpt:param name="DQ[6]" value="DQ[7]" value_type="str"/>
<efxpt:param name="DQ[7]" value="DQ[2]" value_type="str"/>
<efxpt:param name="DQ[8]" value="DQ[15]" value_type="str"/>
<efxpt:param name="DQ[9]" value="DQ[9]" value_type="str"/>
<efxpt:param name="ENABLE_PIN_SWAP" value="true" value_type="bool"/>
</efxpt:pin_swap>
</efxpt:adv_ddr>
</efxpt:ddr_info>
<efxpt:mipi_dphy_info/>
<efxpt:soc_info>
<efxpt:soc name="qcrv32_inst1" block_def="SOC_0">
<efxpt:gen_param>
<efxpt:param name="AXI_MASTER_EN" value="true" value_type="bool"/>
<efxpt:param name="AXI_SLAVE_EN" value="true" value_type="bool"/>
<efxpt:param name="CUSTOM_INSTRUCTION_0_EN" value="true" value_type="bool"/>
<efxpt:param name="CUSTOM_INSTRUCTION_1_EN" value="true" value_type="bool"/>
<efxpt:param name="CUSTOM_INSTRUCTION_2_EN" value="true" value_type="bool"/>
<efxpt:param name="CUSTOM_INSTRUCTION_3_EN" value="true" value_type="bool"/>
<efxpt:param name="JTAG_TYPE" value="FPGA" value_type="str"/>
<efxpt:param name="MEM_CLK_SOURCE" value="Clock 0" value_type="str"/>
<efxpt:param name="OCR_FILE_PATH" value="EfxSapphireHpSoc_bootloader/default_bootloader.hex" value_type="str"/>
<efxpt:param name="PIPELINE_SOC_AXI_MEM_INTERFACE_EN" value="false" value_type="bool"/>
<efxpt:param name="SYS_CLK_SOURCE" value="Clock 0" value_type="str"/>
<efxpt:param name="WRITEBUFFER_SOC_AXI_INTERFACE_EN" value="false" value_type="bool"/>
</efxpt:gen_param>
<efxpt:gen_pin>
<efxpt:pin name="axiAInterrupt" type_name="AXIAINTERRUPT" is_bus="false"/>
<efxpt:pin name="axiA_araddr" type_name="AXIA_ARADDR" is_bus="true"/>
<efxpt:pin name="axiA_arburst" type_name="AXIA_ARBURST" is_bus="true"/>
<efxpt:pin name="axiA_arcache" type_name="AXIA_ARCACHE" is_bus="true"/>
<efxpt:pin name="axiA_arlen" type_name="AXIA_ARLEN" is_bus="true"/>
<efxpt:pin name="axiA_arlock" type_name="AXIA_ARLOCK" is_bus="false"/>
<efxpt:pin name="axiA_arprot" type_name="AXIA_ARPROT" is_bus="true"/>
<efxpt:pin name="axiA_arqos" type_name="AXIA_ARQOS" is_bus="true"/>
<efxpt:pin name="axiA_arready" type_name="AXIA_ARREADY" is_bus="false"/>
<efxpt:pin name="axiA_arregion" type_name="AXIA_ARREGION" is_bus="true"/>
<efxpt:pin name="axiA_arsize" type_name="AXIA_ARSIZE" is_bus="true"/>
<efxpt:pin name="axiA_arvalid" type_name="AXIA_ARVALID" is_bus="false"/>
<efxpt:pin name="axiA_awaddr" type_name="AXIA_AWADDR" is_bus="true"/>
<efxpt:pin name="axiA_awburst" type_name="AXIA_AWBURST" is_bus="true"/>
<efxpt:pin name="axiA_awcache" type_name="AXIA_AWCACHE" is_bus="true"/>
<efxpt:pin name="axiA_awlen" type_name="AXIA_AWLEN" is_bus="true"/>
<efxpt:pin name="axiA_awlock" type_name="AXIA_AWLOCK" is_bus="false"/>
<efxpt:pin name="axiA_awprot" type_name="AXIA_AWPROT" is_bus="true"/>
<efxpt:pin name="axiA_awqos" type_name="AXIA_AWQOS" is_bus="true"/>
<efxpt:pin name="axiA_awready" type_name="AXIA_AWREADY" is_bus="false"/>
<efxpt:pin name="axiA_awregion" type_name="AXIA_AWREGION" is_bus="true"/>
<efxpt:pin name="axiA_awsize" type_name="AXIA_AWSIZE" is_bus="true"/>
<efxpt:pin name="axiA_awvalid" type_name="AXIA_AWVALID" is_bus="false"/>
<efxpt:pin name="axiA_bready" type_name="AXIA_BREADY" is_bus="false"/>
<efxpt:pin name="axiA_bresp" type_name="AXIA_BRESP" is_bus="true"/>
<efxpt:pin name="axiA_bvalid" type_name="AXIA_BVALID" is_bus="false"/>
<efxpt:pin name="axiA_rdata" type_name="AXIA_RDATA" is_bus="true"/>
<efxpt:pin name="axiA_rlast" type_name="AXIA_RLAST" is_bus="false"/>
<efxpt:pin name="axiA_rready" type_name="AXIA_RREADY" is_bus="false"/>
<efxpt:pin name="axiA_rresp" type_name="AXIA_RRESP" is_bus="true"/>
<efxpt:pin name="axiA_rvalid" type_name="AXIA_RVALID" is_bus="false"/>
<efxpt:pin name="axiA_wdata" type_name="AXIA_WDATA" is_bus="true"/>
<efxpt:pin name="axiA_wlast" type_name="AXIA_WLAST" is_bus="false"/>
<efxpt:pin name="axiA_wready" type_name="AXIA_WREADY" is_bus="false"/>
<efxpt:pin name="axiA_wstrb" type_name="AXIA_WSTRB" is_bus="true"/>
<efxpt:pin name="axiA_wvalid" type_name="AXIA_WVALID" is_bus="false"/>
<efxpt:pin name="cpu0_customInstruction_cmd_ready" type_name="CPU0_CUSTOMINSTRUCTION_CMD_READY" is_bus="false"/>
<efxpt:pin name="cpu0_customInstruction_cmd_valid" type_name="CPU0_CUSTOMINSTRUCTION_CMD_VALID" is_bus="false"/>
<efxpt:pin name="cpu0_customInstruction_function_id" type_name="CPU0_CUSTOMINSTRUCTION_FUNCTION_ID" is_bus="true"/>
<efxpt:pin name="cpu0_customInstruction_inputs_0" type_name="CPU0_CUSTOMINSTRUCTION_INPUTS_0" is_bus="true"/>
<efxpt:pin name="cpu0_customInstruction_inputs_1" type_name="CPU0_CUSTOMINSTRUCTION_INPUTS_1" is_bus="true"/>
<efxpt:pin name="cpu0_customInstruction_outputs_0" type_name="CPU0_CUSTOMINSTRUCTION_OUTPUTS_0" is_bus="true"/>
<efxpt:pin name="cpu0_customInstruction_rsp_ready" type_name="CPU0_CUSTOMINSTRUCTION_RSP_READY" is_bus="false"/>
<efxpt:pin name="cpu0_customInstruction_rsp_valid" type_name="CPU0_CUSTOMINSTRUCTION_RSP_VALID" is_bus="false"/>
<efxpt:pin name="cpu1_customInstruction_cmd_ready" type_name="CPU1_CUSTOMINSTRUCTION_CMD_READY" is_bus="false"/>
<efxpt:pin name="cpu1_customInstruction_cmd_valid" type_name="CPU1_CUSTOMINSTRUCTION_CMD_VALID" is_bus="false"/>
<efxpt:pin name="cpu1_customInstruction_function_id" type_name="CPU1_CUSTOMINSTRUCTION_FUNCTION_ID" is_bus="true"/>
<efxpt:pin name="cpu1_customInstruction_inputs_0" type_name="CPU1_CUSTOMINSTRUCTION_INPUTS_0" is_bus="true"/>
<efxpt:pin name="cpu1_customInstruction_inputs_1" type_name="CPU1_CUSTOMINSTRUCTION_INPUTS_1" is_bus="true"/>
<efxpt:pin name="cpu1_customInstruction_outputs_0" type_name="CPU1_CUSTOMINSTRUCTION_OUTPUTS_0" is_bus="true"/>
<efxpt:pin name="cpu1_customInstruction_rsp_ready" type_name="CPU1_CUSTOMINSTRUCTION_RSP_READY" is_bus="false"/>
<efxpt:pin name="cpu1_customInstruction_rsp_valid" type_name="CPU1_CUSTOMINSTRUCTION_RSP_VALID" is_bus="false"/>
<efxpt:pin name="cpu2_customInstruction_cmd_ready" type_name="CPU2_CUSTOMINSTRUCTION_CMD_READY" is_bus="false"/>
<efxpt:pin name="cpu2_customInstruction_cmd_valid" type_name="CPU2_CUSTOMINSTRUCTION_CMD_VALID" is_bus="false"/>
<efxpt:pin name="cpu2_customInstruction_function_id" type_name="CPU2_CUSTOMINSTRUCTION_FUNCTION_ID" is_bus="true"/>
<efxpt:pin name="cpu2_customInstruction_inputs_0" type_name="CPU2_CUSTOMINSTRUCTION_INPUTS_0" is_bus="true"/>
<efxpt:pin name="cpu2_customInstruction_inputs_1" type_name="CPU2_CUSTOMINSTRUCTION_INPUTS_1" is_bus="true"/>
<efxpt:pin name="cpu2_customInstruction_outputs_0" type_name="CPU2_CUSTOMINSTRUCTION_OUTPUTS_0" is_bus="true"/>
<efxpt:pin name="cpu2_customInstruction_rsp_ready" type_name="CPU2_CUSTOMINSTRUCTION_RSP_READY" is_bus="false"/>
<efxpt:pin name="cpu2_customInstruction_rsp_valid" type_name="CPU2_CUSTOMINSTRUCTION_RSP_VALID" is_bus="false"/>
<efxpt:pin name="cpu3_customInstruction_cmd_ready" type_name="CPU3_CUSTOMINSTRUCTION_CMD_READY" is_bus="false"/>
<efxpt:pin name="cpu3_customInstruction_cmd_valid" type_name="CPU3_CUSTOMINSTRUCTION_CMD_VALID" is_bus="false"/>
<efxpt:pin name="cpu3_customInstruction_function_id" type_name="CPU3_CUSTOMINSTRUCTION_FUNCTION_ID" is_bus="true"/>
<efxpt:pin name="cpu3_customInstruction_inputs_0" type_name="CPU3_CUSTOMINSTRUCTION_INPUTS_0" is_bus="true"/>
<efxpt:pin name="cpu3_customInstruction_inputs_1" type_name="CPU3_CUSTOMINSTRUCTION_INPUTS_1" is_bus="true"/>
<efxpt:pin name="cpu3_customInstruction_outputs_0" type_name="CPU3_CUSTOMINSTRUCTION_OUTPUTS_0" is_bus="true"/>
<efxpt:pin name="cpu3_customInstruction_rsp_ready" type_name="CPU3_CUSTOMINSTRUCTION_RSP_READY" is_bus="false"/>
<efxpt:pin name="cpu3_customInstruction_rsp_valid" type_name="CPU3_CUSTOMINSTRUCTION_RSP_VALID" is_bus="false"/>
<efxpt:pin name="io_asyncReset" type_name="IO_ASYNCRESET" is_bus="false"/>
<efxpt:pin name="io_cfuClk" type_name="IO_CFUCLK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="io_cfuReset" type_name="IO_CFURESET" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_ar_payload_addr" type_name="IO_DDRMASTERS_0_AR_PAYLOAD_ADDR" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_ar_payload_burst" type_name="IO_DDRMASTERS_0_AR_PAYLOAD_BURST" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_ar_payload_cache" type_name="IO_DDRMASTERS_0_AR_PAYLOAD_CACHE" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_ar_payload_id" type_name="IO_DDRMASTERS_0_AR_PAYLOAD_ID" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_ar_payload_len" type_name="IO_DDRMASTERS_0_AR_PAYLOAD_LEN" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_ar_payload_lock" type_name="IO_DDRMASTERS_0_AR_PAYLOAD_LOCK" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_ar_payload_prot" type_name="IO_DDRMASTERS_0_AR_PAYLOAD_PROT" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_ar_payload_qos" type_name="IO_DDRMASTERS_0_AR_PAYLOAD_QOS" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_ar_payload_region" type_name="IO_DDRMASTERS_0_AR_PAYLOAD_REGION" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_ar_payload_size" type_name="IO_DDRMASTERS_0_AR_PAYLOAD_SIZE" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_ar_ready" type_name="IO_DDRMASTERS_0_AR_READY" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_ar_valid" type_name="IO_DDRMASTERS_0_AR_VALID" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_aw_payload_addr" type_name="IO_DDRMASTERS_0_AW_PAYLOAD_ADDR" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_aw_payload_allStrb" type_name="IO_DDRMASTERS_0_AW_PAYLOAD_ALLSTRB" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_aw_payload_burst" type_name="IO_DDRMASTERS_0_AW_PAYLOAD_BURST" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_aw_payload_cache" type_name="IO_DDRMASTERS_0_AW_PAYLOAD_CACHE" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_aw_payload_id" type_name="IO_DDRMASTERS_0_AW_PAYLOAD_ID" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_aw_payload_len" type_name="IO_DDRMASTERS_0_AW_PAYLOAD_LEN" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_aw_payload_lock" type_name="IO_DDRMASTERS_0_AW_PAYLOAD_LOCK" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_aw_payload_prot" type_name="IO_DDRMASTERS_0_AW_PAYLOAD_PROT" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_aw_payload_qos" type_name="IO_DDRMASTERS_0_AW_PAYLOAD_QOS" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_aw_payload_region" type_name="IO_DDRMASTERS_0_AW_PAYLOAD_REGION" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_aw_payload_size" type_name="IO_DDRMASTERS_0_AW_PAYLOAD_SIZE" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_aw_ready" type_name="IO_DDRMASTERS_0_AW_READY" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_aw_valid" type_name="IO_DDRMASTERS_0_AW_VALID" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_b_payload_id" type_name="IO_DDRMASTERS_0_B_PAYLOAD_ID" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_b_payload_resp" type_name="IO_DDRMASTERS_0_B_PAYLOAD_RESP" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_b_ready" type_name="IO_DDRMASTERS_0_B_READY" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_b_valid" type_name="IO_DDRMASTERS_0_B_VALID" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_clk" type_name="IO_DDRMASTERS_0_CLK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="io_ddrMasters_0_reset" type_name="IO_DDRMASTERS_0_RESET" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_r_payload_data" type_name="IO_DDRMASTERS_0_R_PAYLOAD_DATA" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_r_payload_id" type_name="IO_DDRMASTERS_0_R_PAYLOAD_ID" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_r_payload_last" type_name="IO_DDRMASTERS_0_R_PAYLOAD_LAST" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_r_payload_resp" type_name="IO_DDRMASTERS_0_R_PAYLOAD_RESP" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_r_ready" type_name="IO_DDRMASTERS_0_R_READY" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_r_valid" type_name="IO_DDRMASTERS_0_R_VALID" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_w_payload_data" type_name="IO_DDRMASTERS_0_W_PAYLOAD_DATA" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_w_payload_last" type_name="IO_DDRMASTERS_0_W_PAYLOAD_LAST" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_w_payload_strb" type_name="IO_DDRMASTERS_0_W_PAYLOAD_STRB" is_bus="true"/>
<efxpt:pin name="io_ddrMasters_0_w_ready" type_name="IO_DDRMASTERS_0_W_READY" is_bus="false"/>
<efxpt:pin name="io_ddrMasters_0_w_valid" type_name="IO_DDRMASTERS_0_W_VALID" is_bus="false"/>
<efxpt:pin name="" type_name="IO_JTAG_TCK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="IO_JTAG_TDI" is_bus="false"/>
<efxpt:pin name="" type_name="IO_JTAG_TDO" is_bus="false"/>
<efxpt:pin name="" type_name="IO_JTAG_TMS" is_bus="false"/>
<efxpt:pin name="io_peripheralClk" type_name="IO_PERIPHERALCLK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="io_peripheralReset" type_name="IO_PERIPHERALRESET" is_bus="false"/>
<efxpt:pin name="io_systemReset" type_name="IO_SYSTEMRESET" is_bus="false"/>
<efxpt:pin name="jtagCtrl_capture" type_name="JTAGCTRL_CAPTURE" is_bus="false"/>
<efxpt:pin name="jtagCtrl_enable" type_name="JTAGCTRL_ENABLE" is_bus="false"/>
<efxpt:pin name="jtagCtrl_reset" type_name="JTAGCTRL_RESET" is_bus="false"/>
<efxpt:pin name="jtagCtrl_shift" type_name="JTAGCTRL_SHIFT" is_bus="false"/>
<efxpt:pin name="jtagCtrl_tck" type_name="JTAGCTRL_TCK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="jtagCtrl_tdi" type_name="JTAGCTRL_TDI" is_bus="false"/>
<efxpt:pin name="jtagCtrl_tdo" type_name="JTAGCTRL_TDO" is_bus="false"/>
<efxpt:pin name="jtagCtrl_update" type_name="JTAGCTRL_UPDATE" is_bus="false"/>
<efxpt:pin name="" type_name="MEM_SHUTDOWN" is_bus="false"/>
<efxpt:pin name="" type_name="TEST_PCR_CLK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="T_ATPG_NMBIST" is_bus="false"/>
<efxpt:pin name="" type_name="T_COMP_EN" is_bus="false"/>
<efxpt:pin name="" type_name="T_COMP_MASK_EN" is_bus="false"/>
<efxpt:pin name="" type_name="T_COMP_MASK_LD" is_bus="false"/>
<efxpt:pin name="" type_name="T_DFT_CLOCK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="T_LOS_EN" is_bus="false"/>
<efxpt:pin name="" type_name="T_OPCG_ENABLE" is_bus="false"/>
<efxpt:pin name="" type_name="T_OPCG_LOAD" is_bus="false"/>
<efxpt:pin name="" type_name="T_OPCG_TRIGGER" is_bus="false"/>
<efxpt:pin name="" type_name="T_PMDA_DONE" is_bus="false"/>
<efxpt:pin name="" type_name="T_PMDA_FAIL" is_bus="false"/>
<efxpt:pin name="" type_name="T_PMDA_RESET" is_bus="false"/>
<efxpt:pin name="" type_name="T_PMDA_TCK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="T_PMDA_TDI" is_bus="false"/>
<efxpt:pin name="" type_name="T_PMDA_TDO" is_bus="false"/>
<efxpt:pin name="" type_name="T_RSTN" is_bus="false"/>
<efxpt:pin name="" type_name="T_SCANIN" is_bus="true"/>
<efxpt:pin name="" type_name="T_SCANOUT" is_bus="true"/>
<efxpt:pin name="" type_name="T_SCK" is_bus="false" is_clk="true" is_clk_invert="false"/>
<efxpt:pin name="" type_name="T_SE" is_bus="false"/>
<efxpt:pin name="" type_name="T_SE_CG" is_bus="false"/>
<efxpt:pin name="" type_name="T_TM" is_bus="false"/>
<efxpt:pin name="userInterruptA" type_name="USERINTERRUPTA" is_bus="false"/>
<efxpt:pin name="userInterruptB" type_name="USERINTERRUPTB" is_bus="false"/>
<efxpt:pin name="userInterruptC" type_name="USERINTERRUPTC" is_bus="false"/>
<efxpt:pin name="userInterruptD" type_name="USERINTERRUPTD" is_bus="false"/>
<efxpt:pin name="userInterruptE" type_name="USERINTERRUPTE" is_bus="false"/>
<efxpt:pin name="userInterruptF" type_name="USERINTERRUPTF" is_bus="false"/>
<efxpt:pin name="userInterruptG" type_name="USERINTERRUPTG" is_bus="false"/>
<efxpt:pin name="userInterruptH" type_name="USERINTERRUPTH" is_bus="false"/>
<efxpt:pin name="userInterruptI" type_name="USERINTERRUPTI" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTJ" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTK" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTL" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTM" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTN" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTO" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTP" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTQ" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTR" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTS" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTT" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTU" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTV" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTW" is_bus="false"/>
<efxpt:pin name="" type_name="USERINTERRUPTX" is_bus="false"/>
</efxpt:gen_pin>
</efxpt:soc>
</efxpt:soc_info>
</efxpt:design_db>

View File

@@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8"?>
<efx:project name="Ti375C529_devkit" description="" sw_version="2026.1.132" xmlns:efx="http://www.efinixinc.com/enf_proj" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.efinixinc.com/enf_proj enf_proj.xsd">
<efx:device_info>
<efx:family name="Titanium"/>
<efx:device name="Ti375C529"/>
<efx:timing_model name="C4"/>
</efx:device_info>
<efx:design_info def_veri_version="verilog_2k" def_vhdl_version="vhdl_2008" unified_flow="false" partition_interface_allowed_off_perimeter="true">
<efx:top_module name="top_soc"/>
<efx:design_file name="source/top_soc.v" version="default" library="default"/>
<efx:design_file name="source/tseCore.v" version="default" library="default"/>
<efx:design_file name="source/design_modules.v" version="default" library="default"/>
<efx:design_file name="source/MacTxLso.v" version="default" library="default"/>
<efx:design_file name="source/MacRxCheckSumChecker.v" version="default" library="default"/>
<efx:top_vhdl_arch name=""/>
<efx:msg_config name=""/>
<efx:partition_definitions name=""/>
<efx:partition_interface_assignments name=""/>
</efx:design_info>
<efx:interface_info>
<efx:default_peri_file name="Ti375C529_devkit.peri.xml"/>
<efx:peri_file name="Ti375C529_devkit.peri.xml"/>
</efx:interface_info>
<efx:constraint_info>
<efx:sdc_file name="constraints.sdc"/>
<efx:inter_file name=""/>
</efx:constraint_info>
<efx:sim_info/>
<efx:misc_info/>
<efx:ooc_info/>
<efx:ip_info>
<efx:ip instance_name="EfxSapphireHpSoc_slb" path="ip/EfxSapphireHpSoc_slb/settings.json" ooc="false">
<efx:ip_src_file name="EfxSapphireHpSoc_slb.v"/>
</efx:ip>
<efx:ip instance_name="gSDHC" path="ip/gSDHC/settings.json" ooc="false">
<efx:ip_src_file name="gSDHC.v"/>
</efx:ip>
<efx:ip instance_name="gTSE" path="ip/gTSE/settings.json" ooc="false">
<efx:ip_src_file name="gTSE.sv"/>
</efx:ip>
<efx:ip instance_name="gTSE_1to2_switch" path="ip/gTSE_1to2_switch/settings.json" ooc="false">
<efx:ip_src_file name="gTSE_1to2_switch.v"/>
</efx:ip>
<efx:ip instance_name="gDMA" path="ip/gDMA/settings.json" ooc="false">
<efx:ip_src_file name="gDMA.v"/>
</efx:ip>
<efx:ip instance_name="gTSE_core_fifo_data" path="ip/gTSE_core_fifo_data/settings.json" ooc="false">
<efx:ip_src_file name="gTSE_core_fifo_data.sv"/>
</efx:ip>
<efx:ip instance_name="gTSE_core_fifo_ctrl" path="ip/gTSE_core_fifo_ctrl/settings.json" ooc="false">
<efx:ip_src_file name="gTSE_core_fifo_ctrl.sv"/>
</efx:ip>
<efx:ip instance_name="gAXIM_2to1_switch" path="ip/gAXIM_2to1_switch/settings.json" ooc="false">
<efx:ip_src_file name="gAXIM_2to1_switch.v"/>
</efx:ip>
<efx:ip instance_name="gAXIS_1to3_switch" path="ip/gAXIS_1to3_switch/settings.json" ooc="false">
<efx:ip_src_file name="gAXIS_1to3_switch.v"/>
</efx:ip>
</efx:ip_info>
<efx:synthesis tool_name="efx_map">
<efx:param name="work_dir" value="work_syn" value_type="e_string"/>
<efx:param name="write_efx_verilog" value="on" value_type="e_bool"/>
<efx:param name="allow-const-ram-index" value="0" value_type="e_option"/>
<efx:param name="blackbox-error" value="1" value_type="e_option"/>
<efx:param name="blast_const_operand_adders" value="1" value_type="e_option"/>
<efx:param name="bram_output_regs_packing" value="1" value_type="e_option"/>
<efx:param name="create-onehot-fsms" value="0" value_type="e_option"/>
<efx:param name="fanout-limit" value="0" value_type="e_integer"/>
<efx:param name="hdl-compile-unit" value="1" value_type="e_option"/>
<efx:param name="infer-clk-enable" value="3" value_type="e_option"/>
<efx:param name="infer-sync-set-reset" value="1" value_type="e_option"/>
<efx:param name="max_ram" value="-1" value_type="e_integer"/>
<efx:param name="max_mult" value="-1" value_type="e_integer"/>
<efx:param name="min-sr-fanout" value="0" value_type="e_integer"/>
<efx:param name="min-ce-fanout" value="0" value_type="e_integer"/>
<efx:param name="mode" value="speed" value_type="e_option"/>
<efx:param name="mult-auto-pipeline" value="0" value_type="e_option"/>
<efx:param name="mult-decomp-retime" value="0" value_type="e_option"/>
<efx:param name="operator-sharing" value="0" value_type="e_option"/>
<efx:param name="optimize-adder-tree" value="0" value_type="e_option"/>
<efx:param name="optimize-zero-init-rom" value="1" value_type="e_option"/>
<efx:param name="retiming" value="1" value_type="e_option"/>
<efx:param name="seq_opt" value="1" value_type="e_option"/>
<efx:param name="seq-opt-sync-only" value="0" value_type="e_option"/>
<efx:param name="use-logic-for-small-mem" value="64" value_type="e_integer"/>
<efx:param name="use-logic-for-small-rom" value="64" value_type="e_integer"/>
<efx:param name="dsp-input-regs-packing" value="1" value_type="e_option"/>
<efx:param name="dsp-output-regs-packing" value="1" value_type="e_option"/>
<efx:param name="dsp-mac-packing" value="1" value_type="e_option"/>
<efx:param name="insert-carry-skip" value="0" value_type="e_option"/>
<efx:param name="pack-luts-to-comb4" value="0" value_type="e_option"/>
<efx:param name="include" value="ip/EfxSapphireHpSoc_slb" value_type="e_string"/>
<efx:param name="include" value="ip/gSDHC" value_type="e_string"/>
<efx:param name="include" value="ip/gTSE" value_type="e_string"/>
<efx:param name="include" value="ip/gTSE_1to2_switch" value_type="e_string"/>
<efx:param name="include" value="ip/gDMA" value_type="e_string"/>
<efx:param name="include" value="ip/gTSE_core_fifo_data" value_type="e_string"/>
<efx:param name="include" value="ip/gTSE_core_fifo_ctrl" value_type="e_string"/>
<efx:param name="include" value="ip/gAXIM_2to1_switch" value_type="e_string"/>
<efx:param name="include" value="ip/gAXIS_1to3_switch" value_type="e_string"/>
<efx:param name="bram-push-tco-outreg" value="0" value_type="e_option"/>
<efx:param name="hdl-loop-limit" value="20000" value_type="e_integer"/>
<efx:param name="peri-syn-instantiation" value="0" value_type="e_option"/>
<efx:param name="peri-syn-inference" value="0" value_type="e_option"/>
<efx:param name="max_threads" value="-1" value_type="e_integer"/>
<efx:param name="max-bit-blast-mem-size" value="10240" value_type="e_integer"/>
<efx:param name="ram-decomp-mode" value="0" value_type="e_option"/>
<efx:param name="enable-mark-debug" value="1" value_type="e_option"/>
<efx:param name="suppress_info_msgs" value="off" value_type="e_bool"/>
<efx:param name="suppress_warning_msgs" value="off" value_type="e_bool"/>
</efx:synthesis>
<efx:place_and_route tool_name="efx_pnr">
<efx:param name="work_dir" value="work_pnr" value_type="e_string"/>
<efx:param name="verbose" value="off" value_type="e_bool"/>
<efx:param name="seed" value="1" value_type="e_integer"/>
<efx:param name="placer_effort_level" value="2" value_type="e_option"/>
<efx:param name="max_threads" value="-1" value_type="e_integer"/>
<efx:param name="beneficial_skew" value="on" value_type="e_option"/>
<efx:param name="print_critical_path" value="10" value_type="e_integer"/>
<efx:param name="classic_flow" value="off" value_type="e_noarg"/>
<efx:param name="suppress_info_msgs" value="off" value_type="e_bool"/>
<efx:param name="suppress_warning_msgs" value="off" value_type="e_bool"/>
</efx:place_and_route>
<efx:bitstream_generation tool_name="efx_pgm">
<efx:param name="mode" value="active" value_type="e_option"/>
<efx:param name="width" value="1" value_type="e_option"/>
<efx:param name="enable_roms" value="smart" value_type="e_option"/>
<efx:param name="spi_low_power_mode" value="on" value_type="e_bool"/>
<efx:param name="io_weak_pullup" value="on" value_type="e_bool"/>
<efx:param name="oscillator_clock_divider" value="DIV8" value_type="e_option"/>
<efx:param name="bitstream_compression" value="on" value_type="e_bool"/>
<efx:param name="enable_external_master_clock" value="off" value_type="e_bool"/>
<efx:param name="active_capture_clk_edge" value="negedge" value_type="e_option"/>
<efx:param name="jtag_usercode" value="0xFFFFFFFF" value_type="e_string"/>
<efx:param name="release_tri_then_reset" value="on" value_type="e_bool"/>
<efx:param name="four_byte_addressing" value="off" value_type="e_bool"/>
<efx:param name="generate_bit" value="on" value_type="e_bool"/>
<efx:param name="generate_bitbin" value="off" value_type="e_bool"/>
<efx:param name="generate_hex" value="on" value_type="e_bool"/>
<efx:param name="generate_hexbin" value="off" value_type="e_bool"/>
<efx:param name="cold_boot" value="off" value_type="e_bool"/>
<efx:param name="cascade" value="off" value_type="e_option"/>
</efx:bitstream_generation>
<efx:debugger>
<efx:param name="work_dir" value="work_dbg" value_type="e_string"/>
<efx:param name="auto_instantiation" value="off" value_type="e_bool"/>
<efx:param name="profile" value="NONE" value_type="e_string"/>
</efx:debugger>
<efx:security>
<efx:param name="randomize_iv_value" value="on" value_type="e_bool"/>
<efx:param name="enable_bitstream_encrypt" value="off" value_type="e_bool"/>
<efx:param name="enable_bitstream_auth" value="off" value_type="e_bool"/>
<efx:param name="encryption_key_file" value="NONE" value_type="e_string"/>
<efx:param name="auth_key_file" value="NONE" value_type="e_string"/>
</efx:security>
</efx:project>

View File

@@ -0,0 +1,369 @@
# Auto-generated by Interface Designer
#
# WARNING: Any manual changes made to this file will be lost when generating constraints.
# Efinity Interface Designer SDC
# Version: 2024.M.98
# Date: 2024-04-13 10:16
# Copyright (C) 2013 - 2024 Efinix Inc. All rights reserved.
# Device: Ti375C529
# Project: Ti375C529_devkit
# Timing Model: C4 (preliminary)
# NOTE: The timing data is not final
# PLL Constraints
#################
create_clock -period 10.0000 io_sysFbClk
create_clock -period 5.0000 io_peripheralClk
create_clock -period 4.0000 io_ddrMasters_0_clk
create_clock -period 8.0000 io_cfuClk
create_clock -period 10.0000 sd_base_clk
create_clock -period 8.0000 rgmii_rxc
create_clock -waveform {2.0000 6.0000} -period 8.0000 io_tseClk_90
create_clock -period 8.0000 io_tseClk
set_clock_groups -exclusive -group {rgmii_rxc io_tseClk_90 io_tseClk} -group {sd_base_clk} -group {io_cfuClk} -group {io_peripheralClk} -group {io_ddrMasters_0_clk}
# GPIO Constraints
####################
set_output_delay -clock sd_base_clk -reference_pin [get_ports {sd_base_clk~CLKOUT~347~2}] -max 0.079 [get_ports {sd_clk_hi}]
set_output_delay -clock sd_base_clk -reference_pin [get_ports {sd_base_clk~CLKOUT~347~2}] -min -0.045 [get_ports {sd_clk_hi}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {io_gpio_sw_n}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {io_gpio_sw_n}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_uart_0_io_rxd}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_uart_0_io_rxd}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_uart_0_io_txd}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_uart_0_io_txd}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_gpio_0_io_read[1]}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_gpio_0_io_read[1]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_gpio_0_io_write[1]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_gpio_0_io_write[1]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_gpio_0_io_writeEnable[1]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_gpio_0_io_writeEnable[1]}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_gpio_0_io_read[2]}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_gpio_0_io_read[2]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_gpio_0_io_write[2]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_gpio_0_io_write[2]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_gpio_0_io_writeEnable[2]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_gpio_0_io_writeEnable[2]}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_i2c_0_io_scl_read}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_i2c_0_io_scl_read}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_i2c_0_io_scl_write}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_i2c_0_io_scl_write}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_i2c_0_io_scl_writeEnable}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_i2c_0_io_scl_writeEnable}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_i2c_0_io_sda_read}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_i2c_0_io_sda_read}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_i2c_0_io_sda_write}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_i2c_0_io_sda_write}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_i2c_0_io_sda_writeEnable}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_i2c_0_io_sda_writeEnable}]
# JTAG Constraints
####################
create_clock -period 100 [get_ports {jtagCtrl_tck}]
set_output_delay -clock jtagCtrl_tck -max 0.117 [get_ports {ut_jtagCtrl_tdo}]
set_output_delay -clock jtagCtrl_tck -min -0.075 [get_ports {ut_jtagCtrl_tdo}]
set_input_delay -clock_fall -clock jtagCtrl_tck -max 0.280 [get_ports {ut_jtagCtrl_capture}]
set_input_delay -clock_fall -clock jtagCtrl_tck -min 0.187 [get_ports {ut_jtagCtrl_capture}]
set_input_delay -clock_fall -clock jtagCtrl_tck -max 0.280 [get_ports {ut_jtagCtrl_reset}]
set_input_delay -clock_fall -clock jtagCtrl_tck -min 0.187 [get_ports {ut_jtagCtrl_reset}]
set_input_delay -clock_fall -clock jtagCtrl_tck -max 0.243 [get_ports {ut_jtagCtrl_enable}]
set_input_delay -clock_fall -clock jtagCtrl_tck -min 0.162 [get_ports {ut_jtagCtrl_enable}]
set_input_delay -clock_fall -clock jtagCtrl_tck -max 0.280 [get_ports {ut_jtagCtrl_update}]
set_input_delay -clock_fall -clock jtagCtrl_tck -min 0.187 [get_ports {ut_jtagCtrl_update}]
set_input_delay -clock_fall -clock jtagCtrl_tck -max 0.337 [get_ports {ut_jtagCtrl_shift}]
set_input_delay -clock_fall -clock jtagCtrl_tck -min 0.225 [get_ports {ut_jtagCtrl_shift}]
# JTAG Constraints (extra... not used by current Efinity debug tools)
# Create separate clock groups for JTAG clocks. Remove DRCK clock from the list below if it is not defined.
# set_clock_groups -asynchronous -group {jtagCtrl_tck}
# HSIO GPIO Constraints
#########################
set_input_delay -clock rgmii_rxc -reference_pin [get_ports {rgmii_rxc~CLKOUT~391~964}] -max 0.414 [get_ports {rgmii_rx_ctl_LO rgmii_rx_ctl_HI}]
set_input_delay -clock rgmii_rxc -reference_pin [get_ports {rgmii_rxc~CLKOUT~391~964}] -min 0.276 [get_ports {rgmii_rx_ctl_LO rgmii_rx_ctl_HI}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {rgmii_rxc_phy}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {rgmii_rxc_phy}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {rgmii_rxc_slow}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {rgmii_rxc_slow}]
set_input_delay -clock rgmii_rxc -reference_pin [get_ports {rgmii_rxc~CLKOUT~395~964}] -max 0.414 [get_ports {rgmii_rxd_LO[0] rgmii_rxd_HI[0]}]
set_input_delay -clock rgmii_rxc -reference_pin [get_ports {rgmii_rxc~CLKOUT~395~964}] -min 0.276 [get_ports {rgmii_rxd_LO[0] rgmii_rxd_HI[0]}]
set_input_delay -clock rgmii_rxc -reference_pin [get_ports {rgmii_rxc~CLKOUT~397~964}] -max 0.414 [get_ports {rgmii_rxd_LO[1] rgmii_rxd_HI[1]}]
set_input_delay -clock rgmii_rxc -reference_pin [get_ports {rgmii_rxc~CLKOUT~397~964}] -min 0.276 [get_ports {rgmii_rxd_LO[1] rgmii_rxd_HI[1]}]
set_input_delay -clock rgmii_rxc -reference_pin [get_ports {rgmii_rxc~CLKOUT~408~964}] -max 0.414 [get_ports {rgmii_rxd_LO[2] rgmii_rxd_HI[2]}]
set_input_delay -clock rgmii_rxc -reference_pin [get_ports {rgmii_rxc~CLKOUT~408~964}] -min 0.276 [get_ports {rgmii_rxd_LO[2] rgmii_rxd_HI[2]}]
set_input_delay -clock rgmii_rxc -reference_pin [get_ports {rgmii_rxc~CLKOUT~412~963}] -max 0.414 [get_ports {rgmii_rxd_LO[3] rgmii_rxd_HI[3]}]
set_input_delay -clock rgmii_rxc -reference_pin [get_ports {rgmii_rxc~CLKOUT~412~963}] -min 0.276 [get_ports {rgmii_rxd_LO[3] rgmii_rxd_HI[3]}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {sd_cd_n}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {sd_cd_n}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {io_ddrMasters_memCheck_pass}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {io_ddrMasters_memCheck_pass}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {phy_mdc}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {phy_mdc}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~352~963}] -max 0.263 [get_ports {rgmii_tx_ctl_LO rgmii_tx_ctl_HI}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~352~963}] -min -0.140 [get_ports {rgmii_tx_ctl_LO rgmii_tx_ctl_HI}]
set_output_delay -clock io_tseClk_90 -reference_pin [get_ports {io_tseClk_90~CLKOUT~359~964}] -max 0.263 [get_ports {rgmii_txc_LO rgmii_txc_HI}]
set_output_delay -clock io_tseClk_90 -reference_pin [get_ports {io_tseClk_90~CLKOUT~359~964}] -min -0.140 [get_ports {rgmii_txc_LO rgmii_txc_HI}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~358~963}] -max 0.263 [get_ports {rgmii_txd_LO[0] rgmii_txd_HI[0]}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~358~963}] -min -0.140 [get_ports {rgmii_txd_LO[0] rgmii_txd_HI[0]}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~364~963}] -max 0.263 [get_ports {rgmii_txd_LO[1] rgmii_txd_HI[1]}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~364~963}] -min -0.140 [get_ports {rgmii_txd_LO[1] rgmii_txd_HI[1]}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~365~964}] -max 0.263 [get_ports {rgmii_txd_LO[2] rgmii_txd_HI[2]}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~365~964}] -min -0.140 [get_ports {rgmii_txd_LO[2] rgmii_txd_HI[2]}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~376~964}] -max 0.263 [get_ports {rgmii_txd_LO[3] rgmii_txd_HI[3]}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~376~964}] -min -0.140 [get_ports {rgmii_txd_LO[3] rgmii_txd_HI[3]}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~418~2}] -max 0.263 [get_ports {system_spi_0_io_sclk_write}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~418~2}] -min -0.140 [get_ports {system_spi_0_io_sclk_write}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~407~2}] -max 0.263 [get_ports {system_spi_0_io_ss[0]}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~407~2}] -min -0.140 [get_ports {system_spi_0_io_ss[0]}]
set_input_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~381~964}] -max 0.414 [get_ports {phy_mdi}]
set_input_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~381~964}] -min 0.276 [get_ports {phy_mdi}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~384~964}] -max 0.263 [get_ports {phy_mdo}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~384~964}] -min -0.140 [get_ports {phy_mdo}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~384~964}] -max 0.263 [get_ports {phy_mdo_en}]
set_output_delay -clock io_tseClk -reference_pin [get_ports {io_tseClk~CLKOUT~384~964}] -min -0.140 [get_ports {phy_mdo_en}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_gpio_0_io_read[0]}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_gpio_0_io_read[0]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_gpio_0_io_write[0]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_gpio_0_io_write[0]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_gpio_0_io_writeEnable[0]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_gpio_0_io_writeEnable[0]}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_gpio_0_io_read[3]}]
# set_input_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_gpio_0_io_read[3]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_gpio_0_io_write[3]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_gpio_0_io_write[3]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -max <MAX CALCULATION> [get_ports {system_gpio_0_io_writeEnable[3]}]
# set_output_delay -clock <CLOCK> [-reference_pin <clkout_pad>] -min <MIN CALCULATION> [get_ports {system_gpio_0_io_writeEnable[3]}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~418~1}] -max 0.414 [get_ports {system_spi_0_io_data_0_read}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~418~1}] -min 0.276 [get_ports {system_spi_0_io_data_0_read}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~422~2}] -max 0.263 [get_ports {system_spi_0_io_data_0_write}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~422~2}] -min -0.140 [get_ports {system_spi_0_io_data_0_write}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~422~2}] -max 0.263 [get_ports {system_spi_0_io_data_0_writeEnable}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~422~2}] -min -0.140 [get_ports {system_spi_0_io_data_0_writeEnable}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~425~1}] -max 0.414 [get_ports {system_spi_0_io_data_1_read}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~425~1}] -min 0.276 [get_ports {system_spi_0_io_data_1_read}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~420~1}] -max 0.263 [get_ports {system_spi_0_io_data_1_write}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~420~1}] -min -0.140 [get_ports {system_spi_0_io_data_1_write}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~420~1}] -max 0.263 [get_ports {system_spi_0_io_data_1_writeEnable}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~420~1}] -min -0.140 [get_ports {system_spi_0_io_data_1_writeEnable}]
# QCRV32 Constraints
#######################
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.701 [get_ports {io_ddrMasters_0_reset}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.340 [get_ports {io_ddrMasters_0_reset}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.196 [get_ports {io_ddrMasters_0_ar_payload_addr[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.071 [get_ports {io_ddrMasters_0_ar_payload_addr[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.217 [get_ports {io_ddrMasters_0_ar_payload_burst[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.034 [get_ports {io_ddrMasters_0_ar_payload_burst[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.222 [get_ports {io_ddrMasters_0_ar_payload_cache[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.020 [get_ports {io_ddrMasters_0_ar_payload_cache[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.247 [get_ports {io_ddrMasters_0_ar_payload_id[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.038 [get_ports {io_ddrMasters_0_ar_payload_id[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.251 [get_ports {io_ddrMasters_0_ar_payload_len[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.008 [get_ports {io_ddrMasters_0_ar_payload_len[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.226 [get_ports {io_ddrMasters_0_ar_payload_lock}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.054 [get_ports {io_ddrMasters_0_ar_payload_lock}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.265 [get_ports {io_ddrMasters_0_ar_payload_prot[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.006 [get_ports {io_ddrMasters_0_ar_payload_prot[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.191 [get_ports {io_ddrMasters_0_ar_payload_qos[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.013 [get_ports {io_ddrMasters_0_ar_payload_qos[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.259 [get_ports {io_ddrMasters_0_ar_payload_region[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.018 [get_ports {io_ddrMasters_0_ar_payload_region[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.219 [get_ports {io_ddrMasters_0_ar_payload_size[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.007 [get_ports {io_ddrMasters_0_ar_payload_size[*]}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 1.064 [get_ports {io_ddrMasters_0_ar_ready}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.544 [get_ports {io_ddrMasters_0_ar_ready}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.025 [get_ports {io_ddrMasters_0_ar_valid}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.051 [get_ports {io_ddrMasters_0_ar_valid}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 1.031 [get_ports {io_ddrMasters_0_r_payload_data[*]}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.347 [get_ports {io_ddrMasters_0_r_payload_data[*]}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.844 [get_ports {io_ddrMasters_0_r_payload_last}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.387 [get_ports {io_ddrMasters_0_r_payload_last}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.426 [get_ports {io_ddrMasters_0_r_ready}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.095 [get_ports {io_ddrMasters_0_r_ready}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.965 [get_ports {io_ddrMasters_0_r_valid}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.508 [get_ports {io_ddrMasters_0_r_valid}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.372 [get_ports {io_ddrMasters_0_aw_payload_addr[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.005 [get_ports {io_ddrMasters_0_aw_payload_addr[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.296 [get_ports {io_ddrMasters_0_aw_payload_allStrb}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.016 [get_ports {io_ddrMasters_0_aw_payload_allStrb}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.217 [get_ports {io_ddrMasters_0_aw_payload_burst[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.002 [get_ports {io_ddrMasters_0_aw_payload_burst[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.217 [get_ports {io_ddrMasters_0_aw_payload_cache[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.027 [get_ports {io_ddrMasters_0_aw_payload_cache[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.238 [get_ports {io_ddrMasters_0_aw_payload_id[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.001 [get_ports {io_ddrMasters_0_aw_payload_id[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.280 [get_ports {io_ddrMasters_0_aw_payload_len[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.003 [get_ports {io_ddrMasters_0_aw_payload_len[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.205 [get_ports {io_ddrMasters_0_aw_payload_lock}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.022 [get_ports {io_ddrMasters_0_aw_payload_lock}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.178 [get_ports {io_ddrMasters_0_aw_payload_prot[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.039 [get_ports {io_ddrMasters_0_aw_payload_prot[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.243 [get_ports {io_ddrMasters_0_aw_payload_qos[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.053 [get_ports {io_ddrMasters_0_aw_payload_qos[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.253 [get_ports {io_ddrMasters_0_aw_payload_region[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.008 [get_ports {io_ddrMasters_0_aw_payload_region[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.263 [get_ports {io_ddrMasters_0_aw_payload_size[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.007 [get_ports {io_ddrMasters_0_aw_payload_size[*]}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 1.213 [get_ports {io_ddrMasters_0_aw_ready}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.610 [get_ports {io_ddrMasters_0_aw_ready}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.294 [get_ports {io_ddrMasters_0_aw_valid}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.058 [get_ports {io_ddrMasters_0_aw_valid}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.289 [get_ports {io_ddrMasters_0_w_payload_data[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.105 [get_ports {io_ddrMasters_0_w_payload_data[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.042 [get_ports {io_ddrMasters_0_w_payload_last}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.053 [get_ports {io_ddrMasters_0_w_payload_last}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.130 [get_ports {io_ddrMasters_0_w_payload_strb[*]}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.070 [get_ports {io_ddrMasters_0_w_payload_strb[*]}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 1.193 [get_ports {io_ddrMasters_0_w_ready}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.616 [get_ports {io_ddrMasters_0_w_ready}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.118 [get_ports {io_ddrMasters_0_w_valid}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.038 [get_ports {io_ddrMasters_0_w_valid}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.196 [get_ports {io_ddrMasters_0_b_ready}]
set_output_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min -0.012 [get_ports {io_ddrMasters_0_b_ready}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -max 0.991 [get_ports {io_ddrMasters_0_b_valid}]
set_input_delay -clock io_ddrMasters_0_clk -reference_pin [get_ports {io_ddrMasters_0_clk~CLKOUT~38~2}] -min 0.514 [get_ports {io_ddrMasters_0_b_valid}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.766 [get_ports {axiAInterrupt}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.322 [get_ports {axiAInterrupt}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 1.089 [get_ports {axiA_araddr[*]}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.425 [get_ports {axiA_araddr[*]}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 1.134 [get_ports {axiA_arlen[*]}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.484 [get_ports {axiA_arlen[*]}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.285 [get_ports {axiA_arready}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.074 [get_ports {axiA_arready}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.824 [get_ports {axiA_arvalid}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.444 [get_ports {axiA_arvalid}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.660 [get_ports {axiA_rdata[*]}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.018 [get_ports {axiA_rdata[*]}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.384 [get_ports {axiA_rlast}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.068 [get_ports {axiA_rlast}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 1.305 [get_ports {axiA_rready}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.647 [get_ports {axiA_rready}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.460 [get_ports {axiA_rresp[*]}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.113 [get_ports {axiA_rresp[*]}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.344 [get_ports {axiA_rvalid}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.071 [get_ports {axiA_rvalid}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.710 [get_ports {axiA_awaddr[*]}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.344 [get_ports {axiA_awaddr[*]}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.753 [get_ports {axiA_awlen[*]}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.363 [get_ports {axiA_awlen[*]}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.156 [get_ports {axiA_awready}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min -0.017 [get_ports {axiA_awready}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.674 [get_ports {axiA_awvalid}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.354 [get_ports {axiA_awvalid}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 1.000 [get_ports {axiA_wdata[*]}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.373 [get_ports {axiA_wdata[*]}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.933 [get_ports {axiA_wlast}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.494 [get_ports {axiA_wlast}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.155 [get_ports {axiA_wready}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min -0.018 [get_ports {axiA_wready}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 1.021 [get_ports {axiA_wstrb[*]}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.491 [get_ports {axiA_wstrb[*]}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.799 [get_ports {axiA_wvalid}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.414 [get_ports {axiA_wvalid}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.944 [get_ports {axiA_bready}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.494 [get_ports {axiA_bready}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.315 [get_ports {axiA_bresp[*]}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.064 [get_ports {axiA_bresp[*]}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.251 [get_ports {axiA_bvalid}]
set_output_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.052 [get_ports {axiA_bvalid}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -max 0.730 [get_ports {io_peripheralReset}]
set_input_delay -clock io_peripheralClk -reference_pin [get_ports {io_peripheralClk~CLKOUT~42~2}] -min 0.386 [get_ports {io_peripheralReset}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 0.777 [get_ports {cpu0_customInstruction_cmd_ready}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.246 [get_ports {cpu0_customInstruction_cmd_ready}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.488 [get_ports {cpu0_customInstruction_cmd_valid}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.776 [get_ports {cpu0_customInstruction_cmd_valid}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.500 [get_ports {cpu0_customInstruction_function_id[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.637 [get_ports {cpu0_customInstruction_function_id[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.545 [get_ports {cpu0_customInstruction_inputs_0[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.612 [get_ports {cpu0_customInstruction_inputs_0[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.428 [get_ports {cpu0_customInstruction_inputs_1[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.625 [get_ports {cpu0_customInstruction_inputs_1[*]}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 0.844 [get_ports {cpu0_customInstruction_outputs_0[*]}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.147 [get_ports {cpu0_customInstruction_outputs_0[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.401 [get_ports {cpu0_customInstruction_rsp_ready}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.746 [get_ports {cpu0_customInstruction_rsp_ready}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 0.864 [get_ports {cpu0_customInstruction_rsp_valid}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.251 [get_ports {cpu0_customInstruction_rsp_valid}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 0.947 [get_ports {cpu1_customInstruction_cmd_ready}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.300 [get_ports {cpu1_customInstruction_cmd_ready}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.580 [get_ports {cpu1_customInstruction_cmd_valid}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.804 [get_ports {cpu1_customInstruction_cmd_valid}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.849 [get_ports {cpu1_customInstruction_function_id[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.720 [get_ports {cpu1_customInstruction_function_id[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.956 [get_ports {cpu1_customInstruction_inputs_0[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.752 [get_ports {cpu1_customInstruction_inputs_0[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.810 [get_ports {cpu1_customInstruction_inputs_1[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.748 [get_ports {cpu1_customInstruction_inputs_1[*]}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.052 [get_ports {cpu1_customInstruction_outputs_0[*]}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.169 [get_ports {cpu1_customInstruction_outputs_0[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.643 [get_ports {cpu1_customInstruction_rsp_ready}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.869 [get_ports {cpu1_customInstruction_rsp_ready}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 0.800 [get_ports {cpu1_customInstruction_rsp_valid}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.278 [get_ports {cpu1_customInstruction_rsp_valid}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 0.863 [get_ports {cpu2_customInstruction_cmd_ready}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.325 [get_ports {cpu2_customInstruction_cmd_ready}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.757 [get_ports {cpu2_customInstruction_cmd_valid}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.841 [get_ports {cpu2_customInstruction_cmd_valid}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.667 [get_ports {cpu2_customInstruction_function_id[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.801 [get_ports {cpu2_customInstruction_function_id[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.848 [get_ports {cpu2_customInstruction_inputs_0[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.750 [get_ports {cpu2_customInstruction_inputs_0[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.750 [get_ports {cpu2_customInstruction_inputs_1[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.762 [get_ports {cpu2_customInstruction_inputs_1[*]}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 0.950 [get_ports {cpu2_customInstruction_outputs_0[*]}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.234 [get_ports {cpu2_customInstruction_outputs_0[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.745 [get_ports {cpu2_customInstruction_rsp_ready}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.931 [get_ports {cpu2_customInstruction_rsp_ready}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 0.726 [get_ports {cpu2_customInstruction_rsp_valid}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.277 [get_ports {cpu2_customInstruction_rsp_valid}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 0.730 [get_ports {cpu3_customInstruction_cmd_ready}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.297 [get_ports {cpu3_customInstruction_cmd_ready}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.529 [get_ports {cpu3_customInstruction_cmd_valid}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.830 [get_ports {cpu3_customInstruction_cmd_valid}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.677 [get_ports {cpu3_customInstruction_function_id[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.788 [get_ports {cpu3_customInstruction_function_id[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.677 [get_ports {cpu3_customInstruction_inputs_0[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.770 [get_ports {cpu3_customInstruction_inputs_0[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.741 [get_ports {cpu3_customInstruction_inputs_1[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.769 [get_ports {cpu3_customInstruction_inputs_1[*]}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.074 [get_ports {cpu3_customInstruction_outputs_0[*]}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.200 [get_ports {cpu3_customInstruction_outputs_0[*]}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 1.685 [get_ports {cpu3_customInstruction_rsp_ready}]
set_input_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.913 [get_ports {cpu3_customInstruction_rsp_ready}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -max 0.756 [get_ports {cpu3_customInstruction_rsp_valid}]
set_output_delay -clock io_cfuClk -reference_pin [get_ports {io_cfuClk~CLKOUT~3~1}] -min 0.319 [get_ports {cpu3_customInstruction_rsp_valid}]
set_output_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -max 1.058 [get_ports {jtagCtrl_capture}]
set_output_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -min 0.420 [get_ports {jtagCtrl_capture}]
set_output_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -max 1.423 [get_ports {jtagCtrl_enable}]
set_output_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -min 0.374 [get_ports {jtagCtrl_enable}]
set_output_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -max 1.313 [get_ports {jtagCtrl_reset}]
set_output_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -min 0.436 [get_ports {jtagCtrl_reset}]
set_output_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -max 1.379 [get_ports {jtagCtrl_shift}]
set_output_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -min 0.399 [get_ports {jtagCtrl_shift}]
set_output_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -max 0.687 [get_ports {jtagCtrl_tdi}]
set_output_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -min 0.304 [get_ports {jtagCtrl_tdi}]
set_input_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -max 2.055 [get_ports {jtagCtrl_tdo}]
set_input_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -min 0.906 [get_ports {jtagCtrl_tdo}]
set_output_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -max 1.351 [get_ports {jtagCtrl_update}]
set_output_delay -clock jtagCtrl_tck -reference_pin [get_ports {jtagCtrl_tck~CLKOUT~44~1}] -min 0.425 [get_ports {jtagCtrl_update}]
# Clock Latency Constraints
############################
# set_clock_latency -source -setup <board_max + 1.177> [get_ports {io_sysFbClk}]
# set_clock_latency -source -hold <board_min + 0.785> [get_ports {io_sysFbClk}]
# set_clock_latency -source -setup <board_max + 1.177> [get_ports {io_systemClk}]
# set_clock_latency -source -hold <board_min + 0.785> [get_ports {io_systemClk}]
# set_clock_latency -source -setup <board_max + 1.177> [get_ports {io_memoryClk}]
# set_clock_latency -source -hold <board_min + 0.785> [get_ports {io_memoryClk}]
# set_clock_latency -source -setup <board_max + 0.828> [get_ports {io_memFbClk}]
# set_clock_latency -source -hold <board_min + 0.552> [get_ports {io_memFbClk}]
# set_clock_latency -source -setup <board_max + 0.828> [get_ports {io_peripheralClk}]
# set_clock_latency -source -hold <board_min + 0.552> [get_ports {io_peripheralClk}]
# set_clock_latency -source -setup <board_max + 0.828> [get_ports {io_ddrMasters_0_clk}]
# set_clock_latency -source -hold <board_min + 0.552> [get_ports {io_ddrMasters_0_clk}]
# set_clock_latency -source -setup <board_max + 0.828> [get_ports {io_cfuClk}]
# set_clock_latency -source -hold <board_min + 0.552> [get_ports {io_cfuClk}]

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,46 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2026.1.132
// IP Version: 1.23.0
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
localparam PERI_FREQ = 200;

View File

@@ -0,0 +1,148 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2026.1.132
// IP Version: 1.23.0
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED AS IS AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
EfxSapphireHpSoc_slb u_EfxSapphireHpSoc_slb
(
.io_peripheralClk ( io_peripheralClk ),
.io_peripheralReset ( io_peripheralReset ),
.io_asyncReset ( io_asyncReset ),
.io_gpio_sw_n ( io_gpio_sw_n ),
.pll_peripheral_locked ( pll_peripheral_locked ),
.pll_system_locked ( pll_system_locked ),
.jtagCtrl_capture ( jtagCtrl_capture ),
.jtagCtrl_enable ( jtagCtrl_enable ),
.jtagCtrl_reset ( jtagCtrl_reset ),
.jtagCtrl_shift ( jtagCtrl_shift ),
.jtagCtrl_tdi ( jtagCtrl_tdi ),
.jtagCtrl_tdo ( jtagCtrl_tdo ),
.jtagCtrl_update ( jtagCtrl_update ),
.ut_jtagCtrl_capture ( ut_jtagCtrl_capture ),
.ut_jtagCtrl_enable ( ut_jtagCtrl_enable ),
.ut_jtagCtrl_reset ( ut_jtagCtrl_reset ),
.ut_jtagCtrl_shift ( ut_jtagCtrl_shift ),
.ut_jtagCtrl_tdi ( ut_jtagCtrl_tdi ),
.ut_jtagCtrl_tdo ( ut_jtagCtrl_tdo ),
.ut_jtagCtrl_update ( ut_jtagCtrl_update ),
.system_spi_0_io_data_0_read ( system_spi_0_io_data_0_read ),
.system_spi_0_io_data_0_write ( system_spi_0_io_data_0_write ),
.system_spi_0_io_data_0_writeEnable ( system_spi_0_io_data_0_writeEnable ),
.system_spi_0_io_data_1_read ( system_spi_0_io_data_1_read ),
.system_spi_0_io_data_1_write ( system_spi_0_io_data_1_write ),
.system_spi_0_io_data_1_writeEnable ( system_spi_0_io_data_1_writeEnable ),
.system_spi_0_io_data_2_read ( system_spi_0_io_data_2_read ),
.system_spi_0_io_data_2_write ( system_spi_0_io_data_2_write ),
.system_spi_0_io_data_2_writeEnable ( system_spi_0_io_data_2_writeEnable ),
.system_spi_0_io_data_3_read ( system_spi_0_io_data_3_read ),
.system_spi_0_io_data_3_write ( system_spi_0_io_data_3_write ),
.system_spi_0_io_data_3_writeEnable ( system_spi_0_io_data_3_writeEnable ),
.system_spi_0_io_sclk_write ( system_spi_0_io_sclk_write ),
.system_spi_0_io_ss ( system_spi_0_io_ss ),
.system_uart_0_io_rxd ( system_uart_0_io_rxd ),
.system_uart_0_io_txd ( system_uart_0_io_txd ),
.system_i2c_0_io_scl_read ( system_i2c_0_io_scl_read ),
.system_i2c_0_io_scl_write ( system_i2c_0_io_scl_write ),
.system_i2c_0_io_sda_read ( system_i2c_0_io_sda_read ),
.system_gpio_0_io_read ( system_gpio_0_io_read ),
.system_gpio_0_io_write ( system_gpio_0_io_write ),
.system_gpio_0_io_writeEnable ( system_gpio_0_io_writeEnable ),
.cfg_done ( cfg_done ),
.cfg_start ( cfg_start ),
.cfg_sel ( cfg_sel ),
.cfg_reset ( cfg_reset ),
.axiAInterrupt ( axiAInterrupt ),
.axiA_awaddr ( axiA_awaddr ),
.axiA_awlen ( axiA_awlen ),
.axiA_awsize ( axiA_awsize ),
.axiA_awburst ( axiA_awburst ),
.axiA_awlock ( axiA_awlock ),
.axiA_awcache ( axiA_awcache ),
.axiA_awprot ( axiA_awprot ),
.axiA_awqos ( axiA_awqos ),
.axiA_awregion ( axiA_awregion ),
.axiA_awvalid ( axiA_awvalid ),
.axiA_awready ( axiA_awready ),
.axiA_wdata ( axiA_wdata ),
.axiA_wstrb ( axiA_wstrb ),
.axiA_wvalid ( axiA_wvalid ),
.axiA_wlast ( axiA_wlast ),
.axiA_wready ( axiA_wready ),
.axiA_bresp ( axiA_bresp ),
.axiA_bvalid ( axiA_bvalid ),
.axiA_bready ( axiA_bready ),
.axiA_araddr ( axiA_araddr ),
.axiA_arlen ( axiA_arlen ),
.axiA_arsize ( axiA_arsize ),
.axiA_arburst ( axiA_arburst ),
.axiA_arlock ( axiA_arlock ),
.axiA_arcache ( axiA_arcache ),
.axiA_arprot ( axiA_arprot ),
.axiA_arqos ( axiA_arqos ),
.axiA_arregion ( axiA_arregion ),
.axiA_arvalid ( axiA_arvalid ),
.axiA_arready ( axiA_arready ),
.axiA_rdata ( axiA_rdata ),
.axiA_rresp ( axiA_rresp ),
.axiA_rlast ( axiA_rlast ),
.axiA_rvalid ( axiA_rvalid ),
.axiA_rready ( axiA_rready ),
.userInterruptA ( userInterruptA ),
.userInterruptB ( userInterruptB ),
.userInterruptC ( userInterruptC ),
.userInterruptD ( userInterruptD ),
.userInterruptE ( userInterruptE ),
.userInterruptF ( userInterruptF ),
.io_apbSlave_0_PADDR ( io_apbSlave_0_PADDR ),
.io_apbSlave_0_PENABLE ( io_apbSlave_0_PENABLE ),
.io_apbSlave_0_PRDATA ( io_apbSlave_0_PRDATA ),
.io_apbSlave_0_PREADY ( io_apbSlave_0_PREADY ),
.io_apbSlave_0_PSEL ( io_apbSlave_0_PSEL ),
.io_apbSlave_0_PSLVERROR ( io_apbSlave_0_PSLVERROR ),
.io_apbSlave_0_PWDATA ( io_apbSlave_0_PWDATA ),
.io_apbSlave_0_PWRITE ( io_apbSlave_0_PWRITE ),
.system_i2c_0_io_sda_write ( system_i2c_0_io_sda_write ),
.system_i2c_0_io_sda_writeEnable ( system_i2c_0_io_sda_writeEnable ),
.system_i2c_0_io_scl_writeEnable ( system_i2c_0_io_scl_writeEnable ),
.system_watchdog_hardPanic_reset ( system_watchdog_hardPanic_reset )
);

View File

@@ -0,0 +1,251 @@
--------------------------------------------------------------------------------
-- Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
--
-- This document contains proprietary information which is
-- protected by copyright. All rights are reserved. This notice
-- refers to original work by Efinix, Inc. which may be derivitive
-- of other work distributed under license of the authors. In the
-- case of derivative work, nothing in this notice overrides the
-- original author's license agreement. Where applicable, the
-- original license agreement is included in it's original
-- unmodified form immediately below this header.
--
-- WARRANTY DISCLAIMER.
-- THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
-- EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
-- RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
-- INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
-- PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
-- WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
--
-- LIMITATION OF LIABILITY.
-- NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
-- INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
-- MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
-- OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
-- SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
-- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
-- GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
-- MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
-- THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
-- (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
-- BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
-- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-- CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
-- APPLY TO LICENSEE.
--
--------------------------------------------------------------------------------
------------- Begin Cut here for COMPONENT Declaration ------
component EfxSapphireHpSoc_slb is
port (
io_peripheralClk : in std_logic;
io_peripheralReset : in std_logic;
io_asyncReset : out std_logic;
io_gpio_sw_n : in std_logic;
pll_peripheral_locked : in std_logic;
pll_system_locked : in std_logic;
jtagCtrl_capture : out std_logic;
jtagCtrl_enable : out std_logic;
jtagCtrl_reset : out std_logic;
jtagCtrl_shift : out std_logic;
jtagCtrl_tdi : out std_logic;
jtagCtrl_tdo : in std_logic;
jtagCtrl_update : out std_logic;
ut_jtagCtrl_capture : in std_logic;
ut_jtagCtrl_enable : in std_logic;
ut_jtagCtrl_reset : in std_logic;
ut_jtagCtrl_shift : in std_logic;
ut_jtagCtrl_tdi : in std_logic;
ut_jtagCtrl_tdo : out std_logic;
ut_jtagCtrl_update : in std_logic;
system_spi_0_io_data_0_read : in std_logic;
system_spi_0_io_data_0_write : out std_logic;
system_spi_0_io_data_0_writeEnable : out std_logic;
system_spi_0_io_data_1_read : in std_logic;
system_spi_0_io_data_1_write : out std_logic;
system_spi_0_io_data_1_writeEnable : out std_logic;
system_spi_0_io_data_2_read : in std_logic;
system_spi_0_io_data_2_write : out std_logic;
system_spi_0_io_data_2_writeEnable : out std_logic;
system_spi_0_io_data_3_read : in std_logic;
system_spi_0_io_data_3_write : out std_logic;
system_spi_0_io_data_3_writeEnable : out std_logic;
system_spi_0_io_sclk_write : out std_logic;
system_spi_0_io_ss : out std_logic_vector(3 downto 0);
system_uart_0_io_rxd : in std_logic;
system_uart_0_io_txd : out std_logic;
system_i2c_0_io_scl_read : in std_logic;
system_i2c_0_io_scl_write : out std_logic;
system_i2c_0_io_sda_read : in std_logic;
system_gpio_0_io_read : in std_logic_vector(3 downto 0);
system_gpio_0_io_write : out std_logic_vector(3 downto 0);
system_gpio_0_io_writeEnable : out std_logic_vector(3 downto 0);
cfg_done : in std_logic;
cfg_start : out std_logic;
cfg_sel : out std_logic;
cfg_reset : out std_logic;
axiAInterrupt : out std_logic;
axiA_awaddr : in std_logic_vector(31 downto 0);
axiA_awlen : in std_logic_vector(7 downto 0);
axiA_awsize : in std_logic_vector(2 downto 0);
axiA_awburst : in std_logic_vector(1 downto 0);
axiA_awlock : in std_logic;
axiA_awcache : in std_logic_vector(3 downto 0);
axiA_awprot : in std_logic_vector(2 downto 0);
axiA_awqos : in std_logic_vector(3 downto 0);
axiA_awregion : in std_logic_vector(3 downto 0);
axiA_awvalid : in std_logic;
axiA_awready : out std_logic;
axiA_wdata : in std_logic_vector(31 downto 0);
axiA_wstrb : in std_logic_vector(3 downto 0);
axiA_wvalid : in std_logic;
axiA_wlast : in std_logic;
axiA_wready : out std_logic;
axiA_bresp : out std_logic_vector(1 downto 0);
axiA_bvalid : out std_logic;
axiA_bready : in std_logic;
axiA_araddr : in std_logic_vector(31 downto 0);
axiA_arlen : in std_logic_vector(7 downto 0);
axiA_arsize : in std_logic_vector(2 downto 0);
axiA_arburst : in std_logic_vector(1 downto 0);
axiA_arlock : in std_logic;
axiA_arcache : in std_logic_vector(3 downto 0);
axiA_arprot : in std_logic_vector(2 downto 0);
axiA_arqos : in std_logic_vector(3 downto 0);
axiA_arregion : in std_logic_vector(3 downto 0);
axiA_arvalid : in std_logic;
axiA_arready : out std_logic;
axiA_rdata : out std_logic_vector(31 downto 0);
axiA_rresp : out std_logic_vector(1 downto 0);
axiA_rlast : out std_logic;
axiA_rvalid : out std_logic;
axiA_rready : in std_logic;
userInterruptA : out std_logic;
userInterruptB : out std_logic;
userInterruptC : out std_logic;
userInterruptD : out std_logic;
userInterruptE : out std_logic;
userInterruptF : out std_logic;
io_apbSlave_0_PADDR : out std_logic_vector(31 downto 0);
io_apbSlave_0_PENABLE : out std_logic;
io_apbSlave_0_PRDATA : in std_logic_vector(31 downto 0);
io_apbSlave_0_PREADY : in std_logic;
io_apbSlave_0_PSEL : out std_logic;
io_apbSlave_0_PSLVERROR : in std_logic;
io_apbSlave_0_PWDATA : out std_logic_vector(31 downto 0);
io_apbSlave_0_PWRITE : out std_logic;
system_i2c_0_io_sda_write : out std_logic;
system_i2c_0_io_sda_writeEnable : out std_logic;
system_i2c_0_io_scl_writeEnable : out std_logic;
system_watchdog_hardPanic_reset : out std_logic
);
end component EfxSapphireHpSoc_slb;
---------------------- End COMPONENT Declaration ------------
------------- Begin Cut here for INSTANTIATION Template -----
u_EfxSapphireHpSoc_slb : EfxSapphireHpSoc_slb
port map (
io_peripheralClk => io_peripheralClk,
io_peripheralReset => io_peripheralReset,
io_asyncReset => io_asyncReset,
io_gpio_sw_n => io_gpio_sw_n,
pll_peripheral_locked => pll_peripheral_locked,
pll_system_locked => pll_system_locked,
jtagCtrl_capture => jtagCtrl_capture,
jtagCtrl_enable => jtagCtrl_enable,
jtagCtrl_reset => jtagCtrl_reset,
jtagCtrl_shift => jtagCtrl_shift,
jtagCtrl_tdi => jtagCtrl_tdi,
jtagCtrl_tdo => jtagCtrl_tdo,
jtagCtrl_update => jtagCtrl_update,
ut_jtagCtrl_capture => ut_jtagCtrl_capture,
ut_jtagCtrl_enable => ut_jtagCtrl_enable,
ut_jtagCtrl_reset => ut_jtagCtrl_reset,
ut_jtagCtrl_shift => ut_jtagCtrl_shift,
ut_jtagCtrl_tdi => ut_jtagCtrl_tdi,
ut_jtagCtrl_tdo => ut_jtagCtrl_tdo,
ut_jtagCtrl_update => ut_jtagCtrl_update,
system_spi_0_io_data_0_read => system_spi_0_io_data_0_read,
system_spi_0_io_data_0_write => system_spi_0_io_data_0_write,
system_spi_0_io_data_0_writeEnable => system_spi_0_io_data_0_writeEnable,
system_spi_0_io_data_1_read => system_spi_0_io_data_1_read,
system_spi_0_io_data_1_write => system_spi_0_io_data_1_write,
system_spi_0_io_data_1_writeEnable => system_spi_0_io_data_1_writeEnable,
system_spi_0_io_data_2_read => system_spi_0_io_data_2_read,
system_spi_0_io_data_2_write => system_spi_0_io_data_2_write,
system_spi_0_io_data_2_writeEnable => system_spi_0_io_data_2_writeEnable,
system_spi_0_io_data_3_read => system_spi_0_io_data_3_read,
system_spi_0_io_data_3_write => system_spi_0_io_data_3_write,
system_spi_0_io_data_3_writeEnable => system_spi_0_io_data_3_writeEnable,
system_spi_0_io_sclk_write => system_spi_0_io_sclk_write,
system_spi_0_io_ss => system_spi_0_io_ss,
system_uart_0_io_rxd => system_uart_0_io_rxd,
system_uart_0_io_txd => system_uart_0_io_txd,
system_i2c_0_io_scl_read => system_i2c_0_io_scl_read,
system_i2c_0_io_scl_write => system_i2c_0_io_scl_write,
system_i2c_0_io_sda_read => system_i2c_0_io_sda_read,
system_gpio_0_io_read => system_gpio_0_io_read,
system_gpio_0_io_write => system_gpio_0_io_write,
system_gpio_0_io_writeEnable => system_gpio_0_io_writeEnable,
cfg_done => cfg_done,
cfg_start => cfg_start,
cfg_sel => cfg_sel,
cfg_reset => cfg_reset,
axiAInterrupt => axiAInterrupt,
axiA_awaddr => axiA_awaddr,
axiA_awlen => axiA_awlen,
axiA_awsize => axiA_awsize,
axiA_awburst => axiA_awburst,
axiA_awlock => axiA_awlock,
axiA_awcache => axiA_awcache,
axiA_awprot => axiA_awprot,
axiA_awqos => axiA_awqos,
axiA_awregion => axiA_awregion,
axiA_awvalid => axiA_awvalid,
axiA_awready => axiA_awready,
axiA_wdata => axiA_wdata,
axiA_wstrb => axiA_wstrb,
axiA_wvalid => axiA_wvalid,
axiA_wlast => axiA_wlast,
axiA_wready => axiA_wready,
axiA_bresp => axiA_bresp,
axiA_bvalid => axiA_bvalid,
axiA_bready => axiA_bready,
axiA_araddr => axiA_araddr,
axiA_arlen => axiA_arlen,
axiA_arsize => axiA_arsize,
axiA_arburst => axiA_arburst,
axiA_arlock => axiA_arlock,
axiA_arcache => axiA_arcache,
axiA_arprot => axiA_arprot,
axiA_arqos => axiA_arqos,
axiA_arregion => axiA_arregion,
axiA_arvalid => axiA_arvalid,
axiA_arready => axiA_arready,
axiA_rdata => axiA_rdata,
axiA_rresp => axiA_rresp,
axiA_rlast => axiA_rlast,
axiA_rvalid => axiA_rvalid,
axiA_rready => axiA_rready,
userInterruptA => userInterruptA,
userInterruptB => userInterruptB,
userInterruptC => userInterruptC,
userInterruptD => userInterruptD,
userInterruptE => userInterruptE,
userInterruptF => userInterruptF,
io_apbSlave_0_PADDR => io_apbSlave_0_PADDR,
io_apbSlave_0_PENABLE => io_apbSlave_0_PENABLE,
io_apbSlave_0_PRDATA => io_apbSlave_0_PRDATA,
io_apbSlave_0_PREADY => io_apbSlave_0_PREADY,
io_apbSlave_0_PSEL => io_apbSlave_0_PSEL,
io_apbSlave_0_PSLVERROR => io_apbSlave_0_PSLVERROR,
io_apbSlave_0_PWDATA => io_apbSlave_0_PWDATA,
io_apbSlave_0_PWRITE => io_apbSlave_0_PWRITE,
system_i2c_0_io_sda_write => system_i2c_0_io_sda_write,
system_i2c_0_io_sda_writeEnable => system_i2c_0_io_sda_writeEnable,
system_i2c_0_io_scl_writeEnable => system_i2c_0_io_scl_writeEnable,
system_watchdog_hardPanic_reset => system_watchdog_hardPanic_reset
);
------------------------ End INSTANTIATION Template ---------

View File

@@ -0,0 +1,402 @@
module EfxSapphireHpSoc_wrapper (
output system_uart_0_io_txd,
input system_uart_0_io_rxd,
input io_cfuClk,
input io_cfuReset,
output userInterruptC,
input [3:0] system_gpio_0_io_read,
output [3:0] system_gpio_0_io_write,
output [3:0] system_gpio_0_io_writeEnable,
input cpu1_customInstruction_cmd_valid,
output cpu1_customInstruction_cmd_ready,
input [9:0] cpu1_customInstruction_function_id,
input [31:0] cpu1_customInstruction_inputs_0,
input [31:0] cpu1_customInstruction_inputs_1,
output cpu1_customInstruction_rsp_valid,
input cpu1_customInstruction_rsp_ready,
output [31:0] cpu1_customInstruction_outputs_0,
output system_watchdog_hardPanic_reset,
output jtagCtrl_tdi,
input jtagCtrl_tdo,
output jtagCtrl_enable,
output jtagCtrl_capture,
output jtagCtrl_shift,
output jtagCtrl_update,
output jtagCtrl_reset,
input ut_jtagCtrl_tdi,
output ut_jtagCtrl_tdo,
input ut_jtagCtrl_enable,
input ut_jtagCtrl_capture,
input ut_jtagCtrl_shift,
input ut_jtagCtrl_update,
input ut_jtagCtrl_reset,
output system_i2c_0_io_sda_writeEnable,
output system_i2c_0_io_sda_write,
input system_i2c_0_io_sda_read,
output system_i2c_0_io_scl_writeEnable,
output system_i2c_0_io_scl_write,
input system_i2c_0_io_scl_read,
output userInterruptD,
input cpu0_customInstruction_cmd_valid,
output cpu0_customInstruction_cmd_ready,
input [9:0] cpu0_customInstruction_function_id,
input [31:0] cpu0_customInstruction_inputs_0,
input [31:0] cpu0_customInstruction_inputs_1,
output cpu0_customInstruction_rsp_valid,
input cpu0_customInstruction_rsp_ready,
output [31:0] cpu0_customInstruction_outputs_0,
output system_spi_0_io_sclk_write,
output system_spi_0_io_data_0_writeEnable,
input system_spi_0_io_data_0_read,
output system_spi_0_io_data_0_write,
output system_spi_0_io_data_1_writeEnable,
input system_spi_0_io_data_1_read,
output system_spi_0_io_data_1_write,
output system_spi_0_io_data_2_writeEnable,
input system_spi_0_io_data_2_read,
output system_spi_0_io_data_2_write,
output system_spi_0_io_data_3_writeEnable,
input system_spi_0_io_data_3_read,
output system_spi_0_io_data_3_write,
output [3:0] system_spi_0_io_ss,
output userInterruptF,
output userInterruptG,
output userInterruptE,
output userInterruptI,
output userInterruptH,
input cpu2_customInstruction_cmd_valid,
output cpu2_customInstruction_cmd_ready,
input [9:0] cpu2_customInstruction_function_id,
input [31:0] cpu2_customInstruction_inputs_0,
input [31:0] cpu2_customInstruction_inputs_1,
output cpu2_customInstruction_rsp_valid,
input cpu2_customInstruction_rsp_ready,
output [31:0] cpu2_customInstruction_outputs_0,
input cpu3_customInstruction_cmd_valid,
output cpu3_customInstruction_cmd_ready,
input [9:0] cpu3_customInstruction_function_id,
input [31:0] cpu3_customInstruction_inputs_0,
input [31:0] cpu3_customInstruction_inputs_1,
output cpu3_customInstruction_rsp_valid,
input cpu3_customInstruction_rsp_ready,
output [31:0] cpu3_customInstruction_outputs_0,
output userInterruptB,
output userInterruptA,
output io_ddrMasters_0_aw_valid,
input io_ddrMasters_0_aw_ready,
output [31:0] io_ddrMasters_0_aw_payload_addr,
output [3:0] io_ddrMasters_0_aw_payload_id,
output [3:0] io_ddrMasters_0_aw_payload_region,
output [7:0] io_ddrMasters_0_aw_payload_len,
output [2:0] io_ddrMasters_0_aw_payload_size,
output [1:0] io_ddrMasters_0_aw_payload_burst,
output io_ddrMasters_0_aw_payload_lock,
output [3:0] io_ddrMasters_0_aw_payload_cache,
output [3:0] io_ddrMasters_0_aw_payload_qos,
output [2:0] io_ddrMasters_0_aw_payload_prot,
output io_ddrMasters_0_aw_payload_allStrb,
output io_ddrMasters_0_w_valid,
input io_ddrMasters_0_w_ready,
output [127:0] io_ddrMasters_0_w_payload_data,
output [15:0] io_ddrMasters_0_w_payload_strb,
output io_ddrMasters_0_w_payload_last,
input io_ddrMasters_0_b_valid,
output io_ddrMasters_0_b_ready,
input [3:0] io_ddrMasters_0_b_payload_id,
input [1:0] io_ddrMasters_0_b_payload_resp,
output io_ddrMasters_0_ar_valid,
input io_ddrMasters_0_ar_ready,
output [31:0] io_ddrMasters_0_ar_payload_addr,
output [3:0] io_ddrMasters_0_ar_payload_id,
output [3:0] io_ddrMasters_0_ar_payload_region,
output [7:0] io_ddrMasters_0_ar_payload_len,
output [2:0] io_ddrMasters_0_ar_payload_size,
output [1:0] io_ddrMasters_0_ar_payload_burst,
output io_ddrMasters_0_ar_payload_lock,
output [3:0] io_ddrMasters_0_ar_payload_cache,
output [3:0] io_ddrMasters_0_ar_payload_qos,
output [2:0] io_ddrMasters_0_ar_payload_prot,
input io_ddrMasters_0_r_valid,
output io_ddrMasters_0_r_ready,
input [127:0] io_ddrMasters_0_r_payload_data,
input [3:0] io_ddrMasters_0_r_payload_id,
input [1:0] io_ddrMasters_0_r_payload_resp,
input io_ddrMasters_0_r_payload_last,
input io_ddrMasters_0_clk,
input io_ddrMasters_0_reset,
input [31:0] axiA_awaddr,
input [7:0] axiA_awlen,
input [2:0] axiA_awsize,
input [1:0] axiA_awburst,
input axiA_awlock,
input [3:0] axiA_awcache,
input [2:0] axiA_awprot,
input [3:0] axiA_awqos,
input [3:0] axiA_awregion,
input axiA_awvalid,
output axiA_awready,
input [31:0] axiA_wdata,
input [3:0] axiA_wstrb,
input axiA_wvalid,
input axiA_wlast,
output axiA_wready,
output [1:0] axiA_bresp,
output axiA_bvalid,
input axiA_bready,
input [31:0] axiA_araddr,
input [7:0] axiA_arlen,
input [2:0] axiA_arsize,
input [1:0] axiA_arburst,
input axiA_arlock,
input [3:0] axiA_arcache,
input [2:0] axiA_arprot,
input [3:0] axiA_arqos,
input [3:0] axiA_arregion,
input axiA_arvalid,
output axiA_arready,
output [31:0] axiA_rdata,
output [1:0] axiA_rresp,
output axiA_rlast,
output axiA_rvalid,
input axiA_rready,
output axiAInterrupt,
input cfg_done,
output cfg_start,
output cfg_sel,
output cfg_reset,
input io_peripheralClk,
input io_peripheralReset,
output io_asyncReset,
input io_gpio_sw_n,
input pll_peripheral_locked,
input pll_system_locked
);
wire [15:0] io_apbSlave_0_PADDR;
wire io_apbSlave_0_PSEL;
wire io_apbSlave_0_PENABLE;
wire io_apbSlave_0_PREADY;
wire io_apbSlave_0_PWRITE;
wire [31:0] io_apbSlave_0_PWDATA;
wire [31:0] io_apbSlave_0_PRDATA;
wire io_apbSlave_0_PSLVERROR;
assign userInterruptG = 1'b0; //USER TO MODIFY
assign userInterruptH = 1'b0; //USER TO MODIFY
assign userInterruptI = 1'b0; //USER TO MODIFY
/**/
/* INFO: USER TO MODIFY CODES BELOW */
/* INFO: REFER EXAMPLE DESIGN FOR IMPLEMENTATION DETAILS */
/**/
assign io_apbSlave_0_PREADY = 1'b1;
assign io_apbSlave_0_PRDATA = 32'd0;
//io_apbSlave_0_PADDR;
//io_apbSlave_0_PSEL;
//io_apbSlave_0_PENABLE;
//io_apbSlave_0_PWRITE;
//io_apbSlave_0_PWDATA;
//io_apbSlave_0_PSLVERROR;
/**/
/* INFO: USER TO MODIFY CODES BELOW */
/* INFO: REFER EXAMPLE DESIGN FOR IMPLEMENTATION DETAILS */
/**/
assign cpu1_customInstruction_cmd_ready = 1'b1;
assign cpu1_customInstruction_rsp_valid = 1'b0;
assign cpu1_customInstruction_outputs_0 = 32'd0;
//io_cfuClk
//io_cfyReset
//cpu1_customInstruction_rsp_ready
//cpu1_customInstruction_cmd_valid
//cpu1_customInstruction_function_id
//cpu1_customInstruction_inputs_0
//cpu1_customInstruction_inputs_1
/**/
/* INFO: USER TO MODIFY CODES BELOW */
/* INFO: REFER EXAMPLE DESIGN FOR IMPLEMENTATION DETAILS */
/**/
assign cpu3_customInstruction_cmd_ready = 1'b1;
assign cpu3_customInstruction_rsp_valid = 1'b0;
assign cpu3_customInstruction_outputs_0 = 32'd0;
//io_cfuClk
//io_cfyReset
//cpu3_customInstruction_rsp_ready
//cpu3_customInstruction_cmd_valid
//cpu3_customInstruction_function_id
//cpu3_customInstruction_inputs_0
//cpu3_customInstruction_inputs_1
/**/
/* INFO: USER TO MODIFY CODES BELOW */
/* INFO: REFER EXAMPLE DESIGN FOR IMPLEMENTATION DETAILS */
/**/
assign io_ddrMasters_0_aw_payload_addr = 32'd0;
assign io_ddrMasters_0_aw_payload_id = 4'd0;
assign io_ddrMasters_0_aw_payload_region = 4'd0;
assign io_ddrMasters_0_aw_payload_len = 8'd0;
assign io_ddrMasters_0_aw_payload_size = 3'd0;
assign io_ddrMasters_0_aw_payload_burst = 2'd0;
assign io_ddrMasters_0_aw_payload_lock = 1'b0;
assign io_ddrMasters_0_aw_payload_cache = 4'd0;
assign io_ddrMasters_0_aw_payload_qos = 4'd0;
assign io_ddrMasters_0_aw_payload_prot = 3'd0;
assign io_ddrMasters_0_aw_payload_allStrb = 1'b0;
assign io_ddrMasters_0_w_valid = 1'b0;
//io_ddrMasters_0_w_ready
assign io_ddrMasters_0_w_payload_data = 128'd0;
assign io_ddrMasters_0_w_payload_strb = 16'd0;
assign io_ddrMasters_0_w_payload_last = 1'b0;
//io_ddrMasters_0_b_valid
assign io_ddrMasters_0_b_ready = 1'b1;
//io_ddrMasters_0_b_payload_id
//io_ddrMasters_0_b_payload_resp
assign io_ddrMasters_0_ar_valid = 1'b0;
//io_ddrMasters_0_ar_ready
assign io_ddrMasters_0_ar_payload_addr = 32'd0;
assign io_ddrMasters_0_ar_payload_id = 4'd0;
assign io_ddrMasters_0_ar_payload_region = 4'd0;
assign io_ddrMasters_0_ar_payload_len = 8'd0;
assign io_ddrMasters_0_ar_payload_size = 3'd0;
assign io_ddrMasters_0_ar_payload_burst = 2'd0;
assign io_ddrMasters_0_ar_payload_lock = 1'b0;
assign io_ddrMasters_0_ar_payload_cache = 4'd0;
assign io_ddrMasters_0_ar_payload_qos = 4'd0;
assign io_ddrMasters_0_ar_payload_pro = 3'd0;
//io_ddrMasters_0_r_valid
assign io_ddrMasters_0_r_ready = 1'b1;
//io_ddrMasters_0_r_payload_data
//io_ddrMasters_0_r_payload_id
//io_ddrMasters_0_r_payload_resp
//io_ddrMasters_0_r_payload_last
/**/
/* INFO: USER TO MODIFY CODES BELOW */
/* INFO: REFER EXAMPLE DESIGN FOR IMPLEMENTATION DETAILS */
/**/
assign cpu0_customInstruction_cmd_ready = 1'b1;
assign cpu0_customInstruction_rsp_valid = 1'b0;
assign cpu0_customInstruction_outputs_0 = 32'd0;
//io_cfuClk
//io_cfyReset
//cpu0_customInstruction_rsp_ready
//cpu0_customInstruction_cmd_valid
//cpu0_customInstruction_function_id
//cpu0_customInstruction_inputs_0
//cpu0_customInstruction_inputs_1
/**/
/* INFO: USER TO MODIFY CODES BELOW */
/* INFO: REFER EXAMPLE DESIGN FOR IMPLEMENTATION DETAILS */
/**/
assign cpu2_customInstruction_cmd_ready = 1'b1;
assign cpu2_customInstruction_rsp_valid = 1'b0;
assign cpu2_customInstruction_outputs_0 = 32'd0;
//io_cfuClk
//io_cfyReset
//cpu2_customInstruction_rsp_ready
//cpu2_customInstruction_cmd_valid
//cpu2_customInstruction_function_id
//cpu2_customInstruction_inputs_0
//cpu2_customInstruction_inputs_1
//axi4 bridge to various I/O
EfxSapphireHpSoc_slb u_top_peripherals(
.userInterruptA(userInterruptA),
.jtagCtrl_tdi(jtagCtrl_tdi),
.jtagCtrl_tdo(jtagCtrl_tdo),
.jtagCtrl_enable(jtagCtrl_enable),
.jtagCtrl_capture(jtagCtrl_capture),
.jtagCtrl_shift(jtagCtrl_shift),
.jtagCtrl_update(jtagCtrl_update),
.jtagCtrl_reset(jtagCtrl_reset),
.ut_jtagCtrl_tdi(ut_jtagCtrl_tdi),
.ut_jtagCtrl_tdo(ut_jtagCtrl_tdo),
.ut_jtagCtrl_enable(ut_jtagCtrl_enable),
.ut_jtagCtrl_capture(ut_jtagCtrl_capture),
.ut_jtagCtrl_shift(ut_jtagCtrl_shift),
.ut_jtagCtrl_update(ut_jtagCtrl_update),
.ut_jtagCtrl_reset(ut_jtagCtrl_reset),
.userInterruptE(userInterruptE),
.userInterruptF(userInterruptF),
.userInterruptB(userInterruptB),
.io_apbSlave_0_PADDR(io_apbSlave_0_PADDR),
.io_apbSlave_0_PSEL(io_apbSlave_0_PSEL),
.io_apbSlave_0_PENABLE(io_apbSlave_0_PENABLE),
.io_apbSlave_0_PREADY(io_apbSlave_0_PREADY),
.io_apbSlave_0_PWRITE(io_apbSlave_0_PWRITE),
.io_apbSlave_0_PWDATA(io_apbSlave_0_PWDATA),
.io_apbSlave_0_PRDATA(io_apbSlave_0_PRDATA),
.io_apbSlave_0_PSLVERROR(io_apbSlave_0_PSLVERROR),
.system_watchdog_hardPanic_reset(system_watchdog_hardPanic_reset),
.system_spi_0_io_sclk_write(system_spi_0_io_sclk_write),
.system_spi_0_io_data_0_writeEnable(system_spi_0_io_data_0_writeEnable),
.system_spi_0_io_data_0_read(system_spi_0_io_data_0_read),
.system_spi_0_io_data_0_write(system_spi_0_io_data_0_write),
.system_spi_0_io_data_1_writeEnable(system_spi_0_io_data_1_writeEnable),
.system_spi_0_io_data_1_read(system_spi_0_io_data_1_read),
.system_spi_0_io_data_1_write(system_spi_0_io_data_1_write),
.system_spi_0_io_data_2_writeEnable(system_spi_0_io_data_2_writeEnable),
.system_spi_0_io_data_2_read(system_spi_0_io_data_2_read),
.system_spi_0_io_data_2_write(system_spi_0_io_data_2_write),
.system_spi_0_io_data_3_writeEnable(system_spi_0_io_data_3_writeEnable),
.system_spi_0_io_data_3_read(system_spi_0_io_data_3_read),
.system_spi_0_io_data_3_write(system_spi_0_io_data_3_write),
.system_spi_0_io_ss(system_spi_0_io_ss),
.system_uart_0_io_txd(system_uart_0_io_txd),
.system_uart_0_io_rxd(system_uart_0_io_rxd),
.userInterruptC(userInterruptC),
.system_gpio_0_io_read(system_gpio_0_io_read),
.system_gpio_0_io_write(system_gpio_0_io_write),
.system_gpio_0_io_writeEnable(system_gpio_0_io_writeEnable),
.userInterruptD(userInterruptD),
.system_i2c_0_io_sda_writeEnable(system_i2c_0_io_sda_writeEnable),
.system_i2c_0_io_sda_write(system_i2c_0_io_sda_write),
.system_i2c_0_io_sda_read(system_i2c_0_io_sda_read),
.system_i2c_0_io_scl_writeEnable(system_i2c_0_io_scl_writeEnable),
.system_i2c_0_io_scl_write(system_i2c_0_io_scl_write),
.system_i2c_0_io_scl_read(system_i2c_0_io_scl_read),
.axiA_awvalid(axiA_awvalid),
.axiA_awready(axiA_awready),
.axiA_awaddr(axiA_awaddr),
.axiA_awlen(axiA_awlen),
.axiA_awsize(axiA_awsize),
.axiA_awcache(axiA_awcache),
.axiA_awprot(axiA_awprot),
.axiA_wvalid(axiA_wvalid),
.axiA_wready(axiA_wready),
.axiA_wdata(axiA_wdata),
.axiA_wstrb(axiA_wstrb),
.axiA_wlast(axiA_wlast),
.axiA_bvalid(axiA_bvalid),
.axiA_bready(axiA_bready),
.axiA_bresp(axiA_bresp),
.axiA_arvalid(axiA_arvalid),
.axiA_arready(axiA_arready),
.axiA_araddr(axiA_araddr),
.axiA_arlen(axiA_arlen),
.axiA_arsize(axiA_arsize),
.axiA_arcache(axiA_arcache),
.axiA_arprot(axiA_arprot),
.axiA_rvalid(axiA_rvalid),
.axiA_rready(axiA_rready),
.axiA_rdata(axiA_rdata),
.axiA_rresp(axiA_rresp),
.axiA_rlast(axiA_rlast),
.axiAInterrupt(axiAInterrupt),
.cfg_done(cfg_done),
.cfg_start(cfg_start),
.cfg_sel(cfg_sel),
.cfg_reset(cfg_reset),
.io_peripheralClk(io_peripheralClk),
.io_peripheralReset(io_peripheralReset),
.io_asyncReset(io_asyncReset),
.io_gpio_sw_n(io_gpio_sw_n),
.pll_peripheral_locked(pll_peripheral_locked),
.pll_system_locked(pll_system_locked)
);
endmodule

View File

@@ -0,0 +1,224 @@
[parameters]
pll_soc_sys_clk_name = soc_pll_sys_clk
hidden_min_freq = 0
pll_soc_sys_clk_ref_freq_hidden = 100
pll_soc_sys_clk_ref_freq = 100
pll_soc_sys_clkout1_freq = 1000
pll_soc_sys_clkout1_phase = 0
pll_soc_sys_clkout2_freq = 250
pll_soc_sys_clkout2_phase = 0
pll_soc_mem_clk_name = soc_pll_peri_clk
pll_soc_mem_clk_ref_freq = 25
pll_soc_mem_clkout1_freq = 250
pll_soc_mem_clkout1_phase = 0
pll_soc_mem_clkout2_freq = 250
pll_soc_mem_clkout2_phase = 0
pll_lpddr4_name = soc_ddr_pll
pll_lpddr4_ref_freq = 25
pll_lpddr4_clkout0_freq = 100
pll_lpddr4_clkout0_phase = 0
pll_lpddr4_clkout3_freq = 533
pll_lpddr4_clkout3_phase = 0
ddr_data_width = 32
ddr_memory_density = 8G
ddr_memory_type = LPDDR4x
ddr_physical_rank = 1
ddr_pin_name = soc_ddr_inst1
gpio_bus_name = system_gpio_0
hard_jtag_inst_name = soc_jtag_inst1
uart0_gpio_inst_name = system_uart_0
spi0_gpio_inst_name = system_spi_0
i2c0_gpio_inst_name = system_i2c_0
jtag_gpio_inst_name = io_jtag
soc_pin_name = qcrv32_inst1
intf_axim = 1
intf_ci_0 = 1
intf_ci_1 = 1
intf_ci_2 = 1
intf_ci_3 = 1
co_debug = 0
intf_jtag_type = 0
intf_uintr = 9
peri_spi_0 = 1
peri_spi_1 = 0
peri_spi_2 = 0
peri_i2c_0 = 1
peri_i2c_1 = 0
peri_i2c_2 = 0
peri_gpio_0 = 1
peri_gpio_1 = 0
peri_wdt_0 = 1
peri_apb_0 = 1
peri_apb_1 = 0
peri_apb_2 = 0
peri_apb_3 = 0
peri_apb_4 = 0
peri_gen = 1
peri_uart_0 = 1
peri_uart_1 = 0
peri_uart_2 = 0
peri_gpio_0_width = 4
peri_gpio_1_width = 4
peri_apb_0_size = 65536
peri_apb_1_size = 4096
peri_apb_2_size = 4096
peri_apb_3_size = 4096
peri_apb_4_size = 4096
peri_freq = 200
app_overwrite = 0
app_overwrite_path =
peri_count = 6
peri_tcount = 6
intf_jtag_tap_sel = 8
intf_axis = 1
peri_pin_assign = 1
pll_soc_mem_resource = PLL_TR0
sys_freq = 1000
sys_freq_hidden = 1000
pll_soc_sys_clkout3_freq = 250
pll_soc_sys_clkout3_phase = 0
pll_soc_mem_clkout3_freq = 250
pll_soc_mem_clkout3_phase = 0
pll_soc_mem_clkout4_freq = 200
pll_soc_mem_clkout4_phase = 0
pll_soc_sys_resource = PLL_BL0
pll_lpddr4_resource = PLL_BL2
pll_res_assign = 0
pll_soc_sys_clkout0_freq = 100
pll_soc_sys_clkout0_phase = 0
pll_soc_mem_clkout0_freq = 100
pll_soc_mem_clkout0_phase = 0
pll_lpddr4_clkout1_freq = 33
pll_lpddr4_clkout1_phase = 0
mem_freq = 250
axim_freq = 250
cfu_freq = 125
ddr_freq = 800
pll_res_assign_2 = 0
ddr_res_assign = 0
peri_res_assign = 0
pll_soc_sys_ext_clk_src = 1
pll_soc_mem_ext_clk_src = 0
peri_sdhc = 0
peri_tsemac = 0
sw_ftdi_ch_num = 6011
sw_app_size = 2044
sw_app_size_custom = 0
sw_stack_size = 8
sw_stack_size_custom = 0
sw_board = Ti375C529 Development Kit
sw_board_custom =
sw_ftdi_target_ch = 1
sw_ftdi_ch_num_soft = 6011
sw_ftdi_target_ch_soft = 0
sw_frtos_app_size = 16380
sw_frtos_app_size_custom = 0
sw_frtos_stack_size = 4
sw_frtos_stack_size_custom = 0
package_type = 529
family_type = TITANIUM
axi_pipeline = 0
axi_write_buffer = 0
[ports]
io_peripheralclk = io_peripheralClk
io_peripheralreset = io_peripheralReset
io_asyncreset = io_asyncReset
io_gpio_sw_n = io_gpio_sw_n
pll_peripheral_locked = pll_peripheral_locked
pll_system_locked = pll_system_locked
jtagctrl_capture = jtagCtrl_capture
jtagctrl_enable = jtagCtrl_enable
jtagctrl_reset = jtagCtrl_reset
jtagctrl_shift = jtagCtrl_shift
jtagctrl_tdi = jtagCtrl_tdi
jtagctrl_tdo = jtagCtrl_tdo
jtagctrl_update = jtagCtrl_update
ut_jtagctrl_capture = ut_jtagCtrl_capture
ut_jtagctrl_enable = ut_jtagCtrl_enable
ut_jtagctrl_reset = ut_jtagCtrl_reset
ut_jtagctrl_shift = ut_jtagCtrl_shift
ut_jtagctrl_tdi = ut_jtagCtrl_tdi
ut_jtagctrl_tdo = ut_jtagCtrl_tdo
ut_jtagctrl_update = ut_jtagCtrl_update
system_spi_0_io_data_0_read = system_spi_0_io_data_0_read
system_spi_0_io_data_0_write = system_spi_0_io_data_0_write
system_spi_0_io_data_0_writeenable = system_spi_0_io_data_0_writeEnable
system_spi_0_io_data_1_read = system_spi_0_io_data_1_read
system_spi_0_io_data_1_write = system_spi_0_io_data_1_write
system_spi_0_io_data_1_writeenable = system_spi_0_io_data_1_writeEnable
system_spi_0_io_data_2_read = system_spi_0_io_data_2_read
system_spi_0_io_data_2_write = system_spi_0_io_data_2_write
system_spi_0_io_data_2_writeenable = system_spi_0_io_data_2_writeEnable
system_spi_0_io_data_3_read = system_spi_0_io_data_3_read
system_spi_0_io_data_3_write = system_spi_0_io_data_3_write
system_spi_0_io_data_3_writeenable = system_spi_0_io_data_3_writeEnable
system_spi_0_io_sclk_write = system_spi_0_io_sclk_write
system_spi_0_io_ss = system_spi_0_io_ss
system_uart_0_io_rxd = system_uart_0_io_rxd
system_uart_0_io_txd = system_uart_0_io_txd
system_i2c_0_io_scl_read = system_i2c_0_io_scl_read
system_i2c_0_io_scl_write = system_i2c_0_io_scl_write
system_i2c_0_io_sda_read = system_i2c_0_io_sda_read
system_gpio_0_io_read = system_gpio_0_io_read
system_gpio_0_io_write = system_gpio_0_io_write
system_gpio_0_io_writeenable = system_gpio_0_io_writeEnable
cfg_done = cfg_done
cfg_start = cfg_start
cfg_sel = cfg_sel
cfg_reset = cfg_reset
axiainterrupt = axiAInterrupt
axia_awaddr = axiA_awaddr
axia_awlen = axiA_awlen
axia_awsize = axiA_awsize
axia_awburst = axiA_awburst
axia_awlock = axiA_awlock
axia_awcache = axiA_awcache
axia_awprot = axiA_awprot
axia_awqos = axiA_awqos
axia_awregion = axiA_awregion
axia_awvalid = axiA_awvalid
axia_awready = axiA_awready
axia_wdata = axiA_wdata
axia_wstrb = axiA_wstrb
axia_wvalid = axiA_wvalid
axia_wlast = axiA_wlast
axia_wready = axiA_wready
axia_bresp = axiA_bresp
axia_bvalid = axiA_bvalid
axia_bready = axiA_bready
axia_araddr = axiA_araddr
axia_arlen = axiA_arlen
axia_arsize = axiA_arsize
axia_arburst = axiA_arburst
axia_arlock = axiA_arlock
axia_arcache = axiA_arcache
axia_arprot = axiA_arprot
axia_arqos = axiA_arqos
axia_arregion = axiA_arregion
axia_arvalid = axiA_arvalid
axia_arready = axiA_arready
axia_rdata = axiA_rdata
axia_rresp = axiA_rresp
axia_rlast = axiA_rlast
axia_rvalid = axiA_rvalid
axia_rready = axiA_rready
userinterrupta = userInterruptA
userinterruptb = userInterruptB
userinterruptc = userInterruptC
userinterruptd = userInterruptD
userinterrupte = userInterruptE
userinterruptf = userInterruptF
io_apbslave_0_paddr = io_apbSlave_0_PADDR
io_apbslave_0_penable = io_apbSlave_0_PENABLE
io_apbslave_0_prdata = io_apbSlave_0_PRDATA
io_apbslave_0_pready = io_apbSlave_0_PREADY
io_apbslave_0_psel = io_apbSlave_0_PSEL
io_apbslave_0_pslverror = io_apbSlave_0_PSLVERROR
io_apbslave_0_pwdata = io_apbSlave_0_PWDATA
io_apbslave_0_pwrite = io_apbSlave_0_PWRITE
system_i2c_0_io_sda_write = system_i2c_0_io_sda_write
system_i2c_0_io_sda_writeenable = system_i2c_0_io_sda_writeEnable
system_i2c_0_io_scl_writeenable = system_i2c_0_io_scl_writeEnable
system_watchdog_hardpanic_reset = system_watchdog_hardPanic_reset

View File

@@ -0,0 +1,20 @@
{
"PLL": {},
"GPIO": {
"UART": [],
"SPI": [],
"I2C": [],
"JTAG": [],
"GPIO": []
},
"SOC": {
"SOC_PIN_NAME": {
"SOC_PIN_NAME": "qcrv32_inst1"
}
},
"JTAG": {
"HARD_JTAG_INST_NAME": {
"HARD_JTAG_INST_NAME": "soc_jtag_inst1"
}
}
}

View File

@@ -0,0 +1,134 @@
{
"args": [
"-o",
"EfxSapphireHpSoc_slb",
"--base_path",
"ip",
"--vlnv",
{
"vendor": "efinixinc.com",
"library": "soc",
"name": "efx_hard_soc",
"version": "1.23.0"
}
],
"conf": {
"PLL_SOC_SYS_CLK_NAME": "\"soc_pll_sys_clk\"",
"PLL_SOC_SYS_CLK_REF_FREQ_HIDDEN": "\"100\"",
"PLL_SOC_SYS_CLK_REF_FREQ": "\"100\"",
"PLL_SOC_SYS_CLKOUT1_PHASE": "\"0\"",
"PLL_SOC_SYS_CLKOUT2_PHASE": "\"0\"",
"PLL_SOC_MEM_CLK_NAME": "\"soc_pll_peri_clk\"",
"PLL_SOC_MEM_CLK_REF_FREQ": "\"25\"",
"PLL_SOC_MEM_CLKOUT1_FREQ": "\"250\"",
"PLL_SOC_MEM_CLKOUT1_PHASE": "\"0\"",
"PLL_SOC_MEM_CLKOUT2_FREQ": "\"250\"",
"PLL_SOC_MEM_CLKOUT2_PHASE": "\"0\"",
"PLL_LPDDR4_NAME": "\"soc_ddr_pll\"",
"PLL_LPDDR4_REF_FREQ": "\"25\"",
"PLL_LPDDR4_CLKOUT0_FREQ": "\"100\"",
"PLL_LPDDR4_CLKOUT0_PHASE": "\"0\"",
"PLL_LPDDR4_CLKOUT3_FREQ": "\"533\"",
"PLL_LPDDR4_CLKOUT3_PHASE": "\"0\"",
"DDR_DATA_WIDTH": "32",
"DDR_MEMORY_DENSITY": "\"8G\"",
"DDR_MEMORY_TYPE": "\"LPDDR4x\"",
"DDR_PHYSICAL_RANK": "1",
"DDR_PIN_NAME": "\"soc_ddr_inst1\"",
"INTF_AXIM": "1'b1",
"INTF_CI_0": "1'b1",
"INTF_CI_1": "1'b1",
"INTF_CI_2": "1'b1",
"INTF_CI_3": "1'b1",
"CO_DEBUG": "1'b0",
"INTF_JTAG_TYPE": "0",
"INTF_UINTR": "9",
"PERI_SPI_0": "1'b1",
"PERI_SPI_1": "1'b0",
"PERI_SPI_2": "1'b0",
"PERI_I2C_0": "1'b1",
"PERI_I2C_1": "1'b0",
"PERI_I2C_2": "1'b0",
"PERI_GPIO_0": "1'b1",
"PERI_GPIO_1": "1'b0",
"PERI_WDT_0": "1'b1",
"PERI_APB_0": "1'b1",
"PERI_APB_1": "1'b0",
"PERI_APB_2": "1'b0",
"PERI_APB_3": "1'b0",
"PERI_APB_4": "1'b0",
"PERI_GEN": "1'b1",
"PERI_UART_0": "1'b1",
"PERI_UART_1": "1'b0",
"PERI_UART_2": "1'b0",
"PERI_GPIO_0_WIDTH": "4",
"PERI_GPIO_1_WIDTH": "4",
"PERI_APB_0_SIZE": "65536",
"PERI_APB_1_SIZE": "4096",
"PERI_APB_2_SIZE": "4096",
"PERI_APB_3_SIZE": "4096",
"PERI_APB_4_SIZE": "4096",
"PERI_FREQ": "200",
"APP_OVERWRITE": "1'b0",
"APP_OVERWRITE_PATH": "\"''\"",
"INTF_JTAG_TAP_SEL": "8",
"INTF_AXIS": "1'b1",
"PERI_PIN_ASSIGN": "1'b1",
"PLL_SOC_MEM_RESOURCE": "\"PLL_TR0\"",
"SYS_FREQ": "1000",
"SYS_FREQ_HIDDEN": "1000",
"PLL_SOC_SYS_CLKOUT3_FREQ": "\"250\"",
"PLL_SOC_SYS_CLKOUT3_PHASE": "\"0\"",
"PLL_SOC_MEM_CLKOUT3_FREQ": "\"250\"",
"PLL_SOC_MEM_CLKOUT3_PHASE": "\"0\"",
"PLL_SOC_MEM_CLKOUT4_PHASE": "\"0\"",
"PLL_SOC_SYS_RESOURCE": "\"PLL_BL0\"",
"PLL_LPDDR4_RESOURCE": "\"PLL_BL2\"",
"PLL_RES_ASSIGN": "1'b0",
"PLL_SOC_SYS_CLKOUT0_FREQ": "\"100\"",
"PLL_SOC_SYS_CLKOUT0_PHASE": "\"0\"",
"PLL_SOC_MEM_CLKOUT0_FREQ": "\"100\"",
"PLL_SOC_MEM_CLKOUT0_PHASE": "\"0\"",
"PLL_LPDDR4_CLKOUT1_FREQ": "\"33\"",
"PLL_LPDDR4_CLKOUT1_PHASE": "\"0\"",
"MEM_FREQ": "250",
"AXIM_FREQ": "250",
"CFU_FREQ": "125",
"DDR_FREQ": "800",
"PLL_RES_ASSIGN_2": "1'b0",
"DDR_RES_ASSIGN": "1'b0",
"PERI_RES_ASSIGN": "1'b0",
"PLL_SOC_SYS_EXT_CLK_SRC": "1",
"PLL_SOC_MEM_EXT_CLK_SRC": "0",
"PERI_SDHC": "1'b0",
"PERI_TSEMAC": "1'b0",
"SW_FTDI_CH_NUM": "6011",
"SW_APP_SIZE": "2044",
"SW_APP_SIZE_CUSTOM": "0",
"SW_STACK_SIZE": "8",
"SW_STACK_SIZE_CUSTOM": "0",
"SW_BOARD": "\"Ti375C529 Development Kit\"",
"SW_BOARD_CUSTOM": "\"\"",
"SW_FTDI_TARGET_CH": "1",
"SW_FTDI_CH_NUM_SOFT": "6011",
"SW_FTDI_TARGET_CH_SOFT": "0",
"SW_FRTOS_APP_SIZE": "16380",
"SW_FRTOS_APP_SIZE_CUSTOM": "0",
"SW_FRTOS_STACK_SIZE": "4",
"SW_FRTOS_STACK_SIZE_CUSTOM": "0",
"PACKAGE_TYPE": "\"529\"",
"FAMILY_TYPE": "\"TITANIUM\"",
"AXI_PIPELINE": "1'b0",
"AXI_WRITE_BUFFER": "1'b0"
},
"output": {
"external_script_Peripheral_Generator": [],
"external_source_source": [],
"external_script_PT_Configuration": [],
"external_script_Peripheral_Post_Script": [],
"external_script_Embedded_SW": []
},
"ooc_synthesis": {},
"sw_version": "2026.1.132",
"external_path_option": "RELATIVE_PATH"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
--apbSlave name=io_apbSlave_0,address=0x100000,size=65536
--uart name=system_uart_0_io,address=0x10000,interruptId=0
--peripheralFrequency 200000000
--PeripheralClock true
--i2c name=system_i2c_0_io,address=0x20000,interruptId=6
--watchdog name=system_watchdog,address=0x50000,interruptId=13,prescalerWidth=24,counters=2,countersWidth=16
--spi name=system_spi_0_io,address=0x30000,interruptId=3,width=8,ssCount=4
--gpio name=system_gpio_0_io,address=0x40000,width=4,interrupts="0->9;1->10"

View File

@@ -0,0 +1,2 @@
localparam M_BASE_ADDR = {32'h41000000,32'h40000000,32'h30000000,32'h20000000,32'h11100000,32'h11000000,32'h10000000,32'h0};
localparam M_ADDR_WIDTH = {32'd20,32'd24,32'd28,32'd28,32'd20,32'd12,32'd24,32'd32};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,53 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2026.1.132
// IP Version: 5.6
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
localparam ARB_MODE = "ROUND_ROBIN_1";
localparam S_PORTS = 2;
localparam DATA_WIDTH = 128;
localparam ADDR_WIDTH = 32;
localparam M_PORTS = 1;
localparam ID_WIDTH = 8;
localparam USER_WIDTH = 3;
localparam PROTOCOL = "AXI4";

View File

@@ -0,0 +1,137 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2026.1.132
// IP Version: 5.6
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED AS IS AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
gAXIM_2to1_switch u_gAXIM_2to1_switch
(
.rst_n ( rst_n ),
.clk ( clk ),
.s_axi_awvalid ( s_axi_awvalid ),
.s_axi_awaddr ( s_axi_awaddr ),
.s_axi_awlock ( s_axi_awlock ),
.s_axi_awready ( s_axi_awready ),
.s_axi_arvalid ( s_axi_arvalid ),
.s_axi_araddr ( s_axi_araddr ),
.s_axi_arlock ( s_axi_arlock ),
.s_axi_arready ( s_axi_arready ),
.s_axi_wvalid ( s_axi_wvalid ),
.s_axi_wlast ( s_axi_wlast ),
.s_axi_wid ( s_axi_wid ),
.s_axi_bready ( s_axi_bready ),
.s_axi_bresp ( s_axi_bresp ),
.s_axi_rready ( s_axi_rready ),
.s_axi_bid ( s_axi_bid ),
.s_axi_rid ( s_axi_rid ),
.s_axi_wdata ( s_axi_wdata ),
.s_axi_rdata ( s_axi_rdata ),
.s_axi_rresp ( s_axi_rresp ),
.s_axi_bvalid ( s_axi_bvalid ),
.s_axi_rvalid ( s_axi_rvalid ),
.s_axi_rlast ( s_axi_rlast ),
.s_axi_wstrb ( s_axi_wstrb ),
.m_axi_awvalid ( m_axi_awvalid ),
.m_axi_awaddr ( m_axi_awaddr ),
.m_axi_awlock ( m_axi_awlock ),
.m_axi_awready ( m_axi_awready ),
.m_axi_arvalid ( m_axi_arvalid ),
.m_axi_araddr ( m_axi_araddr ),
.m_axi_arlock ( m_axi_arlock ),
.m_axi_arready ( m_axi_arready ),
.m_axi_wvalid ( m_axi_wvalid ),
.m_axi_wlast ( m_axi_wlast ),
.m_axi_bready ( m_axi_bready ),
.m_axi_bresp ( m_axi_bresp ),
.m_axi_rready ( m_axi_rready ),
.m_axi_bid ( m_axi_bid ),
.m_axi_rid ( m_axi_rid ),
.m_axi_wdata ( m_axi_wdata ),
.m_axi_rdata ( m_axi_rdata ),
.m_axi_rresp ( m_axi_rresp ),
.m_axi_bvalid ( m_axi_bvalid ),
.m_axi_rvalid ( m_axi_rvalid ),
.m_axi_rlast ( m_axi_rlast ),
.m_axi_wstrb ( m_axi_wstrb ),
.m_axi_wready ( m_axi_wready ),
.s_axi_wready ( s_axi_wready ),
.s_axi_awprot ( s_axi_awprot ),
.s_axi_awcache ( s_axi_awcache ),
.s_axi_awqos ( s_axi_awqos ),
.s_axi_awuser ( s_axi_awuser ),
.s_axi_arqos ( s_axi_arqos ),
.s_axi_arcache ( s_axi_arcache ),
.m_axi_awprot ( m_axi_awprot ),
.s_axi_arid ( s_axi_arid ),
.s_axi_arsize ( s_axi_arsize ),
.s_axi_arlen ( s_axi_arlen ),
.s_axi_arburst ( s_axi_arburst ),
.s_axi_arprot ( s_axi_arprot ),
.s_axi_awid ( s_axi_awid ),
.s_axi_awburst ( s_axi_awburst ),
.s_axi_awlen ( s_axi_awlen ),
.s_axi_awsize ( s_axi_awsize ),
.m_axi_awid ( m_axi_awid ),
.m_axi_awburst ( m_axi_awburst ),
.m_axi_awlen ( m_axi_awlen ),
.m_axi_awsize ( m_axi_awsize ),
.m_axi_awcache ( m_axi_awcache ),
.m_axi_awqos ( m_axi_awqos ),
.m_axi_awuser ( m_axi_awuser ),
.m_axi_arprot ( m_axi_arprot ),
.m_axi_arburst ( m_axi_arburst ),
.m_axi_arlen ( m_axi_arlen ),
.m_axi_arsize ( m_axi_arsize ),
.m_axi_arcache ( m_axi_arcache ),
.m_axi_arqos ( m_axi_arqos ),
.m_axi_aruser ( m_axi_aruser ),
.m_axi_awregion ( m_axi_awregion ),
.m_axi_arregion ( m_axi_arregion ),
.m_axi_arid ( m_axi_arid ),
.m_axi_wuser ( m_axi_wuser ),
.m_axi_ruser ( m_axi_ruser ),
.m_axi_buser ( m_axi_buser ),
.s_axi_aruser ( s_axi_aruser ),
.s_axi_wuser ( s_axi_wuser ),
.s_axi_buser ( s_axi_buser ),
.s_axi_ruser ( s_axi_ruser )
);

View File

@@ -0,0 +1,229 @@
--------------------------------------------------------------------------------
-- Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
--
-- This document contains proprietary information which is
-- protected by copyright. All rights are reserved. This notice
-- refers to original work by Efinix, Inc. which may be derivitive
-- of other work distributed under license of the authors. In the
-- case of derivative work, nothing in this notice overrides the
-- original author's license agreement. Where applicable, the
-- original license agreement is included in it's original
-- unmodified form immediately below this header.
--
-- WARRANTY DISCLAIMER.
-- THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
-- EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
-- RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
-- INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
-- PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
-- WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
--
-- LIMITATION OF LIABILITY.
-- NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
-- INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
-- MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
-- OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
-- SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
-- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
-- GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
-- MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
-- THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
-- (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
-- BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
-- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-- CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
-- APPLY TO LICENSEE.
--
--------------------------------------------------------------------------------
------------- Begin Cut here for COMPONENT Declaration ------
component gAXIM_2to1_switch is
port (
rst_n : in std_logic;
clk : in std_logic;
s_axi_awvalid : in std_logic_vector(1 downto 0);
s_axi_awaddr : in std_logic_vector(63 downto 0);
s_axi_awlock : in std_logic_vector(3 downto 0);
s_axi_awready : out std_logic_vector(1 downto 0);
s_axi_arvalid : in std_logic_vector(1 downto 0);
s_axi_araddr : in std_logic_vector(63 downto 0);
s_axi_arlock : in std_logic_vector(3 downto 0);
s_axi_arready : out std_logic_vector(1 downto 0);
s_axi_wvalid : in std_logic_vector(1 downto 0);
s_axi_wlast : in std_logic_vector(1 downto 0);
s_axi_wid : in std_logic_vector(15 downto 0);
s_axi_bready : in std_logic_vector(1 downto 0);
s_axi_bresp : out std_logic_vector(3 downto 0);
s_axi_rready : in std_logic_vector(1 downto 0);
s_axi_bid : out std_logic_vector(15 downto 0);
s_axi_rid : out std_logic_vector(15 downto 0);
s_axi_wdata : in std_logic_vector(255 downto 0);
s_axi_rdata : out std_logic_vector(255 downto 0);
s_axi_rresp : out std_logic_vector(3 downto 0);
s_axi_bvalid : out std_logic_vector(1 downto 0);
s_axi_rvalid : out std_logic_vector(1 downto 0);
s_axi_rlast : out std_logic_vector(1 downto 0);
s_axi_wstrb : in std_logic_vector(31 downto 0);
m_axi_awvalid : out std_logic_vector(0 to 0);
m_axi_awaddr : out std_logic_vector(31 downto 0);
m_axi_awlock : out std_logic_vector(1 downto 0);
m_axi_awready : in std_logic_vector(0 to 0);
m_axi_arvalid : out std_logic_vector(0 to 0);
m_axi_araddr : out std_logic_vector(31 downto 0);
m_axi_arlock : out std_logic_vector(1 downto 0);
m_axi_arready : in std_logic_vector(0 to 0);
m_axi_wvalid : out std_logic_vector(0 to 0);
m_axi_wlast : out std_logic_vector(0 to 0);
m_axi_bready : out std_logic_vector(0 to 0);
m_axi_bresp : in std_logic_vector(1 downto 0);
m_axi_rready : out std_logic_vector(0 to 0);
m_axi_bid : in std_logic_vector(7 downto 0);
m_axi_rid : in std_logic_vector(7 downto 0);
m_axi_wdata : out std_logic_vector(127 downto 0);
m_axi_rdata : in std_logic_vector(127 downto 0);
m_axi_rresp : in std_logic_vector(1 downto 0);
m_axi_bvalid : in std_logic_vector(0 to 0);
m_axi_rvalid : in std_logic_vector(0 to 0);
m_axi_rlast : in std_logic_vector(0 to 0);
m_axi_wstrb : out std_logic_vector(15 downto 0);
m_axi_wready : in std_logic_vector(0 to 0);
s_axi_wready : out std_logic_vector(1 downto 0);
s_axi_awprot : in std_logic_vector(5 downto 0);
s_axi_awcache : in std_logic_vector(7 downto 0);
s_axi_awqos : in std_logic_vector(7 downto 0);
s_axi_awuser : in std_logic_vector(5 downto 0);
s_axi_arqos : in std_logic_vector(7 downto 0);
s_axi_arcache : in std_logic_vector(7 downto 0);
m_axi_awprot : out std_logic_vector(2 downto 0);
s_axi_arid : in std_logic_vector(15 downto 0);
s_axi_arsize : in std_logic_vector(5 downto 0);
s_axi_arlen : in std_logic_vector(15 downto 0);
s_axi_arburst : in std_logic_vector(3 downto 0);
s_axi_arprot : in std_logic_vector(5 downto 0);
s_axi_awid : in std_logic_vector(15 downto 0);
s_axi_awburst : in std_logic_vector(3 downto 0);
s_axi_awlen : in std_logic_vector(15 downto 0);
s_axi_awsize : in std_logic_vector(5 downto 0);
m_axi_awid : out std_logic_vector(7 downto 0);
m_axi_awburst : out std_logic_vector(1 downto 0);
m_axi_awlen : out std_logic_vector(7 downto 0);
m_axi_awsize : out std_logic_vector(2 downto 0);
m_axi_awcache : out std_logic_vector(3 downto 0);
m_axi_awqos : out std_logic_vector(3 downto 0);
m_axi_awuser : out std_logic_vector(2 downto 0);
m_axi_arprot : out std_logic_vector(2 downto 0);
m_axi_arburst : out std_logic_vector(1 downto 0);
m_axi_arlen : out std_logic_vector(7 downto 0);
m_axi_arsize : out std_logic_vector(2 downto 0);
m_axi_arcache : out std_logic_vector(3 downto 0);
m_axi_arqos : out std_logic_vector(3 downto 0);
m_axi_aruser : out std_logic_vector(2 downto 0);
m_axi_awregion : out std_logic_vector(3 downto 0);
m_axi_arregion : out std_logic_vector(3 downto 0);
m_axi_arid : out std_logic_vector(7 downto 0);
m_axi_wuser : out std_logic_vector(2 downto 0);
m_axi_ruser : in std_logic_vector(2 downto 0);
m_axi_buser : in std_logic_vector(2 downto 0);
s_axi_aruser : in std_logic_vector(5 downto 0);
s_axi_wuser : in std_logic_vector(5 downto 0);
s_axi_buser : out std_logic_vector(5 downto 0);
s_axi_ruser : out std_logic_vector(5 downto 0)
);
end component gAXIM_2to1_switch;
---------------------- End COMPONENT Declaration ------------
------------- Begin Cut here for INSTANTIATION Template -----
u_gAXIM_2to1_switch : gAXIM_2to1_switch
port map (
rst_n => rst_n,
clk => clk,
s_axi_awvalid => s_axi_awvalid,
s_axi_awaddr => s_axi_awaddr,
s_axi_awlock => s_axi_awlock,
s_axi_awready => s_axi_awready,
s_axi_arvalid => s_axi_arvalid,
s_axi_araddr => s_axi_araddr,
s_axi_arlock => s_axi_arlock,
s_axi_arready => s_axi_arready,
s_axi_wvalid => s_axi_wvalid,
s_axi_wlast => s_axi_wlast,
s_axi_wid => s_axi_wid,
s_axi_bready => s_axi_bready,
s_axi_bresp => s_axi_bresp,
s_axi_rready => s_axi_rready,
s_axi_bid => s_axi_bid,
s_axi_rid => s_axi_rid,
s_axi_wdata => s_axi_wdata,
s_axi_rdata => s_axi_rdata,
s_axi_rresp => s_axi_rresp,
s_axi_bvalid => s_axi_bvalid,
s_axi_rvalid => s_axi_rvalid,
s_axi_rlast => s_axi_rlast,
s_axi_wstrb => s_axi_wstrb,
m_axi_awvalid => m_axi_awvalid,
m_axi_awaddr => m_axi_awaddr,
m_axi_awlock => m_axi_awlock,
m_axi_awready => m_axi_awready,
m_axi_arvalid => m_axi_arvalid,
m_axi_araddr => m_axi_araddr,
m_axi_arlock => m_axi_arlock,
m_axi_arready => m_axi_arready,
m_axi_wvalid => m_axi_wvalid,
m_axi_wlast => m_axi_wlast,
m_axi_bready => m_axi_bready,
m_axi_bresp => m_axi_bresp,
m_axi_rready => m_axi_rready,
m_axi_bid => m_axi_bid,
m_axi_rid => m_axi_rid,
m_axi_wdata => m_axi_wdata,
m_axi_rdata => m_axi_rdata,
m_axi_rresp => m_axi_rresp,
m_axi_bvalid => m_axi_bvalid,
m_axi_rvalid => m_axi_rvalid,
m_axi_rlast => m_axi_rlast,
m_axi_wstrb => m_axi_wstrb,
m_axi_wready => m_axi_wready,
s_axi_wready => s_axi_wready,
s_axi_awprot => s_axi_awprot,
s_axi_awcache => s_axi_awcache,
s_axi_awqos => s_axi_awqos,
s_axi_awuser => s_axi_awuser,
s_axi_arqos => s_axi_arqos,
s_axi_arcache => s_axi_arcache,
m_axi_awprot => m_axi_awprot,
s_axi_arid => s_axi_arid,
s_axi_arsize => s_axi_arsize,
s_axi_arlen => s_axi_arlen,
s_axi_arburst => s_axi_arburst,
s_axi_arprot => s_axi_arprot,
s_axi_awid => s_axi_awid,
s_axi_awburst => s_axi_awburst,
s_axi_awlen => s_axi_awlen,
s_axi_awsize => s_axi_awsize,
m_axi_awid => m_axi_awid,
m_axi_awburst => m_axi_awburst,
m_axi_awlen => m_axi_awlen,
m_axi_awsize => m_axi_awsize,
m_axi_awcache => m_axi_awcache,
m_axi_awqos => m_axi_awqos,
m_axi_awuser => m_axi_awuser,
m_axi_arprot => m_axi_arprot,
m_axi_arburst => m_axi_arburst,
m_axi_arlen => m_axi_arlen,
m_axi_arsize => m_axi_arsize,
m_axi_arcache => m_axi_arcache,
m_axi_arqos => m_axi_arqos,
m_axi_aruser => m_axi_aruser,
m_axi_awregion => m_axi_awregion,
m_axi_arregion => m_axi_arregion,
m_axi_arid => m_axi_arid,
m_axi_wuser => m_axi_wuser,
m_axi_ruser => m_axi_ruser,
m_axi_buser => m_axi_buser,
s_axi_aruser => s_axi_aruser,
s_axi_wuser => s_axi_wuser,
s_axi_buser => s_axi_buser,
s_axi_ruser => s_axi_ruser
);
------------------------ End INSTANTIATION Template ---------

Binary file not shown.

View File

@@ -0,0 +1,54 @@
{
"args": [
"-o",
"gAXIM_2to1_switch",
"--base_path",
"ip",
"--vlnv",
{
"vendor": "efinixinc.com",
"library": "axi_infra",
"name": "efx_axi_interconnect",
"version": "5.6"
}
],
"conf": {
"ARB_MODE": "\"ROUND_ROBIN_1\"",
"S_PORTS": "1",
"TABLE0_AXI_S0__MIN": "32'd0",
"TABLE0_AXI_S1__MIN": "32'd512",
"TABLE0_AXI_S2__MIN": "32'd285212672",
"TABLE0_AXI_S3__MIN": "32'd286261248",
"TABLE0_AXI_S4__MIN": "32'd536870912",
"TABLE0_AXI_S5__MIN": "32'd805306368",
"TABLE0_AXI_S6__MIN": "32'd1073741824",
"TABLE0_AXI_S7__MIN": "32'd1090519040",
"TABLE0_AXI_S0__MAX": "32'd9",
"TABLE0_AXI_S1__MAX": "32'd8",
"TABLE0_AXI_S2__MAX": "32'd12",
"TABLE0_AXI_S3__MAX": "32'd20",
"TABLE0_AXI_S4__MAX": "32'd28",
"TABLE0_AXI_S5__MAX": "32'd28",
"TABLE0_AXI_S6__MAX": "32'd24",
"TABLE0_AXI_S7__MAX": "32'd20",
"DATA_WIDTH": "32",
"ADDR_WIDTH": "32",
"M_PORTS": "2",
"ID_WIDTH": "8",
"USER_WIDTH": "3",
"PROTOCOL": "\"AXI4_LITE\""
},
"output": {
"external_script_generator": [],
"external_source_source": [],
"external_example_example": [],
"external_testbench_synopsys": [],
"external_testbench_modelsim": [],
"external_testbench_ncsim": [],
"external_testbench_aldec": [],
"external_testbench_testbench": []
},
"ooc_synthesis": {},
"sw_version": "2026.1.132",
"external_path_option": "RELATIVE_PATH"
}

View File

@@ -0,0 +1,2 @@
localparam M_BASE_ADDR = {32'h41000000,32'h40000000,32'h30000000,32'h20000000,32'h11100000,32'h1100000,32'h1000000,32'h0};
localparam M_ADDR_WIDTH = {32'd20,32'd24,32'd28,32'd28,32'd20,32'd16,32'd16,32'd24};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,53 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2026.1.132
// IP Version: 5.6
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
localparam ARB_MODE = "ROUND_ROBIN_1";
localparam S_PORTS = 1;
localparam DATA_WIDTH = 32;
localparam ADDR_WIDTH = 32;
localparam M_PORTS = 3;
localparam ID_WIDTH = 8;
localparam USER_WIDTH = 3;
localparam PROTOCOL = "AXI4";

View File

@@ -0,0 +1,137 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2026.1.132
// IP Version: 5.6
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED AS IS AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
gAXIS_1to3_switch u_gAXIS_1to3_switch
(
.rst_n ( rst_n ),
.clk ( clk ),
.s_axi_awvalid ( s_axi_awvalid ),
.s_axi_awaddr ( s_axi_awaddr ),
.s_axi_awlock ( s_axi_awlock ),
.s_axi_awready ( s_axi_awready ),
.s_axi_arvalid ( s_axi_arvalid ),
.s_axi_araddr ( s_axi_araddr ),
.s_axi_arlock ( s_axi_arlock ),
.s_axi_arready ( s_axi_arready ),
.s_axi_wvalid ( s_axi_wvalid ),
.s_axi_wlast ( s_axi_wlast ),
.s_axi_wid ( s_axi_wid ),
.s_axi_bready ( s_axi_bready ),
.s_axi_bresp ( s_axi_bresp ),
.s_axi_rready ( s_axi_rready ),
.s_axi_bid ( s_axi_bid ),
.s_axi_rid ( s_axi_rid ),
.s_axi_wdata ( s_axi_wdata ),
.s_axi_rdata ( s_axi_rdata ),
.s_axi_rresp ( s_axi_rresp ),
.s_axi_bvalid ( s_axi_bvalid ),
.s_axi_rvalid ( s_axi_rvalid ),
.s_axi_rlast ( s_axi_rlast ),
.s_axi_wstrb ( s_axi_wstrb ),
.m_axi_awvalid ( m_axi_awvalid ),
.m_axi_awaddr ( m_axi_awaddr ),
.m_axi_awlock ( m_axi_awlock ),
.m_axi_awready ( m_axi_awready ),
.m_axi_arvalid ( m_axi_arvalid ),
.m_axi_araddr ( m_axi_araddr ),
.m_axi_arlock ( m_axi_arlock ),
.m_axi_arready ( m_axi_arready ),
.m_axi_wvalid ( m_axi_wvalid ),
.m_axi_wlast ( m_axi_wlast ),
.m_axi_bready ( m_axi_bready ),
.m_axi_bresp ( m_axi_bresp ),
.m_axi_rready ( m_axi_rready ),
.m_axi_bid ( m_axi_bid ),
.m_axi_rid ( m_axi_rid ),
.m_axi_wdata ( m_axi_wdata ),
.m_axi_rdata ( m_axi_rdata ),
.m_axi_rresp ( m_axi_rresp ),
.m_axi_bvalid ( m_axi_bvalid ),
.m_axi_rvalid ( m_axi_rvalid ),
.m_axi_rlast ( m_axi_rlast ),
.m_axi_wstrb ( m_axi_wstrb ),
.m_axi_wready ( m_axi_wready ),
.s_axi_wready ( s_axi_wready ),
.s_axi_awprot ( s_axi_awprot ),
.s_axi_awcache ( s_axi_awcache ),
.s_axi_awqos ( s_axi_awqos ),
.s_axi_awuser ( s_axi_awuser ),
.s_axi_arqos ( s_axi_arqos ),
.s_axi_arcache ( s_axi_arcache ),
.m_axi_awprot ( m_axi_awprot ),
.s_axi_arid ( s_axi_arid ),
.s_axi_arsize ( s_axi_arsize ),
.s_axi_arlen ( s_axi_arlen ),
.s_axi_arburst ( s_axi_arburst ),
.s_axi_arprot ( s_axi_arprot ),
.s_axi_awid ( s_axi_awid ),
.s_axi_awburst ( s_axi_awburst ),
.s_axi_awlen ( s_axi_awlen ),
.s_axi_awsize ( s_axi_awsize ),
.m_axi_awid ( m_axi_awid ),
.m_axi_awburst ( m_axi_awburst ),
.m_axi_awlen ( m_axi_awlen ),
.m_axi_awsize ( m_axi_awsize ),
.m_axi_awcache ( m_axi_awcache ),
.m_axi_awqos ( m_axi_awqos ),
.m_axi_awuser ( m_axi_awuser ),
.m_axi_arprot ( m_axi_arprot ),
.m_axi_arburst ( m_axi_arburst ),
.m_axi_arlen ( m_axi_arlen ),
.m_axi_arsize ( m_axi_arsize ),
.m_axi_arcache ( m_axi_arcache ),
.m_axi_arqos ( m_axi_arqos ),
.m_axi_aruser ( m_axi_aruser ),
.m_axi_awregion ( m_axi_awregion ),
.m_axi_arregion ( m_axi_arregion ),
.m_axi_arid ( m_axi_arid ),
.m_axi_wuser ( m_axi_wuser ),
.m_axi_ruser ( m_axi_ruser ),
.m_axi_buser ( m_axi_buser ),
.s_axi_aruser ( s_axi_aruser ),
.s_axi_wuser ( s_axi_wuser ),
.s_axi_buser ( s_axi_buser ),
.s_axi_ruser ( s_axi_ruser )
);

View File

@@ -0,0 +1,229 @@
--------------------------------------------------------------------------------
-- Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
--
-- This document contains proprietary information which is
-- protected by copyright. All rights are reserved. This notice
-- refers to original work by Efinix, Inc. which may be derivitive
-- of other work distributed under license of the authors. In the
-- case of derivative work, nothing in this notice overrides the
-- original author's license agreement. Where applicable, the
-- original license agreement is included in it's original
-- unmodified form immediately below this header.
--
-- WARRANTY DISCLAIMER.
-- THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
-- EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
-- RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
-- INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
-- PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
-- WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
--
-- LIMITATION OF LIABILITY.
-- NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
-- INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
-- MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
-- OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
-- SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
-- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
-- GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
-- MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
-- THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
-- (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
-- BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
-- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-- CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
-- APPLY TO LICENSEE.
--
--------------------------------------------------------------------------------
------------- Begin Cut here for COMPONENT Declaration ------
component gAXIS_1to3_switch is
port (
rst_n : in std_logic;
clk : in std_logic;
s_axi_awvalid : in std_logic_vector(0 to 0);
s_axi_awaddr : in std_logic_vector(31 downto 0);
s_axi_awlock : in std_logic_vector(1 downto 0);
s_axi_awready : out std_logic_vector(0 to 0);
s_axi_arvalid : in std_logic_vector(0 to 0);
s_axi_araddr : in std_logic_vector(31 downto 0);
s_axi_arlock : in std_logic_vector(1 downto 0);
s_axi_arready : out std_logic_vector(0 to 0);
s_axi_wvalid : in std_logic_vector(0 to 0);
s_axi_wlast : in std_logic_vector(0 to 0);
s_axi_wid : in std_logic_vector(7 downto 0);
s_axi_bready : in std_logic_vector(0 to 0);
s_axi_bresp : out std_logic_vector(1 downto 0);
s_axi_rready : in std_logic_vector(0 to 0);
s_axi_bid : out std_logic_vector(7 downto 0);
s_axi_rid : out std_logic_vector(7 downto 0);
s_axi_wdata : in std_logic_vector(31 downto 0);
s_axi_rdata : out std_logic_vector(31 downto 0);
s_axi_rresp : out std_logic_vector(1 downto 0);
s_axi_bvalid : out std_logic_vector(0 to 0);
s_axi_rvalid : out std_logic_vector(0 to 0);
s_axi_rlast : out std_logic_vector(0 to 0);
s_axi_wstrb : in std_logic_vector(3 downto 0);
m_axi_awvalid : out std_logic_vector(2 downto 0);
m_axi_awaddr : out std_logic_vector(95 downto 0);
m_axi_awlock : out std_logic_vector(5 downto 0);
m_axi_awready : in std_logic_vector(2 downto 0);
m_axi_arvalid : out std_logic_vector(2 downto 0);
m_axi_araddr : out std_logic_vector(95 downto 0);
m_axi_arlock : out std_logic_vector(5 downto 0);
m_axi_arready : in std_logic_vector(2 downto 0);
m_axi_wvalid : out std_logic_vector(2 downto 0);
m_axi_wlast : out std_logic_vector(2 downto 0);
m_axi_bready : out std_logic_vector(2 downto 0);
m_axi_bresp : in std_logic_vector(5 downto 0);
m_axi_rready : out std_logic_vector(2 downto 0);
m_axi_bid : in std_logic_vector(23 downto 0);
m_axi_rid : in std_logic_vector(23 downto 0);
m_axi_wdata : out std_logic_vector(95 downto 0);
m_axi_rdata : in std_logic_vector(95 downto 0);
m_axi_rresp : in std_logic_vector(5 downto 0);
m_axi_bvalid : in std_logic_vector(2 downto 0);
m_axi_rvalid : in std_logic_vector(2 downto 0);
m_axi_rlast : in std_logic_vector(2 downto 0);
m_axi_wstrb : out std_logic_vector(11 downto 0);
m_axi_wready : in std_logic_vector(2 downto 0);
s_axi_wready : out std_logic_vector(0 to 0);
s_axi_awprot : in std_logic_vector(2 downto 0);
s_axi_awcache : in std_logic_vector(3 downto 0);
s_axi_awqos : in std_logic_vector(3 downto 0);
s_axi_awuser : in std_logic_vector(2 downto 0);
s_axi_arqos : in std_logic_vector(3 downto 0);
s_axi_arcache : in std_logic_vector(3 downto 0);
m_axi_awprot : out std_logic_vector(8 downto 0);
s_axi_arid : in std_logic_vector(7 downto 0);
s_axi_arsize : in std_logic_vector(2 downto 0);
s_axi_arlen : in std_logic_vector(7 downto 0);
s_axi_arburst : in std_logic_vector(1 downto 0);
s_axi_arprot : in std_logic_vector(2 downto 0);
s_axi_awid : in std_logic_vector(7 downto 0);
s_axi_awburst : in std_logic_vector(1 downto 0);
s_axi_awlen : in std_logic_vector(7 downto 0);
s_axi_awsize : in std_logic_vector(2 downto 0);
m_axi_awid : out std_logic_vector(23 downto 0);
m_axi_awburst : out std_logic_vector(5 downto 0);
m_axi_awlen : out std_logic_vector(23 downto 0);
m_axi_awsize : out std_logic_vector(8 downto 0);
m_axi_awcache : out std_logic_vector(11 downto 0);
m_axi_awqos : out std_logic_vector(11 downto 0);
m_axi_awuser : out std_logic_vector(8 downto 0);
m_axi_arprot : out std_logic_vector(8 downto 0);
m_axi_arburst : out std_logic_vector(5 downto 0);
m_axi_arlen : out std_logic_vector(23 downto 0);
m_axi_arsize : out std_logic_vector(8 downto 0);
m_axi_arcache : out std_logic_vector(11 downto 0);
m_axi_arqos : out std_logic_vector(11 downto 0);
m_axi_aruser : out std_logic_vector(8 downto 0);
m_axi_awregion : out std_logic_vector(11 downto 0);
m_axi_arregion : out std_logic_vector(11 downto 0);
m_axi_arid : out std_logic_vector(23 downto 0);
m_axi_wuser : out std_logic_vector(8 downto 0);
m_axi_ruser : in std_logic_vector(8 downto 0);
m_axi_buser : in std_logic_vector(8 downto 0);
s_axi_aruser : in std_logic_vector(2 downto 0);
s_axi_wuser : in std_logic_vector(2 downto 0);
s_axi_buser : out std_logic_vector(2 downto 0);
s_axi_ruser : out std_logic_vector(2 downto 0)
);
end component gAXIS_1to3_switch;
---------------------- End COMPONENT Declaration ------------
------------- Begin Cut here for INSTANTIATION Template -----
u_gAXIS_1to3_switch : gAXIS_1to3_switch
port map (
rst_n => rst_n,
clk => clk,
s_axi_awvalid => s_axi_awvalid,
s_axi_awaddr => s_axi_awaddr,
s_axi_awlock => s_axi_awlock,
s_axi_awready => s_axi_awready,
s_axi_arvalid => s_axi_arvalid,
s_axi_araddr => s_axi_araddr,
s_axi_arlock => s_axi_arlock,
s_axi_arready => s_axi_arready,
s_axi_wvalid => s_axi_wvalid,
s_axi_wlast => s_axi_wlast,
s_axi_wid => s_axi_wid,
s_axi_bready => s_axi_bready,
s_axi_bresp => s_axi_bresp,
s_axi_rready => s_axi_rready,
s_axi_bid => s_axi_bid,
s_axi_rid => s_axi_rid,
s_axi_wdata => s_axi_wdata,
s_axi_rdata => s_axi_rdata,
s_axi_rresp => s_axi_rresp,
s_axi_bvalid => s_axi_bvalid,
s_axi_rvalid => s_axi_rvalid,
s_axi_rlast => s_axi_rlast,
s_axi_wstrb => s_axi_wstrb,
m_axi_awvalid => m_axi_awvalid,
m_axi_awaddr => m_axi_awaddr,
m_axi_awlock => m_axi_awlock,
m_axi_awready => m_axi_awready,
m_axi_arvalid => m_axi_arvalid,
m_axi_araddr => m_axi_araddr,
m_axi_arlock => m_axi_arlock,
m_axi_arready => m_axi_arready,
m_axi_wvalid => m_axi_wvalid,
m_axi_wlast => m_axi_wlast,
m_axi_bready => m_axi_bready,
m_axi_bresp => m_axi_bresp,
m_axi_rready => m_axi_rready,
m_axi_bid => m_axi_bid,
m_axi_rid => m_axi_rid,
m_axi_wdata => m_axi_wdata,
m_axi_rdata => m_axi_rdata,
m_axi_rresp => m_axi_rresp,
m_axi_bvalid => m_axi_bvalid,
m_axi_rvalid => m_axi_rvalid,
m_axi_rlast => m_axi_rlast,
m_axi_wstrb => m_axi_wstrb,
m_axi_wready => m_axi_wready,
s_axi_wready => s_axi_wready,
s_axi_awprot => s_axi_awprot,
s_axi_awcache => s_axi_awcache,
s_axi_awqos => s_axi_awqos,
s_axi_awuser => s_axi_awuser,
s_axi_arqos => s_axi_arqos,
s_axi_arcache => s_axi_arcache,
m_axi_awprot => m_axi_awprot,
s_axi_arid => s_axi_arid,
s_axi_arsize => s_axi_arsize,
s_axi_arlen => s_axi_arlen,
s_axi_arburst => s_axi_arburst,
s_axi_arprot => s_axi_arprot,
s_axi_awid => s_axi_awid,
s_axi_awburst => s_axi_awburst,
s_axi_awlen => s_axi_awlen,
s_axi_awsize => s_axi_awsize,
m_axi_awid => m_axi_awid,
m_axi_awburst => m_axi_awburst,
m_axi_awlen => m_axi_awlen,
m_axi_awsize => m_axi_awsize,
m_axi_awcache => m_axi_awcache,
m_axi_awqos => m_axi_awqos,
m_axi_awuser => m_axi_awuser,
m_axi_arprot => m_axi_arprot,
m_axi_arburst => m_axi_arburst,
m_axi_arlen => m_axi_arlen,
m_axi_arsize => m_axi_arsize,
m_axi_arcache => m_axi_arcache,
m_axi_arqos => m_axi_arqos,
m_axi_aruser => m_axi_aruser,
m_axi_awregion => m_axi_awregion,
m_axi_arregion => m_axi_arregion,
m_axi_arid => m_axi_arid,
m_axi_wuser => m_axi_wuser,
m_axi_ruser => m_axi_ruser,
m_axi_buser => m_axi_buser,
s_axi_aruser => s_axi_aruser,
s_axi_wuser => s_axi_wuser,
s_axi_buser => s_axi_buser,
s_axi_ruser => s_axi_ruser
);
------------------------ End INSTANTIATION Template ---------

Binary file not shown.

View File

@@ -0,0 +1,54 @@
{
"args": [
"-o",
"gAXIS_1to3_switch",
"--base_path",
"ip",
"--vlnv",
{
"vendor": "efinixinc.com",
"library": "axi_infra",
"name": "efx_axi_interconnect",
"version": "5.6"
}
],
"conf": {
"ARB_MODE": "\"ROUND_ROBIN_1\"",
"S_PORTS": "1",
"TABLE0_AXI_S0__MIN": "32'd0",
"TABLE0_AXI_S1__MIN": "32'd512",
"TABLE0_AXI_S2__MIN": "32'd285212672",
"TABLE0_AXI_S3__MIN": "32'd286261248",
"TABLE0_AXI_S4__MIN": "32'd536870912",
"TABLE0_AXI_S5__MIN": "32'd805306368",
"TABLE0_AXI_S6__MIN": "32'd1073741824",
"TABLE0_AXI_S7__MIN": "32'd1090519040",
"TABLE0_AXI_S0__MAX": "32'd9",
"TABLE0_AXI_S1__MAX": "32'd8",
"TABLE0_AXI_S2__MAX": "32'd12",
"TABLE0_AXI_S3__MAX": "32'd20",
"TABLE0_AXI_S4__MAX": "32'd28",
"TABLE0_AXI_S5__MAX": "32'd28",
"TABLE0_AXI_S6__MAX": "32'd24",
"TABLE0_AXI_S7__MAX": "32'd20",
"DATA_WIDTH": "32",
"ADDR_WIDTH": "32",
"M_PORTS": "2",
"ID_WIDTH": "8",
"USER_WIDTH": "3",
"PROTOCOL": "\"AXI4_LITE\""
},
"output": {
"external_script_generator": [],
"external_source_source": [],
"external_example_example": [],
"external_testbench_synopsys": [],
"external_testbench_modelsim": [],
"external_testbench_ncsim": [],
"external_testbench_aldec": [],
"external_testbench_testbench": []
},
"ooc_synthesis": {},
"sw_version": "2026.1.132",
"external_path_option": "RELATIVE_PATH"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,45 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2025.2.272
// IP Version: 6.4.2
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////

View File

@@ -0,0 +1,114 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2025.2.272
// IP Version: 6.4.2
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED AS IS AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
gDMA u_gDMA
(
.clk ( clk ),
.ctrl_reset ( ctrl_reset ),
.reset ( reset ),
.ctrl_clk ( ctrl_clk ),
.ctrl_PADDR ( ctrl_PADDR ),
.ctrl_PREADY ( ctrl_PREADY ),
.ctrl_PENABLE ( ctrl_PENABLE ),
.ctrl_PSEL ( ctrl_PSEL ),
.ctrl_PWRITE ( ctrl_PWRITE ),
.ctrl_PWDATA ( ctrl_PWDATA ),
.ctrl_PRDATA ( ctrl_PRDATA ),
.ctrl_PSLVERROR ( ctrl_PSLVERROR ),
.ctrl_interrupts ( ctrl_interrupts ),
.read_arvalid ( read_arvalid ),
.read_araddr ( read_araddr ),
.read_arready ( read_arready ),
.read_arregion ( read_arregion ),
.read_arlen ( read_arlen ),
.read_arsize ( read_arsize ),
.read_arburst ( read_arburst ),
.read_arlock ( read_arlock ),
.read_arcache ( read_arcache ),
.read_arqos ( read_arqos ),
.read_arprot ( read_arprot ),
.read_rready ( read_rready ),
.read_rvalid ( read_rvalid ),
.read_rdata ( read_rdata ),
.read_rlast ( read_rlast ),
.write_awvalid ( write_awvalid ),
.write_awready ( write_awready ),
.write_awaddr ( write_awaddr ),
.write_awregion ( write_awregion ),
.write_awlen ( write_awlen ),
.write_awsize ( write_awsize ),
.write_awburst ( write_awburst ),
.write_awlock ( write_awlock ),
.write_awcache ( write_awcache ),
.write_awqos ( write_awqos ),
.write_awprot ( write_awprot ),
.write_wvalid ( write_wvalid ),
.write_wready ( write_wready ),
.write_wdata ( write_wdata ),
.write_wstrb ( write_wstrb ),
.write_wlast ( write_wlast ),
.write_bvalid ( write_bvalid ),
.write_bready ( write_bready ),
.write_bresp ( write_bresp ),
.dat1_o_tvalid ( dat1_o_tvalid ),
.dat1_o_tready ( dat1_o_tready ),
.dat1_o_tdata ( dat1_o_tdata ),
.dat1_o_tkeep ( dat1_o_tkeep ),
.dat1_o_tdest ( dat1_o_tdest ),
.dat1_o_tlast ( dat1_o_tlast ),
.io_0_descriptorUpdate ( io_0_descriptorUpdate ),
.dat1_o_clk ( dat1_o_clk ),
.dat1_o_reset ( dat1_o_reset ),
.dat0_i_clk ( dat0_i_clk ),
.dat0_i_reset ( dat0_i_reset ),
.dat0_i_tvalid ( dat0_i_tvalid ),
.dat0_i_tready ( dat0_i_tready ),
.dat0_i_tdata ( dat0_i_tdata ),
.dat0_i_tkeep ( dat0_i_tkeep ),
.dat0_i_tdest ( dat0_i_tdest ),
.dat0_i_tlast ( dat0_i_tlast ),
.read_rresp ( read_rresp ),
.io_1_descriptorUpdate ( io_1_descriptorUpdate )
);

View File

@@ -0,0 +1,183 @@
--------------------------------------------------------------------------------
-- Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
--
-- This document contains proprietary information which is
-- protected by copyright. All rights are reserved. This notice
-- refers to original work by Efinix, Inc. which may be derivitive
-- of other work distributed under license of the authors. In the
-- case of derivative work, nothing in this notice overrides the
-- original author's license agreement. Where applicable, the
-- original license agreement is included in it's original
-- unmodified form immediately below this header.
--
-- WARRANTY DISCLAIMER.
-- THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
-- EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
-- RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
-- INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
-- PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
-- WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
--
-- LIMITATION OF LIABILITY.
-- NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
-- INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
-- MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
-- OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
-- SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
-- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
-- GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
-- MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
-- THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
-- (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
-- BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
-- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-- CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
-- APPLY TO LICENSEE.
--
--------------------------------------------------------------------------------
------------- Begin Cut here for COMPONENT Declaration ------
component gDMA is
port (
clk : in std_logic;
ctrl_reset : in std_logic;
reset : in std_logic;
ctrl_clk : in std_logic;
ctrl_PADDR : in std_logic_vector(13 downto 0);
ctrl_PREADY : out std_logic;
ctrl_PENABLE : in std_logic;
ctrl_PSEL : in std_logic;
ctrl_PWRITE : in std_logic;
ctrl_PWDATA : in std_logic_vector(31 downto 0);
ctrl_PRDATA : out std_logic_vector(31 downto 0);
ctrl_PSLVERROR : out std_logic;
ctrl_interrupts : out std_logic_vector(1 downto 0);
read_arvalid : out std_logic;
read_araddr : out std_logic_vector(31 downto 0);
read_arready : in std_logic;
read_arregion : out std_logic_vector(3 downto 0);
read_arlen : out std_logic_vector(7 downto 0);
read_arsize : out std_logic_vector(2 downto 0);
read_arburst : out std_logic_vector(1 downto 0);
read_arlock : out std_logic;
read_arcache : out std_logic_vector(3 downto 0);
read_arqos : out std_logic_vector(3 downto 0);
read_arprot : out std_logic_vector(2 downto 0);
read_rready : out std_logic;
read_rvalid : in std_logic;
read_rdata : in std_logic_vector(127 downto 0);
read_rlast : in std_logic;
write_awvalid : out std_logic;
write_awready : in std_logic;
write_awaddr : out std_logic_vector(31 downto 0);
write_awregion : out std_logic_vector(3 downto 0);
write_awlen : out std_logic_vector(7 downto 0);
write_awsize : out std_logic_vector(2 downto 0);
write_awburst : out std_logic_vector(1 downto 0);
write_awlock : out std_logic;
write_awcache : out std_logic_vector(3 downto 0);
write_awqos : out std_logic_vector(3 downto 0);
write_awprot : out std_logic_vector(2 downto 0);
write_wvalid : out std_logic;
write_wready : in std_logic;
write_wdata : out std_logic_vector(127 downto 0);
write_wstrb : out std_logic_vector(15 downto 0);
write_wlast : out std_logic;
write_bvalid : in std_logic;
write_bready : out std_logic;
write_bresp : in std_logic_vector(1 downto 0);
dat1_o_tvalid : out std_logic;
dat1_o_tready : in std_logic;
dat1_o_tdata : out std_logic_vector(7 downto 0);
dat1_o_tkeep : out std_logic_vector(0 to 0);
dat1_o_tdest : out std_logic_vector(3 downto 0);
dat1_o_tlast : out std_logic;
io_0_descriptorUpdate : out std_logic;
dat1_o_clk : in std_logic;
dat1_o_reset : in std_logic;
dat0_i_clk : in std_logic;
dat0_i_reset : in std_logic;
dat0_i_tvalid : in std_logic;
dat0_i_tready : out std_logic;
dat0_i_tdata : in std_logic_vector(7 downto 0);
dat0_i_tkeep : in std_logic_vector(0 to 0);
dat0_i_tdest : in std_logic_vector(3 downto 0);
dat0_i_tlast : in std_logic;
read_rresp : in std_logic_vector(1 downto 0);
io_1_descriptorUpdate : out std_logic
);
end component gDMA;
---------------------- End COMPONENT Declaration ------------
------------- Begin Cut here for INSTANTIATION Template -----
u_gDMA : gDMA
port map (
clk => clk,
ctrl_reset => ctrl_reset,
reset => reset,
ctrl_clk => ctrl_clk,
ctrl_PADDR => ctrl_PADDR,
ctrl_PREADY => ctrl_PREADY,
ctrl_PENABLE => ctrl_PENABLE,
ctrl_PSEL => ctrl_PSEL,
ctrl_PWRITE => ctrl_PWRITE,
ctrl_PWDATA => ctrl_PWDATA,
ctrl_PRDATA => ctrl_PRDATA,
ctrl_PSLVERROR => ctrl_PSLVERROR,
ctrl_interrupts => ctrl_interrupts,
read_arvalid => read_arvalid,
read_araddr => read_araddr,
read_arready => read_arready,
read_arregion => read_arregion,
read_arlen => read_arlen,
read_arsize => read_arsize,
read_arburst => read_arburst,
read_arlock => read_arlock,
read_arcache => read_arcache,
read_arqos => read_arqos,
read_arprot => read_arprot,
read_rready => read_rready,
read_rvalid => read_rvalid,
read_rdata => read_rdata,
read_rlast => read_rlast,
write_awvalid => write_awvalid,
write_awready => write_awready,
write_awaddr => write_awaddr,
write_awregion => write_awregion,
write_awlen => write_awlen,
write_awsize => write_awsize,
write_awburst => write_awburst,
write_awlock => write_awlock,
write_awcache => write_awcache,
write_awqos => write_awqos,
write_awprot => write_awprot,
write_wvalid => write_wvalid,
write_wready => write_wready,
write_wdata => write_wdata,
write_wstrb => write_wstrb,
write_wlast => write_wlast,
write_bvalid => write_bvalid,
write_bready => write_bready,
write_bresp => write_bresp,
dat1_o_tvalid => dat1_o_tvalid,
dat1_o_tready => dat1_o_tready,
dat1_o_tdata => dat1_o_tdata,
dat1_o_tkeep => dat1_o_tkeep,
dat1_o_tdest => dat1_o_tdest,
dat1_o_tlast => dat1_o_tlast,
io_0_descriptorUpdate => io_0_descriptorUpdate,
dat1_o_clk => dat1_o_clk,
dat1_o_reset => dat1_o_reset,
dat0_i_clk => dat0_i_clk,
dat0_i_reset => dat0_i_reset,
dat0_i_tvalid => dat0_i_tvalid,
dat0_i_tready => dat0_i_tready,
dat0_i_tdata => dat0_i_tdata,
dat0_i_tkeep => dat0_i_tkeep,
dat0_i_tdest => dat0_i_tdest,
dat0_i_tlast => dat0_i_tlast,
read_rresp => read_rresp,
io_1_descriptorUpdate => io_1_descriptorUpdate
);
------------------------ End INSTANTIATION Template ---------

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,126 @@
{
"args": [
"-o",
"gDMA",
"--base_path",
"/projects/SSE/llching/repo/efx_IP_master/efx_IP/efx_hard_soc/fpga/Ti375C529_devkit/ip",
"--vlnv",
{
"vendor": "efinixinc.com",
"library": "bridges_and_adaptors",
"name": "efx_dma",
"version": "6.4.2"
}
],
"conf": {
"PriorityEncode": "1'b0",
"WrQueue": "1'b0",
"CTRL_ASYNC_MODE": "1'b1",
"EfinixDDR": "1'b0",
"RdQueue": "1'b0",
"BufferWidth": "64",
"BufferWords": "512",
"MemExtWidth": "128",
"CH0_SGMode": "1'b1",
"CH0_Output": "1'b0",
"CH0_Input": "1'b1",
"CH4_Input": "1'b1",
"CH4_Width": "32",
"CH4_Output": "1'b1",
"CH4_SGMode": "1'b0",
"CH4_SR": "1'b0",
"CH5_BurstSize": "64",
"CH5_BufferSize": "1024",
"CH5_SR": "1'b0",
"CH6_Output": "1'b1",
"CH6_SGMode": "1'b0",
"CH6_SR": "1'b0",
"CH7_Output": "1'b1",
"CH7_SGMode": "1'b0",
"CH7_SR": "1'b0",
"CH7_Input": "1'b1",
"CH7_Width": "32",
"CH7_BurstSize": "64",
"CH7_BufferSize": "1024",
"CH6_Width": "32",
"CH6_Input": "1'b1",
"CH6_BurstSize": "64",
"CH6_BufferSize": "1024",
"CH5_Width": "32",
"CH5_Output": "1'b1",
"CH5_SGMode": "1'b0",
"CH5_Input": "1'b1",
"CH4_BurstSize": "64",
"CH4_BufferSize": "1024",
"CH3_SR": "1'b0",
"CH3_SGMode": "1'b0",
"CH3_Output": "1'b1",
"CH3_Width": "32",
"CH3_Input": "1'b1",
"CH3_BufferSize": "1024",
"CH3_BurstSize": "64",
"BufferCount": "2",
"CH0_Enable": "1'b1",
"CH1_Enable": "1'b1",
"CH1_AsyncMode": "1'b1",
"CH6_AsyncMode": "1'b0",
"CH5_AsyncMode": "1'b0",
"CH7_AsyncMode": "1'b0",
"CH0_AsyncMode": "1'b1",
"CH3_AsyncMode": "1'b0",
"CH2_AsyncMode": "1'b0",
"CH4_AsyncMode": "1'b0",
"CH0_BufferSize": "4096",
"CH0_BurstSize": "1024",
"CH0_SR": "1'b0",
"CH0_Width": "8",
"CH1_Input": "1'b0",
"CH1_Width": "8",
"CH1_Output": "1'b1",
"CH1_SGMode": "1'b1",
"CH1_SR": "1'b0",
"CH2_BufferSize": "1024",
"CH2_BurstSize": "64",
"CH2_Width": "32",
"CH2_SR": "1'b0",
"CH2_SGMode": "1'b0",
"CH2_Output": "1'b1",
"CH2_Input": "1'b1",
"CH1_BufferSize": "4096",
"CH1_BurstSize": "1024",
"CH2_Enable_user": "1'b0",
"CH2_Enable_default": "1'b0",
"CH3_Enable_default": "1'b0",
"CH3_Enable_user": "1'b0",
"CH4_Enable_default": "1'b0",
"CH4_Enable_user": "1'b0",
"CH5_Enable_user": "1'b0",
"CH5_Enable_default": "1'b0",
"CH6_Enable_user": "1'b0",
"CH6_Enable_default": "1'b0",
"CH7_Enable_user": "1'b0",
"CH7_Enable_default": "1'b0",
"CustomSGBus": "1'b0",
"CH0_MemMode": "1'b0",
"CH1_MemMode": "1'b0",
"CH2_MemMode": "1'b0",
"CH3_MemMode": "1'b0",
"CH4_MemMode": "1'b0",
"CH5_MemMode": "1'b0",
"CH6_MemMode": "1'b0",
"CH7_MemMode": "1'b0"
},
"output": {
"external_script_generator": [],
"external_source_source": [
"gDMA/gDMA_define.vh",
"gDMA/gDMA.v",
"gDMA/gDMA_tmpl.v",
"gDMA/gDMA_tmpl.vhd"
],
"external_script_script": []
},
"ooc_synthesis": {},
"sw_version": "2025.2.272",
"generated_date": "2025-10-16T09:35:15.778966+00:00"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,71 @@
{
"name": "EfxDMA",
"efinix_ddr": false,
"with_sg_bus": false,
"with_ddr_write_queue": false,
"with_ddr_read_queue": false,
"ctrl": {
"asynchronous": true
},
"buffer": {
"bank_count": 2,
"bank_width": 64,
"bank_words": 512
},
"read": {
"address_width": 32,
"data_width_external": 128,
"data_width_internal": 128
},
"write": {
"address_width": 32,
"data_width_external": 128,
"data_width_internal": 128
},
"channels": {
"c0": {
"progress_probe": true,
"direct_ctrl_capable": true,
"linked_list_capable": true,
"memory_to_memory": false,
"inputs": [
"dat0_i"
],
"half_completion_interrupt": false,
"self_restart_capable": false,
"bytes_per_burst": 1024,
"buffer_address": 0,
"buffer_size": 4096
},
"c1": {
"progress_probe": true,
"direct_ctrl_capable": true,
"linked_list_capable": true,
"memory_to_memory": false,
"outputs": [
"dat1_o"
],
"half_completion_interrupt": false,
"self_restart_capable": false,
"bytes_per_burst": 1024,
"buffer_address": 4096,
"buffer_size": 4096
}
},
"inputs": {
"dat0_i": {
"data_width": 8,
"tid_width": 0,
"tdest_width": 4,
"asynchronous": true
}
},
"outputs": {
"dat1_o": {
"data_width": 8,
"tid_width": 0,
"tdest_width": 4,
"asynchronous": true
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,47 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2025.2.272
// IP Version: 6.0
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
localparam DATA_BUFFER_DEPTH = 512;
localparam ADMA_DATA_WIDTH = 128;

View File

@@ -0,0 +1,111 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2025.2.272
// IP Version: 6.0
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED AS IS AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
gSDHC u_gSDHC
(
.sd_rst ( sd_rst ),
.sd_base_clk ( sd_base_clk ),
.sd_int ( sd_int ),
.sd_cd_n ( sd_cd_n ),
.sd_wp ( sd_wp ),
.s_axi_awaddr ( s_axi_awaddr ),
.s_axi_aclk ( s_axi_aclk ),
.s_axi_awready ( s_axi_awready ),
.s_axi_awvalid ( s_axi_awvalid ),
.s_axi_wdata ( s_axi_wdata ),
.s_axi_wready ( s_axi_wready ),
.s_axi_wvalid ( s_axi_wvalid ),
.s_axi_bresp ( s_axi_bresp ),
.s_axi_bvalid ( s_axi_bvalid ),
.s_axi_araddr ( s_axi_araddr ),
.s_axi_bready ( s_axi_bready ),
.s_axi_arready ( s_axi_arready ),
.s_axi_arvalid ( s_axi_arvalid ),
.s_axi_rresp ( s_axi_rresp ),
.s_axi_rdata ( s_axi_rdata ),
.s_axi_rvalid ( s_axi_rvalid ),
.s_axi_rready ( s_axi_rready ),
.m_axi_awaddr ( m_axi_awaddr ),
.m_axi_awvalid ( m_axi_awvalid ),
.m_axi_clk ( m_axi_clk ),
.m_axi_awlen ( m_axi_awlen ),
.m_axi_awready ( m_axi_awready ),
.m_axi_awsize ( m_axi_awsize ),
.m_axi_awcache ( m_axi_awcache ),
.m_axi_awlock ( m_axi_awlock ),
.m_axi_awprot ( m_axi_awprot ),
.m_axi_wlast ( m_axi_wlast ),
.m_axi_wvalid ( m_axi_wvalid ),
.m_axi_wready ( m_axi_wready ),
.m_axi_bresp ( m_axi_bresp ),
.m_axi_bvalid ( m_axi_bvalid ),
.m_axi_bready ( m_axi_bready ),
.m_axi_arvalid ( m_axi_arvalid ),
.m_axi_araddr ( m_axi_araddr ),
.m_axi_arlen ( m_axi_arlen ),
.m_axi_arsize ( m_axi_arsize ),
.m_axi_arburst ( m_axi_arburst ),
.m_axi_arprot ( m_axi_arprot ),
.m_axi_arlock ( m_axi_arlock ),
.m_axi_arcache ( m_axi_arcache ),
.m_axi_arready ( m_axi_arready ),
.m_axi_rvalid ( m_axi_rvalid ),
.m_axi_rlast ( m_axi_rlast ),
.m_axi_rresp ( m_axi_rresp ),
.m_axi_rready ( m_axi_rready ),
.sd_clk_hi ( sd_clk_hi ),
.sd_clk_lo ( sd_clk_lo ),
.sd_cmd_i ( sd_cmd_i ),
.sd_cmd_o ( sd_cmd_o ),
.sd_cmd_oe ( sd_cmd_oe ),
.sd_dat_i ( sd_dat_i ),
.sd_dat_o ( sd_dat_o ),
.sd_dat_oe ( sd_dat_oe ),
.m_axi_awburst ( m_axi_awburst ),
.m_axi_wdata ( m_axi_wdata ),
.m_axi_wstrb ( m_axi_wstrb ),
.m_axi_rdata ( m_axi_rdata ),
.s_axi_wstrb ( s_axi_wstrb )
);

View File

@@ -0,0 +1,177 @@
--------------------------------------------------------------------------------
-- Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
--
-- This document contains proprietary information which is
-- protected by copyright. All rights are reserved. This notice
-- refers to original work by Efinix, Inc. which may be derivitive
-- of other work distributed under license of the authors. In the
-- case of derivative work, nothing in this notice overrides the
-- original author's license agreement. Where applicable, the
-- original license agreement is included in it's original
-- unmodified form immediately below this header.
--
-- WARRANTY DISCLAIMER.
-- THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
-- EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
-- RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
-- INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
-- PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
-- WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
--
-- LIMITATION OF LIABILITY.
-- NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
-- INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
-- MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
-- OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
-- SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
-- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
-- GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
-- MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
-- THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
-- (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
-- BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
-- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-- CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
-- APPLY TO LICENSEE.
--
--------------------------------------------------------------------------------
------------- Begin Cut here for COMPONENT Declaration ------
component gSDHC is
port (
sd_rst : in std_logic;
sd_base_clk : in std_logic;
sd_int : out std_logic;
sd_cd_n : in std_logic;
sd_wp : in std_logic;
s_axi_awaddr : in std_logic_vector(9 downto 0);
s_axi_aclk : in std_logic;
s_axi_awready : out std_logic;
s_axi_awvalid : in std_logic;
s_axi_wdata : in std_logic_vector(31 downto 0);
s_axi_wready : out std_logic;
s_axi_wvalid : in std_logic;
s_axi_bresp : out std_logic_vector(1 downto 0);
s_axi_bvalid : out std_logic;
s_axi_araddr : in std_logic_vector(9 downto 0);
s_axi_bready : in std_logic;
s_axi_arready : out std_logic;
s_axi_arvalid : in std_logic;
s_axi_rresp : out std_logic_vector(1 downto 0);
s_axi_rdata : out std_logic_vector(31 downto 0);
s_axi_rvalid : out std_logic;
s_axi_rready : in std_logic;
m_axi_awaddr : out std_logic_vector(31 downto 0);
m_axi_awvalid : out std_logic;
m_axi_clk : in std_logic;
m_axi_awlen : out std_logic_vector(7 downto 0);
m_axi_awready : in std_logic;
m_axi_awsize : out std_logic_vector(2 downto 0);
m_axi_awcache : out std_logic_vector(3 downto 0);
m_axi_awlock : out std_logic_vector(1 downto 0);
m_axi_awprot : out std_logic_vector(2 downto 0);
m_axi_wlast : out std_logic;
m_axi_wvalid : out std_logic;
m_axi_wready : in std_logic;
m_axi_bresp : in std_logic_vector(1 downto 0);
m_axi_bvalid : in std_logic;
m_axi_bready : out std_logic;
m_axi_arvalid : out std_logic;
m_axi_araddr : out std_logic_vector(31 downto 0);
m_axi_arlen : out std_logic_vector(7 downto 0);
m_axi_arsize : out std_logic_vector(2 downto 0);
m_axi_arburst : out std_logic_vector(1 downto 0);
m_axi_arprot : out std_logic_vector(2 downto 0);
m_axi_arlock : out std_logic_vector(1 downto 0);
m_axi_arcache : out std_logic_vector(3 downto 0);
m_axi_arready : in std_logic;
m_axi_rvalid : in std_logic;
m_axi_rlast : in std_logic;
m_axi_rresp : in std_logic_vector(1 downto 0);
m_axi_rready : out std_logic;
sd_clk_hi : out std_logic;
sd_clk_lo : out std_logic;
sd_cmd_i : in std_logic;
sd_cmd_o : out std_logic;
sd_cmd_oe : out std_logic;
sd_dat_i : in std_logic_vector(3 downto 0);
sd_dat_o : out std_logic_vector(3 downto 0);
sd_dat_oe : out std_logic;
m_axi_awburst : out std_logic_vector(1 downto 0);
m_axi_wdata : out std_logic_vector(127 downto 0);
m_axi_wstrb : out std_logic_vector(15 downto 0);
m_axi_rdata : in std_logic_vector(127 downto 0);
s_axi_wstrb : in std_logic_vector(3 downto 0)
);
end component gSDHC;
---------------------- End COMPONENT Declaration ------------
------------- Begin Cut here for INSTANTIATION Template -----
u_gSDHC : gSDHC
port map (
sd_rst => sd_rst,
sd_base_clk => sd_base_clk,
sd_int => sd_int,
sd_cd_n => sd_cd_n,
sd_wp => sd_wp,
s_axi_awaddr => s_axi_awaddr,
s_axi_aclk => s_axi_aclk,
s_axi_awready => s_axi_awready,
s_axi_awvalid => s_axi_awvalid,
s_axi_wdata => s_axi_wdata,
s_axi_wready => s_axi_wready,
s_axi_wvalid => s_axi_wvalid,
s_axi_bresp => s_axi_bresp,
s_axi_bvalid => s_axi_bvalid,
s_axi_araddr => s_axi_araddr,
s_axi_bready => s_axi_bready,
s_axi_arready => s_axi_arready,
s_axi_arvalid => s_axi_arvalid,
s_axi_rresp => s_axi_rresp,
s_axi_rdata => s_axi_rdata,
s_axi_rvalid => s_axi_rvalid,
s_axi_rready => s_axi_rready,
m_axi_awaddr => m_axi_awaddr,
m_axi_awvalid => m_axi_awvalid,
m_axi_clk => m_axi_clk,
m_axi_awlen => m_axi_awlen,
m_axi_awready => m_axi_awready,
m_axi_awsize => m_axi_awsize,
m_axi_awcache => m_axi_awcache,
m_axi_awlock => m_axi_awlock,
m_axi_awprot => m_axi_awprot,
m_axi_wlast => m_axi_wlast,
m_axi_wvalid => m_axi_wvalid,
m_axi_wready => m_axi_wready,
m_axi_bresp => m_axi_bresp,
m_axi_bvalid => m_axi_bvalid,
m_axi_bready => m_axi_bready,
m_axi_arvalid => m_axi_arvalid,
m_axi_araddr => m_axi_araddr,
m_axi_arlen => m_axi_arlen,
m_axi_arsize => m_axi_arsize,
m_axi_arburst => m_axi_arburst,
m_axi_arprot => m_axi_arprot,
m_axi_arlock => m_axi_arlock,
m_axi_arcache => m_axi_arcache,
m_axi_arready => m_axi_arready,
m_axi_rvalid => m_axi_rvalid,
m_axi_rlast => m_axi_rlast,
m_axi_rresp => m_axi_rresp,
m_axi_rready => m_axi_rready,
sd_clk_hi => sd_clk_hi,
sd_clk_lo => sd_clk_lo,
sd_cmd_i => sd_cmd_i,
sd_cmd_o => sd_cmd_o,
sd_cmd_oe => sd_cmd_oe,
sd_dat_i => sd_dat_i,
sd_dat_o => sd_dat_o,
sd_dat_oe => sd_dat_oe,
m_axi_awburst => m_axi_awburst,
m_axi_wdata => m_axi_wdata,
m_axi_wstrb => m_axi_wstrb,
m_axi_rdata => m_axi_rdata,
s_axi_wstrb => s_axi_wstrb
);
------------------------ End INSTANTIATION Template ---------

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,31 @@
{
"args": [
"-o",
"gSDHC",
"--base_path",
"/projects/SSE/llching/repo/efx_IP_master/efx_IP/efx_hard_soc/fpga/Ti375C529_devkit/ip",
"--vlnv",
{
"vendor": "efinixinc.com",
"library": "memory_controller",
"name": "efx_sd_host_controller",
"version": "6.0"
}
],
"conf": {
"DATA_BUFFER_DEPTH": "512",
"ADMA_DATA_WIDTH": "128"
},
"output": {
"external_script_reference_design": [],
"external_source_source": [
"gSDHC/gSDHC_define.vh",
"gSDHC/gSDHC.v",
"gSDHC/gSDHC_tmpl.v",
"gSDHC/gSDHC_tmpl.vhd"
]
},
"ooc_synthesis": {},
"sw_version": "2025.2.272",
"generated_date": "2025-10-16T09:29:16.536987+00:00"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,61 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2026.1.132
// IP Version: 7.3
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
localparam VERSION = 16;
localparam TXFIFO_EN = 1'b1;
localparam RXFIFO_EN = 1'b1;
localparam TXFIFO_DTH = 4096;
localparam RXFIFO_DTH = 4096;
localparam PHY_INTF_MODE = 0;
localparam AXIS_DW = 8;
localparam RGMII_RXC_EDGE = 1'b1;
localparam RGMII_TXC_DLY = 1'b1;
localparam INTER_PACKET_GAP = 6'd12;
localparam MTU_FRAME_LENGTH = 16'd1518;
localparam MAC_SOURCE_ADDRESS = 48'd0;
localparam ENABLE_BROADCAST_FILTERING = 1'b1;
localparam LOOPBACK_EN = 1'b1;
localparam APBIF = 1'b0;
localparam FAMILY = "TITANIUM";

View File

@@ -0,0 +1,99 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2026.1.132
// IP Version: 7.3
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
gTSE u_gTSE
(
.mac_reset ( mac_reset ),
.proto_reset ( proto_reset ),
.rx_mac_aclk ( rx_mac_aclk ),
.tx_mac_aclk ( tx_mac_aclk ),
.eth_speed ( eth_speed ),
.rx_axis_clk ( rx_axis_clk ),
.rx_axis_mac_tuser ( rx_axis_mac_tuser ),
.rx_axis_mac_tlast ( rx_axis_mac_tlast ),
.rx_axis_mac_tvalid ( rx_axis_mac_tvalid ),
.rx_axis_mac_tready ( rx_axis_mac_tready ),
.tx_axis_clk ( tx_axis_clk ),
.tx_axis_mac_tvalid ( tx_axis_mac_tvalid ),
.tx_axis_mac_tlast ( tx_axis_mac_tlast ),
.tx_axis_mac_tuser ( tx_axis_mac_tuser ),
.tx_axis_mac_tready ( tx_axis_mac_tready ),
.rgmii_txd_HI ( rgmii_txd_HI ),
.rgmii_txd_LO ( rgmii_txd_LO ),
.rgmii_tx_ctl_HI ( rgmii_tx_ctl_HI ),
.rgmii_tx_ctl_LO ( rgmii_tx_ctl_LO ),
.rgmii_txc_HI ( rgmii_txc_HI ),
.rgmii_txc_LO ( rgmii_txc_LO ),
.rgmii_rxd_HI ( rgmii_rxd_HI ),
.rgmii_rxd_LO ( rgmii_rxd_LO ),
.rgmii_rx_ctl_HI ( rgmii_rx_ctl_HI ),
.rgmii_rx_ctl_LO ( rgmii_rx_ctl_LO ),
.rgmii_rxc ( rgmii_rxc ),
.s_axi_aclk ( s_axi_aclk ),
.rx_axis_mac_tdata ( rx_axis_mac_tdata ),
.tx_axis_mac_tdata ( tx_axis_mac_tdata ),
.tx_axis_mac_tstrb ( tx_axis_mac_tstrb ),
.rx_axis_mac_tstrb ( rx_axis_mac_tstrb ),
.MdoEn ( MdoEn ),
.Mdo ( Mdo ),
.Mdi ( Mdi ),
.Mdc ( Mdc ),
.s_axi_araddr ( s_axi_araddr ),
.s_axi_arready ( s_axi_arready ),
.s_axi_arvalid ( s_axi_arvalid ),
.s_axi_awaddr ( s_axi_awaddr ),
.s_axi_awready ( s_axi_awready ),
.s_axi_awvalid ( s_axi_awvalid ),
.s_axi_bready ( s_axi_bready ),
.s_axi_bresp ( s_axi_bresp ),
.s_axi_bvalid ( s_axi_bvalid ),
.s_axi_rdata ( s_axi_rdata ),
.s_axi_rready ( s_axi_rready ),
.s_axi_rresp ( s_axi_rresp ),
.s_axi_rvalid ( s_axi_rvalid ),
.s_axi_wdata ( s_axi_wdata ),
.s_axi_wready ( s_axi_wready ),
.s_axi_wvalid ( s_axi_wvalid )
);

View File

@@ -0,0 +1,153 @@
--------------------------------------------------------------------------------
-- Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
--
-- This document contains proprietary information which is
-- protected by copyright. All rights are reserved. This notice
-- refers to original work by Efinix, Inc. which may be derivitive
-- of other work distributed under license of the authors. In the
-- case of derivative work, nothing in this notice overrides the
-- original author's license agreement. Where applicable, the
-- original license agreement is included in it's original
-- unmodified form immediately below this header.
--
-- WARRANTY DISCLAIMER.
-- THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
-- EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
-- RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
-- INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
-- PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
-- WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
--
-- LIMITATION OF LIABILITY.
-- NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
-- INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
-- MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
-- OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
-- SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
-- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
-- GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
-- MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
-- THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
-- (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
-- BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
-- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-- CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
-- APPLY TO LICENSEE.
--
--------------------------------------------------------------------------------
------------- Begin Cut here for COMPONENT Declaration ------
component gTSE is
port (
mac_reset : in std_logic;
proto_reset : in std_logic;
rx_mac_aclk : out std_logic;
tx_mac_aclk : in std_logic;
eth_speed : out std_logic_vector(2 downto 0);
rx_axis_clk : in std_logic;
rx_axis_mac_tuser : out std_logic;
rx_axis_mac_tlast : out std_logic;
rx_axis_mac_tvalid : out std_logic;
rx_axis_mac_tready : in std_logic;
tx_axis_clk : in std_logic;
tx_axis_mac_tvalid : in std_logic;
tx_axis_mac_tlast : in std_logic;
tx_axis_mac_tuser : in std_logic;
tx_axis_mac_tready : out std_logic;
rgmii_txd_HI : out std_logic_vector(3 downto 0);
rgmii_txd_LO : out std_logic_vector(3 downto 0);
rgmii_tx_ctl_HI : out std_logic;
rgmii_tx_ctl_LO : out std_logic;
rgmii_txc_HI : out std_logic;
rgmii_txc_LO : out std_logic;
rgmii_rxd_HI : in std_logic_vector(3 downto 0);
rgmii_rxd_LO : in std_logic_vector(3 downto 0);
rgmii_rx_ctl_HI : in std_logic;
rgmii_rx_ctl_LO : in std_logic;
rgmii_rxc : in std_logic;
s_axi_aclk : in std_logic;
rx_axis_mac_tdata : out std_logic_vector(7 downto 0);
tx_axis_mac_tdata : in std_logic_vector(7 downto 0);
tx_axis_mac_tstrb : in std_logic_vector(0 to 0);
rx_axis_mac_tstrb : out std_logic_vector(0 to 0);
MdoEn : out std_logic;
Mdo : out std_logic;
Mdi : in std_logic;
Mdc : out std_logic;
s_axi_araddr : in std_logic_vector(9 downto 0);
s_axi_arready : out std_logic;
s_axi_arvalid : in std_logic;
s_axi_awaddr : in std_logic_vector(9 downto 0);
s_axi_awready : out std_logic;
s_axi_awvalid : in std_logic;
s_axi_bready : in std_logic;
s_axi_bresp : out std_logic_vector(1 downto 0);
s_axi_bvalid : out std_logic;
s_axi_rdata : out std_logic_vector(31 downto 0);
s_axi_rready : in std_logic;
s_axi_rresp : out std_logic_vector(1 downto 0);
s_axi_rvalid : out std_logic;
s_axi_wdata : in std_logic_vector(31 downto 0);
s_axi_wready : out std_logic;
s_axi_wvalid : in std_logic
);
end component gTSE;
---------------------- End COMPONENT Declaration ------------
------------- Begin Cut here for INSTANTIATION Template -----
u_gTSE : gTSE
port map (
mac_reset => mac_reset,
proto_reset => proto_reset,
rx_mac_aclk => rx_mac_aclk,
tx_mac_aclk => tx_mac_aclk,
eth_speed => eth_speed,
rx_axis_clk => rx_axis_clk,
rx_axis_mac_tuser => rx_axis_mac_tuser,
rx_axis_mac_tlast => rx_axis_mac_tlast,
rx_axis_mac_tvalid => rx_axis_mac_tvalid,
rx_axis_mac_tready => rx_axis_mac_tready,
tx_axis_clk => tx_axis_clk,
tx_axis_mac_tvalid => tx_axis_mac_tvalid,
tx_axis_mac_tlast => tx_axis_mac_tlast,
tx_axis_mac_tuser => tx_axis_mac_tuser,
tx_axis_mac_tready => tx_axis_mac_tready,
rgmii_txd_HI => rgmii_txd_HI,
rgmii_txd_LO => rgmii_txd_LO,
rgmii_tx_ctl_HI => rgmii_tx_ctl_HI,
rgmii_tx_ctl_LO => rgmii_tx_ctl_LO,
rgmii_txc_HI => rgmii_txc_HI,
rgmii_txc_LO => rgmii_txc_LO,
rgmii_rxd_HI => rgmii_rxd_HI,
rgmii_rxd_LO => rgmii_rxd_LO,
rgmii_rx_ctl_HI => rgmii_rx_ctl_HI,
rgmii_rx_ctl_LO => rgmii_rx_ctl_LO,
rgmii_rxc => rgmii_rxc,
s_axi_aclk => s_axi_aclk,
rx_axis_mac_tdata => rx_axis_mac_tdata,
tx_axis_mac_tdata => tx_axis_mac_tdata,
tx_axis_mac_tstrb => tx_axis_mac_tstrb,
rx_axis_mac_tstrb => rx_axis_mac_tstrb,
MdoEn => MdoEn,
Mdo => Mdo,
Mdi => Mdi,
Mdc => Mdc,
s_axi_araddr => s_axi_araddr,
s_axi_arready => s_axi_arready,
s_axi_arvalid => s_axi_arvalid,
s_axi_awaddr => s_axi_awaddr,
s_axi_awready => s_axi_awready,
s_axi_awvalid => s_axi_awvalid,
s_axi_bready => s_axi_bready,
s_axi_bresp => s_axi_bresp,
s_axi_bvalid => s_axi_bvalid,
s_axi_rdata => s_axi_rdata,
s_axi_rready => s_axi_rready,
s_axi_rresp => s_axi_rresp,
s_axi_rvalid => s_axi_rvalid,
s_axi_wdata => s_axi_wdata,
s_axi_wready => s_axi_wready,
s_axi_wvalid => s_axi_wvalid
);
------------------------ End INSTANTIATION Template ---------

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,46 @@
{
"args": [
"-o",
"gTSE",
"--base_path",
"ip",
"--vlnv",
{
"vendor": "efinixinc.com",
"library": "ethernet",
"name": "efx_tsemac",
"version": "7.3"
}
],
"conf": {
"VERSION": "16",
"TXFIFO_EN": "1'b1",
"RXFIFO_EN": "1'b1",
"TXFIFO_DTH": "4096",
"RXFIFO_DTH": "4096",
"PHY_INTF_MODE": "0",
"AXIS_DW": "8",
"RGMII_RXC_EDGE": "1'b1",
"RGMII_TXC_DLY": "1'b1",
"INTER_PACKET_GAP": "6'd12",
"MTU_FRAME_LENGTH": "16'd1518",
"MAC_SOURCE_ADDRESS": "48'd0",
"ENABLE_BROADCAST_FILTERING": "1'b1",
"LOOPBACK_EN": "1'b1",
"APBIF": "1'b0",
"ONCHIP_PHY": "1'b0"
},
"output": {
"external_testbench_modelsim": [],
"external_source_source": [],
"external_testbench_testbench": [],
"external_testbench_ncsim": [],
"external_testbench_synopsys": [],
"external_testbench_aldec": [],
"external_example_example": [],
"external_example_2": []
},
"ooc_synthesis": {},
"sw_version": "2026.1.132",
"external_path_option": "RELATIVE_PATH"
}

View File

@@ -0,0 +1,2 @@
localparam M_BASE_ADDR = {32'h41000000,32'h40000000,32'h30000000,32'h20000000,32'h11100000,32'h11000000,32'h200,32'h0};
localparam M_ADDR_WIDTH = {32'd20,32'd24,32'd28,32'd28,32'd20,32'd12,32'd8,32'd9};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,53 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2026.1.132
// IP Version: 5.6
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
localparam ARB_MODE = "ROUND_ROBIN_1";
localparam S_PORTS = 1;
localparam DATA_WIDTH = 32;
localparam ADDR_WIDTH = 32;
localparam M_PORTS = 2;
localparam ID_WIDTH = 8;
localparam USER_WIDTH = 3;
localparam PROTOCOL = "AXI4_LITE";

View File

@@ -0,0 +1,97 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2026.1.132
// IP Version: 5.6
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED AS IS AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
gTSE_1to2_switch u_gTSE_1to2_switch
(
.rst_n ( rst_n ),
.clk ( clk ),
.s_axi_awvalid ( s_axi_awvalid ),
.s_axi_awaddr ( s_axi_awaddr ),
.s_axi_awlock ( s_axi_awlock ),
.s_axi_awready ( s_axi_awready ),
.s_axi_arvalid ( s_axi_arvalid ),
.s_axi_araddr ( s_axi_araddr ),
.s_axi_arlock ( s_axi_arlock ),
.s_axi_arready ( s_axi_arready ),
.s_axi_wvalid ( s_axi_wvalid ),
.s_axi_wlast ( s_axi_wlast ),
.s_axi_wid ( s_axi_wid ),
.s_axi_bready ( s_axi_bready ),
.s_axi_bresp ( s_axi_bresp ),
.s_axi_rready ( s_axi_rready ),
.s_axi_bid ( s_axi_bid ),
.s_axi_rid ( s_axi_rid ),
.s_axi_wdata ( s_axi_wdata ),
.s_axi_rdata ( s_axi_rdata ),
.s_axi_rresp ( s_axi_rresp ),
.s_axi_bvalid ( s_axi_bvalid ),
.s_axi_rvalid ( s_axi_rvalid ),
.s_axi_rlast ( s_axi_rlast ),
.s_axi_wstrb ( s_axi_wstrb ),
.m_axi_awvalid ( m_axi_awvalid ),
.m_axi_awaddr ( m_axi_awaddr ),
.m_axi_awlock ( m_axi_awlock ),
.m_axi_awready ( m_axi_awready ),
.m_axi_arvalid ( m_axi_arvalid ),
.m_axi_araddr ( m_axi_araddr ),
.m_axi_arlock ( m_axi_arlock ),
.m_axi_arready ( m_axi_arready ),
.m_axi_wvalid ( m_axi_wvalid ),
.m_axi_wlast ( m_axi_wlast ),
.m_axi_bready ( m_axi_bready ),
.m_axi_bresp ( m_axi_bresp ),
.m_axi_rready ( m_axi_rready ),
.m_axi_bid ( m_axi_bid ),
.m_axi_rid ( m_axi_rid ),
.m_axi_wdata ( m_axi_wdata ),
.m_axi_rdata ( m_axi_rdata ),
.m_axi_rresp ( m_axi_rresp ),
.m_axi_bvalid ( m_axi_bvalid ),
.m_axi_rvalid ( m_axi_rvalid ),
.m_axi_rlast ( m_axi_rlast ),
.m_axi_wstrb ( m_axi_wstrb ),
.m_axi_wready ( m_axi_wready ),
.s_axi_wready ( s_axi_wready )
);

View File

@@ -0,0 +1,149 @@
--------------------------------------------------------------------------------
-- Copyright (C) 2013-2026 Efinix Inc. All rights reserved.
--
-- This document contains proprietary information which is
-- protected by copyright. All rights are reserved. This notice
-- refers to original work by Efinix, Inc. which may be derivitive
-- of other work distributed under license of the authors. In the
-- case of derivative work, nothing in this notice overrides the
-- original author's license agreement. Where applicable, the
-- original license agreement is included in it's original
-- unmodified form immediately below this header.
--
-- WARRANTY DISCLAIMER.
-- THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
-- EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
-- RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
-- INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
-- PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
-- WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
--
-- LIMITATION OF LIABILITY.
-- NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
-- INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
-- MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
-- OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
-- SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
-- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
-- GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
-- MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
-- THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
-- (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
-- BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
-- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-- CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
-- APPLY TO LICENSEE.
--
--------------------------------------------------------------------------------
------------- Begin Cut here for COMPONENT Declaration ------
component gTSE_1to2_switch is
port (
rst_n : in std_logic;
clk : in std_logic;
s_axi_awvalid : in std_logic_vector(0 to 0);
s_axi_awaddr : in std_logic_vector(31 downto 0);
s_axi_awlock : in std_logic_vector(1 downto 0);
s_axi_awready : out std_logic_vector(0 to 0);
s_axi_arvalid : in std_logic_vector(0 to 0);
s_axi_araddr : in std_logic_vector(31 downto 0);
s_axi_arlock : in std_logic_vector(1 downto 0);
s_axi_arready : out std_logic_vector(0 to 0);
s_axi_wvalid : in std_logic_vector(0 to 0);
s_axi_wlast : in std_logic_vector(0 to 0);
s_axi_wid : in std_logic_vector(7 downto 0);
s_axi_bready : in std_logic_vector(0 to 0);
s_axi_bresp : out std_logic_vector(1 downto 0);
s_axi_rready : in std_logic_vector(0 to 0);
s_axi_bid : out std_logic_vector(7 downto 0);
s_axi_rid : out std_logic_vector(7 downto 0);
s_axi_wdata : in std_logic_vector(31 downto 0);
s_axi_rdata : out std_logic_vector(31 downto 0);
s_axi_rresp : out std_logic_vector(1 downto 0);
s_axi_bvalid : out std_logic_vector(0 to 0);
s_axi_rvalid : out std_logic_vector(0 to 0);
s_axi_rlast : out std_logic_vector(0 to 0);
s_axi_wstrb : in std_logic_vector(3 downto 0);
m_axi_awvalid : out std_logic_vector(1 downto 0);
m_axi_awaddr : out std_logic_vector(63 downto 0);
m_axi_awlock : out std_logic_vector(3 downto 0);
m_axi_awready : in std_logic_vector(1 downto 0);
m_axi_arvalid : out std_logic_vector(1 downto 0);
m_axi_araddr : out std_logic_vector(63 downto 0);
m_axi_arlock : out std_logic_vector(3 downto 0);
m_axi_arready : in std_logic_vector(1 downto 0);
m_axi_wvalid : out std_logic_vector(1 downto 0);
m_axi_wlast : out std_logic_vector(1 downto 0);
m_axi_bready : out std_logic_vector(1 downto 0);
m_axi_bresp : in std_logic_vector(3 downto 0);
m_axi_rready : out std_logic_vector(1 downto 0);
m_axi_bid : in std_logic_vector(15 downto 0);
m_axi_rid : in std_logic_vector(15 downto 0);
m_axi_wdata : out std_logic_vector(63 downto 0);
m_axi_rdata : in std_logic_vector(63 downto 0);
m_axi_rresp : in std_logic_vector(3 downto 0);
m_axi_bvalid : in std_logic_vector(1 downto 0);
m_axi_rvalid : in std_logic_vector(1 downto 0);
m_axi_rlast : in std_logic_vector(1 downto 0);
m_axi_wstrb : out std_logic_vector(7 downto 0);
m_axi_wready : in std_logic_vector(1 downto 0);
s_axi_wready : out std_logic_vector(0 to 0)
);
end component gTSE_1to2_switch;
---------------------- End COMPONENT Declaration ------------
------------- Begin Cut here for INSTANTIATION Template -----
u_gTSE_1to2_switch : gTSE_1to2_switch
port map (
rst_n => rst_n,
clk => clk,
s_axi_awvalid => s_axi_awvalid,
s_axi_awaddr => s_axi_awaddr,
s_axi_awlock => s_axi_awlock,
s_axi_awready => s_axi_awready,
s_axi_arvalid => s_axi_arvalid,
s_axi_araddr => s_axi_araddr,
s_axi_arlock => s_axi_arlock,
s_axi_arready => s_axi_arready,
s_axi_wvalid => s_axi_wvalid,
s_axi_wlast => s_axi_wlast,
s_axi_wid => s_axi_wid,
s_axi_bready => s_axi_bready,
s_axi_bresp => s_axi_bresp,
s_axi_rready => s_axi_rready,
s_axi_bid => s_axi_bid,
s_axi_rid => s_axi_rid,
s_axi_wdata => s_axi_wdata,
s_axi_rdata => s_axi_rdata,
s_axi_rresp => s_axi_rresp,
s_axi_bvalid => s_axi_bvalid,
s_axi_rvalid => s_axi_rvalid,
s_axi_rlast => s_axi_rlast,
s_axi_wstrb => s_axi_wstrb,
m_axi_awvalid => m_axi_awvalid,
m_axi_awaddr => m_axi_awaddr,
m_axi_awlock => m_axi_awlock,
m_axi_awready => m_axi_awready,
m_axi_arvalid => m_axi_arvalid,
m_axi_araddr => m_axi_araddr,
m_axi_arlock => m_axi_arlock,
m_axi_arready => m_axi_arready,
m_axi_wvalid => m_axi_wvalid,
m_axi_wlast => m_axi_wlast,
m_axi_bready => m_axi_bready,
m_axi_bresp => m_axi_bresp,
m_axi_rready => m_axi_rready,
m_axi_bid => m_axi_bid,
m_axi_rid => m_axi_rid,
m_axi_wdata => m_axi_wdata,
m_axi_rdata => m_axi_rdata,
m_axi_rresp => m_axi_rresp,
m_axi_bvalid => m_axi_bvalid,
m_axi_rvalid => m_axi_rvalid,
m_axi_rlast => m_axi_rlast,
m_axi_wstrb => m_axi_wstrb,
m_axi_wready => m_axi_wready,
s_axi_wready => s_axi_wready
);
------------------------ End INSTANTIATION Template ---------

Binary file not shown.

View File

@@ -0,0 +1,54 @@
{
"args": [
"-o",
"gTSE_1to2_switch",
"--base_path",
"ip",
"--vlnv",
{
"vendor": "efinixinc.com",
"library": "axi_infra",
"name": "efx_axi_interconnect",
"version": "5.6"
}
],
"conf": {
"ARB_MODE": "\"ROUND_ROBIN_1\"",
"S_PORTS": "1",
"TABLE0_AXI_S0__MIN": "32'd0",
"TABLE0_AXI_S1__MIN": "32'd512",
"TABLE0_AXI_S2__MIN": "32'd285212672",
"TABLE0_AXI_S3__MIN": "32'd286261248",
"TABLE0_AXI_S4__MIN": "32'd536870912",
"TABLE0_AXI_S5__MIN": "32'd805306368",
"TABLE0_AXI_S6__MIN": "32'd1073741824",
"TABLE0_AXI_S7__MIN": "32'd1090519040",
"TABLE0_AXI_S0__MAX": "32'd9",
"TABLE0_AXI_S1__MAX": "32'd8",
"TABLE0_AXI_S2__MAX": "32'd12",
"TABLE0_AXI_S3__MAX": "32'd20",
"TABLE0_AXI_S4__MAX": "32'd28",
"TABLE0_AXI_S5__MAX": "32'd28",
"TABLE0_AXI_S6__MAX": "32'd24",
"TABLE0_AXI_S7__MAX": "32'd20",
"DATA_WIDTH": "32",
"ADDR_WIDTH": "32",
"M_PORTS": "2",
"ID_WIDTH": "8",
"USER_WIDTH": "3",
"PROTOCOL": "\"AXI4_LITE\""
},
"output": {
"external_script_generator": [],
"external_source_source": [],
"external_example_example": [],
"external_testbench_synopsys": [],
"external_testbench_modelsim": [],
"external_testbench_ncsim": [],
"external_testbench_aldec": [],
"external_testbench_testbench": []
},
"ooc_synthesis": {},
"sw_version": "2026.1.132",
"external_path_option": "RELATIVE_PATH"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,66 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2025.2.272
// IP Version: 8.1
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
localparam SYNC_CLK = 0;
localparam SYNC_STAGE = 2;
localparam DATA_WIDTH = 16;
localparam MODE = "FWFT";
localparam OUTPUT_REG = 0;
localparam PROG_FULL_ASSERT = 128;
localparam PROGRAMMABLE_FULL = "NONE";
localparam PROG_FULL_NEGATE = 128;
localparam PROGRAMMABLE_EMPTY = "NONE";
localparam PROG_EMPTY_ASSERT = 2;
localparam PROG_EMPTY_NEGATE = 3;
localparam OPTIONAL_FLAGS = 0;
localparam PIPELINE_REG = 1;
localparam DEPTH = 512;
localparam FAMILY = "TITANIUM";
localparam ASYM_WIDTH_RATIO = 4;
localparam BYPASS_RESET_SYNC = 0;
localparam ENDIANESS = 0;
localparam RAM_STYLE = "block_ram";
localparam OVERFLOW_PROTECT = 0;
localparam UNDERFLOW_PROTECT = 0;

View File

@@ -0,0 +1,60 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2025.2.272
// IP Version: 8.1
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
gTSE_core_fifo_ctrl u_gTSE_core_fifo_ctrl
(
.full_o ( full_o ),
.empty_o ( empty_o ),
.wr_clk_i ( wr_clk_i ),
.rd_clk_i ( rd_clk_i ),
.wr_en_i ( wr_en_i ),
.rd_en_i ( rd_en_i ),
.wdata ( wdata ),
.rst_busy ( rst_busy ),
.rdata ( rdata ),
.a_rst_i ( a_rst_i ),
.wr_datacount_o ( wr_datacount_o ),
.rd_datacount_o ( rd_datacount_o )
);

View File

@@ -0,0 +1,75 @@
--------------------------------------------------------------------------------
-- Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
--
-- This document contains proprietary information which is
-- protected by copyright. All rights are reserved. This notice
-- refers to original work by Efinix, Inc. which may be derivitive
-- of other work distributed under license of the authors. In the
-- case of derivative work, nothing in this notice overrides the
-- original author's license agreement. Where applicable, the
-- original license agreement is included in it's original
-- unmodified form immediately below this header.
--
-- WARRANTY DISCLAIMER.
-- THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
-- EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
-- RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
-- INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
-- PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
-- WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
--
-- LIMITATION OF LIABILITY.
-- NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
-- INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
-- MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
-- OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
-- SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
-- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
-- GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
-- MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
-- THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
-- (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
-- BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
-- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-- CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
-- APPLY TO LICENSEE.
--
--------------------------------------------------------------------------------
------------- Begin Cut here for COMPONENT Declaration ------
component gTSE_core_fifo_ctrl is
port (
full_o : out std_logic;
empty_o : out std_logic;
wr_clk_i : in std_logic;
rd_clk_i : in std_logic;
wr_en_i : in std_logic;
rd_en_i : in std_logic;
wdata : in std_logic_vector(15 downto 0);
rst_busy : out std_logic;
rdata : out std_logic_vector(15 downto 0);
a_rst_i : in std_logic;
wr_datacount_o : out std_logic_vector(9 downto 0);
rd_datacount_o : out std_logic_vector(9 downto 0)
);
end component gTSE_core_fifo_ctrl;
---------------------- End COMPONENT Declaration ------------
------------- Begin Cut here for INSTANTIATION Template -----
u_gTSE_core_fifo_ctrl : gTSE_core_fifo_ctrl
port map (
full_o => full_o,
empty_o => empty_o,
wr_clk_i => wr_clk_i,
rd_clk_i => rd_clk_i,
wr_en_i => wr_en_i,
rd_en_i => rd_en_i,
wdata => wdata,
rst_busy => rst_busy,
rdata => rdata,
a_rst_i => a_rst_i,
wr_datacount_o => wr_datacount_o,
rd_datacount_o => rd_datacount_o
);
------------------------ End INSTANTIATION Template ---------

View File

@@ -0,0 +1,75 @@
{
"args": [
"-o",
"gTSE_core_fifo_ctrl",
"--base_path",
"/projects/SSE/llching/repo/efx_IP_master/efx_IP/efx_hard_soc/fpga/Ti375C529_devkit/ip",
"--vlnv",
{
"vendor": "efinixinc.com",
"library": "memory",
"name": "efx_fifo_top",
"version": "8.1"
}
],
"conf": {
"SYNC_CLK": "0",
"SYNC_STAGE": "2",
"DEPTH_2": "9",
"DATA_WIDTH": "16",
"MODE": "\"FWFT\"",
"OUTPUT_REG": "0",
"PROG_FULL_ASSERT": "128",
"PROGRAMMABLE_FULL": "\"NONE\"",
"PFN_INTERNAL": "127",
"PEA_INTERNAL": "2",
"PEN_INTERNAL": "3",
"PROGRAMMABLE_EMPTY": "\"NONE\"",
"OPTIONAL_FLAGS": "0",
"PIPELINE_REG": "1",
"ASYM_WIDTH_RATIO": "4",
"BYPASS_RESET_SYNC": "0",
"ENDIANESS": "0",
"RAM_STYLE": "\"block_ram\"",
"OVERFLOW_PROTECT": "0",
"UNDERFLOW_PROTECT": "0"
},
"output": {
"external_source_source": [
"gTSE_core_fifo_ctrl/gTSE_core_fifo_ctrl.sv",
"gTSE_core_fifo_ctrl/gTSE_core_fifo_ctrl_define.svh",
"gTSE_core_fifo_ctrl/gTSE_core_fifo_ctrl_tmpl.sv",
"gTSE_core_fifo_ctrl/gTSE_core_fifo_ctrl_tmpl.vhd"
],
"external_example_example": [
"gTSE_core_fifo_ctrl/T20F256_devkit/fifo_demo.peri.xml",
"gTSE_core_fifo_ctrl/T20F256_devkit/fifo_demo.xml",
"gTSE_core_fifo_ctrl/T20F256_devkit/fifo_demo_top.v",
"gTSE_core_fifo_ctrl/T20F256_devkit/fifo_demo_T20.sdc",
"gTSE_core_fifo_ctrl/T20F256_devkit/efx_symmetric_width_fifo_top.sv",
"gTSE_core_fifo_ctrl/T20F256_devkit/gTSE_core_fifo_ctrl.sv",
"gTSE_core_fifo_ctrl/T20F256_devkit/gTSE_core_fifo_ctrl_define.svh"
],
"external_example_2": [
"gTSE_core_fifo_ctrl/Ti60F225_devkit/fifo_demo.peri.xml",
"gTSE_core_fifo_ctrl/Ti60F225_devkit/fifo_demo.xml",
"gTSE_core_fifo_ctrl/Ti60F225_devkit/fifo_demo_top.v",
"gTSE_core_fifo_ctrl/Ti60F225_devkit/fifo_demo_Ti60.sdc",
"gTSE_core_fifo_ctrl/Ti60F225_devkit/efx_symmetric_width_fifo_top.sv",
"gTSE_core_fifo_ctrl/Ti60F225_devkit/gTSE_core_fifo_ctrl.sv",
"gTSE_core_fifo_ctrl/Ti60F225_devkit/gTSE_core_fifo_ctrl_define.svh"
],
"external_testbench_testbench": [
"gTSE_core_fifo_ctrl/Testbench/fifo_tb.sv",
"gTSE_core_fifo_ctrl/Testbench/xrun.sh",
"gTSE_core_fifo_ctrl/Testbench/msim.sh",
"gTSE_core_fifo_ctrl/Testbench/flist",
"gTSE_core_fifo_ctrl/Testbench/modelsim.do",
"gTSE_core_fifo_ctrl/Testbench/gTSE_core_fifo_ctrl.sv",
"gTSE_core_fifo_ctrl/Testbench/gTSE_core_fifo_ctrl_define.svh"
]
},
"ooc_synthesis": {},
"sw_version": "2025.2.272",
"generated_date": "2025-10-16T09:35:38.547531+00:00"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,66 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2025.2.272
// IP Version: 8.1
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
localparam SYNC_CLK = 0;
localparam SYNC_STAGE = 2;
localparam DATA_WIDTH = 13;
localparam MODE = "STANDARD";
localparam OUTPUT_REG = 0;
localparam PROG_FULL_ASSERT = 128;
localparam PROGRAMMABLE_FULL = "NONE";
localparam PROG_FULL_NEGATE = 128;
localparam PROGRAMMABLE_EMPTY = "NONE";
localparam PROG_EMPTY_ASSERT = 2;
localparam PROG_EMPTY_NEGATE = 3;
localparam OPTIONAL_FLAGS = 0;
localparam PIPELINE_REG = 1;
localparam DEPTH = 4096;
localparam FAMILY = "TITANIUM";
localparam ASYM_WIDTH_RATIO = 4;
localparam BYPASS_RESET_SYNC = 0;
localparam ENDIANESS = 0;
localparam RAM_STYLE = "block_ram";
localparam OVERFLOW_PROTECT = 0;
localparam UNDERFLOW_PROTECT = 0;

View File

@@ -0,0 +1,60 @@
// =============================================================================
// Generated by efx_ipmgr
// Version: 2025.2.272
// IP Version: 8.1
// =============================================================================
////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
//
// This document contains proprietary information which is
// protected by copyright. All rights are reserved. This notice
// refers to original work by Efinix, Inc. which may be derivitive
// of other work distributed under license of the authors. In the
// case of derivative work, nothing in this notice overrides the
// original author's license agreement. Where applicable, the
// original license agreement is included in it's original
// unmodified form immediately below this header.
//
// WARRANTY DISCLAIMER.
// THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
// EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
// RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
// INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
// PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
// WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
//
// LIMITATION OF LIABILITY.
// NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
// INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
// MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
// OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
// SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
// CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
// GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
// MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
// THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
// (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
// BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
// NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
// CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
// APPLY TO LICENSEE.
//
////////////////////////////////////////////////////////////////////////////////
gTSE_core_fifo_data u_gTSE_core_fifo_data
(
.full_o ( full_o ),
.empty_o ( empty_o ),
.wr_clk_i ( wr_clk_i ),
.rd_clk_i ( rd_clk_i ),
.wr_en_i ( wr_en_i ),
.rd_en_i ( rd_en_i ),
.wdata ( wdata ),
.rst_busy ( rst_busy ),
.rdata ( rdata ),
.a_rst_i ( a_rst_i ),
.wr_datacount_o ( wr_datacount_o ),
.rd_datacount_o ( rd_datacount_o )
);

View File

@@ -0,0 +1,75 @@
--------------------------------------------------------------------------------
-- Copyright (C) 2013-2025 Efinix Inc. All rights reserved.
--
-- This document contains proprietary information which is
-- protected by copyright. All rights are reserved. This notice
-- refers to original work by Efinix, Inc. which may be derivitive
-- of other work distributed under license of the authors. In the
-- case of derivative work, nothing in this notice overrides the
-- original author's license agreement. Where applicable, the
-- original license agreement is included in it's original
-- unmodified form immediately below this header.
--
-- WARRANTY DISCLAIMER.
-- THE DESIGN, CODE, OR INFORMATION ARE PROVIDED “AS IS” AND
-- EFINIX MAKES NO WARRANTIES, EXPRESS OR IMPLIED WITH
-- RESPECT THERETO, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES,
-- INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR
-- PURPOSE. SOME STATES DO NOT ALLOW EXCLUSIONS OF AN IMPLIED
-- WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO LICENSEE.
--
-- LIMITATION OF LIABILITY.
-- NOTWITHSTANDING ANYTHING TO THE CONTRARY, EXCEPT FOR BODILY
-- INJURY, EFINIX SHALL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT
-- MATTER OF THIS AGREEMENT UNDER TORT, CONTRACT, STRICT LIABILITY
-- OR ANY OTHER LEGAL OR EQUITABLE THEORY (I) FOR ANY INDIRECT,
-- SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY
-- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
-- GOODWILL, DATA OR PROFIT, WORK STOPPAGE, OR COMPUTER FAILURE OR
-- MALFUNCTION, OR IN ANY EVENT (II) FOR ANY AMOUNT IN EXCESS, IN
-- THE AGGREGATE, OF THE FEE PAID BY LICENSEE TO EFINIX HEREUNDER
-- (OR, IF THE FEE HAS BEEN WAIVED, $100), EVEN IF EFINIX SHALL HAVE
-- BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO
-- NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-- CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT
-- APPLY TO LICENSEE.
--
--------------------------------------------------------------------------------
------------- Begin Cut here for COMPONENT Declaration ------
component gTSE_core_fifo_data is
port (
full_o : out std_logic;
empty_o : out std_logic;
wr_clk_i : in std_logic;
rd_clk_i : in std_logic;
wr_en_i : in std_logic;
rd_en_i : in std_logic;
wdata : in std_logic_vector(12 downto 0);
rst_busy : out std_logic;
rdata : out std_logic_vector(12 downto 0);
a_rst_i : in std_logic;
wr_datacount_o : out std_logic_vector(12 downto 0);
rd_datacount_o : out std_logic_vector(12 downto 0)
);
end component gTSE_core_fifo_data;
---------------------- End COMPONENT Declaration ------------
------------- Begin Cut here for INSTANTIATION Template -----
u_gTSE_core_fifo_data : gTSE_core_fifo_data
port map (
full_o => full_o,
empty_o => empty_o,
wr_clk_i => wr_clk_i,
rd_clk_i => rd_clk_i,
wr_en_i => wr_en_i,
rd_en_i => rd_en_i,
wdata => wdata,
rst_busy => rst_busy,
rdata => rdata,
a_rst_i => a_rst_i,
wr_datacount_o => wr_datacount_o,
rd_datacount_o => rd_datacount_o
);
------------------------ End INSTANTIATION Template ---------

View File

@@ -0,0 +1,75 @@
{
"args": [
"-o",
"gTSE_core_fifo_data",
"--base_path",
"/projects/SSE/llching/repo/efx_IP_master/efx_IP/efx_hard_soc/fpga/Ti375C529_devkit/ip",
"--vlnv",
{
"vendor": "efinixinc.com",
"library": "memory",
"name": "efx_fifo_top",
"version": "8.1"
}
],
"conf": {
"SYNC_CLK": "0",
"SYNC_STAGE": "2",
"DEPTH_2": "12",
"DATA_WIDTH": "13",
"MODE": "\"STANDARD\"",
"OUTPUT_REG": "0",
"PROG_FULL_ASSERT": "128",
"PROGRAMMABLE_FULL": "\"NONE\"",
"PFN_INTERNAL": "127",
"PEA_INTERNAL": "2",
"PEN_INTERNAL": "3",
"PROGRAMMABLE_EMPTY": "\"NONE\"",
"OPTIONAL_FLAGS": "0",
"PIPELINE_REG": "1",
"ASYM_WIDTH_RATIO": "4",
"BYPASS_RESET_SYNC": "0",
"ENDIANESS": "0",
"RAM_STYLE": "\"block_ram\"",
"OVERFLOW_PROTECT": "0",
"UNDERFLOW_PROTECT": "0"
},
"output": {
"external_source_source": [
"gTSE_core_fifo_data/gTSE_core_fifo_data.sv",
"gTSE_core_fifo_data/gTSE_core_fifo_data_define.svh",
"gTSE_core_fifo_data/gTSE_core_fifo_data_tmpl.sv",
"gTSE_core_fifo_data/gTSE_core_fifo_data_tmpl.vhd"
],
"external_example_example": [
"gTSE_core_fifo_data/T20F256_devkit/fifo_demo.peri.xml",
"gTSE_core_fifo_data/T20F256_devkit/fifo_demo.xml",
"gTSE_core_fifo_data/T20F256_devkit/fifo_demo_top.v",
"gTSE_core_fifo_data/T20F256_devkit/fifo_demo_T20.sdc",
"gTSE_core_fifo_data/T20F256_devkit/efx_symmetric_width_fifo_top.sv",
"gTSE_core_fifo_data/T20F256_devkit/gTSE_core_fifo_data.sv",
"gTSE_core_fifo_data/T20F256_devkit/gTSE_core_fifo_data_define.svh"
],
"external_example_2": [
"gTSE_core_fifo_data/Ti60F225_devkit/fifo_demo.peri.xml",
"gTSE_core_fifo_data/Ti60F225_devkit/fifo_demo.xml",
"gTSE_core_fifo_data/Ti60F225_devkit/fifo_demo_top.v",
"gTSE_core_fifo_data/Ti60F225_devkit/fifo_demo_Ti60.sdc",
"gTSE_core_fifo_data/Ti60F225_devkit/efx_symmetric_width_fifo_top.sv",
"gTSE_core_fifo_data/Ti60F225_devkit/gTSE_core_fifo_data.sv",
"gTSE_core_fifo_data/Ti60F225_devkit/gTSE_core_fifo_data_define.svh"
],
"external_testbench_testbench": [
"gTSE_core_fifo_data/Testbench/fifo_tb.sv",
"gTSE_core_fifo_data/Testbench/xrun.sh",
"gTSE_core_fifo_data/Testbench/msim.sh",
"gTSE_core_fifo_data/Testbench/flist",
"gTSE_core_fifo_data/Testbench/modelsim.do",
"gTSE_core_fifo_data/Testbench/gTSE_core_fifo_data.sv",
"gTSE_core_fifo_data/Testbench/gTSE_core_fifo_data_define.svh"
]
},
"ooc_synthesis": {},
"sw_version": "2025.2.272",
"generated_date": "2025-10-16T09:35:27.104449+00:00"
}

View File

@@ -0,0 +1,460 @@
`timescale 1ns/1ps
`define IP_MODULE_NAME(name) name
module `IP_MODULE_NAME(MacRxCheckSumChecker) (
input wire io_input_valid,
output reg io_input_ready,
input wire io_input_payload_last,
input wire io_input_payload_fragment_error,
input wire [7:0] io_input_payload_fragment_data,
output reg io_output_valid,
input wire io_output_ready,
output reg io_output_payload_last,
output reg io_output_payload_fragment_error,
output reg [7:0] io_output_payload_fragment_data,
input wire clk,
input wire reset
);
//pragma protect
//pragma protect begin
/* Encryption Envelope */
`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "2021.1"
`pragma protect key_keyowner = "Efinix Inc." , key_keyname = "EFX_K01"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
hitigEdAF1oYulO+rzgvZGPZ/Fd2rMxle3YAk5YXRsXciII9biXM11yT9um6jJ8+
3kzVSR81TQjw7cIj5GSOo/ZUXLyM5C31H4zOLXmkRszAL1LLpcHPwqj/0zmRQxsk
Crgj5D989eHlroC0Prpz3dn6NdNSKLXz0GqV6d9E9r24bdIdCEg7IOxSJrlw18oq
t6GUxKyKSqV8FcH3XaacJ6RYAf6AeAQgEC04VhojxONJQnPlp2dcTeMRl6NhnRqs
sxE1pShW8ERncX+VZUigeFks09GmTIJcmh3dk//EuICiBGVdKtEDU3w0bxIs8mkX
fv849ddnaoUeK2vjnaRMXg==
`pragma protect data_method = "aes256-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 20032 )
`pragma protect data_block
rCwwbt0+cyBbGJvD3UcIfPB8PO9JeIfGCIrZ80ZeBp71sOWySAsRKDi/6hP1ZYPG
EZhL/2cc6+0Zb3hMl6Z7/PADwMV7Kwbd0MTfq9LGUupuU5kHnYl240MwTwe3X3v+
VbiK/mU/HKeVWh8IPvoGri6nCkEwQ3F5uMNdt+5hy4AI5PWbOTy+BpjJS7q2UMsk
rfGa7X/R6da9gXlEZiG/KYDnQP78Gg5nPwRAl7HNOP9dXfFoFjvIrJr02D+yIYhe
Q4SeOeFDoSDUOg8Y2XSYEQpT8Y+jS39V0vOS02OS6ay3Fs1qIsNoI/lb3YjzwCsZ
x7ShWL4wVoBa60xVXwgimM2yPNQrity/qzIuP2rzLvE82kh4abl2s86HdcP6En6B
86QzOBudvzzPytAESeQkv7pkd+n19y+sfbCUXUirdfGoEYa1h+0zBYiw6/YD5HdK
wkVPB/Hk022MocvKkKCVdDM9nAj0jy9VUMd/5N6Nn7/Qyt48R1QaG0gDl1LDEW9/
1RFjf6SnnnKeC1KSWCVN7eXOh6+xQRF0R/X25UGNJnLaJZYsr9r+PFkhBQNq9jAu
9U/ytmbHjyQfbocmAHnjU13hR+U0LhgBrP/OcP0ea6Dm7vwoG/kQItM4qqRghMnZ
oV200CP3cLH3iKkOdtGNXoafaFEmwKY/fp3Yyjd50sjW7f1Kb1rWHBKdKJXm4ynk
83jsmQUCq98UnQFOMEC1h7FSiwnrh1pdC54DYK0mcYRpzlnBKmZhgf2qpKjOLnkB
C9TKTF5vnZzOz/5peD1an32c8EKqjcvkb0peNhnSdUgnQpw48yMYZhEkjXZf5Oq8
+gAbvI5UyEN4fXhvf8oAPuqCeDlr25ij175KNawPnptj4Mnf9wOjTlt9As4ikC1w
AZu+S6mlMVATYdtsUQEhPLUe5W8KjdeO/PVf9UJ4V06a6bJwqyJfXnO0c7oOjNkB
VQtOJt4OTUT+Q8u8fDNqj0/jjKu62VkcowdVZP1eo3OgVajHvJnQlkjsPI/Uzvp/
CmnqNy7+pklXeppCG4ty8N47kTsPkPR1qYUzZfQTVjZK7TH02RXXV9mZwm06LqtV
cQ7qkxLsf++Wkbu/paSRlSLIWB7JKREldmCGuhMLHhQCmda5mP1cYfjjJZLmkMI+
ZUZ78Dil5JKpaZa+PAch8VbcHQfbYWJB93cuTfVt80ooFEt8SbSRj6S+MAhq0UjV
8kNRAHHHSAMYs0x1c6F0x32cR8EkKjXl/MZK/MmQazRpiOnQ/t6SamO6kUyx1g6l
DWMTRdy0/r7NpjrsYMmlHqgjLszqXOFfYWVUNtmLNOAtf0DXG8xHg8t3PSR5NgZP
FvgqD5oAErNyYycAal4SPDe9YqsscCPT/4yJQMOanqD6S75/JdjKw9CCRIyKufjx
CrosQxGmlJn3GKtBZqdo98wMRJEGXHDFdrOU25ncTVHPecH/k39nva88yWPSeYRw
JlR7fMyEsfWWOt24eSb53LbzMxLdRFsmAEOGWsyDBN04h+zSTxZQdmKPhSQCREad
Qo6JP0ejAcsac/7ayhw7eeGXcPVMVzvLxh9z665ZwWqjwNjCVVumbHAgI5/lBvUK
khaYWpqAR9wxgfwHB2Raa2SJLcxvJYTEEF39A9U07mmhBwqf2/LIJXfM06PQaVW9
VdHk3PP9BaponhBdxz4ZHv3P36suPrZ48dCvkhf2QjwlwLJtUD5dcShiptHgbeAV
iQedne0ckbPOgdiBHctbVOK33s06SBlZv+hrfquxn1QnYTdTpcz5nHdc3xHQGjbo
PzM3Uqj0yHAdrsXz2NtI2qP5Oj0qlNAihukPqko9hvREL7oehlYC6l2s1QJPVQpB
+jf+YjpexmT1Mj7N1X6qWkcm3wvzklF81/U2dOwtp5+ZVKl5FEZ97wVCkXwaNrTF
kfmvB6RqQXUxBmAmViAkVtdrRHXylj0BF+G7VoE4h6SHZnIepMvulRp7VBrDDZ9p
/XgkhVFSBPQAze0/SskFn7IxOSYmTQfsEQX2D4N/2Pb9bm6NUCHfDfTY8MfyOSiS
4CK/n1ZNXhRWYdzzg4z64XcS9slfca7L2f4UkRNQWKRvuyQ7kvi04MbXl2zoZNwT
8Mc1961n0uBVxR2uCAntaqmXtDdXH4OfbpMjqYte3XoEqH9JMHC3HApWpS7yt33Y
MNN4aWcC5PnG3p+aReZ2PZcUWeatPQp7BEiU/E7zCRTiFNJGaOABaNbjtHNW6pN/
qfwd23lGCY0exM63gmGfdbEIYfpHvUDVmsagMI6WSrGqS8LE45oii/vsf19mLpgq
KhC3vRXFGrsvAcdNLzFM4jd0BbQwoeVouZwc93rpuj2CTIPn+I7hUqTOWgdYBGS4
TBMjv+o26um4eMi2pB/RCO6A4YlwM17DmIAUBNe/spZdWHhGKQ+vRVWAFkNtmNbg
YpEcmHOA3evpmTzIv3wmBATcghhAHgLMWT/A3OOWhfnggEZcfK9mO1qdxh9V0qNz
dX+VNzs68lgfo1XJHuNoLx1uaiODhBhqSK+bJ8XveTtaapNxCppX0R91y+HIuw2U
CsksgHpzfxO4cP1HTfEWf8DtxXhXkA7DwwsUdog3Q9bSjEn24UkUrjDyedAGYzQD
HYhmr3bUhDeCKPjV4lTuTi52b34kCaNyXW3zaS+PIHqR7kNLdHWg2Cc3DALQDEGd
90wzEMGa0e1HZQ+34W4ynJJrxEzzcDUZuY3lcM/B8nmAh5NgDBt2n/3n6cDou/T3
hitn7dpoHgUnMfwrVJbukUmuVnaHhc7Mj/pf0gcYTsoLMSkswsoVT+m/N7Pdk7uW
2AF3xwKfGDWoxi1CtFQ8sFFj6ub7WA2ZMxHvimCS9BtOHOi6NcBOOr3zzmjyr3K9
09Y6Jcb66imyGl2jORIjsnIp1YKx4WcOuZ/ZLtnRPabXxeKYCU3uEnNCdh+7PSlY
+sIIxEJivJrQ008AzCJhaFivpBLtxVKezPOlFp3zh1xwApLZWK3kw3fZjiEeiqvq
/KIQi5YaeeVInMgB/671juc3AmVN90yU7/hNUqcHlkzWJx1y0RbuyoIRO4WkI4hm
f/bP1XltseWPayIsb3J0Dad4Fb/sdps+U3GcwyVexO7hOG3UWnntkMX2U7o+6VWE
lTWy7dXXtLYZh3+6Y5V2kplxc97dMXbueRQ0oqSKqyK736wB7KoQkIlWFs58eZzM
J9wsGOgORJDk165BZWKC/Z30z+3XyhuS84xude5uzSCNNYexoJyncrHAzvIntp/O
7ghQFTnxNZlYKli0a6hyBscbx41L5tA7hatH4S0Rv0u42fqrMFybRrTescJmYgNs
eCPQ+GuGkAu1RoPhRlTANOZ9FSsELwpN2HkQf9EURUXTAPMlVHaenFb8Hyc3hDEE
+LC2r4HiQFLmJY/9KW0lTdDHcj4p9yuiPDHBaeB0Y25BkZmseFXTnY5jupnTKb14
5ruKXr2/VVeOgvoRTWNalEWZFwgazN6cDbo1d0fVvkW7bD+CY6ro813HlX1pBVSk
TTqhqOmDK9wm9NADXL/ie037ppZ1VkGLAujos/9ZDeDJnlDKzNiO+GVwM0t7qF0Y
m3EWqWSVTEZ7hsEGSe5rU4YWcYLEw4/Fx97PtG4KvKiTw+Pe3Q7+hqQ86T7zZBGg
u1AND3wv/rapCd+BOCxQs1JiplkyR660WpLU3UNBmxGbyJx/q+v69RZCALaa3M16
hYvri/mdmeUmpZ4wNZjcU2yDhsoldMyhfl/22nrfkdoApdDQWr/KZJqTBdhvYPPu
0Cq7LzOBQz3wX38jazEt1Pbt4T8dp0713UdHlFYWIDzUwk4wf37fRknWP2RD17sg
820x8RXzFs6bl7fSYZB3p4Xm9h1xRQJ3zndvfhU/qjd2lQesG4tSNyJu5l3fVjIh
zwsWTs8rBds8lL9qgrC1H4zmsxPN0wynWtG9pX3Svsl30jgggl1TUA3A117m5cyB
ZuSvX/v3+VaibK6Lyb70MFx1d3s5fKbWuYrBwG+2kDjyWoYR8Eqkf/AQXFzEu+jV
MCFBliPI51+xmd7FMp2m2z78m5H05fOyTW0Ci1hvYF/qnZA/BFziKCdTcL2f5qmy
Y68k98LjqWi/XZzdfa94exMPLsKcycCd6dP7T9UiVYXQwiaj7CF5wpLwNsDEKVLJ
EfqHN3nxCUGgcNwAnXaN7oQlyC8ly+T7jKUw9AYkYY+8LZ92AHVoDU3DnKkGGMBW
aT1jVe4DvEH3dXb5riRykb/SsYIzKztIlJp+FCh+CNuGbiQ56dxo/aDy1qE/cPzP
KW1t6T+GMnq0+NWuakfBb+mL30sVaJDHjFhrpZpwzua8I429VPuOTIo2D4J7+dye
fQx55pr9ARa6K4FocsgRkMNHUVZTTlnwX6X9icJ2RgSXnJrAef2GuE5LwhyvcH3H
fBWXQRFmV0Z0XpnitDzMCAAQ+6Yo8WBWrOKCruy1DkIVY20VKhgi3C5sdZfn+NCh
tWZsfhvEJOVBv/cobprvWYMXSp3h/qmRFj4Xa6TbX0CJJJjUsGW7Drt/jcjvyYVx
/0w/LvZPWEll5I3QNdh344B46ptJhdjmNZtMIusrqvb0rfzhwplvA9KrBMxR00Ui
wkbQgvCUcn/9sifoxuFp+9PITwGI+TX+4LSXebC7QyGU3pWl3TeBfBwsA035KXWR
lfRciU7v9GJkE+mtq7hTUR/bx6HInLEDwWTmXXX77RQWnv0smBMN/i1A0xDy1EeX
7kXpxsVfrSVWDASJCkawI1GGklnPPXRUEUajG9fYSJCq830IxBqUfgkVykhY9RA3
dk85asUfyPGtbSZpTCvIllv3f/maMC166ewXPaozuk1n43JAa+M2tGZ2VTNLP+RK
YMy9fawljxZMvIFwOBXlqCBvzKWPdyKmav409tI3nOIzdi1pBdeEYTms/yLnfFZK
0zaYzuwoWRuRiPW763rPfHu4WKyy7UDfjsu1I90ZxeRtkw0F9P8hTcnb0Pt6ir66
SsZyzOfEEOe6IIL2Abw36zQQla+2nikRXSiUWjizwqI2HX17NssczE4o85cBzob0
XcJU7nXbkSakiFf3uyDD1FO53NPCXWNSq3iiSwsXxVVDV/81nrFsBcFdYLPowxXY
UWVa+5ZGm8cbOCujkKa5IRN9sBbqnixU6UslWBK97J5EVeTdq62zZicu6LssJOKF
ePGbZ7aO+Bji3mokDNfJcUdjq/MqjZpNVDvZ9Q0oe0Ijv6LidTY3U96GwrZzhjIA
PTFD4fO4gAOHG8tqoRVOkjPrAYdUQeYFFfCV83RK1yefJZ7xpYn2hP9H+UynUwyK
SmCn5nM5m5W1rRjbbhpjkmXvvLjvLMfgMs6wfsqjt+OdWxwQ/GN2urwNklDeh+Pf
TYU/q5ICTMjyaVkvz5OdoBUmMa7SsSvBCWuUzdZsBz1CNMP3HWSyiixacxlGzsqO
pXeNCxrMeVgm5GGuuDaIOFHl8F3E4q/8U0JvsHlLLZAONv+t1tpEMCNSxDqa9FBJ
AFEHUDMAlKY6PjbIeUErMT0JdleqmSz8tG8ZHZcQUIfSLbRO7zPkFNVnq7mLM4eX
zGRoASp1lYKQJiRN7s78chBmGEO4YEoWI6QfQi8pIeGGLVrUX/K8JMdj3arFd21l
c2s7gr75rAst+eXcvs3frVXa8w/glWiiT8d8N76RsrVwBuanHCIzHZ8qtLsLQ24g
x7WbQqeEil8VwdUAzAl9t2/LxEQl9h9JvirEFQbfhbuVCeGuTwfvsYTotpyU6mO7
WKrrR0a0PCoknA+EF3pzyHW6R3KmnTDkQA3RCGbCDnr76zndZlEPS85QisNw/V9N
M7assfvj5I4Ezm1reMRlA2b8Y1Vi2OkPeRKF7tHsKDJ1m/dMaiOIpqMX5UFdtZz9
aB0ojEk7JkXEzy+X7868Hln6KRPul3loaoo7NiwO51CvUrov6w6FzAeycPREN3Ve
rr2tTGw+p6sYIP1CDrljh/gFNHtsMtFJY6tyKHNLp6urFmk8hEmaQhOWBKXTnm/i
b2uY0sVbrAjmfqxG0XkCF+wQuyQYVaflZuT5UFK/JrknNLEtGIUJfopazbMAlrM9
RqPUQYfrkpanfs8O7B2pK+D44Uv9dDtcuzD3p9kXmoX1kV1tanju6QfRvw8jlXBF
t9TPMQynPPuXAeocbwasgKXY3qadccLtji7mYuQL/4aVeQEsFt++qd9eujon+sC6
ApeWqVFszLO7uEfjobCe7yqxIvbOJluqhrcH6d2g6I1mLcf/BuewEmjdZqd5C0lZ
N2nmrPyMBYMy594MCriMb6FCRwfD4DHDqQ5yP1wk2TRbjwf5sxbvi6o1ATMxBU8Z
RDRKwUheSyupkgiDTDtDa9ub2EhYWs4NWBzyfdBhDvg+fFljWSZXSL5iCPdIGZiJ
AvTtMJc9H9litgFBddEUH53upy087YEzzJRdBbLPrOaFuaCXqncJ6sG57njIizk2
jCUxMbq0VPRTEt/N70Wzo6tOo/aHch9ncRgrvTBEu+eQ2FhePtjBODxKrqH4f22J
Ss/Zd3YbBWEY2BzXvDTZxPNzVTr1WJm+cP/1sqEOgHDVs7gdDVWL6kwOyvv1dlJX
UCZvznqmI4kMCmXUpWRWo3SS+bq0W2bO2FTwuD53YrlBMxU+fY8OXeyDn1kLDeZ7
tanw9RHu5znypy3Ya2g1PvaZ7U8shQAKvVDkITw4RQoYrZb2Nv5Cb33Ky42wRG0V
1JDeRD6FJ0smfk8h1PuudUMxYiCW8naOepGG/4FzGZ2Z2+K4It8lr6F1H/wA4xcE
s+IkE4vX7KQR1LhFORFD08sje1TYu8QOLlKhvXlS5vmG+IXcGwJA8bEKjzK5SH7g
723PyfWCwk92xeZX1IrKS+yuBYiTZHVnlnrGEeHUk8MGGc8yzEFMRDoMjSdAyNal
ye71LK1H1TPhmWYrFrDi9u94jm+qkRyWRUwMBowSIGy2atU1nICcos/U3FAP9cdF
rJ///jwIQbWAhcSm4ZOr3WDlprmCuzMmp4P2DRjYMjIzxfYk61WlsW2OcH9lI+FW
MCqruOnFM6p110JoMQU31a/FjgPcVtHFZZKfajME20wCPqJ44OXpzVJmcVJ7uoOo
ZEcC1gc2O5IgFwTf+cq/MHf2XUQ6htlAs2mH37QWc4QL5Sh1FjvWh8yZKR4ABsHx
6AadEnMrkQ+4M1X5DPSDy2l5Y9OJVW97Zsjgc9S/KPQGlSy4tfnwlkmhb3f9n++o
aHPra/dIhbx+w8bs9mlceVdqr1U0PpiW/sYHw2KtxTZdcky9UhwV9ff3bqGT7tNw
K05HPPHUbc77I2odw2Qx/l0wZH3r0OOCEdNJF+EEcNI6Rdb/uIRfwsCthpjQkx1E
83wAyACLuDNmTPEGdxgwrVRLFr4s8D9dXnv+ZxFzw625pYzzzJQQBMCpCuRMTKF1
g5B8VtPTDWmVWNXJFL+zvyRTnxptjbU8tDBzeh86in1m10qyzlJkMgfBDni0alXY
Gdnjq5o3ci6xtQH62LhuncU5glP46D79Ia68d/KeVq4x6tU8BYGtVipYJ2GjUkZT
iCCCSuygyO1cQ90dh0t4Ii8zUnyfBSLt4LxAKFmveX+bUzzgD81cA6UV8I+hgXjx
uMUwYfYFHqQ1tDeagTkVLh2t7pvZbh/R7mblcIFjuLba7wtYvO+6UD7qMe7U4nWj
MatBpFkxTs8purD54VIgU9jg4eyuo7iiMLn+j5I3wb+z8Z0zvRM8ATlSXC6JwOmw
abafCaj0LHHYUVc4GhcEccdZeeDypNURQ7+bL8jfOGR5jYhg8x2SnRwKNOR+ynFh
rxadOcuxU8Ds4MQeLpf9RD1AVgossAuCmgwpKBA8yAaHH9lqpftrBuUM0sEHbqMM
NU6rdQ3GEVQBeHTuRy43u/7BaDtf2Qa/kOBdKVQ3GJTjT1rzW0/27w7Ibdbmqreq
baOp6cMtoO14mjQkDv6UrgbVlaWduFWrMF4YxYWNQ4lXdm5hKXqQNjFQk6g+xX8L
cMdQuJa/StQi2bf4g4uZtn80dUMtkl4s4gbyWxkOzpuakQdzNd+zR8TCZUDwXkve
63wALzTlvhv2MocL9Kg/5BJydCBDz0uPn5/JDXo8AKYXglGYVzYhs2c8xNPmCmUq
K1gzL7QKXeWH/5EYUH9YwOL9vv3Um+PwTbXZxgitypGmzg28+NgC6GeN5Zziolis
+h5/gjjf5ScQZ4gUVX/TsbsClldrdu40XASJlWm4Ax0YO6QCmX+ReSPnSr2xF51B
QJTiNho6O3zZExWxQwRI6A3DxJkG7gEKqjKC6zGonPVp8y0sG2puLjIMVVc6atZs
4ImAxKr3VcCitDQHFj7RXEAHIMvgeoTf7HPfw9xpgzeESx1KY2J2UjZS/dSSkG9B
8Sn38w5yv1otDtg2Vf/XrtSWuookPozzV7s3XxoPUHxuunVra0mG3DnRKrTurfET
BNuPaHzXgow7FOTYph7iRQMgu6N26WySpLd1wjvwworzRh6DeyoaG55fqScH4ULA
/17FBxaG4yVcFlyAw5r+06Y3oP2z9yR8+UenST6NZAxr9jKiUItFf7jmlJfcTA7N
FvZKY4S5Q5SoAat4Owke4x4zvckk6yW9Whqqmipp3f+IwA5CqlVb0BEL0GB82KpE
yAqpUoOrnYU5Wqm2DZu6N0yNzumnzV/qKTI6DEhzfTrzv5tkqkPeMh2Oy39gBIXI
4qDC8/zWPNIC4RpPbjphusVI4zfzsGwhKLhoSMP+HfKwUdmMie2GkFiqwYCHJj8C
umt3ZTbML34yo/Sc1OCu5ShMWNLH7XqBF6r+3HpakzyXvll48kc0WEafgLPclxI3
q0RXpu+ZXbRTphaXxS4DmoQvu7wQBpwL135S8DD40Ua/Lu3DbSpPzm/l2Jd/fcke
n7AKWX+m0gWkQNvi/rilLRCj1AmdVQWH7roiY77ApQv4JzjFXeD4b9bmXqKNbv7l
Fi2bQ/rVJk9s70vKnr4pyBNbT56QRwTeS2kKdu7ktJv/zIq2LvQqFgAuSXqC0j9Q
Uhg8/rdYldhCxdn9ooOGlYr6Qm7olC0O7t8UP2cCL55xOdCuo6laHR0+fbFhXl4Y
PAk3RdgfID4eYVIvhvkyeua8mtGTTl1XOe5vadNtnPpNUnRh8id98abfqGnYKI29
ibQZhnYPhRxNNgSHNYw4NLOdiW1XFWWfewBJvj/ZEhx/viugb3gSE8tsGvae9BVC
xm7fnJHmXTeDo9tyzNSZsGDrJSL7fq2CLxNp0NyilrZAhdykarnm4aruGJInewWb
NH0FHjRylpxrVzAPdXz0pUwxXSZpuXuGHcXyYOgrfIINrmC3nlw2dnTODuelweGN
UpG1t8b7rBOYH5j0nKOQzYzPrS2DHgI8eA0pJgDkuvHcLiROPodyi4EjO+N2Hx6F
nDuu4sBYyiUnq61SV9KfIjxTXN3rSN0IduTqDtU2VB8XY/dla96AJmuqQnt+S4oE
x08NSWJ1FcyrIfA82sZ+CGnB/Df8yFbj1nRbVvHNf3ssPZ2y5h0sy5fPi4JF4nT9
TPXQfgEITSEjaowB+FiSRHnphVQ7ppEB5Iuz/LyUkGRi6xxSVcFZkcRdMcjrR9dy
fnG2EEpWdjTx8qfa9YfEtcEoskOyQjNTCqKgSQxhbWL9OzwwHUmJKU1755YSH2Kb
Lb5VCVgTjyM1sOFK8kRjGAZhCXevnXC39oMothivNWeK6N1Pq4KmK95O/21MEyRc
PeAfANQXsqaR4Vf+1Q2H16OcT4pD7JIsHsKiXOuRbfJAmZ9UVSXbPuQ97PBdXA3R
QTdJDZceRIqdQsXUg9VoOMKlae8gvDza3CLoS0Ibjz6+29NOT2mwnlm0uR+7iF18
6rmqFeRAHkk7gdGcAZT9sGdqajuLCQ42lqBKyFo5ospnvTauxnG2BKJTuqXN9736
fENjtVs3wS4exrrTCmyWbrgY03jciwTYL8h4EFXvIXl30n+zJlR5CS2pa7x2IC8E
AJzDBkpor1qrUizoxljdzdTY0906/GJRGLlvxdYfaKXFsy9bxY3ixm1D9Ippg2bH
TuScRQs8pgOMdvrlA1ON3Yz8bUxAg4PEaLTTmAUbAMlpqPkRJfAy10ynypS2f53W
W/OuJnJJcbQJ7SApFvCo1D1IYTmJKSVLnhU4FLQD+JhRncBwHq1xk3s8dGrNL8QT
cQ5xpQnoY1tourHS+1AUyR/34Xkh0fPSxzj5A/7nNn3xqiMZNI1qL5s19QiNdKmr
6yOCfQbMQiN5GyY0u37hPj+xHczCVhr0bnfXD5UhqgaMzYPJqsYj8ARljauC28tL
z+H+U8BR5wppRdajU6/T+O8Xu8mtZwIlMVKYou4ncv1mh7EUPaBqCph3qllR6q7T
3egCZru+FKFZbOHsSbGswXCIS3ExUCoUoOKx4H7JzhjAG0XmABznyDQGL+GUXFAW
sDUCG92Dr7MHKMQ/lwCYFq17p3aC9QPQaVrUUoHPZdL1ocpa7gqIz8E24hNuTaXP
8TA6nZBfXUWyhRH1JCcSkUugKLnYT+12Ah6ViztdWb5BtghmJLJ74jw0C9dmgq/I
CZYvW1SeC2bKyCJvkxPGjdjOlEjl76penqUmAYLVbyoFgkqQoReqyjCYjn+Wirbo
m5TK6qxhWme9IsWhMrH2ZFkLs6EqewdjO6WLiQND2l3p70MBem0O1RR2cxV7tiWj
l0wgqThv5Hc+yCyejA1splBPLpnknXH8OWbgIAMq3FbyQDTX8Y7LV1eoKMyl5icg
t9V7EsXfQnzJatvN7oIXmwN2y9MgGmRUVES9+KZZWKqkkTr76iZUGA4/A50+oHpi
07Y73j9ihb7NKZvc+FP+rlLHD0K4VrAKFHeSopbjDauxxtybbMZbjfU7bV/deDaM
EtLnS/UOt8/QIJB+ChR+sxI2h2ACEE3O+XKENX9MdsLmGUJSONqudTOosaKVNFNu
tsG+v5MmNS0gMlav8vC6r/F4IFke4M+TyPu+SPHOKaootRr+1oEPWJIaXEkTek5G
n7zCEPWzOkJaLq0nMLZ989ohFDfqrHw6xsJuwhclSSrPl16coGHLdmnaQwlA9zLD
KgkBqyjFDYf5tc5ZN+KzoZ/9BoNwZlsx/K9xpgIhtrcZ8gYF5M94a/Of4cALa3sH
SNyCniseN8/S5gtC+Pokpx1G8bSzbZ+AubhzNtyri+WU2NWuwCkVrB4jXDUwdIeh
xjxtJ6NaOtDPtCTsdXx75mgRx3NLz9if2OVlXCrxbXiE8uY9T1+MPhYCqsSqIbsf
ipI6rrukDW3uMLrQHVu90EjNN5iSzeentUghWE7AZ3rOTL1PbFyBWHG3346PIu5m
jSxDTVkRWC5Yc+UIkLjhh7LxyBcPnFkDDasTmkT9Kn1Iw5YrH3vYfoeXxNU75Vln
uyIg4We4cwdxfINIC5r9SQ8u4bRVHaG7n4UGENa0nBI51mo236O0Gju4XUy/N28g
a6IdGuLh7X6JIg/+r69n/2DiLNCH/Wp/I5ajYB86M3V1HzTDjGn+AQBt+y05gW+m
SMunVfYgMKjzddzhLGMohL2tz8tRnmSpXp7gYOtFdZgS6SBr3Tw+CwNiM+qLsFg0
Lyso2UEPQBxiIGOuC4a/nEvmH9s1/Z/mfUIIOjxG1aGuIuaEtDvdiQiFgfE1RyvZ
X06Xraaujs1pQlLdEwKjkl8+GY2GiVJVFEW35cJ8YDy9RPLFAcjLSkuq+LIRrWWf
D6HJr+7XqILKQBEJMXBzig4a+uKTPHCpL/u6IWFWTCvZwHS0iC6zeYxYFM5ufpLd
QG44zD1mlKXeuamgV8uhbbGaRkRrgqySDc6wX9GjW/fmcid4PRRklYYyGuMSfmWS
0IPSSUgVzG+Jaiu8DjK6/OwuHFAA8fHrsrbHAfdx/n8woCZhc48mUsVwSBF/FX7F
hJ+x41siKuob0IuJz6gTtx5xERBRyE2l7v00HO86/h8KV2wjcHROVH+oGA+tW5D4
W7vZpFiEhxqRM1Lr7QrWYxFv/9FX20/tgTNbjuqQiNwFdBqm++qZ/JGaly0HUvGq
CVs+G6NY+VFXbkTaPa/HtGQzEJJjaEUitDDxOUEwhfu28YE6PeQxyB840vIjrISf
kgYslgKYiU8RU+qlGO3o9IdfWQu6nvlMwGiq0C64Vc1rDkLzfx54+Nz/Ybg3GYQo
R7mV9HPyFniZFA+tzsu/tJQWWsrXFZ1AvvmwBruimgrxON0ncaVSZ3MimrVCmXYO
/zfo3qKlD22PD9Cx325CyX/XenNJ9ARAKImgciCVfH93rA6V3uaun3/4hqCNsWJo
4VYnknaB2OLhozbP9iTajJz8K5CqBUlAZVSh3jrKv/lHmYiLa29+ZTgv2TicEXVv
7lyEY+3cn2IQU417cUyBsUR7hvFK61wqcxRqF6q3XoMb7Wxs3UeUyKpEP3kAcWkI
das3k1XCu8GFYe5R9lOa2x6bL/WtikpcFHkSWF1ZkAGNCaL+BixXHCh0PFJ+4OLN
9OprvwUXKY81cW88ktBOaUUHZtLJfM/2LCXzyjiOBrrt/J2yC0oM2mwRlPZaUHZb
oUSkISh0Y8nB2BiFQvCNE8MpUl/BrLRSpMwMlrMi5vcqIdz6qj8m+hWM85rHbidK
WtwGnjFXfKFUB0yw6QsCxWkZ915IT45seFx44ERdtnqMq73xmXdR2gadkmXEhpED
VEf1GsQW6BcHnmNiDtAQljYo6Y4oe5qX0hfXVMfzRvlLdDCS64e8JRdYpBOjOxF6
1QO6BJ6Kiqsif5Gne7G7IPegjPO9AdDXQ/jw11WBGlMoII+lgpLwx+7yoK9B0RvF
EyY1rpWHJdeKq1qzIgQbomnQLmgi+FSZXZ3xfWYHpEbctGiBN0gg3nN6R3HPQHk3
B2K39jGOvIPNirKI3uZPXeL6QvEu5VmRCKrDL6zZQlsBGsY3AKkjv8qYIPeY5kzi
cidAL0WF2Tf8eQMzU6GivMgly+Uej0RinDWkEcD7uIh+S+8NsBW8AaQEszIMZGPP
PKiMVNcqgRZeSvwXtXmjyER9cTIb0cUXR8cnZ7tc822WsfIDQBe9bpoY6AdzGGqr
BCrHkyfxf89xfB+avZtC8JV4P/RdQJGaBOcYXG/RMsXaZq13ry7nLtvkJRixT8MY
fW62SW1Sdl9xqebK0+DMZa7RU9bZ1lU+JZKNbNRmjxuP8ZS95vG6MO+Vww9wU7mF
G4QigpQc5Np8dgyFMxmKp7CeV+tD1tsCnZRwg/scH1dWQ1sAYsklNBD43GLWpr3D
UALcEX2KapidMfv1p3Cu0TL+mnscuFrbF1RQSNVo8Z3S0lIfqJGHed6Psau/+yyh
9valARn6ILNmOMhrbkGUC0UQzzlGHjeb7BU7gRHH4S5+t6TpfVATAkmz42W1Kpc5
NqX/23/nTwe5Jg5QSZv3+6GrCAOemV79mlO1eavHWOhSv5hA5FjrM66CC2QKl0qf
r9w06/DXnX/LzWWY5UMoSkvjkhblWSsF7mA45B2mRbwX36+AIae4hGPSWZZBwevA
IvZXObO9AmnFHRgo6jsfFuhFksKlktFTmyQgml89Izl8oE7O0grR4728ZRLH3sIJ
KqE1+0x9xJfGSoL2zNL4j9+6jSxvjeq3/zbqnU+JCWjPaictsVhg22Mej7hAjuG4
T6Hpqp0oKDVD1zNtll9PusFSP0hUeebYNxzSun9/pMNsqFmm2zuyA2SLEFWZlhhi
z1sKXu+lQ4iAbvVjz2qgzzWDqyl+Ri4DmAvR6042BEwUdxFGLEZqIIswAJW/vIDl
kbDKHAsXcNiOJ//eQxDzi0MMamCHwSOytxU4tX2rMlqQHgsVgBVWaoGPu3Tmk6EH
lTsY9MMNJI15kRAgyVtofcvtZ9DMli+QSNYyC5ZxTw1fnxmkXdvS1k/tdz9SyYbA
z8ZDGSfwvHSM5OK8BGeU9yUGjWHZYSnGu7L9c8e7uXGEyzMztBW00miW872oy49U
eFboWpLSUBzA6xZXAkd2Y6rOaRCQULgFLdJ8g4bOFOYIUIQspBNzBUukPOX3ZX/A
6p8cbv657H4ZVvSuapc/Lfmrjv/4vnPsknI6XblpuWXzTqh/zDxTXUIZ0EYCMEr+
R4UQHyPuB+u8A2aDYiUcXbEJM+un+pDyivTo3nhVmT6pacQHa5xjjRNBJut7GR7u
InAKT/pROFRzgzSeqvTOdeLdOUr2VfwCq7fWird4xL0vLA7Fu3AOBbwT6UMWzfNW
RdXAI9/hsr7XLmNGDr33HWiItTsYQ/rRRA6nSunzedLt0ZmokL75Oys4A9J2y/6k
o3NDVyaViW2U3332P1Tx2Et/JyKPnyjuHhDGmSSONMDF3mFJYUF/cwRrxnvLyeEd
iSSQ/j2dMzJCBGgohkEe/xsvw8UNFHXjbw1h3D/SSM0UAWh+spLsc87krSZZLiX7
jPlzNBKsuYLoNW9aXmrXPbNeCfm7Pwj8G69/6FD/Qkom8/iXz15wVuTv6j24Gze0
C3bpR1sel6PzuPRbaOUfOWwGAn+Ne7UGvZhSTu2+O6ugboSzWr2xBHqh3+T0QskL
zXPFh75mFJf9QlpKm2/adgc/h4crp08pOCWzKnSYVK/wRKrXZ3nAF1aMqbO/+LDK
pL0RRs3K41zSDQ+6d1XvOj/BSD2CLLaMBfqvLK7zZ85T+LYALLBQtuMAyujgluwX
6i0qY9xAU+x8aSab64Gpr6cbSTArxkWTwRDjrAtrMhWsN7aGAAhWJbe/3uavocSF
QvbGz8UcAZ3kt+KWpAc9v30g2DviRQZbhPZlLyVNj8MpMeDnSA1zOwkNISrAlmIj
06UbUsdq0zKO3kBuPmGSsF3jZ/Ed02UU2JGN1neXtag04/rxofiF2BTo+g7xAsjx
EJHgZv9bODFAvyIji14T2F0km2rB1avzj0u8UcW+NRMa64cRtcLwP3SdjhUHr+6v
DvOjRDUz1/4ZtYp5Ghs/fyFQFsjY+nCwNzsZofMMexOJIKlweC2Su8ULpeCcueDz
njMNvPwrIxjfYjg05xagKXgM/T7UvwevCXjuS8a10bGVjcWqhnArY+6w0NII6C4F
wpvVQZlgUcownFP5/YyVhgIAd57SCN2SjYa8n0CytgfrzK0w1JF3krtR8vk+REcR
YsuIxGFCjmUH0CJFUwgc4vnqiTZMaK9thVMBe6qLwHJFhbcpxBDkZP00PjVo9nd8
rEFWppvDgwuvGK7p79KrfPEgWPOxSR4rkVNMrUBPbbGByfYzbMwUv+afrunGV0MC
3JvQ6WqyMAKIK8ivhCqW3vx5BSMQTud6BS6LTxLwTDuFMUqQKaqRq8GnJPYLNyzx
BAg10NfaXH6662237GWupi5vl6J3FmyMOq8o6y9MKuMtHTvs9sxg48IjY0g+GjbB
KYNuHYXyIwjfOzZA8c22SwuS40VahX6dnr/BA/P2YpPvttO13bm6GvrPffdST6KI
bYkCV911um5dzkGjWWVw1JtAVJD0K4D9dZQpDLjIoC5xzfBCMk1mUc+HxHM+rWvX
2BAEMv6vcylPJECOnhJAD7bNiKzWlhTHIxEocxOozLE2XfbKL1SNiWtGxSfDhaJ+
qmwWBcLvKZeHxyaY6k7ZpccmTznvZIXJ5zAROcFpQidwHOroykCvH5mWR4mBei/Z
uT5OlGf+S+cLjDjFPyi6ZZUWYGSmpDYqxps10UCqWaQgY5UcjxQ04AJJNOd4hs8M
giDbxsIrNVvydwgcMZczw+NVnH3kjr+1OxkUdIrF7NjCIcbTWKrjGBlZ82JeA9/u
63wvx/aQ+PN/aIftVBV1LKguwy+pyr6QV7ECWPTx9acwjURHJ58ueSMeqXAUi55F
EWAlQ0zUjqOvIRSeR6m3kQ0L+LLoWr/Dhu5agGF6c2mRL7gQ8+0uaPAm0rE7gJ++
xDjJ4Wv3yoWdWlDwFccKvkTIPLuus5/lsxZ8Odl49hTMrR9h6C9yHcgaxmum3FVg
VyXdEVGAnmHucWvvw+GK5UYGp1oJyiJrXY4bD2q2Kf207Yuw7Kis0ZC72ddsmlHG
Xo6Q9s8hxYJ9UW4gmWmi44xwc2UB1bTIe+PDxDxEgjzw8O+/NxsznJ1gcUw1qAFM
PpHLuInBe92YBXwrGhOCMW/ngynVzONhTjVk+edHfDEuvigh3/SpjVqwGaI3AJ3X
62G+iqXddPx1ELE67iIOodxcA06Ahj0z8VpkXX9CqcRw/n3idtK9ISY5MYn9N33D
cnu3LI2HPDSLGs13emAfWsqDZPs4uUnoRfkP+RczvFdw7aVubCtqDZJrusya44Yx
qvkXsW3ZHR+B7LJ0D64kAL6yxRWo4ZmAwNJtIRkakWlKes5GymPpWcgIPRyyPANB
H+N+/brQZIFk9NwTj74OFaiNk5jJdrGHAYB0covo5jNV2D9oz0FL35tUF+RrQ6Q+
8EEQQgk/+24MiAlWQkVPtA/0RN2/GDNC3mzUmxIgrlACklRjNrX1Jk3Z8TeBHGb5
MCqeW6RmrIVH9FBM3tb7vu/54GFMrL4C9skLvfw/ET5yWozACpJedoZSe9vsuvnT
vYj1NhGoi8EKDh2YfUDOYGOJ8p0pvi0gN1Ny/zvjG7yTD6eA+3w2wJQGjV199oVA
cgzBbSMiK3LYmrcDcm4To+YEfLQFXv45hviELOla2HzlAV3qswldZPpJuI//3pZY
j+xPqdkPG+UbraJv6w8QzFLempTCYijyUCIQhEzOXDpSjauOg9o7edswZax+ni5L
zOHXJ4yfkjqXJDBwc5N+ZnD6XLzSCMzCJL4t+PKHrktx+seq+19uHDbAw7wWM7Cg
5nYMdGgeZFlIjWWVdeDBPg9mpxetWWGpse2ArhdhxX4NxdzRF8ksZ5nYKkecHX6a
XpR+wfvv5v7G33ExGUruy0MtlUa+g+bUF+HDiAeJ1BZ3SB8CgKNa87O+VYrBHZMd
YQDmijqHOpKTh3pQVzRvQpYsrPKPcYIm0rwq9EjOf8mGjGHuUYhpn4n++vZJ/Cr0
Qua9UtsAATFx+D5BCgkDZHz/8hZ5M126hCHMo0iksFzKbS5aMoTDyu/1+RkU0b5w
2b/3dRd9Ex2AJyRmVB4aOsLQoRsB745oWDmZnxm1baSdNWdkgmWSOjFqeLh56ogN
xM4+6ogRts+Gs12xDQevVDKIe+bYtvoyJa8QhapUZqFJbF/hBvjDEs322u/JWDpw
pvrwCSWNby7Nc4OEDa3UCnmQX0hF/4v1/z5N2KQyXO/of6MrKO1iC5Xei46Ba+ax
lb7x4nG8p6Rq0UtBrznw/wlK7jkmcnGsK7E4iGSDfsPp32ag+xBagvy4VC9GoZ8g
r4EJibIWGR3xDQKpW1RBjG43RCaWWKaNVWyyxttnvWDEUFoDKhVQqUL0UuQYntwC
cj4nPWKISD6ESdTe8K+nd/1HWzUtLb0JMg0cet6f8NAbalNa5+o/JDzf0RWlsYyx
KG4M9h+5Ew+wAhlQkBviIh4CmIBC5IC+63XUliGo9ssUduLWepK8vG0UPi4gXjEn
Bt1hasZ/4X+hH1TZmKb5ZLjeNM1IpBd2+pa7v3DM7kyyCi45/nE1ZLfu6WfSQ7Yo
BhPxmUYcD7izP1IsdoCM401Us6L4akl9hACS3zz0PqbS8kFFSBC47W1F+/O6MKKt
1VwESsVYI4ipPbHBq5jerCz8xrPTVBLk3cyleqJFX1N3defLvvZA1MHiSBdoaEBv
V5q/1GWtSTnxFeGARmvT+hvVcZOtGKMe2LQ1Ip3jTluXC+nPaJiFZql4V058BAgV
G6zqu+rOSEuG7cEL04WOMujWqVEpbw+d9BKDicxMULqCR3jnqeENC7hnATOGAhA5
i4goCGUD5saxPT60BA5fjCswCy5LqHon5s4tR5Sl/DSbh32XAYjnKe3rlY/LT5tS
v+6NsIFhBW7aSr0T8RXqDT7AwyE1I3cxO1wrqde5N/OPRa/S526c9gYHIbBaTDIy
t9udG7fff3rt2zJjS0izTcOpJt3L+BVOnFuf+QmKv7qQtgLsMQa4iHPOBxgrMUgS
40FOcRh2zSqRS6b7FWNSduvzRptglEqRRhhCLlppg6YBoMXr5+/IepGZwo9vVGGB
1S8FQLLA+eOpup9Mk6u7xmQJplpgOjysQjeydEOWnaAQd4YT/22dqvsWOIa9E9Zi
fMdHu0ELFeOA7b9u2qkZYYBucNbsoS2Jh1dmvFqw8kOBKvDWiRx3PnHywA2PJVZS
kgyZR5zJbHcEzbgqyCYEiwXtBDgzXono+UqW36S3AM4z6E2aOj8ZfjaP94Frzr1g
zJx/EPECgTReWwKQclXLy6SdWLSVbNn3xZE2eg+4HTwceD5+Yne3eAGrXAWo9SMh
iTttBlMxYTWptw+mcF5ZUwnNHW4Eh6ScSiL66OGP7Q4Iqke8rrovBqtcb38w3kFl
xIGjRbTcqvZKlGAgu93LU1jql6uY3zDdAkJrIf7kKVFlBLbXhXMlpYW21y+lvR20
TWhEB1z0X428Brfyqf/WWO1K5VgLfldkULLYUy0ZfKZad2VCjtu9WUJ4WQyND+1x
eqvx2QtZJitU6uyNOJ7x5vqXUWesQKgHC7WyrM6bCq/y8B3QjMrVqUD4hKp1T/V8
SsyEDORv2WEunaUYy8wASCnrGCqq6vsHdJAVBZggNbaPa6HPKecd71qouHM2gdyS
QvLkwblztMDqo+jW9n+SF8NZkcdSSoBKjyNbyYYSJxAq3cJtxJV+Hm8eRiUphwIa
phRM/ZsmMsSlPlN8wV875YubJ7ldmvFZWN06xpfHfd5YV9ZifVwMN3ZnPobp8jrX
DFi45SpmoBWM2Gd34TNa+jMVIlTJ5T4BDaO53pMr4gF+2qu2byPAdaUrs35or3AE
n7MUxwLT9/IdPP4Bj97CBIvIneHkYnO5ZcJ0b2ckur91gbaM/ymGbilwAIVV9L1L
yAZjCwSBbVQx0/pPJqEhI/gxmkx872F3YOk0v3tivATV0atJaL1vOiGbwXAcztjD
DbNBJ1AuKx/8fNo3DNPDQe4bRzAduZLBFewRjaXbArVRBw0botF8zDAlewU7uVuA
pfAV6W6xOXkz5Be7Z3lglIGUMo7GwiFh/vQtBk7uo2yG47FeSP6K+jJWhbn12b6R
eApp5bYU3Ug8efCby5XquHR5FMXonn40xtLQUMBcM1+MwTerVqq4hjYkHZX0RJQu
kg2nQR2tOmhCWiI734cdr8C5vjxBgNeJ6TKLLFuatf2JY4c8gBbjr0D0mHg0fEXZ
dqLpaTntNDabtviXO7BTwnCtrtpLd4x9q1ZAgD4QUuOijXtUE4wp/T67Y1paV6xO
2E9O1Qg1/C5BG1ZuJnT0th/QVP6rJrSevAi56FoGfEA9nxl/2a3M+ZEM2sX+RmTi
Txc6VtCSp8VCOSHhblLSA2FB24mi7HG09/J8w5QBvTFVq7bF4NtJk+iqYG900yFK
p6NNQY5iOgY8URI7LG+ZkC3xBA0zx0MuogL97ZmYgeEbd3WSjO80DoOAEpOA877i
TMg7o0dwEAkhZhQNg7Cu5E0JAR9ojxOc1uHUbev8XoiLky4DBSAY3eHO+1wub5o6
IMf/i85dLwJSODDNP3it6VXv2U4JrVE68UVQjFWF2owGmMLH/65OiAl+y+ft1Ctr
vz11tqPNM3yEOjssghRzK6E9RenYEZ9bhD37DWWqidTh0IlywyDND5zo0OO1S+Db
7JcI3BL9XdPUolzIyu9z4sFydBLYIBUGTPs451pWb/O+bCpyJOsOF1J8uuRSstFM
WDlfAect0BXZ5NJeFmTD6hCT+BF+txHBaJPluV+vnSFW/Fz2snZ/jmYWPShrZ8+v
kupjmQSmg0Y+CBtOKyK8S1Sdd5+v2+ze3+ctwkz55Mu8JcGISOqyjct6v/jCjXrA
tRIYOHAvYzvO4bdky4dcSRr1V+A5zyRSSBnvxZrN/Qp7ewPdKzWoBAlXQ3sVJr+x
PpXhezIOC4n6WlrjCIKtphP1Off7D0+fGFS+LZOeMHs4hLao2cbMI66C1CyXRL9b
3sTX8mjDs/8oe7pUjJwfpijvVgpQE909m4xuDQhkrrn1Oclu8d6qkF62eOk+I9S1
M9y0d5uTWXVoAvtyMg8aqkldje7zlBDYoyoWELXNWeWJl4FWNYgB0rcXSEWblCR+
PSM7rvN7Uxk3zgyFSwM/gwizRGsXveARg/omLbpEhbe6UMOj5xhvKgaBnKUq/Df+
NmT5vWcEvG6kZUOL9blH3K1SEcEt6fjK78kJXv9ZCRL2iiFU9id4geQo04LTULrj
Z5XUpsFY3ZL9fyzEHSdbuIhn+98WdGJQVrC6eKe7KjPtpXWSBmcefULaNEb4M/H/
c3jvPoSiFaHpinPDjLUkcVKPnavj5gc8gcxMBUG52eTqQtrOvn5uZR2f5uT1zWNC
KYTa7xqWBzA9WDUK+sa9O5vZ0SMEiud7ipWcWFaCZwLUYer/db07pVlUBSHcOSnG
QZj/6tXW31m2VfjpXoKZ03sNiqtzPTj0+7UdpwOCBgyV2c1fo90HE4Yz9zRKwy1C
TnrflWuwuuP79lMuhz5tBzamrc0m8ECFuicx1faev4x7sjRo9mVjHuIrZq3GbgTk
r/09j+WzIL/WVTNjZ5nWCGI60gA3EmbLJ9nHoMGvPi9/v/60x/jedfB1uChVk+at
uDF9sLEPdHBLNWhTJx86uFmlHf7nLVn666BjBaCuzVrt+QSuKnsgBZluMxwfzrpD
xMPVglWkPuC2iR47SiHxLDD75zcIaRg+///oXcKEwgPwelbjY3qw/UyABPkrTapT
3dC+N8+0zIInc0xnFXfmtKr0+BMnJttH703ARSTcmuTCr6XdmDq9Oc80h4k79FIs
YWIFdJAXzXE1yNmTJO5HJegPilebEtsACxaiFeEVMyekmtlF/C/+2xA2ZmL9L8Um
1cOru8sjKg04JCzIVSjTzstZ0PDTt5lHZxnnSWRke94YKqciDYgo78fmlIFORnDH
kZ5yzRf/qPIVDAv0EAU6eM47LD1ovDI6npOUwfwGwmPDdFZDGDax0ecwNBE1FY/Y
WNmqh20XBE/7wvpP3IBjGrCO9S8v6z8J41gYhOxjXxYITn/+jbqhkZwqSpRx6QZ9
u41P/4PupcIusDAcrjw/brqKPJ69MxzX4imuYEoY/yvVrBdz2Vi6Pl1YdyoL4XYv
tcU+u7RNAjo5Uj/4KBktUVvMpMEU2uD7ob4s1Hq7i9f3l7xT99oMvr9U9xUmt9TX
rcUhtICXeHqtbDXDBSc2irleLmggS70kxwJqZGQDEE9p8PMuNQRk6Th0P3mhAded
EbZOglquJlOv4zoDatYwycenqvHPxXaSb6QplwSeJSVK6wSthrBOXdWSlangZgEC
IY/jL9r6j3Spyx1WI9KwSkuhh5GDBUb5dY6jr7Cv3azmVPQmQFMpLfalhnqb0utN
mbhuCkBqvwz3EkEjzkYPhZCdccB7ApayS81SlS52dsefJPnLPUzv41nJUWZqzQdK
cSRUDfdjeL9dNidAz2ZFHo3loyJ+TnRQk4LTitJt2SzmfLPYIZpQ641qVQIxMSJQ
YVPsAIlWPEiooeb9cZnk/J0fuqAPOsEtLHOmvBjMKylSZvK99wLuehudvJzuB3Zj
olBp+pH0cRqBQtsLyWE1PX7EGYZOjqIoedZo0v52F/KhrCQKOZm5hJiMVWKfpWQW
Kq04nSYoYlVC8hWSiATMwahHeh6n4NGWyHNf/E8nonRuqSMxPTGeNM1+zhMfzi1y
ZA7VBuhuIIecJo/TjezU5d4Lgyuli1VDFpdv0sXplXApHtLE+GUimP8Xgf6TcXcj
+Oki+5f3MRZf6e8A8k/1sCjgl8RSp1oeYXY99AJC71tpnx3+3GCvsoZqBGwaN8wp
KKikdoAW6FacKdWNWZxYjf+3t1GAO/ZbyEwPupNpfWxNF6Q+W6hGCyndnBO70r06
/blR5paVTlbT3eQrb4vqIDR0xiDXV6pafCI9nJoTT+pwG9lUFMassq8sI9A9i3cN
c+6no55MUDQ8Ig9T8nUIPuGJHmVq/N+T+Mh8lG7wIiNgxoRJoRe35hcM9jPyWtBO
uIyabOFJNB/bfqCTW8W9YPVmpEk++PWjtYQ3vJxsUjalILlp1KSmQiXyXmijZm1p
kY4Lt2pV1lcEwZpqL8Yv5fqIDix49pwMxpzxhhck4mJQmtCp3dS80os2GLppdy4U
MaGEG7eur53wmnDqakrJS0ehozo65r7A9DeEzPPez5IS/yPLa1G5G5d/TYbLbPEw
1P0AShJ6GA/DNeACt1NgRu8Yt8ZUvBwc4R07p7JBWi7NgWAr+BNrYAhCwqSfqCCZ
qFg/VMmn+xn5ZxNcsMYnQXxNkgpFlPfyTXq4RfXoR32yZAV7kUAiiPwoGSlAUUt1
3RE1togMupUaJQfZGqUzDSTQpZFthhg8Tavq4hrKGfKIp9FYzUGsJywvJmj7KgJy
EbKJHwQuhPiT808IqsqJHDAk0FOAIQQyY6ClUT7IcTTY2+10ixS3rdmj4PQvFtch
z3tvoe6brf6T5AeZ3EKGlqxKLXqRx9cbG3iK2SMj0qPORlwcfQnmKZJ03TktuqO7
5KXXtFnqaFRV/WJp6bb+C+NnU0w3J4cJ8GlUVlaNo+H92/6i0AAT2hPXyQLi4WJ0
rIUcJqLagEA9muaabL2Gd5rAm/vpoW/JlF8VbBrdoGXZM/+uQ2952fF2t0zwvxDp
fNuhFvdDm8554go6nwfhBAyfustZl/MsrJkMOIWUBsCb5bnMi/pQoVLyA7HEUjK7
p0QSZbGxf8VENpv80XGEKpvGN6oE+eAEbcYhE4x5IJNjDq03DJUCWvZFM8j3waZ1
ISqGmPjLqOQCKgiK8AD0/11LOhoG+qwsuRgvF1ldO7L4AHwFC73DnXXGtm0yV7Px
VsiZOV3uXYZ84Id0dZ1WUEBFk+LcGlzhBFdhYAWgOe1spqfX30lb62e0e2ZzKpkp
Sus05QxXdbBfalhCrh2Xqgo9Ya8bslOndjCuNfMzLqFnrZ5zW7tOjwJ6ygEL7Mbz
l+zY0wX2xx233TJgTm2TaW+NEu5yVL46FzELo81eD40abl44yq4ibqYwNngPR6mw
4Yw7btAcsiwxg+sOfGkNX2Kdvs/nQ53KLB45/jhj19Kp5WQrBnUYZMr51Wm/zVRn
uNZQcaNSYr97B/G1SkGOlU6nFUwOJkKJyt/3G8emW9SKUVfn/5VPAtT1lyS6ZA5g
O7Jp7GEJSjrPTArNhDVEM3kfBjeUAV0TEla4rydV1+3pjKfuq+iOqp0xx4tbCLAg
DS+xFeBFCWPXN0g7ruICxtL0zijEVaK4Rj6BqsgzXrvrnEWLxmWSRXUt/QLFmwFe
vYvBVHH1npIzVQfs1G1jTUJUFjhs8GygREALCRfsYmCgFD99zvzs+yjvUsO55AuH
ZXXLP/hvaUTuGAtz+Wa5o9MNk6abkUwgpIMjwZmPW+h1jibFMuohXfwbMuBpMefq
6v/7Zp+DJP6w0EnOpJkSlTIOYaEIpt2q8cRYvRoSVvqVKJKyW9WrIPK02PNPy7iw
KZlZIJwXnOskzQuVVBI6tFcuF47YUJZdoDE65AbH8fI8GCrgiOl6AarvjcKIBG9H
CWcvuLCLsjVubO43MrTVQ2ToDVbcKvp299onK/wcSz1hJl9t6swfw0gPWSI5f6bV
5p/R9TKUt9Ln2rGEvVq8PB2iI+DYRQ9Ryy0CSJtGkcjrqz1qsGdtlwTeI/BqDCF0
me5N0jHoaxRoJsylt9njfnD/faPnOi4b1QmnyglDZ3x9FErORWmH5HUMtb8heioS
4hkqHc8XS5crDhv/dzwcJ9qI6Re56f9u8aYTktN5dFep0nDS67Pa+7hmred2fUEs
c1aKci1Y9Df454tGcSjqk0I31+HVn4NoyF7zxWt13/8mv/9ff+QCrbFui4Z9w4zX
8uBRd9n+s2I9nDwP2xRXuNbCnrq1iBvZhgdWpEsq6E2hd1WvYG/u0W1GtbaVTk/S
0hqsZpQnwyojEU/HI+6oRS/Q7RRAvnqtA17wgwIY+hy5J/thbBp1uPp/1FAt1PpR
nfyKIS3lUeTiAoGCjjqfeOFDoDcaFQT1hrMEwXaHkMyzuVC6fcNJ7HmxXo0WCTs1
VjuQ+16brspCpgYK/UQZsqjSNVkoNEre61WRE0s3Wk+1QFqPOmLO8p6CCb4z0jhA
yScsQXFn3E7dlq+keHOKgsRe637ec/r2uAWOpR1zTMnJ7p98YkbhtXn2f2rpXJqy
CGe+okpqrZBUaQIgOxzqrYDMtnfxEURmkzZfUT6+6ctCucmvvc1Hj10UTUzkXD3H
Et6AY+jUi1EMfNCkdBKC4kHEdaBxwryOfFNRfDqexBQpfF4Bn+PC75tC6lcBeORh
NeJ13Si4at5mUweU/Q1EJH9s1YTuHj3EhVVwC6hXWvUtCICa1s5nILU1C9YyPVdG
zo8fJCkKZFGT/N8lEpQGPhCKmUB7lLl42nrkFLuZNv3F3HCVAg9DsWF/pZKiRnEv
EM9NJVb7shic9+km1obDCllMU9nLhyGrMG5xxxAwbi/0MUaAjpuFZ3S6kZE7N/Ec
WyLLqyf1BtyeYR1EWB+6bhGJ5bkn8xWSmIQ4uxYfMUOq7JjHnCCJ0EyfQT5jlwJZ
AeXAK5/szcXntCFQrREdXX1VumeeSTxJMeaApZE2Qli5tDNDIrxZmAT6dGBaQJ3Z
QnWrlHTTUPbgoIWfo5mcTMImpNn3ace3bf9UGNEF8PQLptB827UwpWMG6leQ4Tf4
glKzORAxYX5FcCDnxjikzYyaBWrQzSDx1knVBy2srtbk7G8Q3c+5Z/Q5fXcmhi/9
JTkwp43j6gdrqm3+IeU0yr9KwzZI2gsGYj5mKBwZwbPtbK2H0kug7cqS5jFXne0Y
nu2fskAectEG7FmX3yzSc4+jVQc4CaKSDRVYcnmS5sNlAJAngC+qA4ILBTsODHpI
HI8VqPqvrGxHXMEXIrbGzVaok8dRkYjKo/qW7iXEudyyigp9uwnhgvQ31AQaaZSX
6EOQHs1ikcSTu+M6fkozMUTitLjM+J7qsEKYA01WFfK+ymPSrcPQsldcl6S2sVFa
prY4GQVuJif8qOcXMX4eE6xHClYOtBtStemgfVo3L9FTsG9x4LLSgvolIGjgID8b
xE2FAigQPHq8TWUmGDGmCGsdwiwQPSdYTp+AnbQvq6Pdx3pImDDgFQDZIk07Xj1i
291qLrpLnyxP7ZtwIUZ8qXUB1dkOE9knw5+5QjtoTYdWdln9SpLESShxRABgPFHf
N+VQpb7mH78gOrXu5AVAaRAULOG90rHg+s4LdAfGrDE0KGP2Zj9Fe0+5fg1T+6Dd
8wJbC+X7/TOO0tcXT2Nw7IWIg8yWfG//9qUHj9PnEqMtW/dkhQCi2NT6d0BSXAKF
8GeTC5JOkkqVZ+eqj8brYUNzQu7wk1gkxVaJ3Nj5fkyevmxfu5Lta/NunlpgOI3P
CO7yIPG/IAZ/oJthNmTY67/UEH1w8KN2O7LDc55Op3iBPcqnQyhopGvzLJoF1XaU
tHi2DwEoXURGkGR6MOu7qsVrW/V21cldJ3M95XdiSo3VvvnpGjnwFsS4Z0uVDcxQ
ei3DdH6LA/rbd18e5BreomZQ1ZmjKzisfEyrqxsmOc3IxZyiedXEhujBO+r+MaQP
FHMHF8ii8TRlRwJOoYFF0rE87YSJur5VWzRJ0Jx/1E2ebOIF+gHsJ2k2phY2aWO3
F+jyfZwbTeskaLoZwlU8GIgddpTtEQHm6ZwpWusSlqXi+M8zNgqTHxfq25XQiKIJ
JVQDYJ8wy53EQGDdfV477LKfBLzNeHaEPTps7WyqWzKB5yMiT5oprYHkeckdiRey
+mSBBTsaLfuc9XVtETvoY5iifjFqx6ww6ZymnlWIREkNIuqgduvqkmLf3BvyvBp4
nZ+c3f27zaQFxSGfRlnjoen7hWi7C0sPakUabWriQYkIbNpS8EAWjbUMNFcNXsis
ct/nrqP7dRcOHLzvs6EWj9WXRkeolb16yulMJZLfkPGtTtEmkoWZuaKnkA9HFalQ
inlvBlHEDsNQeB+abTX5b89FNh/gGvloDvLoqpxzlBdQPGsO3Lvb8HcDxTVMODVt
SiEK2IRf01BDldGZiR7PdONTXVDdYRqgig28qyIkxXNgg531lUbrSlfx4LCJ1L7r
sMqrfgbCIlKX6kFy1DdUGiRWgahmrNlU6/WeZqqlFUIliZPLbb3vYaLY0kLzpeev
IMHJp8oA1M2ve2ji4N26J/yhOA6p/P2m+eqHggDZOxdpBnZxEgzblsNpeCkf/DDI
gbMc+hmAmqeTFXzrW9qZzP/MRg4M/KXpCCEhojxV4kaCvmfm7E+HNrxcPbnjkCx0
CR+cBTEv4f7VDkgNMOPrAFPLLha13wZ1S2tJwtT2Ub3wU2CWFIBNyk2IQz3Xzjjq
CAqv6/guzIMhv0ji5/42Ut70sAiYnSuLtjUswBKFIIQ/4lE0Lf4nXuFPkngnD9ZR
vQWiDPAr6jvPkEo2WPWnuTWrRC65yWWGTy4LVRVgRssVff8wF0DvjsGgPUEcjcM5
rbgJO3OLJ7mDTuBU8T2FWf0PomDbDbWw0m4XwEYkuZmz/NrkAl/IAjKyXgcSiJTI
cXUoJH/6AqXMUDxei5HV3aeqYusmciLa+p3r4rHP6JMUP7H7EA7bQuRMohkOhzRc
o3zoREhPGeNDrc1jReZszqIvl3AqojeRytiieHj0avAMPHmX0a+/0rJPfxjg0GY7
1HaTisqxJbDWbV49GlfnQg==
`pragma protect end_protected
//pragma protect end
`undef IP_MODULE_NAME

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,888 @@
`define ETH_1000MBPS 1
module top_soc (
output jtagCtrl_tdi,
input jtagCtrl_tdo,
output jtagCtrl_enable,
output jtagCtrl_capture,
output jtagCtrl_shift,
output jtagCtrl_update,
output jtagCtrl_reset,
input ut_jtagCtrl_tdi,
output ut_jtagCtrl_tdo,
input ut_jtagCtrl_enable,
input ut_jtagCtrl_capture,
input ut_jtagCtrl_shift,
input ut_jtagCtrl_update,
input ut_jtagCtrl_reset,
input io_cfuClk,
input io_cfuReset,
input cpu0_customInstruction_cmd_valid,
output cpu0_customInstruction_cmd_ready,
input [9:0] cpu0_customInstruction_function_id,
input [31:0] cpu0_customInstruction_inputs_0,
input [31:0] cpu0_customInstruction_inputs_1,
output cpu0_customInstruction_rsp_valid,
input cpu0_customInstruction_rsp_ready,
output [31:0] cpu0_customInstruction_outputs_0,
input cpu1_customInstruction_cmd_valid,
output cpu1_customInstruction_cmd_ready,
input [9:0] cpu1_customInstruction_function_id,
input [31:0] cpu1_customInstruction_inputs_0,
input [31:0] cpu1_customInstruction_inputs_1,
output cpu1_customInstruction_rsp_valid,
input cpu1_customInstruction_rsp_ready,
output [31:0] cpu1_customInstruction_outputs_0,
input cpu2_customInstruction_cmd_valid,
output cpu2_customInstruction_cmd_ready,
input [9:0] cpu2_customInstruction_function_id,
input [31:0] cpu2_customInstruction_inputs_0,
input [31:0] cpu2_customInstruction_inputs_1,
output cpu2_customInstruction_rsp_valid,
input cpu2_customInstruction_rsp_ready,
output [31:0] cpu2_customInstruction_outputs_0,
input cpu3_customInstruction_cmd_valid,
output cpu3_customInstruction_cmd_ready,
input [9:0] cpu3_customInstruction_function_id,
input [31:0] cpu3_customInstruction_inputs_0,
input [31:0] cpu3_customInstruction_inputs_1,
output cpu3_customInstruction_rsp_valid,
input cpu3_customInstruction_rsp_ready,
output [31:0] cpu3_customInstruction_outputs_0,
output io_ddrMasters_0_aw_valid,
input io_ddrMasters_0_aw_ready,
output [31:0] io_ddrMasters_0_aw_payload_addr,
output [3:0] io_ddrMasters_0_aw_payload_id,
output [3:0] io_ddrMasters_0_aw_payload_region,
output [7:0] io_ddrMasters_0_aw_payload_len,
output [2:0] io_ddrMasters_0_aw_payload_size,
output [1:0] io_ddrMasters_0_aw_payload_burst,
output io_ddrMasters_0_aw_payload_lock,
output [3:0] io_ddrMasters_0_aw_payload_cache,
output [3:0] io_ddrMasters_0_aw_payload_qos,
output [2:0] io_ddrMasters_0_aw_payload_prot,
output io_ddrMasters_0_aw_payload_allStrb,
output io_ddrMasters_0_w_valid,
input io_ddrMasters_0_w_ready,
output [127:0] io_ddrMasters_0_w_payload_data,
output [15:0] io_ddrMasters_0_w_payload_strb,
output io_ddrMasters_0_w_payload_last,
input io_ddrMasters_0_b_valid,
output io_ddrMasters_0_b_ready,
input [3:0] io_ddrMasters_0_b_payload_id,
input [1:0] io_ddrMasters_0_b_payload_resp,
output io_ddrMasters_0_ar_valid,
input io_ddrMasters_0_ar_ready,
output [31:0] io_ddrMasters_0_ar_payload_addr,
output [3:0] io_ddrMasters_0_ar_payload_id,
output [3:0] io_ddrMasters_0_ar_payload_region,
output [7:0] io_ddrMasters_0_ar_payload_len,
output [2:0] io_ddrMasters_0_ar_payload_size,
output [1:0] io_ddrMasters_0_ar_payload_burst,
output io_ddrMasters_0_ar_payload_lock,
output [3:0] io_ddrMasters_0_ar_payload_cache,
output [3:0] io_ddrMasters_0_ar_payload_qos,
output [2:0] io_ddrMasters_0_ar_payload_prot,
input io_ddrMasters_0_r_valid,
output io_ddrMasters_0_r_ready,
input [127:0] io_ddrMasters_0_r_payload_data,
input [3:0] io_ddrMasters_0_r_payload_id,
input [1:0] io_ddrMasters_0_r_payload_resp,
input io_ddrMasters_0_r_payload_last,
input io_ddrMasters_0_clk,
input io_ddrMasters_0_reset,
output io_ddrMasters_memCheck_pass,
output userInterruptA,
output userInterruptB,
output userInterruptC,
output userInterruptD,
output userInterruptE,
output userInterruptF,
output userInterruptH,
output userInterruptG,
output userInterruptI,
input [3:0] system_gpio_0_io_read,
output [3:0] system_gpio_0_io_write,
output [3:0] system_gpio_0_io_writeEnable,
output system_uart_0_io_txd,
input system_uart_0_io_rxd,
output system_spi_0_io_sclk_write,
output system_spi_0_io_data_0_writeEnable,
input system_spi_0_io_data_0_read,
output system_spi_0_io_data_0_write,
output system_spi_0_io_data_1_writeEnable,
input system_spi_0_io_data_1_read,
output system_spi_0_io_data_1_write,
output system_spi_0_io_data_2_writeEnable,
input system_spi_0_io_data_2_read,
output system_spi_0_io_data_2_write,
output system_spi_0_io_data_3_writeEnable,
input system_spi_0_io_data_3_read,
output system_spi_0_io_data_3_write,
output [3:0] system_spi_0_io_ss,
output system_i2c_0_io_sda_writeEnable,
output system_i2c_0_io_sda_write,
input system_i2c_0_io_sda_read,
output system_i2c_0_io_scl_writeEnable,
output system_i2c_0_io_scl_write,
input system_i2c_0_io_scl_read,
input [31:0] axiA_awaddr,
input [7:0] axiA_awlen,
input [2:0] axiA_awsize,
input [1:0] axiA_awburst,
input axiA_awlock,
input [3:0] axiA_awcache,
input [2:0] axiA_awprot,
input [3:0] axiA_awqos,
input [3:0] axiA_awregion,
input axiA_awvalid,
output axiA_awready,
input [31:0] axiA_wdata,
input [3:0] axiA_wstrb,
input axiA_wvalid,
input axiA_wlast,
output axiA_wready,
output [1:0] axiA_bresp,
output axiA_bvalid,
input axiA_bready,
input [31:0] axiA_araddr,
input [7:0] axiA_arlen,
input [2:0] axiA_arsize,
input [1:0] axiA_arburst,
input axiA_arlock,
input [3:0] axiA_arcache,
input [2:0] axiA_arprot,
input [3:0] axiA_arqos,
input [3:0] axiA_arregion,
input axiA_arvalid,
output axiA_arready,
output [31:0] axiA_rdata,
output [1:0] axiA_rresp,
output axiA_rlast,
output axiA_rvalid,
input axiA_rready,
output axiAInterrupt,
input cfg_done,
output cfg_start,
output cfg_sel,
output cfg_reset,
input io_peripheralClk,
input io_peripheralReset,
output io_asyncReset,
input io_gpio_sw_n,
input pll_peripheral_locked,
input pll_system_locked,
input pll_tse_locked,
// SDHC
input sd_base_clk,
output sd_clk_hi,
output sd_clk_lo,
input sd_cmd_i,
output sd_cmd_o,
output sd_cmd_oe,
input [3:0] sd_dat_i,
output [3:0] sd_dat_o,
output [3:0] sd_dat_oe,
input sd_cd_n,
input sd_wp,
// TSEMAC
input io_tseClk,
// MAC
output [3:0] rgmii_txd_HI,
output [3:0] rgmii_txd_LO,
output rgmii_tx_ctl_HI,
output rgmii_tx_ctl_LO,
output rgmii_txc_HI,
output rgmii_txc_LO,
input [3:0] rgmii_rxd_HI,
input [3:0] rgmii_rxd_LO,
input rgmii_rx_ctl_HI,
input rgmii_rx_ctl_LO,
input mux_clk,
output [1:0] mux_clk_sw,
// PHY
output phy_rst,
input phy_mdi,
output phy_mdo,
output phy_mdo_en,
output phy_mdc,
input rgmii_rxc,
input rgmii_rxc_slow
);
////////////////////////////////////////////////////////////////////////////
localparam PERI_FREQ = 200;
localparam AXIS_DEV = 3;
localparam AXIM_DEV = 2;
localparam SLB = 0;
// SDHC
localparam SDHC = 1;
localparam MSDHC = 0;
// TSEMAC
localparam TSE = 2;
localparam MTSE = 1;
////////////////////////////////////////////////////////////////////////////
// Switch between sdhc and slb
wire [(AXIS_DEV*32)-1:0] gAXIS_m_awaddr;
wire [(AXIS_DEV*8)-1:0] gAXIS_m_awlen;
wire [(AXIS_DEV*3)-1:0] gAXIS_m_awsize;
wire [(AXIS_DEV*2)-1:0] gAXIS_m_awburst;
wire [(AXIS_DEV*2)-1:0] gAXIS_m_awlock;
wire [(AXIS_DEV*4)-1:0] gAXIS_m_awcache;
wire [(AXIS_DEV*4)-1:0] gAXIS_m_awprot;
wire [(AXIS_DEV*4)-1:0] gAXIS_m_awqos;
wire [(AXIS_DEV*4)-1:0] gAXIS_m_awregion;
wire [AXIS_DEV-1:0] gAXIS_m_awvalid;
wire [AXIS_DEV-1:0] gAXIS_m_awready;
wire [(AXIS_DEV*32)-1:0] gAXIS_m_wdata;
wire [(AXIS_DEV*4)-1:0] gAXIS_m_wstrb;
wire [AXIS_DEV-1:0] gAXIS_m_wvalid;
wire [AXIS_DEV-1:0] gAXIS_m_wlast;
wire [AXIS_DEV-1:0] gAXIS_m_wready;
wire [(AXIS_DEV*2)-1:0] gAXIS_m_bresp;
wire [AXIS_DEV-1:0] gAXIS_m_bvalid;
wire [AXIS_DEV-1:0] gAXIS_m_bready;
wire [(AXIS_DEV*32)-1:0] gAXIS_m_araddr;
wire [(AXIS_DEV*8)-1:0] gAXIS_m_arlen;
wire [(AXIS_DEV*3)-1:0] gAXIS_m_arsize;
wire [(AXIS_DEV*2)-1:0] gAXIS_m_arburst;
wire [(AXIS_DEV*2)-1:0] gAXIS_m_arlock;
wire [(AXIS_DEV*4)-1:0] gAXIS_m_arcache;
wire [(AXIS_DEV*4)-1:0] gAXIS_m_arprot;
wire [(AXIS_DEV*4)-1:0] gAXIS_m_arqos;
wire [(AXIS_DEV*4)-1:0] gAXIS_m_arregion;
wire [AXIS_DEV-1:0] gAXIS_m_arvalid;
wire [AXIS_DEV-1:0] gAXIS_m_arready;
wire [(AXIS_DEV*32)-1:0] gAXIS_m_rdata;
wire [(AXIS_DEV*2)-1:0] gAXIS_m_rresp;
wire [AXIS_DEV-1:0] gAXIS_m_rlast;
wire [AXIS_DEV-1:0] gAXIS_m_rvalid;
wire [AXIS_DEV-1:0] gAXIS_m_rready;
// Switch between sdhc and tsemac
wire [(AXIM_DEV*32)-1:0] gAXIM_s_awaddr;
wire [(AXIM_DEV*8)-1:0] gAXIM_s_awlen;
wire [(AXIM_DEV*3)-1:0] gAXIM_s_awsize;
wire [(AXIM_DEV*2)-1:0] gAXIM_s_awburst;
wire [(AXIM_DEV*2)-1:0] gAXIM_s_awlock;
wire [(AXIM_DEV*4)-1:0] gAXIM_s_awcache;
wire [(AXIM_DEV*4)-1:0] gAXIM_s_awprot;
wire [(AXIM_DEV*4)-1:0] gAXIM_s_awqos;
wire [(AXIM_DEV*4)-1:0] gAXIM_s_awregion;
wire [AXIM_DEV-1:0] gAXIM_s_awvalid;
wire [AXIM_DEV-1:0] gAXIM_s_awready;
wire [(AXIM_DEV*128)-1:0] gAXIM_s_wdata;
wire [(AXIM_DEV*16)-1:0] gAXIM_s_wstrb;
wire [AXIM_DEV-1:0] gAXIM_s_wvalid;
wire [AXIM_DEV-1:0] gAXIM_s_wlast;
wire [AXIM_DEV-1:0] gAXIM_s_wready;
wire [(AXIM_DEV*2)-1:0] gAXIM_s_bresp;
wire [AXIM_DEV-1:0] gAXIM_s_bvalid;
wire [AXIM_DEV-1:0] gAXIM_s_bready;
wire [(AXIM_DEV*32)-1:0] gAXIM_s_araddr;
wire [(AXIM_DEV*8)-1:0] gAXIM_s_arlen;
wire [(AXIM_DEV*3)-1:0] gAXIM_s_arsize;
wire [(AXIM_DEV*2)-1:0] gAXIM_s_arburst;
wire [(AXIM_DEV*2)-1:0] gAXIM_s_arlock;
wire [(AXIM_DEV*4)-1:0] gAXIM_s_arcache;
wire [(AXIM_DEV*4)-1:0] gAXIM_s_arprot;
wire [(AXIM_DEV*4)-1:0] gAXIM_s_arqos;
wire [(AXIM_DEV*4)-1:0] gAXIM_s_arregion;
wire [AXIM_DEV-1:0] gAXIM_s_arvalid;
wire [AXIM_DEV-1:0] gAXIM_s_arready;
wire [(AXIM_DEV*128)-1:0] gAXIM_s_rdata;
wire [(AXIM_DEV*2)-1:0] gAXIM_s_rresp;
wire [AXIM_DEV-1:0] gAXIM_s_rlast;
wire [AXIM_DEV-1:0] gAXIM_s_rvalid;
wire [AXIM_DEV-1:0] gAXIM_s_rready;
// SDHC
wire sd_rst;
wire sd_int;
wire sd_dat_oe_i;
// DMA
wire dma_tx_rst;
wire dma_rx_rst;
wire dma_tx_descriptorUpdate;
wire [1:0] dma_interrupts;
wire [31:0] dma_apb3_paddr;
wire dma_apb3_psel;
wire dma_apb3_penable;
wire dma_apb3_pready;
wire dma_apb3_pwrite;
wire [31:0] dma_apb3_pwdata;
wire [31:0] dma_apb3_prdata;
wire dma_apb3_pslverror;
// TSE
wire tse_pll_ok;
wire phy_sw_rst;
wire mac_ext_rst;
wire [2:0] eth_speed;
wire s_eth_tx_tvalid;
wire s_eth_tx_tready;
wire [7:0] s_eth_tx_tdata;
wire [0:0] s_eth_tx_tkeep;
wire [3:0] s_eth_tx_tdest;
wire s_eth_tx_tlast;
wire m_eth_rx_tvalid;
wire m_eth_rx_tready;
wire [7:0] m_eth_rx_tdata;
wire [0:0] m_eth_rx_tkeep;
wire [3:0] m_eth_rx_tdest;
wire m_eth_rx_tlast;
//reset
wire io_asyncReset_soc;
wire watchdog_reset;
gAXIS_1to3_switch u_AXIS_1to3_switch
(
.rst_n ( ~io_peripheralReset ),
.clk ( io_peripheralClk ),
.m_axi_awvalid ( gAXIS_m_awvalid ),
.m_axi_awready ( gAXIS_m_awready ),
.m_axi_awid ( ),
.m_axi_awaddr ( gAXIS_m_awaddr ),
.m_axi_awburst ( gAXIS_m_awburst ),
.m_axi_awlen ( gAXIS_m_awlen ),
.m_axi_awsize ( gAXIS_m_awsize ),
.m_axi_awcache ( gAXIS_m_awcache ),
.m_axi_awqos ( gAXIS_m_awqos ),
.m_axi_awprot ( gAXIS_m_awprot ),
.m_axi_awuser ( ),
.m_axi_awlock ( gAXIS_m_awlock ),
.m_axi_awregion ( gAXIS_m_awregion ),
.m_axi_wvalid ( gAXIS_m_wvalid ),
.m_axi_wready ( gAXIS_m_wready ),
.m_axi_wdata ( gAXIS_m_wdata ),
.m_axi_wstrb ( gAXIS_m_wstrb ),
.m_axi_wlast ( gAXIS_m_wlast ),
.m_axi_wuser ( ),
.m_axi_bready ( gAXIS_m_bready ),
.m_axi_bvalid ( gAXIS_m_bvalid ),
.m_axi_bresp ( gAXIS_m_bresp ),
.m_axi_buser ( {AXIS_DEV{3'h0}} ),
.m_axi_bid ( {AXIS_DEV{8'h0}} ),
.m_axi_arvalid ( gAXIS_m_arvalid ),
.m_axi_arready ( gAXIS_m_arready ),
.m_axi_arid ( ),
.m_axi_araddr ( gAXIS_m_araddr ),
.m_axi_arburst ( gAXIS_m_arburst ),
.m_axi_arlen ( gAXIS_m_arlen ),
.m_axi_arsize ( gAXIS_m_arsize ),
.m_axi_arlock ( gAXIS_m_arlock ),
.m_axi_arprot ( gAXIS_m_arprot ),
.m_axi_arcache ( gAXIS_m_arcache ),
.m_axi_arqos ( gAXIS_m_arqos ),
.m_axi_aruser ( ),
.m_axi_arregion ( gAXIS_m_arregion ),
.m_axi_ruser ( {AXIS_DEV{3'h0}}),
.m_axi_rvalid ( gAXIS_m_rvalid ),
.m_axi_rready ( gAXIS_m_rready ),
.m_axi_rid ( {AXIS_DEV{8'h0}}),
.m_axi_rdata ( gAXIS_m_rdata ),
.m_axi_rresp ( gAXIS_m_rresp ),
.m_axi_rlast ( gAXIS_m_rlast ),
.s_axi_awvalid ( axiA_awvalid ),
.s_axi_awready ( axiA_awready ),
.s_axi_awaddr ( {7'h00, axiA_awaddr[24:0]} ),
.s_axi_awid ( 8'h00 ),
.s_axi_awburst ( axiA_awburst ),
.s_axi_awlen ( axiA_awlen ),
.s_axi_awsize ( axiA_awsize ),
.s_axi_awprot ( {1'b0, axiA_awprot} ),
.s_axi_awlock ( {1'b0, axiA_awlock} ),
.s_axi_awcache ( axiA_awcache ),
.s_axi_awqos ( axiA_awqos ),
.s_axi_awuser ( 3'h0 ),
.s_axi_wvalid ( axiA_wvalid ),
.s_axi_wready ( axiA_wready ),
.s_axi_wid ( 8'h00 ),
.s_axi_wdata ( axiA_wdata ),
.s_axi_wlast ( axiA_wlast ),
.s_axi_wstrb ( axiA_wstrb ),
.s_axi_wuser ( 3'h0 ),
.s_axi_bvalid ( axiA_bvalid ),
.s_axi_bready ( axiA_bready ),
.s_axi_bresp ( axiA_bresp ),
.s_axi_bid ( ),
.s_axi_buser ( ),
.s_axi_arvalid ( axiA_arvalid ),
.s_axi_arready ( axiA_arready ),
.s_axi_araddr ( {7'h00, axiA_araddr[24:0]} ),
.s_axi_arid ( 8'h00 ),
.s_axi_arburst ( axiA_arburst ),
.s_axi_arlen ( axiA_arlen ),
.s_axi_arsize ( axiA_arsize ),
.s_axi_arprot ( { 1'b0, axiA_arprot} ),
.s_axi_arlock ( { 1'b0, axiA_arlock} ),
.s_axi_arcache ( axiA_arcache ),
.s_axi_arqos ( axiA_arqos ),
.s_axi_aruser ( 3'h0 ),
.s_axi_rready ( axiA_rready ),
.s_axi_rvalid ( axiA_rvalid ),
.s_axi_rdata ( axiA_rdata ),
.s_axi_rresp ( axiA_rresp ),
.s_axi_rlast ( axiA_rlast ),
.s_axi_rid ( ),
.s_axi_ruser ( )
);
gAXIM_2to1_switch u_AXIM_2to1_switch
(
.rst_n ( ~io_ddrMasters_0_reset ),
.clk ( io_ddrMasters_0_clk ),
.m_axi_awvalid ( io_ddrMasters_0_aw_valid ),
.m_axi_awready ( io_ddrMasters_0_aw_ready ),
.m_axi_awid ( io_ddrMasters_0_aw_payload_id ),
.m_axi_awaddr ( io_ddrMasters_0_aw_payload_addr ),
.m_axi_awburst ( io_ddrMasters_0_aw_payload_burst ),
.m_axi_awlen ( io_ddrMasters_0_aw_payload_len ),
.m_axi_awsize ( io_ddrMasters_0_aw_payload_size ),
.m_axi_awcache ( io_ddrMasters_0_aw_payload_cache ),
.m_axi_awqos ( io_ddrMasters_0_aw_payload_qos ),
.m_axi_awprot ( io_ddrMasters_0_aw_payload_prot ),
.m_axi_awuser ( ),
.m_axi_awlock ( io_ddrMasters_0_aw_payload_lock ),
.m_axi_awregion ( io_ddrMasters_0_aw_payload_region ),
.m_axi_wvalid ( io_ddrMasters_0_w_valid ),
.m_axi_wready ( io_ddrMasters_0_w_ready ),
.m_axi_wdata ( io_ddrMasters_0_w_payload_data ),
.m_axi_wstrb ( io_ddrMasters_0_w_payload_strb ),
.m_axi_wlast ( io_ddrMasters_0_w_payload_last ),
.m_axi_wuser ( ),
.m_axi_bready ( io_ddrMasters_0_b_ready ),
.m_axi_bvalid ( io_ddrMasters_0_b_valid ),
.m_axi_bresp ( io_ddrMasters_0_b_payload_resp ),
.m_axi_buser ( 3'h0 ),
.m_axi_bid ( {4'h0, io_ddrMasters_0_b_payload_id} ),
.m_axi_arvalid ( io_ddrMasters_0_ar_valid ),
.m_axi_arready ( io_ddrMasters_0_ar_ready ),
.m_axi_arid ( io_ddrMasters_0_ar_payload_id ),
.m_axi_araddr ( io_ddrMasters_0_ar_payload_addr ),
.m_axi_arburst ( io_ddrMasters_0_ar_payload_burst ),
.m_axi_arlen ( io_ddrMasters_0_ar_payload_len ),
.m_axi_arsize ( io_ddrMasters_0_ar_payload_size ),
.m_axi_arlock ( io_ddrMasters_0_ar_payload_lock ),
.m_axi_arprot ( io_ddrMasters_0_ar_payload_prot ),
.m_axi_arcache ( io_ddrMasters_0_ar_payload_cache ),
.m_axi_arqos ( io_ddrMasters_0_ar_payload_qos ),
.m_axi_aruser ( ),
.m_axi_arregion ( io_ddrMasters_0_ar_payload_region ),
.m_axi_ruser ( 3'h0),
.m_axi_rvalid ( io_ddrMasters_0_r_valid ),
.m_axi_rready ( io_ddrMasters_0_r_ready ),
.m_axi_rid ( 8'h0 ),
.m_axi_rdata ( io_ddrMasters_0_r_payload_data ),
.m_axi_rresp ( io_ddrMasters_0_r_payload_resp ),
.m_axi_rlast ( io_ddrMasters_0_r_payload_last ),
.s_axi_awvalid ( gAXIM_s_awvalid ),
.s_axi_awready ( gAXIM_s_awready ),
.s_axi_awaddr ( gAXIM_s_awaddr ),
.s_axi_awid ( {AXIM_DEV{8'h00}} ),
.s_axi_awburst ( gAXIM_s_awburst ),
.s_axi_awlen ( gAXIM_s_awlen ),
.s_axi_awsize ( gAXIM_s_awsize ),
.s_axi_awprot ( gAXIM_s_awprot ),
.s_axi_awlock ( gAXIM_s_awlock ),
.s_axi_awcache ( gAXIM_s_awcache ),
.s_axi_awqos ( gAXIM_s_awqos ),
.s_axi_awuser ( {AXIM_DEV{3'h0}} ),
.s_axi_wvalid ( gAXIM_s_wvalid ),
.s_axi_wready ( gAXIM_s_wready ),
.s_axi_wid ( {AXIM_DEV{8'h00}} ),
.s_axi_wdata ( gAXIM_s_wdata ),
.s_axi_wlast ( gAXIM_s_wlast ),
.s_axi_wstrb ( gAXIM_s_wstrb ),
.s_axi_wuser ( {AXIM_DEV{3'h0}} ),
.s_axi_bvalid ( gAXIM_s_bvalid ),
.s_axi_bready ( gAXIM_s_bready ),
.s_axi_bresp ( gAXIM_s_bresp ),
.s_axi_bid ( ),
.s_axi_buser ( ),
.s_axi_arvalid ( gAXIM_s_arvalid ),
.s_axi_arready ( gAXIM_s_arready ),
.s_axi_araddr ( gAXIM_s_araddr ),
.s_axi_arid ( {AXIM_DEV{8'h00}} ),
.s_axi_arburst ( gAXIM_s_arburst ),
.s_axi_arlen ( gAXIM_s_arlen ),
.s_axi_arsize ( gAXIM_s_arsize ),
.s_axi_arprot ( gAXIM_s_axiA_arprot ),
.s_axi_arlock ( gAXIM_s_axiA_arlock ),
.s_axi_arcache ( gAXIM_s_arcache ),
.s_axi_arqos ( gAXIM_s_arqos ),
.s_axi_aruser ( {AXIM_DEV{3'h0}} ),
.s_axi_rready ( gAXIM_s_rready ),
.s_axi_rvalid ( gAXIM_s_rvalid ),
.s_axi_rdata ( gAXIM_s_rdata ),
.s_axi_rresp ( gAXIM_s_rresp ),
.s_axi_rlast ( gAXIM_s_rlast ),
.s_axi_rid ( ),
.s_axi_ruser ( )
);
assign sd_rst = io_peripheralReset;
assign gAXIS_m_rlast[SDHC*1 +: 1] = 1'b1;
assign sd_dat_oe = {4{sd_dat_oe_i}};
assign userInterruptI = sd_int;
gSDHC u_gSDHC
(
.sd_rst ( sd_rst ),
.sd_base_clk ( sd_base_clk ),
.sd_int ( sd_int ),
.sd_cd_n ( sd_cd_n ),
.sd_wp ( sd_wp ),
.s_axi_aclk ( io_peripheralClk ),
.s_axi_awaddr ( gAXIS_m_awaddr[SDHC*32 +: 32] ),
.s_axi_awready ( gAXIS_m_awready[SDHC*1 +: 1] ),
.s_axi_awvalid ( gAXIS_m_awvalid[SDHC*1 +: 1] ),
.s_axi_wstrb ( gAXIS_m_wstrb[SDHC*4 +: 4]),
.s_axi_wdata ( gAXIS_m_wdata[SDHC*32 +: 32] ),
.s_axi_wready ( gAXIS_m_wready[SDHC*1 +: 1] ),
.s_axi_wvalid ( gAXIS_m_wvalid[SDHC*1 +: 1] ),
.s_axi_bresp ( gAXIS_m_bresp[SDHC*2 +: 2] ),
.s_axi_bvalid ( gAXIS_m_bvalid[SDHC*1 +: 1] ),
.s_axi_araddr ( gAXIS_m_araddr[SDHC*32 +: 32] ),
.s_axi_bready ( gAXIS_m_bready[SDHC*1 +: 1] ),
.s_axi_arready ( gAXIS_m_arready[SDHC*1 +: 1] ),
.s_axi_arvalid ( gAXIS_m_arvalid[SDHC*1 +: 1] ),
.s_axi_rresp ( gAXIS_m_rresp[SDHC*2 +: 2] ),
.s_axi_rdata ( gAXIS_m_rdata[SDHC*32 +: 32]),
.s_axi_rvalid ( gAXIS_m_rvalid[SDHC*1 +: 1] ),
.s_axi_rready ( gAXIS_m_rready[SDHC*1 +: 1] ),
.m_axi_clk ( io_ddrMasters_0_clk ),
.m_axi_awaddr ( gAXIM_s_awaddr[MSDHC*32 +: 32] ),
.m_axi_awvalid ( gAXIM_s_awvalid[MSDHC*1 +: 1] ),
.m_axi_awlen ( gAXIM_s_awlen[MSDHC*8 +: 8] ),
.m_axi_awready ( gAXIM_s_awready[MSDHC*1 +: 1] ),
.m_axi_awburst ( gAXIM_s_awburst[MSDHC*2 +: 2] ),
.m_axi_awsize ( gAXIM_s_awsize[MSDHC*3 +: 3] ),
.m_axi_awcache ( gAXIM_s_awcache[MSDHC*4 +: 4] ),
.m_axi_awlock ( gAXIM_s_awlock[MSDHC*2 +: 2] ),
.m_axi_awprot ( gAXIM_s_awprot[MSDHC*4 +: 4] ),
.m_axi_wdata ( gAXIM_s_wdata[MSDHC*128 +: 128] ),
.m_axi_wstrb ( gAXIM_s_wstrb[MSDHC*16 +: 16] ),
.m_axi_wlast ( gAXIM_s_wlast[MSDHC*1 +: 1] ),
.m_axi_wvalid ( gAXIM_s_wvalid[MSDHC*1 +: 1] ),
.m_axi_wready ( gAXIM_s_wready[MSDHC*1 +:1] ),
.m_axi_bresp ( gAXIM_s_bresp[MSDHC*2 +: 2] ),
.m_axi_bvalid ( gAXIM_s_bvalid[MSDHC*1 +: 1] ),
.m_axi_bready ( gAXIM_s_bready[MSDHC*1 +: 1] ),
.m_axi_arvalid ( gAXIM_s_arvalid[MSDHC*1 +: 1] ),
.m_axi_araddr ( gAXIM_s_araddr[MSDHC*32 +: 32] ),
.m_axi_arlen ( gAXIM_s_arlen[MSDHC*8 +: 8] ),
.m_axi_arsize ( gAXIM_s_arsize[MSDHC*3 +: 3] ),
.m_axi_arburst ( gAXIM_s_arburst[MSDHC*2 +: 2] ),
.m_axi_arprot ( gAXIM_s_arprot[MSDHC*4 +: 4] ),
.m_axi_arlock ( gAXIM_s_arlock[MSDHC*2 +: 2] ),
.m_axi_arcache ( gAXIM_s_arcache[MSDHC*4 +: 4] ),
.m_axi_arready ( gAXIM_s_arready[MSDHC*1 +: 1] ),
.m_axi_rvalid ( gAXIM_s_rvalid[MSDHC*1 +: 1] ),
.m_axi_rdata ( gAXIM_s_rdata[MSDHC*128 +: 128] ),
.m_axi_rlast ( gAXIM_s_rlast[MSDHC*1 +: 1] ),
.m_axi_rresp ( gAXIM_s_rresp[MSDHC*2 +: 2] ),
.m_axi_rready ( gAXIM_s_rready[MSDHC*1 +: 1] ),
.sd_clk_hi ( sd_clk_hi ),
.sd_clk_lo ( sd_clk_lo ),
.sd_cmd_i ( sd_cmd_i ),
.sd_cmd_o ( sd_cmd_o ),
.sd_cmd_oe ( sd_cmd_oe ),
.sd_dat_i ( sd_dat_i ),
.sd_dat_o ( sd_dat_o ),
.sd_dat_oe ( sd_dat_oe_i )
);
assign m_eth_rx_tdest = 4'h0;
assign phy_rst = phy_sw_rst;
assign tse_pll_ok = pll_tse_locked & pll_peripheral_locked;
tseCore u_tseCore (
.io_peripheralClk ( io_peripheralClk ),
.io_peripheralReset ( io_peripheralReset ),
.io_tseClk ( io_tseClk ),
.pll_locked ( tse_pll_ok ),
.phy_sw_rst ( phy_sw_rst ),
.mac_ext_rst ( mac_ext_rst ),
.dma_rx_rst ( dma_rx_rst ),
.dma_tx_rst ( dma_tx_rst ),
.dma_tx_descriptorUpdate ( dma_tx_descriptorUpdate ),
.dma_interrupts ( dma_interrupts ),
.eth_speed ( eth_speed ),
.rgmii_txd_HI ( rgmii_txd_HI ),
.rgmii_txd_LO ( rgmii_txd_LO ),
.rgmii_tx_ctl_HI ( rgmii_tx_ctl_HI ),
.rgmii_tx_ctl_LO ( rgmii_tx_ctl_LO ),
.rgmii_txc_HI ( rgmii_txc_HI ),
.rgmii_txc_LO ( rgmii_txc_LO ),
.rgmii_rxd_HI ( rgmii_rxd_HI ),
.rgmii_rxd_LO ( rgmii_rxd_LO ),
.rgmii_rx_ctl_HI ( rgmii_rx_ctl_HI ),
.rgmii_rx_ctl_LO ( rgmii_rx_ctl_LO ),
`ifdef ETH_1000MBPS
.rgmii_rxc ( rgmii_rxc ),
`else
.rgmii_rxc ( rgmii_rxc_slow ),
`endif
.phy_mdi ( phy_mdi ),
.phy_mdo ( phy_mdo ),
.phy_mdo_en ( phy_mdo_en ),
.phy_mdc ( phy_mdc ),
.s_axi_awaddr ( gAXIS_m_awaddr[TSE*32 +: 32] ),
.s_axi_awvalid ( gAXIS_m_awvalid[TSE*1 +: 1] ),
.s_axi_awready ( gAXIS_m_awready[TSE*1 +: 1] ),
.s_axi_wdata ( gAXIS_m_wdata[TSE*32 +: 32] ),
.s_axi_wstrb ( gAXIS_m_wstrb[TSE*4 +: 4] ),
.s_axi_wlast ( gAXIS_m_wlast[TSE*1 +: 1] ),
.s_axi_wvalid ( gAXIS_m_wvalid[TSE*1 +: 1] ),
.s_axi_wready ( gAXIS_m_wready[TSE*1 +: 1] ),
.s_axi_bresp ( gAXIS_m_bresp[TSE*2 +: 2] ),
.s_axi_bvalid ( gAXIS_m_bvalid[TSE*1 +: 1] ),
.s_axi_bready ( gAXIS_m_bready[TSE*1 +: 1] ),
.s_axi_araddr ( gAXIS_m_araddr[TSE*32 +: 32] ),
.s_axi_arvalid ( gAXIS_m_arvalid[TSE*1 +: 1] ),
.s_axi_arready ( gAXIS_m_arready[TSE*1 +: 1] ),
.s_axi_rresp ( gAXIS_m_rresp[TSE*2 +: 2] ),
.s_axi_rdata ( gAXIS_m_rdata[TSE*32 +: 32] ),
.s_axi_rlast ( gAXIS_m_rlast[TSE*1 +: 1] ),
.s_axi_rvalid ( gAXIS_m_rvalid[TSE*1 +: 1] ),
.s_axi_rready ( gAXIS_m_rready[TSE*1 +: 1] ),
.s_eth_tx_tvalid ( s_eth_tx_tvalid ),
.s_eth_tx_tready ( s_eth_tx_tready ),
.s_eth_tx_tdata ( s_eth_tx_tdata ),
.s_eth_tx_tkeep ( s_eth_tx_tkeep ),
.s_eth_tx_tdest ( s_eth_tx_tdest ),
.s_eth_tx_tlast ( s_eth_tx_tlast ),
.m_eth_rx_tvalid ( m_eth_rx_tvalid ),
.m_eth_rx_tready ( m_eth_rx_tready ),
.m_eth_rx_tdata ( m_eth_rx_tdata ),
.m_eth_rx_tstrb ( m_eth_rx_tstrb ),
.m_eth_rx_tlast ( m_eth_rx_tlast )
);
assign userInterruptG = dma_interrupts[0];
assign userInterruptH = dma_interrupts[1];
gDMA u_gDMA (
.clk ( io_ddrMasters_0_clk ),
.reset ( io_ddrMasters_0_reset ),
.ctrl_clk ( io_peripheralClk ),
.ctrl_reset ( io_peripheralReset ),
.ctrl_PADDR ( dma_apb3_paddr ),
.ctrl_PREADY ( dma_apb3_pready ),
.ctrl_PENABLE ( dma_apb3_penable ),
.ctrl_PSEL ( dma_apb3_psel ),
.ctrl_PWRITE ( dma_apb3_pwrite ),
.ctrl_PWDATA ( dma_apb3_pwdata ),
.ctrl_PRDATA ( dma_apb3_prdata ),
.ctrl_PSLVERROR ( dma_apb3_pslverror ),
.ctrl_interrupts ( dma_interrupts ),
.read_arvalid ( gAXIM_s_arvalid[MTSE*1 +: 1] ),
.read_araddr ( gAXIM_s_araddr[MTSE*32 +: 32] ),
.read_arready ( gAXIM_s_arready[MTSE*1 +: 1] ),
.read_arregion ( gAXIM_s_arregion[MTSE*4 +: 4] ),
.read_arlen ( gAXIM_s_arlen[MTSE*8 +: 8] ),
.read_arsize ( gAXIM_s_arsize[MTSE*3 +: 3] ),
.read_arburst ( gAXIM_s_arburst[MTSE*2 +: 2] ),
.read_arlock ( gAXIM_s_arlock[MTSE*2 +: 2] ),
.read_arcache ( gAXIM_s_arcache[MTSE*4 +: 4] ),
.read_arqos ( gAXIM_s_arqos[MTSE*4 +: 4] ),
.read_arprot ( gAXIM_s_arprot[MTSE*4 +: 4] ),
.read_rready ( gAXIM_s_rready[MTSE*1 +: 1] ),
.read_rvalid ( gAXIM_s_rvalid[MTSE*1 +: 1] ),
.read_rdata ( gAXIM_s_rdata[MTSE*128 +: 128] ),
.read_rlast ( gAXIM_s_rlast[MTSE*1 +: 1] ),
.read_rresp ( gAXIM_s_rresp[MTSE*2 +: 2] ),
.write_awvalid ( gAXIM_s_awvalid[MTSE*1 +: 1] ),
.write_awready ( gAXIM_s_awready[MTSE*1 +: 1] ),
.write_awaddr ( gAXIM_s_awaddr[MTSE*32 +: 32] ),
.write_awregion ( gAXIM_s_awregion[MTSE*4 +: 4] ),
.write_awlen ( gAXIM_s_awlen[MTSE*8 +: 8] ),
.write_awsize ( gAXIM_s_awsize[MTSE*3 +: 3] ),
.write_awburst ( gAXIM_s_awburst[MTSE*2 +: 2] ),
.write_awlock ( gAXIM_s_awlock[MTSE*2 +: 2] ),
.write_awcache ( gAXIM_s_awcache[MTSE*4 +: 4] ),
.write_awqos ( gAXIM_s_awqos[MTSE*4 +: 4] ),
.write_awprot ( gAXIM_s_awprot[MTSE*4 +: 4] ),
.write_wvalid ( gAXIM_s_wvalid[MTSE*1 +: 1] ),
.write_wready ( gAXIM_s_wready[MTSE*1 +: 1] ),
.write_wdata ( gAXIM_s_wdata[MTSE*128 +: 128] ),
.write_wstrb ( gAXIM_s_wstrb[MTSE*16 +: 16] ),
.write_wlast ( gAXIM_s_wlast[MTSE*1 +: 1] ),
.write_bvalid ( gAXIM_s_bvalid[MTSE*1 +: 1] ),
.write_bready ( gAXIM_s_bready[MTSE*1 +: 1] ),
.write_bresp ( gAXIM_s_bresp[MTSE*2 +: 2] ),
.dat1_o_clk ( io_tseClk ),
.dat1_o_reset ( mac_ext_rst | dma_tx_rst),
.dat1_o_tvalid ( s_eth_tx_tvalid ),
.dat1_o_tready ( s_eth_tx_tready ),
.dat1_o_tdata ( s_eth_tx_tdata ),
.dat1_o_tkeep ( s_eth_tx_tkeep ),
.dat1_o_tdest ( s_eth_tx_tdest ),
.dat1_o_tlast ( s_eth_tx_tlast ),
`ifdef ETH_1000MBPS
.dat0_i_clk ( rgmii_rxc ),
`else
.dat0_i_clk ( rgmii_rxc_slow ),
`endif
.dat0_i_reset ( mac_ext_rst | dma_rx_rst ),
.dat0_i_tvalid ( m_eth_rx_tvalid ),
.dat0_i_tready ( m_eth_rx_tready ),
.dat0_i_tdata ( m_eth_rx_tdata ),
.dat0_i_tkeep ( 1'b1),
.dat0_i_tdest ( m_eth_rx_tdest ),
.dat0_i_tlast ( m_eth_rx_tlast ),
.io_1_descriptorUpdate ( ),
.io_0_descriptorUpdate (dma_tx_descriptorUpdate)
);
////////////////////////////////////////////////////////////////////////////
custom_instruction_tea cpu0_custom_instruction_tea_inst(
.clk(io_cfuClk),
.reset(io_cfuReset),
.cmd_valid(cpu0_customInstruction_cmd_valid),
.cmd_ready(cpu0_customInstruction_cmd_ready),
.cmd_function_id(cpu0_customInstruction_function_id),
.cmd_inputs_0(cpu0_customInstruction_inputs_0),
.cmd_inputs_1(cpu0_customInstruction_inputs_1),
.rsp_valid(cpu0_customInstruction_rsp_valid),
.rsp_ready(cpu0_customInstruction_rsp_ready),
.rsp_outputs_0(cpu0_customInstruction_outputs_0));
custom_instruction_tea cpu1_custom_instruction_tea_inst(
.clk(io_cfuClk),
.reset(io_cfuReset),
.cmd_valid(cpu1_customInstruction_cmd_valid),
.cmd_ready(cpu1_customInstruction_cmd_ready),
.cmd_function_id(cpu1_customInstruction_function_id),
.cmd_inputs_0(cpu1_customInstruction_inputs_0),
.cmd_inputs_1(cpu1_customInstruction_inputs_1),
.rsp_valid(cpu1_customInstruction_rsp_valid),
.rsp_ready(cpu1_customInstruction_rsp_ready),
.rsp_outputs_0(cpu1_customInstruction_outputs_0));
custom_instruction_tea cpu2_custom_instruction_tea_inst(
.clk(io_cfuClk),
.reset(io_cfuReset),
.cmd_valid(cpu2_customInstruction_cmd_valid),
.cmd_ready(cpu2_customInstruction_cmd_ready),
.cmd_function_id(cpu2_customInstruction_function_id),
.cmd_inputs_0(cpu2_customInstruction_inputs_0),
.cmd_inputs_1(cpu2_customInstruction_inputs_1),
.rsp_valid(cpu2_customInstruction_rsp_valid),
.rsp_ready(cpu2_customInstruction_rsp_ready),
.rsp_outputs_0(cpu2_customInstruction_outputs_0));
custom_instruction_tea cpu3_custom_instruction_tea_inst(
.clk(io_cfuClk),
.reset(io_cfuReset),
.cmd_valid(cpu3_customInstruction_cmd_valid),
.cmd_ready(cpu3_customInstruction_cmd_ready),
.cmd_function_id(cpu3_customInstruction_function_id),
.cmd_inputs_0(cpu3_customInstruction_inputs_0),
.cmd_inputs_1(cpu3_customInstruction_inputs_1),
.rsp_valid(cpu3_customInstruction_rsp_valid),
.rsp_ready(cpu3_customInstruction_rsp_ready),
.rsp_outputs_0(cpu3_customInstruction_outputs_0));
assign io_asyncReset = io_asyncReset_soc | watchdog_reset;
//axi4 bridge to various I/O
EfxSapphireHpSoc_slb u_top_peripherals(
.io_apbSlave_0_PADDR ( dma_apb3_paddr ),
.io_apbSlave_0_PENABLE ( dma_apb3_penable ),
.io_apbSlave_0_PRDATA ( dma_apb3_prdata ),
.io_apbSlave_0_PREADY ( dma_apb3_pready ),
.io_apbSlave_0_PSEL ( dma_apb3_psel ),
.io_apbSlave_0_PSLVERROR ( dma_apb3_pslverror ),
.io_apbSlave_0_PWDATA ( dma_apb3_pwdata ),
.io_apbSlave_0_PWRITE ( dma_apb3_pwrite ),
.system_spi_0_io_sclk_write ( system_spi_0_io_sclk_write ),
.system_spi_0_io_data_0_writeEnable ( system_spi_0_io_data_0_writeEnable ),
.system_spi_0_io_data_0_read ( system_spi_0_io_data_0_read ),
.system_spi_0_io_data_0_write ( system_spi_0_io_data_0_write ),
.system_spi_0_io_data_1_writeEnable ( system_spi_0_io_data_1_writeEnable ),
.system_spi_0_io_data_1_read ( system_spi_0_io_data_1_read ),
.system_spi_0_io_data_1_write ( system_spi_0_io_data_1_write ),
.system_spi_0_io_data_2_writeEnable ( system_spi_0_io_data_2_writeEnable ),
.system_spi_0_io_data_2_read ( system_spi_0_io_data_2_read ),
.system_spi_0_io_data_2_write ( system_spi_0_io_data_2_write ),
.system_spi_0_io_data_3_writeEnable ( system_spi_0_io_data_3_writeEnable ),
.system_spi_0_io_data_3_read ( system_spi_0_io_data_3_read ),
.system_spi_0_io_data_3_write ( system_spi_0_io_data_3_write ),
.system_spi_0_io_ss ( system_spi_0_io_ss ),
.system_uart_0_io_txd ( system_uart_0_io_txd ),
.system_uart_0_io_rxd ( system_uart_0_io_rxd ),
.system_i2c_0_io_sda_writeEnable ( system_i2c_0_io_sda_writeEnable ),
.system_i2c_0_io_sda_write ( system_i2c_0_io_sda_write ),
.system_i2c_0_io_sda_read ( system_i2c_0_io_sda_read ),
.system_i2c_0_io_scl_writeEnable ( system_i2c_0_io_scl_writeEnable ),
.system_i2c_0_io_scl_write ( system_i2c_0_io_scl_write ),
.system_i2c_0_io_scl_read ( system_i2c_0_io_scl_read ),
.jtagCtrl_tdi ( jtagCtrl_tdi ),
.jtagCtrl_tdo ( jtagCtrl_tdo ),
.jtagCtrl_enable ( jtagCtrl_enable ),
.jtagCtrl_capture ( jtagCtrl_capture ),
.jtagCtrl_shift ( jtagCtrl_shift ),
.jtagCtrl_update ( jtagCtrl_update ),
.jtagCtrl_reset ( jtagCtrl_reset ),
.ut_jtagCtrl_tdi ( ut_jtagCtrl_tdi ),
.ut_jtagCtrl_tdo ( ut_jtagCtrl_tdo ),
.ut_jtagCtrl_enable ( ut_jtagCtrl_enable ),
.ut_jtagCtrl_capture ( ut_jtagCtrl_capture ),
.ut_jtagCtrl_shift ( ut_jtagCtrl_shift ),
.ut_jtagCtrl_update ( ut_jtagCtrl_update ),
.ut_jtagCtrl_reset ( ut_jtagCtrl_reset ),
.system_gpio_0_io_read ( system_gpio_0_io_read ),
.system_gpio_0_io_write ( system_gpio_0_io_write ),
.system_gpio_0_io_writeEnable ( system_gpio_0_io_writeEnable ),
.system_watchdog_hardPanic_reset ( watchdog_reset ),
.userInterruptA ( userInterruptA ),
.userInterruptB ( userInterruptB ),
.userInterruptC ( userInterruptC ),
.userInterruptD ( userInterruptD ),
.userInterruptE ( userInterruptE ),
.userInterruptF ( userInterruptF ),
.axiA_awvalid ( gAXIS_m_awvalid[SLB*1 +: 1] ),
.axiA_awready ( gAXIS_m_awready[SLB*1 +: 1] ),
.axiA_awaddr ( gAXIS_m_awaddr[SLB*32 +: 32] ),
.axiA_awlen ( gAXIS_m_awlen[SLB*8 +: 8] ),
.axiA_awburst ( gAXIS_m_awburst[SLB*2 +: 2] ),
.axiA_awsize ( gAXIS_m_awsize[SLB*3 +: 3] ),
.axiA_awcache ( gAXIS_m_awcache[SLB*4 +: 4] ),
.axiA_awprot ( gAXIS_m_awprot[SLB*3 +: 3] ),
.axiA_wvalid ( gAXIS_m_wvalid[SLB*1 +: 1] ),
.axiA_wready ( gAXIS_m_wready[SLB*1 +: 1] ),
.axiA_wdata ( gAXIS_m_wdata[SLB*32 +: 32] ),
.axiA_wstrb ( gAXIS_m_wstrb[SLB*4 +: 4] ),
.axiA_wlast ( gAXIS_m_wlast[SLB*1 +: 1] ),
.axiA_bvalid ( gAXIS_m_bvalid[SLB*1 +: 1] ),
.axiA_bready ( gAXIS_m_bready[SLB*1 +: 1] ),
.axiA_bresp ( gAXIS_m_bresp[SLB*2 +: 2] ),
.axiA_arvalid ( gAXIS_m_arvalid[SLB*1 +: 1] ),
.axiA_arready ( gAXIS_m_arready[SLB*1 +: 1] ),
.axiA_araddr ( gAXIS_m_araddr[SLB*32 +: 32] ),
.axiA_arlen ( gAXIS_m_arlen[SLB*8 +: 8] ),
.axiA_arburst ( gAXIS_m_arburst[SLB*2 +: 2]),
.axiA_arsize ( gAXIS_m_arsize[SLB*3 +: 3] ),
.axiA_arcache ( gAXIS_m_arcache[SLB*4 +: 4] ),
.axiA_arprot ( gAXIS_m_arprot[SLB*3 +: 3] ),
.axiA_rvalid ( gAXIS_m_rvalid[SLB*1 +: 1] ),
.axiA_rready ( gAXIS_m_rready[SLB*1 +: 1] ),
.axiA_rdata ( gAXIS_m_rdata[SLB*32 +: 32] ),
.axiA_rresp ( gAXIS_m_rresp[SLB*2 +: 2] ),
.axiA_rlast ( gAXIS_m_rlast[SLB*1 +: 1] ),
.axiAInterrupt ( axiAInterrupt ),
.cfg_done ( cfg_done ),
.cfg_start ( cfg_start ),
.cfg_sel ( cfg_sel ),
.cfg_reset ( cfg_reset ),
.io_peripheralClk ( io_peripheralClk ),
.io_peripheralReset ( io_peripheralReset ),
.io_asyncReset ( io_asyncReset_soc ),
.io_gpio_sw_n ( io_gpio_sw_n ),
.pll_peripheral_locked ( pll_peripheral_locked ),
.pll_system_locked ( pll_system_locked )
);
endmodule

View File

@@ -0,0 +1,996 @@
`timescale 1 ns / 1 ns
module tseCore #(
parameter ADDR_WIDTH = 10
) (
input io_peripheralClk,
input io_peripheralReset,
input io_tseClk,
input pll_locked,
output phy_sw_rst,
output mac_ext_rst,
output dma_rx_rst,
output dma_tx_rst,
input dma_tx_descriptorUpdate,
output [1:0] dma_interrupts,
output [2:0] eth_speed,
// MAC RGMII Interface
output [3:0] rgmii_txd_HI,
output [3:0] rgmii_txd_LO,
output rgmii_tx_ctl_HI,
output rgmii_tx_ctl_LO,
output rgmii_txc_HI,
output rgmii_txc_LO,
input [3:0] rgmii_rxd_HI,
input [3:0] rgmii_rxd_LO,
input rgmii_rx_ctl_HI,
input rgmii_rx_ctl_LO,
input rgmii_rxc,
// PHY MDIO Interface
input phy_mdi,
output phy_mdo,
output phy_mdo_en,
output phy_mdc,
// AXI CSR
input [31:0] s_axi_awaddr,
input s_axi_awvalid,
output s_axi_awready,
input [31:0] s_axi_wdata,
input [3:0] s_axi_wstrb,
output s_axi_wlast,
input s_axi_wvalid,
output s_axi_wready,
output [1:0] s_axi_bresp,
output s_axi_bvalid,
input s_axi_bready,
input [31:0] s_axi_araddr,
input s_axi_arvalid,
output s_axi_arready,
output [1:0] s_axi_rresp,
output [31:0] s_axi_rdata,
output s_axi_rlast,
output s_axi_rvalid,
input s_axi_rready,
// MAC Stream
input s_eth_tx_tvalid,
output s_eth_tx_tready,
input [7:0] s_eth_tx_tdata,
input [0:0] s_eth_tx_tkeep,
input [3:0] s_eth_tx_tdest,
input s_eth_tx_tlast,
output m_eth_rx_tvalid,
input m_eth_rx_tready,
output [7:0] m_eth_rx_tdata,
output [0:0] m_eth_rx_tstrb,
output m_eth_rx_tlast
);
////////////////////////////////////////////////////////////////////////////////////////////
localparam TSE_DEV = 2;
localparam MAC = 0;
localparam CMN = 1;
// Switch between MAC and CMN
wire [(TSE_DEV*32)-1:0] gTSE_m_awaddr;
wire [(TSE_DEV*8)-1:0] gTSE_m_awlen;
wire [(TSE_DEV*3)-1:0] gTSE_m_awsize;
wire [(TSE_DEV*2)-1:0] gTSE_m_awburst;
wire [(TSE_DEV*2)-1:0] gTSE_m_awlock;
wire [TSE_DEV-1:0] gTSE_m_awvalid;
wire [TSE_DEV-1:0] gTSE_m_awready;
wire [(TSE_DEV*32)-1:0] gTSE_m_wdata;
wire [(TSE_DEV*4)-1:0] gTSE_m_wstrb;
wire [TSE_DEV-1:0] gTSE_m_wvalid;
wire [TSE_DEV-1:0] gTSE_m_wlast;
wire [TSE_DEV-1:0] gTSE_m_wready;
wire [(TSE_DEV*2)-1:0] gTSE_m_bresp;
wire [TSE_DEV-1:0] gTSE_m_bvalid;
wire [TSE_DEV-1:0] gTSE_m_bready;
wire [(TSE_DEV*32)-1:0] gTSE_m_araddr;
wire [(TSE_DEV*8)-1:0] gTSE_m_arlen;
wire [(TSE_DEV*3)-1:0] gTSE_m_arsize;
wire [(TSE_DEV*2)-1:0] gTSE_m_arburst;
wire [(TSE_DEV*2)-1:0] gTSE_m_arlock;
wire [TSE_DEV-1:0] gTSE_m_arvalid;
wire [TSE_DEV-1:0] gTSE_m_arready;
wire [(TSE_DEV*32)-1:0] gTSE_m_rdata;
wire [(TSE_DEV*2)-1:0] gTSE_m_rresp;
wire [TSE_DEV-1:0] gTSE_m_rlast;
wire [TSE_DEV-1:0] gTSE_m_rvalid;
wire [TSE_DEV-1:0] gTSE_m_rready;
// clock reset
wire mac_sw_rst;
wire proto_reset;
wire mac_ext_srst;
wire rx_axis_clk;
wire tx_axis_clk;
// Stream control
wire m_eth_tx_tvalid;
wire m_eth_tx_tready;
wire [7:0] m_eth_tx_tdata;
wire [3:0] m_eth_tx_tdest;
wire m_eth_tx_tlast;
wire s_eth_rx_tvalid;
wire s_eth_rx_tready;
wire [7:0] s_eth_rx_tdata;
wire [0:0] s_eth_rx_tkeep;
wire [3:0] s_eth_rx_tdest;
wire s_eth_rx_tlast;
////////////////////////////////////////////////////////////////////////////////////////////
assign mac_ext_rst = ~pll_locked;
assign rx_axis_clk = io_tseClk;
assign tx_axis_clk = io_tseClk;
reset_ctrl #(
.NUM_RST (2),
.CYCLE (2),
.IN_RST_ACTIVE (2'b11),
.OUT_RST_ACTIVE (2'b11)
) inst_reset_ctrl (
.i_arst ({mac_sw_rst, mac_ext_rst}),
.i_clk ({2{io_tseClk}}),
.o_srst ({proto_reset, mac_ext_srst})
);
gTSE_1to2_switch u_gTSE_1to2_switch
(
.rst_n ( ~io_peripheralReset ),
.clk ( io_peripheralClk ),
.s_axi_awvalid ( s_axi_awvalid ),
.s_axi_awready ( s_axi_awready ),
.s_axi_awaddr ( {16'd0, s_axi_awaddr[15:0]} ),
.s_axi_awlock ( 2'b00 ),
.s_axi_wready ( s_axi_wready ),
.s_axi_wvalid ( s_axi_wvalid ),
.s_axi_wstrb ( s_axi_wstrb ),
.s_axi_wdata ( s_axi_wdata ),
.s_axi_wlast ( s_axi_wlast ),
.s_axi_wid ( 8'h00 ),
.s_axi_bvalid ( s_axi_bvalid ),
.s_axi_bready ( s_axi_bready ),
.s_axi_bid ( ),
.s_axi_bresp ( s_axi_bresp ),
.s_axi_arvalid ( s_axi_arvalid ),
.s_axi_arready ( s_axi_arready ),
.s_axi_araddr ( {16'd0, s_axi_araddr[15:0]} ),
.s_axi_arlock ( 2'b00 ),
.s_axi_rvalid ( s_axi_rvalid ),
.s_axi_rready ( s_axi_rready ),
.s_axi_rid ( ),
.s_axi_rdata ( s_axi_rdata ),
.s_axi_rlast ( ),
.s_axi_rresp ( s_axi_rresp ),
.m_axi_awvalid ( gTSE_m_awvalid ),
.m_axi_awready ( gTSE_m_awready ),
.m_axi_awaddr ( gTSE_m_awaddr ),
.m_axi_awlock ( ),
.m_axi_wvalid ( gTSE_m_wvalid ),
.m_axi_wready ( gTSE_m_wready ),
.m_axi_wlast ( gTSE_m_wlast ),
.m_axi_wstrb ( gTSE_m_wstrb ),
.m_axi_wdata ( gTSE_m_wdata ),
.m_axi_bvalid ( gTSE_m_bvalid ),
.m_axi_bready ( gTSE_m_bready ),
.m_axi_bresp ( gTSE_m_bresp ),
.m_axi_bid ( {TSE_DEV{8'h00}} ),
.m_axi_arvalid ( gTSE_m_arvalid ),
.m_axi_araddr ( gTSE_m_araddr ),
.m_axi_arlock ( ),
.m_axi_arready ( gTSE_m_arready ),
.m_axi_rvalid ( gTSE_m_rvalid ),
.m_axi_rready ( gTSE_m_rready ),
.m_axi_rid ( {TSE_DEV{8'h00}} ),
.m_axi_rdata ( gTSE_m_rdata ),
.m_axi_rlast ( gTSE_m_rlast ),
.m_axi_rresp ( gTSE_m_rresp )
);
assign s_axi_rlast = 1'b1;
assign gTSE_m_wlast = 2'b11;
assign gTSE_m_rlast = 2'b11;
gTSE_streamControl #(
.ADDR_WIDTH (ADDR_WIDTH)
) u_gTSE_streamControl (
.s_axi_aclk ( io_peripheralClk ),
.s_axi_aresetn ( ~io_peripheralReset ),
.s_axi_awaddr ( gTSE_m_awaddr[CMN*32 +: ADDR_WIDTH] ),
.s_axi_awvalid ( gTSE_m_awvalid[CMN*1 +: 1] ),
.s_axi_awready ( gTSE_m_awready[CMN*1 +: 1] ),
.s_axi_wdata ( gTSE_m_wdata[CMN*32 +: 32] ),
.s_axi_wvalid ( gTSE_m_wvalid[CMN*1 +: 1] ),
.s_axi_wready ( gTSE_m_wready[CMN*1 +: 1] ),
.s_axi_bvalid ( gTSE_m_bvalid[CMN*1 +: 1] ),
.s_axi_bready ( gTSE_m_bready[CMN*1 +: 1 ]),
.s_axi_bresp ( gTSE_m_bresp[CMN*2 +: 2] ),
.s_axi_araddr ( gTSE_m_araddr[CMN*32 +: ADDR_WIDTH] ),
.s_axi_arvalid ( gTSE_m_arvalid[CMN*1 +: 1] ),
.s_axi_arready ( gTSE_m_arready[CMN*1 +: 1] ),
.s_axi_rdata ( gTSE_m_rdata[CMN*32 +: 32] ),
.s_axi_rvalid ( gTSE_m_rvalid[CMN*1 +: 1] ),
.s_axi_rready ( gTSE_m_rready[CMN*1 +: 1] ),
.s_axi_rresp ( gTSE_m_rresp[CMN*2 +: 2] ),
.mac_ext_rst ( mac_ext_rst || mac_sw_rst ),
.s_eth_tx_clk ( tx_axis_clk ),
.s_eth_tx_tvalid ( s_eth_tx_tvalid ),
.s_eth_tx_tready ( s_eth_tx_tready ),
.s_eth_tx_tdata ( s_eth_tx_tdata ),
.s_eth_tx_tkeep ( s_eth_tx_tkeep ),
.s_eth_tx_tdest ( s_eth_tx_tdest ),
.s_eth_tx_tlast ( s_eth_tx_tlast ),
.m_eth_tx_tvalid ( m_eth_tx_tvalid ),
.m_eth_tx_tready ( m_eth_tx_tready ),
.m_eth_tx_tdata ( m_eth_tx_tdata ),
.m_eth_tx_tdest ( m_eth_tx_tdest ),
.m_eth_tx_tlast ( m_eth_tx_tlast ),
.mac_sw_rst ( mac_sw_rst ),
.phy_sw_rst ( phy_sw_rst ),
.dma_rx_rst ( dma_rx_rst ),
.dma_tx_rst ( dma_tx_rst ),
.error ( ),
.dma_descriptor_update (dma_tx_descriptorUpdate)
);
wire lso_eth_tx_tvalid;
wire lso_eth_tx_tready;
wire [7:0] lso_eth_tx_tdata;
wire lso_eth_tx_tlast;
MacTxLso lso0
(
.io_input_valid(m_eth_tx_tvalid),
.io_input_ready(m_eth_tx_tready),
.io_input_payload_last(m_eth_tx_tlast),
.io_input_payload_fragment_data(m_eth_tx_tdata),
.io_output_valid(lso_eth_tx_tvalid),
.io_output_ready(lso_eth_tx_tready),
.io_output_payload_last(lso_eth_tx_tlast),
.io_output_payload_fragment_data(lso_eth_tx_tdata),
.clk(tx_axis_clk),
.reset(mac_ext_srst)
);
wire rx0_eth_rx_tvalid;
wire rx0_eth_rx_tready;
wire [7:0] rx0_eth_rx_tdata;
wire rx0_eth_rx_tlast;
MacRxCheckSumChecker rx0
(
.io_input_valid(rx0_eth_rx_tvalid),
.io_input_ready(rx0_eth_rx_tready),
.io_input_payload_last(rx0_eth_rx_tlast),
.io_input_payload_fragment_error(1'b0),
.io_input_payload_fragment_data(rx0_eth_rx_tdata),
.io_output_valid(s_eth_rx_tvalid),
.io_output_ready(s_eth_rx_tready),
.io_output_payload_last(s_eth_rx_tlast),
.io_output_payload_fragment_error(),
.io_output_payload_fragment_data(s_eth_rx_tdata),
.clk(rgmii_rxc),
.reset(mac_ext_srst)
);
gTSE u_gTSE (
.mac_reset ( mac_ext_srst ),
.proto_reset ( mac_ext_srst || proto_reset ),
.tx_mac_aclk ( io_tseClk ),
.rx_mac_aclk (),
.eth_speed ( eth_speed ),
// MAC RX
.rx_axis_clk ( rgmii_rxc ),
.rx_axis_mac_tdata ( rx0_eth_rx_tdata ),
.rx_axis_mac_tvalid ( rx0_eth_rx_tvalid ),
.rx_axis_mac_tstrb ( s_eth_rx_tstrb ),
.rx_axis_mac_tlast ( rx0_eth_rx_tlast ),
.rx_axis_mac_tuser ( ),
.rx_axis_mac_tready ( rx0_eth_rx_tready ),
// MAC TX
.tx_axis_clk ( tx_axis_clk ),
.tx_axis_mac_tdata ( lso_eth_tx_tdata ),
.tx_axis_mac_tvalid ( lso_eth_tx_tvalid ),
.tx_axis_mac_tstrb ( 1'b1 ),
.tx_axis_mac_tlast ( lso_eth_tx_tlast ),
.tx_axis_mac_tuser ( 1'b0 ),
.tx_axis_mac_tready ( lso_eth_tx_tready ),
// AXI CSR
.s_axi_aclk ( io_peripheralClk ),
.s_axi_awaddr ( gTSE_m_awaddr[MAC*32 +: ADDR_WIDTH] ),
.s_axi_awvalid ( gTSE_m_awvalid[MAC*1 +:1 ] ),
.s_axi_awready ( gTSE_m_awready[MAC*1 +: 1] ),
.s_axi_wdata ( gTSE_m_wdata[MAC*32 +: 32] ),
.s_axi_wvalid ( gTSE_m_wvalid[MAC*1 +: 1] ),
.s_axi_wready ( gTSE_m_wready[MAC*1 +: 1] ),
.s_axi_bresp ( gTSE_m_bresp[MAC*2 +: 2] ),
.s_axi_bvalid ( gTSE_m_bvalid[MAC*1 +: 1] ),
.s_axi_bready ( gTSE_m_bready[MAC*1 +: 1] ),
.s_axi_araddr ( gTSE_m_araddr[MAC*32 +: ADDR_WIDTH] ),
.s_axi_arvalid ( gTSE_m_arvalid[MAC*1 +: 1] ),
.s_axi_arready ( gTSE_m_arready[MAC*1 +: 1] ),
.s_axi_rresp ( gTSE_m_rresp[MAC*2 +: 2] ),
.s_axi_rdata ( gTSE_m_rdata[MAC*32 +: 32] ),
.s_axi_rvalid ( gTSE_m_rvalid[MAC*1 +: 1] ),
.s_axi_rready ( gTSE_m_rready[MAC*1 +: 1] ),
// RGMII
.rgmii_txd_HI ( rgmii_txd_HI ),
.rgmii_txd_LO ( rgmii_txd_LO ),
.rgmii_tx_ctl_HI ( rgmii_tx_ctl_HI ),
.rgmii_tx_ctl_LO ( rgmii_tx_ctl_LO ),
.rgmii_txc_HI ( rgmii_txc_HI ),
.rgmii_txc_LO ( rgmii_txc_LO ),
.rgmii_rxd_HI ( rgmii_rxd_HI ),
.rgmii_rxd_LO ( rgmii_rxd_LO ),
.rgmii_rx_ctl_HI ( rgmii_rx_ctl_HI ),
.rgmii_rx_ctl_LO ( rgmii_rx_ctl_LO ),
.rgmii_rxc ( rgmii_rxc ),
// MDIO
.Mdo ( phy_mdo ),
.MdoEn ( phy_mdo_en ),
.Mdi ( phy_mdi ),
.Mdc ( phy_mdc )
);
assign m_eth_rx_tvalid = s_eth_rx_tvalid;
assign m_eth_rx_tdata = s_eth_rx_tdata;
assign m_eth_rx_tkeep = 1'b1;
assign m_eth_rx_tlast = s_eth_rx_tlast;
assign s_eth_rx_tready = m_eth_rx_tready;
endmodule
module gTSE_streamControl#(
parameter ADDR_WIDTH = 10,
parameter NUM_REG = 5,
parameter NUM_FRAME = 10,
parameter MAC_RX_CLK_FREQ = 100,
parameter COALESCE_US = 4000
)
(
input s_axi_aclk, //AXI Bus Clock.
input s_axi_aresetn, //AXI Reset. Active-Low.
input [ADDR_WIDTH-1:0] s_axi_awaddr, //Write Address. byte address.
input s_axi_awvalid, //Write address valid.
output reg s_axi_awready, //Write address ready.
input [31:0] s_axi_wdata, //Write data bus.
input s_axi_wvalid, //Write valid.
output reg s_axi_wready, //Write ready.
output wire [1:0] s_axi_bresp, //Write response.
output reg s_axi_bvalid, //Write response valid.
input s_axi_bready, //Response ready.
input [ADDR_WIDTH-1:0] s_axi_araddr, //Read address. byte address.
input s_axi_arvalid, //Read address valid.
output reg s_axi_arready, //Read address ready.
output wire [1:0] s_axi_rresp, //Read response.
output reg [31:0] s_axi_rdata, //Read data.
output reg s_axi_rvalid, //Read valid.
input s_axi_rready, //Read ready.
input s_eth_tx_clk,
input s_eth_tx_tvalid,
output s_eth_tx_tready,
input [7:0] s_eth_tx_tdata,
input [0:0] s_eth_tx_tkeep,
input [3:0] s_eth_tx_tdest,
input s_eth_tx_tlast,
output m_eth_tx_tvalid,
input m_eth_tx_tready,
output [7:0] m_eth_tx_tdata,
output [3:0] m_eth_tx_tdest,
output m_eth_tx_tlast,
input mac_ext_rst,
output reg mac_sw_rst,
output reg phy_sw_rst,
output reg dma_rx_rst,
output reg dma_tx_rst,
output reg error,
input dma_descriptor_update
);
// Parameter Define
localparam DATA_DEPTH = NUM_FRAME*1540;
localparam SIZE_DEPTH = NUM_FRAME*5;
localparam DATA_DEPTH_WID = $clog2(DATA_DEPTH);
localparam SIZE_DEPTH_WID = $clog2(SIZE_DEPTH);
localparam COALESCE_CNT = (COALESCE_US * MAC_RX_CLK_FREQ);
// Register Define
// Cfg Space Registers
// Other Registers
reg [ADDR_WIDTH-3:0] loc_waddr;
reg loc_waddr_vld;
reg [31:0] loc_wdata;
reg loc_wdata_vld;
reg [ADDR_WIDTH-3:0] loc_raddr;
reg loc_raddr_vld;
// Wire Define
wire loc_wrdy;
wire loc_rrdy;
wire w_eth_mac_rst;
wire [9:0] w_trans_rdcnt;
wire w_trans_rst_busy;
wire w_trans_full;
wire w_trans_empty;
wire [12:0] w_txdata_rd_datacount;
wire w_tx_full;
wire w_tx_empty;
wire w_eth_tx_tlast;
wire w_eth_tx_tkeep;
wire [3:0] w_eth_tx_tdest;
wire [7:0] w_eth_tx_tdata;
reg r_eth_tx_tlast;
reg [3:0] r_eth_tx_tdest;
reg [7:0] r_eth_tx_tdata;
reg r_eth_tx_tvalid;
wire w_rd_en;
reg [15:0] write_cnt;
wire [15:0] write_cnt_rd;
wire [15:0] write_cnt_next;
reg [15:0] read_cnt;
reg [1:0] rd_state;
reg [1:0] next_rd_state;
/*----------------------------------------------------------------------------------*\
The main code
\*----------------------------------------------------------------------------------*/
//axi4-lite interface
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
loc_waddr <= {ADDR_WIDTH-2{1'b0}};
else if((s_axi_awvalid == 1'b1) && (s_axi_awready == 1'b1))
loc_waddr <= s_axi_awaddr[2+:ADDR_WIDTH-2];
end
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
loc_waddr_vld <= 1'b0;
else if((s_axi_awvalid == 1'b1) && (s_axi_awready == 1'b1))
loc_waddr_vld <= 1'b1;
else if((loc_waddr_vld == 1'b1) && (loc_wdata_vld == 1'b1) && (loc_wrdy == 1'b1))
loc_waddr_vld <= 1'b0;
end
assign loc_wrdy = 1'b1;
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
s_axi_awready <= 1'b0;
else if((s_axi_awvalid == 1'b1) && (s_axi_awready == 1'b1))
s_axi_awready <= 1'b0;
else if(loc_waddr_vld == 1'b0)
s_axi_awready <= 1'b1;
end
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
loc_wdata <= 32'h0;
else if((s_axi_wvalid == 1'b1) && (s_axi_wready == 1'b1))
loc_wdata <= s_axi_wdata;
end
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
loc_wdata_vld <= 1'b0;
else if((s_axi_wvalid == 1'b1) && (s_axi_wready == 1'b1))
loc_wdata_vld <= 1'b1;
else if((loc_waddr_vld == 1'b1) && (loc_wdata_vld == 1'b1) && (loc_wrdy == 1'b1))
loc_wdata_vld <= 1'b0;
end
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
s_axi_wready <= 1'b0;
else if((s_axi_wvalid == 1'b1) && (s_axi_wready == 1'b1))
s_axi_wready <= 1'b0;
else if(loc_wdata_vld == 1'b0)
s_axi_wready <= 1'b1;
end
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
s_axi_bvalid <= 1'b0;
else if((loc_waddr_vld == 1'b1) && (loc_wdata_vld == 1'b1) && (loc_wrdy == 1'b1))
s_axi_bvalid <= 1'b1;
else if(s_axi_bready == 1'b1)
s_axi_bvalid <= 1'b0;
end
assign s_axi_bresp = 2'h0;
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
loc_raddr <= {ADDR_WIDTH-2{1'b0}};
else if((s_axi_arvalid == 1'b1) && (s_axi_arready == 1'b1))
loc_raddr <= s_axi_araddr[2+:ADDR_WIDTH-2];
end
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
loc_raddr_vld <= 1'b0;
else if((s_axi_arvalid == 1'b1) && (s_axi_arready == 1'b1))
loc_raddr_vld <= 1'b1;
else if((loc_raddr_vld == 1'b1) && (loc_rrdy == 1'b1))
loc_raddr_vld <= 1'b0;
end
assign loc_rrdy = 1'b1;
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
s_axi_arready <= 1'b0;
else if((s_axi_arvalid == 1'b1) && (s_axi_arready == 1'b1))
s_axi_arready <= 1'b0;
else if(loc_raddr_vld == 1'b0)
s_axi_arready <= 1'b1;
end
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
s_axi_rdata <= 32'h0;
else if((loc_raddr_vld == 1'b1) && (loc_rrdy == 1'b1))
begin
case(loc_raddr)
//Base Configuration Registers Field
'h080:s_axi_rdata <= {31'd0, mac_sw_rst};
'h081:s_axi_rdata <= {31'd0, phy_sw_rst};
'h082:s_axi_rdata <= {31'd0, dma_rx_rst};
'h083:s_axi_rdata <= {31'd0, dma_tx_rst};
default:s_axi_rdata <= 32'hEEEE_1111;
endcase
end
end
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
s_axi_rvalid <= 1'b0;
else if((loc_raddr_vld == 1'b1) && (loc_rrdy == 1'b1))
s_axi_rvalid <= 1'b1;
else if(s_axi_rready == 1'b1)
s_axi_rvalid <= 1'b0;
end
assign s_axi_rresp = 2'h0;
/*----------------------------------------------------------------------------------*\
Register Space -- Base Configuration Registers Field
\*----------------------------------------------------------------------------------*/
//loc_addr = 0x000; axi_addr = 0x000; RW;
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
begin
mac_sw_rst <= 1'b0;
end
else if((s_axi_bvalid == 1'b1) && (loc_waddr == 'h080))
begin
mac_sw_rst <= loc_wdata[0];
end
end
//loc_addr = 0x001; axi_addr = 0x004; RW;
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
begin
phy_sw_rst <= 1'b0;
end
else if((s_axi_bvalid == 1'b1) && (loc_waddr == 'h081))
begin
phy_sw_rst <= loc_wdata[0];
end
end
//loc_addr = 0x002; axi_addr = 0x008; RW;
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
begin
dma_rx_rst <= 1'b0;
end
else if((s_axi_bvalid == 1'b1) && (loc_waddr == 'h082))
begin
dma_rx_rst <= loc_wdata[0];
end
end
//loc_addr = 0x003; axi_addr = 0x00C; RW;
always @(posedge s_axi_aclk or negedge s_axi_aresetn)
begin
if(s_axi_aresetn == 1'b0)
begin
dma_tx_rst <= 1'b0;
end
else if((s_axi_bvalid == 1'b1) && (loc_waddr == 'h083))
begin
dma_tx_rst <= loc_wdata[0];
end
end
/*----------------------------------------------------------------------------------*\
Register Space -- The End
\*----------------------------------------------------------------------------------*/
reset #(
.IN_RST_ACTIVE ("HIGH"),
.OUT_RST_ACTIVE ("HIGH"),
.CYCLE (2)
) inst_reset (
.i_arst (mac_ext_rst),
.i_clk (s_eth_tx_clk),
.o_srst (w_eth_mac_rst)
);
assign w_rd_en = (next_rd_state == 1);
assign write_cnt_next = (s_eth_tx_tkeep ? write_cnt + 1 : write_cnt);
assign s_eth_tx_tready = !w_tx_full;
assign m_eth_tx_tvalid = rd_state != 0;
assign m_eth_tx_tdata = w_eth_tx_tdata;
assign m_eth_tx_tdest = w_eth_tx_tdest;
assign m_eth_tx_tlast = r_eth_tx_tlast;
always @(posedge s_eth_tx_clk or posedge w_eth_mac_rst)
begin
if (w_eth_mac_rst)
begin
write_cnt <= 16'd0;
end
else begin
if (s_eth_tx_tvalid && s_eth_tx_tready)
begin
if (s_eth_tx_tlast)
begin
write_cnt <= 16'd0;
end
else if (s_eth_tx_tkeep)
begin
write_cnt <= write_cnt + 1'b1;
end
end
end
end
always @(*)
begin
case (rd_state)
2'b00:
begin
if (!w_trans_empty)
begin
next_rd_state = 2'b01;
end else
begin
next_rd_state = 2'b00;
end
end
2'b01:
begin
if (!m_eth_tx_tready)
begin
next_rd_state = 2'b10;
end else if (m_eth_tx_tlast)
begin
next_rd_state = 2'b00;
end else
begin
next_rd_state = 2'b01;
end
end
2'b10:
begin
if (m_eth_tx_tvalid && m_eth_tx_tready)
begin
if (m_eth_tx_tlast)
next_rd_state = 2'b00;
else
next_rd_state = 2'b01;
end else
begin
next_rd_state = 2'b10;
end
end
default:
begin
next_rd_state = 2'b00;
end
endcase
end
always @(posedge s_eth_tx_clk or posedge w_eth_mac_rst)
begin
if (w_eth_mac_rst)
begin
rd_state = 2'b00;
read_cnt = 16'd0;
r_eth_tx_tlast <= 1'b0;
end
else
begin
rd_state <= next_rd_state;
if (next_rd_state == 2'b00)
begin
read_cnt <= 16'd0;
r_eth_tx_tlast <= 1'b0;
end
else
begin
if (w_rd_en)
begin
read_cnt <= read_cnt + 1'b1;
if ((read_cnt + 1'b1) == write_cnt_rd)
begin
r_eth_tx_tlast <= 1'b1;
end
end
end
end
end
gTSE_core_fifo_data u_standard_tx_fifo_trans (
.a_rst_i (w_eth_mac_rst),
.wr_clk_i (s_eth_tx_clk),
.wr_en_i (s_eth_tx_tvalid && s_eth_tx_tready && s_eth_tx_tkeep),
.wdata ({s_eth_tx_tkeep,s_eth_tx_tdest, s_eth_tx_tdata}),
.rd_clk_i (s_eth_tx_clk),
.rd_en_i (w_rd_en),
.rdata ({w_eth_tx_tkeep, w_eth_tx_tdest, w_eth_tx_tdata}),
.full_o (w_tx_full),
.empty_o (w_tx_empty),
.wr_datacount_o (),
.rd_datacount_o (w_txdata_rd_datacount),
.rst_busy (w_tx_size_busy)
);
gTSE_core_fifo_ctrl u_fwft_tx_fifo_data (
.a_rst_i (w_eth_mac_rst),
.wr_clk_i (s_eth_tx_clk),
.wr_en_i (s_eth_tx_tvalid && s_eth_tx_tready && s_eth_tx_tlast),
.wdata (write_cnt_next),
.rd_clk_i (s_eth_tx_clk),
.rd_en_i (m_eth_tx_tvalid && m_eth_tx_tready && m_eth_tx_tlast),
.rdata (write_cnt_rd),
.full_o (w_trans_full),
.empty_o (w_trans_empty),
.wr_datacount_o (),
.rd_datacount_o (w_trans_rdcnt),
.rst_busy (w_trans_rst_busy)
);
always @(posedge s_eth_tx_clk or posedge w_eth_mac_rst)
begin
if (w_eth_mac_rst)
begin
error <= 1'b0;
end else
begin
if ((w_trans_full && s_eth_tx_tvalid && s_eth_tx_tready && s_eth_tx_tlast ) || w_trans_rst_busy || (w_trans_empty && w_rd_en))
error <= 1'b1;
end
end
endmodule
////////////////////////////////////////////////////////////////////////////////////////////
module reset
#(
parameter IN_RST_ACTIVE = "LOW",
parameter OUT_RST_ACTIVE = "HIGH",
parameter CYCLE = 1
)
(
input i_arst,
input i_clk,
output o_srst
);
(* async_reg = "true" *) reg [CYCLE-1:0]r_srst_1P;
genvar i;
generate
if (IN_RST_ACTIVE == "LOW")
begin
if (OUT_RST_ACTIVE == "LOW")
begin
always@(negedge i_arst or posedge i_clk)
begin
if (~i_arst)
r_srst_1P[0] <= 1'b0;
else
r_srst_1P[0] <= 1'b1;
end
for (i=0; i<CYCLE-1; i=i+1)
begin
always@(negedge i_arst or posedge i_clk)
begin
if (~i_arst)
r_srst_1P[i+1] <= 1'b0;
else
r_srst_1P[i+1] <= r_srst_1P[i];
end
end
end
else
begin
always@(negedge i_arst or posedge i_clk)
begin
if (~i_arst)
r_srst_1P[0] <= 1'b1;
else
r_srst_1P[0] <= 1'b0;
end
for (i=0; i<CYCLE-1; i=i+1)
begin
always@(negedge i_arst or posedge i_clk)
begin
if (~i_arst)
r_srst_1P[i+1] <= 1'b1;
else
r_srst_1P[i+1] <= r_srst_1P[i];
end
end
end
end
else
begin
if (OUT_RST_ACTIVE == "LOW")
begin
always@(posedge i_arst or posedge i_clk)
begin
if (i_arst)
r_srst_1P[0] <= 1'b0;
else
r_srst_1P[0] <= 1'b1;
end
for (i=0; i<CYCLE-1; i=i+1)
begin
always@(posedge i_arst or posedge i_clk)
begin
if (i_arst)
r_srst_1P[i+1] <= 1'b0;
else
r_srst_1P[i+1] <= r_srst_1P[i];
end
end
end
else
begin
always@(posedge i_arst or posedge i_clk)
begin
if (i_arst)
r_srst_1P[0] <= 1'b1;
else
r_srst_1P[0] <= 1'b0;
end
for (i=0; i<CYCLE-1; i=i+1)
begin
always@(posedge i_arst or posedge i_clk)
begin
if (i_arst)
r_srst_1P[i+1] <= 1'b1;
else
r_srst_1P[i+1] <= r_srst_1P[i];
end
end
end
end
endgenerate
assign o_srst = r_srst_1P[CYCLE-1];
endmodule
module reset_ctrl
#(
parameter NUM_RST = 1,
parameter CYCLE = 1,
parameter IN_RST_ACTIVE = 1'b1,
parameter OUT_RST_ACTIVE = 1'b1
)
(
input [NUM_RST-1:0] i_arst,
input [NUM_RST-1:0] i_clk,
output [NUM_RST-1:0] o_srst
);
genvar i;
generate
for (i=0; i<NUM_RST; i=i+1)
begin
if (IN_RST_ACTIVE & (1'b1 << i))
begin
if (OUT_RST_ACTIVE & (1'b1 << i))
begin
reset
#(
.IN_RST_ACTIVE ("HIGH"),
.OUT_RST_ACTIVE ("HIGH"),
.CYCLE (CYCLE)
)
inst_sysclk_rstn
(
.i_arst (i_arst[i]),
.i_clk (i_clk[i]),
.o_srst (o_srst[i])
);
end
else
begin
reset
#(
.IN_RST_ACTIVE ("HIGH"),
.OUT_RST_ACTIVE ("LOW"),
.CYCLE (CYCLE)
)
inst_sysclk_rstn
(
.i_arst (i_arst[i]),
.i_clk (i_clk[i]),
.o_srst (o_srst[i])
);
end
end
else
begin
if (OUT_RST_ACTIVE & (1'b1 << i))
begin
reset
#(
.IN_RST_ACTIVE ("LOW"),
.OUT_RST_ACTIVE ("HIGH"),
.CYCLE (CYCLE)
)
inst_sysclk_rstn
(
.i_arst (i_arst[i]),
.i_clk (i_clk[i]),
.o_srst (o_srst[i])
);
end
else
begin
reset
#(
.IN_RST_ACTIVE ("LOW"),
.OUT_RST_ACTIVE ("LOW"),
.CYCLE (CYCLE)
)
inst_sysclk_rstn
(
.i_arst (i_arst[i]),
.i_clk (i_clk[i]),
.o_srst (o_srst[i])
);
end
end
end
endgenerate
endmodule
////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -1,7 +1,7 @@
PYTHON=python3
module load verilator
# module load vivado/2024.2
module load efinity
$PYTHON -m venv .venv/${HOSTNAME}
source .venv/${HOSTNAME}/bin/activate

View File

@@ -1,2 +0,0 @@
yaml:
- ../src/sub/upstream_path/sim/upstream_path.yaml

View File

@@ -1,3 +0,0 @@
`verilator_config
lint_off -rule TIMESCALEMOD

1
src/common/fifo Submodule

Submodule src/common/fifo added at 9f35e490dc

Submodule src/common/taxi deleted from 62da198a76

1
src/common/taxi-bsl Submodule

Submodule src/common/taxi-bsl added at 788ce5e982

View File

@@ -1,342 +1,342 @@
taxi/src/cndm_proto/tb/cndm_proto_pcie_us/test_cndm_proto_pcie_us.sv
taxi/src/cndm_proto/rtl/cndm_proto_desc_rd.sv
taxi/src/cndm_proto/rtl/cndm_proto_tx.sv
taxi/src/cndm_proto/rtl/cndm_proto_core.sv
taxi/src/cndm_proto/rtl/cndm_proto_rx.sv
taxi/src/cndm_proto/rtl/cndm_proto_pcie_us.sv
taxi/src/cndm_proto/rtl/cndm_proto_port.sv
taxi/src/cndm_proto/rtl/cndm_proto_cpl_wr.sv
taxi/src/axi/tb/taxi_axi_adapter/test_taxi_axi_adapter.sv
taxi/src/axi/tb/taxi_axi_axil_adapter/test_taxi_axi_axil_adapter.sv
taxi/src/axi/tb/taxi_axil_dp_ram/test_taxi_axil_dp_ram.sv
taxi/src/axi/tb/taxi_axil_crossbar/test_taxi_axil_crossbar.sv
taxi/src/axi/tb/taxi_axi_interconnect/test_taxi_axi_interconnect.sv
taxi/src/axi/tb/taxi_axil_interconnect/test_taxi_axil_interconnect.sv
taxi/src/axi/tb/taxi_axi_ram/test_taxi_axi_ram.sv
taxi/src/axi/tb/taxi_axil_adapter/test_taxi_axil_adapter.sv
taxi/src/axi/tb/taxi_axi_fifo/test_taxi_axi_fifo.sv
taxi/src/axi/tb/taxi_axil_interconnect_1s/test_taxi_axil_interconnect_1s.sv
taxi/src/axi/tb/taxi_axil_ram/test_taxi_axil_ram.sv
taxi/src/axi/tb/taxi_axi_crossbar_1s/test_taxi_axi_crossbar_1s.sv
taxi/src/axi/tb/taxi_axi_interconnect_1s/test_taxi_axi_interconnect_1s.sv
taxi/src/axi/tb/taxi_axi_crossbar/test_taxi_axi_crossbar.sv
taxi/src/axi/tb/taxi_axi_register/test_taxi_axi_register.sv
taxi/src/axi/tb/taxi_axil_register/test_taxi_axil_register.sv
taxi/src/axi/tb/taxi_axil_apb_adapter/test_taxi_axil_apb_adapter.sv
taxi/src/axi/tb/taxi_axil_crossbar_1s/test_taxi_axil_crossbar_1s.sv
taxi/src/axi/tb/taxi_axil_axi_adapter/test_taxi_axil_axi_adapter.sv
taxi/src/axi/rtl/taxi_axil_axi_adapter_wr.sv
taxi/src/axi/rtl/taxi_axil_crossbar_1s_wr.sv
taxi/src/axi/rtl/taxi_axi_crossbar_wr.sv
taxi/src/axi/rtl/taxi_axil_crossbar_wr.sv
taxi/src/axi/rtl/taxi_axi_interconnect_rd.sv
taxi/src/axi/rtl/taxi_axil_ram.sv
taxi/src/axi/rtl/taxi_axi_axil_adapter_rd.sv
taxi/src/axi/rtl/taxi_axil_dp_ram.sv
taxi/src/axi/rtl/taxi_axi_adapter_rd.sv
taxi/src/axi/rtl/taxi_axi_axil_adapter.sv
taxi/src/axi/rtl/taxi_axil_register_wr.sv
taxi/src/axi/rtl/taxi_axi_tie_wr.sv
taxi/src/axi/rtl/taxi_axil_adapter_rd.sv
taxi/src/axi/rtl/taxi_axil_interconnect_1s_rd.sv
taxi/src/axi/rtl/taxi_axil_tie.sv
taxi/src/axi/rtl/taxi_axil_crossbar_rd.sv
taxi/src/axi/rtl/taxi_axil_adapter_wr.sv
taxi/src/axi/rtl/taxi_axil_if.sv
taxi/src/axi/rtl/taxi_axi_tie.sv
taxi/src/axi/rtl/taxi_axil_tie_rd.sv
taxi/src/axi/rtl/taxi_axi_interconnect_wr.sv
taxi/src/axi/rtl/taxi_axil_interconnect_wr.sv
taxi/src/axi/rtl/taxi_axil_apb_adapter.sv
taxi/src/axi/rtl/taxi_axi_interconnect_1s.sv
taxi/src/axi/rtl/taxi_axil_interconnect_rd.sv
taxi/src/axi/rtl/taxi_axi_crossbar_1s.sv
taxi/src/axi/rtl/taxi_axi_crossbar_1s_rd.sv
taxi/src/axi/rtl/taxi_axi_fifo_wr.sv
taxi/src/axi/rtl/taxi_axil_interconnect.sv
taxi/src/axi/rtl/taxi_axil_crossbar_addr.sv
taxi/src/axi/rtl/taxi_axil_tie_wr.sv
taxi/src/axi/rtl/taxi_axi_register_rd.sv
taxi/src/axi/rtl/taxi_axi_interconnect.sv
taxi/src/axi/rtl/taxi_axi_adapter_wr.sv
taxi/src/axi/rtl/taxi_axi_crossbar_addr.sv
taxi/src/axi/rtl/taxi_axil_axi_adapter.sv
taxi/src/axi/rtl/taxi_axil_register_rd.sv
taxi/src/axi/rtl/taxi_axi_ram.sv
taxi/src/axi/rtl/taxi_axil_crossbar.sv
taxi/src/axi/rtl/taxi_axi_crossbar_rd.sv
taxi/src/axi/rtl/taxi_axil_crossbar_1s_rd.sv
taxi/src/axi/rtl/taxi_axi_tie_rd.sv
taxi/src/axi/rtl/taxi_axil_register.sv
taxi/src/axi/rtl/taxi_axi_interconnect_1s_rd.sv
taxi/src/axi/rtl/taxi_axi_axil_adapter_wr.sv
taxi/src/axi/rtl/taxi_axi_crossbar_1s_wr.sv
taxi/src/axi/rtl/taxi_axi_crossbar.sv
taxi/src/axi/rtl/taxi_axi_interconnect_1s_wr.sv
taxi/src/axi/rtl/taxi_axil_interconnect_1s.sv
taxi/src/axi/rtl/taxi_axi_if.sv
taxi/src/axi/rtl/taxi_axi_fifo.sv
taxi/src/axi/rtl/taxi_axil_adapter.sv
taxi/src/axi/rtl/taxi_axi_adapter.sv
taxi/src/axi/rtl/taxi_axil_interconnect_1s_wr.sv
taxi/src/axi/rtl/taxi_axi_register_wr.sv
taxi/src/axi/rtl/taxi_axi_register.sv
taxi/src/axi/rtl/taxi_axil_axi_adapter_rd.sv
taxi/src/axi/rtl/taxi_axi_fifo_rd.sv
taxi/src/axi/rtl/taxi_axil_crossbar_1s.sv
taxi/src/sync/rtl/taxi_sync_reset.sv
taxi/src/sync/rtl/taxi_sync_signal.sv
taxi/src/lfsr/rtl/taxi_lfsr_crc.sv
taxi/src/lfsr/rtl/taxi_lfsr_prbs_gen.sv
taxi/src/lfsr/rtl/taxi_lfsr_scramble.sv
taxi/src/lfsr/rtl/taxi_lfsr.sv
taxi/src/lfsr/rtl/taxi_lfsr_prbs_check.sv
taxi/src/lfsr/rtl/taxi_lfsr_descramble.sv
taxi/src/axis/tb/taxi_axis_register/test_taxi_axis_register.sv
taxi/src/axis/tb/taxi_axis_pipeline_register/test_taxi_axis_pipeline_register.sv
taxi/src/axis/tb/taxi_axis_fifo/test_taxi_axis_fifo.sv
taxi/src/axis/tb/taxi_axis_async_fifo_adapter/test_taxi_axis_async_fifo_adapter.sv
taxi/src/axis/tb/taxi_axis_cobs_decode/test_taxi_axis_cobs_decode.sv
taxi/src/axis/tb/taxi_axis_adapter/test_taxi_axis_adapter.sv
taxi/src/axis/tb/taxi_axis_mux/test_taxi_axis_mux.sv
taxi/src/axis/tb/taxi_axis_concat/test_taxi_axis_concat.sv
taxi/src/axis/tb/taxi_axis_fifo_adapter/test_taxi_axis_fifo_adapter.sv
taxi/src/axis/tb/taxi_axis_demux/test_taxi_axis_demux.sv
taxi/src/axis/tb/taxi_axis_pipeline_fifo/test_taxi_axis_pipeline_fifo.sv
taxi/src/axis/tb/taxi_axis_switch/test_taxi_axis_switch.sv
taxi/src/axis/tb/taxi_axis_cobs_encode/test_taxi_axis_cobs_encode.sv
taxi/src/axis/tb/taxi_axis_async_fifo/test_taxi_axis_async_fifo.sv
taxi/src/axis/tb/taxi_axis_broadcast/test_taxi_axis_broadcast.sv
taxi/src/axis/tb/taxi_axis_arb_mux/test_taxi_axis_arb_mux.sv
taxi/src/axis/rtl/taxi_axis_switch.sv
taxi/src/axis/rtl/taxi_axis_async_fifo.sv
taxi/src/axis/rtl/taxi_axis_broadcast.sv
taxi/src/axis/rtl/taxi_axis_demux.sv
taxi/src/axis/rtl/taxi_axis_async_fifo_adapter.sv
taxi/src/axis/rtl/taxi_axis_cobs_encode.sv
taxi/src/axis/rtl/taxi_axis_tie.sv
taxi/src/axis/rtl/taxi_axis_pipeline_fifo.sv
taxi/src/axis/rtl/taxi_axis_arb_mux.sv
taxi/src/axis/rtl/taxi_axis_cobs_decode.sv
taxi/src/axis/rtl/taxi_axis_pipeline_register.sv
taxi/src/axis/rtl/taxi_axis_fifo_adapter.sv
taxi/src/axis/rtl/taxi_axis_mux.sv
taxi/src/axis/rtl/taxi_axis_concat.sv
taxi/src/axis/rtl/taxi_axis_fifo.sv
taxi/src/axis/rtl/taxi_axis_null_snk.sv
taxi/src/axis/rtl/taxi_axis_if.sv
taxi/src/axis/rtl/taxi_axis_adapter.sv
taxi/src/axis/rtl/taxi_axis_register.sv
taxi/src/axis/rtl/taxi_axis_null_src.sv
taxi/src/prim/rtl/taxi_arbiter.sv
taxi/src/prim/rtl/taxi_penc.sv
taxi/src/zircon/tb/zircon_ip_tx_deparse/test_zircon_ip_tx_deparse.sv
taxi/src/zircon/tb/zircon_ip_len_cksum/test_zircon_ip_len_cksum.sv
taxi/src/zircon/tb/zircon_ip_rx_parse/test_zircon_ip_rx_parse.sv
taxi/src/zircon/rtl/zircon_ip_tx_deparse.sv
taxi/src/zircon/rtl/zircon_ip_tx_ingress.sv
taxi/src/zircon/rtl/zircon_ip_rx_egress.sv
taxi/src/zircon/rtl/zircon_ip_len_cksum.sv
taxi/src/zircon/rtl/zircon_ip_tx_buffer.sv
taxi/src/zircon/rtl/zircon_ip_rx_ingress.sv
taxi/src/zircon/rtl/zircon_ip_rx_parse.sv
taxi/src/zircon/rtl/zircon_ip_tx_egress.sv
taxi/src/dma/tb/taxi_dma_if_pcie_us/test_taxi_dma_if_pcie_us.sv
taxi/src/dma/tb/taxi_dma_if_axi/test_taxi_dma_if_axi.sv
taxi/src/dma/tb/taxi_dma_psdpram_async/test_taxi_dma_psdpram_async.sv
taxi/src/dma/tb/taxi_dma_if_pcie_us_rd/test_taxi_dma_if_pcie_us_rd.sv
taxi/src/dma/tb/taxi_dma_if_axi_rd/test_taxi_dma_if_axi_rd.sv
taxi/src/dma/tb/taxi_axi_cdma/test_taxi_axi_cdma.sv
taxi/src/dma/tb/taxi_dma_psdpram/test_taxi_dma_psdpram.sv
taxi/src/dma/tb/taxi_dma_client_axis_source/test_taxi_dma_client_axis_source.sv
taxi/src/dma/tb/taxi_axi_dma/test_taxi_axi_dma.sv
taxi/src/dma/tb/taxi_dma_if_pcie_us_wr/test_taxi_dma_if_pcie_us_wr.sv
taxi/src/dma/tb/taxi_dma_if_axi_wr/test_taxi_dma_if_axi_wr.sv
taxi/src/dma/tb/taxi_dma_client_axis_sink/test_taxi_dma_client_axis_sink.sv
taxi/src/dma/rtl/taxi_axi_dma_rd.sv
taxi/src/dma/rtl/taxi_dma_if_pcie_us_wr.sv
taxi/src/dma/rtl/taxi_dma_ram_demux_rd.sv
taxi/src/dma/rtl/taxi_dma_desc_if.sv
taxi/src/dma/rtl/taxi_dma_if_pcie_us_rd.sv
taxi/src/dma/rtl/taxi_dma_desc_mux.sv
taxi/src/dma/rtl/taxi_dma_ram_demux_wr.sv
taxi/src/dma/rtl/taxi_axi_cdma.sv
taxi/src/dma/rtl/taxi_dma_client_axis_source.sv
taxi/src/dma/rtl/taxi_dma_psdpram_async.sv
taxi/src/dma/rtl/taxi_dma_ram_demux.sv
taxi/src/dma/rtl/taxi_axi_dma.sv
taxi/src/dma/rtl/taxi_dma_if_mux.sv
taxi/src/dma/rtl/taxi_dma_psdpram.sv
taxi/src/dma/rtl/taxi_dma_client_axis_sink.sv
taxi/src/dma/rtl/taxi_dma_if_mux_rd.sv
taxi/src/dma/rtl/taxi_dma_if_axi_wr.sv
taxi/src/dma/rtl/taxi_axi_dma_wr.sv
taxi/src/dma/rtl/taxi_dma_if_mux_wr.sv
taxi/src/dma/rtl/taxi_dma_if_pcie_us.sv
taxi/src/dma/rtl/taxi_dma_if_axi.sv
taxi/src/dma/rtl/taxi_dma_ram_if.sv
taxi/src/dma/rtl/taxi_dma_if_axi_rd.sv
taxi/src/pcie/tb/taxi_pcie_axil_master/test_taxi_pcie_axil_master.sv
taxi/src/pcie/tb/taxi_pcie_us_axil_master/test_taxi_pcie_us_axil_master.sv
taxi/src/pcie/tb/taxi_pcie_axil_master_minimal/test_taxi_pcie_axil_master_minimal.sv
taxi/src/pcie/rtl/taxi_pcie_us_axil_master.sv
taxi/src/pcie/rtl/taxi_pcie_axil_master.sv
taxi/src/pcie/rtl/taxi_pcie_tlp_if.sv
taxi/src/pcie/rtl/taxi_pcie_us_msi.sv
taxi/src/pcie/rtl/taxi_pcie_axil_master_minimal.sv
taxi/src/xfcp/tb/taxi_xfcp_if_uart/test_taxi_xfcp_if_uart.sv
taxi/src/xfcp/tb/taxi_xfcp_mod_i2c_master/test_taxi_xfcp_mod_i2c_master.sv
taxi/src/xfcp/tb/taxi_xfcp_switch/test_taxi_xfcp_switch.sv
taxi/src/xfcp/tb/taxi_xfcp_mod_axi/test_taxi_xfcp_mod_axi.sv
taxi/src/xfcp/tb/taxi_xfcp_mod_apb/test_taxi_xfcp_mod_apb.sv
taxi/src/xfcp/tb/taxi_xfcp_mod_axil/test_taxi_xfcp_mod_axil.sv
taxi/src/xfcp/rtl/taxi_xfcp_mod_axi.sv
taxi/src/xfcp/rtl/taxi_xfcp_switch.sv
taxi/src/xfcp/rtl/taxi_xfcp_if_uart.sv
taxi/src/xfcp/rtl/taxi_xfcp_mod_axil.sv
taxi/src/xfcp/rtl/taxi_xfcp_mod_apb.sv
taxi/src/xfcp/rtl/taxi_xfcp_mod_i2c_master.sv
taxi/src/xfcp/rtl/taxi_xfcp_mod_stats.sv
taxi/src/math/tb/taxi_mt19937/test_taxi_mt19937.sv
taxi/src/math/rtl/taxi_mt19937.sv
taxi/src/hip/rtl/us/taxi_gt_qpll_reset.sv
taxi/src/hip/rtl/us/taxi_gt_rx_reset.sv
taxi/src/hip/rtl/us/taxi_gt_tx_reset.sv
taxi/src/hip/rtl/us/taxi_mmcm_frac.sv
taxi/src/cndm/board/AS02MC04/fpga/tb/fpga_core/test_fpga_core.sv
taxi/src/cndm/board/AS02MC04/fpga/rtl/fpga_core.sv
taxi/src/cndm/board/AS02MC04/fpga/rtl/fpga.sv
taxi/src/cndm/tb/cndm_micro_pcie_us/test_cndm_micro_pcie_us.sv
taxi/src/cndm/rtl/cndm_micro_core.sv
taxi/src/cndm/rtl/cndm_micro_tx.sv
taxi/src/cndm/rtl/cndm_micro_pcie_us.sv
taxi/src/cndm/rtl/cndm_micro_desc_rd.sv
taxi/src/cndm/rtl/cndm_micro_cpl_wr.sv
taxi/src/cndm/rtl/cndm_micro_rx.sv
taxi/src/cndm/rtl/cndm_micro_port.sv
taxi/src/stats/tb/taxi_stats_collect/test_taxi_stats_collect.sv
taxi/src/stats/tb/taxi_stats_strings_full/test_taxi_stats_strings_full.sv
taxi/src/stats/tb/taxi_stats_counter/test_taxi_stats_counter.sv
taxi/src/stats/rtl/taxi_stats_counter.sv
taxi/src/stats/rtl/taxi_stats_collect.sv
taxi/src/stats/rtl/taxi_stats_strings_full.sv
taxi/src/io/rtl/taxi_ssio_sdr_out_diff.sv
taxi/src/io/rtl/taxi_iddr.sv
taxi/src/io/rtl/taxi_ssio_sdr_in.sv
taxi/src/io/rtl/taxi_ssio_ddr_in.sv
taxi/src/io/rtl/taxi_ssio_sdr_in_diff.sv
taxi/src/io/rtl/taxi_led_sreg.sv
taxi/src/io/rtl/taxi_ssio_ddr_out_diff.sv
taxi/src/io/rtl/taxi_debounce_switch.sv
taxi/src/io/rtl/taxi_ssio_ddr_out.sv
taxi/src/io/rtl/taxi_ssio_sdr_out.sv
taxi/src/io/rtl/taxi_ssio_ddr_in_diff.sv
taxi/src/io/rtl/taxi_oddr.sv
taxi/src/eth/tb/taxi_axis_xgmii_tx_64/test_taxi_axis_xgmii_tx_64.sv
taxi/src/eth/tb/taxi_axis_baser_tx_32/test_taxi_axis_baser_tx_32.sv
taxi/src/eth/tb/taxi_eth_mac_25g_us/test_taxi_eth_mac_25g_us.sv
taxi/src/eth/tb/taxi_mac_ctrl_tx/test_taxi_mac_ctrl_tx.sv
taxi/src/eth/tb/taxi_eth_mac_1g_gmii_fifo/test_taxi_eth_mac_1g_gmii_fifo.sv
taxi/src/eth/tb/taxi_eth_mac_1g_rgmii_fifo/test_taxi_eth_mac_1g_rgmii_fifo.sv
taxi/src/eth/tb/taxi_axis_baser_rx_32/test_taxi_axis_baser_rx_32.sv
taxi/src/eth/tb/taxi_eth_mac_mii/test_taxi_eth_mac_mii.sv
taxi/src/eth/tb/taxi_mac_ctrl_rx/test_taxi_mac_ctrl_rx.sv
taxi/src/eth/tb/taxi_eth_mac_1g_gmii/test_taxi_eth_mac_1g_gmii.sv
taxi/src/eth/tb/taxi_axis_gmii_rx/test_taxi_axis_gmii_rx.sv
taxi/src/eth/tb/taxi_eth_mac_phy_10g_fifo/test_taxi_eth_mac_phy_10g_fifo.sv
taxi/src/eth/tb/taxi_axis_xgmii_rx_32/test_taxi_axis_xgmii_rx_32.sv
taxi/src/eth/tb/taxi_eth_mac_mii_fifo/test_taxi_eth_mac_mii_fifo.sv
taxi/src/eth/tb/taxi_axis_baser_rx_64/test_taxi_axis_baser_rx_64.sv
taxi/src/eth/tb/taxi_eth_mac_1g_rgmii/test_taxi_eth_mac_1g_rgmii.sv
taxi/src/eth/tb/taxi_eth_mac_phy_10g/test_taxi_eth_mac_phy_10g.sv
taxi/src/eth/tb/taxi_axis_xgmii_rx_64/test_taxi_axis_xgmii_rx_64.sv
taxi/src/eth/tb/taxi_axis_gmii_tx/test_taxi_axis_gmii_tx.sv
taxi/src/eth/tb/taxi_eth_mac_1g_fifo/test_taxi_eth_mac_1g_fifo.sv
taxi/src/eth/tb/taxi_eth_mac_10g_fifo/test_taxi_eth_mac_10g_fifo.sv
taxi/src/eth/tb/taxi_axis_xgmii_tx_32/test_taxi_axis_xgmii_tx_32.sv
taxi/src/eth/tb/taxi_axis_baser_tx_64/test_taxi_axis_baser_tx_64.sv
taxi/src/eth/tb/taxi_eth_mac_10g/test_taxi_eth_mac_10g.sv
taxi/src/eth/tb/taxi_eth_mac_1g/test_taxi_eth_mac_1g.sv
taxi/src/eth/rtl/taxi_axis_baser_rx_64.sv
taxi/src/eth/rtl/taxi_eth_mac_1g_gmii_fifo.sv
taxi/src/eth/rtl/taxi_eth_mac_mii_fifo.sv
taxi/src/eth/rtl/taxi_eth_phy_10g_rx_frame_sync.sv
taxi/src/eth/rtl/taxi_xgmii_baser_dec.sv
taxi/src/eth/rtl/taxi_eth_phy_10g_tx.sv
taxi/src/eth/rtl/taxi_eth_phy_10g_rx_ber_mon.sv
taxi/src/eth/rtl/taxi_eth_phy_10g_rx_watchdog.sv
taxi/src/eth/rtl/taxi_axis_baser_rx_32.sv
taxi/src/eth/rtl/taxi_axis_xgmii_rx_32.sv
taxi/src/eth/rtl/taxi_eth_phy_10g_rx.sv
taxi/src/eth/rtl/us/taxi_eth_mac_25g_us.sv
taxi/src/eth/rtl/us/taxi_eth_phy_10g_us_gt_ll.sv
taxi/src/eth/rtl/us/taxi_eth_phy_25g_us_gt_ll.sv
taxi/src/eth/rtl/us/taxi_eth_phy_10g_7_gt.sv
taxi/src/eth/rtl/us/taxi_eth_phy_25g_us_gt_apb.sv
taxi/src/eth/rtl/us/taxi_eth_phy_10g_us_gt.sv
taxi/src/eth/rtl/us/taxi_eth_mac_25g_us_ch.sv
taxi/src/eth/rtl/us/taxi_eth_phy_25g_us_gt.sv
taxi/src/eth/rtl/taxi_eth_mac_1g_fifo.sv
taxi/src/eth/rtl/taxi_xgmii_baser_enc.sv
taxi/src/eth/rtl/taxi_eth_mac_10g_fifo.sv
taxi/src/eth/rtl/taxi_eth_phy_10g_rx_if.sv
taxi/src/eth/rtl/taxi_eth_mac_stats.sv
taxi/src/eth/rtl/taxi_axis_baser_tx_32.sv
taxi/src/eth/rtl/taxi_eth_mac_phy_10g_rx.sv
taxi/src/eth/rtl/taxi_mac_ctrl_rx.sv
taxi/src/eth/rtl/taxi_eth_mac_phy_10g_tx.sv
taxi/src/eth/rtl/taxi_axis_gmii_rx.sv
taxi/src/eth/rtl/taxi_eth_phy_10g.sv
taxi/src/eth/rtl/taxi_axis_xgmii_rx_64.sv
taxi/src/eth/rtl/taxi_axis_xgmii_tx_64.sv
taxi/src/eth/rtl/taxi_rgmii_phy_if.sv
taxi/src/eth/rtl/taxi_eth_phy_10g_tx_if.sv
taxi/src/eth/rtl/taxi_eth_mac_phy_10g.sv
taxi/src/eth/rtl/taxi_axis_xgmii_tx_32.sv
taxi/src/eth/rtl/taxi_mac_pause_ctrl_tx.sv
taxi/src/eth/rtl/taxi_eth_mac_mii.sv
taxi/src/eth/rtl/taxi_eth_mac_1g_gmii.sv
taxi/src/eth/rtl/taxi_mac_ctrl_tx.sv
taxi/src/eth/rtl/taxi_eth_mac_1g_rgmii.sv
taxi/src/eth/rtl/taxi_mac_pause_ctrl_rx.sv
taxi/src/eth/rtl/taxi_eth_mac_1g_rgmii_fifo.sv
taxi/src/eth/rtl/taxi_eth_mac_10g.sv
taxi/src/eth/rtl/taxi_eth_mac_1g.sv
taxi/src/eth/rtl/taxi_mii_phy_if.sv
taxi/src/eth/rtl/taxi_axis_gmii_tx.sv
taxi/src/eth/rtl/taxi_axis_baser_tx_64.sv
taxi/src/eth/rtl/taxi_gmii_phy_if.sv
taxi/src/eth/rtl/taxi_eth_mac_phy_10g_fifo.sv
taxi/src/lss/tb/taxi_i2c_master/test_taxi_i2c_master.sv
taxi/src/lss/tb/taxi_uart/test_taxi_uart.sv
taxi/src/lss/tb/taxi_i2c_slave_apb_master/test_taxi_i2c_slave_apb_master.sv
taxi/src/lss/tb/taxi_i2c_slave_axil_master/test_taxi_i2c_slave_axil_master.sv
taxi/src/lss/tb/taxi_i2c_single_reg/test_taxi_i2c_single_reg.sv
taxi/src/lss/tb/taxi_i2c_slave/test_taxi_i2c_slave.sv
taxi/src/lss/rtl/taxi_mdio_master.sv
taxi/src/lss/rtl/taxi_i2c_slave_axil_master.sv
taxi/src/lss/rtl/taxi_i2c_single_reg.sv
taxi/src/lss/rtl/taxi_i2c_master.sv
taxi/src/lss/rtl/taxi_i2c_slave.sv
taxi/src/lss/rtl/taxi_i2c_slave_apb_master.sv
taxi/src/lss/rtl/taxi_uart_brg.sv
taxi/src/lss/rtl/taxi_i2c_init.sv
taxi/src/lss/rtl/taxi_uart_rx.sv
taxi/src/lss/rtl/taxi_uart.sv
taxi/src/lss/rtl/taxi_uart_tx.sv
taxi/src/ptp/tb/taxi_ptp_td_rel2tod/test_taxi_ptp_td_rel2tod.sv
taxi/src/ptp/rtl/taxi_ptp_clock_cdc.sv
taxi/src/ptp/rtl/taxi_ptp_clock.sv
taxi/src/ptp/rtl/taxi_ptp_td_leaf.sv
taxi/src/ptp/rtl/taxi_ptp_td_phc.sv
taxi/src/ptp/rtl/taxi_ptp_td_rel2tod.sv
taxi/src/ptp/rtl/taxi_ptp_perout.sv
taxi/src/apb/tb/taxi_apb_adapter/test_taxi_apb_adapter.sv
taxi/src/apb/tb/taxi_apb_dp_ram/test_taxi_apb_dp_ram.sv
taxi/src/apb/tb/taxi_apb_ram/test_taxi_apb_ram.sv
taxi/src/apb/tb/taxi_apb_interconnect/test_taxi_apb_interconnect.sv
taxi/src/apb/rtl/taxi_apb_interconnect.sv
taxi/src/apb/rtl/taxi_apb_ram.sv
taxi/src/apb/rtl/taxi_apb_if.sv
taxi/src/apb/rtl/taxi_apb_adapter.sv
taxi/src/apb/rtl/taxi_apb_dp_ram.sv
taxi-bsl/src/cndm_proto/tb/cndm_proto_pcie_us/test_cndm_proto_pcie_us.sv
taxi-bsl/src/cndm_proto/rtl/cndm_proto_desc_rd.sv
taxi-bsl/src/cndm_proto/rtl/cndm_proto_tx.sv
taxi-bsl/src/cndm_proto/rtl/cndm_proto_core.sv
taxi-bsl/src/cndm_proto/rtl/cndm_proto_rx.sv
taxi-bsl/src/cndm_proto/rtl/cndm_proto_pcie_us.sv
taxi-bsl/src/cndm_proto/rtl/cndm_proto_port.sv
taxi-bsl/src/cndm_proto/rtl/cndm_proto_cpl_wr.sv
taxi-bsl/src/axi/tb/taxi_axi_adapter/test_taxi_axi_adapter.sv
taxi-bsl/src/axi/tb/taxi_axi_axil_adapter/test_taxi_axi_axil_adapter.sv
taxi-bsl/src/axi/tb/taxi_axil_dp_ram/test_taxi_axil_dp_ram.sv
taxi-bsl/src/axi/tb/taxi_axil_crossbar/test_taxi_axil_crossbar.sv
taxi-bsl/src/axi/tb/taxi_axi_interconnect/test_taxi_axi_interconnect.sv
taxi-bsl/src/axi/tb/taxi_axil_interconnect/test_taxi_axil_interconnect.sv
taxi-bsl/src/axi/tb/taxi_axi_ram/test_taxi_axi_ram.sv
taxi-bsl/src/axi/tb/taxi_axil_adapter/test_taxi_axil_adapter.sv
taxi-bsl/src/axi/tb/taxi_axi_fifo/test_taxi_axi_fifo.sv
taxi-bsl/src/axi/tb/taxi_axil_interconnect_1s/test_taxi_axil_interconnect_1s.sv
taxi-bsl/src/axi/tb/taxi_axil_ram/test_taxi_axil_ram.sv
taxi-bsl/src/axi/tb/taxi_axi_crossbar_1s/test_taxi_axi_crossbar_1s.sv
taxi-bsl/src/axi/tb/taxi_axi_interconnect_1s/test_taxi_axi_interconnect_1s.sv
taxi-bsl/src/axi/tb/taxi_axi_crossbar/test_taxi_axi_crossbar.sv
taxi-bsl/src/axi/tb/taxi_axi_register/test_taxi_axi_register.sv
taxi-bsl/src/axi/tb/taxi_axil_register/test_taxi_axil_register.sv
taxi-bsl/src/axi/tb/taxi_axil_apb_adapter/test_taxi_axil_apb_adapter.sv
taxi-bsl/src/axi/tb/taxi_axil_crossbar_1s/test_taxi_axil_crossbar_1s.sv
taxi-bsl/src/axi/tb/taxi_axil_axi_adapter/test_taxi_axil_axi_adapter.sv
taxi-bsl/src/axi/rtl/taxi_axil_axi_adapter_wr.sv
taxi-bsl/src/axi/rtl/taxi_axil_crossbar_1s_wr.sv
taxi-bsl/src/axi/rtl/taxi_axi_crossbar_wr.sv
taxi-bsl/src/axi/rtl/taxi_axil_crossbar_wr.sv
taxi-bsl/src/axi/rtl/taxi_axi_interconnect_rd.sv
taxi-bsl/src/axi/rtl/taxi_axil_ram.sv
taxi-bsl/src/axi/rtl/taxi_axi_axil_adapter_rd.sv
taxi-bsl/src/axi/rtl/taxi_axil_dp_ram.sv
taxi-bsl/src/axi/rtl/taxi_axi_adapter_rd.sv
taxi-bsl/src/axi/rtl/taxi_axi_axil_adapter.sv
taxi-bsl/src/axi/rtl/taxi_axil_register_wr.sv
taxi-bsl/src/axi/rtl/taxi_axi_tie_wr.sv
taxi-bsl/src/axi/rtl/taxi_axil_adapter_rd.sv
taxi-bsl/src/axi/rtl/taxi_axil_interconnect_1s_rd.sv
taxi-bsl/src/axi/rtl/taxi_axil_tie.sv
taxi-bsl/src/axi/rtl/taxi_axil_crossbar_rd.sv
taxi-bsl/src/axi/rtl/taxi_axil_adapter_wr.sv
taxi-bsl/src/axi/rtl/taxi_axil_if.sv
taxi-bsl/src/axi/rtl/taxi_axi_tie.sv
taxi-bsl/src/axi/rtl/taxi_axil_tie_rd.sv
taxi-bsl/src/axi/rtl/taxi_axi_interconnect_wr.sv
taxi-bsl/src/axi/rtl/taxi_axil_interconnect_wr.sv
taxi-bsl/src/axi/rtl/taxi_axil_apb_adapter.sv
taxi-bsl/src/axi/rtl/taxi_axi_interconnect_1s.sv
taxi-bsl/src/axi/rtl/taxi_axil_interconnect_rd.sv
taxi-bsl/src/axi/rtl/taxi_axi_crossbar_1s.sv
taxi-bsl/src/axi/rtl/taxi_axi_crossbar_1s_rd.sv
taxi-bsl/src/axi/rtl/taxi_axi_fifo_wr.sv
taxi-bsl/src/axi/rtl/taxi_axil_interconnect.sv
taxi-bsl/src/axi/rtl/taxi_axil_crossbar_addr.sv
taxi-bsl/src/axi/rtl/taxi_axil_tie_wr.sv
taxi-bsl/src/axi/rtl/taxi_axi_register_rd.sv
taxi-bsl/src/axi/rtl/taxi_axi_interconnect.sv
taxi-bsl/src/axi/rtl/taxi_axi_adapter_wr.sv
taxi-bsl/src/axi/rtl/taxi_axi_crossbar_addr.sv
taxi-bsl/src/axi/rtl/taxi_axil_axi_adapter.sv
taxi-bsl/src/axi/rtl/taxi_axil_register_rd.sv
taxi-bsl/src/axi/rtl/taxi_axi_ram.sv
taxi-bsl/src/axi/rtl/taxi_axil_crossbar.sv
taxi-bsl/src/axi/rtl/taxi_axi_crossbar_rd.sv
taxi-bsl/src/axi/rtl/taxi_axil_crossbar_1s_rd.sv
taxi-bsl/src/axi/rtl/taxi_axi_tie_rd.sv
taxi-bsl/src/axi/rtl/taxi_axil_register.sv
taxi-bsl/src/axi/rtl/taxi_axi_interconnect_1s_rd.sv
taxi-bsl/src/axi/rtl/taxi_axi_axil_adapter_wr.sv
taxi-bsl/src/axi/rtl/taxi_axi_crossbar_1s_wr.sv
taxi-bsl/src/axi/rtl/taxi_axi_crossbar.sv
taxi-bsl/src/axi/rtl/taxi_axi_interconnect_1s_wr.sv
taxi-bsl/src/axi/rtl/taxi_axil_interconnect_1s.sv
taxi-bsl/src/axi/rtl/taxi_axi_if.sv
taxi-bsl/src/axi/rtl/taxi_axi_fifo.sv
taxi-bsl/src/axi/rtl/taxi_axil_adapter.sv
taxi-bsl/src/axi/rtl/taxi_axi_adapter.sv
taxi-bsl/src/axi/rtl/taxi_axil_interconnect_1s_wr.sv
taxi-bsl/src/axi/rtl/taxi_axi_register_wr.sv
taxi-bsl/src/axi/rtl/taxi_axi_register.sv
taxi-bsl/src/axi/rtl/taxi_axil_axi_adapter_rd.sv
taxi-bsl/src/axi/rtl/taxi_axi_fifo_rd.sv
taxi-bsl/src/axi/rtl/taxi_axil_crossbar_1s.sv
taxi-bsl/src/sync/rtl/taxi_sync_reset.sv
taxi-bsl/src/sync/rtl/taxi_sync_signal.sv
taxi-bsl/src/lfsr/rtl/taxi_lfsr_crc.sv
taxi-bsl/src/lfsr/rtl/taxi_lfsr_prbs_gen.sv
taxi-bsl/src/lfsr/rtl/taxi_lfsr_scramble.sv
taxi-bsl/src/lfsr/rtl/taxi_lfsr.sv
taxi-bsl/src/lfsr/rtl/taxi_lfsr_prbs_check.sv
taxi-bsl/src/lfsr/rtl/taxi_lfsr_descramble.sv
taxi-bsl/src/axis/tb/taxi_axis_register/test_taxi_axis_register.sv
taxi-bsl/src/axis/tb/taxi_axis_pipeline_register/test_taxi_axis_pipeline_register.sv
taxi-bsl/src/axis/tb/taxi_axis_fifo/test_taxi_axis_fifo.sv
taxi-bsl/src/axis/tb/taxi_axis_async_fifo_adapter/test_taxi_axis_async_fifo_adapter.sv
taxi-bsl/src/axis/tb/taxi_axis_cobs_decode/test_taxi_axis_cobs_decode.sv
taxi-bsl/src/axis/tb/taxi_axis_adapter/test_taxi_axis_adapter.sv
taxi-bsl/src/axis/tb/taxi_axis_mux/test_taxi_axis_mux.sv
taxi-bsl/src/axis/tb/taxi_axis_concat/test_taxi_axis_concat.sv
taxi-bsl/src/axis/tb/taxi_axis_fifo_adapter/test_taxi_axis_fifo_adapter.sv
taxi-bsl/src/axis/tb/taxi_axis_demux/test_taxi_axis_demux.sv
taxi-bsl/src/axis/tb/taxi_axis_pipeline_fifo/test_taxi_axis_pipeline_fifo.sv
taxi-bsl/src/axis/tb/taxi_axis_switch/test_taxi_axis_switch.sv
taxi-bsl/src/axis/tb/taxi_axis_cobs_encode/test_taxi_axis_cobs_encode.sv
taxi-bsl/src/axis/tb/taxi_axis_async_fifo/test_taxi_axis_async_fifo.sv
taxi-bsl/src/axis/tb/taxi_axis_broadcast/test_taxi_axis_broadcast.sv
taxi-bsl/src/axis/tb/taxi_axis_arb_mux/test_taxi_axis_arb_mux.sv
taxi-bsl/src/axis/rtl/taxi_axis_switch.sv
taxi-bsl/src/axis/rtl/taxi_axis_async_fifo.sv
taxi-bsl/src/axis/rtl/taxi_axis_broadcast.sv
taxi-bsl/src/axis/rtl/taxi_axis_demux.sv
taxi-bsl/src/axis/rtl/taxi_axis_async_fifo_adapter.sv
taxi-bsl/src/axis/rtl/taxi_axis_cobs_encode.sv
taxi-bsl/src/axis/rtl/taxi_axis_tie.sv
taxi-bsl/src/axis/rtl/taxi_axis_pipeline_fifo.sv
taxi-bsl/src/axis/rtl/taxi_axis_arb_mux.sv
taxi-bsl/src/axis/rtl/taxi_axis_cobs_decode.sv
taxi-bsl/src/axis/rtl/taxi_axis_pipeline_register.sv
taxi-bsl/src/axis/rtl/taxi_axis_fifo_adapter.sv
taxi-bsl/src/axis/rtl/taxi_axis_mux.sv
taxi-bsl/src/axis/rtl/taxi_axis_concat.sv
taxi-bsl/src/axis/rtl/taxi_axis_fifo.sv
taxi-bsl/src/axis/rtl/taxi_axis_null_snk.sv
taxi-bsl/src/axis/rtl/taxi_axis_if.sv
taxi-bsl/src/axis/rtl/taxi_axis_adapter.sv
taxi-bsl/src/axis/rtl/taxi_axis_register.sv
taxi-bsl/src/axis/rtl/taxi_axis_null_src.sv
taxi-bsl/src/prim/rtl/taxi_arbiter.sv
taxi-bsl/src/prim/rtl/taxi_penc.sv
taxi-bsl/src/zircon/tb/zircon_ip_tx_deparse/test_zircon_ip_tx_deparse.sv
taxi-bsl/src/zircon/tb/zircon_ip_len_cksum/test_zircon_ip_len_cksum.sv
taxi-bsl/src/zircon/tb/zircon_ip_rx_parse/test_zircon_ip_rx_parse.sv
taxi-bsl/src/zircon/rtl/zircon_ip_tx_deparse.sv
taxi-bsl/src/zircon/rtl/zircon_ip_tx_ingress.sv
taxi-bsl/src/zircon/rtl/zircon_ip_rx_egress.sv
taxi-bsl/src/zircon/rtl/zircon_ip_len_cksum.sv
taxi-bsl/src/zircon/rtl/zircon_ip_tx_buffer.sv
taxi-bsl/src/zircon/rtl/zircon_ip_rx_ingress.sv
taxi-bsl/src/zircon/rtl/zircon_ip_rx_parse.sv
taxi-bsl/src/zircon/rtl/zircon_ip_tx_egress.sv
taxi-bsl/src/dma/tb/taxi_dma_if_pcie_us/test_taxi_dma_if_pcie_us.sv
taxi-bsl/src/dma/tb/taxi_dma_if_axi/test_taxi_dma_if_axi.sv
taxi-bsl/src/dma/tb/taxi_dma_psdpram_async/test_taxi_dma_psdpram_async.sv
taxi-bsl/src/dma/tb/taxi_dma_if_pcie_us_rd/test_taxi_dma_if_pcie_us_rd.sv
taxi-bsl/src/dma/tb/taxi_dma_if_axi_rd/test_taxi_dma_if_axi_rd.sv
taxi-bsl/src/dma/tb/taxi_axi_cdma/test_taxi_axi_cdma.sv
taxi-bsl/src/dma/tb/taxi_dma_psdpram/test_taxi_dma_psdpram.sv
taxi-bsl/src/dma/tb/taxi_dma_client_axis_source/test_taxi_dma_client_axis_source.sv
taxi-bsl/src/dma/tb/taxi_axi_dma/test_taxi_axi_dma.sv
taxi-bsl/src/dma/tb/taxi_dma_if_pcie_us_wr/test_taxi_dma_if_pcie_us_wr.sv
taxi-bsl/src/dma/tb/taxi_dma_if_axi_wr/test_taxi_dma_if_axi_wr.sv
taxi-bsl/src/dma/tb/taxi_dma_client_axis_sink/test_taxi_dma_client_axis_sink.sv
taxi-bsl/src/dma/rtl/taxi_axi_dma_rd.sv
taxi-bsl/src/dma/rtl/taxi_dma_if_pcie_us_wr.sv
taxi-bsl/src/dma/rtl/taxi_dma_ram_demux_rd.sv
taxi-bsl/src/dma/rtl/taxi_dma_desc_if.sv
taxi-bsl/src/dma/rtl/taxi_dma_if_pcie_us_rd.sv
taxi-bsl/src/dma/rtl/taxi_dma_desc_mux.sv
taxi-bsl/src/dma/rtl/taxi_dma_ram_demux_wr.sv
taxi-bsl/src/dma/rtl/taxi_axi_cdma.sv
taxi-bsl/src/dma/rtl/taxi_dma_client_axis_source.sv
taxi-bsl/src/dma/rtl/taxi_dma_psdpram_async.sv
taxi-bsl/src/dma/rtl/taxi_dma_ram_demux.sv
taxi-bsl/src/dma/rtl/taxi_axi_dma.sv
taxi-bsl/src/dma/rtl/taxi_dma_if_mux.sv
taxi-bsl/src/dma/rtl/taxi_dma_psdpram.sv
taxi-bsl/src/dma/rtl/taxi_dma_client_axis_sink.sv
taxi-bsl/src/dma/rtl/taxi_dma_if_mux_rd.sv
taxi-bsl/src/dma/rtl/taxi_dma_if_axi_wr.sv
taxi-bsl/src/dma/rtl/taxi_axi_dma_wr.sv
taxi-bsl/src/dma/rtl/taxi_dma_if_mux_wr.sv
taxi-bsl/src/dma/rtl/taxi_dma_if_pcie_us.sv
taxi-bsl/src/dma/rtl/taxi_dma_if_axi.sv
taxi-bsl/src/dma/rtl/taxi_dma_ram_if.sv
taxi-bsl/src/dma/rtl/taxi_dma_if_axi_rd.sv
taxi-bsl/src/pcie/tb/taxi_pcie_axil_master/test_taxi_pcie_axil_master.sv
taxi-bsl/src/pcie/tb/taxi_pcie_us_axil_master/test_taxi_pcie_us_axil_master.sv
taxi-bsl/src/pcie/tb/taxi_pcie_axil_master_minimal/test_taxi_pcie_axil_master_minimal.sv
taxi-bsl/src/pcie/rtl/taxi_pcie_us_axil_master.sv
taxi-bsl/src/pcie/rtl/taxi_pcie_axil_master.sv
taxi-bsl/src/pcie/rtl/taxi_pcie_tlp_if.sv
taxi-bsl/src/pcie/rtl/taxi_pcie_us_msi.sv
taxi-bsl/src/pcie/rtl/taxi_pcie_axil_master_minimal.sv
taxi-bsl/src/xfcp/tb/taxi_xfcp_if_uart/test_taxi_xfcp_if_uart.sv
taxi-bsl/src/xfcp/tb/taxi_xfcp_mod_i2c_master/test_taxi_xfcp_mod_i2c_master.sv
taxi-bsl/src/xfcp/tb/taxi_xfcp_switch/test_taxi_xfcp_switch.sv
taxi-bsl/src/xfcp/tb/taxi_xfcp_mod_axi/test_taxi_xfcp_mod_axi.sv
taxi-bsl/src/xfcp/tb/taxi_xfcp_mod_apb/test_taxi_xfcp_mod_apb.sv
taxi-bsl/src/xfcp/tb/taxi_xfcp_mod_axil/test_taxi_xfcp_mod_axil.sv
taxi-bsl/src/xfcp/rtl/taxi_xfcp_mod_axi.sv
taxi-bsl/src/xfcp/rtl/taxi_xfcp_switch.sv
taxi-bsl/src/xfcp/rtl/taxi_xfcp_if_uart.sv
taxi-bsl/src/xfcp/rtl/taxi_xfcp_mod_axil.sv
taxi-bsl/src/xfcp/rtl/taxi_xfcp_mod_apb.sv
taxi-bsl/src/xfcp/rtl/taxi_xfcp_mod_i2c_master.sv
taxi-bsl/src/xfcp/rtl/taxi_xfcp_mod_stats.sv
taxi-bsl/src/math/tb/taxi_mt19937/test_taxi_mt19937.sv
taxi-bsl/src/math/rtl/taxi_mt19937.sv
taxi-bsl/src/hip/rtl/us/taxi_gt_qpll_reset.sv
taxi-bsl/src/hip/rtl/us/taxi_gt_rx_reset.sv
taxi-bsl/src/hip/rtl/us/taxi_gt_tx_reset.sv
taxi-bsl/src/hip/rtl/us/taxi_mmcm_frac.sv
taxi-bsl/src/cndm/board/AS02MC04/fpga/tb/fpga_core/test_fpga_core.sv
taxi-bsl/src/cndm/board/AS02MC04/fpga/rtl/fpga_core.sv
taxi-bsl/src/cndm/board/AS02MC04/fpga/rtl/fpga.sv
taxi-bsl/src/cndm/tb/cndm_micro_pcie_us/test_cndm_micro_pcie_us.sv
taxi-bsl/src/cndm/rtl/cndm_micro_core.sv
taxi-bsl/src/cndm/rtl/cndm_micro_tx.sv
taxi-bsl/src/cndm/rtl/cndm_micro_pcie_us.sv
taxi-bsl/src/cndm/rtl/cndm_micro_desc_rd.sv
taxi-bsl/src/cndm/rtl/cndm_micro_cpl_wr.sv
taxi-bsl/src/cndm/rtl/cndm_micro_rx.sv
taxi-bsl/src/cndm/rtl/cndm_micro_port.sv
taxi-bsl/src/stats/tb/taxi_stats_collect/test_taxi_stats_collect.sv
taxi-bsl/src/stats/tb/taxi_stats_strings_full/test_taxi_stats_strings_full.sv
taxi-bsl/src/stats/tb/taxi_stats_counter/test_taxi_stats_counter.sv
taxi-bsl/src/stats/rtl/taxi_stats_counter.sv
taxi-bsl/src/stats/rtl/taxi_stats_collect.sv
taxi-bsl/src/stats/rtl/taxi_stats_strings_full.sv
taxi-bsl/src/io/rtl/taxi_ssio_sdr_out_diff.sv
taxi-bsl/src/io/rtl/taxi_iddr.sv
taxi-bsl/src/io/rtl/taxi_ssio_sdr_in.sv
taxi-bsl/src/io/rtl/taxi_ssio_ddr_in.sv
taxi-bsl/src/io/rtl/taxi_ssio_sdr_in_diff.sv
taxi-bsl/src/io/rtl/taxi_led_sreg.sv
taxi-bsl/src/io/rtl/taxi_ssio_ddr_out_diff.sv
taxi-bsl/src/io/rtl/taxi_debounce_switch.sv
taxi-bsl/src/io/rtl/taxi_ssio_ddr_out.sv
taxi-bsl/src/io/rtl/taxi_ssio_sdr_out.sv
taxi-bsl/src/io/rtl/taxi_ssio_ddr_in_diff.sv
taxi-bsl/src/io/rtl/taxi_oddr.sv
taxi-bsl/src/eth/tb/taxi_axis_xgmii_tx_64/test_taxi_axis_xgmii_tx_64.sv
taxi-bsl/src/eth/tb/taxi_axis_baser_tx_32/test_taxi_axis_baser_tx_32.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_25g_us/test_taxi_eth_mac_25g_us.sv
taxi-bsl/src/eth/tb/taxi_mac_ctrl_tx/test_taxi_mac_ctrl_tx.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_1g_gmii_fifo/test_taxi_eth_mac_1g_gmii_fifo.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_1g_rgmii_fifo/test_taxi_eth_mac_1g_rgmii_fifo.sv
taxi-bsl/src/eth/tb/taxi_axis_baser_rx_32/test_taxi_axis_baser_rx_32.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_mii/test_taxi_eth_mac_mii.sv
taxi-bsl/src/eth/tb/taxi_mac_ctrl_rx/test_taxi_mac_ctrl_rx.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_1g_gmii/test_taxi_eth_mac_1g_gmii.sv
taxi-bsl/src/eth/tb/taxi_axis_gmii_rx/test_taxi_axis_gmii_rx.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_phy_10g_fifo/test_taxi_eth_mac_phy_10g_fifo.sv
taxi-bsl/src/eth/tb/taxi_axis_xgmii_rx_32/test_taxi_axis_xgmii_rx_32.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_mii_fifo/test_taxi_eth_mac_mii_fifo.sv
taxi-bsl/src/eth/tb/taxi_axis_baser_rx_64/test_taxi_axis_baser_rx_64.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_1g_rgmii/test_taxi_eth_mac_1g_rgmii.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_phy_10g/test_taxi_eth_mac_phy_10g.sv
taxi-bsl/src/eth/tb/taxi_axis_xgmii_rx_64/test_taxi_axis_xgmii_rx_64.sv
taxi-bsl/src/eth/tb/taxi_axis_gmii_tx/test_taxi_axis_gmii_tx.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_1g_fifo/test_taxi_eth_mac_1g_fifo.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_10g_fifo/test_taxi_eth_mac_10g_fifo.sv
taxi-bsl/src/eth/tb/taxi_axis_xgmii_tx_32/test_taxi_axis_xgmii_tx_32.sv
taxi-bsl/src/eth/tb/taxi_axis_baser_tx_64/test_taxi_axis_baser_tx_64.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_10g/test_taxi_eth_mac_10g.sv
taxi-bsl/src/eth/tb/taxi_eth_mac_1g/test_taxi_eth_mac_1g.sv
taxi-bsl/src/eth/rtl/taxi_axis_baser_rx_64.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_1g_gmii_fifo.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_mii_fifo.sv
taxi-bsl/src/eth/rtl/taxi_eth_phy_10g_rx_frame_sync.sv
taxi-bsl/src/eth/rtl/taxi_xgmii_baser_dec.sv
taxi-bsl/src/eth/rtl/taxi_eth_phy_10g_tx.sv
taxi-bsl/src/eth/rtl/taxi_eth_phy_10g_rx_ber_mon.sv
taxi-bsl/src/eth/rtl/taxi_eth_phy_10g_rx_watchdog.sv
taxi-bsl/src/eth/rtl/taxi_axis_baser_rx_32.sv
taxi-bsl/src/eth/rtl/taxi_axis_xgmii_rx_32.sv
taxi-bsl/src/eth/rtl/taxi_eth_phy_10g_rx.sv
taxi-bsl/src/eth/rtl/us/taxi_eth_mac_25g_us.sv
taxi-bsl/src/eth/rtl/us/taxi_eth_phy_10g_us_gt_ll.sv
taxi-bsl/src/eth/rtl/us/taxi_eth_phy_25g_us_gt_ll.sv
taxi-bsl/src/eth/rtl/us/taxi_eth_phy_10g_7_gt.sv
taxi-bsl/src/eth/rtl/us/taxi_eth_phy_25g_us_gt_apb.sv
taxi-bsl/src/eth/rtl/us/taxi_eth_phy_10g_us_gt.sv
taxi-bsl/src/eth/rtl/us/taxi_eth_mac_25g_us_ch.sv
taxi-bsl/src/eth/rtl/us/taxi_eth_phy_25g_us_gt.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_1g_fifo.sv
taxi-bsl/src/eth/rtl/taxi_xgmii_baser_enc.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_10g_fifo.sv
taxi-bsl/src/eth/rtl/taxi_eth_phy_10g_rx_if.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_stats.sv
taxi-bsl/src/eth/rtl/taxi_axis_baser_tx_32.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_phy_10g_rx.sv
taxi-bsl/src/eth/rtl/taxi_mac_ctrl_rx.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_phy_10g_tx.sv
taxi-bsl/src/eth/rtl/taxi_axis_gmii_rx.sv
taxi-bsl/src/eth/rtl/taxi_eth_phy_10g.sv
taxi-bsl/src/eth/rtl/taxi_axis_xgmii_rx_64.sv
taxi-bsl/src/eth/rtl/taxi_axis_xgmii_tx_64.sv
taxi-bsl/src/eth/rtl/taxi_rgmii_phy_if.sv
taxi-bsl/src/eth/rtl/taxi_eth_phy_10g_tx_if.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_phy_10g.sv
taxi-bsl/src/eth/rtl/taxi_axis_xgmii_tx_32.sv
taxi-bsl/src/eth/rtl/taxi_mac_pause_ctrl_tx.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_mii.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_1g_gmii.sv
taxi-bsl/src/eth/rtl/taxi_mac_ctrl_tx.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_1g_rgmii.sv
taxi-bsl/src/eth/rtl/taxi_mac_pause_ctrl_rx.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_1g_rgmii_fifo.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_10g.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_1g.sv
taxi-bsl/src/eth/rtl/taxi_mii_phy_if.sv
taxi-bsl/src/eth/rtl/taxi_axis_gmii_tx.sv
taxi-bsl/src/eth/rtl/taxi_axis_baser_tx_64.sv
taxi-bsl/src/eth/rtl/taxi_gmii_phy_if.sv
taxi-bsl/src/eth/rtl/taxi_eth_mac_phy_10g_fifo.sv
taxi-bsl/src/lss/tb/taxi_i2c_master/test_taxi_i2c_master.sv
taxi-bsl/src/lss/tb/taxi_uart/test_taxi_uart.sv
taxi-bsl/src/lss/tb/taxi_i2c_slave_apb_master/test_taxi_i2c_slave_apb_master.sv
taxi-bsl/src/lss/tb/taxi_i2c_slave_axil_master/test_taxi_i2c_slave_axil_master.sv
taxi-bsl/src/lss/tb/taxi_i2c_single_reg/test_taxi_i2c_single_reg.sv
taxi-bsl/src/lss/tb/taxi_i2c_slave/test_taxi_i2c_slave.sv
taxi-bsl/src/lss/rtl/taxi_mdio_master.sv
taxi-bsl/src/lss/rtl/taxi_i2c_slave_axil_master.sv
taxi-bsl/src/lss/rtl/taxi_i2c_single_reg.sv
taxi-bsl/src/lss/rtl/taxi_i2c_master.sv
taxi-bsl/src/lss/rtl/taxi_i2c_slave.sv
taxi-bsl/src/lss/rtl/taxi_i2c_slave_apb_master.sv
taxi-bsl/src/lss/rtl/taxi_uart_brg.sv
taxi-bsl/src/lss/rtl/taxi_i2c_init.sv
taxi-bsl/src/lss/rtl/taxi_uart_rx.sv
taxi-bsl/src/lss/rtl/taxi_uart.sv
taxi-bsl/src/lss/rtl/taxi_uart_tx.sv
taxi-bsl/src/ptp/tb/taxi_ptp_td_rel2tod/test_taxi_ptp_td_rel2tod.sv
taxi-bsl/src/ptp/rtl/taxi_ptp_clock_cdc.sv
taxi-bsl/src/ptp/rtl/taxi_ptp_clock.sv
taxi-bsl/src/ptp/rtl/taxi_ptp_td_leaf.sv
taxi-bsl/src/ptp/rtl/taxi_ptp_td_phc.sv
taxi-bsl/src/ptp/rtl/taxi_ptp_td_rel2tod.sv
taxi-bsl/src/ptp/rtl/taxi_ptp_perout.sv
taxi-bsl/src/apb/tb/taxi_apb_adapter/test_taxi_apb_adapter.sv
taxi-bsl/src/apb/tb/taxi_apb_dp_ram/test_taxi_apb_dp_ram.sv
taxi-bsl/src/apb/tb/taxi_apb_ram/test_taxi_apb_ram.sv
taxi-bsl/src/apb/tb/taxi_apb_interconnect/test_taxi_apb_interconnect.sv
taxi-bsl/src/apb/rtl/taxi_apb_interconnect.sv
taxi-bsl/src/apb/rtl/taxi_apb_ram.sv
taxi-bsl/src/apb/rtl/taxi_apb_if.sv
taxi-bsl/src/apb/rtl/taxi_apb_adapter.sv
taxi-bsl/src/apb/rtl/taxi_apb_dp_ram.sv

View File

@@ -1,17 +0,0 @@
module downstream_path (
input clk,
input rst,
taxi_axis_if.snk s_axis_data,
taxi_axis_if.src m_axis_data,
taxi_axi_if.rd_mst m_axi_rd,
taxi_axi_if.wr_mst m_axi_wr,
taxi_apb_if.slv s_apb_cfg,
output logic o_irq_m2s,
output logic o_irq_s2m
);
endmodule

View File

@@ -1,7 +0,0 @@
../../../../sim/verilator.vlt
upstream_ip_check_harness.sv
../src/sources.list
../../../common/taxi_sources.list

View File

@@ -1,65 +0,0 @@
import cocotb
from scapy.layers.l2 import Ether
from scapy.layers.inet import IP, TCP
from cocotb.handle import Immediate
from cocotb.clock import Clock
from cocotb.triggers import Timer, RisingEdge
from cocotbext.axi import AxiStreamBus, AxiStreamSink, AxiStreamSource
import logging
CLK_PERIOD = 5
class TB:
def __init__(self, dut):
self.dut = dut
self.log = logging.getLogger("cocotb.tb")
self.log.setLevel(logging.INFO)
cocotb.start_soon(Clock(self.dut.clk, CLK_PERIOD, unit="ns").start())
self.s_axis_data = AxiStreamSource(AxiStreamBus.from_prefix(dut.s_axis_data, ""), dut.clk, dut.rst)
self.m_axis_dma = AxiStreamSink(AxiStreamBus.from_prefix(dut.m_axis_dma, ""), dut.clk, dut.rst)
self.m_axis_data = AxiStreamSink(AxiStreamBus.from_prefix(dut.m_axis_data, ""), dut.clk, dut.rst)
async def cycle_reset(self):
await self._cycle_reset(self.dut.rst, self.dut.clk)
async def _cycle_reset(self, rst, clk):
rst.value = Immediate(0)
await RisingEdge(clk)
await RisingEdge(clk)
rst.value = 1
await RisingEdge(clk)
await RisingEdge(clk)
rst.value = 0
await RisingEdge(clk)
await RisingEdge(clk)
@cocotb.test
async def test_sanity(dut):
tb = TB(dut)
await tb.cycle_reset()
tb.dut.i_dest_ip.value = 0xc0a85715
pkt_0 = Ether() / IP(src="127.0.0.1", dst="192.168.87.21") / TCP() / "Hello, world!"
await tb.s_axis_data.send(pkt_0.build())
pkt_1 = Ether() / IP(src="127.0.0.1", dst="192.168.87.22") / TCP() / "Different Data now!"
await tb.s_axis_data.send(pkt_1.build())
recv_pkt_0 = await tb.m_axis_data.recv()
recv_pkt_1 = await tb.m_axis_dma.recv()
assert recv_pkt_0.tdata == pkt_0.build()
assert recv_pkt_1.tdata == pkt_1.build()

View File

@@ -1,21 +0,0 @@
module upstream_ip_check_harness();
taxi_axis_if #(.DATA_W(32)) s_axis_data();
taxi_axis_if #(.DATA_W(32)) m_axis_dma();
taxi_axis_if #(.DATA_W(32)) m_axis_data();
logic clk;
logic rst;
logic [31:0] i_dest_ip;
upstream_ip_check #(.DATA_W(32)) u_dut (
.clk (clk),
.rst (rst),
.s_axis_data (s_axis_data),
.m_axis_dma (m_axis_dma),
.m_axis_data (m_axis_data),
.i_dest_ip (i_dest_ip)
);
endmodule

View File

@@ -1,7 +0,0 @@
tests:
- name: "upstream_ip_check"
toplevel: "upstream_ip_check_harness"
modules:
- "upstream_ip_check"
sources: "sources.list"
waves: True

View File

@@ -1 +0,0 @@
upstream_ip_check.sv

Some files were not shown because too many files have changed in this diff Show More