// ========== Copyright Header Begin ==========================================
//
// OpenSPARC T1 Processor File: swrvr_clib.v
// Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
//
// The above named program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public
// License version 2 as published by the Free Software Foundation.
//
// The above named 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 work; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
//
// ========== Copyright Header End ============================================
///////////////////////////////////////////////////////////////////////
/*
//
// Module Name: swrvr_clib.v
// Description: Design control behavioural library
*/
`ifdef FPGA_SYN
`define NO_SCAN
`endif
// POSITVE-EDGE TRIGGERED FLOP with SCAN
![[Up: sctag_tagdp_ctl ff_evict_c3_1]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_evict_c3_2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tagdp_par_err_c3]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tagdp_par_err_c3_2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tagdp_mbctl_par_err_c3]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tagdp_tagctl_par_err_c3]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tagdp_arbctl_par_err_c3]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tagdp_par_err_c4]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tagdp_par_err_c5]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tag_error_c6]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tag_error_c7]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tag_error_c8]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_l2_dir_map_on_d1]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_diag_way_c3]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_diag_way_c4]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_lru_quad_muxsel_c2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_bist_way_c1]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_bist_way_c2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_bist_enable_c1]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_bist_enable_c2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_use_dec_sel_c3]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tag_triad0_muxsel_c2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tag_triad1_muxsel_c2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tag_triad2_muxsel_c2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_tag_triad3_muxsel_c2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_dir_quad_way_c3]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_lru_state]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_lru_state_triad0]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_lru_state_triad1]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_lru_state_triad2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl ff_lru_state_triad3]](v2html-up.gif)
... (truncated)
module dff
(din, clk, q, se, si, so);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk or scan clk
output [SIZE-1:0] q ; // output
input se ; // scan-enable
input [SIZE-1:0] si ; // scan-input
output [SIZE-1:0] so ; // scan-output
reg [SIZE-1:0] q ;
`ifdef NO_SCAN
always @ (posedge clk)
q[SIZE-1:0] <= din[SIZE-1:0] ;
`else
always @ (posedge clk)
q[SIZE-1:0] <= (se) ? si[SIZE-1:0] : din[SIZE-1:0] ;
assign so[SIZE-1:0] = q[SIZE-1:0] ;
`endif
endmodule // dff
// POSITVE-EDGE TRIGGERED FLOP with SCAN for Shadow-scan
module dff_sscan
(din, clk, q, se, si, so);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk or scan clk
output [SIZE-1:0] q ; // output
input se ; // scan-enable
input [SIZE-1:0] si ; // scan-input
output [SIZE-1:0] so ; // scan-output
reg [SIZE-1:0] q ;
`ifdef CONNECT_SHADOW_SCAN
always @ (posedge clk)
q[SIZE-1:0] <= (se) ? si[SIZE-1:0] : din[SIZE-1:0] ;
assign so[SIZE-1:0] = q[SIZE-1:0] ;
`else
always @ (posedge clk)
q[SIZE-1:0] <= din[SIZE-1:0] ;
assign so={SIZE{1'b0}};
`endif
endmodule // dff
// POSITVE-EDGE TRIGGERED FLOP without SCAN
![[Up: ctu_dft_bist u_dff_clsp_bist_dobist_ff]](v2html-up.gif)
![[Up: ctu_dft_bist u_dff_clsp_bist_type_ff]](v2html-up.gif)
![[Up: ctu_dft_bist u_dff_clsp_bist_ctrl_ff]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_clsp_bist_dobist_d1]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_jtag_bist_serial_c_d1]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_jtag_bist_parallel_c_d1]](v2html-up.gif)
![[Up: ctu_dft_bist u_dff_mbistdone_ff]](v2html-up.gif)
![[Up: ctu_dft_bist u_dff_mbistdone_d1]](v2html-up.gif)
![[Up: ctu_dft_bist u_dff_mbisterr_ff]](v2html-up.gif)
![[Up: jbi_sctrdq_fifo rd_enb_reg]](v2html-up.gif)
![[Up: jbi_sctrdq_fifo wr_addr_sync_reg]](v2html-up.gif)
![[Up: jbi_sctrdq_fifo rd_addr_presync_reg]](v2html-up.gif)
![[Up: jbi_sctrdq_fifo rd_addr_sync_reg]](v2html-up.gif)
![[Up: jbi_dbg_ctl_qctl u_dff_wptr_d1]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_clkctrl_dn_jl]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_ctu_io_j_err_jl]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_ctu_efc_read_start_nxt]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_ctu_iob_wake_thr]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_jbus_grst_jl_l_dly1]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_jbus_grst_jl_l_dly2]](v2html-up.gif)
![[Up: i2c_fctrl int_buf_empty_prev_ff]](v2html-up.gif)
![[Up: i2c_fctrl io_buf_empty_prev_ff]](v2html-up.gif)
![[Up: jbi_ncio_prqq_ctl u_dff_entry_wptr_d1]](v2html-up.gif)
![[Up: ucb_flow_spi buf_head_ff]](v2html-up.gif)
![[Up: ucb_flow_spi buf_tail_ff]](v2html-up.gif)
![[Up: jbi_j_pack_out_gen u_dff_ctu_jbi_tx_en_mout_ff]](v2html-up.gif)
![[Up: jbi_j_pack_out_gen sctag_req_p1_reg]](v2html-up.gif)
![[Up: jbi_j_pack_out_gen sctag_req_sync_reg]](v2html-up.gif)
![[Up: jbi_min_rq_rhq_ctl u_dff_cpu_rx_en_d1]](v2html-up.gif)
![[Up: jbi_min_rq_rhq_ctl u_dff_l2_timeout_cnt]](v2html-up.gif)
![[Up: jbi_ssi_ucbif u_dff_io_jbi_ext_int_l_pre_sync]](v2html-up.gif)
... (truncated)
module dff_ns
(din, clk, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk
output [SIZE-1:0] q ; // output
reg [SIZE-1:0] q ;
always @ (posedge clk)
q[SIZE-1:0] <= din[SIZE-1:0] ;
endmodule // dff_ns
// POSITIVE-EDGE TRIGGERED FLOP with SCAN, RESET
![[Up: spu_maexp rde_state_ff]](v2html-up.gif)
![[Up: spu_maexp gotomulred1_state_ff]](v2html-up.gif)
![[Up: spu_maexp echk_state_ff]](v2html-up.gif)
![[Up: spu_maexp gotomulred2_state_ff]](v2html-up.gif)
![[Up: spu_maexp esmax_state_ff]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp slot0_data_dff]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp slot1_data_dff]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp slot2_data_dff]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp slot3_data_dff]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp can_swap_flop]](v2html-up.gif)
![[Up: spu_lsurpt1 ldxa_vld_ff]](v2html-up.gif)
![[Up: spu_lsurpt1 illgl_va_ff]](v2html-up.gif)
![[Up: sparc_ifu_thrcmpl wmi_ff]](v2html-up.gif)
![[Up: sparc_ifu_thrcmpl wmo_ff]](v2html-up.gif)
![[Up: tlu_misctl dffr_tlu_exu_pic_onebelow_m]](v2html-up.gif)
![[Up: tlu_misctl dffr_tlu_exu_pic_twobelow_m]](v2html-up.gif)
![[Up: sparc_ifu_swl enspec_ff]](v2html-up.gif)
![[Up: sparc_ifu_swl mulb_ff]](v2html-up.gif)
![[Up: sparc_ifu_swl divb_ff]](v2html-up.gif)
![[Up: sparc_ifu_swl fpb_ff]](v2html-up.gif)
![[Up: sparc_ifu_swl tfbe_ff]](v2html-up.gif)
![[Up: sparc_ifu_swl mw_ff]](v2html-up.gif)
![[Up: sparc_ifu_swl dw_ff]](v2html-up.gif)
![[Up: sparc_ifu_swl fw_ff]](v2html-up.gif)
![[Up: sparc_ifu_swl stbw_reg]](v2html-up.gif)
![[Up: fpu_div_ctl i_d1stg_op]](v2html-up.gif)
![[Up: fpu_div_ctl i_d1stg_div]](v2html-up.gif)
![[Up: fpu_div_ctl i_d2stg_opdec]](v2html-up.gif)
![[Up: fpu_div_ctl i_d234stg_fdiv]](v2html-up.gif)
![[Up: fpu_div_ctl i_d3stg_opdec]](v2html-up.gif)
![[Up: fpu_div_ctl i_d4stg_opdec]](v2html-up.gif)
... (truncated)
module dffr
(din, clk, rst, q, se, si, so);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk or scan clk
input rst ; // reset
output [SIZE-1:0] q ; // output
input se ; // scan-enable
input [SIZE-1:0] si ; // scan-input
output [SIZE-1:0] so ; // scan-output
reg [SIZE-1:0] q ;
`ifdef NO_SCAN
always @ (posedge clk)
q[SIZE-1:0] <= ((rst) ? {SIZE{1'b0}} : din[SIZE-1:0] );
`else
// Scan-Enable dominates
always @ (posedge clk)
q[SIZE-1:0] <= se ? si[SIZE-1:0] : ((rst) ? {SIZE{1'b0}} : din[SIZE-1:0] );
assign so[SIZE-1:0] = q[SIZE-1:0] ;
`endif
endmodule // dffr
// POSITIVE-EDGE TRIGGERED FLOP with SCAN, RESET_L
![[Up: sctag_fbctl ff_valid_bit]](v2html-up.gif)
![[Up: sctag_fbctl ff_bypassed]](v2html-up.gif)
![[Up: sctag_fbctl ff_way_vld]](v2html-up.gif)
![[Up: sctag_fbctl ff_fb_l2_ready]](v2html-up.gif)
![[Up: sctag_fbctl ff_l2_wait]](v2html-up.gif)
![[Up: sctag_fbctl ff_fb_next_link_vld]](v2html-up.gif)
![[Up: sctag_fbctl ff_fb_cerr]](v2html-up.gif)
![[Up: sctag_fbctl ff_fb_uerr]](v2html-up.gif)
![[Up: sctag_fbctl ff_fb_uerr_pend]](v2html-up.gif)
![[Up: sctag_fbctl ff_fb_cerr_pend]](v2html-up.gif)
![[Up: sctag_fbctl ff_fb_tecc_pend]](v2html-up.gif)
![[Up: sctag_snpctl ff_wr_ptr]](v2html-up.gif)
![[Up: sctag_snpctl ff_rdmad_wr_entry_s2_d1]](v2html-up.gif)
![[Up: sctag_snpctl ff_snp_valid]](v2html-up.gif)
![[Up: sctag_snpctl ff_rd_ptr]](v2html-up.gif)
![[Up: sctag_arbctl ff_gate_off_prim_req_state]](v2html-up.gif)
![[Up: sctag_arbctl ff_arbctl_inst_vld_c1_1]](v2html-up.gif)
![[Up: sctag_csr ff_csr_l2_errinj_d1]](v2html-up.gif)
![[Up: sctag_oqctl ff_inc_wr_ptr_d1]](v2html-up.gif)
![[Up: sctag_oqctl ff_inc_wr_ptr_d1_1]](v2html-up.gif)
![[Up: sctag_oqctl ff_inc_wr_ptr_d1_2]](v2html-up.gif)
![[Up: sctag_oqctl ff_wr_ptr15to1_d1]](v2html-up.gif)
![[Up: sctag_oqctl ff_wr_ptr0_d1]](v2html-up.gif)
![[Up: sctag_oqctl ff_inc_rd_ptr_d1]](v2html-up.gif)
![[Up: sctag_oqctl ff_inc_rd_ptr_d1_1]](v2html-up.gif)
![[Up: sctag_oqctl ff_inc_rd_ptr_d1_2]](v2html-up.gif)
![[Up: sctag_oqctl ff_rd_ptr15to1_d1]](v2html-up.gif)
![[Up: sctag_oqctl ff_rd_ptr0_d1]](v2html-up.gif)
![[Up: sctag_oqctl ff_oq_cnt_d1]](v2html-up.gif)
![[Up: sctag_oqctl ff_rdma_req_state_0]](v2html-up.gif)
![[Up: sctag_oqctl ff_rdma_state]](v2html-up.gif)
... (truncated)
module dffrl
(din, clk, rst_l, q, se, si, so);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk or scan clk
input rst_l ; // reset
output [SIZE-1:0] q ; // output
input se ; // scan-enable
input [SIZE-1:0] si ; // scan-input
output [SIZE-1:0] so ; // scan-output
reg [SIZE-1:0] q ;
`ifdef NO_SCAN
always @ (posedge clk)
q[SIZE-1:0] <= rst_l ? din[SIZE-1:0] : {SIZE{1'b0}};
`else
// Reset dominates
always @ (posedge clk)
q[SIZE-1:0] <= rst_l ? ((se) ? si[SIZE-1:0] : din[SIZE-1:0] ) : {SIZE{1'b0}};
assign so[SIZE-1:0] = q[SIZE-1:0] ;
`endif
endmodule // dffr_l
// POSITIVE-EDGE TRIGGERED FLOP with RESET, without SCAN
module dffr_ns
(din, clk, rst, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk
input rst ; // reset
output [SIZE-1:0] q ; // output
reg [SIZE-1:0] q ;
// synopsys sync_set_reset "rst"
always @ (posedge clk)
q[SIZE-1:0] <= rst ? {SIZE{1'b0}} : din[SIZE-1:0];
endmodule // dffr_ns
// POSITIVE-EDGE TRIGGERED FLOP with RESET_L, without SCAN
![[Up: ctu_dft_bist u_dffrl_wake_thr_j]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_abort_done_j]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_mbist_done_j]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_mbist_err_j]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_bist_sm]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_bist_spc_done]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_bist_sctag_done]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_bist_cnt]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_bist_ctrl_cnt]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_doing_rst_bist]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_wake_thr]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_abort_done]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_ctu_mbisten]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrl_abort_done_jreg]](v2html-up.gif)
![[Up: jbi_sctrdq_fifo ram_wr_addr_m1_reg]](v2html-up.gif)
![[Up: jbi_sctrdq_fifo ram_rd_addr_reg]](v2html-up.gif)
![[Up: jbi_dbg_ctl_qctl u_dffrl_rptr]](v2html-up.gif)
![[Up: jbi_dbg_ctl_qctl u_dffrl_wptr]](v2html-up.gif)
![[Up: jbi_dbg_ctl_qctl u_dffrl_level]](v2html-up.gif)
![[Up: jbi_dbg_ctl_qctl u_dffrl_prev_overflow]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_de_dll_rst_dn]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_do_bist_pin_ff]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_do_bist_cnt_enable]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_do_bist_cnt]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_dram_rstcnt]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_startclk_cnt]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_efc_rdcnt]](v2html-up.gif)
![[Up: i2c_fctrl cpx_iob_grant_ff]](v2html-up.gif)
![[Up: i2c_fctrl int_buf_head_prev_ff]](v2html-up.gif)
![[Up: i2c_fctrl int_buf_vld_ff]](v2html-up.gif)
![[Up: i2c_fctrl io_buf_head_prev_ff]](v2html-up.gif)
... (truncated)
module dffrl_ns
(din, clk, rst_l, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk
input rst_l ; // reset
output [SIZE-1:0] q ; // output
reg [SIZE-1:0] q ;
// synopsys sync_set_reset "rst_l"
always @ (posedge clk)
q[SIZE-1:0] <= rst_l ? din[SIZE-1:0] : {SIZE{1'b0}};
endmodule // dffrl_ns
// POSITIVE-EDGE TRIGGERED FLOP with SCAN and FUNCTIONAL ENABLE
![[Up: sctag_dirrep ff_tagdp_lkup_addr11_c5]](v2html-up.gif)
![[Up: spu_lsurpt1 pcx_ff]](v2html-up.gif)
![[Up: spu_lsurpt1 pcx_7170_ff]](v2html-up.gif)
![[Up: sctag_fbctl ff_stinst_0]](v2html-up.gif)
![[Up: sctag_fbctl ff_stinst_1]](v2html-up.gif)
![[Up: sctag_fbctl ff_stinst_2]](v2html-up.gif)
![[Up: sctag_fbctl ff_stinst_3]](v2html-up.gif)
![[Up: sctag_fbctl ff_stinst_4]](v2html-up.gif)
![[Up: sctag_fbctl ff_stinst_5]](v2html-up.gif)
![[Up: sctag_fbctl ff_stinst_6]](v2html-up.gif)
![[Up: sctag_fbctl ff_stinst_7]](v2html-up.gif)
![[Up: sctag_fbctl ff_way0]](v2html-up.gif)
![[Up: sctag_fbctl ff_way1]](v2html-up.gif)
![[Up: sctag_fbctl ff_way2]](v2html-up.gif)
![[Up: sctag_fbctl ff_way3]](v2html-up.gif)
![[Up: sctag_fbctl ff_way4]](v2html-up.gif)
![[Up: sctag_fbctl ff_way5]](v2html-up.gif)
![[Up: sctag_fbctl ff_way6]](v2html-up.gif)
![[Up: sctag_fbctl ff_way7]](v2html-up.gif)
![[Up: sctag_fbctl ff_l2_entry_px2]](v2html-up.gif)
![[Up: sctag_fbctl ff_l2_way_px2]](v2html-up.gif)
![[Up: sctag_fbctl ff_ld64_fb_hit_c12]](v2html-up.gif)
![[Up: tlu_misctl dffe_sscan_tt0_data]](v2html-up.gif)
![[Up: tlu_misctl dffe_sscan_tt1_data]](v2html-up.gif)
![[Up: tlu_misctl dffe_sscan_tt2_data]](v2html-up.gif)
![[Up: tlu_misctl dffe_sscan_tt3_data]](v2html-up.gif)
![[Up: lsu_dctl dtag_hold]](v2html-up.gif)
![[Up: lsu_dctl asiv_thrd0_sec]](v2html-up.gif)
![[Up: lsu_dctl asiv_thrd1_sec]](v2html-up.gif)
![[Up: lsu_dctl asiv_thrd2_sec]](v2html-up.gif)
![[Up: lsu_dctl asiv_thrd3_sec]](v2html-up.gif)
... (truncated)
module dffe
(din, en, clk, q, se, si, so);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input en ; // functional enable
input clk ; // clk or scan clk
output [SIZE-1:0] q ; // output
input se ; // scan-enable
input [SIZE-1:0] si ; // scan-input
output [SIZE-1:0] so ; // scan-output
reg [SIZE-1:0] q ;
// Enable Interpretation. Ultimate interpretation depends on design
//
// en se out
//------------------
// x 1 sin ; scan dominates
// 1 0 din
// 0 0 q
//
`ifdef NO_SCAN
always @ (posedge clk)
q[SIZE-1:0] <= ((en) ? din[SIZE-1:0] : q[SIZE-1:0]) ;
`else
always @ (posedge clk)
q[SIZE-1:0] <= (se) ? si[SIZE-1:0] : ((en) ? din[SIZE-1:0] : q[SIZE-1:0]) ;
assign so[SIZE-1:0] = q[SIZE-1:0] ;
`endif
endmodule // dffe
// POSITIVE-EDGE TRIGGERED FLOP with enable, without SCAN
![[Up: jbi_sctrdq_fifo wr_addr_presync_reg]](v2html-up.gif)
![[Up: ucb_flow_spi buf_empty_ff]](v2html-up.gif)
![[Up: ucb_flow_spi buf0_ff]](v2html-up.gif)
![[Up: ucb_flow_spi buf1_ff]](v2html-up.gif)
![[Up: ucb_flow_spi ack_buf_is_nack_ff]](v2html-up.gif)
![[Up: ucb_flow_spi ack_buf_is_data128_ff]](v2html-up.gif)
![[Up: ucb_flow_spi ack_buf_ff]](v2html-up.gif)
![[Up: ucb_flow_spi int_buf_ff]](v2html-up.gif)
![[Up: jbi_j_pack_out_gen sctag_req_presync_reg]](v2html-up.gif)
![[Up: jbi_sctrdq data_in_w0_reg]](v2html-up.gif)
![[Up: jbi_sctrdq data_in_w1_reg]](v2html-up.gif)
![[Up: jbi_sctrdq data_in_w2_reg]](v2html-up.gif)
![[Up: c2i_sdp pcx_packet_ff]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_fstlog u_clk_stretch_trig]](v2html-up.gif)
![[Up: iobdg_1r2w_vec dout_vec_ff]](v2html-up.gif)
![[Up: jbi_csr jbi_config_reg_49_48]](v2html-up.gif)
![[Up: jbi_csr jbi_config_reg_31_28]](v2html-up.gif)
![[Up: jbi_csr jbi_config_reg_27_22]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_28]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_27]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_26]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_25]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_24]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_17]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_16]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_15]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_14]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_13]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_12]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_11]](v2html-up.gif)
![[Up: jbi_csr jbi_log_enb_reg_10]](v2html-up.gif)
... (truncated)
module dffe_ns
(din, en, clk, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input en ; // functional enable
input clk ; // clk
output [SIZE-1:0] q ; // output
reg [SIZE-1:0] q ;
always @ (posedge clk)
q[SIZE-1:0] <= en ? din[SIZE-1:0] : q[SIZE-1:0];
endmodule // dffe_ns
// POSITIVE-EDGE TRIGGERED FLOP with RESET, FUNCTIONAL ENABLE, SCAN.
![[Up: spu_maexp spu_maexp_done_ff]](v2html-up.gif)
![[Up: sctag_fbctl ff_fb_count]](v2html-up.gif)
![[Up: sctag_fbctl ff_nofill_0]](v2html-up.gif)
![[Up: sctag_fbctl ff_nofill_1]](v2html-up.gif)
![[Up: sctag_fbctl ff_nofill_2]](v2html-up.gif)
![[Up: sctag_fbctl ff_nofill_3]](v2html-up.gif)
![[Up: sctag_fbctl ff_nofill_4]](v2html-up.gif)
![[Up: sctag_fbctl ff_nofill_5]](v2html-up.gif)
![[Up: sctag_fbctl ff_nofill_6]](v2html-up.gif)
![[Up: sctag_fbctl ff_nofill_7]](v2html-up.gif)
![[Up: sctag_fbctl ff_dram_cnt]](v2html-up.gif)
![[Up: sctag_snpctl ff_winv_rq_active_s2]](v2html-up.gif)
![[Up: sctag_snpctl ff_snpiq_cnt]](v2html-up.gif)
![[Up: sctag_snpctl ff_winv_rq_active_s2_1]](v2html-up.gif)
![[Up: sctag_arbctl ff_tag_ecc_fsm_count]](v2html-up.gif)
![[Up: sctag_arbctl ff_dir_addr_cnt]](v2html-up.gif)
![[Up: sctag_arbctl ff_arbctl_inst_vld_c1]](v2html-up.gif)
![[Up: lsu_dctl twr_stgd1]](v2html-up.gif)
![[Up: lsu_dctl blderr_ff]](v2html-up.gif)
![[Up: lsu_dctl asiv_thrd0]](v2html-up.gif)
![[Up: lsu_dctl asiv_thrd1]](v2html-up.gif)
![[Up: lsu_dctl asiv_thrd2]](v2html-up.gif)
![[Up: lsu_dctl asiv_thrd3]](v2html-up.gif)
![[Up: lsu_dctl asiqv_fifo_0]](v2html-up.gif)
![[Up: lsu_dctl asiqv_fifo_1]](v2html-up.gif)
![[Up: lsu_dctl asiqv_fifo_2]](v2html-up.gif)
![[Up: lsu_dctl asiqv_fifo_3]](v2html-up.gif)
![[Up: lsu_dctl tlbpnd]](v2html-up.gif)
![[Up: lsu_dctl bsync_vld0]](v2html-up.gif)
![[Up: lsu_dctl bsync_vld1]](v2html-up.gif)
![[Up: lsu_dctl bsync_vld2]](v2html-up.gif)
... (truncated)
module dffre
(din, rst, en, clk, q, se, si, so);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input en ; // functional enable
input rst ; // reset
input clk ; // clk or scan clk
output [SIZE-1:0] q ; // output
input se ; // scan-enable
input [SIZE-1:0] si ; // scan-input
output [SIZE-1:0] so ; // scan-output
reg [SIZE-1:0] q ;
// Enable Interpretation. Ultimate interpretation depends on design
//
// rst en se out
//------------------
// 1 x x 0 ; reset dominates
// 0 x 1 sin ; scan dominates
// 0 1 0 din
// 0 0 0 q
//
`ifdef NO_SCAN
always @ (posedge clk)
q[SIZE-1:0] <= (rst ? {SIZE{1'b0}} : ((en) ? din[SIZE-1:0] : q[SIZE-1:0])) ;
`else
always @ (posedge clk)
// q[SIZE-1:0] <= rst ? {SIZE{1'b0}} : ((se) ? si[SIZE-1:0] : ((en) ? din[SIZE-1:0] : q[SIZE-1:0])) ;
q[SIZE-1:0] <= se ? si[SIZE-1:0] : (rst ? {SIZE{1'b0}} : ((en) ? din[SIZE-1:0] : q[SIZE-1:0])) ;
assign so[SIZE-1:0] = q[SIZE-1:0] ;
`endif
endmodule // dffre
// POSITIVE-EDGE TRIGGERED FLOP with RESET_L, FUNCTIONAL ENABLE, SCAN.
![[Up: sctag_oqctl ff_xbar0]](v2html-up.gif)
![[Up: sctag_oqctl ff_xbar1]](v2html-up.gif)
![[Up: sctag_oqctl ff_xbar2]](v2html-up.gif)
![[Up: sctag_oqctl ff_xbar3]](v2html-up.gif)
![[Up: sctag_oqctl ff_xbar4]](v2html-up.gif)
![[Up: sctag_oqctl ff_xbar5]](v2html-up.gif)
![[Up: sctag_oqctl ff_xbar6]](v2html-up.gif)
module dffrle
(din, rst_l, en, clk, q, se, si, so);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input en ; // functional enable
input rst_l ; // reset
input clk ; // clk or scan clk
output [SIZE-1:0] q ; // output
input se ; // scan-enable
input [SIZE-1:0] si ; // scan-input
output [SIZE-1:0] so ; // scan-output
reg [SIZE-1:0] q ;
// Enable Interpretation. Ultimate interpretation depends on design
//
// rst en se out
//------------------
// 0 x x 0 ; reset dominates
// 1 x 1 sin ; scan dominates
// 1 1 0 din
// 1 0 0 q
//
`ifdef NO_SCAN
always @ (posedge clk)
q[SIZE-1:0] <= (rst_l ? ((en) ? din[SIZE-1:0] : q[SIZE-1:0]) : {SIZE{1'b0}}) ;
`else
always @ (posedge clk)
// q[SIZE-1:0] <= rst_l ? ((se) ? si[SIZE-1:0] : ((en) ? din[SIZE-1:0] : q[SIZE-1:0])) : {SIZE{1'b0}} ;
q[SIZE-1:0] <= se ? si[SIZE-1:0] : (rst_l ? ((en) ? din[SIZE-1:0] : q[SIZE-1:0]) : {SIZE{1'b0}}) ;
assign so[SIZE-1:0] = q[SIZE-1:0] ;
`endif
endmodule // dffrle
// POSITIVE-EDGE TRIGGERED FLOP with RESET, ENABLE, without SCAN.
module dffre_ns
(din, rst, en, clk, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input en ; // functional enable
input rst ; // reset
input clk ; // clk
output [SIZE-1:0] q ; // output
reg [SIZE-1:0] q ;
// Enable Interpretation. Ultimate interpretation depends on design
//
// rst en out
//------------------
// 1 x 0 ; reset dominates
// 0 1 din
// 0 0 q
//
// synopsys sync_set_reset "rst"
always @ (posedge clk)
q[SIZE-1:0] <= rst ? {SIZE{1'b0}} : ((en) ? din[SIZE-1:0] : q[SIZE-1:0]);
endmodule // dffre_ns
// POSITIVE-EDGE TRIGGERED FLOP with RESET_L, ENABLE, without SCAN.
![[Up: ctu_dft_bist u_dffrle_clsp_bist_dobist_c]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrle_clsp_bist_type_c]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrle_clsp_bist_ctrl_c]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrle_wake_thr_tx]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrle_abort_done_tx]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrle_mbistdone_tx]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrle_mbisterr_tx]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrle_jtag_bist_serial_c]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrle_jtag_bist_parallel_c]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrle_jtag_bist_active_c]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrle_jtag_bist_abort_c]](v2html-up.gif)
![[Up: ctu_dft_bist u_dffrle_bist_ctrl]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_do_bist_pin]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_do_bist_type]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_do_bist_ctrl_5]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_do_bist_ctrl_4]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_do_bist_ctrl_3]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_do_bist_ctrl_2]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_do_bist_ctrl_1]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_do_bist_ctrl_0]](v2html-up.gif)
![[Up: i2c_fctrl int_buf_tail_ff]](v2html-up.gif)
![[Up: i2c_fctrl io_buf_head_f_ff]](v2html-up.gif)
![[Up: i2c_fctrl io_buf_tail_ff]](v2html-up.gif)
![[Up: jbi_jid_to_yid_pool used_jids_reg00]](v2html-up.gif)
![[Up: jbi_jid_to_yid_pool used_jids_reg01]](v2html-up.gif)
![[Up: jbi_jid_to_yid_pool used_jids_reg02]](v2html-up.gif)
![[Up: jbi_jid_to_yid_pool used_jids_reg03]](v2html-up.gif)
![[Up: jbi_jid_to_yid_pool used_jids_reg04]](v2html-up.gif)
![[Up: jbi_jid_to_yid_pool used_jids_reg05]](v2html-up.gif)
![[Up: jbi_jid_to_yid_pool used_jids_reg06]](v2html-up.gif)
![[Up: jbi_jid_to_yid_pool used_jids_reg07]](v2html-up.gif)
... (truncated)
module dffrle_ns
(din, rst_l, en, clk, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input en ; // functional enable
input rst_l ; // reset
input clk ; // clk
output [SIZE-1:0] q ; // output
reg [SIZE-1:0] q ;
// Enable Interpretation. Ultimate interpretation depends on design
//
// rst en out
//------------------
// 0 x 0 ; reset dominates
// 1 1 din
// 1 0 q
//
// synopsys sync_set_reset "rst_l"
always @ (posedge clk)
q[SIZE-1:0] <= rst_l ? ((en) ? din[SIZE-1:0] : q[SIZE-1:0]) : {SIZE{1'b0}} ;
endmodule // dffrle_ns
// POSITIVE-EDGE TRIGGERED FLOP with SCAN, and ASYNC RESET
module dffr_async
(din, clk, rst, q, se, si, so);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk or scan clk
input rst ; // reset
output [SIZE-1:0] q ; // output
input se ; // scan-enable
input [SIZE-1:0] si ; // scan-input
output [SIZE-1:0] so ; // scan-output
reg [SIZE-1:0] q ;
`ifdef NO_SCAN
always @ (posedge clk or posedge rst)
q[SIZE-1:0] <= rst ? {SIZE{1'b0}} : din[SIZE-1:0];
`else
// Reset dominates
always @ (posedge clk or posedge rst)
q[SIZE-1:0] <= rst ? {SIZE{1'b0}} : ((se) ? si[SIZE-1:0] : din[SIZE-1:0] );
assign so[SIZE-1:0] = q[SIZE-1:0] ;
`endif
endmodule // dffr_async
// POSITIVE-EDGE TRIGGERED FLOP with SCAN, and ASYNC RESET_L
![[Up: sctag_tagdp_ctl reset_flop]](v2html-up.gif)
![[Up: sctag_mbist reset_flop]](v2html-up.gif)
![[Up: ccx_arbctl ff_rstl]](v2html-up.gif)
![[Up: ccx_arbctl ff_rstl2]](v2html-up.gif)
![[Up: sctag_fbctl reset_flop]](v2html-up.gif)
![[Up: sctag_snpctl reset_flop]](v2html-up.gif)
![[Up: sctag_arbctl reset_flop]](v2html-up.gif)
![[Up: sparc_ifu_swl rstff]](v2html-up.gif)
![[Up: lsu_dctl rstff]](v2html-up.gif)
![[Up: sctag_csr reset_flop]](v2html-up.gif)
![[Up: fpu_div_ctl dffrl_div_ctl]](v2html-up.gif)
![[Up: sctag_oqctl reset_flop]](v2html-up.gif)
![[Up: spu_mactl ma_enc_rst]](v2html-up.gif)
![[Up: fpu_in_ctl dffrl_in_ctl]](v2html-up.gif)
![[Up: fpu_mul_ctl dffrl_mul_ctl]](v2html-up.gif)
![[Up: tlu_tcl dffrl_local_rst_l]](v2html-up.gif)
![[Up: cmp_top flop_ddr0_oe]](v2html-up.gif)
![[Up: cmp_top flop_ddr1_oe]](v2html-up.gif)
![[Up: cmp_top flop_ddr2_oe]](v2html-up.gif)
![[Up: cmp_top flop_ddr3_oe]](v2html-up.gif)
![[Up: cmp_sram_redhdr dshift_dly1_reg]](v2html-up.gif)
![[Up: cmp_sram_redhdr dshift_dly2_reg]](v2html-up.gif)
![[Up: cmp_sram_redhdr wren_reg]](v2html-up.gif)
![[Up: sparc_mul_top rstff]](v2html-up.gif)
![[Up: tlu_pib dffrl_local_rst_l]](v2html-up.gif)
![[Up: sctag_mbctl reset_flop]](v2html-up.gif)
![[Up: lsu_qctl1 rstff]](v2html-up.gif)
![[Up: sctag_iqctl reset_flop]](v2html-up.gif)
![[Up: lsu_stb_ctl rstff]](v2html-up.gif)
![[Up: tlu_hyperv dffrl_local_rst_l]](v2html-up.gif)
![[Up: dram_pad_logic ff_cnt_en_d2]](v2html-up.gif)
... (truncated)
module dffrl_async
(din, clk, rst_l, q, se, si, so);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk or scan clk
input rst_l ; // reset
output [SIZE-1:0] q ; // output
input se ; // scan-enable
input [SIZE-1:0] si ; // scan-input
output [SIZE-1:0] so ; // scan-output
reg [SIZE-1:0] q ;
`ifdef NO_SCAN
always @ (posedge clk or negedge rst_l)
q[SIZE-1:0] <= (!rst_l) ? {SIZE{1'b0}} : din[SIZE-1:0];
`else
// Reset dominates
always @ (posedge clk or negedge rst_l)
q[SIZE-1:0] <= (!rst_l) ? {SIZE{1'b0}} : ((se) ? si[SIZE-1:0] : din[SIZE-1:0] );
assign so[SIZE-1:0] = q[SIZE-1:0] ;
`endif
endmodule // dffrl_async
// POSITIVE-EDGE TRIGGERED FLOP with ASYNC RESET, without SCAN
//module dffr_async_ns (din, clk, rst, q);
//// synopsys template
//parameter SIZE = 1;
//input [SIZE-1:0] din ; // data in
//input clk ; // clk or scan clk
//input rst ; // reset
//output [SIZE-1:0] q ; // output
//reg [SIZE-1:0] q ;
// Reset dominates
//// synopsys async_set_reset "rst"
//always @ (posedge clk or posedge rst)
// if(rst) q[SIZE-1:0] <= {SIZE{1'b0}};
// else if(clk) q[SIZE-1:0] <= din[SIZE-1:0];
//endmodule // dffr_async_ns
// POSITIVE-EDGE TRIGGERED FLOP with ASYNC RESET_L, without SCAN
![[Up: ctu_clsp_ctrl u_j_rst_l]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_j_rst_l_1sht]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_j_rst_l_1sht_dly]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_ctrlsm_13_1]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_start_early_2clk_jl]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_start_early_clk_jl]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_start_clk_jl]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_creg_cken_vld_jl]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_ssiclk_enable]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_wrm_rst]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_tst_rst]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_wrm_rst_fc]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_clsp_bist_dobist]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_update_shadow_jl]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_dll_rst_l]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_ctu_tst_pre_grst_l]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_a_grst_jl]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_dram_a_grst_jl]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_rstctrl_idle_jl]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_frq_change]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_freq_change_stat]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_tst_stat]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_wrmrst_stat]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_ctu_iob_resetstat_wr_nxt]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_ctu_dram_selfrsh_jl]](v2html-up.gif)
![[Up: dram async_rst_flop]](v2html-up.gif)
![[Up: ctu_clsp_synch_jlcl u_start_clk_tmp]](v2html-up.gif)
![[Up: ctu_clsp_synch_jlcl u_start_clk_dly1]](v2html-up.gif)
![[Up: ctu_clsp_synch_jlcl u_start_clk_dly2]](v2html-up.gif)
![[Up: ctu_clsp_synch_jlcl u_start_clk_dly3]](v2html-up.gif)
![[Up: ctu_clsp_synch_jlcl u_start_clk_dly4]](v2html-up.gif)
... (truncated)
module dffrl_async_ns
(din, clk, rst_l, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk or scan clk
input rst_l ; // reset
output [SIZE-1:0] q ; // output
// Reset dominates
// synopsys async_set_reset "rst_l"
reg [SIZE-1:0] q;
always @ (posedge clk or negedge rst_l)
q[SIZE-1:0] <= ~rst_l ? {SIZE{1'b0}} : ({SIZE{rst_l}} & din[SIZE-1:0]);
// reg [SIZE-1:0] qm, qs, qm_l, qs_l, qm_f, qs_f;
// wire s_l;
// assign s_l = 1'b1;
//
// always @ (rst_l or qm) qm_l = ~(qm & {SIZE{rst_l}});
// always @ (s_l or qs) qs_l = ~(qs & {SIZE{s_l}});
// always @ (s_l or qm_l) qm_f = ~(qm_l & {SIZE{s_l}});
// always @ (rst_l or qs_l) qs_f = ~(qs_l & {SIZE{rst_l}});
//
// always @ (clk or din or qm_f)
// qm <= clk ? qm_f : din;
//
// always @ (clk or qm_l or qs_f)
// qs <= clk ? qm_l : qs_f;
//
// assign q = ~qs;
endmodule // dffrl_async_ns
// 2:1 MUX WITH DECODED SELECTS
![[Up: sctag_tagdp_ctl mux_tag_triad0_muxsel_c2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_tag_triad1_muxsel_c2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_tag_triad2_muxsel_c2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_tag_triad3_muxsel_c2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_used_lru_triad0]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_used_lru_triad1]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_used_lru_triad2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_used_lru_triad3]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_used_lru_quad]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_evict_way_sel_c2]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp irf_thr_mux]](v2html-up.gif)
![[Up: sctag_fbctl mux_fb_count]](v2html-up.gif)
![[Up: sctag_fbctl mux3_rtn_mbid]](v2html-up.gif)
![[Up: sctag_fbctl l2_way_mux]](v2html-up.gif)
![[Up: sctag_fbctl mux3_dep_mbid]](v2html-up.gif)
![[Up: sctag_fbctl mux_fbwr_entry_c2]](v2html-up.gif)
![[Up: sctag_fbctl mux2_fb_entry_c2]](v2html-up.gif)
![[Up: sctag_vuaddp_ctl mux_idx_c3]](v2html-up.gif)
![[Up: sctag_snpctl mux_snpiq_cnt]](v2html-up.gif)
![[Up: sctag_snpctl mux_rdmad_wr_entry_s2]](v2html-up.gif)
![[Up: sctag_vuadcol_dp mux_2to1]](v2html-up.gif)
![[Up: tlu_misctl mx_trap_pc_w1]](v2html-up.gif)
![[Up: tlu_misctl mx_trap_npc_w1]](v2html-up.gif)
![[Up: tlu_misctl mux_npc_new_w]](v2html-up.gif)
![[Up: sctag_arbctl mux1_tag_way_px]](v2html-up.gif)
![[Up: sctag_arbctl mux2_tag_way_px]](v2html-up.gif)
![[Up: sctag_arbctl mux3_tag_way_px]](v2html-up.gif)
![[Up: sctag_arbctl mux_cpuid_c3]](v2html-up.gif)
![[Up: sctag_arbctl mux1_inval_mask_c3]](v2html-up.gif)
![[Up: sctag_arbctl mux2_inval_mask_c3]](v2html-up.gif)
![[Up: sctag_arbctl mux1_ic_inval_mask_c3]](v2html-up.gif)
... (truncated)
module mux2ds
(dout, in0, in1, sel0, sel1) ;
// synopsys template
parameter SIZE = 1;
output [SIZE-1:0] dout;
input [SIZE-1:0] in0;
input [SIZE-1:0] in1;
input sel0;
input sel1;
// reg declaration does not imply state being maintained
// across cycles. Used to construct case statement and
// always updated by inputs every cycle.
reg [SIZE-1:0] dout ;
// priority encoding takes care of mutex'ing selects.
`ifdef VERPLEX
$constraint cl_1h_chk2 ($one_hot ({sel1,sel0}));
`endif
wire [1:0] sel = {sel1, sel0}; // 0in one_hot
always @ (sel0 or sel1 or in0 or in1)
case ({sel1,sel0}) // synopsys infer_mux
2'b01 : dout = in0 ;
2'b10 : dout = in1 ;
2'b11 : dout = {SIZE{1'bx}} ;
2'b00 : dout = {SIZE{1'bx}} ;
// 2'b00 : // E.g. 4state vs. 2state modelling.
// begin
// `ifdef FOUR_STATE
// dout = {SIZE{1'bx}};
// `else
// begin
// dout = {SIZE{1'b0}};
// $error();
// end
// `endif
// end
default : dout = {SIZE{1'bx}};
endcase
endmodule // mux2ds
// 3:1 MUX WITH DECODED SELECTS
![[Up: sctag_tagdp_ctl mux_lru_st]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_lru_st_triad0]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_lru_st_triad1]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_lru_st_triad2]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_lru_st_triad3]](v2html-up.gif)
![[Up: sctag_tagl_dp mux_tag_triad0]](v2html-up.gif)
![[Up: sctag_tagl_dp mux_tag_triad1]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp slot0_data_mux]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp slot1_data_mux]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp slot2_data_mux]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp slot3_data_mux]](v2html-up.gif)
![[Up: sctag_fbctl mux1_fb_entry_c2]](v2html-up.gif)
![[Up: sctag_fbctl mux_l2_rd_state]](v2html-up.gif)
![[Up: sctag_fbctl mux_l2_rd_state_quad0]](v2html-up.gif)
![[Up: sctag_fbctl mux_l2_rd_state_quad1]](v2html-up.gif)
![[Up: tlu_misctl mux_pc_new_w]](v2html-up.gif)
![[Up: sparc_ifu_swl fprs_mx0]](v2html-up.gif)
![[Up: sparc_ifu_swl fprs_mx1]](v2html-up.gif)
![[Up: sparc_ifu_swl fprs_mx2]](v2html-up.gif)
![[Up: sparc_ifu_swl fprs_mx3]](v2html-up.gif)
![[Up: lsu_dctl err_tid_mx]](v2html-up.gif)
![[Up: sctag_csr addr_c9_mux2]](v2html-up.gif)
![[Up: sctag_csr mux_mux2_data_out_c7]](v2html-up.gif)
![[Up: sctag_oqctl mux_imiss_err_or_intreq_c5]](v2html-up.gif)
![[Up: sctag_oqctl mux_oq_count]](v2html-up.gif)
![[Up: sparc_exu_byp sr_out_mux]](v2html-up.gif)
![[Up: sparc_exu_byp rs1_w2_mux]](v2html-up.gif)
![[Up: sparc_exu_byp rs2_w2_mux]](v2html-up.gif)
![[Up: sparc_exu_byp rs3_w2_mux]](v2html-up.gif)
![[Up: sparc_exu_byp rs3h_w2_mux]](v2html-up.gif)
![[Up: sparc_exu_byp mux_w2_data]](v2html-up.gif)
... (truncated)
module mux3ds
(dout, in0, in1, in2, sel0, sel1, sel2) ;
// synopsys template
parameter SIZE = 1;
output [SIZE-1:0] dout;
input [SIZE-1:0] in0;
input [SIZE-1:0] in1;
input [SIZE-1:0] in2;
input sel0;
input sel1;
input sel2;
// reg declaration does not imply state being maintained
// across cycles. Used to construct case statement and
// always updated by inputs every cycle.
reg [SIZE-1:0] dout ;
`ifdef VERPLEX
$constraint cl_1h_chk3 ($one_hot ({sel2,sel1,sel0}));
`endif
wire [2:0] sel = {sel2,sel1,sel0}; // 0in one_hot
// priority encoding takes care of mutex'ing selects.
always @ (sel0 or sel1 or sel2 or in0 or in1 or in2)
case ({sel2,sel1,sel0})
3'b001 : dout = in0 ;
3'b010 : dout = in1 ;
3'b100 : dout = in2 ;
3'b000 : dout = {SIZE{1'bx}} ;
3'b011 : dout = {SIZE{1'bx}} ;
3'b101 : dout = {SIZE{1'bx}} ;
3'b110 : dout = {SIZE{1'bx}} ;
3'b111 : dout = {SIZE{1'bx}} ;
default : dout = {SIZE{1'bx}};
// two state vs four state modelling will be added.
endcase
endmodule // mux3ds
// 4:1 MUX WITH DECODED SELECTS
![[Up: sctag_tagdp_ctl mux_way_low]](v2html-up.gif)
![[Up: sctag_tagdp_ctl mux_way_high]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp mux_cwp_old_w]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp mux_cwp_out_d]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp mux_cwp_out_e]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp mux_cwp_trap]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp cwp_next0_mux]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp cwp_next1_mux]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp cwp_next2_mux]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp cwp_next3_mux]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp slot0_state_mux]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp slot1_state_mux]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp slot2_state_mux]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp slot3_state_mux]](v2html-up.gif)
![[Up: sparc_exu_rml_cwp cwp_output_mux]](v2html-up.gif)
![[Up: sctag_fbctl mux1_rtn_mbid]](v2html-up.gif)
![[Up: sctag_fbctl mux2_rtn_mbid]](v2html-up.gif)
![[Up: sctag_fbctl l2_way_mux1]](v2html-up.gif)
![[Up: sctag_fbctl l2_way_mux2]](v2html-up.gif)
![[Up: sctag_fbctl mux_mbid0]](v2html-up.gif)
![[Up: sctag_fbctl mux_mbid1]](v2html-up.gif)
![[Up: sctag_fbctl mux_mbid2]](v2html-up.gif)
![[Up: sctag_fbctl mux_mbid3]](v2html-up.gif)
![[Up: sctag_fbctl mux_mbid4]](v2html-up.gif)
![[Up: sctag_fbctl mux_mbid5]](v2html-up.gif)
![[Up: sctag_fbctl mux_mbid6]](v2html-up.gif)
![[Up: sctag_fbctl mux_mbid7]](v2html-up.gif)
![[Up: sctag_fbctl mux1_dep_mbid]](v2html-up.gif)
![[Up: sctag_fbctl mux2_dep_mbid]](v2html-up.gif)
![[Up: sctag_vuad_io mux_data_out_io]](v2html-up.gif)
![[Up: sctag_vuadcol_dp mux_h_4to1]](v2html-up.gif)
... (truncated)
module mux4ds
(dout, in0, in1, in2, in3, sel0, sel1, sel2, sel3) ;
// synopsys template
parameter SIZE = 1;
output [SIZE-1:0] dout;
input [SIZE-1:0] in0;
input [SIZE-1:0] in1;
input [SIZE-1:0] in2;
input [SIZE-1:0] in3;
input sel0;
input sel1;
input sel2;
input sel3;
// reg declaration does not imply state being maintained
// across cycles. Used to construct case statement and
// always updated by inputs every cycle.
reg [SIZE-1:0] dout ;
`ifdef VERPLEX
$constraint cl_1h_chk4 ($one_hot ({sel3,sel2,sel1,sel0}));
`endif
wire [3:0] sel = {sel3,sel2,sel1,sel0}; // 0in one_hot
// priority encoding takes care of mutex'ing selects.
always @ (sel0 or sel1 or sel2 or sel3 or in0 or in1 or in2 or in3)
case ({sel3,sel2,sel1,sel0})
4'b0001 : dout = in0 ;
4'b0010 : dout = in1 ;
4'b0100 : dout = in2 ;
4'b1000 : dout = in3 ;
4'b0000 : dout = {SIZE{1'bx}} ;
4'b0011 : dout = {SIZE{1'bx}} ;
4'b0101 : dout = {SIZE{1'bx}} ;
4'b0110 : dout = {SIZE{1'bx}} ;
4'b0111 : dout = {SIZE{1'bx}} ;
4'b1001 : dout = {SIZE{1'bx}} ;
4'b1010 : dout = {SIZE{1'bx}} ;
4'b1011 : dout = {SIZE{1'bx}} ;
4'b1100 : dout = {SIZE{1'bx}} ;
4'b1101 : dout = {SIZE{1'bx}} ;
4'b1110 : dout = {SIZE{1'bx}} ;
4'b1111 : dout = {SIZE{1'bx}} ;
default : dout = {SIZE{1'bx}};
// two state vs four state modelling will be added.
endcase
endmodule // mux4ds
// SINK FOR UNLOADED INPUT PORTS
![[Up: sparc_ifu_swl s0]](v2html-up.gif)
![[Up: sparc_ifu s0]](v2html-up.gif)
![[Up: sparc_ifu s1]](v2html-up.gif)
![[Up: sparc_ifu s2]](v2html-up.gif)
![[Up: sparc_ifu s3]](v2html-up.gif)
![[Up: sparc_ifu s4]](v2html-up.gif)
![[Up: sparc_ifu_errctl s0]](v2html-up.gif)
![[Up: sparc_ifu_errctl s1]](v2html-up.gif)
![[Up: sparc_ifu_sscan s0]](v2html-up.gif)
![[Up: sparc_ifu_invctl s0]](v2html-up.gif)
![[Up: sparc_ifu_fcl s0]](v2html-up.gif)
![[Up: sparc_tlu_intctl s1]](v2html-up.gif)
![[Up: sparc_ifu_ifqdp s0]](v2html-up.gif)
![[Up: sparc_ifu_ifqdp s1]](v2html-up.gif)
![[Up: sparc_ifu_ifqdp s2]](v2html-up.gif)
![[Up: sparc_ifu_swpla s0]](v2html-up.gif)
module sink
(in);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] in;
`ifdef FPGA_SYN
// As of version 8.2 XST does not remove this module without the
// following additional dead code
wire a;
assign a = | in;
`endif
endmodule //sink
// SOURCE FOR UNDRIVEN OUTPUT PORTS
module source
(out) ;
// synopsys template
parameter SIZE = 1;
output [SIZE-1:0] out;
//
// Once 4state/2state model established
// then enable check.
// `ifdef FOUR_STATE
// leda check for x_or_z_in rhs_of assign turned off
// assign out = {SIZE{1'bx}};
//`else
assign out = {SIZE{1'b0}};
//`endif
endmodule //source
// 2:1 MUX WITH PRIORITY ENCODED SELECTS
//module mux2es (dout, in0, in1, sel0, sel1) ;
//
//parameter SIZE = 1;
//
//output [SIZE-1:0] dout;
//input [SIZE-1:0] in0;
//input [SIZE-1:0] in1;
//input sel0;
//input sel1;
//
//// reg declaration does not imply state being maintained
//// across cycles. Used to construct case statement and
//// always updated by inputs every cycle.
//reg [SIZE-1:0] dout ;
//
//// must take into account lack of mutex selects.
//// there is no reason for handling of x and z conditions.
//// This will be dictated by design.
//always @ (sel0 or sel1 or in0 or in1)
//
// case ({sel1,sel0})
// 2'b1x : dout = in1 ; // 10(in1),11(z)
// 2'b0x : dout = in0 ; // 01(in0),00(x)
// endcase
//
//endmodule // mux2es
// CLK Header for gating off the clock of
// a FF.
// clk - output of the clk header
// rclk - input clk
// enb_l - Active low clock enable
// tmb_l - Active low clock enable ( in scan mode, this input is !se )
![[Up: cpx_dp_maca_l ck0]](v2html-up.gif)
![[Up: cpx_dp_maca_l ck1]](v2html-up.gif)
![[Up: pcx_dp_maca_r ck0]](v2html-up.gif)
![[Up: pcx_dp_maca_r ck1]](v2html-up.gif)
![[Up: sparc_exu_byp irf_write_clkbuf]](v2html-up.gif)
![[Up: cpx_dp_maca_r ck0]](v2html-up.gif)
![[Up: cpx_dp_maca_r ck1]](v2html-up.gif)
![[Up: sctag_snpdp ckbuf_1]](v2html-up.gif)
![[Up: sctag_snpdp ckbuf_2]](v2html-up.gif)
![[Up: sctag_snpdp ckbuf_4]](v2html-up.gif)
![[Up: sctag_snpdp ckbuf_5]](v2html-up.gif)
![[Up: sctag_snpdp ckbuf_6]](v2html-up.gif)
![[Up: sctag_snpdp ckbuf_7]](v2html-up.gif)
![[Up: sctag_snpdp ckbuf_8]](v2html-up.gif)
![[Up: sctag_snpdp ckbuf_10]](v2html-up.gif)
![[Up: sctag_snpdp ckbuf_11]](v2html-up.gif)
![[Up: sctag_snpdp ckbuf_12]](v2html-up.gif)
![[Up: fpu_div_frac_dp ckbuf_div_frac_dp]](v2html-up.gif)
![[Up: spu_madp mem_rddata_lcd]](v2html-up.gif)
![[Up: spu_madp oprnd2_lcd]](v2html-up.gif)
![[Up: spu_madp mpa_lcd]](v2html-up.gif)
![[Up: spu_madp modulus_lcd]](v2html-up.gif)
![[Up: spu_madp exp_e_data_lcd]](v2html-up.gif)
![[Up: spu_madp mulorred_data_lcd]](v2html-up.gif)
![[Up: spu_madp mampa_reg_lcd]](v2html-up.gif)
![[Up: spu_madp maaddr_reg_lcd]](v2html-up.gif)
![[Up: spu_madp manp_reg_lcd]](v2html-up.gif)
![[Up: spu_madp lnupper_data_lcd]](v2html-up.gif)
![[Up: spu_madp lnlower_data_lcd]](v2html-up.gif)
![[Up: sctag_arbdecdp ckbuf_0]](v2html-up.gif)
![[Up: fpu_mul_frac_dp ckbuf_mul_frac_dp]](v2html-up.gif)
... (truncated)
module clken_buf
(clk, rclk, enb_l, tmb_l);
output clk;
input rclk, enb_l, tmb_l;
reg clken;
always @ (rclk or enb_l or tmb_l)
if (!rclk) //latch opens on rclk low phase
clken = !enb_l | !tmb_l;
assign clk = clken & rclk;
endmodule
// The following flops are maintained and used in ENET , MAC IP ONLY
// -- Mimi X61467
// POSITIVE-EDGE TRIGGERED FLOP with SET_L, without SCAN.
![[Up: jbi_jbus_arb grants_p1_reg0]](v2html-up.gif)
![[Up: jbi_dbg_ctl u_dffrl_alternate_hi]](v2html-up.gif)
![[Up: jbi_ncio_mrqq_ctl u_dffrl_pop_sm0]](v2html-up.gif)
![[Up: ctu_clsp_creg u_cnt_ld]](v2html-up.gif)
![[Up: ctu_clsp_clkctrl u_cctrl_start_state_0]](v2html-up.gif)
![[Up: jbi_min u_dffrl_0_csr_16x65array_margin_ff]](v2html-up.gif)
![[Up: jbi_min u_dffrl_2_csr_16x65array_margin_ff]](v2html-up.gif)
![[Up: jbi_min u_dffrl_4_csr_16x65array_margin_ff]](v2html-up.gif)
module dffsl_ns
(din, clk, set_l, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk or scan clk
input set_l ; // set
output [SIZE-1:0] q ; // output
reg [SIZE-1:0] q ;
// synopsys sync_set_reset "set_l"
always @ (posedge clk)
q[SIZE-1:0] <= set_l ? din[SIZE-1:0] : {SIZE{1'b1}};
endmodule // dffsl_ns
// POSITIVE-EDGE TRIGGERED FLOP with SET_L, without SCAN.
![[Up: ctu_clsp_ctrl u_ctrlsm_0]](v2html-up.gif)
![[Up: ctu_clsp_ctrl u_powron_stat]](v2html-up.gif)
![[Up: iobdg_efuse_reg fuse_reg_ff]](v2html-up.gif)
![[Up: ctu_clsp_synch_jlcl u_ctu_jbusl_cken_jl]](v2html-up.gif)
![[Up: ctu_clsp_synch_jlcl u_ctu_jbusr_cken_jl]](v2html-up.gif)
![[Up: ctu_clsp_synch_jlcl u_ctu_dbg_cken_jl]](v2html-up.gif)
![[Up: ctu_clsp_synch_jlcl u_ctu_misc_cken_jl]](v2html-up.gif)
![[Up: ctu_dft_jtag_tap u_dffsl_tap_state0]](v2html-up.gif)
![[Up: ctu_dft_jtag_tap u_dffsl_new_instructions0]](v2html-up.gif)
![[Up: ctu_dft_jtag_tap u_dffsl_instructions0]](v2html-up.gif)
![[Up: ctu_clsp_pllcnt u_rstsm_0]](v2html-up.gif)
![[Up: ctu_clsp_pllcnt u_pll_reset_dly1_l]](v2html-up.gif)
![[Up: ctu_clsp_pllcnt u_pll_reset_dly2_l]](v2html-up.gif)
![[Up: ctu_clsp_pllcnt u_pll_reset_short]](v2html-up.gif)
![[Up: ctu_clsp_pllcnt u_pll_reset_ref_l]](v2html-up.gif)
![[Up: ctu_clsp_pllcnt u_pll_reset_ref_dly1_l]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg u_cnt_ld]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg u_jsync_shadreg_rx2_0_ff_async]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg u_jsync_shadreg_rx1_0_ff_async]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg u_jsync_shadreg_rx0_0_ff_async]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg jsync_shadreg_period_1_0_ff]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg jsync_shadreg_init_1_ff]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg u_dsync_shadreg_rx2_0_ff_async]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg u_dsync_shadreg_rx1_0_ff_async]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg u_dsync_shadreg_rx0_0_ff_async]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg dsync_shadreg_period_1_0_ff]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg dsync_shadreg_init_1_ff]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg u_shadreg_div_cmult_5_ff]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg u_shadreg_div_dmult_3_ff]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg u_shadreg_div_jmult_3_ff]](v2html-up.gif)
![[Up: ctu_clsp_clkgn_shadreg u_shadreg_cdiv_vec_9]](v2html-up.gif)
... (truncated)
module dffsl_async_ns
(din, clk, set_l, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk or scan clk
input set_l ; // set
output [SIZE-1:0] q ; // output
reg [SIZE-1:0] q ;
// synopsys async_set_reset "set_l"
always @ (posedge clk or negedge set_l)
q[SIZE-1:0] <= ~set_l ? {SIZE{1'b1}} : ({SIZE{~set_l}} | din[SIZE-1:0]);
endmodule // dffsl_async_ns
// POSITIVE-EDGE TRIGGERED FLOP WITH SET_H , without SCAN.
module dffr_ns_r1
(din, clk, rst, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk or scan clk
input rst ; // reset
output [SIZE-1:0] q ; // output
reg [SIZE-1:0] q ;
// Set to 1
// synopsys sync_set_reset "rst"
always @ (posedge clk)
q[SIZE-1:0] <= rst ? {SIZE{1'b1}} : din[SIZE-1:0];
endmodule // dffr_ns_r1
// POSITIVE-EDGE TRIGGERED ASYNC RESET_H FLOP , without SCAN.
module dffr_async_ns
(din, clk, rst, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk or scan clk
input rst; // reset
output [SIZE-1:0] q ; // output
reg [SIZE-1:0] q ;
// Reset dominates
// synopsys async_set_reset "rst"
always @ (posedge clk or posedge rst)
q[SIZE-1:0] <= rst ? {SIZE{1'b0}} : din[SIZE-1:0];
endmodule // dffr_async_ns
// POSITIVE-EDGE TRIGGERED ASYNC SET_H FLOP , without SCAN.
module dffr_async_ns_r1
(din, clk, rst, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clk ; // clk or scan clk
input rst; // reset
output [SIZE-1:0] q ; // output
reg [SIZE-1:0] q ;
// Reset to 1
// synopsys async_set_reset "rst"
always @ (posedge clk or posedge rst)
q[SIZE-1:0] <= rst ? {SIZE{1'b1}} : din[SIZE-1:0];
endmodule // dffr_async_ns_r1
// NEGATIVE-EDGE TRIGGERED ASYNC SET_H FLOP , without SCAN.
module dffr_async_ns_cl_r1
(din, clkl, rst, q);
// synopsys template
parameter SIZE = 1;
input [SIZE-1:0] din ; // data in
input clkl ; // clk or scan clk
input rst ; // reset
output [SIZE-1:0] q ; // output
reg [SIZE-1:0] q ;
// Set to 1
// synopsys sync_set_reset "rst"
always @ (negedge clkl or posedge rst)
q[SIZE-1:0] <= rst ? {SIZE{1'b1}} : din[SIZE-1:0];
endmodule // dffr_async_ns_cl_r1