mor1kx-bemicrocv/ip/altera/ddr3/altera_mem_if_hard_memory_c...

1890 lines
179 KiB
Systemverilog

// (C) 2001-2015 Altera Corporation. All rights reserved.
// Your use of Altera Corporation's design tools, logic functions and other
// software and tools, and its AMPP partner logic functions, and any output
// files any of the foregoing (including device programming or simulation
// files), and any associated documentation or information are expressly subject
// to the terms and conditions of the Altera Program License Subscription
// Agreement, Altera MegaCore Function License Agreement, or other applicable
// license agreement, including, without limitation, that your use is for the
// sole purpose of programming logic devices manufactured by Altera and sold by
// Altera or its authorized distributors. Please refer to the applicable
// agreement for further details.
`timescale 1 ps / 1 ps
(* altera_attribute = "-name FITTER_ADJUST_HC_SHORT_PATH_GUARDBAND 100" *)
module altera_mem_if_hard_memory_controller_top_cyclonev (
afi_clk,
afi_half_clk,
ctl_clk,
mp_cmd_clk_0,
mp_cmd_clk_1,
mp_cmd_clk_2,
mp_cmd_clk_3,
mp_cmd_clk_4,
mp_cmd_clk_5,
mp_cmd_reset_n_0,
mp_cmd_reset_n_1,
mp_cmd_reset_n_2,
mp_cmd_reset_n_3,
mp_cmd_reset_n_4,
mp_cmd_reset_n_5,
mp_rfifo_clk_0,
mp_rfifo_clk_1,
mp_rfifo_clk_2,
mp_rfifo_clk_3,
mp_rfifo_reset_n_0,
mp_rfifo_reset_n_1,
mp_rfifo_reset_n_2,
mp_rfifo_reset_n_3,
mp_wfifo_clk_0,
mp_wfifo_clk_1,
mp_wfifo_clk_2,
mp_wfifo_clk_3,
mp_wfifo_reset_n_0,
mp_wfifo_reset_n_1,
mp_wfifo_reset_n_2,
mp_wfifo_reset_n_3,
csr_clk,
csr_reset_n,
afi_reset_n,
ctl_reset_n,
avl_ready_0,
avl_write_req_0,
avl_read_req_0,
avl_addr_0,
avl_be_0,
avl_wdata_0,
avl_size_0,
avl_burstbegin_0,
avl_rdata_0,
avl_rdata_valid_0,
avl_ready_1,
avl_write_req_1,
avl_read_req_1,
avl_addr_1,
avl_be_1,
avl_wdata_1,
avl_size_1,
avl_burstbegin_1,
avl_rdata_1,
avl_rdata_valid_1,
avl_ready_2,
avl_write_req_2,
avl_read_req_2,
avl_addr_2,
avl_be_2,
avl_wdata_2,
avl_size_2,
avl_burstbegin_2,
avl_rdata_2,
avl_rdata_valid_2,
avl_ready_3,
avl_write_req_3,
avl_read_req_3,
avl_addr_3,
avl_be_3,
avl_wdata_3,
avl_size_3,
avl_burstbegin_3,
avl_rdata_3,
avl_rdata_valid_3,
avl_ready_4,
avl_write_req_4,
avl_read_req_4,
avl_addr_4,
avl_be_4,
avl_wdata_4,
avl_size_4,
avl_burstbegin_4,
avl_rdata_4,
avl_rdata_valid_4,
avl_ready_5,
avl_write_req_5,
avl_read_req_5,
avl_addr_5,
avl_be_5,
avl_wdata_5,
avl_size_5,
avl_burstbegin_5,
avl_rdata_5,
avl_rdata_valid_5,
afi_rst_n,
afi_cs_n,
afi_cke,
afi_odt,
afi_addr,
afi_ba,
afi_ras_n,
afi_cas_n,
afi_we_n,
afi_dqs_burst,
afi_wdata_valid,
afi_wdata,
afi_dm,
afi_wlat,
afi_rdata_en,
afi_rdata_en_full,
afi_rdata,
afi_rdata_valid,
afi_rlat,
afi_cal_success,
afi_mem_clk_disable,
afi_ctl_refresh_done,
afi_seq_busy,
afi_ctl_long_idle,
afi_cal_fail,
afi_cal_req,
afi_init_req,
cfg_dramconfig,
cfg_caswrlat,
cfg_addlat,
cfg_tcl,
cfg_trfc,
cfg_trefi,
cfg_twr,
cfg_tmrd,
cfg_coladdrwidth,
cfg_rowaddrwidth,
cfg_bankaddrwidth,
cfg_csaddrwidth,
cfg_interfacewidth,
cfg_devicewidth,
local_refresh_ack,
local_powerdn_ack,
local_self_rfsh_ack,
local_deep_powerdn_ack,
local_refresh_req,
local_refresh_chip,
local_self_rfsh_req,
local_self_rfsh_chip,
local_deep_powerdn_req,
local_deep_powerdn_chip,
local_multicast,
local_priority,
local_init_done,
local_cal_success,
local_cal_fail,
csr_read_req,
csr_write_req,
csr_addr,
csr_wdata,
csr_rdata,
csr_be,
csr_rdata_valid,
csr_waitrequest,
bonding_out_1,
bonding_in_1,
bonding_out_2,
bonding_in_2,
bonding_out_3,
bonding_in_3,
io_intaficalfail,
ctl_init_req,
local_sts_ctl_empty,
io_intaficalsuccess
);
//////////////////////////////////////////////////////////////////////////////
// BEGIN PARAMETER SECTION
// Existing SIP parameters
parameter AVL_SIZE_WIDTH = 0;
parameter AVL_ADDR_WIDTH = 0;
parameter AVL_DATA_WIDTH = 0;
parameter MEM_IF_CLK_PAIR_COUNT = 0;
parameter MEM_IF_CS_WIDTH = 0;
parameter MEM_IF_DQS_WIDTH = 0;
parameter MEM_IF_CHIP_BITS = 0;
parameter AFI_ADDR_WIDTH = 0;
parameter AFI_BANKADDR_WIDTH = 0;
parameter AFI_CONTROL_WIDTH = 0;
parameter AFI_CS_WIDTH = 0;
parameter AFI_ODT_WIDTH = 0;
parameter AFI_DM_WIDTH = 0;
parameter AFI_DQ_WIDTH = 0;
parameter AFI_WRITE_DQS_WIDTH = 0;
parameter AFI_RATE_RATIO = 0;
parameter AFI_WLAT_WIDTH = 0;
parameter AFI_RLAT_WIDTH = 0;
parameter CSR_BE_WIDTH = 0;
parameter CSR_ADDR_WIDTH = 0;
parameter CSR_DATA_WIDTH = 0;
// New parameters for HMC
parameter AVL_DATA_WIDTH_PORT_0 = 0;
parameter AVL_DATA_WIDTH_PORT_1 = 0;
parameter AVL_DATA_WIDTH_PORT_2 = 0;
parameter AVL_DATA_WIDTH_PORT_3 = 0;
parameter AVL_DATA_WIDTH_PORT_4 = 0;
parameter AVL_DATA_WIDTH_PORT_5 = 0;
parameter AVL_ADDR_WIDTH_PORT_0 = 0;
parameter AVL_ADDR_WIDTH_PORT_1 = 0;
parameter AVL_ADDR_WIDTH_PORT_2 = 0;
parameter AVL_ADDR_WIDTH_PORT_3 = 0;
parameter AVL_ADDR_WIDTH_PORT_4 = 0;
parameter AVL_ADDR_WIDTH_PORT_5 = 0;
parameter AVL_NUM_SYMBOLS_PORT_0 = 0;
parameter AVL_NUM_SYMBOLS_PORT_1 = 0;
parameter AVL_NUM_SYMBOLS_PORT_2 = 0;
parameter AVL_NUM_SYMBOLS_PORT_3 = 0;
parameter AVL_NUM_SYMBOLS_PORT_4 = 0;
parameter AVL_NUM_SYMBOLS_PORT_5 = 0;
parameter LSB_WFIFO_PORT_0 = 5;
parameter MSB_WFIFO_PORT_0 = 5;
parameter LSB_RFIFO_PORT_0 = 5;
parameter MSB_RFIFO_PORT_0 = 5;
parameter LSB_WFIFO_PORT_1 = 5;
parameter MSB_WFIFO_PORT_1 = 5;
parameter LSB_RFIFO_PORT_1 = 5;
parameter MSB_RFIFO_PORT_1 = 5;
parameter LSB_WFIFO_PORT_2 = 5;
parameter MSB_WFIFO_PORT_2 = 5;
parameter LSB_RFIFO_PORT_2 = 5;
parameter MSB_RFIFO_PORT_2 = 5;
parameter LSB_WFIFO_PORT_3 = 5;
parameter MSB_WFIFO_PORT_3 = 5;
parameter LSB_RFIFO_PORT_3 = 5;
parameter MSB_RFIFO_PORT_3 = 5;
parameter LSB_WFIFO_PORT_4 = 5;
parameter MSB_WFIFO_PORT_4 = 5;
parameter LSB_RFIFO_PORT_4 = 5;
parameter MSB_RFIFO_PORT_4 = 5;
parameter LSB_WFIFO_PORT_5 = 5;
parameter MSB_WFIFO_PORT_5 = 5;
parameter LSB_RFIFO_PORT_5 = 5;
parameter MSB_RFIFO_PORT_5 = 5;
parameter HARD_PHY = 0;
// Atom defparam
// Those that mark with // SYTH & SIM is used to force MMR signals in simulation
// Those that mark with // SYTH ONLY is only used for Quartus sythesis
parameter ENUM_ATTR_COUNTER_ONE_RESET = "DISABLED"; //SYTH & SIM
parameter ENUM_ATTR_COUNTER_ZERO_RESET = "DISABLED"; //SYTH & SIM
parameter ENUM_ATTR_STATIC_CONFIG_VALID = "DISABLED"; //SYTH & SIM
parameter ENUM_AUTO_PCH_ENABLE_0 = "DISABLED"; //SYTH & SIM
parameter ENUM_AUTO_PCH_ENABLE_1 = "DISABLED"; //SYTH & SIM
parameter ENUM_AUTO_PCH_ENABLE_2 = "DISABLED"; //SYTH & SIM
parameter ENUM_AUTO_PCH_ENABLE_3 = "DISABLED"; //SYTH & SIM
parameter ENUM_AUTO_PCH_ENABLE_4 = "DISABLED"; //SYTH & SIM
parameter ENUM_AUTO_PCH_ENABLE_5 = "DISABLED"; //SYTH & SIM
parameter ENUM_CAL_REQ = "DISABLED"; //SYTH & SIM
parameter ENUM_CFG_BURST_LENGTH = "BL_8"; //SYTH & SIM
parameter ENUM_CFG_INTERFACE_WIDTH = "DWIDTH_32"; //SYTH & SIM
parameter ENUM_CFG_SELF_RFSH_EXIT_CYCLES = "SELF_RFSH_EXIT_CYCLES_512"; //SYTH & SIM
parameter ENUM_CFG_STARVE_LIMIT = "STARVE_LIMIT_32"; //SYTH & SIM
parameter ENUM_CFG_TYPE = "DDR3"; //SYTH & SIM
parameter ENUM_CLOCK_OFF_0 = "DISABLED"; //SIM ONLY
parameter ENUM_CLOCK_OFF_1 = "DISABLED"; //SIM ONLY
parameter ENUM_CLOCK_OFF_2 = "DISABLED"; //SIM ONLY
parameter ENUM_CLOCK_OFF_3 = "DISABLED"; //SIM ONLY
parameter ENUM_CLOCK_OFF_4 = "DISABLED"; //SIM ONLY
parameter ENUM_CLOCK_OFF_5 = "DISABLED"; //SIM ONLY
parameter ENUM_CLR_INTR = "NO_CLR_INTR"; //SIM ONLY
parameter ENUM_CMD_PORT_IN_USE_0 = "FALSE"; //SYTH ONLY
parameter ENUM_CMD_PORT_IN_USE_1 = "FALSE"; //SYTH ONLY
parameter ENUM_CMD_PORT_IN_USE_2 = "FALSE"; //SYTH ONLY
parameter ENUM_CMD_PORT_IN_USE_3 = "FALSE"; //SYTH ONLY
parameter ENUM_CMD_PORT_IN_USE_4 = "FALSE"; //SYTH ONLY
parameter ENUM_CMD_PORT_IN_USE_5 = "FALSE"; //SYTH ONLY
parameter ENUM_CPORT0_RDY_ALMOST_FULL = "NOT_FULL"; //SYTH & SIM
parameter ENUM_CPORT0_RFIFO_MAP = "FIFO_0"; //SYTH & SIM
parameter ENUM_CPORT0_TYPE = "DISABLE"; //SYTH & SIM
parameter ENUM_CPORT0_WFIFO_MAP = "FIFO_0"; //SYTH & SIM
parameter ENUM_CPORT1_RDY_ALMOST_FULL = "NOT_FULL"; //SYTH & SIM
parameter ENUM_CPORT1_RFIFO_MAP = "FIFO_0"; //SYTH & SIM
parameter ENUM_CPORT1_TYPE = "DISABLE"; //SYTH & SIM
parameter ENUM_CPORT1_WFIFO_MAP = "FIFO_0"; //SYTH & SIM
parameter ENUM_CPORT2_RDY_ALMOST_FULL = "NOT_FULL"; //SYTH & SIM
parameter ENUM_CPORT2_RFIFO_MAP = "FIFO_0"; //SYTH & SIM
parameter ENUM_CPORT2_TYPE = "DISABLE"; //SYTH & SIM
parameter ENUM_CPORT2_WFIFO_MAP = "FIFO_0"; //SYTH & SIM
parameter ENUM_CPORT3_RDY_ALMOST_FULL = "NOT_FULL"; //SYTH & SIM
parameter ENUM_CPORT3_RFIFO_MAP = "FIFO_0"; //SYTH & SIM
parameter ENUM_CPORT3_TYPE = "DISABLE"; //SYTH & SIM
parameter ENUM_CPORT3_WFIFO_MAP = "FIFO_0"; //SYTH & SIM
parameter ENUM_CPORT4_RDY_ALMOST_FULL = "NOT_FULL"; //SYTH & SIM
parameter ENUM_CPORT4_RFIFO_MAP = "FIFO_0"; //SYTH & SIM
parameter ENUM_CPORT4_TYPE = "DISABLE"; //SYTH & SIM
parameter ENUM_CPORT4_WFIFO_MAP = "FIFO_0"; //SYTH & SIM
parameter ENUM_CPORT5_RDY_ALMOST_FULL = "NOT_FULL"; //SYTH & SIM
parameter ENUM_CPORT5_RFIFO_MAP = "FIFO_0"; //SYTH & SIM
parameter ENUM_CPORT5_TYPE = "DISABLE"; //SYTH & SIM
parameter ENUM_CPORT5_WFIFO_MAP = "FIFO_0"; //SYTH & SIM
parameter ENUM_CTL_ADDR_ORDER = "CHIP_BANK_ROW_COL"; //SYTH & SIM
parameter ENUM_CTL_ECC_ENABLED = "CTL_ECC_DISABLED"; //SYTH & SIM
parameter ENUM_CTL_ECC_RMW_ENABLED = "CTL_ECC_RMW_DISABLED"; //SYTH & SIM
parameter ENUM_CTL_REGDIMM_ENABLED = "REGDIMM_DISABLED"; //SIM ONLY
parameter ENUM_CTL_USR_REFRESH = "CTL_USR_REFRESH_DISABLED"; //SYTH & SIM
parameter ENUM_CTRL_WIDTH = "DATA_WIDTH_64_BIT"; //SYTH & SIM
parameter ENUM_DELAY_BONDING = "BONDING_LATENCY_0"; //SYTH & SIM
parameter ENUM_DFX_BYPASS_ENABLE = "DFX_BYPASS_DISABLED"; //SYTH & SIM
parameter ENUM_DISABLE_MERGING = "MERGING_ENABLED"; //SIM ONLY
parameter ENUM_ECC_DQ_WIDTH = "ECC_DQ_WIDTH_0"; //SYTH ONLY
parameter ENUM_ENABLE_ATPG = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_BONDING_0 = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_BONDING_1 = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_BONDING_2 = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_BONDING_3 = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_BONDING_4 = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_BONDING_5 = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_BONDING_WRAPBACK = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_DQS_TRACKING = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_ECC_CODE_OVERWRITES = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_FAST_EXIT_PPD = "DISABLED"; //SYTH ONLY
parameter ENUM_ENABLE_INTR = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_NO_DM = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_PIPELINEGLOBAL = "DISABLED"; //SYTH & SIM
parameter ENUM_GANGED_ARF = "DISABLED"; //SIM ONLY
parameter ENUM_GEN_DBE = "GEN_DBE_DISABLED"; //SIM ONLY
parameter ENUM_GEN_SBE = "GEN_SBE_DISABLED"; //SIM ONLY
parameter ENUM_INC_SYNC = "FIFO_SET_2"; //SYTH & SIM
parameter ENUM_LOCAL_IF_CS_WIDTH = "ADDR_WIDTH_2"; //SYTH & SIM
parameter ENUM_MASK_CORR_DROPPED_INTR = "DISABLED"; //SYTH & SIM
parameter ENUM_MASK_DBE_INTR = "DISABLED"; //SYTH & SIM
parameter ENUM_MASK_SBE_INTR = "DISABLED"; //SYTH & SIM
parameter ENUM_MEM_IF_AL = "AL_0"; //SYTH & SIM
parameter ENUM_MEM_IF_BANKADDR_WIDTH = "ADDR_WIDTH_3"; //SYTH & SIM
parameter ENUM_MEM_IF_BURSTLENGTH = "MEM_IF_BURSTLENGTH_8"; //SYTH ONLY
parameter ENUM_MEM_IF_COLADDR_WIDTH = "ADDR_WIDTH_12"; //SYTH & SIM
parameter ENUM_MEM_IF_CS_PER_RANK = "MEM_IF_CS_PER_RANK_1"; //SYTH ONLY
parameter ENUM_MEM_IF_CS_WIDTH = "MEM_IF_CS_WIDTH_1"; //SYTH ONLY
parameter ENUM_MEM_IF_DQ_PER_CHIP = "MEM_IF_DQ_PER_CHIP_8"; //SYTH ONLY
parameter ENUM_MEM_IF_DQS_WIDTH = "DQS_WIDTH_4"; //SYTH & SIM
parameter ENUM_MEM_IF_DWIDTH = "MEM_IF_DWIDTH_32"; //SYTH ONLY
parameter ENUM_MEM_IF_MEMTYPE = "DDR3_SDRAM"; //SYTH ONLY
parameter ENUM_MEM_IF_ROWADDR_WIDTH = "ADDR_WIDTH_16"; //SYTH & SIM
parameter ENUM_MEM_IF_SPEEDBIN = "DDR3_1066_6_6_6"; //SYTH ONLY
parameter ENUM_MEM_IF_TCCD = "TCCD_4"; //SYTH & SIM
parameter ENUM_MEM_IF_TCL = "TCL_6"; //SYTH & SIM
parameter ENUM_MEM_IF_TCWL = "TCWL_5"; //SYTH & SIM
parameter ENUM_MEM_IF_TFAW = "TFAW_16"; //SYTH & SIM
parameter ENUM_MEM_IF_TMRD = "TMRD_4"; //SYTH & SIM
parameter ENUM_MEM_IF_TRAS = "TRAS_16"; //SYTH & SIM
parameter ENUM_MEM_IF_TRC = "TRC_22"; //SYTH & SIM
parameter ENUM_MEM_IF_TRCD = "TRCD_6"; //SYTH & SIM
parameter ENUM_MEM_IF_TRP = "TRP_6"; //SYTH & SIM
parameter ENUM_MEM_IF_TRRD = "TRRD_4"; //SYTH & SIM
parameter ENUM_MEM_IF_TRTP = "TRTP_4"; //SYTH & SIM
parameter ENUM_MEM_IF_TWR = "TWR_6"; //SYTH & SIM
parameter ENUM_MEM_IF_TWTR = "TWTR_4"; //SYTH & SIM
parameter ENUM_MMR_CFG_MEM_BL = "MP_BL_8"; //SYTH & SIM
parameter ENUM_OUTPUT_REGD = "DISABLED"; //SYTH & SIM
parameter ENUM_PDN_EXIT_CYCLES = "SLOW_EXIT"; //SYTH & SIM
parameter ENUM_PORT0_WIDTH = "PORT_64_BIT"; //SYTH & SIM
parameter ENUM_PORT1_WIDTH = "PORT_64_BIT"; //SYTH & SIM
parameter ENUM_PORT2_WIDTH = "PORT_64_BIT"; //SYTH & SIM
parameter ENUM_PORT3_WIDTH = "PORT_64_BIT"; //SYTH & SIM
parameter ENUM_PORT4_WIDTH = "PORT_64_BIT"; //SYTH & SIM
parameter ENUM_PORT5_WIDTH = "PORT_64_BIT"; //SYTH & SIM
parameter ENUM_PRIORITY_0_0 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_0_1 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_0_2 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_0_3 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_0_4 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_0_5 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_1_0 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_1_1 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_1_2 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_1_3 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_1_4 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_1_5 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_2_0 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_2_1 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_2_2 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_2_3 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_2_4 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_2_5 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_3_0 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_3_1 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_3_2 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_3_3 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_3_4 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_3_5 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_4_0 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_4_1 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_4_2 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_4_3 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_4_4 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_4_5 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_5_0 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_5_1 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_5_2 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_5_3 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_5_4 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_5_5 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_6_0 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_6_1 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_6_2 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_6_3 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_6_4 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_6_5 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_7_0 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_7_1 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_7_2 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_7_3 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_7_4 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_PRIORITY_7_5 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_RCFG_STATIC_WEIGHT_0 = "WEIGHT_0"; //SYTH & SIM
parameter ENUM_RCFG_STATIC_WEIGHT_1 = "WEIGHT_0"; //SYTH & SIM
parameter ENUM_RCFG_STATIC_WEIGHT_2 = "WEIGHT_0"; //SYTH & SIM
parameter ENUM_RCFG_STATIC_WEIGHT_3 = "WEIGHT_0"; //SYTH & SIM
parameter ENUM_RCFG_STATIC_WEIGHT_4 = "WEIGHT_0"; //SYTH & SIM
parameter ENUM_RCFG_STATIC_WEIGHT_5 = "WEIGHT_0"; //SYTH & SIM
parameter ENUM_RCFG_USER_PRIORITY_0 = "PRIORITY_0"; //SYTH & SIM
parameter ENUM_RCFG_USER_PRIORITY_1 = "PRIORITY_0"; //SYTH & SIM
parameter ENUM_RCFG_USER_PRIORITY_2 = "PRIORITY_0"; //SYTH & SIM
parameter ENUM_RCFG_USER_PRIORITY_3 = "PRIORITY_0"; //SYTH & SIM
parameter ENUM_RCFG_USER_PRIORITY_4 = "PRIORITY_0"; //SYTH & SIM
parameter ENUM_RCFG_USER_PRIORITY_5 = "PRIORITY_0"; //SYTH & SIM
parameter ENUM_RD_DWIDTH_0 = "DWIDTH_0"; //SYTH ONLY
parameter ENUM_RD_DWIDTH_1 = "DWIDTH_0"; //SYTH ONLY
parameter ENUM_RD_DWIDTH_2 = "DWIDTH_0"; //SYTH ONLY
parameter ENUM_RD_DWIDTH_3 = "DWIDTH_0"; //SYTH ONLY
parameter ENUM_RD_DWIDTH_4 = "DWIDTH_0"; //SYTH ONLY
parameter ENUM_RD_DWIDTH_5 = "DWIDTH_0"; //SYTH ONLY
parameter ENUM_RD_FIFO_IN_USE_0 = "FALSE"; //SYTH ONLY
parameter ENUM_RD_FIFO_IN_USE_1 = "FALSE"; //SYTH ONLY
parameter ENUM_RD_FIFO_IN_USE_2 = "FALSE"; //SYTH ONLY
parameter ENUM_RD_FIFO_IN_USE_3 = "FALSE"; //SYTH ONLY
parameter ENUM_RD_PORT_INFO_0 = "USE_NO"; //SYTH ONLY
parameter ENUM_RD_PORT_INFO_1 = "USE_NO"; //SYTH ONLY
parameter ENUM_RD_PORT_INFO_2 = "USE_NO"; //SYTH ONLY
parameter ENUM_RD_PORT_INFO_3 = "USE_NO"; //SYTH ONLY
parameter ENUM_RD_PORT_INFO_4 = "USE_NO"; //SYTH ONLY
parameter ENUM_RD_PORT_INFO_5 = "USE_NO"; //SYTH ONLY
parameter ENUM_READ_ODT_CHIP = "ODT_DISABLED"; //SYTH & SIM
parameter ENUM_REORDER_DATA = "DATA_REORDERING"; //SYTH & SIM
parameter ENUM_RFIFO0_CPORT_MAP = "CMD_PORT_0"; //SYTH & SIM
parameter ENUM_RFIFO1_CPORT_MAP = "CMD_PORT_0"; //SYTH & SIM
parameter ENUM_RFIFO2_CPORT_MAP = "CMD_PORT_0"; //SYTH & SIM
parameter ENUM_RFIFO3_CPORT_MAP = "CMD_PORT_0"; //SYTH & SIM
parameter ENUM_SINGLE_READY_0 = "CONCATENATE_RDY"; //SYTH & SIM
parameter ENUM_SINGLE_READY_1 = "CONCATENATE_RDY"; //SYTH & SIM
parameter ENUM_SINGLE_READY_2 = "CONCATENATE_RDY"; //SYTH & SIM
parameter ENUM_SINGLE_READY_3 = "CONCATENATE_RDY"; //SYTH & SIM
parameter ENUM_STATIC_WEIGHT_0 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_STATIC_WEIGHT_1 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_STATIC_WEIGHT_2 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_STATIC_WEIGHT_3 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_STATIC_WEIGHT_4 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_STATIC_WEIGHT_5 = "WEIGHT_0"; //SYTH ONLY
parameter ENUM_SYNC_MODE_0 = "ASYNCHRONOUS"; //SYTH & SIM
parameter ENUM_SYNC_MODE_1 = "ASYNCHRONOUS"; //SYTH & SIM
parameter ENUM_SYNC_MODE_2 = "ASYNCHRONOUS"; //SYTH & SIM
parameter ENUM_SYNC_MODE_3 = "ASYNCHRONOUS"; //SYTH & SIM
parameter ENUM_SYNC_MODE_4 = "ASYNCHRONOUS"; //SYTH & SIM
parameter ENUM_SYNC_MODE_5 = "ASYNCHRONOUS"; //SYTH & SIM
parameter ENUM_TEST_MODE = "NORMAL_MODE"; //SYTH & SIM
parameter ENUM_THLD_JAR1_0 = "THRESHOLD_32"; //SYTH & SIM
parameter ENUM_THLD_JAR1_1 = "THRESHOLD_32"; //SYTH & SIM
parameter ENUM_THLD_JAR1_2 = "THRESHOLD_32"; //SYTH & SIM
parameter ENUM_THLD_JAR1_3 = "THRESHOLD_32"; //SYTH & SIM
parameter ENUM_THLD_JAR1_4 = "THRESHOLD_32"; //SYTH & SIM
parameter ENUM_THLD_JAR1_5 = "THRESHOLD_32"; //SYTH & SIM
parameter ENUM_THLD_JAR2_0 = "THRESHOLD_16"; //SYTH & SIM
parameter ENUM_THLD_JAR2_1 = "THRESHOLD_16"; //SYTH & SIM
parameter ENUM_THLD_JAR2_2 = "THRESHOLD_16"; //SYTH & SIM
parameter ENUM_THLD_JAR2_3 = "THRESHOLD_16"; //SYTH & SIM
parameter ENUM_THLD_JAR2_4 = "THRESHOLD_16"; //SYTH & SIM
parameter ENUM_THLD_JAR2_5 = "THRESHOLD_16"; //SYTH & SIM
parameter ENUM_USE_ALMOST_EMPTY_0 = "EMPTY"; //SYTH & SIM
parameter ENUM_USE_ALMOST_EMPTY_1 = "EMPTY"; //SYTH & SIM
parameter ENUM_USE_ALMOST_EMPTY_2 = "EMPTY"; //SYTH & SIM
parameter ENUM_USE_ALMOST_EMPTY_3 = "EMPTY"; //SYTH & SIM
parameter ENUM_USER_ECC_EN = "DISABLE"; //SYTH & SIM
parameter ENUM_USER_PRIORITY_0 = "PRIORITY_0"; //SYTH ONLY
parameter ENUM_USER_PRIORITY_1 = "PRIORITY_0"; //SYTH ONLY
parameter ENUM_USER_PRIORITY_2 = "PRIORITY_0"; //SYTH ONLY
parameter ENUM_USER_PRIORITY_3 = "PRIORITY_0"; //SYTH ONLY
parameter ENUM_USER_PRIORITY_4 = "PRIORITY_0"; //SYTH ONLY
parameter ENUM_USER_PRIORITY_5 = "PRIORITY_0"; //SYTH ONLY
parameter ENUM_WFIFO0_CPORT_MAP = "CMD_PORT_0"; //SYTH & SIM
parameter ENUM_WFIFO0_RDY_ALMOST_FULL = "NOT_FULL"; //SYTH & SIM
parameter ENUM_WFIFO1_CPORT_MAP = "CMD_PORT_0"; //SYTH & SIM
parameter ENUM_WFIFO1_RDY_ALMOST_FULL = "NOT_FULL"; //SYTH & SIM
parameter ENUM_WFIFO2_CPORT_MAP = "CMD_PORT_0"; //SYTH & SIM
parameter ENUM_WFIFO2_RDY_ALMOST_FULL = "NOT_FULL"; //SYTH & SIM
parameter ENUM_WFIFO3_CPORT_MAP = "CMD_PORT_0"; //SYTH & SIM
parameter ENUM_WFIFO3_RDY_ALMOST_FULL = "NOT_FULL"; //SYTH & SIM
parameter ENUM_WR_DWIDTH_0 = "DWIDTH_0"; //SYTH ONLY
parameter ENUM_WR_DWIDTH_1 = "DWIDTH_0"; //SYTH ONLY
parameter ENUM_WR_DWIDTH_2 = "DWIDTH_0"; //SYTH ONLY
parameter ENUM_WR_DWIDTH_3 = "DWIDTH_0"; //SYTH ONLY
parameter ENUM_WR_DWIDTH_4 = "DWIDTH_0"; //SYTH ONLY
parameter ENUM_WR_DWIDTH_5 = "DWIDTH_0"; //SYTH ONLY
parameter ENUM_WR_FIFO_IN_USE_0 = "FALSE"; //SYTH ONLY
parameter ENUM_WR_FIFO_IN_USE_1 = "FALSE"; //SYTH ONLY
parameter ENUM_WR_FIFO_IN_USE_2 = "FALSE"; //SYTH ONLY
parameter ENUM_WR_FIFO_IN_USE_3 = "FALSE"; //SYTH ONLY
parameter ENUM_WR_PORT_INFO_0 = "USE_NO"; //SYTH ONLY
parameter ENUM_WR_PORT_INFO_1 = "USE_NO"; //SYTH ONLY
parameter ENUM_WR_PORT_INFO_2 = "USE_NO"; //SYTH ONLY
parameter ENUM_WR_PORT_INFO_3 = "USE_NO"; //SYTH ONLY
parameter ENUM_WR_PORT_INFO_4 = "USE_NO"; //SYTH ONLY
parameter ENUM_WR_PORT_INFO_5 = "USE_NO"; //SYTH ONLY
parameter ENUM_WRITE_ODT_CHIP = "ODT_DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_BURST_INTERRUPT = "DISABLED"; //SYTH & SIM
parameter ENUM_ENABLE_BURST_TERMINATE = "DISABLED"; //SYTH & SIM
parameter INTG_POWER_SAVING_EXIT_CYCLES = 5; //SYTH & SIM
parameter INTG_MEM_CLK_ENTRY_CYCLES = 10; //SYTH & SIM
parameter INTG_PRIORITY_REMAP = 0; //SYTH & SIM
parameter INTG_MEM_AUTO_PD_CYCLES = 0; //SYTH & SIM
parameter INTG_CYC_TO_RLD_JARS_0 = 128; //SYTH & SIM
parameter INTG_CYC_TO_RLD_JARS_1 = 128; //SYTH & SIM
parameter INTG_CYC_TO_RLD_JARS_2 = 128; //SYTH & SIM
parameter INTG_CYC_TO_RLD_JARS_3 = 128; //SYTH & SIM
parameter INTG_CYC_TO_RLD_JARS_4 = 128; //SYTH & SIM
parameter INTG_CYC_TO_RLD_JARS_5 = 128; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_ACT_TO_ACT = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_ACT_TO_ACT_DIFF_BANK = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_ACT_TO_PCH = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_ACT_TO_RDWR = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_ARF_PERIOD = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_ARF_TO_VALID = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_FOUR_ACT_TO_ACT = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_PCH_ALL_TO_VALID = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_PCH_TO_VALID = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_PDN_PERIOD = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_PDN_TO_VALID = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_RD_AP_TO_VALID = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_RD_TO_PCH = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_RD_TO_RD = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_RD_TO_RD_DIFF_CHIP = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_RD_TO_WR = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_RD_TO_WR_BC = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_RD_TO_WR_DIFF_CHIP = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_SRF_TO_VALID = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_SRF_TO_ZQ_CAL = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_WR_AP_TO_VALID = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_WR_TO_PCH = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_WR_TO_RD = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_WR_TO_RD_BC = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_WR_TO_RD_DIFF_CHIP = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_WR_TO_WR = 0; //SYTH & SIM
parameter INTG_EXTRA_CTL_CLK_WR_TO_WR_DIFF_CHIP = 0; //SYTH & SIM
parameter INTG_MEM_IF_TREFI = 3120; //SYTH & SIM
parameter INTG_MEM_IF_TRFC = 34; //SYTH & SIM
parameter INTG_RCFG_SUM_WT_PRIORITY_0 = 0; //SYTH & SIM
parameter INTG_RCFG_SUM_WT_PRIORITY_1 = 0; //SYTH & SIM
parameter INTG_RCFG_SUM_WT_PRIORITY_2 = 0; //SYTH & SIM
parameter INTG_RCFG_SUM_WT_PRIORITY_3 = 0; //SYTH & SIM
parameter INTG_RCFG_SUM_WT_PRIORITY_4 = 0; //SYTH & SIM
parameter INTG_RCFG_SUM_WT_PRIORITY_5 = 0; //SYTH & SIM
parameter INTG_RCFG_SUM_WT_PRIORITY_6 = 0; //SYTH & SIM
parameter INTG_RCFG_SUM_WT_PRIORITY_7 = 0; //SYTH & SIM
parameter INTG_SUM_WT_PRIORITY_0 = 0; //SYTH ONLY
parameter INTG_SUM_WT_PRIORITY_1 = 0; //SYTH ONLY
parameter INTG_SUM_WT_PRIORITY_2 = 0; //SYTH ONLY
parameter INTG_SUM_WT_PRIORITY_3 = 0; //SYTH ONLY
parameter INTG_SUM_WT_PRIORITY_4 = 0; //SYTH ONLY
parameter INTG_SUM_WT_PRIORITY_5 = 0; //SYTH ONLY
parameter INTG_SUM_WT_PRIORITY_6 = 0; //SYTH ONLY
parameter INTG_SUM_WT_PRIORITY_7 = 0; //SYTH ONLY
parameter VECT_ATTR_COUNTER_ONE_MASK = 64'b0000000000000000000000000000000000000000000000000000000000000000; //SYTH & SIM
parameter VECT_ATTR_COUNTER_ONE_MATCH = 64'b0000000000000000000000000000000000000000000000000000000000000000; //SYTH & SIM
parameter VECT_ATTR_COUNTER_ZERO_MASK = 64'b0000000000000000000000000000000000000000000000000000000000000000; //SYTH & SIM
parameter VECT_ATTR_COUNTER_ZERO_MATCH = 64'b0000000000000000000000000000000000000000000000000000000000000000; //SYTH & SIM
parameter VECT_ATTR_DEBUG_SELECT_BYTE = 32'b00000000000000000000000000000000; //SYTH & SIM
// END PARAMETER SECTION
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// START LOCALPARAM
// WIRE
localparam CFG_CFG_AVALON_DATA_BYTES = 'd1;
localparam CFG_CFG_AVALON_ADDR_WIDTH = 'd10;
localparam MAX_CMD_PT_NUM = 6;
localparam MAX_FIFO_NUM = 4;
localparam RD_FIFO_WIDTH = 80;
localparam WR_FIFO_WIDTH = 90;
localparam MAX_PORT_BL = 255;
localparam MAX_PORT_CMD_WIDTH = 2;
localparam MAX_PORT_PRI_WIDTH = 0;
localparam MAX_PORT_ADDR_WIDTH = 32;
localparam MAX_PORT_BL_WIDTH = 8;
localparam MAX_PORT_TID_WIDTH = 0;
localparam MAX_PORT_CMDE_WIDTH = 0;
localparam CMD_FIFO_DWIDTH = (MAX_PORT_CMDE_WIDTH + MAX_PORT_TID_WIDTH + MAX_PORT_BL_WIDTH + MAX_PORT_ADDR_WIDTH + MAX_PORT_PRI_WIDTH + MAX_PORT_CMD_WIDTH);
localparam CFG_MEM_IF_CHIP = 1;
localparam CFG_PORT_WIDTH_INTERFACE_WIDTH = 8;
localparam CFG_PORT_WIDTH_DEVICE_WIDTH = 8;
localparam CFG_PORT_WIDTH_COL_ADDR_WIDTH = 8;
localparam CFG_PORT_WIDTH_ROW_ADDR_WIDTH = 8;
localparam CFG_PORT_WIDTH_BANK_ADDR_WIDTH = 8;
localparam CFG_PORT_WIDTH_CS_ADDR_WIDTH = 8;
localparam CFG_PORT_WIDTH_CAS_WR_LAT = 8;
localparam CFG_PORT_WIDTH_ADD_LAT = 8;
localparam CFG_PORT_WIDTH_TCL = 8;
localparam CFG_PORT_WIDTH_TRFC = 8;
localparam CFG_PORT_WIDTH_TREFI = 16;
localparam CFG_PORT_WIDTH_TWR = 8;
localparam CFG_PORT_WIDTH_TMRD = 8;
localparam HARDIP_AFI_ADDR_WIDTH = 20;
localparam HARDIP_AFI_BANKADDR_WIDTH = 3 ;
localparam HARDIP_AFI_CONTROL_WIDTH = 1 ;
localparam HARDIP_AFI_CS_WIDTH = 2 ;
localparam HARDIP_AFI_ODT_WIDTH = 2 ;
localparam HARDIP_AFI_DM_WIDTH = 10;
localparam HARDIP_AFI_DQ_WIDTH = 80;
localparam HARDIP_AFI_WRITE_DQS_WIDTH = 5 ;
// HARDIP_AFI_RATE_RATIO doesn't make sense as a normal rate ratio,
// but it does make the correct size of the afi_rdata_en and afi_rdata_en_full signals
localparam HARDIP_AFI_RATE_RATIO = 5 ;
localparam HARDIP_AFI_WLAT_WIDTH = 4 ;
localparam HARDIP_AFI_RLAT_WIDTH = 5 ;
localparam HARDIP_TRACKING_WIDTH = 2 ;
localparam INT_AFI_ADDR_WIDTH = (HARD_PHY == 1) ? HARDIP_AFI_ADDR_WIDTH : AFI_ADDR_WIDTH ;
localparam INT_AFI_BANKADDR_WIDTH = (HARD_PHY == 1) ? HARDIP_AFI_BANKADDR_WIDTH : AFI_BANKADDR_WIDTH ;
localparam INT_AFI_CONTROL_WIDTH = (HARD_PHY == 1) ? HARDIP_AFI_CONTROL_WIDTH : AFI_CONTROL_WIDTH ;
localparam INT_AFI_CS_WIDTH = (HARD_PHY == 1) ? HARDIP_AFI_CS_WIDTH : AFI_CS_WIDTH ;
localparam INT_AFI_ODT_WIDTH = (HARD_PHY == 1) ? HARDIP_AFI_ODT_WIDTH : AFI_ODT_WIDTH ;
localparam INT_AFI_DM_WIDTH = (HARD_PHY == 1) ? HARDIP_AFI_DM_WIDTH : AFI_DM_WIDTH ;
localparam INT_AFI_DQ_WIDTH = (HARD_PHY == 1) ? HARDIP_AFI_DQ_WIDTH : AFI_DQ_WIDTH ;
localparam INT_AFI_WRITE_DQS_WIDTH = (HARD_PHY == 1) ? HARDIP_AFI_WRITE_DQS_WIDTH : AFI_WRITE_DQS_WIDTH;
localparam INT_AFI_RATE_RATIO = (HARD_PHY == 1) ? HARDIP_AFI_RATE_RATIO : AFI_RATE_RATIO ;
localparam INT_AFI_WLAT_WIDTH = (HARD_PHY == 1) ? HARDIP_AFI_WLAT_WIDTH : AFI_WLAT_WIDTH ;
localparam INT_AFI_RLAT_WIDTH = (HARD_PHY == 1) ? HARDIP_AFI_RLAT_WIDTH : AFI_RLAT_WIDTH ;
localparam ZERO_PAD_WIDTH_BE_32 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 2 : 6;
localparam ZERO_PAD_WIDTH_BE_64 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 0 : 2;
localparam ZERO_PAD_WIDTH_DT_32 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 32 : 48;
localparam ZERO_PAD_WIDTH_DT_64 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 0 : 16;
localparam BE_WIDTH_FIFO0_32 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 6 : 4;
localparam BE_WIDTH_FIFO0_64 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 10 : 8;
localparam BE_WIDTH_FIFO1_64 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 20 : 16;
localparam BE_WIDTH_FIFO2_64 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 30 : 24;
localparam BE_WIDTH_FIFO3_64 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 40 : 32;
localparam DATA_WIDTH_FIFO0_32 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 48 : 32;
localparam DATA_WIDTH_FIFO0_64 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 80 : 64;
localparam DATA_WIDTH_FIFO1_64 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 160 :128;
localparam DATA_WIDTH_FIFO2_64 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 240 :192;
localparam DATA_WIDTH_FIFO3_64 = (ENUM_USER_ECC_EN == "ENABLE" ) ? 320 :256;
// END LOCALPARAM
////////////////////////////////////////////////////////////////////////////////
// END LOCALPARAM
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// BEGIN PORT SECTION
// Clock and reset interface
input afi_clk;
input afi_half_clk;
input afi_reset_n;
input ctl_clk;
input ctl_reset_n;
input mp_cmd_clk_0;
input mp_cmd_clk_1;
input mp_cmd_clk_2;
input mp_cmd_clk_3;
input mp_cmd_clk_4;
input mp_cmd_clk_5;
input mp_cmd_reset_n_0;
input mp_cmd_reset_n_1;
input mp_cmd_reset_n_2;
input mp_cmd_reset_n_3;
input mp_cmd_reset_n_4;
input mp_cmd_reset_n_5;
input mp_rfifo_clk_0;
input mp_rfifo_clk_1;
input mp_rfifo_clk_2;
input mp_rfifo_clk_3;
input mp_rfifo_reset_n_0;
input mp_rfifo_reset_n_1;
input mp_rfifo_reset_n_2;
input mp_rfifo_reset_n_3;
input mp_wfifo_clk_0;
input mp_wfifo_clk_1;
input mp_wfifo_clk_2;
input mp_wfifo_clk_3;
input mp_wfifo_reset_n_0;
input mp_wfifo_reset_n_1;
input mp_wfifo_reset_n_2;
input mp_wfifo_reset_n_3;
input csr_clk;
input csr_reset_n;
// Avalon data slave interface
output avl_ready_0;
input avl_write_req_0;
input avl_read_req_0;
input [AVL_ADDR_WIDTH_PORT_0 - 1 : 0] avl_addr_0;
input [AVL_NUM_SYMBOLS_PORT_0 - 1 : 0] avl_be_0;
input [AVL_DATA_WIDTH_PORT_0 - 1 : 0] avl_wdata_0;
input [AVL_SIZE_WIDTH - 1 : 0] avl_size_0;
input avl_burstbegin_0;
output [AVL_DATA_WIDTH_PORT_0 - 1 : 0] avl_rdata_0;
output avl_rdata_valid_0;
output avl_ready_1;
input avl_write_req_1;
input avl_read_req_1;
input [AVL_ADDR_WIDTH_PORT_1 - 1 : 0] avl_addr_1;
input [AVL_NUM_SYMBOLS_PORT_1 - 1 : 0] avl_be_1;
input [AVL_DATA_WIDTH_PORT_1 - 1 : 0] avl_wdata_1;
input [AVL_SIZE_WIDTH - 1 : 0] avl_size_1;
input avl_burstbegin_1;
output [AVL_DATA_WIDTH_PORT_1 - 1 : 0] avl_rdata_1;
output avl_rdata_valid_1;
output avl_ready_2;
input avl_write_req_2;
input avl_read_req_2;
input [AVL_ADDR_WIDTH_PORT_2 - 1 : 0] avl_addr_2;
input [AVL_NUM_SYMBOLS_PORT_2 - 1 : 0] avl_be_2;
input [AVL_DATA_WIDTH_PORT_2 - 1 : 0] avl_wdata_2;
input [AVL_SIZE_WIDTH - 1 : 0] avl_size_2;
input avl_burstbegin_2;
output [AVL_DATA_WIDTH_PORT_2 - 1 : 0] avl_rdata_2;
output avl_rdata_valid_2;
output avl_ready_3;
input avl_write_req_3;
input avl_read_req_3;
input [AVL_ADDR_WIDTH_PORT_3 - 1 : 0] avl_addr_3;
input [AVL_NUM_SYMBOLS_PORT_3 - 1 : 0] avl_be_3;
input [AVL_DATA_WIDTH_PORT_3 - 1 : 0] avl_wdata_3;
input [AVL_SIZE_WIDTH - 1 : 0] avl_size_3;
input avl_burstbegin_3;
output [AVL_DATA_WIDTH_PORT_3 - 1 : 0] avl_rdata_3;
output avl_rdata_valid_3;
output avl_ready_4;
input avl_write_req_4;
input avl_read_req_4;
input [AVL_ADDR_WIDTH_PORT_4 - 1 : 0] avl_addr_4;
input [AVL_NUM_SYMBOLS_PORT_4 - 1 : 0] avl_be_4;
input [AVL_DATA_WIDTH_PORT_4 - 1 : 0] avl_wdata_4;
input [AVL_SIZE_WIDTH - 1 : 0] avl_size_4;
input avl_burstbegin_4;
output [AVL_DATA_WIDTH_PORT_4 - 1 : 0] avl_rdata_4;
output avl_rdata_valid_4;
output avl_ready_5;
input avl_write_req_5;
input avl_read_req_5;
input [AVL_ADDR_WIDTH_PORT_5 - 1 : 0] avl_addr_5;
input [AVL_NUM_SYMBOLS_PORT_5 - 1 : 0] avl_be_5;
input [AVL_DATA_WIDTH_PORT_5 - 1 : 0] avl_wdata_5;
input [AVL_SIZE_WIDTH - 1 : 0] avl_size_5;
input avl_burstbegin_5;
output [AVL_DATA_WIDTH_PORT_5 - 1 : 0] avl_rdata_5;
output avl_rdata_valid_5;
// AFI signals
output [INT_AFI_CS_WIDTH - 1 : 0] afi_cs_n;
output [INT_AFI_CS_WIDTH - 1 : 0] afi_cke;
output [INT_AFI_ODT_WIDTH - 1 : 0] afi_odt;
output [INT_AFI_ADDR_WIDTH - 1 : 0] afi_addr;
output [INT_AFI_BANKADDR_WIDTH - 1 : 0] afi_ba;
output [INT_AFI_CONTROL_WIDTH - 1 : 0] afi_ras_n;
output [INT_AFI_CONTROL_WIDTH - 1 : 0] afi_cas_n;
output [INT_AFI_CONTROL_WIDTH - 1 : 0] afi_we_n;
output [INT_AFI_CONTROL_WIDTH - 1 : 0] afi_rst_n;
output [INT_AFI_WRITE_DQS_WIDTH - 1 : 0] afi_dqs_burst;
output [INT_AFI_WRITE_DQS_WIDTH - 1 : 0] afi_wdata_valid;
output [INT_AFI_DQ_WIDTH - 1 : 0] afi_wdata;
output [INT_AFI_DM_WIDTH - 1 : 0] afi_dm;
input [INT_AFI_WLAT_WIDTH - 1 : 0] afi_wlat;
output [INT_AFI_RATE_RATIO - 1 : 0] afi_rdata_en;
output [INT_AFI_RATE_RATIO - 1 : 0] afi_rdata_en_full;
input [INT_AFI_DQ_WIDTH - 1 : 0] afi_rdata;
input [1 - 1 : 0] afi_rdata_valid;
input [INT_AFI_RLAT_WIDTH - 1 : 0] afi_rlat;
input afi_cal_success;
input afi_cal_fail;
output afi_cal_req;
output afi_init_req;
output [MEM_IF_CLK_PAIR_COUNT - 1 : 0] afi_mem_clk_disable;
// disable unused AFI signals
wire [(MEM_IF_DQS_WIDTH*MEM_IF_CS_WIDTH) - 1 : 0] afi_cal_byte_lane_sel_n;
output [MEM_IF_CS_WIDTH - 1 : 0] afi_ctl_refresh_done;
input [MEM_IF_CS_WIDTH - 1 : 0] afi_seq_busy;
output [MEM_IF_CS_WIDTH - 1 : 0] afi_ctl_long_idle;
// Sideband signals
output local_refresh_ack;
output local_powerdn_ack;
output local_self_rfsh_ack;
output local_deep_powerdn_ack;
input local_refresh_req;
input [MEM_IF_CS_WIDTH - 1 : 0] local_refresh_chip;
//Ahmed: do we need this?
//input local_powerdn_req;
input local_self_rfsh_req;
input [MEM_IF_CS_WIDTH - 1 : 0] local_self_rfsh_chip;
input local_deep_powerdn_req;
input [MEM_IF_CS_WIDTH - 1 : 0] local_deep_powerdn_chip;
input local_multicast;
input local_priority;
output local_init_done;
output local_cal_success;
output local_cal_fail;
// Csr & ecc signals
input csr_read_req;
input csr_write_req;
input [CSR_ADDR_WIDTH - 1 : 0] csr_addr;
input [CSR_DATA_WIDTH - 1 : 0] csr_wdata;
output [CSR_DATA_WIDTH - 1 : 0] csr_rdata;
input [CSR_BE_WIDTH - 1 : 0] csr_be;
output csr_rdata_valid;
output csr_waitrequest;
// Cfg signal to Phy
output [23:0] cfg_dramconfig;
output [CFG_PORT_WIDTH_CAS_WR_LAT - 1 : 0] cfg_caswrlat;
output [CFG_PORT_WIDTH_ADD_LAT - 1 : 0] cfg_addlat;
output [CFG_PORT_WIDTH_TCL - 1 : 0] cfg_tcl;
output [CFG_PORT_WIDTH_TRFC - 1 : 0] cfg_trfc;
output [CFG_PORT_WIDTH_TREFI - 1 : 0] cfg_trefi;
output [CFG_PORT_WIDTH_TWR - 1 : 0] cfg_twr;
output [CFG_PORT_WIDTH_TMRD - 1 : 0] cfg_tmrd;
output [CFG_PORT_WIDTH_COL_ADDR_WIDTH - 1 : 0] cfg_coladdrwidth;
output [CFG_PORT_WIDTH_ROW_ADDR_WIDTH - 1 : 0] cfg_rowaddrwidth;
output [CFG_PORT_WIDTH_BANK_ADDR_WIDTH - 1 : 0] cfg_bankaddrwidth;
output [CFG_PORT_WIDTH_CS_ADDR_WIDTH - 1 : 0] cfg_csaddrwidth;
output [CFG_PORT_WIDTH_INTERFACE_WIDTH - 1 : 0] cfg_interfacewidth;
output [CFG_PORT_WIDTH_DEVICE_WIDTH - 1 : 0] cfg_devicewidth;
output ctl_init_req;
// Bonding signals
output [MAX_FIFO_NUM - 1 : 0] bonding_out_1;
input [MAX_FIFO_NUM - 1 : 0] bonding_in_1;
output [MAX_CMD_PT_NUM - 1 : 0] bonding_out_2;
input [MAX_CMD_PT_NUM - 1 : 0] bonding_in_2;
output [MAX_CMD_PT_NUM - 1 : 0] bonding_out_3;
input [MAX_CMD_PT_NUM - 1 : 0] bonding_in_3;
// IO_INT interface from HPHY
input io_intaficalfail;
input io_intaficalsuccess;
// Connect to user logic
output local_sts_ctl_empty;
// END PORT SECTION
//////////////////////////////////////////////////////////////////////////////
wire i_avst_cmd_reset_n_0;
wire i_avst_cmd_reset_n_1;
wire i_avst_cmd_reset_n_2;
wire i_avst_cmd_reset_n_3;
wire i_avst_cmd_reset_n_4;
wire i_avst_cmd_reset_n_5;
wire [CMD_FIFO_DWIDTH -1:0] i_avst_cmd_data_0;
wire [CMD_FIFO_DWIDTH -1:0] i_avst_cmd_data_1;
wire [CMD_FIFO_DWIDTH -1:0] i_avst_cmd_data_2;
wire [CMD_FIFO_DWIDTH -1:0] i_avst_cmd_data_3;
wire [CMD_FIFO_DWIDTH -1:0] i_avst_cmd_data_4;
wire [CMD_FIFO_DWIDTH -1:0] i_avst_cmd_data_5;
wire o_a_mm_ready_0;
wire o_a_mm_ready_1;
wire o_a_mm_ready_2;
wire o_a_mm_ready_3;
wire o_a_mm_ready_4;
wire o_a_mm_ready_5;
wire i_avst_wrack_ready_0;
wire i_avst_wrack_ready_1;
wire i_avst_wrack_ready_2;
wire i_avst_wrack_ready_3;
wire i_avst_wrack_ready_4;
wire i_avst_wrack_ready_5;
wire o_wrack_avst_valid_0;
wire o_wrack_avst_valid_1;
wire o_wrack_avst_valid_2;
wire o_wrack_avst_valid_3;
wire o_wrack_avst_valid_4;
wire o_wrack_avst_valid_5;
wire o_wrack_avst_data_0;
wire o_wrack_avst_data_1;
wire o_wrack_avst_data_2;
wire o_wrack_avst_data_3;
wire o_wrack_avst_data_4;
wire o_wrack_avst_data_5;
wire i_avst_rd_clk_0;
wire i_avst_rd_clk_1;
wire i_avst_rd_clk_2;
wire i_avst_rd_clk_3;
wire i_avst_rd_reset_n_0;
wire i_avst_rd_reset_n_1;
wire i_avst_rd_reset_n_2;
wire i_avst_rd_reset_n_3;
wire o_rd_avst_valid_0;
wire o_rd_avst_valid_1;
wire o_rd_avst_valid_2;
wire o_rd_avst_valid_3;
wire [RD_FIFO_WIDTH -1:0] o_rd_avst_data_0;
wire [RD_FIFO_WIDTH -1:0] o_rd_avst_data_1;
wire [RD_FIFO_WIDTH -1:0] o_rd_avst_data_2;
wire [RD_FIFO_WIDTH -1:0] o_rd_avst_data_3;
wire i_avst_rd_ready_0;
wire i_avst_rd_ready_1;
wire i_avst_rd_ready_2;
wire i_avst_rd_ready_3;
wire i_avst_wr_clk_0;
wire i_avst_wr_clk_1;
wire i_avst_wr_clk_2;
wire i_avst_wr_clk_3;
wire i_avst_wr_reset_n_0;
wire i_avst_wr_reset_n_1;
wire i_avst_wr_reset_n_2;
wire i_avst_wr_reset_n_3;
wire [WR_FIFO_WIDTH -1:0] i_avst_wr_data_0;
wire [WR_FIFO_WIDTH -1:0] i_avst_wr_data_1;
wire [WR_FIFO_WIDTH -1:0] i_avst_wr_data_2;
wire [WR_FIFO_WIDTH -1:0] i_avst_wr_data_3;
wire [MAX_FIFO_NUM -1:0] bonding_out_1;
wire [MAX_FIFO_NUM -1:0] bonding_in_1;
wire [MAX_CMD_PT_NUM -1:0] bonding_out_2;
wire [MAX_CMD_PT_NUM -1:0] bonding_in_2;
wire [MAX_CMD_PT_NUM -1:0] bonding_out_3;
wire [MAX_CMD_PT_NUM -1:0] bonding_in_3;
wire local_refresh_req;
wire [2 -1:0] local_refresh_chip_wire;
wire local_deep_powerdn_req;
wire [2 -1:0] local_deep_powerdn_chip_wire;
wire local_self_rfsh_req;
wire [2 -1:0] local_self_rfsh_chip_wire;
wire local_refresh_ack;
wire local_deep_powerdn_ack;
wire local_powerdn_ack;
wire local_self_rfsh_ack;
wire local_init_done;
wire local_sts_ctl_empty;
wire ctl_init_req;
wire mmr_clk;
wire mmr_reset_n;
wire mmr_read_req;
wire mmr_write_req;
wire [2 -1:0] mmr_burst_count;
wire mmr_burst_begin;
wire [CFG_CFG_AVALON_ADDR_WIDTH -1:0] mmr_addr;
wire [CFG_CFG_AVALON_DATA_BYTES*8 -1:0] mmr_wdata;
wire [CFG_CFG_AVALON_DATA_BYTES -1:0] mmr_be;
wire [CFG_CFG_AVALON_DATA_BYTES*8 -1:0] mmr_rdata;
wire mmr_rdata_valid;
wire mmr_waitrequest;
wire sc_clk;
wire sc_reset_n;
wire sc_read_req;
wire sc_write_req;
wire [2 -1:0] sc_burst_count;
wire sc_burst_begin;
wire [CFG_CFG_AVALON_ADDR_WIDTH -1:0] sc_addr;
wire [CFG_CFG_AVALON_DATA_BYTES*8 -1:0] sc_wdata;
wire [CFG_CFG_AVALON_DATA_BYTES -1:0] sc_be;
wire [CFG_CFG_AVALON_DATA_BYTES*8 -1:0] sc_rdata;
wire sc_rdata_valid;
wire sc_waitrequest;
wire [24 -1:0] cfg_dramconfig;
wire [CFG_PORT_WIDTH_CAS_WR_LAT -1:0] cfg_caswrlat;
wire [CFG_PORT_WIDTH_ADD_LAT -1:0] cfg_addlat;
wire [CFG_PORT_WIDTH_TCL -1:0] cfg_tcl;
wire [CFG_PORT_WIDTH_TRFC -1:0] cfg_trfc;
wire [CFG_PORT_WIDTH_TREFI -1:0] cfg_trefi;
wire [CFG_PORT_WIDTH_TWR -1:0] cfg_twr;
wire [CFG_PORT_WIDTH_TMRD -1:0] cfg_tmrd;
wire [CFG_PORT_WIDTH_COL_ADDR_WIDTH -1:0] cfg_coladdrwidth;
wire [CFG_PORT_WIDTH_ROW_ADDR_WIDTH -1:0] cfg_rowaddrwidth;
wire [CFG_PORT_WIDTH_BANK_ADDR_WIDTH -1:0] cfg_bankaddrwidth;
wire [CFG_PORT_WIDTH_CS_ADDR_WIDTH -1:0] cfg_csaddrwidth;
wire [CFG_PORT_WIDTH_INTERFACE_WIDTH -1:0] cfg_interfacewidth;
wire [CFG_PORT_WIDTH_DEVICE_WIDTH -1:0] cfg_devicewidth;
wire csrdin;
wire csrdout;
wire csrclk;
wire csren;
wire scanenable;
wire afi_clk;
wire afi_reset_n;
wire ctl_reset_n;
wire [HARDIP_TRACKING_WIDTH -1:0] afi_seq_busy_int;
wire [24 -1:0] cfg_dramconfig_wire;
wire [4 -1:0] cfg_caswrlat_wire;
wire [5 -1:0] cfg_addlat_wire;
wire [5 -1:0] cfg_tcl_wire;
wire [8 -1:0] cfg_trfc_wire;
wire [16 -1:0] cfg_trefi_wire;
wire [4 -1:0] cfg_twr_wire;
wire [4 -1:0] cfg_tmrd_wire;
wire [5 -1:0] cfg_coladdrwidth_wire;
wire [5 -1:0] cfg_rowaddrwidth_wire;
wire [3 -1:0] cfg_bankaddrwidth_wire;
wire [3 -1:0] cfg_csaddrwidth_wire;
wire [8 -1:0] cfg_interfacewidth_wire;
wire [4 -1:0] cfg_devicewidth_wire;
//USED WITHIN THE MAPPING
wire [256 -1:0] data_width[5:0];
wire [32 -1:0] lsb_wfifo[5:0];
wire [32 -1:0] msb_wfifo[5:0];
wire [32 -1:0] lsb_rfifo[5:0];
wire [320 -1:0] avl_wdata_g[5:0];
wire [40 -1:0] avl_be_g[5:0];
reg [WR_FIFO_WIDTH -1:0] i_avst_wr_data_g [3:0];
reg avl_rdata_valid_g[5:0];
reg [320 -1:0] avl_rdata_g[5:0];
reg [INT_AFI_DM_WIDTH -1:0] afi_dm;
reg [INT_AFI_DQ_WIDTH -1:0] afi_wdata;
reg [INT_AFI_DQ_WIDTH -1:0] afi_rdata;
reg [HARDIP_AFI_DM_WIDTH -1:0] afi_dm_int;
reg [HARDIP_AFI_DQ_WIDTH -1:0] afi_wdata_int;
reg [HARDIP_AFI_DQ_WIDTH -1:0] afi_rdata_int;
//------------------------------------------------------------------------------
// CFG Interface Assignments
//------------------------------------------------------------------------------
assign cfg_dramconfig = cfg_dramconfig_wire;
assign cfg_caswrlat = cfg_caswrlat_wire;
assign cfg_addlat = cfg_addlat_wire;
assign cfg_tcl = cfg_tcl_wire;
assign cfg_trfc = cfg_trfc_wire;
assign cfg_trefi = cfg_trefi_wire;
assign cfg_twr = cfg_twr_wire;
assign cfg_tmrd = cfg_tmrd_wire;
assign cfg_coladdrwidth = cfg_coladdrwidth_wire;
assign cfg_rowaddrwidth = cfg_rowaddrwidth_wire;
assign cfg_bankaddrwidth = cfg_bankaddrwidth_wire;
assign cfg_csaddrwidth = cfg_csaddrwidth_wire;
assign cfg_interfacewidth = cfg_interfacewidth_wire;
assign cfg_devicewidth = cfg_devicewidth_wire;
//------------------------------------------------------------------------------
// Sideband
//------------------------------------------------------------------------------
assign local_refresh_chip_wire = {{2-MEM_IF_CS_WIDTH{local_refresh_chip}}, local_refresh_chip};
assign local_self_rfsh_chip_wire = {{2-MEM_IF_CS_WIDTH{local_self_rfsh_chip}}, local_self_rfsh_chip};
assign local_deep_powerdn_chip_wire = {{2-MEM_IF_CS_WIDTH{local_deep_powerdn_chip}}, local_deep_powerdn_chip};
////////////////////////////////////////////////////////////////////////////////
// START HIP TO SIP MAPING
//------------------------------------------------------------------------------
// Passing all ports parameters into same variable
//------------------------------------------------------------------------------
assign data_width[0] = AVL_DATA_WIDTH_PORT_0;
assign data_width[1] = AVL_DATA_WIDTH_PORT_1;
assign data_width[2] = AVL_DATA_WIDTH_PORT_2;
assign data_width[3] = AVL_DATA_WIDTH_PORT_3;
assign data_width[4] = AVL_DATA_WIDTH_PORT_4;
assign data_width[5] = AVL_DATA_WIDTH_PORT_5;
assign lsb_wfifo[0] = LSB_WFIFO_PORT_0;
assign lsb_wfifo[1] = LSB_WFIFO_PORT_1;
assign lsb_wfifo[2] = LSB_WFIFO_PORT_2;
assign lsb_wfifo[3] = LSB_WFIFO_PORT_3;
assign lsb_wfifo[4] = LSB_WFIFO_PORT_4;
assign lsb_wfifo[5] = LSB_WFIFO_PORT_5;
assign msb_wfifo[0] = MSB_WFIFO_PORT_0;
assign msb_wfifo[1] = MSB_WFIFO_PORT_1;
assign msb_wfifo[2] = MSB_WFIFO_PORT_2;
assign msb_wfifo[3] = MSB_WFIFO_PORT_3;
assign msb_wfifo[4] = MSB_WFIFO_PORT_4;
assign msb_wfifo[5] = MSB_WFIFO_PORT_5;
assign lsb_rfifo[0] = LSB_RFIFO_PORT_0;
assign lsb_rfifo[1] = LSB_RFIFO_PORT_1;
assign lsb_rfifo[2] = LSB_RFIFO_PORT_2;
assign lsb_rfifo[3] = LSB_RFIFO_PORT_3;
assign lsb_rfifo[4] = LSB_RFIFO_PORT_4;
assign lsb_rfifo[5] = LSB_RFIFO_PORT_5;
//------------------------------------------------------------------------------
// Command path
//------------------------------------------------------------------------------
assign avl_ready_0 = o_a_mm_ready_0 ;
assign avl_ready_1 = o_a_mm_ready_1 ;
assign avl_ready_2 = o_a_mm_ready_2 ;
assign avl_ready_3 = o_a_mm_ready_3 ;
assign avl_ready_4 = o_a_mm_ready_4 ;
assign avl_ready_5 = o_a_mm_ready_5 ;
assign i_avst_cmd_data_0 = {{42-AVL_SIZE_WIDTH-34{1'b0}},avl_size_0,{34-AVL_ADDR_WIDTH_PORT_0-2{1'b0}},avl_addr_0,avl_write_req_0,avl_read_req_0};
assign i_avst_cmd_data_1 = {{42-AVL_SIZE_WIDTH-34{1'b0}},avl_size_1,{34-AVL_ADDR_WIDTH_PORT_1-2{1'b0}},avl_addr_1,avl_write_req_1,avl_read_req_1};
assign i_avst_cmd_data_2 = {{42-AVL_SIZE_WIDTH-34{1'b0}},avl_size_2,{34-AVL_ADDR_WIDTH_PORT_2-2{1'b0}},avl_addr_2,avl_write_req_2,avl_read_req_2};
assign i_avst_cmd_data_3 = {{42-AVL_SIZE_WIDTH-34{1'b0}},avl_size_3,{34-AVL_ADDR_WIDTH_PORT_3-2{1'b0}},avl_addr_3,avl_write_req_3,avl_read_req_3};
assign i_avst_cmd_data_4 = {{42-AVL_SIZE_WIDTH-34{1'b0}},avl_size_4,{34-AVL_ADDR_WIDTH_PORT_4-2{1'b0}},avl_addr_4,avl_write_req_4,avl_read_req_4};
assign i_avst_cmd_data_5 = {{42-AVL_SIZE_WIDTH-34{1'b0}},avl_size_5,{34-AVL_ADDR_WIDTH_PORT_5-2{1'b0}},avl_addr_5,avl_write_req_5,avl_read_req_5};
//------------------------------------------------------------------------------
// Write data path
//------------------------------------------------------------------------------
assign i_avst_wr_data_0 = i_avst_wr_data_g[0];
assign i_avst_wr_data_1 = i_avst_wr_data_g[1];
assign i_avst_wr_data_2 = i_avst_wr_data_g[2];
assign i_avst_wr_data_3 = i_avst_wr_data_g[3];
assign avl_wdata_g[0] = avl_wdata_0;
assign avl_wdata_g[1] = avl_wdata_1;
assign avl_wdata_g[2] = avl_wdata_2;
assign avl_wdata_g[3] = avl_wdata_3;
assign avl_wdata_g[4] = avl_wdata_4;
assign avl_wdata_g[5] = avl_wdata_5;
assign avl_be_g[0] = avl_be_0;
assign avl_be_g[1] = avl_be_1;
assign avl_be_g[2] = avl_be_2;
assign avl_be_g[3] = avl_be_3;
assign avl_be_g[4] = avl_be_4;
assign avl_be_g[5] = avl_be_5;
//------------------------------------------------------------------------------
// Read data path
//------------------------------------------------------------------------------
assign avl_rdata_valid_0 = avl_rdata_valid_g[0];
assign avl_rdata_valid_1 = avl_rdata_valid_g[1];
assign avl_rdata_valid_2 = avl_rdata_valid_g[2];
assign avl_rdata_valid_3 = avl_rdata_valid_g[3];
assign avl_rdata_valid_4 = avl_rdata_valid_g[4];
assign avl_rdata_valid_5 = avl_rdata_valid_g[5];
assign avl_rdata_0 = avl_rdata_g[0];
assign avl_rdata_1 = avl_rdata_g[1];
assign avl_rdata_2 = avl_rdata_g[2];
assign avl_rdata_3 = avl_rdata_g[3];
assign avl_rdata_4 = avl_rdata_g[4];
assign avl_rdata_5 = avl_rdata_g[5];
reg [6-1:0] multi_fact_cmd0[5:0];
reg [6-1:0] multi_fact_cmd1[5:0];
reg [6-1:0] multi_fact_cmd2[5:0];
reg [6-1:0] multi_fact_cmd3[5:0];
reg [6-1:0] multi_fact_cmd4[5:0];
reg [6-1:0] multi_fact_cmd5[5:0];
integer total_used_fifo,port_i,fifo_i,idx_0,idx_1,idx_2,idx_3,idx_4,idx_5,idx_6;
always_comb
begin
for (port_i = 0; port_i < 6; port_i = port_i + 1'b1)
begin : port_loop
//----------------------------------------------------------------------
// Read data path
//----------------------------------------------------------------------
if (lsb_rfifo[port_i] == 0)
avl_rdata_valid_g[port_i] = o_rd_avst_valid_0;
else if (lsb_rfifo[port_i] == 1)
avl_rdata_valid_g[port_i] = o_rd_avst_valid_1;
else if (lsb_rfifo[port_i] == 2)
avl_rdata_valid_g[port_i] = o_rd_avst_valid_2;
else if (lsb_rfifo[port_i] == 3)
avl_rdata_valid_g[port_i] = o_rd_avst_valid_3;
else
avl_rdata_valid_g[port_i] = 0;
if ((data_width[port_i] == 32) || (data_width[port_i] == 48))
if (lsb_rfifo[port_i] == 0)
avl_rdata_g[port_i] = {{(320 - DATA_WIDTH_FIFO0_32){1'b0}},o_rd_avst_data_0[DATA_WIDTH_FIFO0_32 - 1 : 0]};
else if (lsb_rfifo[port_i] == 1)
avl_rdata_g[port_i] = {{(320 - DATA_WIDTH_FIFO0_32){1'b0}},o_rd_avst_data_1[DATA_WIDTH_FIFO0_32 - 1 : 0]};
else if (lsb_rfifo[port_i] == 2)
avl_rdata_g[port_i] = {{(320 - DATA_WIDTH_FIFO0_32){1'b0}},o_rd_avst_data_2[DATA_WIDTH_FIFO0_32 - 1 : 0]};
else if (lsb_rfifo[port_i] == 3)
avl_rdata_g[port_i] = {{(320 - DATA_WIDTH_FIFO0_32){1'b0}},o_rd_avst_data_3[DATA_WIDTH_FIFO0_32 - 1 : 0]};
else
avl_rdata_g[port_i] = 320'd0;
else if ((data_width[port_i] == 64) || (data_width[port_i] == 80))
if (lsb_rfifo[port_i] == 0)
avl_rdata_g[port_i] = {{(320 - DATA_WIDTH_FIFO0_64){1'b0}},o_rd_avst_data_0[DATA_WIDTH_FIFO0_64 - 1 : 0]};
else if (lsb_rfifo[port_i] == 1)
avl_rdata_g[port_i] = {{(320 - DATA_WIDTH_FIFO0_64){1'b0}},o_rd_avst_data_1[DATA_WIDTH_FIFO0_64 - 1 : 0]};
else if (lsb_rfifo[port_i] == 2)
avl_rdata_g[port_i] = {{(320 - DATA_WIDTH_FIFO0_64){1'b0}},o_rd_avst_data_2[DATA_WIDTH_FIFO0_64 - 1 : 0]};
else if (lsb_rfifo[port_i] == 3)
avl_rdata_g[port_i] = {{(320 - DATA_WIDTH_FIFO0_64){1'b0}},o_rd_avst_data_3[DATA_WIDTH_FIFO0_64 - 1 : 0]};
else
avl_rdata_g[port_i] = 320'd0;
else if ((data_width[port_i] == 128) || (data_width[port_i] == 160))
if (lsb_rfifo[port_i] == 0)
avl_rdata_g[port_i] = {{(320 - DATA_WIDTH_FIFO0_64 * 2){1'b0}},o_rd_avst_data_1[DATA_WIDTH_FIFO0_64 - 1 : 0],o_rd_avst_data_0[DATA_WIDTH_FIFO0_64 - 1 : 0]};
else if (lsb_rfifo[port_i] == 2)
avl_rdata_g[port_i] = {{(320 - DATA_WIDTH_FIFO0_64 * 2){1'b0}},o_rd_avst_data_3[DATA_WIDTH_FIFO0_64 - 1 : 0],o_rd_avst_data_2[DATA_WIDTH_FIFO0_64 - 1 : 0]};
else
avl_rdata_g[port_i] = 320'd0;
else if ((data_width[port_i] == 256) || (data_width[port_i] == 320))
avl_rdata_g[port_i] = {{(320 - DATA_WIDTH_FIFO0_64 * 4){1'b0}},o_rd_avst_data_3[DATA_WIDTH_FIFO0_64 - 1 : 0],o_rd_avst_data_2[DATA_WIDTH_FIFO0_64 - 1 : 0],o_rd_avst_data_1[DATA_WIDTH_FIFO0_64 - 1 : 0],o_rd_avst_data_0[DATA_WIDTH_FIFO0_64 - 1 : 0]};
else
avl_rdata_g[port_i] = 320'd0;
end
for (fifo_i = 0; fifo_i < 4; fifo_i = fifo_i + 1)
begin : fifo_loop
//----------------------------------------------------------------------
// Write data path
//----------------------------------------------------------------------
if ((lsb_wfifo[0] <= fifo_i) && (msb_wfifo[0] >= fifo_i))
if ((data_width[0] == 32) || (data_width[0] == 48))
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_32{1'b0}},avl_be_g[0][BE_WIDTH_FIFO0_32 - 1 : 0],{ZERO_PAD_WIDTH_DT_32{1'b0}},avl_wdata_g[0][DATA_WIDTH_FIFO0_32 - 1 : 0]};
else if (fifo_i - lsb_wfifo[0] == 0)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[0][BE_WIDTH_FIFO0_64 - 1 : 0],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[0][DATA_WIDTH_FIFO0_64 - 1 : 0]};
else if (fifo_i - lsb_wfifo[0] == 1)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[0][BE_WIDTH_FIFO1_64 - 1 : BE_WIDTH_FIFO0_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[0][DATA_WIDTH_FIFO1_64 - 1 : DATA_WIDTH_FIFO0_64]};
else if (fifo_i - lsb_wfifo[0] == 2)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[0][BE_WIDTH_FIFO2_64 - 1 : BE_WIDTH_FIFO1_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[0][DATA_WIDTH_FIFO2_64 - 1 : DATA_WIDTH_FIFO1_64]};
else if (fifo_i - lsb_wfifo[0] == 3)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[0][BE_WIDTH_FIFO3_64 - 1 : BE_WIDTH_FIFO2_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[0][DATA_WIDTH_FIFO3_64 - 1 : DATA_WIDTH_FIFO2_64]};
else
i_avst_wr_data_g[fifo_i] = 90'd0;
else if ((lsb_wfifo[1] <= fifo_i) && (msb_wfifo[1] >= fifo_i))
if ((data_width[1] == 32) || (data_width[1] == 48))
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_32{1'b0}},avl_be_g[1][BE_WIDTH_FIFO0_32 - 1 : 0],{ZERO_PAD_WIDTH_DT_32{1'b0}},avl_wdata_g[1][DATA_WIDTH_FIFO0_32 - 1 : 0]};
else if (fifo_i - lsb_wfifo[1] == 0)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[1][BE_WIDTH_FIFO0_64 - 1 : 0],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[1][DATA_WIDTH_FIFO0_64 - 1 : 0]};
else if (fifo_i - lsb_wfifo[1] == 1)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[1][BE_WIDTH_FIFO1_64 - 1 : BE_WIDTH_FIFO0_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[1][DATA_WIDTH_FIFO1_64 - 1 : DATA_WIDTH_FIFO0_64]};
else if (fifo_i - lsb_wfifo[1] == 2)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[1][BE_WIDTH_FIFO2_64 - 1 : BE_WIDTH_FIFO1_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[1][DATA_WIDTH_FIFO2_64 - 1 : DATA_WIDTH_FIFO1_64]};
else if (fifo_i - lsb_wfifo[1] == 3)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[1][BE_WIDTH_FIFO3_64 - 1 : BE_WIDTH_FIFO2_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[1][DATA_WIDTH_FIFO3_64 - 1 : DATA_WIDTH_FIFO2_64]};
else
i_avst_wr_data_g[fifo_i] = 90'd0;
else if ((lsb_wfifo[2] <= fifo_i) && (msb_wfifo[2] >= fifo_i))
if ((data_width[2] == 32) || (data_width[2] == 48))
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_32{1'b0}},avl_be_g[2][BE_WIDTH_FIFO0_32 - 1 : 0],{ZERO_PAD_WIDTH_DT_32{1'b0}},avl_wdata_g[2][DATA_WIDTH_FIFO0_32 - 1 : 0]};
else if (fifo_i - lsb_wfifo[2] == 0)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[2][BE_WIDTH_FIFO0_64 - 1 : 0],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[2][DATA_WIDTH_FIFO0_64 - 1 : 0]};
else if (fifo_i - lsb_wfifo[2] == 1)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[2][BE_WIDTH_FIFO1_64 - 1 : BE_WIDTH_FIFO0_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[2][DATA_WIDTH_FIFO1_64 - 1 : DATA_WIDTH_FIFO0_64]};
else if (fifo_i - lsb_wfifo[2] == 2)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[2][BE_WIDTH_FIFO2_64 - 1 : BE_WIDTH_FIFO1_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[2][DATA_WIDTH_FIFO2_64 - 1 : DATA_WIDTH_FIFO1_64]};
else if (fifo_i - lsb_wfifo[2] == 3)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[2][BE_WIDTH_FIFO3_64 - 1 : BE_WIDTH_FIFO2_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[2][DATA_WIDTH_FIFO3_64 - 1 : DATA_WIDTH_FIFO2_64]};
else
i_avst_wr_data_g[fifo_i] = 90'd0;
else if ((lsb_wfifo[3] <= fifo_i) && (msb_wfifo[3] >= fifo_i))
if ((data_width[3] == 32) || (data_width[3] == 48))
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_32{1'b0}},avl_be_g[3][BE_WIDTH_FIFO0_32 - 1 : 0],{ZERO_PAD_WIDTH_DT_32{1'b0}},avl_wdata_g[3][DATA_WIDTH_FIFO0_32 - 1 : 0]};
else if (fifo_i - lsb_wfifo[3] == 0)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[3][BE_WIDTH_FIFO0_64 - 1 : 0],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[3][DATA_WIDTH_FIFO0_64 - 1 : 0]};
else if (fifo_i - lsb_wfifo[3] == 1)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[3][BE_WIDTH_FIFO1_64 - 1 : BE_WIDTH_FIFO0_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[3][DATA_WIDTH_FIFO1_64 - 1 : DATA_WIDTH_FIFO0_64]};
else if (fifo_i - lsb_wfifo[3] == 2)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[3][BE_WIDTH_FIFO2_64 - 1 : BE_WIDTH_FIFO1_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[3][DATA_WIDTH_FIFO2_64 - 1 : DATA_WIDTH_FIFO1_64]};
else if (fifo_i - lsb_wfifo[3] == 3)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[3][BE_WIDTH_FIFO3_64 - 1 : BE_WIDTH_FIFO2_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[3][DATA_WIDTH_FIFO3_64 - 1 : DATA_WIDTH_FIFO2_64]};
else
i_avst_wr_data_g[fifo_i] = 90'd0;
else if ((lsb_wfifo[4] <= fifo_i) && (msb_wfifo[4] >= fifo_i))
if ((data_width[4] == 32) || (data_width[4] == 48))
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_32{1'b0}},avl_be_g[4][BE_WIDTH_FIFO0_32 - 1 : 0],{ZERO_PAD_WIDTH_DT_32{1'b0}},avl_wdata_g[4][DATA_WIDTH_FIFO0_32 - 1 : 0]};
else if (fifo_i - lsb_wfifo[4] == 0)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[4][BE_WIDTH_FIFO0_64 - 1 : 0],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[4][DATA_WIDTH_FIFO0_64 - 1 : 0]};
else if (fifo_i - lsb_wfifo[4] == 1)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[4][BE_WIDTH_FIFO1_64 - 1 : BE_WIDTH_FIFO0_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[4][DATA_WIDTH_FIFO1_64 - 1 : DATA_WIDTH_FIFO0_64]};
else if (fifo_i - lsb_wfifo[4] == 2)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[4][BE_WIDTH_FIFO2_64 - 1 : BE_WIDTH_FIFO1_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[4][DATA_WIDTH_FIFO2_64 - 1 : DATA_WIDTH_FIFO1_64]};
else if (fifo_i - lsb_wfifo[4] == 3)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[4][BE_WIDTH_FIFO3_64 - 1 : BE_WIDTH_FIFO2_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[4][DATA_WIDTH_FIFO3_64 - 1 : DATA_WIDTH_FIFO2_64]};
else
i_avst_wr_data_g[fifo_i] = 90'd0;
else if ((lsb_wfifo[5] <= fifo_i) && (msb_wfifo[5] >= fifo_i))
if ((data_width[5] == 32) || (data_width[5] == 48))
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_32{1'b0}},avl_be_g[5][BE_WIDTH_FIFO0_32 - 1 : 0],{ZERO_PAD_WIDTH_DT_32{1'b0}},avl_wdata_g[5][DATA_WIDTH_FIFO0_32 - 1 : 0]};
else if (fifo_i - lsb_wfifo[5] == 0)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[5][BE_WIDTH_FIFO0_64 - 1 : 0],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[5][DATA_WIDTH_FIFO0_64 - 1 : 0]};
else if (fifo_i - lsb_wfifo[5] == 1)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[5][BE_WIDTH_FIFO1_64 - 1 : BE_WIDTH_FIFO0_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[5][DATA_WIDTH_FIFO1_64 - 1 : DATA_WIDTH_FIFO0_64]};
else if (fifo_i - lsb_wfifo[5] == 2)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[5][BE_WIDTH_FIFO2_64 - 1 : BE_WIDTH_FIFO1_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[5][DATA_WIDTH_FIFO2_64 - 1 : DATA_WIDTH_FIFO1_64]};
else if (fifo_i - lsb_wfifo[5] == 3)
i_avst_wr_data_g[fifo_i] = {{ZERO_PAD_WIDTH_BE_64{1'b0}},avl_be_g[5][BE_WIDTH_FIFO3_64 - 1 : BE_WIDTH_FIFO2_64],{ZERO_PAD_WIDTH_DT_64{1'b0}},avl_wdata_g[5][DATA_WIDTH_FIFO3_64 - 1 : DATA_WIDTH_FIFO2_64]};
else
i_avst_wr_data_g[fifo_i] = 90'd0;
else
i_avst_wr_data_g[fifo_i] = 90'd0;
end
//----------------------------------------------------------------------
// Afi
//----------------------------------------------------------------------
if (HARD_PHY == 1)
begin
afi_rdata_int = afi_rdata;
afi_wdata = afi_wdata_int;
afi_dm = afi_dm_int;
end
else
begin
for (idx_4 = 0; idx_4 < HARDIP_AFI_DQ_WIDTH; idx_4 = idx_4 + 1'b1)
begin : afi_rdata_hip_to_sip
if (idx_4 < INT_AFI_DQ_WIDTH/2)
afi_rdata_int[idx_4] = afi_rdata[idx_4];
else if ((idx_4 > (HARDIP_AFI_DQ_WIDTH / 2 - 1)) && (idx_4 < (HARDIP_AFI_DQ_WIDTH / 2 + INT_AFI_DQ_WIDTH / 2)))
afi_rdata_int[idx_4] = afi_rdata[idx_4 - ((HARDIP_AFI_DQ_WIDTH /2) - (INT_AFI_DQ_WIDTH / 2))];
else
afi_rdata_int[idx_4] = 1'b0;
end
for (idx_5 = 0; idx_5 < INT_AFI_DQ_WIDTH; idx_5 = idx_5 + 1'b1)
begin : afi_wdata_hip_to_sip
if (idx_5 < (INT_AFI_DQ_WIDTH / 2))
afi_wdata[idx_5] = afi_wdata_int[idx_5];
else
afi_wdata[idx_5] = afi_wdata_int[idx_5 + ((HARDIP_AFI_DQ_WIDTH / 2) - (INT_AFI_DQ_WIDTH / 2))];
end
for (idx_6 = 0; idx_6 < INT_AFI_DM_WIDTH; idx_6 = idx_6 + 1'b1)
begin : afi_dm_hip_to_sip
if (idx_6 < (INT_AFI_DM_WIDTH / 2))
afi_dm[idx_6] = afi_dm_int[idx_6];
else
afi_dm[idx_6] = afi_dm_int[idx_6 + ((HARDIP_AFI_DM_WIDTH / 2) - (INT_AFI_DM_WIDTH / 2))];
end
end
end
// END HIP TO SIP MAPING
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// START OTHERS ASSIGNMENT
assign local_cal_success = io_intaficalsuccess;
assign local_cal_fail = io_intaficalfail;
assign afi_init_req = '0;
assign afi_seq_busy_int = {HARDIP_TRACKING_WIDTH{afi_seq_busy[0]}};
// END OTHERS ASSIGNMENT
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// START ATOM INSTANTIATION
// Those that mark with //HARD NET is harden wire between controller and phy.
// ASM / Fitter will fail if they're not connected properly
cyclonev_hmc hmc_inst (
.portclk0 ( mp_cmd_clk_0 ), //SOFT NET
.portclk1 ( mp_cmd_clk_1 ), //SOFT NET
.portclk2 ( mp_cmd_clk_2 ), //SOFT NET
.portclk3 ( mp_cmd_clk_3 ), //SOFT NET
.portclk4 ( mp_cmd_clk_4 ), //SOFT NET
.portclk5 ( mp_cmd_clk_5 ), //SOFT NET
.iavstcmdresetn0 ( mp_cmd_reset_n_0 ), //SOFT NET
.iavstcmdresetn1 ( mp_cmd_reset_n_1 ), //SOFT NET
.iavstcmdresetn2 ( mp_cmd_reset_n_2 ), //SOFT NET
.iavstcmdresetn3 ( mp_cmd_reset_n_3 ), //SOFT NET
.iavstcmdresetn4 ( mp_cmd_reset_n_4 ), //SOFT NET
.iavstcmdresetn5 ( mp_cmd_reset_n_5 ), //SOFT NET
.iavstcmddata0 ( i_avst_cmd_data_0 ), //SOFT NET
.iavstcmddata1 ( i_avst_cmd_data_1 ), //SOFT NET
.iavstcmddata2 ( i_avst_cmd_data_2 ), //SOFT NET
.iavstcmddata3 ( i_avst_cmd_data_3 ), //SOFT NET
.iavstcmddata4 ( i_avst_cmd_data_4 ), //SOFT NET
.iavstcmddata5 ( i_avst_cmd_data_5 ), //SOFT NET
.oammready0 ( o_a_mm_ready_0 ), //SOFT NET
.oammready1 ( o_a_mm_ready_1 ), //SOFT NET
.oammready2 ( o_a_mm_ready_2 ), //SOFT NET
.oammready3 ( o_a_mm_ready_3 ), //SOFT NET
.oammready4 ( o_a_mm_ready_4 ), //SOFT NET
.oammready5 ( o_a_mm_ready_5 ), //SOFT NET
.iavstwrackready0 ( 1'b1 ), //INTERNAL USE
.iavstwrackready1 ( 1'b1 ), //INTERNAL USE
.iavstwrackready2 ( 1'b1 ), //INTERNAL USE
.iavstwrackready3 ( 1'b1 ), //INTERNAL USE
.iavstwrackready4 ( 1'b1 ), //INTERNAL USE
.iavstwrackready5 ( 1'b1 ), //INTERNAL USE
.owrackavstvalid0 ( o_wrack_avst_valid_0 ), //SOFT NET
.owrackavstvalid1 ( o_wrack_avst_valid_1 ), //SOFT NET
.owrackavstvalid2 ( o_wrack_avst_valid_2 ), //SOFT NET
.owrackavstvalid3 ( o_wrack_avst_valid_3 ), //SOFT NET
.owrackavstvalid4 ( o_wrack_avst_valid_4 ), //SOFT NET
.owrackavstvalid5 ( o_wrack_avst_valid_5 ), //SOFT NET
.owrackavstdata0 ( o_wrack_avst_data_0 ), //SOFT NET
.owrackavstdata1 ( o_wrack_avst_data_1 ), //SOFT NET
.owrackavstdata2 ( o_wrack_avst_data_2 ), //SOFT NET
.owrackavstdata3 ( o_wrack_avst_data_3 ), //SOFT NET
.owrackavstdata4 ( o_wrack_avst_data_4 ), //SOFT NET
.owrackavstdata5 ( o_wrack_avst_data_5 ), //SOFT NET
.iavstrdclk0 ( mp_rfifo_clk_0 ), //SOFT NET
.iavstrdclk1 ( mp_rfifo_clk_1 ), //SOFT NET
.iavstrdclk2 ( mp_rfifo_clk_2 ), //SOFT NET
.iavstrdclk3 ( mp_rfifo_clk_3 ), //SOFT NET
.iavstrdresetn0 ( mp_rfifo_reset_n_0 ), //SOFT NET
.iavstrdresetn1 ( mp_rfifo_reset_n_1 ), //SOFT NET
.iavstrdresetn2 ( mp_rfifo_reset_n_2 ), //SOFT NET
.iavstrdresetn3 ( mp_rfifo_reset_n_3 ), //SOFT NET
.ordavstvalid0 ( o_rd_avst_valid_0 ), //SOFT NET
.ordavstvalid1 ( o_rd_avst_valid_1 ), //SOFT NET
.ordavstvalid2 ( o_rd_avst_valid_2 ), //SOFT NET
.ordavstvalid3 ( o_rd_avst_valid_3 ), //SOFT NET
.ordavstdata0 ( o_rd_avst_data_0 ), //SOFT NET
.ordavstdata1 ( o_rd_avst_data_1 ), //SOFT NET
.ordavstdata2 ( o_rd_avst_data_2 ), //SOFT NET
.ordavstdata3 ( o_rd_avst_data_3 ), //SOFT NET
.iavstrdready0 ( 1'b1 ), //INTERNAL USE
.iavstrdready1 ( 1'b1 ), //INTERNAL USE
.iavstrdready2 ( 1'b1 ), //INTERNAL USE
.iavstrdready3 ( 1'b1 ), //INTERNAL USE
.iavstwrclk0 ( mp_wfifo_clk_0 ), //SOFT NET
.iavstwrclk1 ( mp_wfifo_clk_1 ), //SOFT NET
.iavstwrclk2 ( mp_wfifo_clk_2 ), //SOFT NET
.iavstwrclk3 ( mp_wfifo_clk_3 ), //SOFT NET
.iavstwrresetn0 ( mp_wfifo_reset_n_0 ), //SOFT NET
.iavstwrresetn1 ( mp_wfifo_reset_n_1 ), //SOFT NET
.iavstwrresetn2 ( mp_wfifo_reset_n_2 ), //SOFT NET
.iavstwrresetn3 ( mp_wfifo_reset_n_3 ), //SOFT NET
.iavstwrdata0 ( i_avst_wr_data_0 ), //SOFT NET
.iavstwrdata1 ( i_avst_wr_data_1 ), //SOFT NET
.iavstwrdata2 ( i_avst_wr_data_2 ), //SOFT NET
.iavstwrdata3 ( i_avst_wr_data_3 ), //SOFT NET
.bondingout1 ( bonding_out_1 ), //SOFT NET
.bondingin1 ( bonding_in_1 ), //SOFT NET
.bondingout2 ( bonding_out_2 ), //SOFT NET
.bondingin2 ( bonding_in_2 ), //SOFT NET
.bondingout3 ( bonding_out_3 ), //SOFT NET
.bondingin3 ( bonding_in_3 ), //SOFT NET
.localrefreshreq ( local_refresh_req ), //SOFT NET
.localrefreshchip ( local_refresh_chip_wire ), //SOFT NET
.localdeeppowerdnreq ( local_deep_powerdn_req ), //SOFT NET
.localdeeppowerdnchip ( local_deep_powerdn_chip_wire ), //SOFT NET
.localselfrfshreq ( local_self_rfsh_req ), //SOFT NET
.localselfrfshchip ( local_self_rfsh_chip_wire ), //SOFT NET
.localrefreshack ( local_refresh_ack ), //SOFT NET
.localdeeppowerdnack ( local_deep_powerdn_ack ), //SOFT NET
.localpowerdownack ( local_powerdn_ack ), //SOFT NET
.localselfrfshack ( local_self_rfsh_ack ), //SOFT NET
.localstsctlempty ( local_sts_ctl_empty ),
.ctlinitreq ( ctl_init_req ),
.localinitdone ( local_init_done ), //SOFT NET
.afirstn ( afi_rst_n ), //HARD NET
.afiba ( afi_ba ), //HARD NET
.afiaddr ( afi_addr ), //HARD NET
.aficke ( afi_cke ), //HARD NET
.aficsn ( afi_cs_n ), //HARD NET
.afirasn ( afi_ras_n ), //HARD NET
.aficasn ( afi_cas_n ), //HARD NET
.afiwen ( afi_we_n ), //HARD NET
.afiodt ( afi_odt ), //HARD NET
.afiwlat ( afi_wlat ), //HARD NET
.afidqsburst ( afi_dqs_burst ), //HARD NET
.afidm ( afi_dm_int ), //HARD NET
.afiwdata ( afi_wdata_int ), //HARD NET
.afiwdatavalid ( afi_wdata_valid ), //HARD NET
.afirdataen ( afi_rdata_en ), //HARD NET
.afirdataenfull ( afi_rdata_en_full ), //HARD NET
.afirdata ( afi_rdata_int ), //HARD NET
.afirdatavalid ( afi_rdata_valid ), //HARD NET
.ctlcalsuccess ( afi_cal_success ), //HARD NET
.ctlcalfail ( afi_cal_fail ), //HARD NET
.ctlcalreq ( afi_cal_req ), //SOFT NET
.ctlcalbytelaneseln ( afi_cal_byte_lane_sel_n ), //SOFT NET
.ctlmemclkdisable ( afi_mem_clk_disable ), //HARD NET
.afictlrefreshdone ( afi_ctl_refresh_done ), //SOFT NET
.afiseqbusy ( afi_seq_busy_int ), //SOFT NET
.afictllongidle ( afi_ctl_long_idle ), //SOFT NET
.mmrclk ( csr_clk ), //SOFT NET
.mmrresetn ( csr_reset_n ), //SOFT NET
.mmrreadreq ( csr_read_req ), //SOFT NET
.mmrwritereq ( csr_write_req ), //SOFT NET
.mmrburstcount ( 2'b01 ), //SOFT NET
.mmrburstbegin ( 1'b1 ), //SOFT NET
.mmraddr ( csr_addr ), //SOFT NET
.mmrwdata ( csr_wdata ), //SOFT NET
.mmrbe ( csr_be ), //SOFT NET
.mmrrdata ( csr_rdata ), //SOFT NET
.mmrrdatavalid ( csr_rdata_valid ), //SOFT NET
.mmrwaitrequest ( csr_waitrequest ), //SOFT NET
.scclk ( 1'b0 ), //INTERNAL USE
.scresetn ( 1'b1 ), //INTERNAL USE
.screadreq ( 1'b0 ), //INTERNAL USE
.scwritereq ( 1'b0 ), //INTERNAL USE
.scburstcount ( 2'b0 ), //INTERNAL USE
.scburstbegin ( 1'b0 ), //INTERNAL USE
.scaddr ( 10'b0000000000 ), //INTERNAL USE
.scwdata ( 8'b0 ), //INTERNAL USE
.scbe ( 1'b0 ), //INTERNAL USE
.scrdata ( ), //INTERNAL USE
.scrdatavalid ( ), //INTERNAL USE
.scwaitrequest ( ), //INTERNAL USE
.dramconfig ( cfg_dramconfig_wire ), //SOFT NET
.cfgcaswrlat ( cfg_caswrlat_wire ), //SOFT NET
.cfgaddlat ( cfg_addlat_wire ), //SOFT NET
.cfgtcl ( cfg_tcl_wire ), //SOFT NET
.cfgtrfc ( cfg_trfc_wire ), //SOFT NET
.cfgtrefi ( cfg_trefi_wire ), //SOFT NET
.cfgtwr ( cfg_twr_wire ), //SOFT NET
.cfgtmrd ( cfg_tmrd_wire ), //SOFT NET
.cfgcoladdrwidth ( cfg_coladdrwidth_wire ), //SOFT NET
.cfgrowaddrwidth ( cfg_rowaddrwidth_wire ), //SOFT NET
.cfgbankaddrwidth ( cfg_bankaddrwidth_wire ), //SOFT NET
.cfgcsaddrwidth ( cfg_csaddrwidth_wire ), //SOFT NET
.cfginterfacewidth ( cfg_interfacewidth_wire ), //SOFT NET
.cfgdevicewidth ( cfg_devicewidth_wire ), //SOFT NET
.scanenable ( 1'b0 ), //INTERNAL USE
.ctlclk ( ctl_clk ), //HARD NET
.ctlresetn ( ctl_reset_n ) //HARD NET
);
// Those that mark with // SYTH & SIM is used to force MMR signals in simulation
// Those that mark with // SYTH ONLY is only used for Quartus sythesis
defparam hmc_inst.attr_counter_one_mask = VECT_ATTR_COUNTER_ONE_MASK; //SYTH & SIM
defparam hmc_inst.attr_counter_one_match = VECT_ATTR_COUNTER_ONE_MATCH; //SYTH & SIM
defparam hmc_inst.attr_counter_one_reset = ENUM_ATTR_COUNTER_ONE_RESET; //SYTH & SIM
defparam hmc_inst.attr_counter_zero_mask = VECT_ATTR_COUNTER_ZERO_MASK; //SYTH & SIM
defparam hmc_inst.attr_counter_zero_match = VECT_ATTR_COUNTER_ZERO_MATCH; //SYTH & SIM
defparam hmc_inst.attr_counter_zero_reset = ENUM_ATTR_COUNTER_ZERO_RESET; //SYTH & SIM
defparam hmc_inst.attr_debug_select_byte = VECT_ATTR_DEBUG_SELECT_BYTE; //SYTH & SIM
defparam hmc_inst.attr_static_config_valid = ENUM_ATTR_STATIC_CONFIG_VALID; //SYTH & SIM
defparam hmc_inst.auto_pch_enable_0 = ENUM_AUTO_PCH_ENABLE_0; //SYTH & SIM
defparam hmc_inst.auto_pch_enable_1 = ENUM_AUTO_PCH_ENABLE_1; //SYTH & SIM
defparam hmc_inst.auto_pch_enable_2 = ENUM_AUTO_PCH_ENABLE_2; //SYTH & SIM
defparam hmc_inst.auto_pch_enable_3 = ENUM_AUTO_PCH_ENABLE_3; //SYTH & SIM
defparam hmc_inst.auto_pch_enable_4 = ENUM_AUTO_PCH_ENABLE_4; //SYTH & SIM
defparam hmc_inst.auto_pch_enable_5 = ENUM_AUTO_PCH_ENABLE_5; //SYTH & SIM
defparam hmc_inst.cal_req = ENUM_CAL_REQ; //SYTH & SIM
defparam hmc_inst.cfg_burst_length = ENUM_CFG_BURST_LENGTH; //SYTH & SIM
defparam hmc_inst.cfg_interface_width = ENUM_CFG_INTERFACE_WIDTH; //SYTH & SIM
defparam hmc_inst.cfg_self_rfsh_exit_cycles = ENUM_CFG_SELF_RFSH_EXIT_CYCLES; //SYTH & SIM
defparam hmc_inst.cfg_starve_limit = ENUM_CFG_STARVE_LIMIT; //SYTH & SIM
defparam hmc_inst.cfg_type = ENUM_CFG_TYPE; //SYTH & SIM
defparam hmc_inst.clock_off_0 = ENUM_CLOCK_OFF_0; //SIM ONLY
defparam hmc_inst.clock_off_1 = ENUM_CLOCK_OFF_1; //SIM ONLY
defparam hmc_inst.clock_off_2 = ENUM_CLOCK_OFF_2; //SIM ONLY
defparam hmc_inst.clock_off_3 = ENUM_CLOCK_OFF_3; //SIM ONLY
defparam hmc_inst.clock_off_4 = ENUM_CLOCK_OFF_4; //SIM ONLY
defparam hmc_inst.clock_off_5 = ENUM_CLOCK_OFF_5; //SIM ONLY
defparam hmc_inst.clr_intr = ENUM_CLR_INTR; //SIM ONLY
defparam hmc_inst.cmd_port_in_use_0 = ENUM_CMD_PORT_IN_USE_0; //SYTH ONLY
defparam hmc_inst.cmd_port_in_use_1 = ENUM_CMD_PORT_IN_USE_1; //SYTH ONLY
defparam hmc_inst.cmd_port_in_use_2 = ENUM_CMD_PORT_IN_USE_2; //SYTH ONLY
defparam hmc_inst.cmd_port_in_use_3 = ENUM_CMD_PORT_IN_USE_3; //SYTH ONLY
defparam hmc_inst.cmd_port_in_use_4 = ENUM_CMD_PORT_IN_USE_4; //SYTH ONLY
defparam hmc_inst.cmd_port_in_use_5 = ENUM_CMD_PORT_IN_USE_5; //SYTH ONLY
defparam hmc_inst.cport0_rdy_almost_full = ENUM_CPORT0_RDY_ALMOST_FULL; //SYTH & SIM
defparam hmc_inst.cport0_rfifo_map = ENUM_CPORT0_RFIFO_MAP; //SYTH & SIM
defparam hmc_inst.cport0_type = ENUM_CPORT0_TYPE; //SYTH & SIM
defparam hmc_inst.cport0_wfifo_map = ENUM_CPORT0_WFIFO_MAP; //SYTH & SIM
defparam hmc_inst.cport1_rdy_almost_full = ENUM_CPORT1_RDY_ALMOST_FULL; //SYTH & SIM
defparam hmc_inst.cport1_rfifo_map = ENUM_CPORT1_RFIFO_MAP; //SYTH & SIM
defparam hmc_inst.cport1_type = ENUM_CPORT1_TYPE; //SYTH & SIM
defparam hmc_inst.cport1_wfifo_map = ENUM_CPORT1_WFIFO_MAP; //SYTH & SIM
defparam hmc_inst.cport2_rdy_almost_full = ENUM_CPORT2_RDY_ALMOST_FULL; //SYTH & SIM
defparam hmc_inst.cport2_rfifo_map = ENUM_CPORT2_RFIFO_MAP; //SYTH & SIM
defparam hmc_inst.cport2_type = ENUM_CPORT2_TYPE; //SYTH & SIM
defparam hmc_inst.cport2_wfifo_map = ENUM_CPORT2_WFIFO_MAP; //SYTH & SIM
defparam hmc_inst.cport3_rdy_almost_full = ENUM_CPORT3_RDY_ALMOST_FULL; //SYTH & SIM
defparam hmc_inst.cport3_rfifo_map = ENUM_CPORT3_RFIFO_MAP; //SYTH & SIM
defparam hmc_inst.cport3_type = ENUM_CPORT3_TYPE; //SYTH & SIM
defparam hmc_inst.cport3_wfifo_map = ENUM_CPORT3_WFIFO_MAP; //SYTH & SIM
defparam hmc_inst.cport4_rdy_almost_full = ENUM_CPORT4_RDY_ALMOST_FULL; //SYTH & SIM
defparam hmc_inst.cport4_rfifo_map = ENUM_CPORT4_RFIFO_MAP; //SYTH & SIM
defparam hmc_inst.cport4_type = ENUM_CPORT4_TYPE; //SYTH & SIM
defparam hmc_inst.cport4_wfifo_map = ENUM_CPORT4_WFIFO_MAP; //SYTH & SIM
defparam hmc_inst.cport5_rdy_almost_full = ENUM_CPORT5_RDY_ALMOST_FULL; //SYTH & SIM
defparam hmc_inst.cport5_rfifo_map = ENUM_CPORT5_RFIFO_MAP; //SYTH & SIM
defparam hmc_inst.cport5_type = ENUM_CPORT5_TYPE; //SYTH & SIM
defparam hmc_inst.cport5_wfifo_map = ENUM_CPORT5_WFIFO_MAP; //SYTH & SIM
defparam hmc_inst.ctl_addr_order = ENUM_CTL_ADDR_ORDER; //SYTH & SIM
defparam hmc_inst.ctl_ecc_enabled = ENUM_CTL_ECC_ENABLED; //SYTH & SIM
defparam hmc_inst.ctl_ecc_rmw_enabled = ENUM_CTL_ECC_RMW_ENABLED; //SYTH & SIM
defparam hmc_inst.ctl_regdimm_enabled = ENUM_CTL_REGDIMM_ENABLED; //SIM ONLY
defparam hmc_inst.ctl_usr_refresh = ENUM_CTL_USR_REFRESH; //SYTH & SIM
defparam hmc_inst.ctrl_width = ENUM_CTRL_WIDTH; //SYTH & SIM
defparam hmc_inst.cyc_to_rld_jars_0 = INTG_CYC_TO_RLD_JARS_0; //SYTH & SIM
defparam hmc_inst.cyc_to_rld_jars_1 = INTG_CYC_TO_RLD_JARS_1; //SYTH & SIM
defparam hmc_inst.cyc_to_rld_jars_2 = INTG_CYC_TO_RLD_JARS_2; //SYTH & SIM
defparam hmc_inst.cyc_to_rld_jars_3 = INTG_CYC_TO_RLD_JARS_3; //SYTH & SIM
defparam hmc_inst.cyc_to_rld_jars_4 = INTG_CYC_TO_RLD_JARS_4; //SYTH & SIM
defparam hmc_inst.cyc_to_rld_jars_5 = INTG_CYC_TO_RLD_JARS_5; //SYTH & SIM
defparam hmc_inst.power_saving_exit_cycles = INTG_POWER_SAVING_EXIT_CYCLES; //SYTH & SIM
defparam hmc_inst.mem_clk_entry_cycles = INTG_MEM_CLK_ENTRY_CYCLES; //SYTH & SIM
defparam hmc_inst.priority_remap = INTG_PRIORITY_REMAP; //SIM ONLY
defparam hmc_inst.enable_burst_interrupt = ENUM_ENABLE_BURST_INTERRUPT; //SYTH & SIM
defparam hmc_inst.enable_burst_terminate = ENUM_ENABLE_BURST_TERMINATE; //SYTH & SIM
defparam hmc_inst.delay_bonding = ENUM_DELAY_BONDING; //SYTH & SIM
defparam hmc_inst.dfx_bypass_enable = ENUM_DFX_BYPASS_ENABLE; //SYTH & SIM
defparam hmc_inst.disable_merging = ENUM_DISABLE_MERGING; //SIM ONLY
defparam hmc_inst.ecc_dq_width = ENUM_ECC_DQ_WIDTH; //SYTH ONLY
defparam hmc_inst.enable_atpg = ENUM_ENABLE_ATPG; //SYTH & SIM
defparam hmc_inst.enable_bonding_0 = ENUM_ENABLE_BONDING_0; //SYTH & SIM
defparam hmc_inst.enable_bonding_1 = ENUM_ENABLE_BONDING_1; //SYTH & SIM
defparam hmc_inst.enable_bonding_2 = ENUM_ENABLE_BONDING_2; //SYTH & SIM
defparam hmc_inst.enable_bonding_3 = ENUM_ENABLE_BONDING_3; //SYTH & SIM
defparam hmc_inst.enable_bonding_4 = ENUM_ENABLE_BONDING_4; //SYTH & SIM
defparam hmc_inst.enable_bonding_5 = ENUM_ENABLE_BONDING_5; //SYTH & SIM
defparam hmc_inst.enable_bonding_wrapback = ENUM_ENABLE_BONDING_WRAPBACK; //SYTH & SIM
defparam hmc_inst.enable_dqs_tracking = ENUM_ENABLE_DQS_TRACKING; //SYTH & SIM
defparam hmc_inst.enable_ecc_code_overwrites = ENUM_ENABLE_ECC_CODE_OVERWRITES; //SYTH & SIM
defparam hmc_inst.enable_fast_exit_ppd = ENUM_ENABLE_FAST_EXIT_PPD; //SYTH ONLY
defparam hmc_inst.enable_intr = ENUM_ENABLE_INTR; //SYTH & SIM
defparam hmc_inst.enable_no_dm = ENUM_ENABLE_NO_DM; //SYTH & SIM
defparam hmc_inst.enable_pipelineglobal = ENUM_ENABLE_PIPELINEGLOBAL; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_act_to_act = INTG_EXTRA_CTL_CLK_ACT_TO_ACT; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_act_to_act_diff_bank = INTG_EXTRA_CTL_CLK_ACT_TO_ACT_DIFF_BANK; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_act_to_pch = INTG_EXTRA_CTL_CLK_ACT_TO_PCH; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_act_to_rdwr = INTG_EXTRA_CTL_CLK_ACT_TO_RDWR; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_arf_period = INTG_EXTRA_CTL_CLK_ARF_PERIOD; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_arf_to_valid = INTG_EXTRA_CTL_CLK_ARF_TO_VALID; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_four_act_to_act = INTG_EXTRA_CTL_CLK_FOUR_ACT_TO_ACT; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_pch_all_to_valid = INTG_EXTRA_CTL_CLK_PCH_ALL_TO_VALID; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_pch_to_valid = INTG_EXTRA_CTL_CLK_PCH_TO_VALID; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_pdn_period = INTG_EXTRA_CTL_CLK_PDN_PERIOD; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_pdn_to_valid = INTG_EXTRA_CTL_CLK_PDN_TO_VALID; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_rd_ap_to_valid = INTG_EXTRA_CTL_CLK_RD_AP_TO_VALID; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_rd_to_pch = INTG_EXTRA_CTL_CLK_RD_TO_PCH; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_rd_to_rd = INTG_EXTRA_CTL_CLK_RD_TO_RD; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_rd_to_rd_diff_chip = INTG_EXTRA_CTL_CLK_RD_TO_RD_DIFF_CHIP; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_rd_to_wr = INTG_EXTRA_CTL_CLK_RD_TO_WR; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_rd_to_wr_bc = INTG_EXTRA_CTL_CLK_RD_TO_WR_BC; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_rd_to_wr_diff_chip = INTG_EXTRA_CTL_CLK_RD_TO_WR_DIFF_CHIP; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_srf_to_valid = INTG_EXTRA_CTL_CLK_SRF_TO_VALID; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_srf_to_zq_cal = INTG_EXTRA_CTL_CLK_SRF_TO_ZQ_CAL; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_wr_ap_to_valid = INTG_EXTRA_CTL_CLK_WR_AP_TO_VALID; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_wr_to_pch = INTG_EXTRA_CTL_CLK_WR_TO_PCH; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_wr_to_rd = INTG_EXTRA_CTL_CLK_WR_TO_RD; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_wr_to_rd_bc = INTG_EXTRA_CTL_CLK_WR_TO_RD_BC; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_wr_to_rd_diff_chip = INTG_EXTRA_CTL_CLK_WR_TO_RD_DIFF_CHIP; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_wr_to_wr = INTG_EXTRA_CTL_CLK_WR_TO_WR; //SYTH & SIM
defparam hmc_inst.extra_ctl_clk_wr_to_wr_diff_chip = INTG_EXTRA_CTL_CLK_WR_TO_WR_DIFF_CHIP; //SYTH & SIM
defparam hmc_inst.ganged_arf = ENUM_GANGED_ARF; //SIM ONLY
defparam hmc_inst.gen_dbe = ENUM_GEN_DBE; //SIM ONLY
defparam hmc_inst.gen_sbe = ENUM_GEN_SBE; //SIM ONLY
defparam hmc_inst.inc_sync = ENUM_INC_SYNC; //SYTH & SIM
defparam hmc_inst.local_if_cs_width = ENUM_LOCAL_IF_CS_WIDTH; //SYTH & SIM
defparam hmc_inst.mask_corr_dropped_intr = ENUM_MASK_CORR_DROPPED_INTR; //SYTH & SIM
defparam hmc_inst.mask_dbe_intr = ENUM_MASK_DBE_INTR; //SYTH & SIM
defparam hmc_inst.mask_sbe_intr = ENUM_MASK_SBE_INTR; //SYTH & SIM
defparam hmc_inst.mem_auto_pd_cycles = INTG_MEM_AUTO_PD_CYCLES; //SYTH & SIM
defparam hmc_inst.mem_if_al = ENUM_MEM_IF_AL; //SYTH & SIM
defparam hmc_inst.mem_if_bankaddr_width = ENUM_MEM_IF_BANKADDR_WIDTH; //SYTH & SIM
defparam hmc_inst.mem_if_burstlength = ENUM_MEM_IF_BURSTLENGTH; //SYTH ONLY
defparam hmc_inst.mem_if_coladdr_width = ENUM_MEM_IF_COLADDR_WIDTH; //SYTH & SIM
defparam hmc_inst.mem_if_cs_per_rank = ENUM_MEM_IF_CS_PER_RANK; //SYTH ONLY
defparam hmc_inst.mem_if_cs_width = ENUM_MEM_IF_CS_WIDTH; //SYTH ONLY
defparam hmc_inst.mem_if_dq_per_chip = ENUM_MEM_IF_DQ_PER_CHIP; //SYTH ONLY
defparam hmc_inst.mem_if_dqs_width = ENUM_MEM_IF_DQS_WIDTH; //SYTH & SIM
defparam hmc_inst.mem_if_dwidth = ENUM_MEM_IF_DWIDTH; //SYTH ONLY
defparam hmc_inst.mem_if_memtype = ENUM_MEM_IF_MEMTYPE; //SYTH ONLY
defparam hmc_inst.mem_if_rowaddr_width = ENUM_MEM_IF_ROWADDR_WIDTH; //SYTH & SIM
defparam hmc_inst.mem_if_speedbin = ENUM_MEM_IF_SPEEDBIN; //SYTH ONLY
defparam hmc_inst.mem_if_tccd = ENUM_MEM_IF_TCCD; //SYTH & SIM
defparam hmc_inst.mem_if_tcl = ENUM_MEM_IF_TCL; //SYTH & SIM
defparam hmc_inst.mem_if_tcwl = ENUM_MEM_IF_TCWL; //SYTH & SIM
defparam hmc_inst.mem_if_tfaw = ENUM_MEM_IF_TFAW; //SYTH & SIM
defparam hmc_inst.mem_if_tmrd = ENUM_MEM_IF_TMRD; //SYTH & SIM
defparam hmc_inst.mem_if_tras = ENUM_MEM_IF_TRAS; //SYTH & SIM
defparam hmc_inst.mem_if_trc = ENUM_MEM_IF_TRC; //SYTH & SIM
defparam hmc_inst.mem_if_trcd = ENUM_MEM_IF_TRCD; //SYTH & SIM
defparam hmc_inst.mem_if_trefi = INTG_MEM_IF_TREFI; //SYTH & SIM
defparam hmc_inst.mem_if_trfc = INTG_MEM_IF_TRFC; //SYTH & SIM
defparam hmc_inst.mem_if_trp = ENUM_MEM_IF_TRP; //SYTH & SIM
defparam hmc_inst.mem_if_trrd = ENUM_MEM_IF_TRRD; //SYTH & SIM
defparam hmc_inst.mem_if_trtp = ENUM_MEM_IF_TRTP; //SYTH & SIM
defparam hmc_inst.mem_if_twr = ENUM_MEM_IF_TWR; //SYTH & SIM
defparam hmc_inst.mem_if_twtr = ENUM_MEM_IF_TWTR; //SYTH & SIM
defparam hmc_inst.mmr_cfg_mem_bl = ENUM_MMR_CFG_MEM_BL; //SYTH & SIM
defparam hmc_inst.output_regd = ENUM_OUTPUT_REGD; //SYTH & SIM
defparam hmc_inst.pdn_exit_cycles = ENUM_PDN_EXIT_CYCLES; //SYTH & SIM
defparam hmc_inst.port0_width = ENUM_PORT0_WIDTH; //SYTH & SIM
defparam hmc_inst.port1_width = ENUM_PORT1_WIDTH; //SYTH & SIM
defparam hmc_inst.port2_width = ENUM_PORT2_WIDTH; //SYTH & SIM
defparam hmc_inst.port3_width = ENUM_PORT3_WIDTH; //SYTH & SIM
defparam hmc_inst.port4_width = ENUM_PORT4_WIDTH; //SYTH & SIM
defparam hmc_inst.port5_width = ENUM_PORT5_WIDTH; //SYTH & SIM
defparam hmc_inst.priority_0_0 = ENUM_PRIORITY_0_0; //SYTH ONLY
defparam hmc_inst.priority_0_1 = ENUM_PRIORITY_0_1; //SYTH ONLY
defparam hmc_inst.priority_0_2 = ENUM_PRIORITY_0_2; //SYTH ONLY
defparam hmc_inst.priority_0_3 = ENUM_PRIORITY_0_3; //SYTH ONLY
defparam hmc_inst.priority_0_4 = ENUM_PRIORITY_0_4; //SYTH ONLY
defparam hmc_inst.priority_0_5 = ENUM_PRIORITY_0_5; //SYTH ONLY
defparam hmc_inst.priority_1_0 = ENUM_PRIORITY_1_0; //SYTH ONLY
defparam hmc_inst.priority_1_1 = ENUM_PRIORITY_1_1; //SYTH ONLY
defparam hmc_inst.priority_1_2 = ENUM_PRIORITY_1_2; //SYTH ONLY
defparam hmc_inst.priority_1_3 = ENUM_PRIORITY_1_3; //SYTH ONLY
defparam hmc_inst.priority_1_4 = ENUM_PRIORITY_1_4; //SYTH ONLY
defparam hmc_inst.priority_1_5 = ENUM_PRIORITY_1_5; //SYTH ONLY
defparam hmc_inst.priority_2_0 = ENUM_PRIORITY_2_0; //SYTH ONLY
defparam hmc_inst.priority_2_1 = ENUM_PRIORITY_2_1; //SYTH ONLY
defparam hmc_inst.priority_2_2 = ENUM_PRIORITY_2_2; //SYTH ONLY
defparam hmc_inst.priority_2_3 = ENUM_PRIORITY_2_3; //SYTH ONLY
defparam hmc_inst.priority_2_4 = ENUM_PRIORITY_2_4; //SYTH ONLY
defparam hmc_inst.priority_2_5 = ENUM_PRIORITY_2_5; //SYTH ONLY
defparam hmc_inst.priority_3_0 = ENUM_PRIORITY_3_0; //SYTH ONLY
defparam hmc_inst.priority_3_1 = ENUM_PRIORITY_3_1; //SYTH ONLY
defparam hmc_inst.priority_3_2 = ENUM_PRIORITY_3_2; //SYTH ONLY
defparam hmc_inst.priority_3_3 = ENUM_PRIORITY_3_3; //SYTH ONLY
defparam hmc_inst.priority_3_4 = ENUM_PRIORITY_3_4; //SYTH ONLY
defparam hmc_inst.priority_3_5 = ENUM_PRIORITY_3_5; //SYTH ONLY
defparam hmc_inst.priority_4_0 = ENUM_PRIORITY_4_0; //SYTH ONLY
defparam hmc_inst.priority_4_1 = ENUM_PRIORITY_4_1; //SYTH ONLY
defparam hmc_inst.priority_4_2 = ENUM_PRIORITY_4_2; //SYTH ONLY
defparam hmc_inst.priority_4_3 = ENUM_PRIORITY_4_3; //SYTH ONLY
defparam hmc_inst.priority_4_4 = ENUM_PRIORITY_4_4; //SYTH ONLY
defparam hmc_inst.priority_4_5 = ENUM_PRIORITY_4_5; //SYTH ONLY
defparam hmc_inst.priority_5_0 = ENUM_PRIORITY_5_0; //SYTH ONLY
defparam hmc_inst.priority_5_1 = ENUM_PRIORITY_5_1; //SYTH ONLY
defparam hmc_inst.priority_5_2 = ENUM_PRIORITY_5_2; //SYTH ONLY
defparam hmc_inst.priority_5_3 = ENUM_PRIORITY_5_3; //SYTH ONLY
defparam hmc_inst.priority_5_4 = ENUM_PRIORITY_5_4; //SYTH ONLY
defparam hmc_inst.priority_5_5 = ENUM_PRIORITY_5_5; //SYTH ONLY
defparam hmc_inst.priority_6_0 = ENUM_PRIORITY_6_0; //SYTH ONLY
defparam hmc_inst.priority_6_1 = ENUM_PRIORITY_6_1; //SYTH ONLY
defparam hmc_inst.priority_6_2 = ENUM_PRIORITY_6_2; //SYTH ONLY
defparam hmc_inst.priority_6_3 = ENUM_PRIORITY_6_3; //SYTH ONLY
defparam hmc_inst.priority_6_4 = ENUM_PRIORITY_6_4; //SYTH ONLY
defparam hmc_inst.priority_6_5 = ENUM_PRIORITY_6_5; //SYTH ONLY
defparam hmc_inst.priority_7_0 = ENUM_PRIORITY_7_0; //SYTH ONLY
defparam hmc_inst.priority_7_1 = ENUM_PRIORITY_7_1; //SYTH ONLY
defparam hmc_inst.priority_7_2 = ENUM_PRIORITY_7_2; //SYTH ONLY
defparam hmc_inst.priority_7_3 = ENUM_PRIORITY_7_3; //SYTH ONLY
defparam hmc_inst.priority_7_4 = ENUM_PRIORITY_7_4; //SYTH ONLY
defparam hmc_inst.priority_7_5 = ENUM_PRIORITY_7_5; //SYTH ONLY
defparam hmc_inst.rcfg_static_weight_0 = ENUM_RCFG_STATIC_WEIGHT_0; //SYTH & SIM
defparam hmc_inst.rcfg_static_weight_1 = ENUM_RCFG_STATIC_WEIGHT_1; //SYTH & SIM
defparam hmc_inst.rcfg_static_weight_2 = ENUM_RCFG_STATIC_WEIGHT_2; //SYTH & SIM
defparam hmc_inst.rcfg_static_weight_3 = ENUM_RCFG_STATIC_WEIGHT_3; //SYTH & SIM
defparam hmc_inst.rcfg_static_weight_4 = ENUM_RCFG_STATIC_WEIGHT_4; //SYTH & SIM
defparam hmc_inst.rcfg_static_weight_5 = ENUM_RCFG_STATIC_WEIGHT_5; //SYTH & SIM
defparam hmc_inst.rcfg_sum_wt_priority_0 = INTG_RCFG_SUM_WT_PRIORITY_0; //SYTH & SIM
defparam hmc_inst.rcfg_sum_wt_priority_1 = INTG_RCFG_SUM_WT_PRIORITY_1; //SYTH & SIM
defparam hmc_inst.rcfg_sum_wt_priority_2 = INTG_RCFG_SUM_WT_PRIORITY_2; //SYTH & SIM
defparam hmc_inst.rcfg_sum_wt_priority_3 = INTG_RCFG_SUM_WT_PRIORITY_3; //SYTH & SIM
defparam hmc_inst.rcfg_sum_wt_priority_4 = INTG_RCFG_SUM_WT_PRIORITY_4; //SYTH & SIM
defparam hmc_inst.rcfg_sum_wt_priority_5 = INTG_RCFG_SUM_WT_PRIORITY_5; //SYTH & SIM
defparam hmc_inst.rcfg_sum_wt_priority_6 = INTG_RCFG_SUM_WT_PRIORITY_6; //SYTH & SIM
defparam hmc_inst.rcfg_sum_wt_priority_7 = INTG_RCFG_SUM_WT_PRIORITY_7; //SYTH & SIM
defparam hmc_inst.rcfg_user_priority_0 = ENUM_RCFG_USER_PRIORITY_0; //SYTH & SIM
defparam hmc_inst.rcfg_user_priority_1 = ENUM_RCFG_USER_PRIORITY_1; //SYTH & SIM
defparam hmc_inst.rcfg_user_priority_2 = ENUM_RCFG_USER_PRIORITY_2; //SYTH & SIM
defparam hmc_inst.rcfg_user_priority_3 = ENUM_RCFG_USER_PRIORITY_3; //SYTH & SIM
defparam hmc_inst.rcfg_user_priority_4 = ENUM_RCFG_USER_PRIORITY_4; //SYTH & SIM
defparam hmc_inst.rcfg_user_priority_5 = ENUM_RCFG_USER_PRIORITY_5; //SYTH & SIM
defparam hmc_inst.rd_dwidth_0 = ENUM_RD_DWIDTH_0; //SYTH ONLY
defparam hmc_inst.rd_dwidth_1 = ENUM_RD_DWIDTH_1; //SYTH ONLY
defparam hmc_inst.rd_dwidth_2 = ENUM_RD_DWIDTH_2; //SYTH ONLY
defparam hmc_inst.rd_dwidth_3 = ENUM_RD_DWIDTH_3; //SYTH ONLY
defparam hmc_inst.rd_dwidth_4 = ENUM_RD_DWIDTH_4; //SYTH ONLY
defparam hmc_inst.rd_dwidth_5 = ENUM_RD_DWIDTH_5; //SYTH ONLY
defparam hmc_inst.rd_fifo_in_use_0 = ENUM_RD_FIFO_IN_USE_0; //SYTH ONLY
defparam hmc_inst.rd_fifo_in_use_1 = ENUM_RD_FIFO_IN_USE_1; //SYTH ONLY
defparam hmc_inst.rd_fifo_in_use_2 = ENUM_RD_FIFO_IN_USE_2; //SYTH ONLY
defparam hmc_inst.rd_fifo_in_use_3 = ENUM_RD_FIFO_IN_USE_3; //SYTH ONLY
defparam hmc_inst.rd_port_info_0 = ENUM_RD_PORT_INFO_0; //SYTH ONLY
defparam hmc_inst.rd_port_info_1 = ENUM_RD_PORT_INFO_1; //SYTH ONLY
defparam hmc_inst.rd_port_info_2 = ENUM_RD_PORT_INFO_2; //SYTH ONLY
defparam hmc_inst.rd_port_info_3 = ENUM_RD_PORT_INFO_3; //SYTH ONLY
defparam hmc_inst.rd_port_info_4 = ENUM_RD_PORT_INFO_4; //SYTH ONLY
defparam hmc_inst.rd_port_info_5 = ENUM_RD_PORT_INFO_5; //SYTH ONLY
defparam hmc_inst.read_odt_chip = ENUM_READ_ODT_CHIP; //SYTH & SIM
defparam hmc_inst.reorder_data = ENUM_REORDER_DATA; //SYTH & SIM
defparam hmc_inst.rfifo0_cport_map = ENUM_RFIFO0_CPORT_MAP; //SYTH & SIM
defparam hmc_inst.rfifo1_cport_map = ENUM_RFIFO1_CPORT_MAP; //SYTH & SIM
defparam hmc_inst.rfifo2_cport_map = ENUM_RFIFO2_CPORT_MAP; //SYTH & SIM
defparam hmc_inst.rfifo3_cport_map = ENUM_RFIFO3_CPORT_MAP; //SYTH & SIM
defparam hmc_inst.single_ready_0 = ENUM_SINGLE_READY_0; //SYTH & SIM
defparam hmc_inst.single_ready_1 = ENUM_SINGLE_READY_1; //SYTH & SIM
defparam hmc_inst.single_ready_2 = ENUM_SINGLE_READY_2; //SYTH & SIM
defparam hmc_inst.single_ready_3 = ENUM_SINGLE_READY_3; //SYTH & SIM
defparam hmc_inst.static_weight_0 = ENUM_STATIC_WEIGHT_0; //SYTH ONLY
defparam hmc_inst.static_weight_1 = ENUM_STATIC_WEIGHT_1; //SYTH ONLY
defparam hmc_inst.static_weight_2 = ENUM_STATIC_WEIGHT_2; //SYTH ONLY
defparam hmc_inst.static_weight_3 = ENUM_STATIC_WEIGHT_3; //SYTH ONLY
defparam hmc_inst.static_weight_4 = ENUM_STATIC_WEIGHT_4; //SYTH ONLY
defparam hmc_inst.static_weight_5 = ENUM_STATIC_WEIGHT_5; //SYTH ONLY
defparam hmc_inst.sum_wt_priority_0 = INTG_SUM_WT_PRIORITY_0; //SYTH ONLY
defparam hmc_inst.sum_wt_priority_1 = INTG_SUM_WT_PRIORITY_1; //SYTH ONLY
defparam hmc_inst.sum_wt_priority_2 = INTG_SUM_WT_PRIORITY_2; //SYTH ONLY
defparam hmc_inst.sum_wt_priority_3 = INTG_SUM_WT_PRIORITY_3; //SYTH ONLY
defparam hmc_inst.sum_wt_priority_4 = INTG_SUM_WT_PRIORITY_4; //SYTH ONLY
defparam hmc_inst.sum_wt_priority_5 = INTG_SUM_WT_PRIORITY_5; //SYTH ONLY
defparam hmc_inst.sum_wt_priority_6 = INTG_SUM_WT_PRIORITY_6; //SYTH ONLY
defparam hmc_inst.sum_wt_priority_7 = INTG_SUM_WT_PRIORITY_7; //SYTH ONLY
defparam hmc_inst.sync_mode_0 = ENUM_SYNC_MODE_0; //SYTH & SIM
defparam hmc_inst.sync_mode_1 = ENUM_SYNC_MODE_1; //SYTH & SIM
defparam hmc_inst.sync_mode_2 = ENUM_SYNC_MODE_2; //SYTH & SIM
defparam hmc_inst.sync_mode_3 = ENUM_SYNC_MODE_3; //SYTH & SIM
defparam hmc_inst.sync_mode_4 = ENUM_SYNC_MODE_4; //SYTH & SIM
defparam hmc_inst.sync_mode_5 = ENUM_SYNC_MODE_5; //SYTH & SIM
defparam hmc_inst.test_mode = ENUM_TEST_MODE; //SYTH & SIM
defparam hmc_inst.thld_jar1_0 = ENUM_THLD_JAR1_0; //SYTH & SIM
defparam hmc_inst.thld_jar1_1 = ENUM_THLD_JAR1_1; //SYTH & SIM
defparam hmc_inst.thld_jar1_2 = ENUM_THLD_JAR1_2; //SYTH & SIM
defparam hmc_inst.thld_jar1_3 = ENUM_THLD_JAR1_3; //SYTH & SIM
defparam hmc_inst.thld_jar1_4 = ENUM_THLD_JAR1_4; //SYTH & SIM
defparam hmc_inst.thld_jar1_5 = ENUM_THLD_JAR1_5; //SYTH & SIM
defparam hmc_inst.thld_jar2_0 = ENUM_THLD_JAR2_0; //SYTH & SIM
defparam hmc_inst.thld_jar2_1 = ENUM_THLD_JAR2_1; //SYTH & SIM
defparam hmc_inst.thld_jar2_2 = ENUM_THLD_JAR2_2; //SYTH & SIM
defparam hmc_inst.thld_jar2_3 = ENUM_THLD_JAR2_3; //SYTH & SIM
defparam hmc_inst.thld_jar2_4 = ENUM_THLD_JAR2_4; //SYTH & SIM
defparam hmc_inst.thld_jar2_5 = ENUM_THLD_JAR2_5; //SYTH & SIM
defparam hmc_inst.use_almost_empty_0 = ENUM_USE_ALMOST_EMPTY_0; //SYTH & SIM
defparam hmc_inst.use_almost_empty_1 = ENUM_USE_ALMOST_EMPTY_1; //SYTH & SIM
defparam hmc_inst.use_almost_empty_2 = ENUM_USE_ALMOST_EMPTY_2; //SYTH & SIM
defparam hmc_inst.use_almost_empty_3 = ENUM_USE_ALMOST_EMPTY_3; //SYTH & SIM
defparam hmc_inst.user_ecc_en = ENUM_USER_ECC_EN; //SYTH & SIM
defparam hmc_inst.user_priority_0 = ENUM_USER_PRIORITY_0; //SYTH ONLY
defparam hmc_inst.user_priority_1 = ENUM_USER_PRIORITY_1; //SYTH ONLY
defparam hmc_inst.user_priority_2 = ENUM_USER_PRIORITY_2; //SYTH ONLY
defparam hmc_inst.user_priority_3 = ENUM_USER_PRIORITY_3; //SYTH ONLY
defparam hmc_inst.user_priority_4 = ENUM_USER_PRIORITY_4; //SYTH ONLY
defparam hmc_inst.user_priority_5 = ENUM_USER_PRIORITY_5; //SYTH ONLY
defparam hmc_inst.wfifo0_cport_map = ENUM_WFIFO0_CPORT_MAP; //SYTH & SIM
defparam hmc_inst.wfifo0_rdy_almost_full = ENUM_WFIFO0_RDY_ALMOST_FULL; //SYTH & SIM
defparam hmc_inst.wfifo1_cport_map = ENUM_WFIFO1_CPORT_MAP; //SYTH & SIM
defparam hmc_inst.wfifo1_rdy_almost_full = ENUM_WFIFO1_RDY_ALMOST_FULL; //SYTH & SIM
defparam hmc_inst.wfifo2_cport_map = ENUM_WFIFO2_CPORT_MAP; //SYTH & SIM
defparam hmc_inst.wfifo2_rdy_almost_full = ENUM_WFIFO2_RDY_ALMOST_FULL; //SYTH & SIM
defparam hmc_inst.wfifo3_cport_map = ENUM_WFIFO3_CPORT_MAP; //SYTH & SIM
defparam hmc_inst.wfifo3_rdy_almost_full = ENUM_WFIFO3_RDY_ALMOST_FULL; //SYTH & SIM
defparam hmc_inst.wr_dwidth_0 = ENUM_WR_DWIDTH_0; //SYTH ONLY
defparam hmc_inst.wr_dwidth_1 = ENUM_WR_DWIDTH_1; //SYTH ONLY
defparam hmc_inst.wr_dwidth_2 = ENUM_WR_DWIDTH_2; //SYTH ONLY
defparam hmc_inst.wr_dwidth_3 = ENUM_WR_DWIDTH_3; //SYTH ONLY
defparam hmc_inst.wr_dwidth_4 = ENUM_WR_DWIDTH_4; //SYTH ONLY
defparam hmc_inst.wr_dwidth_5 = ENUM_WR_DWIDTH_5; //SYTH ONLY
defparam hmc_inst.wr_fifo_in_use_0 = ENUM_WR_FIFO_IN_USE_0; //SYTH ONLY
defparam hmc_inst.wr_fifo_in_use_1 = ENUM_WR_FIFO_IN_USE_1; //SYTH ONLY
defparam hmc_inst.wr_fifo_in_use_2 = ENUM_WR_FIFO_IN_USE_2; //SYTH ONLY
defparam hmc_inst.wr_fifo_in_use_3 = ENUM_WR_FIFO_IN_USE_3; //SYTH ONLY
defparam hmc_inst.wr_port_info_0 = ENUM_WR_PORT_INFO_0; //SYTH ONLY
defparam hmc_inst.wr_port_info_1 = ENUM_WR_PORT_INFO_1; //SYTH ONLY
defparam hmc_inst.wr_port_info_2 = ENUM_WR_PORT_INFO_2; //SYTH ONLY
defparam hmc_inst.wr_port_info_3 = ENUM_WR_PORT_INFO_3; //SYTH ONLY
defparam hmc_inst.wr_port_info_4 = ENUM_WR_PORT_INFO_4; //SYTH ONLY
defparam hmc_inst.wr_port_info_5 = ENUM_WR_PORT_INFO_5; //SYTH ONLY
defparam hmc_inst.write_odt_chip = ENUM_WRITE_ODT_CHIP; //SYTH & SIM
// END ATOM INSTANTIATION
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// START LOCAL FUNCTIONS
// END LOCAL FUNCTIONS
////////////////////////////////////////////////////////////////////////////////
endmodule