⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 altmemddr_phy_alt_mem_phy_ciii.v

📁 nios里面用自定义指令集来实现三角函数
💻 V
📖 第 1 页 / 共 5 页
字号:
input wire [MEM_IF_BANKADDR_WIDTH - 1:0]                 ctl_mem_ba_h;input wire [MEM_IF_BANKADDR_WIDTH - 1:0]                 ctl_mem_ba_l;input wire                                               ctl_mem_cas_n_h;input wire                                               ctl_mem_cas_n_l;input wire [MEM_IF_CS_WIDTH - 1:0]                       ctl_mem_cke_h;input wire [MEM_IF_CS_WIDTH - 1:0]                       ctl_mem_cke_l;input wire [MEM_IF_CS_WIDTH - 1:0]                       ctl_mem_cs_n_h;input wire [MEM_IF_CS_WIDTH - 1:0]                       ctl_mem_cs_n_l;input wire [MEM_IF_CS_WIDTH - 1:0]                       ctl_mem_odt_h;input wire [MEM_IF_CS_WIDTH - 1:0]                       ctl_mem_odt_l;input wire                                               ctl_mem_ras_n_h;input wire                                               ctl_mem_ras_n_l;input wire                                               ctl_mem_we_n_h;input wire                                               ctl_mem_we_n_l;// For v6.1, byte enables are supported, but nibble enables (aka x4 DM support)// is unsupported :input wire [(LOCAL_IF_DWIDTH/8) - 1 : 0]                 ctl_mem_be;input wire                                               ctl_mem_dqs_burst;// The controller buffers/registers its "ctl_wdata" input to produce this output :input wire [MEM_IF_DWIDTH * DWIDTH_RATIO - 1 : 0 ]       ctl_mem_wdata;input wire                                               ctl_mem_wdata_valid;// QDRII has seperate read and write addresses that are multiplexed// onto the ctl_mem_addr output :input wire [MEM_IF_CS_WIDTH -1:0]                        ctl_mem_wps_n;input wire [MEM_IF_CS_WIDTH -1:0]                        ctl_mem_rps_n;// Output captured, resynchronised and de-muxed read data to the controller :output wire [LOCAL_IF_DWIDTH - 1 : 0]                    ctl_mem_rdata;// Indicate to the controller that the calibration sequence has completed and the// read path output is valid :output wire                                              ctl_mem_rdata_valid;input wire                                               ctl_init_done;input wire                                               ctl_doing_rd;// Functionally orthogonal from the rest of the controller I/O, this adds one clock// of latency to the address and command path :input wire                                               ctl_add_1t_ac_lat;// Functionally orthogonal from the rest of the controller I/O, this adds one clock// of latency to the ODT path :input wire                                               ctl_add_1t_odt_lat;// Functionally orthogonal from the rest of the controller I-O, this adds extra// register stages to the address / command - to help cross clock domains input wire                                               ctl_add_intermediate_regs;// Functionally orthogonal from the rest of the controller I/O, this changes the// clock edge for the address and command :input wire                                               ctl_negedge_en;output wire                                              ctl_usr_mode_rdy;//Outputs to DIMM :output wire [MEM_IF_ROWADDR_WIDTH - 1 : 0]               mem_addr;output wire [MEM_IF_BANKADDR_WIDTH - 1 : 0]              mem_ba;output wire                                              mem_cas_n;output wire [MEM_IF_CS_WIDTH - 1 : 0]                    mem_cke;output wire [MEM_IF_CS_WIDTH - 1 : 0]                    mem_cs_n;output wire [MEM_IF_DWIDTH - 1 : 0]                      mem_d;output wire [MEM_IF_DM_WIDTH - 1 : 0]                    mem_dm;output wire [MEM_IF_CS_WIDTH - 1 : 0]                    mem_odt;output wire                                              mem_ras_n;output wire                                              mem_we_n;output wire                                              mem_reset_n;output wire                                              mem_doff_n;output wire [MEM_IF_CS_WIDTH - 1 : 0]                    mem_rps_n;output wire [MEM_IF_CS_WIDTH - 1 : 0]                    mem_wps_n;inout wire [MEM_IF_CLK_PAIR_COUNT - 1 : 0]               mem_clk;inout wire [MEM_IF_CLK_PAIR_COUNT - 1 : 0]               mem_clk_n;//Bidirectional:inout tri [MEM_IF_DWIDTH - 1 : 0]                        mem_dq;inout tri [MEM_IF_DQS_WIDTH - 1 : 0]                     mem_dqs;// Dummy DQSN pin so that all families have the same top level I/O : inout tri [MEM_IF_DQS_WIDTH - 1 : 0]                     mem_dqsn;output wire                                              resynchronisation_successful;output wire                                              postamble_successful;output wire                                              tracking_successful;output wire                                              tracking_adjustment_up;output wire                                              tracking_adjustment_down;// DLL import/export - UNUSED FOR CIII!:input  wire [DQS_DELAY_CTL_WIDTH - 1 : 0 ]               dqs_delay_ctrl_import;output wire [DQS_DELAY_CTL_WIDTH - 1 : 0 ]               dqs_delay_ctrl_export;output wire                                              dll_reference_clk;// External PLL reconfig inputs - !UNUSED FOR CIII!:input wire                                               pll_reconfig_enable;input wire [3:0]                                         pll_reconfig_counter_type;input wire [2:0]                                         pll_reconfig_counter_param;input wire [8:0]                                         pll_reconfig_data_in;input wire                                               pll_reconfig_read_param;input wire                                               pll_reconfig_write_param;input wire                                               pll_reconfig;    // SII outputs only.  Tied-off for CIII : output wire                                              pll_reconfig_clk;output wire                                              pll_reconfig_reset;output wire [8:0]                                        pll_reconfig_data_out;output wire                                              pll_reconfig_busy;// Internal signal declarations :// Clocks :// full-rate memory clockwire                                            mem_clk_2x;// write_clk_2x is a full-rate write clock.  It is -90 degress aligned to the// system clock :wire                                            write_clk_2x;wire                                            phy_clk_1x_src;wire                                            phy_clk_1x;wire                                            ac_clk_1x;wire                                            ac_clk_2x;wire                                            cs_n_clk_1x;wire                                            cs_n_clk_2x;wire                                            postamble_clk_2x;wire                                            measure_clk_2x;wire                                            resync_clk_2x;wire [MEM_IF_DQS_WIDTH - 1 : 0]                 resync_clk_1x;// resets, async assert, de-assert is sync'd to each clock domainwire                                            reset_mem_clk_2x_n;wire                                            reset_poa_clk_2x_n;wire                                            reset_write_clk_2x_n;wire                                            reset_phy_clk_1x_n;wire                                            reset_ac_clk_1x_n;wire                                            reset_ac_clk_2x_n;wire                                            reset_cs_n_clk_1x_n;wire                                            reset_cs_n_clk_2x_n;wire                                            reset_measure_clk_2x_n;wire                                            reset_resync_clk_2x_n;// Misc signals :wire                                            phs_shft_busy;// Postamble signals :wire [MEM_IF_POSTAMBLE_EN_WIDTH - 1 : 0]        poa_postamble_en_preset_2x;// Sequencer signals :wire                                            seq_mmc_start;wire                                            seq_mux_burstbegin;wire [LOCAL_BURST_LEN_BITS - 1 : 0]             seq_mux_size;wire [LOCAL_IF_AWIDTH - 1 : 0]                  seq_mux_address;wire                                            seq_mux_read_req;wire [LOCAL_IF_DWIDTH - 1 : 0]                  seq_mux_wdata;wire                                            seq_mux_write_req;wire                                            seq_pll_inc_dec_n;wire                                            seq_pll_start_reconfig;wire [CLOCK_INDEX_WIDTH - 1 : 0]                seq_pll_select;wire                                            seq_rdp_dec_read_lat_1x;wire                                            seq_rdp_dmx_swap;wire                                            seq_rdp_inc_read_lat_1x;wire                                            seq_poa_lat_dec_1x;wire                                            seq_poa_lat_inc_1x;wire                                            seq_poa_protection_override_1x;// Mimic signals :wire                                            mmc_seq_done;wire                                            mmc_seq_value;wire                                            mimic_data;wire                                            mux_seq_wdata_req;wire                                            mux_seq_controller_ready;// Read datapath signals :// Connections from the IOE to the read datapath :wire [MEM_IF_DWIDTH - 1 : 0]                    dio_rdata_h_2x;wire [MEM_IF_DWIDTH - 1 : 0]                    dio_rdata_l_2x;// Write datapath signals :// wires from the wdp to the dpio :wire [MEM_IF_DM_WIDTH -1 : 0]                    wdp_dm_h_2x;       // dm_h to IOEwire [MEM_IF_DM_WIDTH -1 : 0]                    wdp_dm_l_2x;       // dm_l to IOEwire [MEM_IF_DWIDTH - 1 : 0]                     wdp_wdata_h_2x;    // wdata_h to IOEwire [MEM_IF_DWIDTH - 1 : 0]                     wdp_wdata_l_2x;    // wdata_l to IOEwire [MEM_IF_DWIDTH - 1 : 0]                     wdp_wdata_oe_2x;   // OE to DQ pinwire [(MEM_IF_DQS_WIDTH) - 1 : 0]                wdp_wdqs_2x;       // DQS to IOEwire [(MEM_IF_DQS_WIDTH) - 1 : 0]                wdp_wdqs_oe_2x;    // OE to DQS pinwire                                             ctl_add_1t_ac_lat_internal;wire                                             ctl_add_1t_odt_lat_internal;wire                                             ctl_negedge_en_internal;wire                                             ctl_add_intermediate_regs_internal;// continual assignments :assign dll_reference_clk     = 1'b0;assign dqs_delay_ctrl_export = {DQS_DELAY_CTL_WIDTH{1'b0}};assign mem_rps_n             = {MEM_IF_CS_WIDTH{1'b0}};assign mem_wps_n             = {MEM_IF_CS_WIDTH{1'b0}};assign mem_doff_n            = 1'b0;assign pll_reconfig_clk      = 1'b0;assign pll_reconfig_reset    = 1'b0;assign pll_reconfig_data_out = 8'h0;assign pll_reconfig_busy     = 1'b0;assign mem_d                 = {MEM_IF_DWIDTH {1'b0}};assign mem_dqsn              = {MEM_IF_DQS_WIDTH{1'bz}};// The top level I/O should not have the "Nx" clock domain suffices, so this is// assigned here.  Also note that to avoid delta delay issues both the external and// internal phy_clks are assigned to a common 'src' clock :assign phy_clk         = phy_clk_1x_src;assign phy_clk_1x      = phy_clk_1x_src;assign reset_phy_clk_n = reset_phy_clk_1x_n;// This are input clocks for SIII - tied-off :assign resync_clk_1x   = { MEM_IF_DQS_WIDTH {1'b0} };// The "Negedge enable" control comes either from the top level input, which is// primarily intended for HardCopy users, or from the generic :generate    if (ADDR_CMD_NEGEDGE_EN == "EXT_SELECT")        assign ctl_negedge_en_internal = ctl_negedge_en;    else if (ADDR_CMD_NEGEDGE_EN == "TRUE")        assign ctl_negedge_en_internal = 1'b1;    else // FALSE        assign ctl_negedge_en_internal = 1'b0;endgenerate// The "Add 1T of latency" control comes either from the top level input, which is// primarily intended for HardCopy users, or from the generic :generate    if (ADDR_CMD_ADD_1T == "EXT_SELECT")        assign ctl_add_1t_ac_lat_internal = ctl_add_1t_ac_lat;    else if (ADDR_CMD_ADD_1T == "TRUE")        assign ctl_add_1t_ac_lat_internal = 1'b1;    else // FALSE        assign ctl_add_1t_ac_lat_internal = 1'b0;endgenerate// The "Add 1T of latency" control comes either from the top level input, which is// primarily intended for HardCopy users, or from the generic :generate    if (ODT_ADD_1T == "EXT_SELECT")        assign ctl_add_1t_odt_lat_internal = ctl_add_1t_odt_lat;    else if (ODT_ADD_1T == "TRUE")        assign ctl_add_1t_odt_lat_internal = 1'b1;    else // FALSE        assign ctl_add_1t_odt_lat_internal = 1'b0;endgenerate// The "Add 1T of latency" control comes either from the top level input, which is// primarily intended for HardCopy users, or from the generic :generate    if (ADDR_CMD_ADD_INTERMEDIATE_REGS == "EXT_SELECT")        assign ctl_add_intermediate_regs_internal = ctl_add_intermediate_regs;    else if (ADDR_CMD_ADD_INTERMEDIATE_REGS == "TRUE")        assign ctl_add_intermediate_regs_internal = 1'b1;    else // FALSE        assign ctl_add_intermediate_regs_internal = 1'b0;endgenerate// Instance I/O modules ://altmemddr_phy_alt_mem_phy_dp_io_ciii #(    .MEM_IF_CLK_PS              (MEM_IF_CLK_PS),    .MEM_IF_BANKADDR_WIDTH      (MEM_IF_BANKADDR_WIDTH),    .MEM_IF_CS_WIDTH            (MEM_IF_CS_WIDTH),    .MEM_IF_DWIDTH              (MEM_IF_DWIDTH),    .MEM_IF_DM_WIDTH            (MEM_IF_DM_WIDTH),    .MEM_IF_DM_PINS_EN          (MEM_IF_DM_PINS_EN),    .MEM_IF_DQ_PER_DQS          (MEM_IF_DQ_PER_DQS),    .MEM_IF_DQS_CAPTURE_EN      (MEM_IF_DQS_CAPTURE_EN),    .MEM_IF_DQS_WIDTH           (MEM_IF_DQS_WIDTH),    .MEM_IF_POSTAMBLE_EN_WIDTH  (MEM_IF_POSTAMBLE_EN_WIDTH),    .MEM_IF_ROWADDR_WIDTH       (MEM_IF_ROWADDR_WIDTH),    .DLL_DELAY_BUFFER_MODE      (DLL_DELAY_BUFFER_MODE),    .DQS_OUT_MODE               (DQS_OUT_MODE),    .DQS_PHASE                  (DQS_PHASE)) dpio (                           .reset_resync_clk_2x_n      (reset_resync_clk_2x_n),    .resync_clk_2x              (resync_clk_2x),    .mem_clk_2x                 (mem_clk_2x),    .write_clk_2x               (write_clk_2x),    .mem_dm                     (mem_dm),    .mem_dq                     (mem_dq),    .mem_dqs                    (mem_dqs),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -