OpenCores
URL https://opencores.org/ocsvn/spacewiresystemc/spacewiresystemc/trunk

Subversion Repositories spacewiresystemc

[/] [spacewiresystemc/] [trunk/] [altera_work/] [spw_fifo_ulight/] [ulight_fifo/] [synthesis/] [submodules/] [hps_sdram_p0_acv_hard_io_pads.v] - Diff between revs 32 and 40

Only display areas with differences | Details | Blame | View Log

Rev 32 Rev 40
// (C) 2001-2017 Intel Corporation. All rights reserved.
// (C) 2001-2017 Intel Corporation. All rights reserved.
// Your use of Intel Corporation's design tools, logic functions and other 
// Your use of Intel Corporation's design tools, logic functions and other 
// software and tools, and its AMPP partner logic functions, and any output 
// software and tools, and its AMPP partner logic functions, and any output 
// files any of the foregoing (including device programming or simulation 
// files from any of the foregoing (including device programming or simulation 
// files), and any associated documentation or information are expressly subject 
// files), and any associated documentation or information are expressly subject 
// to the terms and conditions of the Intel Program License Subscription 
// to the terms and conditions of the Intel Program License Subscription 
// Agreement, Intel MegaCore Function License Agreement, or other applicable 
// Agreement, Intel FPGA IP License Agreement, or other applicable 
// license agreement, including, without limitation, that your use is for the 
// license agreement, including, without limitation, that your use is for the 
// sole purpose of programming logic devices manufactured by Intel and sold by 
// sole purpose of programming logic devices manufactured by Intel and sold by 
// Intel or its authorized distributors.  Please refer to the applicable 
// Intel or its authorized distributors.  Please refer to the applicable 
// agreement for further details.
// agreement for further details.
 
 
 
 
 
 
`timescale 1 ps / 1 ps
`timescale 1 ps / 1 ps
 
 
module hps_sdram_p0_acv_hard_io_pads(
module hps_sdram_p0_acv_hard_io_pads(
        reset_n_addr_cmd_clk,
        reset_n_addr_cmd_clk,
        reset_n_afi_clk,
        reset_n_afi_clk,
        oct_ctl_rs_value,
        oct_ctl_rs_value,
        oct_ctl_rt_value,
        oct_ctl_rt_value,
        phy_ddio_address,
        phy_ddio_address,
        phy_ddio_bank,
        phy_ddio_bank,
        phy_ddio_cs_n,
        phy_ddio_cs_n,
        phy_ddio_cke,
        phy_ddio_cke,
        phy_ddio_odt,
        phy_ddio_odt,
        phy_ddio_we_n,
        phy_ddio_we_n,
        phy_ddio_ras_n,
        phy_ddio_ras_n,
        phy_ddio_cas_n,
        phy_ddio_cas_n,
        phy_ddio_ck,
        phy_ddio_ck,
        phy_ddio_reset_n,
        phy_ddio_reset_n,
        phy_mem_address,
        phy_mem_address,
        phy_mem_bank,
        phy_mem_bank,
        phy_mem_cs_n,
        phy_mem_cs_n,
        phy_mem_cke,
        phy_mem_cke,
        phy_mem_odt,
        phy_mem_odt,
        phy_mem_we_n,
        phy_mem_we_n,
        phy_mem_ras_n,
        phy_mem_ras_n,
        phy_mem_cas_n,
        phy_mem_cas_n,
        phy_mem_reset_n,
        phy_mem_reset_n,
        pll_afi_clk,
        pll_afi_clk,
        pll_afi_phy_clk,
        pll_afi_phy_clk,
        pll_avl_phy_clk,
        pll_avl_phy_clk,
        pll_avl_clk,
        pll_avl_clk,
        avl_clk,
        avl_clk,
        pll_mem_clk,
        pll_mem_clk,
        pll_mem_phy_clk,
        pll_mem_phy_clk,
        pll_write_clk,
        pll_write_clk,
        pll_dqs_ena_clk,
        pll_dqs_ena_clk,
        pll_addr_cmd_clk,
        pll_addr_cmd_clk,
        phy_mem_dq,
        phy_mem_dq,
        phy_mem_dm,
        phy_mem_dm,
        phy_mem_ck,
        phy_mem_ck,
        phy_mem_ck_n,
        phy_mem_ck_n,
        mem_dqs,
        mem_dqs,
        mem_dqs_n,
        mem_dqs_n,
        dll_phy_delayctrl,
        dll_phy_delayctrl,
        scc_clk,
        scc_clk,
        scc_data,
        scc_data,
        scc_dqs_ena,
        scc_dqs_ena,
        scc_dqs_io_ena,
        scc_dqs_io_ena,
        scc_dq_ena,
        scc_dq_ena,
        scc_dm_ena,
        scc_dm_ena,
        scc_upd,
        scc_upd,
        seq_read_latency_counter,
        seq_read_latency_counter,
        seq_read_increment_vfifo_fr,
        seq_read_increment_vfifo_fr,
        seq_read_increment_vfifo_hr,
        seq_read_increment_vfifo_hr,
        phy_ddio_dmdout,
        phy_ddio_dmdout,
        phy_ddio_dqdout,
        phy_ddio_dqdout,
        phy_ddio_dqs_oe,
        phy_ddio_dqs_oe,
        phy_ddio_dqsdout,
        phy_ddio_dqsdout,
        phy_ddio_dqsb_oe,
        phy_ddio_dqsb_oe,
        phy_ddio_dqslogic_oct,
        phy_ddio_dqslogic_oct,
        phy_ddio_dqslogic_fiforeset,
        phy_ddio_dqslogic_fiforeset,
        phy_ddio_dqslogic_aclr_pstamble,
        phy_ddio_dqslogic_aclr_pstamble,
        phy_ddio_dqslogic_aclr_fifoctrl,
        phy_ddio_dqslogic_aclr_fifoctrl,
        phy_ddio_dqslogic_incwrptr,
        phy_ddio_dqslogic_incwrptr,
        phy_ddio_dqslogic_readlatency,
        phy_ddio_dqslogic_readlatency,
        ddio_phy_dqslogic_rdatavalid,
        ddio_phy_dqslogic_rdatavalid,
        ddio_phy_dqdin,
        ddio_phy_dqdin,
        phy_ddio_dqslogic_incrdataen,
        phy_ddio_dqslogic_incrdataen,
        phy_ddio_dqslogic_dqsena,
        phy_ddio_dqslogic_dqsena,
        phy_ddio_dqoe,
        phy_ddio_dqoe,
        capture_strobe_tracking
        capture_strobe_tracking
);
);
 
 
 
 
parameter DEVICE_FAMILY = "";
parameter DEVICE_FAMILY = "";
parameter FAST_SIM_MODEL            = 0;
parameter FAST_SIM_MODEL            = 0;
parameter OCT_SERIES_TERM_CONTROL_WIDTH   = "";
parameter OCT_SERIES_TERM_CONTROL_WIDTH   = "";
parameter OCT_PARALLEL_TERM_CONTROL_WIDTH = "";
parameter OCT_PARALLEL_TERM_CONTROL_WIDTH = "";
parameter MEM_ADDRESS_WIDTH     = "";
parameter MEM_ADDRESS_WIDTH     = "";
parameter MEM_BANK_WIDTH        = "";
parameter MEM_BANK_WIDTH        = "";
parameter MEM_CHIP_SELECT_WIDTH = "";
parameter MEM_CHIP_SELECT_WIDTH = "";
parameter MEM_CLK_EN_WIDTH      = "";
parameter MEM_CLK_EN_WIDTH      = "";
parameter MEM_CK_WIDTH          = "";
parameter MEM_CK_WIDTH          = "";
parameter MEM_ODT_WIDTH         = "";
parameter MEM_ODT_WIDTH         = "";
parameter MEM_DQS_WIDTH         = "";
parameter MEM_DQS_WIDTH         = "";
parameter MEM_DM_WIDTH          = "";
parameter MEM_DM_WIDTH          = "";
parameter MEM_CONTROL_WIDTH     = "";
parameter MEM_CONTROL_WIDTH     = "";
parameter MEM_DQ_WIDTH          = "";
parameter MEM_DQ_WIDTH          = "";
parameter MEM_READ_DQS_WIDTH    = "";
parameter MEM_READ_DQS_WIDTH    = "";
parameter MEM_WRITE_DQS_WIDTH   = "";
parameter MEM_WRITE_DQS_WIDTH   = "";
parameter DLL_DELAY_CTRL_WIDTH  = "";
parameter DLL_DELAY_CTRL_WIDTH  = "";
parameter ADC_PHASE_SETTING     = "";
parameter ADC_PHASE_SETTING     = "";
parameter ADC_INVERT_PHASE      = "";
parameter ADC_INVERT_PHASE      = "";
parameter IS_HHP_HPS            = "";
parameter IS_HHP_HPS            = "";
 
 
localparam AFI_ADDRESS_WIDTH         = 64;
localparam AFI_ADDRESS_WIDTH         = 64;
localparam AFI_BANK_WIDTH            = 12;
localparam AFI_BANK_WIDTH            = 12;
localparam AFI_CHIP_SELECT_WIDTH     = 8;
localparam AFI_CHIP_SELECT_WIDTH     = 8;
localparam AFI_CLK_EN_WIDTH                     = 8;
localparam AFI_CLK_EN_WIDTH                     = 8;
localparam AFI_ODT_WIDTH                        = 8;
localparam AFI_ODT_WIDTH                        = 8;
localparam AFI_DATA_MASK_WIDTH       = 20;
localparam AFI_DATA_MASK_WIDTH       = 20;
localparam AFI_CONTROL_WIDTH         = 4;
localparam AFI_CONTROL_WIDTH         = 4;
 
 
input   reset_n_afi_clk;
input   reset_n_afi_clk;
input   reset_n_addr_cmd_clk;
input   reset_n_addr_cmd_clk;
 
 
input   [OCT_SERIES_TERM_CONTROL_WIDTH-1:0] oct_ctl_rs_value;
input   [OCT_SERIES_TERM_CONTROL_WIDTH-1:0] oct_ctl_rs_value;
input   [OCT_PARALLEL_TERM_CONTROL_WIDTH-1:0] oct_ctl_rt_value;
input   [OCT_PARALLEL_TERM_CONTROL_WIDTH-1:0] oct_ctl_rt_value;
 
 
input   [AFI_ADDRESS_WIDTH-1:0]  phy_ddio_address;
input   [AFI_ADDRESS_WIDTH-1:0]  phy_ddio_address;
input   [AFI_BANK_WIDTH-1:0]    phy_ddio_bank;
input   [AFI_BANK_WIDTH-1:0]    phy_ddio_bank;
input   [AFI_CHIP_SELECT_WIDTH-1:0] phy_ddio_cs_n;
input   [AFI_CHIP_SELECT_WIDTH-1:0] phy_ddio_cs_n;
input   [AFI_CLK_EN_WIDTH-1:0] phy_ddio_cke;
input   [AFI_CLK_EN_WIDTH-1:0] phy_ddio_cke;
input   [AFI_ODT_WIDTH-1:0] phy_ddio_odt;
input   [AFI_ODT_WIDTH-1:0] phy_ddio_odt;
input   [AFI_CONTROL_WIDTH-1:0] phy_ddio_ras_n;
input   [AFI_CONTROL_WIDTH-1:0] phy_ddio_ras_n;
input   [AFI_CONTROL_WIDTH-1:0] phy_ddio_cas_n;
input   [AFI_CONTROL_WIDTH-1:0] phy_ddio_cas_n;
input   [AFI_CONTROL_WIDTH-1:0] phy_ddio_ck;
input   [AFI_CONTROL_WIDTH-1:0] phy_ddio_ck;
input   [AFI_CONTROL_WIDTH-1:0] phy_ddio_we_n;
input   [AFI_CONTROL_WIDTH-1:0] phy_ddio_we_n;
input   [AFI_CONTROL_WIDTH-1:0] phy_ddio_reset_n;
input   [AFI_CONTROL_WIDTH-1:0] phy_ddio_reset_n;
 
 
output  [MEM_ADDRESS_WIDTH-1:0]  phy_mem_address;
output  [MEM_ADDRESS_WIDTH-1:0]  phy_mem_address;
output  [MEM_BANK_WIDTH-1:0]     phy_mem_bank;
output  [MEM_BANK_WIDTH-1:0]     phy_mem_bank;
output  [MEM_CHIP_SELECT_WIDTH-1:0]      phy_mem_cs_n;
output  [MEM_CHIP_SELECT_WIDTH-1:0]      phy_mem_cs_n;
output  [MEM_CLK_EN_WIDTH-1:0]   phy_mem_cke;
output  [MEM_CLK_EN_WIDTH-1:0]   phy_mem_cke;
output  [MEM_ODT_WIDTH-1:0]      phy_mem_odt;
output  [MEM_ODT_WIDTH-1:0]      phy_mem_odt;
output  [MEM_CONTROL_WIDTH-1:0]  phy_mem_we_n;
output  [MEM_CONTROL_WIDTH-1:0]  phy_mem_we_n;
output  [MEM_CONTROL_WIDTH-1:0] phy_mem_ras_n;
output  [MEM_CONTROL_WIDTH-1:0] phy_mem_ras_n;
output  [MEM_CONTROL_WIDTH-1:0] phy_mem_cas_n;
output  [MEM_CONTROL_WIDTH-1:0] phy_mem_cas_n;
output  phy_mem_reset_n;
output  phy_mem_reset_n;
 
 
input   pll_afi_clk;
input   pll_afi_clk;
input pll_afi_phy_clk;
input pll_afi_phy_clk;
input pll_avl_phy_clk;
input pll_avl_phy_clk;
input pll_avl_clk;
input pll_avl_clk;
input avl_clk;
input avl_clk;
input   pll_mem_clk;
input   pll_mem_clk;
input pll_mem_phy_clk;
input pll_mem_phy_clk;
input   pll_write_clk;
input   pll_write_clk;
input   pll_dqs_ena_clk;
input   pll_dqs_ena_clk;
input pll_addr_cmd_clk;
input pll_addr_cmd_clk;
 
 
 
 
inout   [MEM_DQ_WIDTH-1:0]       phy_mem_dq;
inout   [MEM_DQ_WIDTH-1:0]       phy_mem_dq;
output  [MEM_DM_WIDTH-1:0]       phy_mem_dm;
output  [MEM_DM_WIDTH-1:0]       phy_mem_dm;
output  [MEM_CK_WIDTH-1:0]       phy_mem_ck;
output  [MEM_CK_WIDTH-1:0]       phy_mem_ck;
output  [MEM_CK_WIDTH-1:0]       phy_mem_ck_n;
output  [MEM_CK_WIDTH-1:0]       phy_mem_ck_n;
inout   [MEM_DQS_WIDTH-1:0]      mem_dqs;
inout   [MEM_DQS_WIDTH-1:0]      mem_dqs;
inout   [MEM_DQS_WIDTH-1:0]      mem_dqs_n;
inout   [MEM_DQS_WIDTH-1:0]      mem_dqs_n;
 
 
input   [DLL_DELAY_CTRL_WIDTH-1:0]  dll_phy_delayctrl;
input   [DLL_DELAY_CTRL_WIDTH-1:0]  dll_phy_delayctrl;
 
 
input   scc_clk;
input   scc_clk;
input   scc_data;
input   scc_data;
input   [MEM_READ_DQS_WIDTH - 1:0] scc_dqs_ena;
input   [MEM_READ_DQS_WIDTH - 1:0] scc_dqs_ena;
input   [MEM_READ_DQS_WIDTH - 1:0] scc_dqs_io_ena;
input   [MEM_READ_DQS_WIDTH - 1:0] scc_dqs_io_ena;
input   [MEM_DQ_WIDTH - 1:0] scc_dq_ena;
input   [MEM_DQ_WIDTH - 1:0] scc_dq_ena;
input   [MEM_DM_WIDTH - 1:0] scc_dm_ena;
input   [MEM_DM_WIDTH - 1:0] scc_dm_ena;
 
 
input [4:0] seq_read_latency_counter;
input [4:0] seq_read_latency_counter;
input [MEM_READ_DQS_WIDTH-1:0] seq_read_increment_vfifo_fr;
input [MEM_READ_DQS_WIDTH-1:0] seq_read_increment_vfifo_fr;
input [MEM_READ_DQS_WIDTH-1:0] seq_read_increment_vfifo_hr;
input [MEM_READ_DQS_WIDTH-1:0] seq_read_increment_vfifo_hr;
input   scc_upd;
input   scc_upd;
output  [MEM_READ_DQS_WIDTH - 1:0] capture_strobe_tracking;
output  [MEM_READ_DQS_WIDTH - 1:0] capture_strobe_tracking;
 
 
 
 
input [24 : 0] phy_ddio_dmdout;
input [24 : 0] phy_ddio_dmdout;
input [179 : 0] phy_ddio_dqdout;
input [179 : 0] phy_ddio_dqdout;
input [9 : 0] phy_ddio_dqs_oe;
input [9 : 0] phy_ddio_dqs_oe;
input [19 : 0] phy_ddio_dqsdout;
input [19 : 0] phy_ddio_dqsdout;
input [9 : 0] phy_ddio_dqsb_oe;
input [9 : 0] phy_ddio_dqsb_oe;
input [9 : 0] phy_ddio_dqslogic_oct;
input [9 : 0] phy_ddio_dqslogic_oct;
input [4 : 0] phy_ddio_dqslogic_fiforeset;
input [4 : 0] phy_ddio_dqslogic_fiforeset;
input [4 : 0] phy_ddio_dqslogic_aclr_pstamble;
input [4 : 0] phy_ddio_dqslogic_aclr_pstamble;
input [4 : 0] phy_ddio_dqslogic_aclr_fifoctrl;
input [4 : 0] phy_ddio_dqslogic_aclr_fifoctrl;
input [9 : 0] phy_ddio_dqslogic_incwrptr;
input [9 : 0] phy_ddio_dqslogic_incwrptr;
input [24 : 0] phy_ddio_dqslogic_readlatency;
input [24 : 0] phy_ddio_dqslogic_readlatency;
output [4 : 0] ddio_phy_dqslogic_rdatavalid;
output [4 : 0] ddio_phy_dqslogic_rdatavalid;
output [179 : 0] ddio_phy_dqdin;
output [179 : 0] ddio_phy_dqdin;
input [9 : 0] phy_ddio_dqslogic_incrdataen;
input [9 : 0] phy_ddio_dqslogic_incrdataen;
input [9 : 0] phy_ddio_dqslogic_dqsena;
input [9 : 0] phy_ddio_dqslogic_dqsena;
input [89 : 0] phy_ddio_dqoe;
input [89 : 0] phy_ddio_dqoe;
 
 
wire    [MEM_DQ_WIDTH-1:0] mem_phy_dq;
wire    [MEM_DQ_WIDTH-1:0] mem_phy_dq;
wire    [DLL_DELAY_CTRL_WIDTH-1:0] read_bidir_dll_phy_delayctrl;
wire    [DLL_DELAY_CTRL_WIDTH-1:0] read_bidir_dll_phy_delayctrl;
wire    [MEM_READ_DQS_WIDTH-1:0] bidir_read_dqs_bus_out;
wire    [MEM_READ_DQS_WIDTH-1:0] bidir_read_dqs_bus_out;
wire    [MEM_DQ_WIDTH-1:0] bidir_read_dq_input_data_out_high;
wire    [MEM_DQ_WIDTH-1:0] bidir_read_dq_input_data_out_high;
wire    [MEM_DQ_WIDTH-1:0] bidir_read_dq_input_data_out_low;
wire    [MEM_DQ_WIDTH-1:0] bidir_read_dq_input_data_out_low;
wire    dqs_busout;
wire    dqs_busout;
 
 
wire    hr_clk = pll_avl_clk;
wire    hr_clk = pll_avl_clk;
wire    core_clk = pll_afi_clk;
wire    core_clk = pll_afi_clk;
wire    reset_n_core_clk = reset_n_afi_clk;
wire    reset_n_core_clk = reset_n_afi_clk;
 
 
        hps_sdram_p0_acv_hard_addr_cmd_pads uaddr_cmd_pads(
        hps_sdram_p0_acv_hard_addr_cmd_pads uaddr_cmd_pads(
        /*
        /*
        .config_data_in(config_data_in),
        .config_data_in(config_data_in),
        .config_clock_in(config_clock_in),
        .config_clock_in(config_clock_in),
        .config_io_ena(config_io_ena),
        .config_io_ena(config_io_ena),
        .config_update(config_update),
        .config_update(config_update),
                */
                */
                .reset_n                                (reset_n_addr_cmd_clk),
                .reset_n                                (reset_n_addr_cmd_clk),
                .reset_n_afi_clk                (reset_n_afi_clk),
                .reset_n_afi_clk                (reset_n_afi_clk),
                .pll_afi_clk            (pll_afi_phy_clk),
                .pll_afi_clk            (pll_afi_phy_clk),
                .pll_mem_clk            (pll_mem_phy_clk),
                .pll_mem_clk            (pll_mem_phy_clk),
                .pll_hr_clk                             (hr_clk),
                .pll_hr_clk                             (hr_clk),
                .pll_avl_phy_clk                (pll_avl_phy_clk),
                .pll_avl_phy_clk                (pll_avl_phy_clk),
                .pll_write_clk                  (pll_write_clk),
                .pll_write_clk                  (pll_write_clk),
                .dll_delayctrl_in               (dll_phy_delayctrl),
                .dll_delayctrl_in               (dll_phy_delayctrl),
                .phy_ddio_address               (phy_ddio_address),
                .phy_ddio_address               (phy_ddio_address),
                .phy_ddio_bank              (phy_ddio_bank),
                .phy_ddio_bank              (phy_ddio_bank),
                .phy_ddio_cs_n              (phy_ddio_cs_n),
                .phy_ddio_cs_n              (phy_ddio_cs_n),
                .phy_ddio_cke                   (phy_ddio_cke),
                .phy_ddio_cke                   (phy_ddio_cke),
                .phy_ddio_odt                   (phy_ddio_odt),
                .phy_ddio_odt                   (phy_ddio_odt),
                .phy_ddio_we_n              (phy_ddio_we_n),
                .phy_ddio_we_n              (phy_ddio_we_n),
                .phy_ddio_ras_n             (phy_ddio_ras_n),
                .phy_ddio_ras_n             (phy_ddio_ras_n),
                .phy_ddio_cas_n             (phy_ddio_cas_n),
                .phy_ddio_cas_n             (phy_ddio_cas_n),
                .phy_ddio_ck                (phy_ddio_ck),
                .phy_ddio_ck                (phy_ddio_ck),
                .phy_ddio_reset_n               (phy_ddio_reset_n),
                .phy_ddio_reset_n               (phy_ddio_reset_n),
 
 
                .phy_mem_address                (phy_mem_address),
                .phy_mem_address                (phy_mem_address),
                .phy_mem_bank                   (phy_mem_bank),
                .phy_mem_bank                   (phy_mem_bank),
                .phy_mem_cs_n                   (phy_mem_cs_n),
                .phy_mem_cs_n                   (phy_mem_cs_n),
                .phy_mem_cke                    (phy_mem_cke),
                .phy_mem_cke                    (phy_mem_cke),
                .phy_mem_odt                    (phy_mem_odt),
                .phy_mem_odt                    (phy_mem_odt),
                .phy_mem_we_n                   (phy_mem_we_n),
                .phy_mem_we_n                   (phy_mem_we_n),
                .phy_mem_ras_n                  (phy_mem_ras_n),
                .phy_mem_ras_n                  (phy_mem_ras_n),
                .phy_mem_cas_n                  (phy_mem_cas_n),
                .phy_mem_cas_n                  (phy_mem_cas_n),
                .phy_mem_reset_n                (phy_mem_reset_n),
                .phy_mem_reset_n                (phy_mem_reset_n),
                .phy_mem_ck                             (phy_mem_ck),
                .phy_mem_ck                             (phy_mem_ck),
                .phy_mem_ck_n                   (phy_mem_ck_n)
                .phy_mem_ck_n                   (phy_mem_ck_n)
        );
        );
        defparam uaddr_cmd_pads.DEVICE_FAMILY                   = DEVICE_FAMILY;
        defparam uaddr_cmd_pads.DEVICE_FAMILY                   = DEVICE_FAMILY;
        defparam uaddr_cmd_pads.MEM_ADDRESS_WIDTH               = MEM_ADDRESS_WIDTH;
        defparam uaddr_cmd_pads.MEM_ADDRESS_WIDTH               = MEM_ADDRESS_WIDTH;
        defparam uaddr_cmd_pads.MEM_BANK_WIDTH                  = MEM_BANK_WIDTH;
        defparam uaddr_cmd_pads.MEM_BANK_WIDTH                  = MEM_BANK_WIDTH;
        defparam uaddr_cmd_pads.MEM_CHIP_SELECT_WIDTH   = MEM_CHIP_SELECT_WIDTH;
        defparam uaddr_cmd_pads.MEM_CHIP_SELECT_WIDTH   = MEM_CHIP_SELECT_WIDTH;
        defparam uaddr_cmd_pads.MEM_CLK_EN_WIDTH                = MEM_CLK_EN_WIDTH;
        defparam uaddr_cmd_pads.MEM_CLK_EN_WIDTH                = MEM_CLK_EN_WIDTH;
        defparam uaddr_cmd_pads.MEM_CK_WIDTH                    = MEM_CK_WIDTH;
        defparam uaddr_cmd_pads.MEM_CK_WIDTH                    = MEM_CK_WIDTH;
        defparam uaddr_cmd_pads.MEM_ODT_WIDTH                   = MEM_ODT_WIDTH;
        defparam uaddr_cmd_pads.MEM_ODT_WIDTH                   = MEM_ODT_WIDTH;
        defparam uaddr_cmd_pads.MEM_CONTROL_WIDTH               = MEM_CONTROL_WIDTH;
        defparam uaddr_cmd_pads.MEM_CONTROL_WIDTH               = MEM_CONTROL_WIDTH;
        defparam uaddr_cmd_pads.AFI_ADDRESS_WIDTH       = MEM_ADDRESS_WIDTH * 4;
        defparam uaddr_cmd_pads.AFI_ADDRESS_WIDTH       = MEM_ADDRESS_WIDTH * 4;
        defparam uaddr_cmd_pads.AFI_BANK_WIDTH          = MEM_BANK_WIDTH * 4;
        defparam uaddr_cmd_pads.AFI_BANK_WIDTH          = MEM_BANK_WIDTH * 4;
        defparam uaddr_cmd_pads.AFI_CHIP_SELECT_WIDTH   = MEM_CHIP_SELECT_WIDTH * 4;
        defparam uaddr_cmd_pads.AFI_CHIP_SELECT_WIDTH   = MEM_CHIP_SELECT_WIDTH * 4;
        defparam uaddr_cmd_pads.AFI_CLK_EN_WIDTH        = MEM_CLK_EN_WIDTH * 4;
        defparam uaddr_cmd_pads.AFI_CLK_EN_WIDTH        = MEM_CLK_EN_WIDTH * 4;
        defparam uaddr_cmd_pads.AFI_ODT_WIDTH           = MEM_ODT_WIDTH * 4;
        defparam uaddr_cmd_pads.AFI_ODT_WIDTH           = MEM_ODT_WIDTH * 4;
        defparam uaddr_cmd_pads.AFI_CONTROL_WIDTH       = MEM_CONTROL_WIDTH * 4;
        defparam uaddr_cmd_pads.AFI_CONTROL_WIDTH       = MEM_CONTROL_WIDTH * 4;
        defparam uaddr_cmd_pads.DLL_WIDTH               = DLL_DELAY_CTRL_WIDTH;
        defparam uaddr_cmd_pads.DLL_WIDTH               = DLL_DELAY_CTRL_WIDTH;
        defparam uaddr_cmd_pads.ADC_PHASE_SETTING = ADC_PHASE_SETTING;
        defparam uaddr_cmd_pads.ADC_PHASE_SETTING = ADC_PHASE_SETTING;
        defparam uaddr_cmd_pads.ADC_INVERT_PHASE = ADC_INVERT_PHASE;
        defparam uaddr_cmd_pads.ADC_INVERT_PHASE = ADC_INVERT_PHASE;
        defparam uaddr_cmd_pads.IS_HHP_HPS       = IS_HHP_HPS;
        defparam uaddr_cmd_pads.IS_HHP_HPS       = IS_HHP_HPS;
 
 
        localparam NUM_OF_DQDQS = MEM_WRITE_DQS_WIDTH;
        localparam NUM_OF_DQDQS = MEM_WRITE_DQS_WIDTH;
        localparam DQDQS_DATA_WIDTH = MEM_DQ_WIDTH / NUM_OF_DQDQS;
        localparam DQDQS_DATA_WIDTH = MEM_DQ_WIDTH / NUM_OF_DQDQS;
 
 
        localparam NATIVE_GROUP_SIZE =
        localparam NATIVE_GROUP_SIZE =
                (DQDQS_DATA_WIDTH == 8) ? 9 : DQDQS_DATA_WIDTH;
                (DQDQS_DATA_WIDTH == 8) ? 9 : DQDQS_DATA_WIDTH;
 
 
        localparam DQDQS_DM_WIDTH = MEM_DM_WIDTH / MEM_WRITE_DQS_WIDTH;
        localparam DQDQS_DM_WIDTH = MEM_DM_WIDTH / MEM_WRITE_DQS_WIDTH;
 
 
        localparam NUM_OF_DQDQS_WITH_DM = MEM_WRITE_DQS_WIDTH;
        localparam NUM_OF_DQDQS_WITH_DM = MEM_WRITE_DQS_WIDTH;
 
 
        generate
        generate
        genvar i;
        genvar i;
        for (i=0; i<NUM_OF_DQDQS; i=i+1)
        for (i=0; i<NUM_OF_DQDQS; i=i+1)
        begin: dq_ddio
        begin: dq_ddio
                        hps_sdram_p0_altdqdqs ubidir_dq_dqs (
                        hps_sdram_p0_altdqdqs ubidir_dq_dqs (
                                .write_strobe_clock_in (pll_mem_phy_clk),
                                .write_strobe_clock_in (pll_mem_phy_clk),
                                .reset_n_core_clock_in (reset_n_core_clk),
                                .reset_n_core_clock_in (reset_n_core_clk),
                                .core_clock_in (core_clk),
                                .core_clock_in (core_clk),
                                .fr_clock_in (pll_write_clk),
                                .fr_clock_in (pll_write_clk),
                                .hr_clock_in (pll_avl_phy_clk),
                                .hr_clock_in (pll_avl_phy_clk),
                                .parallelterminationcontrol_in(oct_ctl_rt_value),
                                .parallelterminationcontrol_in(oct_ctl_rt_value),
                                .seriesterminationcontrol_in(oct_ctl_rs_value),
                                .seriesterminationcontrol_in(oct_ctl_rs_value),
                                .strobe_ena_hr_clock_in (hr_clk),
                                .strobe_ena_hr_clock_in (hr_clk),
                                .capture_strobe_tracking (capture_strobe_tracking[i]),
                                .capture_strobe_tracking (capture_strobe_tracking[i]),
                                .read_write_data_io (phy_mem_dq[(DQDQS_DATA_WIDTH*(i+1)-1) : DQDQS_DATA_WIDTH*i]),
                                .read_write_data_io (phy_mem_dq[(DQDQS_DATA_WIDTH*(i+1)-1) : DQDQS_DATA_WIDTH*i]),
                                .read_data_out (ddio_phy_dqdin[((NATIVE_GROUP_SIZE*i+DQDQS_DATA_WIDTH)*4-1) : (NATIVE_GROUP_SIZE*i*4)]),
                                .read_data_out (ddio_phy_dqdin[((NATIVE_GROUP_SIZE*i+DQDQS_DATA_WIDTH)*4-1) : (NATIVE_GROUP_SIZE*i*4)]),
                                .capture_strobe_out(dqs_busout),
                                .capture_strobe_out(dqs_busout),
                                .extra_write_data_in (phy_ddio_dmdout[(i + 1) * 4 - 1 : (i * 4)]),
                                .extra_write_data_in (phy_ddio_dmdout[(i + 1) * 4 - 1 : (i * 4)]),
                                .write_data_in (phy_ddio_dqdout[((NATIVE_GROUP_SIZE*i+DQDQS_DATA_WIDTH)*4-1) : (NATIVE_GROUP_SIZE*i*4)]),
                                .write_data_in (phy_ddio_dqdout[((NATIVE_GROUP_SIZE*i+DQDQS_DATA_WIDTH)*4-1) : (NATIVE_GROUP_SIZE*i*4)]),
                                .write_oe_in (phy_ddio_dqoe[((NATIVE_GROUP_SIZE*i+DQDQS_DATA_WIDTH)*2-1) : (NATIVE_GROUP_SIZE*i*2)]),
                                .write_oe_in (phy_ddio_dqoe[((NATIVE_GROUP_SIZE*i+DQDQS_DATA_WIDTH)*2-1) : (NATIVE_GROUP_SIZE*i*2)]),
                                .strobe_io (mem_dqs[i]),
                                .strobe_io (mem_dqs[i]),
                                .strobe_n_io (mem_dqs_n[i]),
                                .strobe_n_io (mem_dqs_n[i]),
                                .output_strobe_ena(phy_ddio_dqs_oe[(i + 1) * 2 - 1 : (i * 2)]),
                                .output_strobe_ena(phy_ddio_dqs_oe[(i + 1) * 2 - 1 : (i * 2)]),
                                .write_strobe(phy_ddio_dqsdout[(i + 1) * 4 - 1 : (i * 4)]),
                                .write_strobe(phy_ddio_dqsdout[(i + 1) * 4 - 1 : (i * 4)]),
                                .oct_ena_in(phy_ddio_dqslogic_oct[(i + 1) * 2 - 1 : (i * 2)]),
                                .oct_ena_in(phy_ddio_dqslogic_oct[(i + 1) * 2 - 1 : (i * 2)]),
                                .extra_write_data_out (phy_mem_dm[i]),
                                .extra_write_data_out (phy_mem_dm[i]),
                                .config_data_in (scc_data),
                                .config_data_in (scc_data),
                                .config_dqs_ena (scc_dqs_ena[i]),
                                .config_dqs_ena (scc_dqs_ena[i]),
                                .config_io_ena (scc_dq_ena[(DQDQS_DATA_WIDTH*(i+1)-1) : DQDQS_DATA_WIDTH*i]),
                                .config_io_ena (scc_dq_ena[(DQDQS_DATA_WIDTH*(i+1)-1) : DQDQS_DATA_WIDTH*i]),
                                .config_dqs_io_ena (scc_dqs_io_ena[i]),
                                .config_dqs_io_ena (scc_dqs_io_ena[i]),
                                .config_update (scc_upd),
                                .config_update (scc_upd),
                                .config_clock_in (scc_clk),
                                .config_clock_in (scc_clk),
                                .config_extra_io_ena (scc_dm_ena[i]),
                                .config_extra_io_ena (scc_dm_ena[i]),
                                .lfifo_rdata_en(phy_ddio_dqslogic_incrdataen[(i + 1) * 2 - 1 : (i * 2)]),
                                .lfifo_rdata_en(phy_ddio_dqslogic_incrdataen[(i + 1) * 2 - 1 : (i * 2)]),
                                .lfifo_rdata_en_full(phy_ddio_dqslogic_dqsena[(i + 1) * 2 - 1 : (i * 2)]),
                                .lfifo_rdata_en_full(phy_ddio_dqslogic_dqsena[(i + 1) * 2 - 1 : (i * 2)]),
                                .lfifo_rd_latency(phy_ddio_dqslogic_readlatency[(i + 1) * 5 - 1 : (i * 5)]),
                                .lfifo_rd_latency(phy_ddio_dqslogic_readlatency[(i + 1) * 5 - 1 : (i * 5)]),
                                .lfifo_reset_n (phy_ddio_dqslogic_aclr_fifoctrl[i]),
                                .lfifo_reset_n (phy_ddio_dqslogic_aclr_fifoctrl[i]),
                                .lfifo_rdata_valid(ddio_phy_dqslogic_rdatavalid[i]),
                                .lfifo_rdata_valid(ddio_phy_dqslogic_rdatavalid[i]),
                                .vfifo_qvld(phy_ddio_dqslogic_dqsena[(i + 1) * 2 - 1 : (i * 2)]),
                                .vfifo_qvld(phy_ddio_dqslogic_dqsena[(i + 1) * 2 - 1 : (i * 2)]),
                                .vfifo_inc_wr_ptr(phy_ddio_dqslogic_incwrptr[(i + 1) * 2 - 1 : (i * 2)]),
                                .vfifo_inc_wr_ptr(phy_ddio_dqslogic_incwrptr[(i + 1) * 2 - 1 : (i * 2)]),
                                .vfifo_reset_n (phy_ddio_dqslogic_aclr_pstamble[i]),
                                .vfifo_reset_n (phy_ddio_dqslogic_aclr_pstamble[i]),
                                .dll_delayctrl_in (dll_phy_delayctrl),
                                .dll_delayctrl_in (dll_phy_delayctrl),
                                .rfifo_reset_n(phy_ddio_dqslogic_fiforeset[i])
                                .rfifo_reset_n(phy_ddio_dqslogic_fiforeset[i])
                                );
                                );
        end
        end
        endgenerate
        endgenerate
 
 
        generate
        generate
        genvar j;
        genvar j;
        for (j = NUM_OF_DQDQS; j < 5; j=j+1)
        for (j = NUM_OF_DQDQS; j < 5; j=j+1)
        begin: to_vcc
        begin: to_vcc
                assign ddio_phy_dqslogic_rdatavalid[j] = 1'b1;
                assign ddio_phy_dqslogic_rdatavalid[j] = 1'b1;
        end
        end
        endgenerate
        endgenerate
 
 
endmodule
endmodule
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.