// ========== Copyright Header Begin ==========================================
// OpenSPARC T2 Processor File: n2_core_pll_cust.v
// 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 ============================================
// ------------------------------------------------------------------
// Tuesday Sep 20,2005 at 06:09:15 PM PDT
// Directory: /import/n2-emir5/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_cust/netlists
// /import/datools/release/tools/sno,1.2.10 \
// -CELL n2_core_pll_cust \
// -LIB n2_core_pll_cust_l \
// -AUDITFILE /import/n2-emir5/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_cust/verification/audit/n2_core_pll_cust.sno.audit
// ------------------------------------------------------------------
// some preprocessors imported from rtl for convenience - mh157021
// define clock stretch amount
`define PLL_BASE_STR_AMT 40
// enable for pll to track feedback
// ***WARNING!!!!*** Make sure timescale is set to 1 xs / 1xs
// ***WARNING!!!!*** The feedback tracking mechanism relies on quantization
// ***WARNING!!!!*** to perform correction. Otherwise set FDBK_TRACKING to off
// `timescale 1 ps / 1 ps
// pll phase debug option
`define PLL_LOCK_CNT 3'b011
// needed to use normal cl_u1 library elements
// ==================================================================
// mh157021: PLL TOP LEVEL MODULE DEFINITION
// ==================================================================
// Last Modified: Thursday Sep 1,2005 at 10:28:18 AM PDT
// module n2_core_pll_cust(sel_l2clk_fbk ,dr_stretch_a ,pll_clk_out_l ,
// dr_clk_out_l ,pll_clamp_fltr ,dr_ext_clk ,ccu_serdes_dtm ,
// pll_char_out ,pll_sys_clk ,dr_sel_a ,pll_ext_clk ,vreg_selbg_l ,
// dr_sdel ,pll_clk_out ,l2clk ,pll_sdel ,dft_rst_a_l ,pll_char_in ,
// pll_arst_l ,vdd_hv15 ,dr_clk_out ,pll_stretch_a ,pll_sel_a ,
// pll_div4 ,pll_bypass ,pll_div3 ,pll_div1 ,pll_div2 ,
// ccu_rst_ref_buf2 ,ccu_rst_sys_clk ,pll_testmode );
// output [1:0] pll_char_out ;
// input [1:0] pll_sys_clk ;
// input [1:0] dr_sel_a ;
// input [1:0] pll_sdel ;
// input [1:0] pll_sel_a ;
// input [6:0] pll_div4 ;
// input [5:0] pll_div3 ;
// input [5:0] pll_div1 ;
// input [5:0] pll_div2 ;
// output pll_clk_out_l ;
// output ccu_rst_ref_buf2 ;
// output ccu_rst_sys_clk ;
// input pll_clamp_fltr ;
// input ccu_serdes_dtm ;
// wire pll_jtag_lock_everlose ;
// n2_core_pll_inv_32x_cust pll_clk_inv_inst ( // missing instance - mh157021
// .out (pll_clk_out_l ),
// n2_core_pll_inv_32x_cust dr_clk_inv_inst ( // missing instance - mh157021
// n2_core_pll_vco_sum_cust x2 (
// .cktree_drv (vco_out ),
// n2_core_pll_vdd_xing_buf_4x_cust x3 (
// .in (pll_clamp_fltr ) );
// n2_core_pll_m1_cust x4 (
// .vdd_reg (vdd_reg ) );
// n2_core_pll_inv_100x_cust x5 (
// n2_core_pll_tpm3_all_cust x6 (
// .pll_div3 ({pll_div3 } ),
// .pll_sdel ({pll_sdel } ),
// .pll_sel_a ({pll_sel_a } ),
// .dr_sdel ({dr_sdel } ),
// .dr_sel_a ({dr_sel_a } ),
// .pll_div4 ({pll_div4 } ),
// .pll_stretch_a (pll_stretch_a ),
// .ccu_serdes_dtm (ccu_serdes_dtm ),
// .dr_ext_clk (dr_ext_clk ),
// .pll_clk_out_l (net0132 ),
// .pll_bypass_clk_en (pll_bypass ),
// .pll_arst_l (timed_pll_arst_l), // worked around non-deterministic reset - mh157021
// .dr_clk_out (dr_clk ),
// .pll_bypass_clk (bypass_clk ),
// .pll_clk_out (net0144 ),
// .dr_clk_out_l (net0131 ),
// .dr_stretch_a (dr_stretch_a ),
// .pll_testmode (pll_testmode ),
// .dc_clk (dc_clk), // unused -same polarity as volb
// .vco8_clk (vco8_clk ),
// .vco2_clk (vco2_clk ),
// .pll_ext_clk (pll_ext_clk ),
// .dft_rst_a_l (dft_rst_a_l ) );
// .i50n ({net0210[0] ,net0210[1] ,net0210[2] ,net0210[3] ,
// net0210[4] ,net0210[5] ,net0210[6] ,net0210[7] ,net0210[8] ,
// .v1p1reg_lowv (vdd_reg ),
// .vdd_hv15 (vdd_hv15 ),
// .selbg_l (vreg_selbg_l ) );
// n2_core_pll_inv_1x_cust x8 (
// n2_core_pll_vdd_xing_buf_4x_cust x9 (
// n2_core_pll_charc_cust xcharc (
// .pll_charc_out ({pll_char_out } ),
// .arst_l (pll_arst_l ),
// .testmode (pll_testmode ),
// .dr_clk_out (dr_clk ),
// .ccu_rst_ref_buf2 (ccu_rst_ref_buf2 ),
// .ccu_rst_sys_clk (ccu_rst_sys_clk ),
// .lock (pll_lock_dyn ),
// .pll_charc_in (pll_char_in ),
// .l1clk (l1clk_buf ) );
// n2_core_pll_inv_100x_cust x10 (
// n2_core_pll_pad_cluster_cust x11 (
// .pll_sys_clk ({pll_sys_clk } ),
// .vdd_hv15 (vdd_hv15 ) );
// n2_core_pll_vrr_cust x0 (
// .clamp_fltr (net0172 ),
// .pfd_reset (pfd_reset ) );
// n2_core_pll_pecl_all_cust x1 (
// .pll_div1 ({pll_div1 } ),
// .pll_div2 ({pll_div2 } ),
// .pll_sys_clk ({pll_sys_clk } ),
// .pll_clamp_fltr (net0172 ),
// .pll_lock_pulse (pll_lock_pulse ),
// .slow_buf (slow_buf ),
// .pll_jtag_lock_everlose (pll_jtag_lock_everlose ),
// .pll_lock_dyn (pll_lock_dyn ),
// .raw_clk_byp (bypass_clk ),
// .fast_buf (fast_buf ),
// .testmode (sel_l2clk_fbk ),
// .pll_arst_l (pll_arst_l ),
// .pll_bypass_clk_en (pll_bypass), // missing connectivity - mh157021
// .l1clk_buf (l1clk_buf ),
// .pfd_reset (pfd_reset ),
// imaginary_timed_rst imaginary_timed_rst ( // added timed reset to resolve d3 reset issue - mh157021
// .pll_arst_l (pll_arst_l),
// .timed_pll_arst_l (timed_pll_arst_l)
module n2_core_pll_cust(sel_l2clk_fbk ,dr_stretch_a ,pll_clk_out_l ,
dr_clk_out_l ,pll_clamp_fltr ,dr_ext_clk ,ccu_serdes_dtm ,
pll_char_out ,pll_sys_clk ,dr_sel_a ,pll_ext_clk ,vreg_selbg_l ,
dr_sdel ,pll_clk_out ,l2clk ,pll_sdel ,dft_rst_a_l ,pll_char_in ,
pll_arst_l ,vdd_hv15 ,dr_clk_out ,pll_stretch_a ,pll_sel_a ,
pll_div4 ,pll_bypass ,pll_div3 ,pll_div1 ,pll_div2 ,
ccu_rst_ref_buf2 ,ccu_rst_sys_clk ,pll_testmode );
output [1:0] pll_char_out ;
input [1:0] pll_sys_clk ;
output ccu_rst_ref_buf2 ;
wire pll_jtag_lock_everlose ;
n2_core_pll_vco_sum_cust x2 (
//n2_core_pll_vdd_xing_buf_4x_cust x3 (
// .in (pll_clamp_fltr ) );
//n2_core_pll_m1_cust x4 (
// .vdd_reg (vdd_reg ) );
n2_core_pll_inv_100x_cust x5 (
n2_core_pll_tpm3_all_cust x6 (
.pll_div3 ({pll_div3 } ),
.pll_sdel ({pll_sdel } ),
.pll_sel_a ({pll_sel_a } ),
.dr_sel_a ({dr_sel_a } ),
.pll_div4 ({pll_div4 } ),
.pll_stretch_a (pll_stretch_a ),
.ccu_serdes_dtm (ccu_serdes_dtm ),
.dr_ext_clk (dr_ext_clk ),
.pll_clk_out_l (net0132 ),
.pll_bypass_clk_en (pll_bypass ),
// .pll_arst_l (pll_arst_l ),
.pll_arst_l (timed_pll_arst_l), // worked around non-deterministic reset - mh157021
.pll_bypass_clk (bypass_clk ),
.dr_clk_out_l (net0131 ),
.dr_stretch_a (dr_stretch_a ),
.pll_testmode (pll_testmode ),
.pll_ext_clk (pll_ext_clk ),
.dft_rst_a_l (dft_rst_a_l ) );
// .i50n ({net0210[0] ,net0210[1] ,net0210[2] ,net0210[3] ,
// net0210[4] ,net0210[5] ,net0210[6] ,net0210[7] ,net0210[8] ,
// .v1p1reg_lowv (vdd_reg ),
// .vdd_hv15 (vdd_hv15 ),
// .selbg_l (vreg_selbg_l ) );
// .TERM (net0210[6] ) );
n2_core_pll_inv_1x_cust x8 (
n2_core_pll_vdd_xing_buf_4x_cust x9 (
n2_core_pll_charc_cust xcharc (
.pll_charc_out ({pll_char_out } ),
.ccu_rst_ref_buf2_l (net0139 ),
.testmode (pll_testmode ),
.ccu_rst_sys_clk (ccu_rst_sys_clk ),
.pll_charc_in (pll_char_in ),
// .TERM (net0210[5] ) );
n2_core_pll_inv_100x_cust x10 (
//n2_core_pll_pad_cluster_cust x11 (
// .pll_sys_clk ({pll_sys_clk } ),
// .vdd_hv15 (vdd_hv15 ) );
// .TERM (pll_lock_pulse ) );
//n2_core_pll_inv_1x_cust x12 (
//n2_core_pll_inv_1x_cust x13 (
n2_core_pll_inv_32x_cust x14 (
n2_core_pll_inv_32x_cust x15 (
n2_core_pll_inv_4x_cust x16 (
n2_core_pll_inv_8x_cust x17 (
n2_core_pll_inv_32x_cust x18 (
.out (ccu_rst_ref_buf2 ),
// .TERM (net0210[4] ) );
// .TERM (net0210[3] ) );
// .TERM (pll_jtag_lock_everlose ) );
// .TERM (net0210[2] ) );
// .TERM (net0210[9] ) );
// .TERM (net0210[1] ) );
// .TERM (net0210[8] ) );
// .TERM (net0210[0] ) );
// .TERM (net0210[7] ) );
//n2_core_pll_vrr_cust x0 (
// .clamp_fltr (net0114 ),
// .pfd_reset (pfd_reset ) );
n2_core_pll_pecl_all_cust x1 (
.pll_div1 ({pll_div1 } ),
.pll_div2 ({pll_div2 } ),
.pll_sys_clk ({pll_sys_clk } ),
.pll_clamp_fltr (net0114 ),
.pll_lock_pulse (pll_lock_pulse ),
.pll_bypass_clk_en (pll_bypass ),
.ccu_serdes_dtm (ccu_serdes_dtm ),
.pll_jtag_lock_everlose (pll_jtag_lock_everlose ),
.pll_lock_dyn (pll_lock_dyn ),
.raw_clk_byp (bypass_clk ),
.testmode (sel_l2clk_fbk ),
.pll_arst_l (pll_arst_l ),
imaginary_timed_rst imaginary_timed_rst ( // added timed reset to resolve d3 reset issue - mh157021
.pll_arst_l (pll_arst_l),
.timed_pll_arst_l (timed_pll_arst_l)
// ==================================================================
// mh157021: PLL LOWER LEVEL MODULE DEFINITIONS
// ==================================================================
// mh157021: instance #0 (n2_core_pll_vco_sum_cust)
// Last Modified: Friday Aug 26,2005 at 03:22:07 PM PDT
// module n2_core_pll_vco_sum_cust(cktree_drv ,vco_clk ,vdd_reg ,vco_out ,
// slow ,slow_l ,fast ,fltr ,fast_l );
module n2_core_pll_vco_sum_cust(dc_clk,volb,vdd_reg,
slow ,slow_l ,fast ,fltr ,fast_l );
// mh157021: implemented as a dummy mod if needed
// mh157021: instance #1, #7 (n2_core_pll_vdd_xing_buf_4x_cust)
// Last Modified: Friday Aug 26,2005 at 03:22:12 PM PDT
module n2_core_pll_vdd_xing_buf_4x_cust(vdd_reg ,out ,in );
// mh157021: instance #2 (n2_core_pll_m1_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:48 PM PDT
module n2_core_pll_m1_cust(vdd_reg );
// mh157021: instance #3, #9 (n2_core_pll_inv_100x_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:26 PM PDT
module n2_core_pll_inv_100x_cust(vdd_reg ,out ,in );
// mh157021: instance #5 (n2_vreg_cust)
// Last Modified: Friday Aug 26,2005 at 03:22:43 PM PDT
module n2_vreg_cust(v1p1reg_lowv ,vdd_hv15 ,vref ,vrefb ,i50n ,selbg_l
assign v1p1reg_lowv = 1'b1;
// mh157021: instance #8 (n2_core_pll_charc_cust)
module n2_core_pll_charc_cust(arst_l ,ccu_rst_ref_buf2_l ,testmode ,
dr_clk_out ,ccu_rst_sys_clk ,lock ,pll_charc_out ,fb_clk_l ,
pll_charc_in ,ref_clk_l ,fast ,slow ,ref ,fb ,vco_clk ,l1clk );
output [1:0] pll_charc_out ;
output ccu_rst_ref_buf2_l ;
n2_core_pll_div4_new_cust x2 (
.clk_div_out (l1clk_vcoclk_div4 ) );
n2_core_pll_charc_decoder_cust x3 (
.a6_out ({a6_1 ,a6_0 } ),
n2_core_pll_mux8_8x_cust x4 (
n2_core_pll_mux2_8x_cust x5 (
n2_core_pll_mux2_8x_cust x6 (
n2_core_pll_mux2_8x_cust x7 (
n2_core_pll_buf_16x_cust x42_7_ (
n2_core_pll_buf_16x_cust x44_3_ (
n2_core_pll_buf_16x_cust x42_0_ (
n2_core_pll_buf_16x_cust x44_4_ (
n2_core_pll_4bit_counter_charc_cust x12 (
n2_core_pll_4bit_counter_charc_cust x15 (
n2_core_pll_charc_flops_cust x16 (
.clk_l (l1clk_vcoclk_l ),
.clk_fall4 (clk_fall4 ) );
n2_core_pll_charc_mux_cust x17 (
n2_core_pll_buf_16x_cust x42_1_ (
n2_core_pll_buf_16x_cust x44_5_ (
n2_core_pll_buf_16x_cust x42_2_ (
n2_core_pll_buf_16x_cust x44_6_ (
n2_core_pll_inv_16x_cust x34 (
n2_core_pll_buf_16x_cust x35 (
n2_core_pll_buf_16x_cust x36 (
n2_core_pll_inv_16x_cust x37 (
n2_core_pll_inv_16x_cust x38 (
n2_core_pll_inv_32x_cust x39 (
.out (pll_charc_out[1] ),
n2_core_pll_buf_16x_cust x42_3_ (
n2_core_pll_buf_16x_cust x44_7_ (
n2_core_pll_inv_32x_cust x40 (
.out (pll_charc_out[0] ),
n2_core_pll_inv_2x_cust x41 (
n2_core_pll_buf_16x_cust x43 (
n2_core_pll_inv_32x_cust x46 (
.out (ccu_rst_ref_buf2_l ),
n2_core_pll_inv_32x_cust x47 (
n2_core_pll_inv_16x_cust x48 (
n2_core_pll_buf_16x_cust x42_4_ (
n2_core_pll_buf_16x_cust x44_0_ (
n2_core_pll_buf_16x_cust x44_8_ (
n2_core_pll_buf_16x_cust x42_5_ (
n2_core_pll_buf_16x_cust x44_1_ (
n2_core_pll_buf_16x_cust x44_9_ (
n2_core_pll_buf_16x_cust x42_6_ (
n2_core_pll_buf_16x_cust x44_2_ (
n2_core_pll_flop_reset_new_cust x0 (
n2_core_pll_mux8_8x_cust x1 (
// mh157021: instance #10 (n2_core_pll_pad_cluster_cust)
// Last Modified: Friday Aug 26,2005 at 03:21:04 PM PDT
module n2_core_pll_pad_cluster_cust(vdd_hv15 ,pll_sys_clk );
input [1:0] pll_sys_clk ;
// mh157021: instance #11 (n2_core_pll_vrr_cust)
// Last Modified: Friday Aug 26,2005 at 03:22:17 PM PDT
module n2_core_pll_vrr_cust(vdd_reg ,fltr_nw ,reset ,fb ,div8 ,div4 ,
div_ck ,vrr_disbl ,clamp_fltr ,pfd_reset );
// mh157021: instance #12 (n2_core_pll_pecl_all_cust)
module n2_core_pll_pecl_all_cust(regdivcr ,ref_ck ,slow_l ,fast ,fast_l
,pll_clamp_fltr ,pll_lock_pulse ,vdd_reg ,fb_ck ,pll_bypass_clk_en
,ccu_serdes_dtm ,l2clk ,slow ,slow_buf ,pll_jtag_lock_everlose ,
pll_lock_dyn ,raw_clk_byp ,fast_buf ,l2clkc ,testmode ,pll_arst_l ,
pll_div1 ,pll_div2 ,ref ,fb ,pll_sys_clk ,l1clk_buf ,pfd_reset ,
input [1:0] pll_sys_clk ;
output pll_jtag_lock_everlose ;
input pll_bypass_clk_en ;
n2_core_pll_pecl_bypass_clk_cust x2 (
.pecl_p (pll_sys_clk[0] ),
.pecl_n (pll_sys_clk[1] ) );
//n2_core_pll_inv_8x_cust x3 (
// .TERM (net0142[0] ) );
//n2_core_pll_inv_16x_cust x4 (
//n2_core_pll_inv_8x_cust x5 (
//n2_core_pll_inv_8x_cust x6 (
n2_core_pll_delay_cust xdel1 (
//n2_core_pll_inv_4x_cust x7 (
n2_core_pll_tpm_cust x8 (
.op ({net0142[0] ,net0142[1] ,net0142[2] ,net0142[3] ,
net0142[4] ,net0142[5] } ),
n2_core_pll_inv_16x_cust x9 (
n2_core_pll_inv_8x_cust x1_1_ (
// .TERM (net0111[5] ) );
//n2_core_pll_inv_4x_cust x10 (
//n2_core_pll_inv_32x_cust x11 (
n2_core_pll_pecl_enb_cust x12 (
.enb0 (pll_bypass_clk_en ) );
n2_core_pll_inv_16x_cust x13 (
//n2_core_pll_buf_4x_cust x14 (
n2_core_pll_buf_4x_cust x15 (
n2_core_pll_vdd_xing_buf_32x_cust x16 (
n2_core_pll_vdd_xing_buf_32x_cust x17 (
// .TERM (net0111[4] ) );
n2_core_pll_vdd_xing_buf_4x_cust x18 (
n2_core_pll_inv_16x_cust x19 (
// .TERM (net0142[5] ) );
// .TERM (net0111[3] ) );
n2_core_pll_pecl_cust xpcl (
.pecl_p (pll_sys_clk[0] ),
.pecl_n (pll_sys_clk[1] ),
// .TERM (net0142[4] ) );
// .TERM (net0111[2] ) );
n2_core_pll_tpm_cust xd1 (
.op ({net0111[0] ,net0111[1] ,net0111[2] ,net0111[3] ,
net0111[4] ,net0111[5] } ),
// .TERM (net0142[3] ) );
// .TERM (net0111[1] ) );
n2_core_pll_se2diff_mux_cust xil1clk_hdr (
//n2_core_pll_pfd_cust xpfd (
// .clamp_fltr (pll_clamp_fltr ),
// .pfd_reset (pfd_reset ),
// .TERM (net0142[2] ) );
// .TERM (net0111[0] ) );
// .TERM (net0142[1] ) );
n2_core_pll_inv_8x_cust x1_0_ (
//n2_core_pll_cp_cust xcp (
//n2_core_pll_lockdet_cust x0 (
// .pll_jtag_lock_everlose (pll_jtag_lock_everlose ),
// .pll_lock_dyn (net0124 ),
// .pll_lock_pulse (pll_lock_pulse ),
// .ref_ck (ref_ck_lock ) );
imaginary_vco_gen imaginary_vco_gen (
.pll_arst_l (pll_arst_l),
.div ({pll_div2[4:0], 1'b1}), // x2 since D3 == 2 (eff) always
// mh157021: lower level module definition (n2_core_pll_inv_2x_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:31 PM PDT
module n2_core_pll_inv_2x_cust(vdd_reg ,out ,in );
// mh157021: lower level module definition (n2_core_pll_mux2_8x_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:51 PM PDT
module n2_core_pll_mux2_8x_cust(in0 ,sel0 ,dout ,sel1 ,in1 );
// mh157021: lower level module definition (mux2)
module mux2 (in0,in1,sel0,sel1,y);
always @(sel0 or sel1 or in0 or in1)
// mh157021: lower level module definition (n2_core_pll_mux8_8x_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:53 PM PDT
module n2_core_pll_mux8_8x_cust(sel0 ,in2 ,sel2 ,sel5 ,in4 ,sel7 ,sel4 ,
in1 ,dout ,in0 ,sel6 ,in5 ,in7 ,sel3 ,sel1 ,in3 ,in6 );
.muxtst (1'b0), // compile warning - mh157021
.dout (dout) ); // compile error ".y (dout)" - mh157021
// mh157021: lower level module definition (n2_core_pll_charc_decoder_cust)
// Last Modified: Friday Aug 26,2005 at 03:19:12 PM PDT
module n2_core_pll_charc_decoder_cust(a5_out ,a6_out ,a6 ,a5 ,a3a4 ,a4 ,
a3 ,aoa1a2 ,a2 ,a1 ,a0 );
n2_core_pll_and3_16x_cust x2 (
n2_core_pll_and3_16x_cust x3 (
n2_core_pll_inv_4x_cust x4 (
n2_core_pll_inv_4x_cust x5 (
n2_core_pll_buf_16x_cust x6 (
n2_core_pll_buf_16x_cust x7 (
n2_core_pll_and3_16x_cust x8 (
n2_core_pll_and3_16x_cust x9 (
n2_core_pll_and3_16x_cust x10 (
n2_core_pll_and3_16x_cust x11 (
n2_core_pll_and2_16x_cust x12 (
n2_core_pll_and2_16x_cust x13 (
n2_core_pll_buf_16x_cust x14 (
n2_core_pll_buf_16x_cust x15 (
n2_core_pll_buf_16x_cust x16 (
n2_core_pll_buf_16x_cust x17 (
n2_core_pll_buf_16x_cust x18 (
n2_core_pll_inv_4x_cust x19 (
n2_core_pll_inv_4x_cust x20 (
n2_core_pll_buf_16x_cust x21 (
n2_core_pll_buf_16x_cust x22 (
n2_core_pll_buf_16x_cust x23 (
n2_core_pll_inv_4x_cust x24 (
n2_core_pll_buf_16x_cust x25 (
n2_core_pll_and2_16x_cust x26 (
n2_core_pll_and2_16x_cust x27 (
n2_core_pll_buf_16x_cust x28 (
n2_core_pll_buf_16x_cust x39 (
n2_core_pll_buf_16x_cust x40 (
n2_core_pll_inv_4x_cust x41 (
n2_core_pll_inv_4x_cust x42 (
n2_core_pll_and3_16x_cust x0 (
n2_core_pll_and3_16x_cust x1 (
// mh157021: lower level module definition (n2_core_pll_charc_flops_cust)
// Last Modified: Friday Aug 26,2005 at 03:19:13 PM PDT
module n2_core_pll_charc_flops_cust(data_in ,clk ,clk_l ,clk_rise1 ,
clk_fall1 ,clk_rise2 ,clk_fall2 ,reset ,clk_rise4 ,clk_rise3 ,
n2_core_pll_flop_reset_new_1x_cust x2 (
n2_core_pll_flop_reset_new_1x_cust x3 (
n2_core_pll_flop_reset_new_1x_cust x4 (
n2_core_pll_flop_reset_new_1x_cust x5 (
n2_core_pll_flop_reset_new_1x_cust x6 (
n2_core_pll_flop_reset_new_1x_cust x7 (
n2_core_pll_flop_reset_new_1x_cust x8 (
n2_core_pll_flop_reset_new_1x_cust x9 (
n2_core_pll_flop_reset_new_1x_cust x10 (
n2_core_pll_flop_reset_new_1x_cust x11 (
n2_core_pll_bufi_4x_cust x12 (
n2_core_pll_bufi_4x_cust x13 (
n2_core_pll_bufi_4x_cust x14 (
n2_core_pll_bufi_4x_cust x15 (
n2_core_pll_bufi_4x_cust x17 (
n2_core_pll_bufi_4x_cust x18 (
n2_core_pll_bufi_4x_cust x19 (
n2_core_pll_bufi_4x_cust x20 (
n2_core_pll_bufi_4x_cust x21 (
n2_core_pll_bufi_4x_cust x22 (
n2_core_pll_bufi_4x_cust x23 (
n2_core_pll_bufi_4x_cust x24 (
n2_core_pll_buf_16x_cust x33 (
n2_core_pll_flop_reset_new_cust x34 (
n2_core_pll_flop_reset_new_cust x35 (
n2_core_pll_flop_reset_new_cust x37 (
n2_core_pll_flop_reset_new_cust x38 (
n2_core_pll_flop_reset_new_cust x41 (
n2_core_pll_flop_reset_new_cust x42 (
n2_core_pll_flop_reset_new_cust x49 (
n2_core_pll_flop_reset_new_cust x50 (
n2_core_pll_flop_reset_new_1x_cust x0 (
n2_core_pll_flop_reset_new_1x_cust x1 (
// mh157021: lower level module definition (n2_core_pll_charc_mux_cust)
// Last Modified: Friday Aug 26,2005 at 03:19:16 PM PDT
module n2_core_pll_charc_mux_cust(clk_fall2 ,clk_fall3 ,clk_fall4 ,
clk_fall1 ,clk_rise3 ,clk_rise2 ,clk_rise4 ,clk_rise1 ,mux_out1 ,
mux_out2 ,a3a4_ ,aoa1a2_ );
n2_core_pll_mux4_8x_cust x18 (
n2_core_pll_mux4_8x_cust x19 (
n2_core_pll_mux8_8x_cust x20 (
n2_core_pll_mux8_8x_cust x21 (
n2_core_pll_mux4_8x_cust x22 (
n2_core_pll_mux4_8x_cust x23 (
n2_core_pll_mux4_8x_cust x24 (
n2_core_pll_mux4_8x_cust x25 (
n2_core_pll_mux4_8x_cust x26 (
n2_core_pll_mux4_8x_cust x27 (
n2_core_pll_mux4_8x_cust x28 (
n2_core_pll_mux4_8x_cust x29 (
n2_core_pll_mux4_8x_cust x30 (
n2_core_pll_mux4_8x_cust x31 (
n2_core_pll_mux4_8x_cust x32 (
n2_core_pll_mux4_8x_cust x33 (
n2_core_pll_mux4_8x_cust x34 (
n2_core_pll_mux4_8x_cust x35 (
// mh157021: lower level module definition (n2_core_pll_mux4_8x_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:52 PM PDT
module n2_core_pll_mux4_8x_cust(sel2 ,sel3 ,in2 ,in3 ,sel0 ,sel1 ,dout ,
.muxtst (1'b0), // compile warning - mh157021
.dout (dout) ); // compile error ".y (dout)" - mh157021
// mh157021: lower level module definition (n2_core_pll_div4_new_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:16 PM PDT
module n2_core_pll_div4_new_cust(clk ,arst_l ,clk_div_out );
n2_core_pll_inv_8x_cust x2 (
n2_core_pll_flop_reset_new_cust x4 (
n2_core_pll_flop_reset_new_cust x5 (
n2_core_pll_flop_reset_new_cust x6 (
n2_core_pll_buf_2x_cust x9 (
n2_core_pll_buf_2x_cust x10 (
n2_core_pll_buf_2x_cust x11 (
n2_core_pll_buf_2x_cust x0 (
n2_core_pll_inv_32x_cust x1 (
// mh157021: lower level module definition (n2_core_pll_and2_16x_cust)
// Last Modified: Friday Aug 26,2005 at 03:18:55 PM PDT
module n2_core_pll_and2_16x_cust(out ,in1 ,in0 );
// mh157021: lower level module definition (n2_core_pll_and3_16x_cust)
// Last Modified: Friday Aug 26,2005 at 03:18:56 PM PDT
module n2_core_pll_and3_16x_cust(out ,in2 ,in1 ,in0 );
assign out = (in0 & in1 & in2);
// mh157021: lower level module definition (n2_core_pll_bufi_4x_cust)
// Last Modified: Friday Aug 26,2005 at 03:19:07 PM PDT
module n2_core_pll_bufi_4x_cust(vdd_reg ,out ,in );
// Last Modified: Friday Aug 26,2005 at 03:18:51 PM PDT
module n2_core_pll_4bit_counter_charc_cust(clk ,reset ,cnt3 ,qout_0 ,
qout_1 ,qout_2 ,qout_3 ,count_out ,cnt1 ,cnt2 ,cnt0 );
n2_core_pll_flop_reset_new_cust x2 (
n2_core_pll_tpm_muxa_cust x3 (
n2_core_pll_flop_reset_new_cust x4 (
n2_core_pll_flop_reset_new_cust x5 (
n2_core_pll_tpm_muxa_cust x6 (
n2_core_pll_tpm_muxa_cust x7 (
n2_core_pll_tpm_muxa_cust x8 (
n2_core_pll_inv_8x_cust x13 (
n2_core_pll_inv_8x_cust x14 (
n2_core_pll_buf_8x_cust x15 (
n2_core_pll_inv_4x_cust x16 (
n2_core_pll_nand4_4x_cust x18 (
n2_core_pll_flop_reset_new_cust x0 (
n2_core_pll_4bit_counter_next_cust x1 (
// Last Modified: Friday Aug 26,2005 at 03:20:59 PM PDT
module n2_core_pll_nand4_4x_cust(in3 ,out ,in2 ,in1 ,in0 );
assign out = ~(in0 & in1 & in2 & in3);
// Last Modified: Friday Aug 26,2005 at 03:20:19 PM PDT
module n2_core_pll_flop_reset_new_1x_cust(vdd_reg ,reset_val_l ,d ,reset
@( posedge clk or posedge reset )
// Last Modified: Tuesday Sep 6,2005 at 02:50:02 PM PDT
module n2_core_pll_4bit_counter_next_cust(q3 ,q0b ,q3b ,d3 ,q1b ,q2b ,d2
// Last Modified: Friday Aug 26,2005 at 03:21:53 PM PDT
module n2_core_pll_tpm_muxa_cust(opb ,op ,d0 ,d1 ,sel ,sel_b );
// Last Modified: Friday Aug 26,2005 at 03:21:16 PM PDT
module n2_core_pll_pecl_cust(vdd_reg ,fb_ck ,pecl_p ,pecl_n ,hdr_p ,
// Last Modified: Friday Aug 26,2005 at 03:21:12 PM PDT
module n2_core_pll_pecl_bypass_clk_cust(phase_ck ,pecl_p ,pecl_n );
assign phase_ck = pecl_p; // pecl buffer model - mh157021
// Last Modified: Friday Aug 26,2005 at 03:21:24 PM PDT
module n2_core_pll_pfd_cust(vdd_reg ,f_buf ,f_buf_l ,fast_l ,clamp_fltr
,s_buf ,s_buf_l ,slow_l ,slow ,fast ,pfd_reset ,fb ,ref );
// Last Modified: Friday Aug 26,2005 at 03:21:38 PM PDT
module n2_core_pll_se2diff_mux_cust(vdd_reg ,in1 ,sel ,out ,in0 ,out_l
assign out = sel ? in1 : in0;
// Last Modified: Friday Aug 26,2005 at 03:22:10 PM PDT
module n2_core_pll_vdd_xing_buf_32x_cust(vdd_reg ,out ,in );
// Last Modified: Friday Aug 26,2005 at 03:21:47 PM PDT
module n2_core_pll_tpm_cust(reset ,ip ,vdd_reg ,op ,sel ,div_ck_i ,
pwr_rst ,div_ck ,vco_ck );
n2_core_pll_buf_4x_cust x2 (
n2_core_pll_buf_16x_cust x4 (
n2_core_pll_tpm_mux_cust x5 (
n2_core_pll_buf_8x_cust x6 (
n2_core_pll_inv_8x_cust x7 (
n2_core_pll_buf_4x_cust x8 (
n2_core_pll_buf_4x_cust x9 (
n2_core_pll_buf_4x_cust x10 (
n2_core_pll_buf_4x_cust x11 (
n2_core_pll_buf_4x_cust x12 (
n2_core_pll_buf_8x_cust x13 (
n2_core_pll_buf_8x_cust x14 (
n2_core_pll_buf_8x_cust x15 (
n2_core_pll_tpm_next_new_cust x16 (
n2_core_pll_tpm_mux_cust x17 (
n2_core_pll_buf_8x_cust x18 (
n2_core_pll_buf_8x_cust x19 (
n2_core_pll_buf_8x_cust x20 (
n2_core_pll_tpm_mux_cust x23 (
n2_core_pll_flop_reset_new_cust x24 (
n2_core_pll_flop_reset_new_cust x25 (
n2_core_pll_tpm_mux_cust x27 (
n2_core_pll_tpm_mux_cust x28 (
n2_core_pll_tpm_mux_cust x29 (
n2_core_pll_flop_reset_new_cust x30 (
n2_core_pll_inv_32x_cust x31 (
n2_core_pll_flop_reset_new_cust x32 (
n2_core_pll_flop_reset_new_cust x33 (
n2_core_pll_flop_reset_new_cust x34 (
n2_core_pll_flop_reset_new_cust x35 (
n2_core_pll_flop_reset_new_cust x36 (
n2_core_pll_flop_reset_new_cust x37 (
n2_core_pll_flop_reset_new_cust x38 (
n2_core_pll_flop_reset_new_cust x39 (
n2_core_pll_tpm_zd1_cust x40 (
n2_core_pll_inv_8x_cust x41 (
n2_core_pll_flop_reset_new_cust x42 (
n2_core_pll_flop_reset_new_cust x43 (
n2_core_pll_flop_reset_new_cust x44 (
n2_core_pll_tpm_mux_cust x47 (
n2_core_pll_tpm_mux_cust x48 (
n2_core_pll_tpm_nzd_cust x49 (
n2_core_pll_tpm_mux_cust x50 (
n2_core_pll_tpm_mux_cust x51 (
n2_core_pll_tpm_mux_cust x52 (
n2_core_pll_tpm_mux_cust x53 (
n2_core_pll_tpm_gate_new_cust x0 (
n2_core_pll_inv_4x_cust x1 (
// Last Modified: Friday Aug 26,2005 at 03:19:30 PM PDT
module n2_core_pll_cp_cust(slow_l ,vdd_reg ,slow ,fast ,fast_l ,fltr );
// Last Modified: Friday Aug 26,2005 at 03:20:12 PM PDT
module n2_core_pll_delay_cust(vdd_reg ,out_delcr ,in ,out_del );
assign #1 out_delcr = ~in;
// Last Modified: Friday Aug 26,2005 at 03:21:49 PM PDT
module n2_core_pll_tpm_gate_new_cust(r_b ,vdd_reg ,div_ck ,r ,ck ,f );
// special divider modeling - kc
always @(ck or r or f or div_ck) begin
else if (ck && ~r && div_ck)
// Last Modified: Friday Aug 26,2005 at 03:20:47 PM PDT
module n2_core_pll_lockdet_cust(pll_jtag_lock_everlose ,l1clk ,
pll_lock_dyn ,reset_in ,slow ,fast ,pll_lock_pulse ,ref_ck );
output pll_jtag_lock_everlose ;
// wrapper for pll_core - mh157021
module imaginary_vco_gen (
// latch the divider value on falling edge of rst
always @(pll_arst_l or div) begin
// zero out sysclk until pll_arst_l is high
always @(pll_arst_l or sysclk) begin
assign sysclk_gated = rst_lat & sysclk;
assign sysclk_gated = sysclk;
.pll_arst_l (pll_arst_l),
// heart of frequency multiplication; imported from rtl model - mh157021
// *************************
// input/output declaration
// *************************
// synopsys translate_off
// *************************
// *************************
wire [6:0] mult = div + 1'b1;
wire [6:0] mult2x = {mult[5:0],1'b0};
#0 adj_delay = 0; // initialization
#0 pulse_cnt = 2; // initialization
// ************************************
// ************************************
// extract period of ref clk, and vco clk
always @ ( posedge sysclk ) begin
ref_per = t1 - t0; // get reference period [ps]
vco_per = ref_per / (div+1'b1); // vco period [ps]
vco_hi_ph = ref_per/(mult2x);
vco_lo_ph = vco_per - vco_hi_ph;
qnt_err = ref_per - (vco_hi_ph+vco_lo_ph)*mult;
// generate vco tmp clk - direct multiplication
always @ ( posedge sysclk ) begin
// OLD CODE THAT HAD DUTY CYCLE PROBLEMS
for ( j = 1; j < pulse_cnt; j = j+1 ) begin
#(vco_per/2) vco_tmp = 1'b0;
#(vco_per/2) vco_tmp = 1'b1;
#(vco_hi_ph) vco_tmp = 1'b0; // for remaining part of cycle
// DUTY CYCLE CORRECTOR (ONLY FOR EVEN DIVIDERS)
for ( j = 1; j < mult; j = j+1 ) begin
#(vco_hi_ph) vco_tmp = 1'b0;
if ((j == (mult >> 1)) && (qnt_err != 0)) // internal multiplier for N2 is always even
#(vco_lo_ph) vco_tmp = 1'b1;
#(vco_hi_ph) vco_tmp = 1'b0; // for remaining part of cycle
// *****************************************
// PH MEASURMENT & TRACKING
// *****************************************
// measure phase offset between fdbkclk & vco_tmp
always @ ( posedge vco_tmp or negedge pll_arst_l ) begin
posedge_vco_tmp = $realtime;
posedge_fdbkclk = $realtime;
insdelay = posedge_fdbkclk - posedge_vco_tmp;
ph_offset = (360 * insdelay)/vco_per;
if (ph_offset != ph_offset_past)
$display ("phase offset changed changed from %d to %d degrees",
ph_offset_past, ph_offset );
ph_offset_past = ph_offset;
while (vco_per <= insdelay)
insdelay = insdelay - vco_per ;
adj_delay = vco_per - insdelay;
// switch over to phase locked version so that
// vco_out + global tree delay lines up with
assign vco_out = locked? vco_shift : vco_tmp;
always @ (negedge sysclk or negedge pll_arst_l ) begin
if (lock_cnt == `PLL_LOCK_CNT ) begin
lock_cnt <= `PLL_LOCK_CNT;
lock_cnt <= lock_cnt + 1'b1;
// need cascaded delays to account for large delays
// with respect to half-cycle of vco
// the following is guaranteed to work for all delays
always @ (vco_tmp) tmp_clk1 = #(adj_delay/4) vco_tmp;
always @ (tmp_clk1) tmp_clk2 = #(adj_delay/4) tmp_clk1;
always @ (tmp_clk2) tmp_clk3 = #(adj_delay/4) tmp_clk2;
always @ (tmp_clk3) tmp_clk4 = #(adj_delay/4) tmp_clk3;
always @ (vco_tmp) tmp_clk1 = vco_tmp;
always @ (tmp_clk1) tmp_clk2 = tmp_clk1;
always @ (tmp_clk2) tmp_clk3 = tmp_clk2;
always @ (tmp_clk3) tmp_clk4 = tmp_clk3;
assign vco_shift = tmp_clk4;
// generate timed reset to resolve d3 reset issue - mh157021
// in real pll, d3 start state does not matter since vco lock
// process will force rising edge alignment automatically
// however, for digital logic that does not simulate true lock
// need alternate scheme to fake out the auto alignment
module imaginary_timed_rst (
// count reference cycles
always @(posedge ref or negedge pll_arst_l) begin
// vco_clk is always even multiple of ref since d3=2, vco_clk = ref * d2 * d3
always @(negedge vco_clk or negedge pll_arst_l) begin
ref_pulse <= ~ref_q & ref;
// pulse converted to sticky reset release
always @(posedge vco_clk or negedge pll_arst_l) begin
t0_pll_arst_l <= t0_pll_arst_l;
// flop the reset release on negedge
always @(negedge vco_clk or negedge pll_arst_l) begin
t1_pll_arst_l <= t0_pll_arst_l;
assign timed_pll_arst_l = (pll_div2[0]) ? t0_pll_arst_l : t1_pll_arst_l;
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_clkmux_sync_cust/rtl/n2_core_pll_clkmux_sync_cust.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_clkmux_sync_cust)
// Last Modified: Friday Aug 26,2005 at 03:19:25 PM PDT
module n2_core_pll_clkmux_sync_cust(bypass_pll_clk, pll_clk ,arst ,d1 ,d2 ,d1_sync ,
d2_sync ,d0_sync ,d0 ,d3_sync ,d3 );
wire bypass_pll_clk_l= ~bypass_pll_clk; // compile error fixed - mh157021
n2_core_pll_flop_reset_new_cust x2 (
.reset_val_l (bypass_pll_clk_l),
n2_core_pll_flop_reset_new_cust x3 (
n2_core_pll_flop_reset_new_cust x4 (
n2_core_pll_flop_reset_new_cust x5 (
n2_core_pll_flop_reset_new_cust x6 (
n2_core_pll_flop_reset_new_cust x7 (
n2_core_pll_flop_reset_new_cust x8 (
n2_core_pll_flop_reset_new_cust x9 (
n2_core_pll_flop_reset_new_cust x10 (
n2_core_pll_flop_reset_new_cust x12 (
n2_core_pll_flop_reset_new_cust x13 (
n2_core_pll_flop_reset_new_cust x14 (
n2_core_pll_flop_reset_new_cust x18 (
.reset_val_l (bypass_pll_clk_l),
n2_core_pll_flop_reset_new_cust x19 (
n2_core_pll_flop_reset_new_cust x20 (
n2_core_pll_flop_reset_new_cust x21 (
.reset_val_l (bypass_pll_clk_l),
n2_core_pll_flop_reset_new_cust x22 (
.reset_val_l (bypass_pll_clk_l),
n2_core_pll_flop_reset_new_cust x23 (
n2_core_pll_clkrep_cust x24 (
n2_core_pll_flop_reset_new_cust x0 (
n2_core_pll_flop_reset_new_cust x1 (
.reset_val_l (bypass_pll_clk_l),
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_flop_reset_new_cust/rtl/n2_core_pll_flop_reset_new_cust.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_flop_reset_new_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:20 PM PDT
module n2_core_pll_flop_reset_new_cust(vdd_reg ,reset_val_l ,d ,reset ,
always @(posedge clk or posedge reset) begin
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_clkrep_cust/rtl/n2_core_pll_clkrep_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:19:28 PM PDT
module n2_core_pll_clkrep_cust(pll_clk ,clk_dly3 ,clk_dly5 ,clk_dly4 ,
assign clk_dly2=clk_dly1;
assign clk_dly3=clk_dly2;
assign clk_dly4=clk_dly3;
assign clk_dly5=clk_dly4;
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_flopderst_16x_cust/rtl/n2_core_pll_flopderst_16x_cust.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_flopderst_16x_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:22 PM PDT
module n2_core_pll_flopderst_16x_cust(q_l ,reset_val ,d ,q ,reset ,clk ,ena );
@( clk or d or reset or reset_val )
@( clk or d or reset or reset_val )
@( clk or reset or ena or reset_val )
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_ckmux_mxdel_diffout_cust/rtl/n2_core_pll_ckmux_mxdel_diffout_cust.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_ckmux_mxdel_diffout_cust)
// Last Modified: Tuesday Sep 20,2005 at 06:05:05 PM PDT
module n2_core_pll_ckmux_mxdel_diffout_cust(ckt_drv_int ,cktree_drv ,
cktree_drv_l ,pll1_clk ,sel1 ,pll2_clk ,bypass_clk ,sel3 ,d1_clk ,
n2_core_pll_clkmux_delay x0 (
.pll_sdel ({pll_sdel } ),
assign cktree_drv_l = ~cktree_drv; // missing connectivity - mh157021
assign ckt_drv_int=cktree_drv; // missing connectivity - kcyen
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_clkmux_delay/rtl/decode.v
// ==========================================================================
// mh157021: lower level module definition (decode)
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_buf_4x_cust/rtl/n2_core_pll_buf_4x_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:19:05 PM PDT
module n2_core_pll_buf_4x_cust(vdd_reg ,out ,in );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_buf_16x_cust/rtl/n2_core_pll_buf_16x_cust.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_buf_16x_cust)
// Last Modified: Friday Aug 26,2005 at 03:19:03 PM PDT
module n2_core_pll_buf_16x_cust(vdd_reg ,out ,in );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm_mux_cust/rtl/n2_core_pll_tpm_mux_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:21:51 PM PDT
module n2_core_pll_tpm_mux_cust(opb ,vdd_reg ,op ,d0 ,d1 ,sel ,sel_b );
assign opb = (~(sel & d1)) & (~(sel_b & d0));
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_buf_8x_cust/rtl/n2_core_pll_buf_8x_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:19:06 PM PDT
module n2_core_pll_buf_8x_cust(vdd_reg ,out ,in );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_inv_8x_cust/rtl/n2_core_pll_inv_8x_cust.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_inv_8x_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:35 PM PDT
module n2_core_pll_inv_8x_cust(vdd_reg ,out ,in );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm_next_new_cust/rtl/n2_core_pll_tpm_next_new_cust.v
// ==========================================================================
File: /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm_next_new_cust/schematic/sch.cdb
Last Modified: Monday Sep 19,2005 at 12:16:27 PM PDT
module n2_core_pll_tpm_next_new_cust(vdd_reg ,d5 ,q0b ,q3b ,d3 ,q5b ,q1b
,q2b ,d2 ,d0 ,d4 ,q2 ,q0 ,q1 ,d1 ,q4b );
n2_core_pll_xnor2_4x_new_cust x2 (
n2_core_pll_xnor2_4x_new_cust x3 (
n2_core_pll_xnor2_4x_new_cust x4 (
n2_core_pll_nand2_2x_cust x5 (
n2_core_pll_nor2_2x_cust x6 (
n2_core_pll_nor2_2x_cust x7 (
n2_core_pll_xnor2_4x_new_cust x8 (
n2_core_pll_xnor2_4x_new_cust x9 (
n2_core_pll_nand3_2x_cust x13 (
n2_core_pll_nand2_2x_cust x14 (
n2_core_pll_nand2_2x_cust x15 (
n2_core_pll_nor2_2x_cust x16 (
n2_core_pll_nor3_2x_cust x0 (
n2_core_pll_xnor2_4x_new_cust x1 (
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm_gate2_cust/rtl/n2_core_pll_tpm_gate2_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:21:48 PM PDT
module n2_core_pll_tpm_gate2_cust(vdd_reg ,div_ck ,r ,ck );
always @ ( ck or r) begin // better latch modeling - mh157021
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_inv_32x_cust/rtl/n2_core_pll_inv_32x_cust.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_inv_32x_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:33 PM PDT
module n2_core_pll_inv_32x_cust(vdd_reg ,out ,in );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm_zd1_cust/rtl/n2_core_pll_tpm_zd1_cust.v
// ==========================================================================
File: /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm_zd1_cust/schematic/sch.cdb
Last Modified: Monday Sep 19,2005 at 12:15:28 PM PDT
module n2_core_pll_tpm_zd1_cust(vdd_reg ,zero1 ,zero1_b ,q4b ,q0b ,q1b ,
n2_core_pll_nand2_2x_cust x2 (
n2_core_pll_nor2_4x_cust x3 (
n2_core_plllvt_nand2_16x_cust x4 (
n2_core_pll_nand3_2x_cust x0 (
n2_core_pll_inv_16x_a_cust x1 (
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_inv_4x_cust/rtl/n2_core_pll_inv_4x_cust.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_inv_4x_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:34 PM PDT
module n2_core_pll_inv_4x_cust(vdd_reg ,out ,in );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_nand2_2x_cust/rtl/n2_core_pll_nand2_2x_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:20:55 PM PDT
module n2_core_pll_nand2_2x_cust(vdd_reg ,out ,in1 ,in0 );
assign out = ~(in0 & in1);
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_nor2_4x_cust/rtl/n2_core_pll_nor2_4x_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:21:02 PM PDT
module n2_core_pll_nor2_4x_cust(vdd_reg ,out ,in1 ,in0 );
assign out = ~(in0 | in1);
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_plllvt_nand2_16x_cust/rtl/n2_core_plllvt_nand2_16x_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:22:28 PM PDT
module n2_core_plllvt_nand2_16x_cust(vdd_reg ,out ,in1 ,in0 );
assign out = ~(in0 & in1);
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_nand3_2x_cust/rtl/n2_core_pll_nand3_2x_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:20:58 PM PDT
module n2_core_pll_nand3_2x_cust(vdd_reg ,out ,in2 ,in1 ,in0 );
assign out = ~(in0 & in1 & in2);
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_inv_16x_a_cust/rtl/n2_core_pll_inv_16x_a_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:20:27 PM PDT
module n2_core_pll_inv_16x_a_cust(vdd_reg ,out ,in );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_nor2_2x_cust/rtl/n2_core_pll_nor2_2x_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:21:01 PM PDT
module n2_core_pll_nor2_2x_cust(vdd_reg ,out ,in1 ,in0 );
assign out = ~(in0 | in1);
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_nor3_2x_cust/rtl/n2_core_pll_nor3_2x_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:21:03 PM PDT
module n2_core_pll_nor3_2x_cust(vdd_reg ,out ,in2 ,in1 ,in0 );
assign out = ~(in0 | in1 | in2);
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm_nzd_cust/rtl/n2_core_pll_tpm_nzd_cust.v
// ==========================================================================
File: /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm_nzd_cust/schematic/sch.cdb
Last Modified: Monday Sep 19,2005 at 12:10:20 PM PDT
module n2_core_pll_tpm_nzd_cust(vdd_reg ,q2b ,q4b ,q3b ,zero ,q1b ,q0b ,
n2_core_pll_nand3_2x_cust x2 (
n2_core_pll_nand3_2x_cust x3 (
n2_core_pll_inv_4x_cust x0 (
n2_core_pll_nor2_2x_cust x1 (
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_xnor2_4x_new_cust/rtl/n2_core_pll_xnor2_4x_new_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:22:27 PM PDT
module n2_core_pll_xnor2_4x_new_cust(vdd_reg ,out ,in0 ,in1 );
assign out = ~(in0 ^ in1);
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_d4_sync_cust/rtl/n2_core_pll_d4_sync_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:19:55 PM PDT
module n2_core_pll_d4_sync_cust(dft_rst_l ,bs_rstps_4 ,bs_rstps_0 ,
n2_core_pll_flop_reset2_cust x2 (
n2_core_pll_inv1_16x_cust x7 (
n2_core_pll_flop_reset2_cust x0 (
n2_core_pll_inv1_16x_cust x1 (
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_fse2diff_out_cust/rtl/n2_core_pll_fse2diff_out_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:20:23 PM PDT
module n2_core_pll_fse2diff_out_cust(vdd_reg ,in ,out_l ,out );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_d4_ctl_cust/rtl/n2_core_pll_d4_ctl_cust.v
// ==========================================================================
File: /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_d4_ctl_cust/schematic/sch.cdb
Last Modified: Monday Sep 19,2005 at 12:13:09 PM PDT
module n2_core_pll_d4_ctl_cust(cac_l ,csel_l ,pclk ,out_clk ,eq ,in_clk
n2_core_pll_tpm1_cust x2 (
n2_core_pll_flop_reset1_cust xa_0_ (
n2_core_pll_inv1_32x_cust x6 (
n2_core_pll_flop_reset1_cust xa_1_ (
n2_core_pll_flop_reset2_cust x13 (
n2_core_pll_flop_reset1_cust xa_2_ (
n2_core_pll_csa32_cust xb_0_ (
n2_core_pll_inv1_16x_cust x22 (
n2_core_pll_csa32_cust xb_1_ (
n2_core_pll_csa32_cust xb_2_ (
n2_core_pll_flop_reset1_cust x0_1_ (
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_d4_mux_cust/rtl/n2_core_pll_d4_mux_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:19:54 PM PDT
module n2_core_pll_d4_mux_cust(out_clk ,rstps ,bs_pi_clk_4 ,bs_pi_clk_0 );
// .in0 (bs_pi_clk_0 ) );
n2_core_pll_flop_reset1_cust x17 (
n2_core_pll_inv_32x_cust x0 (
n2_core_pll_inv_8x_cust x1 (
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_flop_reset1_cust/rtl/n2_core_pll_flop_reset1_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:20:17 PM PDT
module n2_core_pll_flop_reset1_cust(reset_val_l ,d ,reset ,clk ,q_l ,q
always @( posedge clk or posedge reset ) begin
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm1_cust/rtl/n2_core_pll_tpm1_cust.v
// ==========================================================================
File: /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm1_cust/schematic/sch.cdb
Last Modified: Monday Sep 19,2005 at 12:09:54 PM PDT
module n2_core_pll_tpm1_cust(nreset ,ca2_a1 ,cac_l ,reset ,sel_l ,sel ,
n2_core_pll_flop_reset2_cust x2 (
n2_core_pll_inv1_16x_cust x4 (
n2_core_pll_tpm_mux1_cust x5 (
n2_core_pll_flop_reset2_cust x6 (
n2_core_pll_inv_32x_cust x7 (
n2_core_pll_flop_reset1_cust x8 (
n2_core_pll_flop_reset2_cust x9 (
n2_core_pll_tpm_mux1_cust x11 (
n2_core_pll_flop_reset1_cust x12 (
n2_core_pll_inv1_32x_cust x13 (
n2_core_pll_tpm_mux1_cust x16 (
n2_core_pll_inv1_16x_cust x17 (
n2_core_pll_flop_reset1_cust x22 (
n2_core_pll_tpm_mux1_cust x36 (
n2_core_pll_flop_reset1_cust x45 (
n2_core_pll_flop_reset1_cust x46 (
n2_core_pll_nand2_8x_cust x0 (
n2_core_pll_inv1_16x_cust x1 (
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_inv1_32x_cust/rtl/n2_core_pll_inv1_32x_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:20:25 PM PDT
module n2_core_pll_inv1_32x_cust(out ,in );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_flop_reset2_cust/rtl/n2_core_pll_flop_reset2_cust.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_flop_reset2_cust)
// Last Modified: Tuesday Sep 6,2005 at 02:49:34 PM PDT
module n2_core_pll_flop_reset2_cust(d ,clk ,q_l ,q );
always @(posedge clk) begin
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_csa32_cust/rtl/n2_core_pll_csa32_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:19:32 PM PDT
module n2_core_pll_csa32_cust(in0 ,sum ,in0_l ,carry ,in2 ,in1 );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_csa32_cust/rtl/fadd.v
// ==========================================================================
module fadd ( cin,a,b,s,cout );
assign cout = cin&a|cin&b|a&b;
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_inv1_16x_cust/rtl/n2_core_pll_inv1_16x_cust.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_inv1_16x_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:24 PM PDT
module n2_core_pll_inv1_16x_cust(vdd_reg ,out ,in );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm_mux1_cust/rtl/n2_core_pll_tpm_mux1_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:21:51 PM PDT
module n2_core_pll_tpm_mux1_cust(sel_l ,vdd_reg ,out_l ,d0 ,d1 ,sel );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_nand2_8x_cust/rtl/n2_core_pll_nand2_8x_cust.v
// ==========================================================================
// Last Modified: Friday Aug 26,2005 at 03:20:57 PM PDT
module n2_core_pll_nand2_8x_cust(vsup ,out ,in1 ,in0 );
assign out = ~(in0 & in1);
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_div4_cust/rtl/n2_core_pll_div4_cust.v
// ==========================================================================
File: /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_div4_cust/schematic/sch.cdb
Last Modified: Monday Sep 19,2005 at 12:12:32 PM PDT
module n2_core_pll_div4_cust(clk ,arst_l ,clk_div_out );
n2_core_pll_inv_8x_cust x2 (
n2_core_pll_flop_reset_new_cust x4 (
n2_core_pll_flop_reset_new_cust x5 (
n2_core_pll_flop_reset_new_cust x6 (
n2_core_pll_buf_2x_cust x9 (
n2_core_pll_buf_2x_cust x10 (
n2_core_pll_buf_2x_cust x11 (
n2_core_pll_buf_2x_cust x0 (
n2_core_pll_inv_32x_cust x1 (
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_inv_16x_cust/rtl/n2_core_pll_inv_16x_cust.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_inv_16x_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:28 PM PDT
module n2_core_pll_inv_16x_cust(vdd_reg ,out ,in );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm3_cust/rtl/n2_core_pll_tpm3_cust.v
// ==========================================================================
File: /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm3_cust/schematic/sch.cdb
Last Modified: Wednesday Oct 12,2005 at 04:19:44 PM PDT
module n2_core_pll_tpm3_cust(reset ,ip ,vdd_reg ,op ,sel ,div_ck_i ,
pwr_rst ,div_ck ,vco_ck );
n2_core_pll_buf_4x_cust x2 (
n2_core_pll_buf_16x_cust x4 (
n2_core_pll_tpm_mux_cust x5 (
n2_core_pll_buf_8x_cust x6 (
n2_core_pll_inv_8x_cust x7 (
n2_core_pll_buf_4x_cust x8 (
n2_core_pll_buf_4x_cust x9 (
n2_core_pll_buf_4x_cust x10 (
n2_core_pll_buf_4x_cust x11 (
n2_core_pll_buf_4x_cust x12 (
n2_core_pll_buf_8x_cust x13 (
n2_core_pll_buf_8x_cust x14 (
n2_core_pll_buf_8x_cust x15 (
n2_core_pll_tpm_next_new_cust x16 (
n2_core_pll_tpm_mux_cust x17 (
n2_core_pll_buf_8x_cust x18 (
n2_core_pll_buf_8x_cust x19 (
n2_core_pll_buf_8x_cust x20 (
n2_core_pll_tpm_mux_cust x23 (
n2_core_pll_tpm_gate2_cust x24 (
n2_core_pll_flop_reset_new_cust x25 (
n2_core_pll_flop_reset_new_cust x26 (
n2_core_pll_tpm_mux_cust x27 (
n2_core_pll_tpm_mux_cust x28 (
n2_core_pll_tpm_mux_cust x29 (
n2_core_pll_flop_reset_new_cust x30 (
n2_core_pll_inv_32x_cust x31 (
n2_core_pll_flop_reset_new_cust x32 (
n2_core_pll_flop_reset_new_cust x33 (
n2_core_pll_flop_reset_new_cust x34 (
n2_core_pll_flop_reset_new_cust x36 (
n2_core_pll_flop_reset_new_cust x37 (
n2_core_pll_flop_reset_new_cust x38 (
n2_core_pll_flop_reset_new_cust x39 (
n2_core_pll_tpm_zd1_cust x40 (
n2_core_pll_inv_8x_cust x41 (
n2_core_pll_flop_reset_new_cust x42 (
n2_core_pll_flop_reset_new_cust x43 (
n2_core_pll_flop_reset_new_cust x44 (
n2_core_pll_tpm_mux_cust x47 (
n2_core_pll_tpm_mux_cust x48 (
n2_core_pll_tpm_nzd_cust x49 (
n2_core_pll_tpm_mux_cust x50 (
n2_core_pll_tpm_mux_cust x51 (
n2_core_pll_tpm_mux_cust x52 (
n2_core_pll_tpm_mux_cust x53 (
n2_core_pll_inv_4x_cust x1 (
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_inv_1x_cust/rtl/n2_core_pll_inv_1x_cust.v
// ==========================================================================
// mh157021: instance #6 (n2_core_pll_inv_1x_cust)
// Last Modified: Friday Aug 26,2005 at 03:20:30 PM PDT
module n2_core_pll_inv_1x_cust(vdd_reg ,out ,in );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm3_sync_cust/rtl/n2_core_pll_tpm3_sync_cust.v
// ==========================================================================
File: /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_tpm3_sync_cust/schematic/sch.cdb
Last Modified: Saturday Dec 10,2005 at 07:49:42 PM PST
module n2_core_pll_tpm3_sync_cust(dri1_clk ,dft_rst_l ,dc_clk ,d4int_out
,ccu_serdes_dtm ,arst_l ,arst ,vco_clk ,pll1_clk ,arst_d_l ,a ,
assign dc_clk = ~vco_out;
assign vco_clk = ~dc_clk;
n2_core_pll_inv1_16x_cust x2 (
n2_core_pll_flop_reset2_cust x5_1_ (
n2_core_pll_inv1_16x_cust x8 (
//nmos mi3 (vco_clk ,vss ,dc_clk );
n2_core_pll_fse2diff_out_cust x10 (
n2_core_pll_fse2diff_out_cust x12 (
n2_core_pll_inv1_16x_cust x14 (
n2_core_pll_flop_reset1_cust x17 (
n2_core_pll_flop_reset2_cust xb_0_ (
n2_core_pll_inv1_16x_cust x22 (
n2_core_pll_flop_reset2_cust xb_1_ (
n2_core_pll_tpm_mux_cust x37 (
//nmos m1 (dc_clk ,vss ,vco_out );
n2_core_pll_flop_reset2_cust x5_0_ (
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_d4_frac_cust/rtl/n2_core_pll_d4_frac_cust.v
// ==========================================================================
File: /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_d4_frac_cust/schematic/sch.cdb
Last Modified: Saturday Dec 10,2005 at 04:26:42 PM PST
module n2_core_pll_d4_frac_cust(dft_rst_l ,vco_clk ,a ,out_clk );
n2_core_pll_d4_sync_cust x3 (
.bs_rstps_4 (bs_rstps_4 ),
.bs_rstps_0 (bs_rstps_0 ),
.bs_pclk_0 (bs_pclk_0 ) );
//n2_core_pll_fse2diff_out_cust x1_1_ (
// .out_l (bs_ph_clk_4 ),
// .out (bs_ph_clk_0 ) );
n2_core_pll_d4_ctl_cust x2_0_ (
.csel_l ({bs_csel_l_1 } ),
n2_core_pll_d4_ctl_cust x2_1_ (
.csel_l ({bs_csel_l_3 } ),
// .TERM (\csel_l[3] ) );
n2_core_pll_fse2diff_out_cust x1_0_ (
n2_core_pll_d4_mux_cust x0 (
.bs_pi_clk_4 (bs_pi_clk_4 ),
.bs_pi_clk_0 (bs_pi_clk_0 ) );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_ckmux_cust/rtl/n2_core_pll_ckmux_cust.v
// ==========================================================================
File: /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_ckmux_cust/schematic/sch.cdb
Last Modified: Friday Dec 9,2005 at 04:20:36 PM PST
module n2_core_pll_ckmux_cust(pll_sdel ,ckt_drv_int ,cktree_drv_l ,
ext_clk ,dft_rst_a_l ,dft_rst_l ,bypass_pll_clk ,psel1 ,psel0 ,
stretch_a ,async_reset ,cktree_drv ,pll1_clk ,pll_sel ,bypass_clk
assign #200 net069 = net069_orig;
assign #200 net070 = net070_orig;
n2_core_pll_flopderst_16x_cust xi72 (
.reset_val (byp_pll_clk_l ),
n2_core_pll_flopderst_16x_cust xi74 (
n2_core_pll_flopderst_16x_cust xi75 (
.reset_val (byp_pll_clk ),
n2_core_pll_flopderst_16x_cust xi76 (
.reset_val (byp_pll_clk ),
n2_core_pll_ckmux_mxdel_diffout_cust xmxdel (
.pll_sdel ({pll_sdel } ),
.ckt_drv_int (ckt_drv_int ),
.cktree_drv (cktree_drv ),
.cktree_drv_l (cktree_drv_l ),
.bypass_clk (bypass_clk ),
n2_core_pll_clkmux_sync_cust x0 (
.bypass_pll_clk (bypass_pll_clk ),
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_buf_2x_cust/rtl/n2_core_pll_buf_2x_cust.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_buf_2x_cust)
// Last Modified: Friday Aug 26,2005 at 03:19:04 PM PDT
module n2_core_pll_buf_2x_cust(vdd_reg ,out ,in );
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_ckmux_mxdel_diffout_cust/rtl/mux4k.v
// ==========================================================================
module mux4k ( dout, in0, in1, in2, in3,
sel0, sel1, sel2, sel3, muxtst );
wire [4:0] sel = { muxtst, sel3, sel2, sel1, sel0 };
always @ ( sel or in0 or in1 or in2 or in3 )
5'b00000: dout = { SIZE { 1'bx } };
dout = { SIZE { 1'bx } };
module n2_core_pll_byp_enb_cust(sel1 ,in1 ,out1 ,out0 ,in0 ,sel0 );
n2_core_pll_inv_8x_cust x4 (
n2_core_pll_nand2_2x_cust x8 (
n2_core_pll_nand2_2x_cust x10 (
n2_core_pll_inv_8x_cust x11 (
module n2_core_pll_pecl_enb_cust(in ,out ,enb1 ,enb0 );
n2_core_pll_nand2_4x_cust x12 (
n2_core_pll_inv_16x_cust x22 (
module n2_core_pll_nand2_4x_cust(vdd_reg ,out ,in1 ,in0 );
assign out = ~(in0 & in1);
module n2_core_pll_tpm3_all_cust(pll_stretch_a ,ccu_serdes_dtm ,
dr_ext_clk ,dc_clk ,pll_clk_out_l ,pll_div3 ,pll_sdel ,pll_sel_a ,
pll_bypass_clk_en ,pll_arst_l ,dr_clk_out ,pll_bypass_clk ,
pll_clk_out ,dr_clk_out_l ,dr_stretch_a ,pll_testmode ,dr_sdel ,
vco8_clk ,dr_sel_a ,volb ,vco2_clk ,pll_ext_clk ,pll_div4 ,
input pll_bypass_clk_en ;
n2_core_pll_ckmux_cust x2 (
.pll_sdel ({pll_sdel } ),
.pll_sel ({pll_sel_a } ),
.cktree_drv_l (pll_clk_out_l ),
.bypass_pll_clk (pll_bypass_clk_en ),
.stretch_a (pll_stretch_a ),
.cktree_drv (pll_clk_out ),
.bypass_clk (pll_byp_clk ) );
n2_core_pll_byp_enb_cust x3 (
.sel0 (pll_bypass_clk_en ) );
n2_core_pll_ckmux_cust x4 (
.cktree_drv_l (dr_clk_out_l ),
.bypass_pll_clk (ccu_serdes_dtm ),
.stretch_a (dr_stretch_a ),
.cktree_drv (dr_clk_out ),
.bypass_clk (dr_byp_clk ) );
n2_core_pll_div4_cust x5 (
.clk_div_out (vco8_clk ) );
n2_core_pll_inv_32x_cust x6 (
n2_core_pll_inv_16x_cust x7 (
n2_core_pll_tpm3_cust xd3 (
.op ({net080[0] ,net080[1] ,net080[2] ,net080[3] ,
net080[4] ,net080[5] } ),
n2_core_pll_inv_1x_cust x11_0_ (
n2_core_pll_inv_1x_cust x11_1_ (
n2_core_pll_tpm3_sync_cust x0 (
.dft_rst_l (dft_rst_a_l ),
n2_core_pll_d4_frac_cust x1 (
// ==========================================================================
// /import/n2-analog3/ky82615/n2cdmspp/libs/analog/n2_core_pll_cust_l/n2_core_pll_clkmux_delay/rtl/n2_core_pll_clkmux_delay.v
// ==========================================================================
// mh157021: lower level module definition (n2_core_pll_clkmux_delay)
// Last Modified: Friday Aug 26,2005 at 03:19:23 PM PDT
module n2_core_pll_clkmux_delay(pll_sdel ,mux_out ,d );