// ========== Copyright Header Begin ==========================================
// OpenSPARC T2 Processor File: cl_dp1.behV
// 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 ============================================
module cl_dp1_msffmin_30ps_16x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffmin_30ps_8x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffmin_30ps_4x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffmin_30ps_32x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffmin_30ps_1x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_bsac_cell_4x(q, so, d, l1clk, si, siclk, soclk, updateclk,
ac_mode, ac_test_signal);
input updateclk, ac_mode;
wire l1clk, siclk, soclk, updateclk;
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
if ( l1clk && siclk) l1 <= si; // Load master with
if (!l1clk && siclk) l1 <= 1'bx; // Conflict between
if ( l1clk && !soclk) so <= l1; // Load slave with
if ( l1clk && siclk && !soclk) so <= si; // Flush
always@(ac_mode or qm or ac_test_signal)
else q=qm ^ ac_test_signal;
module cl_dp1_blatch_4x ( latout, so, d, l1clk, si, siclk, soclk);
always @(l1clk or siclk or soclk or d or si) begin
if (!l1clk && !siclk) m <= d; // Load master with data
else if ( l1clk && siclk) m <= si; // Load master with scan or flush
else if (!l1clk && siclk) m <= 1'bx; // Conflict between data and scan
if ( l1clk && !soclk && !siclk) s <= m; // Load slave with master data
else if (l1clk && siclk && !soclk) s <= si; // Flush
always @(l1clk or d or si or siclk) begin
if(siclk==0 && l1clk==0) m = d;
else if(siclk && !l1clk) m = 1'bx;
if(siclk && l1clk) m = si;
if(l1clk && !soclk) s = m;
module cl_dp1_alatch_4x ( q, so, d, l1clk, si, siclk, soclk, se );
wire l1clk, siclk, soclk;
always @(l1clk or siclk or soclk or d or si or se)
if (siclk) l1 <= si; // Load master with scan or flush
if(se && !soclk && l1clk && siclk) q <= si;
else if ( se && !soclk && l1clk) q <= l1;
else if ( !soclk && l1clk) q <= d;
module cl_dp1_msffmin_16x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffmin_8x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffmin_4x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffmin_32x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffmin_1x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_rep_m6_32x (
assign {cout, out[11:0]} = ({1'b0, in0[11:0]} + {1'b0, in1[11:0]} + {{12{1'b0}}, cin});
module cl_dp1_add136_8x (
assign sum[135:0] = { din0[135:0]} +
({{{40{sel_din2[3]}} & din2[135:96]},
{{32{sel_din2[2]}} & din2[95:64] },
{{32{sel_din2[1]}} & din2[63:32] },
{{32{sel_din2[0]}} & din2[31:0] }});
// 127 126 125 ... 74 73 72 0
// --- --- --------------- --- ------------
// Float DP x x . 52 fraction G -> Sticky ->
// 127 126 125 ... 103 102 101 0
// --- --- --------------- --- ------------
// Float SP x x . 23 fraction G -> Sticky ->
assign p[101:0] = din0[101:0] ^ {din1[101:4],{4{1'b0}}};
assign k[100:0] = ~din0[100:0] & ~{din1[100:4],{4{1'b0}}};
assign z[101:1] = p[101:1] ^ k[100:0];
assign fya_sticky_sp = ~(& z[101:0]);
assign fya_sticky_dp = ~(& z[72:0]);
assign fya_xicc_z[1] = & z[63:0];
assign fya_xicc_z[0] = & z[31:0];
assign {cout, out[15:0]} = ({1'b0, in0[15:0]} + {1'b0, in1[15:0]} + {{16{1'b0}}, cin});
assign {cout, out[31:0]} = ({1'b0, in0[31:0]} + {1'b0, in1[31:0]} + {{32{1'b0}}, cin});
assign {cout, out[3:0]} = ({1'b0, in0[3:0]} + {1'b0, in1[3:0]} + {{4{1'b0}}, cin});
assign {cout, out[63:0]} = ({1'b0, in0[63:0]} + {1'b0, in1[63:0]} + {{64{1'b0}}, cin});
assign {cout, out[7:0]} = ({1'b0, in0[7:0]} + {1'b0, in1[7:0]} + {{8{1'b0}}, cin});
module cl_dp1_aomux2_1x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux2_2x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux2_4x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux2_6x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux2_8x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux3_1x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux3_2x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux3_4x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux3_6x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux3_8x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux4_1x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux4_2x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux4_4x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux4_6x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux4_8x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux5_1x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux5_2x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux5_4x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux5_6x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux5_8x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux6_1x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux6_2x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux6_4x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux6_6x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux6_8x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux7_1x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux7_2x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux7_4x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux7_6x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux7_8x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux8_1x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux8_2x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux8_4x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux8_6x (
assign out = ((sel0 & in0) |
module cl_dp1_aomux8_8x (
assign out = ((sel0 & in0) |
module cl_dp1_boothenc_4x (
assign dout[0] = (~xr_mode & ~din[2] & ~din[1] & din[0]) | // +1
(~xr_mode & ~din[2] & din[1] & ~din[0]) |
( xr_mode & ~din[2] & din[1] );
assign dout[1] = (~xr_mode & ~din[2] & din[1] & din[0]) | // +2
( xr_mode & din[2] & ~din[1] );
assign dout[2] = (~xr_mode & din[2] & ~din[1] & ~din[0]); // -2
assign dout[3] = (~xr_mode & din[2] & ~din[1] & din[0]) | // -1
(~xr_mode & din[2] & din[1] & ~din[0]);
assign dout[4] = ( xr_mode & din[2] & din[1] ); // +3
assign pout = (~xr_mode & ~din[2] ) | // P
(~xr_mode & din[1] & din[0]);
assign hout = (~xr_mode & din[2] & ~din[1] ) | // H
(~xr_mode & din[2] & ~din[0]);
module cl_dp1_boothenc_8x (
assign dout[0] = (~xr_mode & ~din[2] & ~din[1] & din[0]) | // +1
(~xr_mode & ~din[2] & din[1] & ~din[0]) |
( xr_mode & ~din[2] & din[1] );
assign dout[1] = (~xr_mode & ~din[2] & din[1] & din[0]) | // +2
( xr_mode & din[2] & ~din[1] );
assign dout[2] = (~xr_mode & din[2] & ~din[1] & ~din[0]); // -2
assign dout[3] = (~xr_mode & din[2] & ~din[1] & din[0]) | // -1
(~xr_mode & din[2] & din[1] & ~din[0]);
assign dout[4] = ( xr_mode & din[2] & din[1] ); // +3
assign pout = (~xr_mode & ~din[2] ) | // P
(~xr_mode & din[1] & din[0]);
assign hout = (~xr_mode & din[2] & ~din[1] ) | // H
(~xr_mode & din[2] & ~din[0]);
module cl_dp1_cmpr12_8x (
assign out = (in0[11:0] == in1[11:0]);
module cl_dp1_cmpr16_8x (
assign out = (in0[15:0] == in1[15:0]);
module cl_dp1_cmpr32_8x (
assign out = (in0[31:0] == in1[31:0]);
assign out = (in0[3:0] == in1[3:0]);
module cl_dp1_cmpr64_8x (
assign out = (in0[63:0] == in1[63:0]);
assign out = (in0[7:0] == in1[7:0]);
module cl_dp1_incr12_8x (
assign {cout, out[11:0]} = {1'b0, in0[11:0]} + {12'b0, cin};
module cl_dp1_incr16_8x (
assign {cout, out[15:0]} = {1'b0, in0[15:0]} + {16'b0, cin};
module cl_dp1_incr32_8x (
assign {cout, out[31:0]} = {1'b0, in0[31:0]} + {32'b0, cin};
assign {cout, out[3:0]} = {1'b0, in0[3:0]} + {4'b0, cin};
module cl_dp1_incr48_8x (
assign {cout, out[47:0]} = {1'b0, in0[47:0]} + {48'b0, cin};
module cl_dp1_incr64_8x (
assign {cout, out[63:0]} = {1'b0, in0[63:0]} + {64'b0, cin};
assign {cout, out[7:0]} = {1'b0, in0[7:0]} + {8'b0, cin};
endmodule // cl_dp1_incr8_8x
module cl_dp1_l1hdr_12x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= (~stop & (pce | pce_ov));
always @ (negedge l2clk )
l1en <= (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
`endif // !`ifdef FORMAL_TOOL
module cl_dp1_l1hdr_16x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= (~stop & (pce | pce_ov));
always @ (negedge l2clk )
l1en <= (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
module cl_dp1_l1hdr_24x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= (~stop & (pce | pce_ov));
always @ (negedge l2clk )
l1en <= (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
module cl_dp1_l1hdr_32x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= (~stop & (pce | pce_ov));
always @ (negedge l2clk )
l1en <= (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
module cl_dp1_l1hdr_4x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= (~stop & (pce | pce_ov));
always @ (negedge l2clk )
l1en <= (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
module cl_dp1_l1hdr_8x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= (~stop & (pce | pce_ov));
always @ (negedge l2clk )
l1en <= (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
module cl_dp1_l1hdr_48x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= (~stop & (pce | pce_ov));
always @ (negedge l2clk )
l1en <= (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
module cl_dp1_l1hdr_64x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= (~stop & (pce | pce_ov));
always @ (negedge l2clk )
l1en <= (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
module cl_dp1_l1hdr_nostop_48x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = pce | pce_ov ;
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= ((pce | pce_ov));
always @ (negedge l2clk )
l1en <= (( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
module cl_dp1_inv_diode_16x (
module cl_dp1_l1hdr_nostop_72x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = pce | pce_ov ;
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= ((pce | pce_ov));
always @ (negedge l2clk )
l1en <= (( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
module cl_dp1_l1hdr_nostop_64x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = pce | pce_ov ;
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= ((pce | pce_ov));
always @ (negedge l2clk )
l1en <= (( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
module cl_dp1_msff_16x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msff_1x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msff_32x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msff_4x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msff_8x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffi_16x ( q_l, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffi_1x ( q_l, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffi_32x ( q_l, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffi_4x ( q_l, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffi_8x ( q_l, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_msffiz_32x ( q_l, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q_l <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= ~d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q_l <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q_l <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q_l <= ~d;
module cl_dp1_msffiz_16x ( q_l, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q_l <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= ~d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q_l <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q_l <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q_l <= ~d;
always @ ( sel0 or in0 or in1)
always @ ( sel0 or in0 or in1)
always @ ( sel0 or in0 or in1)
always @ ( sel0 or in0 or in1)
always @ ( sel0 or in0 or in1)
always @ ( sel0 or in0 or in1)
always @ ( sel0 or in0 or in1)
always @ ( sel0 or in0 or in1)
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
wire [3:0] sel= {muxtst,sel2,sel1,sel0};
assign out = (sel[2:0] == 3'b001) ? in0:
(sel[2:0] == 3'b010) ? in1:
(sel[2:0] == 3'b100) ? in2:
(sel[3:0] == 4'b0000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
wire [3:0] sel = {muxtst,sel2,sel1,sel0};
assign out = (sel[2:0] == 3'b001) ? in0:
(sel[2:0] == 3'b010) ? in1:
(sel[2:0] == 3'b100) ? in2:
(sel[3:0] == 4'b0000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
wire [3:0] sel = {muxtst,sel2,sel1,sel0};
assign out = (sel[2:0] == 3'b001) ? in0:
(sel[2:0] == 3'b010) ? in1:
(sel[2:0] == 3'b100) ? in2:
(sel[3:0] == 4'b0000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
wire [3:0] sel= {muxtst,sel2,sel1,sel0};
assign out = (sel[2:0] == 3'b001) ? in0:
(sel[2:0] == 3'b010) ? in1:
(sel[2:0] == 3'b100) ? in2:
(sel[3:0] == 4'b0000) ? 1'b1:
wire [3:0] sel= {muxtst,sel2,sel1,sel0};
assign out = (sel[2:0] == 3'b001) ? in0:
(sel[2:0] == 3'b010) ? in1:
(sel[2:0] == 3'b100) ? in2:
(sel[3:0] == 4'b0000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
wire [3:0] sel= {muxtst,sel2,sel1,sel0};
assign out = (sel[2:0] == 3'b001) ? in0:
(sel[2:0] == 3'b010) ? in1:
(sel[2:0] == 3'b100) ? in2:
(sel[3:0] == 4'b0000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
wire [3:0] sel= {muxtst,sel2,sel1,sel0};
assign out = (sel[2:0] == 3'b001) ? in0:
(sel[2:0] == 3'b010) ? in1:
(sel[2:0] == 3'b100) ? in2:
(sel[3:0] == 4'b0000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
wire [3:0] sel = {muxtst,sel2,sel1,sel0};
assign out = (sel[2:0] == 3'b001) ? in0:
(sel[2:0] == 3'b010) ? in1:
(sel[2:0] == 3'b100) ? in2:
(sel[3:0] == 4'b0000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2}
wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
assign out = (sel[3:0] == 4'b0001) ? in0:
(sel[3:0] == 4'b0010) ? in1:
(sel[3:0] == 4'b0100) ? in2:
(sel[3:0] == 4'b1000) ? in3:
(sel[4:0] == 5'b00000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
assign out = (sel[3:0] == 4'b0001) ? in0:
(sel[3:0] == 4'b0010) ? in1:
(sel[3:0] == 4'b0100) ? in2:
(sel[3:0] == 4'b1000) ? in3:
(sel[4:0] == 5'b00000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
assign out = (sel[3:0] == 4'b0001) ? in0:
(sel[3:0] == 4'b0010) ? in1:
(sel[3:0] == 4'b0100) ? in2:
(sel[3:0] == 4'b1000) ? in3:
(sel[4:0] == 5'b00000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
assign out = (sel[3:0] == 4'b0001) ? in0:
(sel[3:0] == 4'b0010) ? in1:
(sel[3:0] == 4'b0100) ? in2:
(sel[3:0] == 4'b1000) ? in3:
(sel[4:0] == 5'b00000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
assign out = (sel[3:0] == 4'b0001) ? in0:
(sel[3:0] == 4'b0010) ? in1:
(sel[3:0] == 4'b0100) ? in2:
(sel[3:0] == 4'b1000) ? in3:
(sel[4:0] == 5'b00000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
assign out = (sel[3:0] == 4'b0001) ? in0:
(sel[3:0] == 4'b0010) ? in1:
(sel[3:0] == 4'b0100) ? in2:
(sel[3:0] == 4'b1000) ? in3:
(sel[4:0] == 5'b00000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
assign out = (sel[3:0] == 4'b0001) ? in0:
(sel[3:0] == 4'b0010) ? in1:
(sel[3:0] == 4'b0100) ? in2:
(sel[3:0] == 4'b1000) ? in3:
(sel[4:0] == 5'b00000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3}
wire [4:0] sel = {muxtst,sel3,sel2,sel1,sel0};
assign out = (sel[3:0] == 4'b0001) ? in0:
(sel[3:0] == 4'b0010) ? in1:
(sel[3:0] == 4'b0100) ? in2:
(sel[3:0] == 4'b1000) ? in3:
(sel[4:0] == 5'b00000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[4:0] == 5'b00001) ? in0:
(sel[4:0] == 5'b00010) ? in1:
(sel[4:0] == 5'b00100) ? in2:
(sel[4:0] == 5'b01000) ? in3:
(sel[4:0] == 5'b10000) ? in4:
(sel[5:0] == 6'b000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[4:0] == 5'b00001) ? in0:
(sel[4:0] == 5'b00010) ? in1:
(sel[4:0] == 5'b00100) ? in2:
(sel[4:0] == 5'b01000) ? in3:
(sel[4:0] == 5'b10000) ? in4:
(sel[5:0] == 6'b000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[4:0] == 5'b00001) ? in0:
(sel[4:0] == 5'b00010) ? in1:
(sel[4:0] == 5'b00100) ? in2:
(sel[4:0] == 5'b01000) ? in3:
(sel[4:0] == 5'b10000) ? in4:
(sel[5:0] == 6'b000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[4:0] == 5'b00001) ? in0:
(sel[4:0] == 5'b00010) ? in1:
(sel[4:0] == 5'b00100) ? in2:
(sel[4:0] == 5'b01000) ? in3:
(sel[4:0] == 5'b10000) ? in4:
(sel[5:0] == 6'b000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[4:0] == 5'b00001) ? in0:
(sel[4:0] == 5'b00010) ? in1:
(sel[4:0] == 5'b00100) ? in2:
(sel[4:0] == 5'b01000) ? in3:
(sel[4:0] == 5'b10000) ? in4:
(sel[5:0] == 6'b000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[4:0] == 5'b00001) ? in0:
(sel[4:0] == 5'b00010) ? in1:
(sel[4:0] == 5'b00100) ? in2:
(sel[4:0] == 5'b01000) ? in3:
(sel[4:0] == 5'b10000) ? in4:
(sel[5:0] == 6'b000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[4:0] == 5'b00001) ? in0:
(sel[4:0] == 5'b00010) ? in1:
(sel[4:0] == 5'b00100) ? in2:
(sel[4:0] == 5'b01000) ? in3:
(sel[4:0] == 5'b10000) ? in4:
(sel[5:0] == 6'b000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4}
wire [5:0] sel = {muxtst,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[4:0] == 5'b00001) ? in0:
(sel[4:0] == 5'b00010) ? in1:
(sel[4:0] == 5'b00100) ? in2:
(sel[4:0] == 5'b01000) ? in3:
(sel[4:0] == 5'b10000) ? in4:
(sel[5:0] == 6'b000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[5:0] == 6'b000001) ? in0:
(sel[5:0] == 6'b000010) ? in1:
(sel[5:0] == 6'b000100) ? in2:
(sel[5:0] == 6'b001000) ? in3:
(sel[5:0] == 6'b010000) ? in4:
(sel[5:0] == 6'b100000) ? in5:
(sel[6:0] == 7'b0000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[5:0] == 6'b000001) ? in0:
(sel[5:0] == 6'b000010) ? in1:
(sel[5:0] == 6'b000100) ? in2:
(sel[5:0] == 6'b001000) ? in3:
(sel[5:0] == 6'b010000) ? in4:
(sel[5:0] == 6'b100000) ? in5:
(sel[6:0] == 7'b0000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[5:0] == 6'b000001) ? in0:
(sel[5:0] == 6'b000010) ? in1:
(sel[5:0] == 6'b000100) ? in2:
(sel[5:0] == 6'b001000) ? in3:
(sel[5:0] == 6'b010000) ? in4:
(sel[5:0] == 6'b100000) ? in5:
(sel[6:0] == 7'b0000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[5:0] == 6'b000001) ? in0:
(sel[5:0] == 6'b000010) ? in1:
(sel[5:0] == 6'b000100) ? in2:
(sel[5:0] == 6'b001000) ? in3:
(sel[5:0] == 6'b010000) ? in4:
(sel[5:0] == 6'b100000) ? in5:
(sel[6:0] == 7'b0000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[5:0] == 6'b000001) ? in0:
(sel[5:0] == 6'b000010) ? in1:
(sel[5:0] == 6'b000100) ? in2:
(sel[5:0] == 6'b001000) ? in3:
(sel[5:0] == 6'b010000) ? in4:
(sel[5:0] == 6'b100000) ? in5:
(sel[6:0] == 7'b0000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[5:0] == 6'b000001) ? in0:
(sel[5:0] == 6'b000010) ? in1:
(sel[5:0] == 6'b000100) ? in2:
(sel[5:0] == 6'b001000) ? in3:
(sel[5:0] == 6'b010000) ? in4:
(sel[5:0] == 6'b100000) ? in5:
(sel[6:0] == 7'b0000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[5:0] == 6'b000001) ? in0:
(sel[5:0] == 6'b000010) ? in1:
(sel[5:0] == 6'b000100) ? in2:
(sel[5:0] == 6'b001000) ? in3:
(sel[5:0] == 6'b010000) ? in4:
(sel[5:0] == 6'b100000) ? in5:
(sel[6:0] == 7'b0000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5}
wire [6:0] sel = {muxtst,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[5:0] == 6'b000001) ? in0:
(sel[5:0] == 6'b000010) ? in1:
(sel[5:0] == 6'b000100) ? in2:
(sel[5:0] == 6'b001000) ? in3:
(sel[5:0] == 6'b010000) ? in4:
(sel[5:0] == 6'b100000) ? in5:
(sel[6:0] == 7'b0000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[6:0] == 7'b0000001) ? in0:
(sel[6:0] == 7'b0000010) ? in1:
(sel[6:0] == 7'b0000100) ? in2:
(sel[6:0] == 7'b0001000) ? in3:
(sel[6:0] == 7'b0010000) ? in4:
(sel[6:0] == 7'b0100000) ? in5:
(sel[6:0] == 7'b1000000) ? in6:
(sel[7:0] == 8'b00000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[6:0] == 7'b0000001) ? in0:
(sel[6:0] == 7'b0000010) ? in1:
(sel[6:0] == 7'b0000100) ? in2:
(sel[6:0] == 7'b0001000) ? in3:
(sel[6:0] == 7'b0010000) ? in4:
(sel[6:0] == 7'b0100000) ? in5:
(sel[6:0] == 7'b1000000) ? in6:
(sel[7:0] == 8'b00000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[6:0] == 7'b0000001) ? in0:
(sel[6:0] == 7'b0000010) ? in1:
(sel[6:0] == 7'b0000100) ? in2:
(sel[6:0] == 7'b0001000) ? in3:
(sel[6:0] == 7'b0010000) ? in4:
(sel[6:0] == 7'b0100000) ? in5:
(sel[6:0] == 7'b1000000) ? in6:
(sel[7:0] == 8'b00000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[6:0] == 7'b0000001) ? in0:
(sel[6:0] == 7'b0000010) ? in1:
(sel[6:0] == 7'b0000100) ? in2:
(sel[6:0] == 7'b0001000) ? in3:
(sel[6:0] == 7'b0010000) ? in4:
(sel[6:0] == 7'b0100000) ? in5:
(sel[6:0] == 7'b1000000) ? in6:
(sel[7:0] == 8'b00000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[6:0] == 7'b0000001) ? in0:
(sel[6:0] == 7'b0000010) ? in1:
(sel[6:0] == 7'b0000100) ? in2:
(sel[6:0] == 7'b0001000) ? in3:
(sel[6:0] == 7'b0010000) ? in4:
(sel[6:0] == 7'b0100000) ? in5:
(sel[6:0] == 7'b1000000) ? in6:
(sel[7:0] == 8'b00000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[6:0] == 7'b0000001) ? in0:
(sel[6:0] == 7'b0000010) ? in1:
(sel[6:0] == 7'b0000100) ? in2:
(sel[6:0] == 7'b0001000) ? in3:
(sel[6:0] == 7'b0010000) ? in4:
(sel[6:0] == 7'b0100000) ? in5:
(sel[6:0] == 7'b1000000) ? in6:
(sel[7:0] == 8'b00000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[6:0] == 7'b0000001) ? in0:
(sel[6:0] == 7'b0000010) ? in1:
(sel[6:0] == 7'b0000100) ? in2:
(sel[6:0] == 7'b0001000) ? in3:
(sel[6:0] == 7'b0010000) ? in4:
(sel[6:0] == 7'b0100000) ? in5:
(sel[6:0] == 7'b1000000) ? in6:
(sel[7:0] == 8'b00000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6}
wire [7:0] sel = {muxtst,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[6:0] == 7'b0000001) ? in0:
(sel[6:0] == 7'b0000010) ? in1:
(sel[6:0] == 7'b0000100) ? in2:
(sel[6:0] == 7'b0001000) ? in3:
(sel[6:0] == 7'b0010000) ? in4:
(sel[6:0] == 7'b0100000) ? in5:
(sel[6:0] == 7'b1000000) ? in6:
(sel[7:0] == 8'b00000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[7:0] == 8'b00000001) ? in0:
(sel[7:0] == 8'b00000010) ? in1:
(sel[7:0] == 8'b00000100) ? in2:
(sel[7:0] == 8'b00001000) ? in3:
(sel[7:0] == 8'b00010000) ? in4:
(sel[7:0] == 8'b00100000) ? in5:
(sel[7:0] == 8'b01000000) ? in6:
(sel[7:0] == 8'b10000000) ? in7:
(sel[8:0] == 9'b000000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[7:0] == 8'b00000001) ? in0:
(sel[7:0] == 8'b00000010) ? in1:
(sel[7:0] == 8'b00000100) ? in2:
(sel[7:0] == 8'b00001000) ? in3:
(sel[7:0] == 8'b00010000) ? in4:
(sel[7:0] == 8'b00100000) ? in5:
(sel[7:0] == 8'b01000000) ? in6:
(sel[7:0] == 8'b10000000) ? in7:
(sel[8:0] == 9'b000000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[7:0] == 8'b00000001) ? in0:
(sel[7:0] == 8'b00000010) ? in1:
(sel[7:0] == 8'b00000100) ? in2:
(sel[7:0] == 8'b00001000) ? in3:
(sel[7:0] == 8'b00010000) ? in4:
(sel[7:0] == 8'b00100000) ? in5:
(sel[7:0] == 8'b01000000) ? in6:
(sel[7:0] == 8'b10000000) ? in7:
(sel[8:0] == 9'b000000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[7:0] == 8'b00000001) ? in0:
(sel[7:0] == 8'b00000010) ? in1:
(sel[7:0] == 8'b00000100) ? in2:
(sel[7:0] == 8'b00001000) ? in3:
(sel[7:0] == 8'b00010000) ? in4:
(sel[7:0] == 8'b00100000) ? in5:
(sel[7:0] == 8'b01000000) ? in6:
(sel[7:0] == 8'b10000000) ? in7:
(sel[8:0] == 9'b000000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[7:0] == 8'b00000001) ? in0:
(sel[7:0] == 8'b00000010) ? in1:
(sel[7:0] == 8'b00000100) ? in2:
(sel[7:0] == 8'b00001000) ? in3:
(sel[7:0] == 8'b00010000) ? in4:
(sel[7:0] == 8'b00100000) ? in5:
(sel[7:0] == 8'b01000000) ? in6:
(sel[7:0] == 8'b10000000) ? in7:
(sel[8:0] == 9'b000000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[7:0] == 8'b00000001) ? in0:
(sel[7:0] == 8'b00000010) ? in1:
(sel[7:0] == 8'b00000100) ? in2:
(sel[7:0] == 8'b00001000) ? in3:
(sel[7:0] == 8'b00010000) ? in4:
(sel[7:0] == 8'b00100000) ? in5:
(sel[7:0] == 8'b01000000) ? in6:
(sel[7:0] == 8'b10000000) ? in7:
(sel[8:0] == 9'b000000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[7:0] == 8'b00000001) ? in0:
(sel[7:0] == 8'b00000010) ? in1:
(sel[7:0] == 8'b00000100) ? in2:
(sel[7:0] == 8'b00001000) ? in3:
(sel[7:0] == 8'b00010000) ? in4:
(sel[7:0] == 8'b00100000) ? in5:
(sel[7:0] == 8'b01000000) ? in6:
(sel[7:0] == 8'b10000000) ? in7:
(sel[8:0] == 9'b000000000) ? 1'b1:
//0in bits_on -max 1 -name "oh" -var {sel0,sel1,sel2,sel3,sel4,sel5,sel6,sel7}
wire [8:0] sel = {muxtst,sel7,sel6,sel5,sel4,sel3,sel2,sel1,sel0};
assign out = (sel[7:0] == 8'b00000001) ? in0:
(sel[7:0] == 8'b00000010) ? in1:
(sel[7:0] == 8'b00000100) ? in2:
(sel[7:0] == 8'b00001000) ? in3:
(sel[7:0] == 8'b00010000) ? in4:
(sel[7:0] == 8'b00100000) ? in5:
(sel[7:0] == 8'b01000000) ? in6:
(sel[7:0] == 8'b10000000) ? in7:
(sel[8:0] == 9'b000000000) ? 1'b1:
module cl_dp1_muxbuff2_16x (
assign {out1,out0} = {in1,in0};
module cl_dp1_muxbuff2_32x (
assign {out1,out0} = {in1,in0};
module cl_dp1_muxbuff2_48x (
assign {out1,out0} = {in1,in0};
module cl_dp1_muxbuff2_64x (
assign {out1,out0} = {in1,in0};
module cl_dp1_muxbuff2_8x (
assign {out1,out0} = {in1,in0};
module cl_dp1_muxbuff3_16x (
assign {out2,out1,out0} = {in2,in1,in0};
module cl_dp1_muxbuff3_32x (
assign {out2,out1,out0} = {in2,in1,in0};
module cl_dp1_muxbuff3_48x (
assign {out2,out1,out0} = {in2,in1,in0};
module cl_dp1_muxbuff3_64x (
assign {out2,out1,out0} = {in2,in1,in0};
module cl_dp1_muxbuff3_8x (
assign {out2,out1,out0} = {in2,in1,in0};
module cl_dp1_muxbuff4_16x (
assign {out3,out2,out1,out0} = {in3,in2,in1,in0};
module cl_dp1_muxbuff4_32x (
assign {out3,out2,out1,out0} = {in3,in2,in1,in0};
module cl_dp1_muxbuff4_48x (
assign {out3,out2,out1,out0} = {in3,in2,in1,in0};
module cl_dp1_muxbuff4_64x (
assign {out3,out2,out1,out0} = {in3,in2,in1,in0};
module cl_dp1_muxbuff4_8x (
assign {out3,out2,out1,out0} = {in3,in2,in1,in0};
module cl_dp1_muxbuff5_16x (
assign {out4,out3,out2,out1,out0} = {in4,in3,in2,in1,in0};
module cl_dp1_muxbuff5_32x (
assign {out4,out3,out2,out1,out0} = {in4,in3,in2,in1,in0};
module cl_dp1_muxbuff5_48x (
assign {out4,out3,out2,out1,out0} = {in4,in3,in2,in1,in0};
module cl_dp1_muxbuff5_64x (
assign {out4,out3,out2,out1,out0} = {in4,in3,in2,in1,in0};
module cl_dp1_muxbuff5_8x (
assign {out4,out3,out2,out1,out0} = {in4,in3,in2,in1,in0};
module cl_dp1_muxbuff6_16x (
assign {out5,out4,out3,out2,out1,out0} = {in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff6_32x (
assign {out5,out4,out3,out2,out1,out0} = {in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff6_48x (
assign {out5,out4,out3,out2,out1,out0} = {in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff6_64x (
assign {out5,out4,out3,out2,out1,out0} = {in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff6_8x (
assign {out5,out4,out3,out2,out1,out0} = {in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff7_16x (
assign {out6,out5,out4,out3,out2,out1,out0} = {in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff7_32x (
assign {out6,out5,out4,out3,out2,out1,out0} = {in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff7_48x (
assign {out6,out5,out4,out3,out2,out1,out0} = {in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff7_64x (
assign {out6,out5,out4,out3,out2,out1,out0} = {in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff7_8x (
assign {out6,out5,out4,out3,out2,out1,out0} = {in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff8_16x (
assign {out7,out6,out5,out4,out3,out2,out1,out0} = {in7,in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff8_32x (
assign {out7,out6,out5,out4,out3,out2,out1,out0} = {in7,in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff8_48x (
assign {out7,out6,out5,out4,out3,out2,out1,out0} = {in7,in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff8_64x (
assign {out7,out6,out5,out4,out3,out2,out1,out0} = {in7,in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxbuff8_8x (
assign {out7,out6,out5,out4,out3,out2,out1,out0} = {in7,in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv2_16x (
assign {out1,out0} = ~{in1,in0};
module cl_dp1_muxinv2_32x (
assign {out1,out0} = ~{in1,in0};
module cl_dp1_muxinv2_48x (
assign {out1,out0} = ~{in1,in0};
module cl_dp1_muxinv2_64x (
assign {out1,out0} = ~{in1,in0};
module cl_dp1_muxinv2_8x (
assign {out1,out0} = ~{in1,in0};
module cl_dp1_muxinv3_16x (
assign {out2,out1,out0} = ~{in2,in1,in0};
module cl_dp1_muxinv3_32x (
assign {out2,out1,out0} = ~{in2,in1,in0};
module cl_dp1_muxinv3_48x (
assign {out2,out1,out0} = ~{in2,in1,in0};
module cl_dp1_muxinv3_64x (
assign {out2,out1,out0} = ~{in2,in1,in0};
module cl_dp1_muxinv3_8x (
assign {out2,out1,out0} = ~{in2,in1,in0};
module cl_dp1_muxinv4_16x (
assign {out3,out2,out1,out0} = ~{in3,in2,in1,in0};
module cl_dp1_muxinv4_32x (
assign {out3,out2,out1,out0} = ~{in3,in2,in1,in0};
module cl_dp1_muxinv4_48x (
assign {out3,out2,out1,out0} = ~{in3,in2,in1,in0};
module cl_dp1_muxinv4_64x (
assign {out3,out2,out1,out0} = ~{in3,in2,in1,in0};
module cl_dp1_muxinv4_8x (
assign {out3,out2,out1,out0} = ~{in3,in2,in1,in0};
module cl_dp1_muxinv5_16x (
assign {out4,out3,out2,out1,out0} = ~{in4,in3,in2,in1,in0};
module cl_dp1_muxinv5_32x (
assign {out4,out3,out2,out1,out0} = ~{in4,in3,in2,in1,in0};
module cl_dp1_muxinv5_48x (
assign {out4,out3,out2,out1,out0} = ~{in4,in3,in2,in1,in0};
module cl_dp1_muxinv5_64x (
assign {out4,out3,out2,out1,out0} = ~{in4,in3,in2,in1,in0};
module cl_dp1_muxinv5_8x (
assign {out4,out3,out2,out1,out0} = ~{in4,in3,in2,in1,in0};
module cl_dp1_muxinv6_16x (
assign {out5,out4,out3,out2,out1,out0} = ~{in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv6_32x (
assign {out5,out4,out3,out2,out1,out0} = ~{in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv6_48x (
assign {out5,out4,out3,out2,out1,out0} = ~{in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv6_64x (
assign {out5,out4,out3,out2,out1,out0} = ~{in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv6_8x (
assign {out5,out4,out3,out2,out1,out0} = ~{in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv7_16x (
assign {out6,out5,out4,out3,out2,out1,out0} = ~{in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv7_32x (
assign {out6,out5,out4,out3,out2,out1,out0} = ~{in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv7_48x (
assign {out6,out5,out4,out3,out2,out1,out0} = ~{in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv7_64x (
assign {out6,out5,out4,out3,out2,out1,out0} = ~{in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv7_8x (
assign {out6,out5,out4,out3,out2,out1,out0} = ~{in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv8_16x (
assign {out7,out6,out5,out4,out3,out2,out1,out0} = ~{in7,in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv8_32x (
assign {out7,out6,out5,out4,out3,out2,out1,out0} = ~{in7,in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv8_48x (
assign {out7,out6,out5,out4,out3,out2,out1,out0} = ~{in7,in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv8_64x (
assign {out7,out6,out5,out4,out3,out2,out1,out0} = ~{in7,in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_muxinv8_8x (
assign {out7,out6,out5,out4,out3,out2,out1,out0} = ~{in7,in6,in5,in4,in3,in2,in1,in0};
module cl_dp1_pdec4_16x (
assign psel0 = ~sel1 & ~sel0;
assign psel1 = ~sel1 & sel0;
assign psel2 = sel1 & ~sel0;
assign psel3 = sel1 & sel0 & test;
module cl_dp1_pdec4_32x (
assign psel0 = ~sel1 & ~sel0;
assign psel1 = ~sel1 & sel0;
assign psel2 = sel1 & ~sel0;
assign psel3 = sel1 & sel0 & test;
module cl_dp1_pdec4_48x (
assign psel0 = ~sel1 & ~sel0;
assign psel1 = ~sel1 & sel0;
assign psel2 = sel1 & ~sel0;
assign psel3 = sel1 & sel0 & test;
module cl_dp1_pdec4_64x (
assign psel0 = ~sel1 & ~sel0;
assign psel1 = ~sel1 & sel0;
assign psel2 = sel1 & ~sel0;
assign psel3 = sel1 & sel0 & test;
assign psel0 = ~sel1 & ~sel0;
assign psel1 = ~sel1 & sel0;
assign psel2 = sel1 & ~sel0;
assign psel3 = sel1 & sel0 & test;
module cl_dp1_pdec8_16x (
assign psel0 = ~sel2 & ~sel1 & ~sel0 & test;
assign psel1 = ~sel2 & ~sel1 & sel0;
assign psel2 = ~sel2 & sel1 & ~sel0;
assign psel3 = ~sel2 & sel1 & sel0;
assign psel4 = sel2 & ~sel1 & ~sel0;
assign psel5 = sel2 & ~sel1 & sel0;
assign psel6 = sel2 & sel1 & ~sel0;
assign psel7 = sel2 & sel1 & sel0;
module cl_dp1_pdec8_32x (
assign psel0 = ~sel2 & ~sel1 & ~sel0 & test;
assign psel1 = ~sel2 & ~sel1 & sel0;
assign psel2 = ~sel2 & sel1 & ~sel0;
assign psel3 = ~sel2 & sel1 & sel0;
assign psel4 = sel2 & ~sel1 & ~sel0;
assign psel5 = sel2 & ~sel1 & sel0;
assign psel6 = sel2 & sel1 & ~sel0;
assign psel7 = sel2 & sel1 & sel0;
module cl_dp1_pdec8_48x (
assign psel0 = ~sel2 & ~sel1 & ~sel0 & test;
assign psel1 = ~sel2 & ~sel1 & sel0;
assign psel2 = ~sel2 & sel1 & ~sel0;
assign psel3 = ~sel2 & sel1 & sel0;
assign psel4 = sel2 & ~sel1 & ~sel0;
assign psel5 = sel2 & ~sel1 & sel0;
assign psel6 = sel2 & sel1 & ~sel0;
assign psel7 = sel2 & sel1 & sel0;
module cl_dp1_pdec8_64x (
assign psel0 = ~sel2 & ~sel1 & ~sel0 & test;
assign psel1 = ~sel2 & ~sel1 & sel0;
assign psel2 = ~sel2 & sel1 & ~sel0;
assign psel3 = ~sel2 & sel1 & sel0;
assign psel4 = sel2 & ~sel1 & ~sel0;
assign psel5 = sel2 & ~sel1 & sel0;
assign psel6 = sel2 & sel1 & ~sel0;
assign psel7 = sel2 & sel1 & sel0;
assign psel0 = ~sel2 & ~sel1 & ~sel0 & test;
assign psel1 = ~sel2 & ~sel1 & sel0;
assign psel2 = ~sel2 & sel1 & ~sel0;
assign psel3 = ~sel2 & sel1 & sel0;
assign psel4 = sel2 & ~sel1 & ~sel0;
assign psel5 = sel2 & ~sel1 & sel0;
assign psel6 = sel2 & sel1 & ~sel0;
assign psel7 = sel2 & sel1 & sel0;
module cl_dp1_penc2_16x (
module cl_dp1_penc2_32x (
module cl_dp1_penc2_48x (
module cl_dp1_penc2_64x (
module cl_dp1_penc3_16x (
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & test;
module cl_dp1_penc3_32x (
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & test;
module cl_dp1_penc3_48x (
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & test;
module cl_dp1_penc3_64x (
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & test;
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & test;
module cl_dp1_penc4_16x (
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2;
module cl_dp1_penc4_32x (
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2;
module cl_dp1_penc4_48x (
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2;
module cl_dp1_penc4_64x (
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2;
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2;
module cl_dp1_penc5_16x (
assign psel0 = sel0 & test;
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3;
module cl_dp1_penc5_32x (
assign psel0 = sel0 & test;
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3;
module cl_dp1_penc5_48x (
assign psel0 = sel0 & test;
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3;
module cl_dp1_penc5_64x (
assign psel0 = sel0 & test;
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3;
assign psel0 = sel0 & test;
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3;
module cl_dp1_penc6_16x (
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & sel2 & test;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4;
module cl_dp1_penc6_32x (
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & sel2 & test;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4;
module cl_dp1_penc6_48x (
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & sel2 & test;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4;
module cl_dp1_penc6_64x (
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & sel2 & test;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4;
assign psel1 = ~sel0 & sel1;
assign psel2 = ~sel0 & ~sel1 & sel2 & test;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4;
module cl_dp1_penc7_16x (
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5;
module cl_dp1_penc7_32x (
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5;
module cl_dp1_penc7_48x (
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5;
module cl_dp1_penc7_64x (
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5;
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5;
module cl_dp1_penc8_16x (
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & sel6;
assign psel7 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & ~sel6;
module cl_dp1_penc8_32x (
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & sel6;
assign psel7 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & ~sel6;
module cl_dp1_penc8_48x (
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & sel6;
assign psel7 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & ~sel6;
module cl_dp1_penc8_64x (
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & sel6;
assign psel7 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & ~sel6;
assign psel1 = ~sel0 & sel1 & test;
assign psel2 = ~sel0 & ~sel1 & sel2;
assign psel3 = ~sel0 & ~sel1 & ~sel2 & sel3;
assign psel4 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & sel4;
assign psel5 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & sel5;
assign psel6 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & sel6;
assign psel7 = ~sel0 & ~sel1 & ~sel2 & ~sel3 & ~sel4 & ~sel5 & ~sel6;
module cl_dp1_prty16_8x (
module cl_dp1_prty32_8x (
module cl_dp1_zero12_12x (
assign out = ( in[11:0] == 12'b0);
module cl_dp1_zero16_12x (
assign out = ( in[15:0] == 16'b0);
module cl_dp1_zero32_12x (
assign out = ( in[31:0] == 32'b0);
module cl_dp1_zero4_12x (
assign out = ( in[3:0] == 4'b0);
module cl_dp1_zero64_12x (
assign out = ( in[63:0] == 64'b0);
module cl_dp1_zero8_12x (
assign out = ( in[7:0] == 8'b0);
assign p[63:0] = din0[63:0] ^ din1[63:0];
assign k[62:0] = ~din0[62:0] & ~din1[62:0];
assign z[63:1] = p[63:1] ^ k[62:0];
assign z[0] = p[0] ^ ~cin;
assign zero_detect32 = & z[31:0];
assign zero_detect64 = & z[63:0];
assign zdt_z32_ = ~zero_detect32;
assign zdt_z64_ = ~zero_detect64;
cl_dp1_ccx_l1hdr_16x hdr0 (
cl_dp1_ccx_l1hdr_16x hdr1 (
.siclk_out(siclk_out_unused),
.soclk_out(soclk_out_unused),
cl_dp1_ccx_msff_16x msff1 (
assign qsel0_buf = qsel0;
assign shift_buf = shift;
endmodule // cl_dp1_ccxhdr
module cl_dp1_ccx_mac_a (
cl_dp1_ccx_msff_4x msff1 (
cl_dp1_ccx_aomux2_4x mux1(
cl_dp1_ccx_msff_4x msff0 (
cl_dp1_ccx_nand2_4x nand0(
endmodule // cl_dp1_ccx_mac_a
module cl_dp1_ccx_mac_b (
cl_dp1_ccx_msff_4x msff1 (
cl_dp1_ccx_aomux2_4x mux1(
cl_dp1_ccx_msff_4x msff0 (
cl_dp1_ccx_nand2_4x nand0(
cl_dp1_ccx_nand2_12x nand1(
endmodule // cl_dp1_ccx_mac_b
module cl_dp1_ccx_mac_c (
cl_dp1_ccx_msff_4x msff1 (
cl_dp1_ccx_aomux2_4x mux1(
cl_dp1_ccx_msff_4x msff0 (
cl_dp1_ccx_nand2_4x nand0(
cl_dp1_ccx_nand3_12x nand1(
cl_dp1_ccx_inva_32x inv0(
endmodule // cl_dp1_ccx_mac_c
module cl_dp1_ccx_mac_b2 (
cl_dp1_ccx_msff_4x msff1 (
cl_dp1_ccx_aomux2_4x mux1(
cl_dp1_ccx_msff_4x msff0 (
cl_dp1_ccx_nand2_4x nand0(
cl_dp1_ccx_nand2_12x nand1(
cl_dp1_ccx_inva_32x inv0(
endmodule // cl_dp1_ccx_mac_b2
module cl_dp1_ccx_mac_c2 (
cl_dp1_ccx_msff_4x msff1 (
cl_dp1_ccx_aomux2_4x mux1(
cl_dp1_ccx_msff_4x msff0 (
cl_dp1_ccx_nand2_4x nand0(
cl_dp1_ccx_nand3_12x nand1(
cl_dp1_ccx_inva_32x inv0(
endmodule // cl_dp1_ccx_mac_c2
module cl_dp1_ccx_aomux2_4x (
assign out = ((sel0 & in0) |
module cl_dp1_ccx_buf_8x (
module cl_dp1_ccx_buf_1x (
module cl_dp1_ccx_bufmin_1x (
module cl_dp1_ccx_inv_12x (
module cl_dp1_ccx_inv_32x (
module cl_dp1_ccx_inva_32x (
module cl_dp1_ccx_msff_16x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_ccx_msffmin_4x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_ccx_msff_4x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_ccx_msff_8x ( q, so, d, l1clk, si, siclk, soclk );
// Level sensitive in SCAN_MODE
// Edge triggered when not in SCAN_MODE
wire l1clk, siclk, soclk;
always @(posedge l1clk or posedge siclk ) begin
q <= 1'b0; //pseudo flush reset
always @(l1clk or siclk or soclk or d or si)
if (!l1clk && !siclk) l1 <= d; // Load master with data
else if ( l1clk && siclk) l1 <= si; // Load master with scan or flush
else if (!l1clk && siclk) l1 <= 1'bx; // Conflict between data and scan
else if ( l1clk && !siclk && !soclk) q <= l1; // Load slave with master data
if ( l1clk && siclk && !soclk) q <= si; // Flush
assign siclk_unused = siclk;
assign soclk_unused = soclk;
if (!siclk && !soclk) q <= d;
module cl_dp1_ccx_nand2_1x (
assign out = ~(in0 & in1);
module cl_dp1_ccx_nand2_12x (
assign out = ~(in0 & in1);
module cl_dp1_ccx_nand2_4x (
assign out = ~(in0 & in1);
module cl_dp1_ccx_nand3_12x (
assign out = ~(in0 & in1 & in2);
module cl_dp1_ccx_l1hdr_16x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= (~stop & (pce | pce_ov));
always @ (negedge l2clk )
l1en <= (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
`endif // !`ifdef FORMAL_TOOL
module cl_dp1_ccx_l1hdr_8x (l1clk,
input l2clk; // level 2 clock, from clock grid
input pce; // Clock enable for local power savings
input pce_ov; // TCU sourced clock enable override for testing
input stop; // TCU/CCU sourced clock stop for debug
wire l1en = (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) | se;
always @ (l2clk or stop or pce or pce_ov)
if (~l2clk) l1en <= (~stop & (pce | pce_ov));
always @ (negedge l2clk )
l1en <= (~stop & ( pce | pce_ov ));
assign l1clk = (l2clk & l1en) || se; // se is async and highest priority
`endif // !`ifdef FORMAL_TOOL