// ========== Copyright Header Begin ==========================================
// OpenSPARC T2 Processor File: axis_top.vh
// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
// For the avoidance of doubt, and except that if any non-GPL license
// choice is available it will apply instead, Sun elects to use only
// the General Public License version 2 (GPLv2) at this time for any
// software where a choice of GPL license versions is made
// available with the language indicating that GPLv2 or any later version
// may be used, or where a choice of which version of the GPL is applied is
// otherwise unspecified.
// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
// CA 95054 USA or visit www.sun.com if you need additional information or
// ========== Copyright Header End ============================================
`ifdef AXIS_FBDIMM_NO_FSR
assign dram_3x_clk=tb_top.cpu.ccu.ccu_pll.clk33;
assign dram_3x_clk=tb_top.cpu.ccu.ccu_pll.x1.imaginary_vco_gen.pll_core.clk33;
assign dram_2x_clk=tb_top.cpu.ccu.ccu_pll.clk32;
assign dram_2x_clk=tb_top.cpu.ccu.ccu_pll.x1.imaginary_vco_gen.pll_core.clk32;
reg repeatablility_check;
wire [7:0] cmp_cores =8'h01;
`ifdef AXIS_FBDIMM_NO_FSR
//this removes one flop in nb_encode_crc to avoid race on hw
wire run_on_axis_hw = 1'b1;
//turn off when run tl model in sw
wire run_on_axis_hw = 1'b0;
initial $export_frcrel(tb_top.run_on_axis_hw);
initial thread_wdto=8192;
initial repeatablility_check=0;
initial dump_pc_size=512;
initial $export_frcrel(tb_top.cpu.ccu.csr_blk.pll_div2);
initial $export_frcrel(tb_top.cpu.ccu.csr_blk.pll_div4);
initial $export_frcrel(tb_top.cpu.ccu.ccu_pll.x1.imaginary_vco_gen.pll_core.saved_div);
initial $export_frcrel(tb_top.cpu.mcu0.fbdic.fbdic_status_parity_error_en);
initial $export_frcrel(tb_top.cpu.mcu1.fbdic.fbdic_status_parity_error_en);
initial $export_frcrel(tb_top.cpu.mcu2.fbdic.fbdic_status_parity_error_en);
initial $export_frcrel(tb_top.cpu.mcu3.fbdic.fbdic_status_parity_error_en);
initial $export_frcrel(tb_top.cpu.ncu.ncu_scd_ctl.ncu_c2iscd_ctl.ncu_ctrl_ctl.wmr_vec_mask);
initial $export_frcrel(tb_top.cpu.ccu.ccu_serdes_dtm);
initial $export_frcrel(tb_top.cpu.SSI_MISO);
initial $export_frcrel(tb_top.SSI_EXT_INT_L);
initial $export_frcrel(tb_top.cpu.ccu_ncu_vld);
initial $export_frcrel(tb_top.cpu.ccu_rst_sync_stable);
//initial $export_frcrel(tb_top.cpu.rst.rst_cmp_ctl.mio_rst_pwron_rst_cmp_);
//initial $export_frcrel(tb_top.cpu.rst.rst_cmp_ctl.pwron_rst_l);
initial $export_frcrel(`CPU.tcu.jtag_ctl.clock_chop_bclk);
initial $export_frcrel(`CPU.tcu.jtag_ctl.clock_chop_aclk);
initial $export_frcrel(`TOP.dbg_en);
initial $export_frcrel(`TOP.dbg_io);
initial $export_frcrel(`TOP.tlu_dbg_en);
initial $export_frcrel(`TOP.tlb_dbg_en);
initial $export_frcrel(`TOP.dbg_en1);
initial $export_frcrel(`TOP.thread_wdto);
initial $export_frcrel(`TOP.stop_on_wdto);
initial $export_frcrel(`TOP.pc_trc_mode);
initial $export_frcrel(`TOP.repeatablility_check);
initial $export_frcrel(`TOP.dump_pc_size);
`define AXIS_DRAM `TOP.mcusat_fbdimm.axis_dimm
initial $export_frcrel(`AXIS_DRAM.dimm.dram_dump);
initial $export_frcrel(`AXIS_DRAM.dimm.dram_addr_dump);
initial $export_frcrel(`AXIS_DRAM.data_delay);
initial $export_frcrel(tb_top.cpu.ncu.tcu_sck_bypass);
axis_io_mon axis_io_mon (
.io_cpx_data_ca (`CPU.ccx.io_cpx_data_ca),
.io_cpx_req_cq (`CPU.ccx.io_cpx_req_cq),
.io_pcx_stall_pq (`CPU.ccx.io_pcx_stall_pq),
.cpx_io_grant_cx (`CPU.ccx.cpx_io_grant_cx),
.core_mask (cmp_cores[ 7: 0]),
.pcx_cpx_short (dbg_en1),
.spc_pcx_req_pq (`CPU.spc0_pcx_req_pq),
.pcx_spc_grant_px (`CPU.pcx_spc0_grant_px),
.spc_pcx_atom_pq (`CPU.spc0_pcx_atm_pq),
.spc_pcx_data_pa (`CPU.spc0_pcx_data_pa),
.cpx_spc_data_cx2 (`CPU.cpx_spc0_data_cx2),
.core_mask (cmp_cores[ 7: 0]),
.pcx_cpx_short (dbg_en1),
.spc_pcx_req_pq (`CPU.spc1_pcx_req_pq),
.pcx_spc_grant_px (`CPU.pcx_spc1_grant_px),
.spc_pcx_atom_pq (`CPU.spc1_pcx_atm_pq),
.spc_pcx_data_pa (`CPU.spc1_pcx_data_pa),
.cpx_spc_data_cx2 (`CPU.cpx_spc1_data_cx2),
.core_mask (cmp_cores[ 7: 0]),
.pcx_cpx_short (dbg_en1),
.spc_pcx_req_pq (`CPU.spc2_pcx_req_pq),
.pcx_spc_grant_px (`CPU.pcx_spc2_grant_px),
.spc_pcx_atom_pq (`CPU.spc2_pcx_atm_pq),
.spc_pcx_data_pa (`CPU.spc2_pcx_data_pa),
.cpx_spc_data_cx2 (`CPU.cpx_spc2_data_cx2),
.core_mask (cmp_cores[ 7: 0]),
.pcx_cpx_short (dbg_en1),
.spc_pcx_req_pq (`CPU.spc3_pcx_req_pq),
.pcx_spc_grant_px (`CPU.pcx_spc3_grant_px),
.spc_pcx_atom_pq (`CPU.spc3_pcx_atm_pq),
.spc_pcx_data_pa (`CPU.spc3_pcx_data_pa),
.cpx_spc_data_cx2 (`CPU.cpx_spc3_data_cx2),
.core_mask (cmp_cores[ 7: 0]),
.pcx_cpx_short (dbg_en1),
.spc_pcx_req_pq (`CPU.spc4_pcx_req_pq),
.pcx_spc_grant_px (`CPU.pcx_spc4_grant_px),
.spc_pcx_atom_pq (`CPU.spc4_pcx_atm_pq),
.spc_pcx_data_pa (`CPU.spc4_pcx_data_pa),
.cpx_spc_data_cx2 (`CPU.cpx_spc4_data_cx2),
.core_mask (cmp_cores[ 7: 0]),
.pcx_cpx_short (dbg_en1),
.spc_pcx_req_pq (`CPU.spc5_pcx_req_pq),
.pcx_spc_grant_px (`CPU.pcx_spc5_grant_px),
.spc_pcx_atom_pq (`CPU.spc5_pcx_atm_pq),
.spc_pcx_data_pa (`CPU.spc5_pcx_data_pa),
.cpx_spc_data_cx2 (`CPU.cpx_spc5_data_cx2),
.core_mask (cmp_cores[ 7: 0]),
.pcx_cpx_short (dbg_en1),
.spc_pcx_req_pq (`CPU.spc6_pcx_req_pq),
.pcx_spc_grant_px (`CPU.pcx_spc6_grant_px),
.spc_pcx_atom_pq (`CPU.spc6_pcx_atm_pq),
.spc_pcx_data_pa (`CPU.spc6_pcx_data_pa),
.cpx_spc_data_cx2 (`CPU.cpx_spc6_data_cx2),
.core_mask (cmp_cores[ 7: 0]),
.pcx_cpx_short (dbg_en1),
.spc_pcx_req_pq (`CPU.spc7_pcx_req_pq),
.pcx_spc_grant_px (`CPU.pcx_spc7_grant_px),
.spc_pcx_atom_pq (`CPU.spc7_pcx_atm_pq),
.spc_pcx_data_pa (`CPU.spc7_pcx_data_pa),
.cpx_spc_data_cx2 (`CPU.cpx_spc7_data_cx2),
.core_mask (cmp_cores[ 7: 0]),
.pcx_cpx_short (dbg_en1),
wire [7:0] good_trap_sigs_c0 = {`TOP.axis_trap_top.c0.t7.hit_good_trap,
`TOP.axis_trap_top.c0.t6.hit_good_trap,
`TOP.axis_trap_top.c0.t5.hit_good_trap,
`TOP.axis_trap_top.c0.t4.hit_good_trap,
`TOP.axis_trap_top.c0.t3.hit_good_trap,
`TOP.axis_trap_top.c0.t2.hit_good_trap,
`TOP.axis_trap_top.c0.t1.hit_good_trap,
`TOP.axis_trap_top.c0.t0.hit_good_trap} ;
wire [7:0] good_trap_sigs_c0 = 8'b0;
wire [7:0] good_trap_sigs_c1 = {`TOP.axis_trap_top.c1.t7.hit_good_trap,
`TOP.axis_trap_top.c1.t6.hit_good_trap,
`TOP.axis_trap_top.c1.t5.hit_good_trap,
`TOP.axis_trap_top.c1.t4.hit_good_trap,
`TOP.axis_trap_top.c1.t3.hit_good_trap,
`TOP.axis_trap_top.c1.t2.hit_good_trap,
`TOP.axis_trap_top.c1.t1.hit_good_trap,
`TOP.axis_trap_top.c1.t0.hit_good_trap} ;
wire [7:0] good_trap_sigs_c1 = 8'b0;
wire [7:0] good_trap_sigs_c2 = {`TOP.axis_trap_top.c2.t7.hit_good_trap,
`TOP.axis_trap_top.c2.t6.hit_good_trap,
`TOP.axis_trap_top.c2.t5.hit_good_trap,
`TOP.axis_trap_top.c2.t4.hit_good_trap,
`TOP.axis_trap_top.c2.t3.hit_good_trap,
`TOP.axis_trap_top.c2.t2.hit_good_trap,
`TOP.axis_trap_top.c2.t1.hit_good_trap,
`TOP.axis_trap_top.c2.t0.hit_good_trap} ;
wire [7:0] good_trap_sigs_c2 = 8'b0;
wire [7:0] good_trap_sigs_c3 = {`TOP.axis_trap_top.c3.t7.hit_good_trap,
`TOP.axis_trap_top.c3.t6.hit_good_trap,
`TOP.axis_trap_top.c3.t5.hit_good_trap,
`TOP.axis_trap_top.c3.t4.hit_good_trap,
`TOP.axis_trap_top.c3.t3.hit_good_trap,
`TOP.axis_trap_top.c3.t2.hit_good_trap,
`TOP.axis_trap_top.c3.t1.hit_good_trap,
`TOP.axis_trap_top.c3.t0.hit_good_trap} ;
wire [7:0] good_trap_sigs_c3 = 8'b0;
wire [7:0] good_trap_sigs_c4 = {`TOP.axis_trap_top.c4.t7.hit_good_trap,
`TOP.axis_trap_top.c4.t6.hit_good_trap,
`TOP.axis_trap_top.c4.t5.hit_good_trap,
`TOP.axis_trap_top.c4.t4.hit_good_trap,
`TOP.axis_trap_top.c4.t3.hit_good_trap,
`TOP.axis_trap_top.c4.t2.hit_good_trap,
`TOP.axis_trap_top.c4.t1.hit_good_trap,
`TOP.axis_trap_top.c4.t0.hit_good_trap} ;
wire [7:0] good_trap_sigs_c4 = 8'b0;
wire [7:0] good_trap_sigs_c5 = {`TOP.axis_trap_top.c5.t7.hit_good_trap,
`TOP.axis_trap_top.c5.t6.hit_good_trap,
`TOP.axis_trap_top.c5.t5.hit_good_trap,
`TOP.axis_trap_top.c5.t4.hit_good_trap,
`TOP.axis_trap_top.c5.t3.hit_good_trap,
`TOP.axis_trap_top.c5.t2.hit_good_trap,
`TOP.axis_trap_top.c5.t1.hit_good_trap,
`TOP.axis_trap_top.c5.t0.hit_good_trap} ;
wire [7:0] good_trap_sigs_c5 = 8'b0;
wire [7:0] good_trap_sigs_c6 = {`TOP.axis_trap_top.c6.t7.hit_good_trap,
`TOP.axis_trap_top.c6.t6.hit_good_trap,
`TOP.axis_trap_top.c6.t5.hit_good_trap,
`TOP.axis_trap_top.c6.t4.hit_good_trap,
`TOP.axis_trap_top.c6.t3.hit_good_trap,
`TOP.axis_trap_top.c6.t2.hit_good_trap,
`TOP.axis_trap_top.c6.t1.hit_good_trap,
`TOP.axis_trap_top.c6.t0.hit_good_trap} ;
wire [7:0] good_trap_sigs_c6 = 8'b0;
wire [7:0] good_trap_sigs_c7 = {`TOP.axis_trap_top.c7.t7.hit_good_trap,
`TOP.axis_trap_top.c7.t6.hit_good_trap,
`TOP.axis_trap_top.c7.t5.hit_good_trap,
`TOP.axis_trap_top.c7.t4.hit_good_trap,
`TOP.axis_trap_top.c7.t3.hit_good_trap,
`TOP.axis_trap_top.c7.t2.hit_good_trap,
`TOP.axis_trap_top.c7.t1.hit_good_trap,
`TOP.axis_trap_top.c7.t0.hit_good_trap} ;
wire [7:0] good_trap_sigs_c7 = 8'b0;
wire [63:0] good_trap_sigs={ good_trap_sigs_c7, good_trap_sigs_c6, good_trap_sigs_c5, good_trap_sigs_c4,
good_trap_sigs_c3, good_trap_sigs_c2, good_trap_sigs_c1, good_trap_sigs_c0};
always @(posedge `CPU.l2clk)
if (((good_trap_sigs & `TOP.verif_args.finish_mask) == `TOP.verif_args.finish_mask) && `TOP.verif_args.finish_mask)
begin // axis tbcall_region // {
`PR_NORMAL ("tb_top", `NORMAL, "all checked threads (%x) reached Good Trap. returning to cli", `TOP.verif_args.finish_mask);
`PR_NORMAL ("tb_top", `NORMAL, "Diag Reached GOOD End! (pre-regreport checking)");
`PR_NORMAL ("tb_top", `NORMAL, "regreport will determine if diag has really PASSED");
axis_trap_top axis_trap_top (dump_pc_size);
always @(posedge tb_top.SystemClock) begin
tap_state = `TCU.jtag_ctl.tap_state;
tap_instr = `TCU.jtag_ctl.instr;
always @(posedge tb_top.cpu.ccu.ccu_pll.clk22) begin
always @(posedge tb_top.cpu.ccu.ccu_pll.x1.imaginary_vco_gen.pll_core.clk22) begin
if (tap_state_r != tap_state) begin
if (tap_dbg) begin // axis tbcall_region
$display("%t TAP state changed to %x", $time, tap_state);
tap_state_r <= tap_state;
if (tap_instr_r != tap_instr) begin
if (tap_dbg) begin // axis tbcall_region
$display("%t TAP instruction changed to %x", $time, tap_instr);
tap_instr_r <= tap_instr;
always @(posedge tb_top.cpu.ccu.ccu_pll.clk22)
always @(posedge tb_top.cpu.ccu.ccu_pll.x1.imaginary_vco_gen.pll_core.clk22)
tck_fb_r=`CPU.tcu.jtag_ctl.tcu_jtag_tap_ctl.l1tck;
jtag_ice jtag_ice(TMS,TDI,TDO,TCK,tck_fb);
initial $export_frcrel(tb_top.tap_dbg);
initial $export_frcrel(tb_top.jtag_ice.dbg);
initial $export_frcrel(tb_top.jtag_ice.dbg1);
initial $export_frcrel(tb_top.jtag_ice.tck_fb);
`endif // `ifdef AXIS_TL_ICE
// SIU to DMU/NIU monitor - 12/15/2005
axis_siu_mon axis_siu_mon(
.clk (`CPU.gl_io_out_c3b0),
.niu_sii_hdr_vld (`CPU.niu_sii_hdr_vld),
.niu_sii_reqbypass (`CPU.niu_sii_reqbypass),
.niu_sii_datareq (`CPU.niu_sii_datareq),
.niu_sii_data (`CPU.niu_sii_data),
.niu_sii_parity (`CPU.niu_sii_parity),
.sii_niu_oqdq (`CPU.sii_niu_oqdq),
.sii_niu_bqdq (`CPU.sii_niu_bqdq),
.niu_sio_dq (`CPU.niu_sio_dq),
.sio_niu_hdr_vld (`CPU.sio_niu_hdr_vld),
.sio_niu_datareq (`CPU.sio_niu_datareq),
.sio_niu_data (`CPU.sio_niu_data),
.sio_niu_parity (`CPU.sio_niu_parity),
.dmu_sii_hdr_vld (`CPU.dmu_sii_hdr_vld),
.dmu_sii_reqbypass (`CPU.dmu_sii_reqbypass),
.dmu_sii_datareq (`CPU.dmu_sii_datareq),
.dmu_sii_datareq16 (`CPU.dmu_sii_datareq16),
.dmu_sii_data (`CPU.dmu_sii_data),
.dmu_sii_parity (`CPU.dmu_sii_parity),
.dmu_sii_be_parity (`CPU.dmu_sii_be_parity),
.dmu_sii_be (`CPU.dmu_sii_be),
.sii_dmu_wrack_vld (`CPU.sii_dmu_wrack_vld),
.sii_dmu_wrack_tag (`CPU.sii_dmu_wrack_tag),
.sii_dmu_wrack_parity (`CPU.sii_dmu_wrack_parity),
.sio_dmu_hdr_vld (`CPU.sio_dmu_hdr_vld),
.sio_dmu_data (`CPU.sio_dmu_data),
.sio_dmu_parity (`CPU.sio_dmu_parity)
// MCU Error monitors. These simply print a message anytime the
// DRAM_ERROR_STATUS_REG (0x84-0000-0280) changes. - 1/19/2006
axis_mcu_errmon #(0) axis_mcu0_errmon(
.clk (`MCU0.rdpctl.l1clk),
.rdpctl_meu_error (`MCU0.rdpctl.rdpctl_meu_error),
.rdpctl_mec_error (`MCU0.rdpctl.rdpctl_mec_error),
.rdpctl_dac_error (`MCU0.rdpctl.rdpctl_dac_error),
.rdpctl_dau_error (`MCU0.rdpctl.rdpctl_dau_error),
.rdpctl_dsc_error (`MCU0.rdpctl.rdpctl_dsc_error),
.rdpctl_dsu_error (`MCU0.rdpctl.rdpctl_dsu_error),
.rdpctl_dbu_error (`MCU0.rdpctl.rdpctl_dbu_error),
.rdpctl_meb_error (`MCU0.rdpctl.rdpctl_meb_error),
.rdpctl_fbu_error (`MCU0.rdpctl.rdpctl_fbu_error),
.rdpctl_fbr_error (`MCU0.rdpctl.rdpctl_fbr_error)
axis_mcu_errmon #(1) axis_mcu1_errmon(
.clk (`MCU1.rdpctl.l1clk),
.rdpctl_meu_error (`MCU1.rdpctl.rdpctl_meu_error),
.rdpctl_mec_error (`MCU1.rdpctl.rdpctl_mec_error),
.rdpctl_dac_error (`MCU1.rdpctl.rdpctl_dac_error),
.rdpctl_dau_error (`MCU1.rdpctl.rdpctl_dau_error),
.rdpctl_dsc_error (`MCU1.rdpctl.rdpctl_dsc_error),
.rdpctl_dsu_error (`MCU1.rdpctl.rdpctl_dsu_error),
.rdpctl_dbu_error (`MCU1.rdpctl.rdpctl_dbu_error),
.rdpctl_meb_error (`MCU1.rdpctl.rdpctl_meb_error),
.rdpctl_fbu_error (`MCU1.rdpctl.rdpctl_fbu_error),
.rdpctl_fbr_error (`MCU1.rdpctl.rdpctl_fbr_error)
axis_mcu_errmon #(2) axis_mcu2_errmon(
.clk (`MCU2.rdpctl.l1clk),
.rdpctl_meu_error (`MCU2.rdpctl.rdpctl_meu_error),
.rdpctl_mec_error (`MCU2.rdpctl.rdpctl_mec_error),
.rdpctl_dac_error (`MCU2.rdpctl.rdpctl_dac_error),
.rdpctl_dau_error (`MCU2.rdpctl.rdpctl_dau_error),
.rdpctl_dsc_error (`MCU2.rdpctl.rdpctl_dsc_error),
.rdpctl_dsu_error (`MCU2.rdpctl.rdpctl_dsu_error),
.rdpctl_dbu_error (`MCU2.rdpctl.rdpctl_dbu_error),
.rdpctl_meb_error (`MCU2.rdpctl.rdpctl_meb_error),
.rdpctl_fbu_error (`MCU2.rdpctl.rdpctl_fbu_error),
.rdpctl_fbr_error (`MCU2.rdpctl.rdpctl_fbr_error)
axis_mcu_errmon #(3) axis_mcu3_errmon(
.clk (`MCU3.rdpctl.l1clk),
.rdpctl_meu_error (`MCU3.rdpctl.rdpctl_meu_error),
.rdpctl_mec_error (`MCU3.rdpctl.rdpctl_mec_error),
.rdpctl_dac_error (`MCU3.rdpctl.rdpctl_dac_error),
.rdpctl_dau_error (`MCU3.rdpctl.rdpctl_dau_error),
.rdpctl_dsc_error (`MCU3.rdpctl.rdpctl_dsc_error),
.rdpctl_dsu_error (`MCU3.rdpctl.rdpctl_dsu_error),
.rdpctl_dbu_error (`MCU3.rdpctl.rdpctl_dbu_error),
.rdpctl_meb_error (`MCU3.rdpctl.rdpctl_meb_error),
.rdpctl_fbu_error (`MCU3.rdpctl.rdpctl_fbu_error),
.rdpctl_fbr_error (`MCU3.rdpctl.rdpctl_fbr_error)
`ifdef AXIS_FBDIMM_NO_FSR
integer ref_dram_3x_clk_period;
integer time1_r2, time2_r2;
// ---- Clock Generator for FBD Channel clock ; dr_clk X 3 (linkclk) -----
@ (posedge `CCU.ccu_rst_sync_stable);
if ($test$plusargs("DTM_ENABLED"))
ref_dram_3x_clk_period=(time2_r2-time1_r2)/(3);
ref_dram_3x_clk_period=(time2_r2-time1_r2)/(3*2);
forever begin #(ref_dram_3x_clk_period/2) ref_dram_3x_clk_reg = ~ref_dram_3x_clk_reg; end
assign dram_3x_clk = ref_dram_3x_clk_reg ;
integer ref_dram_2x_clk_period;
integer time1_r3, time2_r3;
// ---- Clock Generator for FBD Channel clock ; dr_clk X 2 (linkclk) -----
@ (posedge `CCU.ccu_rst_sync_stable);
if ($test$plusargs("DTM_ENABLED"))
ref_dram_2x_clk_period=(time2_r3-time1_r3)/(2);
ref_dram_2x_clk_period=(time2_r3-time1_r3)/(2*2);
forever begin #(ref_dram_2x_clk_period/2) ref_dram_2x_clk_reg = ~ref_dram_2x_clk_reg; end
assign dram_2x_clk = ref_dram_2x_clk_reg ;