1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
tlb_bits_mux = out_fn ;
end
endfunction
assign tlb_ptp_out = tlb_bits_mux( mmu_ptp_in, asi_ptp_in, sel_mdat_mux) ;
// Expanded macro end.
/***** Bits [40,31,24] of the TLB TAG input ****************************/
// Expanded macro begin.
// cmux2(asi_lvl_mux, 3, asi_lvl_in, misc_in[02:00], tlb_cam_reg[12:10], not_hld_cam_h)
function [3:1] asi_lvl_mux ;
input [3:1] in0_fn ;
input [3:1] in1_fn ;
input select_fn ;
reg [3:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
asi_lvl_mux = out_fn ;
end
endfunction
assign asi_lvl_in = asi_lvl_mux( misc_in[02:00], tlb_cam_reg[12:10], not_hld_cam_h) ;
// Expanded macro end.
// Expanded macro begin.
// cmux2(tlb_lvl_mux, 3, tlb_lvl_out[2:0], tlb_cam_lvl, /* Level input from tw sm.*/ asi_lvl_in, sel_mdat_mux)
function [ 3:1] tlb_lvl_mux ;
input [ 3:1] in0_fn ;
input [ 3:1] in1_fn ;
input select_fn ;
reg [ 3:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
tlb_lvl_mux = out_fn ;
end
endfunction
assign tlb_lvl_out[2:0] = tlb_lvl_mux( tlb_cam_lvl, /* Level input from tw sm.*/ asi_lvl_in, sel_mdat_mux) ;
// Expanded macro end.
/****** BIT [24:5] of TLB DATA INPUT ***********/
// remenber misc1_in will be concated into tlb_data_in
// Expanded macro begin.
// cmux2(asi_data_misc1_mux, 20, misc1_in, misc_in[26:07], tlb_data_reg[24:5], not_hld_ram)
function [20:1] asi_data_misc1_mux ;
input [20:1] in0_fn ;
input [20:1] in1_fn ;
input select_fn ;
reg [20:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
asi_data_misc1_mux = out_fn ;
end
endfunction
assign misc1_in = asi_data_misc1_mux( misc_in[26:07], tlb_data_reg[24:5], not_hld_ram) ;
// Expanded macro end.
/****** BIT [2:0] of TLB DATA INPUT *******/
// Expanded macro begin.
// cmux2(asi_data_misc2_mux, 3, misc2_in, misc_in[04:02], tlb_data_reg[2:0], not_hld_ram)
function [3:1] asi_data_misc2_mux ;
input [3:1] in0_fn ;
input [3:1] in1_fn ;
input select_fn ;
reg [3:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
asi_data_misc2_mux = out_fn ;
end
endfunction
assign misc2_in = asi_data_misc2_mux( misc_in[04:02], tlb_data_reg[2:0], not_hld_ram) ;
// Expanded macro end.
/***** Bits [27,26,25] of the TLB DATA input *****************/
// Expanded macro begin.
// cmux2(asi_data_lvl_mux, 3, asi_data_lvl_in, misc_in[31:29], tlb_data_reg[27:25], not_hld_ram)
function [3:1] asi_data_lvl_mux ;
input [3:1] in0_fn ;
input [3:1] in1_fn ;
input select_fn ;
reg [3:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
asi_data_lvl_mux = out_fn ;
end
endfunction
assign asi_data_lvl_in = asi_data_lvl_mux( misc_in[31:29], tlb_data_reg[27:25], not_hld_ram) ;
// Expanded macro end.
// Expanded macro begin.
// cmux2(tlb_sram_lvl_mux, 3, tlb_lvl_sram_out[2:0], tlb_ram_lvl, /* Level input from tw sm.*/ asi_data_lvl_in, sel_mdat_mux)
function [ 3:1] tlb_sram_lvl_mux ;
input [ 3:1] in0_fn ;
input [ 3:1] in1_fn ;
input select_fn ;
reg [ 3:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
tlb_sram_lvl_mux = out_fn ;
end
endfunction
assign tlb_lvl_sram_out[2:0] = tlb_sram_lvl_mux( tlb_ram_lvl, /* Level input from tw sm.*/ asi_data_lvl_in, sel_mdat_mux) ;
// Expanded macro end.
/* In swift context change to 8 bit */
/* Context mux (3:1) selecting either CXR, PA[9:2] or misc_in[11:4] */
/***** Bits [10:03] of the TLB TAG input ****************************/
wire [7:0] dpa_7to2
= { data_pa[7:2], 2'b0 };
// Expanded macro begin.
// cmux2(asi_cntx_mux, 8, asi_cntx_in, misc_in[11:4], tlb_cam_reg[21:14], /* Use Software bit alignment */ not_hld_cam_h)
function [8:1] asi_cntx_mux ;
input [8:1] in0_fn ;
input [8:1] in1_fn ;
input select_fn ;
reg [8:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
asi_cntx_mux = out_fn ;
end
endfunction
assign asi_cntx_in = asi_cntx_mux( misc_in[11:4], tlb_cam_reg[21:14], /* Use Software bit alignment */ not_hld_cam_h) ;
// Expanded macro end.
// Expanded macro begin.
// cmux3d(tlb_cntxt_mux, 8, tlb_cntxt_out, cxr[7:0], cxr_mux_sel[2], dpa_7to2, cxr_mux_sel[1], asi_cntx_in, cxr_mux_sel[0])
function [ 8:1] tlb_cntxt_mux ;
input [ 8:1] in0_fn ;
input s0_fn ;
input [ 8:1] in1_fn ;
input s1_fn ;
input [ 8:1] in2_fn ;
input s2_fn ;
reg [ 8:1] out_fn ;
begin
case ({ cxr_mux_sel[0], cxr_mux_sel[1], cxr_mux_sel[2]}) /* synopsys parallel_case */
3'b001: out_fn = in0_fn;
3'b010: out_fn = in1_fn;
3'b100: out_fn = in2_fn;
default: out_fn = 65'hx;
endcase
tlb_cntxt_mux = out_fn ;
end
endfunction
assign tlb_cntxt_out = tlb_cntxt_mux( cxr[7:0], cxr_mux_sel[2], dpa_7to2, cxr_mux_sel[1], asi_cntx_in, cxr_mux_sel[0]) ;
// synopsys translate_off
always @ (posedge(~Mclocks.clock))
#1 if (( cxr_mux_sel[0]+ cxr_mux_sel[1]+ cxr_mux_sel[2] !== 1) & `SS_SCOPE.input_reset_l &
~Mtask.trace.ppr & ~( cxr_mux_sel[0]+ cxr_mux_sel[1]^ cxr_mux_sel[2]===1'bx)) begin
$display("### %m.tlb_cntxt_mux: CMUX3D select error!\n");
$display(" cxr_mux_sel[0], cxr_mux_sel[1], cxr_mux_sel[2]=%0d%0d%0d\n", cxr_mux_sel[0], cxr_mux_sel[1], cxr_mux_sel[2]);
Mclocks.warning_count = Mclocks.warning_count + 1;
end
// synopsys translate_on
// Expanded macro end.
/***** Bits [39:32], [30:25], [23:18] of the TLB TAG input ***********/
/** LAYOUT NOTE: The bit ordering given above relates to the CAM *
** inputs. The datapath can either be layed-out *
** according to the CAM inputs, or the way the data is *
** input. The difference is in where the 2 level bits *
** are input, thereby Shifting the fields. */
/* TLB tag mux, selects between the different VA tags,
* and the output of the "tlb_pa_mux" (PA or mdata). */
/***** Bits [31:12] of the TLB TAG input ****************************/
/* split the 9 input mux to two mux ( 6 and 4 input ) */
/* vl_sel_in[4] is to selet uuper(mux_4) 5 input mux */
/* that is , if va_sel_in[5] == 1 , either upper */
/* of the CMUX6D have to be one */
wire [19:0] va_mux_adr_out
;
// Expanded macro begin.
// cmux2(asi_va_mux, 20, asi_va_in, misc_in[31:12], tlb_cam_reg[41:22], not_hld_cam_h)
function [20:1] asi_va_mux ;
input [20:1] in0_fn ;
input [20:1] in1_fn ;
input select_fn ;
reg [20:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
asi_va_mux = out_fn ;
end
endfunction
assign asi_va_in = asi_va_mux( misc_in[31:12], tlb_cam_reg[41:22], not_hld_cam_h) ;
// Expanded macro end.
// Expanded macro begin.
// cmux4d(va_tag_mux_3, 20, va_mux_adr_out, r_i_vaddr[31:12], va_mux0_sel[0], r_d_vaddr[31:12], va_mux0_sel[1], asi_va_in, va_mux0_sel[2], wr_buf_3_out[31:12], va_mux0_sel[3])
function [ 20:1] va_tag_mux_3 ;
input [ 20:1] in0_fn ;
input s0_fn ;
input [ 20:1] in1_fn ;
input s1_fn ;
input [ 20:1] in2_fn ;
input s2_fn ;
input [ 20:1] in3_fn ;
input s3_fn ;
reg [ 20:1] out_fn ;
begin
case ({va_mux0_sel[3], va_mux0_sel[2], va_mux0_sel[1], va_mux0_sel[0]}) /* synopsys parallel_case */
4'b0001: out_fn = in0_fn;
4'b0010: out_fn = in1_fn;
4'b0100: out_fn = in2_fn;
4'b1000: out_fn = in3_fn;
default: out_fn = 65'hx;
endcase
va_tag_mux_3 = out_fn ;
end
endfunction
assign va_mux_adr_out = va_tag_mux_3( r_i_vaddr[31:12], va_mux0_sel[0], r_d_vaddr[31:12], va_mux0_sel[1], asi_va_in, va_mux0_sel[2], wr_buf_3_out[31:12], va_mux0_sel[3]) ;
// synopsys translate_off
always @ (posedge(~Mclocks.clock))
#1 if ((va_mux0_sel[3]+ va_mux0_sel[2]+ va_mux0_sel[1]+ va_mux0_sel[0] !== 1) & `SS_SCOPE.input_reset_l &
~Mtask.trace.ppr & ~(va_mux0_sel[3]+ va_mux0_sel[2]+ va_mux0_sel[1]^ va_mux0_sel[0]===1'bx)) begin
$display("### %m.va_tag_mux_3: CMUX4D select error!\n");
$display("va_mux0_sel[3], va_mux0_sel[2], va_mux0_sel[1], va_mux0_sel[0]=%0d%0d%0d%0d\n", va_mux0_sel[3], va_mux0_sel[2], va_mux0_sel[1], va_mux0_sel[0]);
Mclocks.warning_count = Mclocks.warning_count + 1;
end
// synopsys translate_on
// Expanded macro end.
// Expanded macro begin.
// cmux5d(va_tag_mux_4, 20, va_tag_mux_out, va_mux_adr_out, va_mux1_sel[0], data_pa[27:08], va_mux1_sel[1], i_vaddr[31:12], va_mux1_sel[2], d_vaddr[31:12], va_mux1_sel[3], io_addr[31:12], va_mux1_sel[4])
function [20:1] va_tag_mux_4 ;
input [20:1] in0_fn ;
input s0_fn ;
input [20:1] in1_fn ;
input s1_fn ;
input [20:1] in2_fn ;
input s2_fn ;
input [20:1] in3_fn ;
input s3_fn ;
input [20:1] in4_fn ;
input s4_fn ;
reg [20:1] out_fn ;
begin
case ({va_mux1_sel[4], va_mux1_sel[3], va_mux1_sel[2], va_mux1_sel[1], va_mux1_sel[0]}) /* synopsys parallel_case */
5'b00001: out_fn = in0_fn ;
5'b00010: out_fn = in1_fn ;
5'b00100: out_fn = in2_fn ;
5'b01000: out_fn = in3_fn ;
5'b10000: out_fn = in4_fn ;
default: out_fn = 65'hx;
endcase
va_tag_mux_4 = out_fn ;
end
endfunction
assign va_tag_mux_out = va_tag_mux_4( va_mux_adr_out, va_mux1_sel[0], data_pa[27:08], va_mux1_sel[1], i_vaddr[31:12], va_mux1_sel[2], d_vaddr[31:12], va_mux1_sel[3], io_addr[31:12], va_mux1_sel[4]) ;
// synopsys translate_off
always @ (posedge(~Mclocks.clock))
#1 if ((va_mux1_sel[4]+va_mux1_sel[3]+va_mux1_sel[2]+va_mux1_sel[1]+va_mux1_sel[0] !== 1) & `SS_SCOPE.input_reset_l &
~Mtask.trace.ppr & ~(va_mux1_sel[4]+va_mux1_sel[3]+va_mux1_sel[2]+va_mux1_sel[1]^va_mux1_sel[0]===1'bx)) begin
$display("### %m.va_tag_mux_4: CMUX5D select error!\n");
$display("va_mux1_sel[4],va_mux1_sel[3],va_mux1_sel[2],va_mux1_sel[1],va_mux1_sel[0]=%0d%0d%0d%0d%0d\n", va_mux1_sel[4],va_mux1_sel[3],va_mux1_sel[2],va_mux1_sel[1],va_mux1_sel[0]);
Mclocks.warning_count = Mclocks.warning_count + 1;
end
// synopsys translate_on
// Expanded macro end.
/*** Added the I/D_PAR mux for selecting address when I/D_PAR is valid ***/
wire [30:00] par_mux1
;
// Expanded macro begin.
// cmux2(par_mux1, 31, par_mux1, ipar, dpar, par_sel[0])
function [31:1] fn_par_mux1 ;
input [31:1] in0_fn ;
input [31:1] in1_fn ;
input select_fn ;
reg [31:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
fn_par_mux1 = out_fn ;
end
endfunction
assign par_mux1 = fn_par_mux1( ipar, dpar, par_sel[0]) ;
// Expanded macro end.
// switch 3 input mux to 2 input mux for layout
// Expanded macro begin.
// cmux2(par_mux2, 31, hack_par, bp_paddr1, /***** output from bp mux ******/ par_mux1, par_sel[1])
function [31:1] par_mux2 ;
input [31:1] in0_fn ;
input [31:1] in1_fn ;
input select_fn ;
reg [31:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
par_mux2 = out_fn ;
end
endfunction
assign hack_par = par_mux2( bp_paddr1, /***** output from bp mux ******/ par_mux1, par_sel[1]) ;
// Expanded macro end.
/**** generate par_mux 32 bit by adding msb to 0 ****/
/**** par_mux is used as a input of va_indx_mux *****/
wire [31:00] par_mux
= { 1'b0, par_mux1 };
/* The "va_indx_mux" selects between the 3 different VA sources *****/
/* for the bits [31:12] that are used as indices during table walks.*/
/* -----Originally wanted to overlap this function -------------*****/
// Expanded macro begin.
// cmux4d(va_indx_mux, 32, va_mux, r_i_vaddr[31:00], va_mux_sel[0], r_d_vaddr[31:00], va_mux_sel[1], io_addr[31:00], va_mux_sel[2], wr_buf_3_out[31:00], va_mux_sel[3])
function [32:1] va_indx_mux ;
input [32:1] in0_fn ;
input s0_fn ;
input [32:1] in1_fn ;
input s1_fn ;
input [32:1] in2_fn ;
input s2_fn ;
input [32:1] in3_fn ;
input s3_fn ;
reg [32:1] out_fn ;
begin
case ({ va_mux_sel[3], va_mux_sel[2], va_mux_sel[1], va_mux_sel[0]}) /* synopsys parallel_case */
4'b0001: out_fn = in0_fn;
4'b0010: out_fn = in1_fn;
4'b0100: out_fn = in2_fn;
4'b1000: out_fn = in3_fn;
default: out_fn = 65'hx;
endcase
va_indx_mux = out_fn ;
end
endfunction
assign va_mux = va_indx_mux( r_i_vaddr[31:00], va_mux_sel[0], r_d_vaddr[31:00], va_mux_sel[1], io_addr[31:00], va_mux_sel[2], wr_buf_3_out[31:00], va_mux_sel[3]) ;
// synopsys translate_off
always @ (posedge(~Mclocks.clock))
#1 if (( va_mux_sel[3]+ va_mux_sel[2]+ va_mux_sel[1]+ va_mux_sel[0] !== 1) & `SS_SCOPE.input_reset_l &
~Mtask.trace.ppr & ~( va_mux_sel[3]+ va_mux_sel[2]+ va_mux_sel[1]^ va_mux_sel[0]===1'bx)) begin
$display("### %m.va_indx_mux: CMUX4D select error!\n");
$display(" va_mux_sel[3], va_mux_sel[2], va_mux_sel[1], va_mux_sel[0]=%0d%0d%0d%0d\n", va_mux_sel[3], va_mux_sel[2], va_mux_sel[1], va_mux_sel[0]);
Mclocks.warning_count = Mclocks.warning_count + 1;
end
// synopsys translate_on
// Expanded macro end.
/** LAYOUT NOTE: The tag_out is ordered to align with the CAM inputs. **/
/** This corresponds to the HARDWARE TAG representation. *************/
/* in swift va_tag_out is 42 bits */
assign va_tag_out = {tlb_vbit_out, tlb_lvl_out[2], va_tag_mux_out[19:12],
tlb_lvl_out[01],
va_tag_mux_out[11:06],
tlb_lvl_out[0],
va_tag_mux_out[05:0],
tlb_cntxt_out,
tlb_pro_bits,
tlb_sbit_out, tlb_io_bit_out, tlb_ptp_out,
tlb_cam_mbit};
/***************************************************************************/
/***************************************************************************/
/***** Context Register ** *****/
wire [7:0] cxr;
MflipflopR_8 tlb_cxr_8(cxr,misc_in[7:0],ss_clock,hld_cxr,ss_reset) ;
/*************************************************************************/
/* SFAR - Synchronous Fault Address Register. */
wire sfar_reset
= ss_reset | (sfar_read & ~ss_scan_mode);
wire [31:0] sfar_in
;
// Expanded macro begin.
// cmux2(sfar_mux, 32, sfar_in, r_d_vaddr, misc_in, sfar_write)
function [32:1] sfar_mux ;
input [32:1] in0_fn ;
input [32:1] in1_fn ;
input select_fn ;
reg [32:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
sfar_mux = out_fn ;
end
endfunction
assign sfar_in = sfar_mux(r_d_vaddr, misc_in, sfar_write) ;
// Expanded macro end.
wire [31:00] sfar
;
MflipflopR_32 sfar_32( sfar, sfar_in, /* load SFAR from eitherDVA or MDATA*/ ss_clock,hld_sfar, /* load enable for SFAR*/ sfar_reset) ;
/***************************************************************************/
/**^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^**/
/***************************************************************************/
/***** End of DP_VA_CMUX.V logic in first part **/
/***************************************************************************/
/**+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++**/
/* */
/**+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++**/
/***************************************************************************/
/***** DP_PA_CMUX.V logic in this part **/
/***************************************************************************/
/**vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv**/
// tlb sram for asi read op
// wire [31:00] tlb_rd_data = {2'b0,tb_out,~tlb_rd_tag[1],tlb_rd_tag[1]};
// add this mux , if asi access to sram we return lvl bits of sram
// otherwise , we return pte portion only .....
// added
// asi_dcd6 --> will select tb_out[27:25] otherwise will be zero
wire [2:0] lvl_out
= { (tb_out[27] & asi_dcd6),
(tb_out[26] & asi_dcd6),
(tb_out[25] & asi_dcd6) } ;
wire [31:00] tlb_rd_data
= {2'b0,lvl_out,tb_out[24:0],~tlb_rd_tag[1],tlb_rd_tag[1]};
/*************************************************************************/
/* Register definitions */
/* CTPR - context table pointer register (17 bits) mdata[22:06] */
wire [17:0] ctpr_in
= misc_in[23:06]; /* rename inputs */
wire [17:00] ctpr_out
;
MflipflopR_18 ctpr_18( ctpr_out, ctpr_in, /* data loaded from the MDATA bus*/ ss_clock,hld_ctpr, /* load enable for CTPR*/ ss_reset) ;
wire [31:00] ctpr
= {8'b0,ctpr_out,6'b0};
/* IBAR - I/O base address register (17 bits) mdata[26:10] */
wire [16:0] ibar_in
= misc_in[26:10]; /* rename inputs */
wire [16:00] ibar_out
;
MflipflopR_17 ibar_17( ibar_out, ibar_in, /* data loaded from the MDATA bus*/ ss_clock,hld_ibar, /* load enable for IBAR*/ ss_reset) ;
wire [31:00] ibar
= {5'b0,ibar_out,10'b0};
/*************************************************************************/
/* AFAR - Asynchronous Fault Address Register. */
wire [30:0] afar_in
;
// Expanded macro begin.
// cmux2(afar_mux, 31, afar_in, pa_out, misc_in[30:00], (afar_write | mfar_write))
function [31:1] afar_mux ;
input [31:1] in0_fn ;
input [31:1] in1_fn ;
input select_fn ;
reg [31:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
afar_mux = out_fn ;
end
endfunction
assign afar_in = afar_mux(pa_out, misc_in[30:00], (afar_write | mfar_write)) ;
// Expanded macro end.
wire [30:00] afar
;
MflipflopR_31 afar_31( afar, afar_in, /* load AFAR from either PA or MDATA*/ ss_clock,hld_afar, /* load enable for AFAR*/ ss_reset) ;
/****************************-*-*-*-*-************************************/
/*************************************************************************/
/* MFAR - Msynchronous Fault Address Register. */
wire [30:00] mfar
;
MflipflopR_31 mfar_reg_31( mfar, afar_in, /* load MFAR from either PA or MDATA*/ ss_clock,hld_mfar, /* load enable for MFAR*/ ss_reset) ;
assign odd_wd = mfar[2] ;
/****************************-*-*-*-*-************************************/
/************** this step to assign par to pa_out ****************/
assign pa_out = par; /* assign pa_out equal to par out */
/*** Mux select definitions - concatenations *****************************/
wire[3:0] bp_sel_30d
= {bp_sel_30[1],io_walk,cpu_walk,bp_sel_30[0]};
wire[3:0] bp_sel_28d
= {bp_sel_28[1],io_walk,cpu_walk,bp_sel_28[0]};
wire[2:0] bp_sel_21d
= {io_walk,cpu_walk,bp_sel_21};
wire[3:0] bp_sel_20d
= {bp_sel_20,ctpr_sel,bp_mux_sel0}; /* 4:1 selects */
wire[3:0] bp_sel_19d
= {bp_sel_19,ctpr_sel,bp_mux_sel0}; /* 4:1 selects */
wire[3:0] bp_sel_18d
= {bp_sel_18,ctpr_sel,bp_mux_sel0}; /* 4:1 selects */
wire[3:0] bp_sel_17d
= {bp_sel_17,ctpr_sel,bp_mux_sel0}; /* 4:1 selects */
wire[3:0] bp_sel_16d
= {bp_sel_16,ctpr_sel,bp_mux_sel0}; /* 4:1 selects */
wire[3:0] bp_sel_15d
= {bp_sel_15,ctpr_sel,bp_mux_sel0}; /* 4:1 selects */
wire[3:0] bp_sel_14d
= {bp_sel_14,ctpr_sel,bp_mux_sel0}; /* 4:1 selects */
wire[2:0] bp_sel_10d
= {io_walk, ctpr_sel, bp_mux_sel0};
/* */
/***** PA[30] definition. ************************************************/
/* BYPASS_30 mux (4:1) provides addresses that bypass the TLB. */
// Expanded macro begin.
// cmux4d(bypass_30, 1, bp_paddr[30], va_mux[30], bp_sel_30d[0], /* combination of all V addr.*/ 1'b0, bp_sel_30d[1], /* table_walk selection.*/ ibar[26], bp_sel_30d[2], /* IO Base Address Reg output.*/ (boot_out_30 & bm_sel[1] ), bp_sel_30d[3])
function [ 1:1] bypass_30 ;
input [ 1:1] in0_fn ;
input s0_fn ;
input [ 1:1] in1_fn ;
input s1_fn ;
input [ 1:1] in2_fn ;
input s2_fn ;
input [ 1:1] in3_fn ;
input s3_fn ;
reg [ 1:1] out_fn ;
begin
case ({ bp_sel_30d[3], bp_sel_30d[2], bp_sel_30d[1], bp_sel_30d[0]}) /* synopsys parallel_case */
4'b0001: out_fn = in0_fn;
4'b0010: out_fn = in1_fn;
4'b0100: out_fn = in2_fn;
4'b1000: out_fn = in3_fn;
default: out_fn = 65'hx;
endcase
bypass_30 = out_fn ;
end
endfunction
assign bp_paddr[30] = bypass_30( va_mux[30], bp_sel_30d[0], /* combination of all V addr.*/ 1'b0, bp_sel_30d[1], /* table_walk selection.*/ ibar[26], bp_sel_30d[2], /* IO Base Address Reg output.*/ (boot_out_30 & bm_sel[1] ), bp_sel_30d[3]) ;
// synopsys translate_off
always @ (posedge(~Mclocks.clock))
#1 if (( bp_sel_30d[3]+ bp_sel_30d[2]+ bp_sel_30d[1]+ bp_sel_30d[0] !== 1) & `SS_SCOPE.input_reset_l &
~Mtask.trace.ppr & ~( bp_sel_30d[3]+ bp_sel_30d[2]+ bp_sel_30d[1]^ bp_sel_30d[0]===1'bx)) begin
$display("### %m.bypass_30: CMUX4D select error!\n");
$display(" bp_sel_30d[3], bp_sel_30d[2], bp_sel_30d[1], bp_sel_30d[0]=%0d%0d%0d%0d\n", bp_sel_30d[3], bp_sel_30d[2], bp_sel_30d[1], bp_sel_30d[0]);
Mclocks.warning_count = Mclocks.warning_count + 1;
end
// synopsys translate_on
// Expanded macro end.
/* select BOOT mode mux.*/
/* DPA_30 mux (2:1) selects between Bypass addr. and TLB addr. */
// Expanded macro begin.
// cmux2(dpa_30, 1, data_pa[30], tb_out[24], /* TLB data output (PTP or PTE)*/ hack_par[30], /* Bypass address*/ dpa_sel_b)
function [ 1:1] dpa_30 ;
input [ 1:1] in0_fn ;
input [ 1:1] in1_fn ;
input select_fn ;
reg [ 1:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
dpa_30 = out_fn ;
end
endfunction
assign data_pa[30] = dpa_30( tb_out[24], /* TLB data output (PTP or PTE)*/ hack_par[30], /* Bypass address*/ dpa_sel_b) ;
// Expanded macro end.
/* DPA mux select (0 = tb_out).*/
/* */
/***** PA[29:28] definition. *********************************************/
/* BYPASS_28 mux (4:1) provides addresses that bypass the TLB. */
// ARAY
wire [1:0] bootAddr
= {1'b1,bm_sel[1]} ;
// Expanded macro begin.
// cmux4d(bypass_28, 2, bp_paddr[29:28], va_mux[29:28], bp_sel_28d[0], /* combo of all Virtual addr.*/ 2'b0, bp_sel_28d[1], /* IO MMU Bypass bit selects "00".*/ ibar[25:24], bp_sel_28d[2], /* IO Base Address Reg output.*/ bootAddr[1:0], bp_sel_28d[3])
function [ 2:1] bypass_28 ;
input [ 2:1] in0_fn ;
input s0_fn ;
input [ 2:1] in1_fn ;
input s1_fn ;
input [ 2:1] in2_fn ;
input s2_fn ;
input [ 2:1] in3_fn ;
input s3_fn ;
reg [ 2:1] out_fn ;
begin
case ({ bp_sel_28d[3], bp_sel_28d[2], bp_sel_28d[1], bp_sel_28d[0]}) /* synopsys parallel_case */
4'b0001: out_fn = in0_fn;
4'b0010: out_fn = in1_fn;
4'b0100: out_fn = in2_fn;
4'b1000: out_fn = in3_fn;
default: out_fn = 65'hx;
endcase
bypass_28 = out_fn ;
end
endfunction
assign bp_paddr[29:28] = bypass_28( va_mux[29:28], bp_sel_28d[0], /* combo of all Virtual addr.*/ 2'b0, bp_sel_28d[1], /* IO MMU Bypass bit selects "00".*/ ibar[25:24], bp_sel_28d[2], /* IO Base Address Reg output.*/ bootAddr[1:0], bp_sel_28d[3]) ;
// synopsys translate_off
always @ (posedge(~Mclocks.clock))
#1 if (( bp_sel_28d[3]+ bp_sel_28d[2]+ bp_sel_28d[1]+ bp_sel_28d[0] !== 1) & `SS_SCOPE.input_reset_l &
~Mtask.trace.ppr & ~( bp_sel_28d[3]+ bp_sel_28d[2]+ bp_sel_28d[1]^ bp_sel_28d[0]===1'bx)) begin
$display("### %m.bypass_28: CMUX4D select error!\n");
$display(" bp_sel_28d[3], bp_sel_28d[2], bp_sel_28d[1], bp_sel_28d[0]=%0d%0d%0d%0d\n", bp_sel_28d[3], bp_sel_28d[2], bp_sel_28d[1], bp_sel_28d[0]);
Mclocks.warning_count = Mclocks.warning_count + 1;
end
// synopsys translate_on
// Expanded macro end.
/* force "11" if in BOOT MODE*/
/* DPA_28 mux (2:1) selects between Bypass addr. and TLB addr. */
// Expanded macro begin.
// cmux2(dpa_28, 2, data_pa[29:28], tb_out[23:22], /* TLB data output (PTP or PTE)*/ hack_par[29:28], /* Bypass address*/ dpa_sel_b)
function [ 2:1] dpa_28 ;
input [ 2:1] in0_fn ;
input [ 2:1] in1_fn ;
input select_fn ;
reg [ 2:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
dpa_28 = out_fn ;
end
endfunction
assign data_pa[29:28] = dpa_28( tb_out[23:22], /* TLB data output (PTP or PTE)*/ hack_par[29:28], /* Bypass address*/ dpa_sel_b) ;
// Expanded macro end.
/* DPA mux select (0 = tb_out).*/
/* */
/***** PA[27] definition. ************************************************/
/* BYPASS_27 mux (3:1) provides addresses that bypass the TLB. */
// Expanded macro begin.
// cmux3d(bypass_27, 1, bp_paddr[27], va_mux[27], /* combination of all Virtual addr.*/ bp_sel_21d[0], /* Bypass Mux selects (decoded above).*/ ctpr[23], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* Bypass Mux selects (decoded above).*/ ibar[23], /* IO Base Address Register output.*/ bp_sel_21d[2])
function [ 1:1] bypass_27 ;
input [ 1:1] in0_fn ;
input s0_fn ;
input [ 1:1] in1_fn ;
input s1_fn ;
input [ 1:1] in2_fn ;
input s2_fn ;
reg [ 1:1] out_fn ;
begin
case ({ /* IO Base Address Register output.*/ bp_sel_21d[2], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* combination of all Virtual addr.*/ bp_sel_21d[0]}) /* synopsys parallel_case */
3'b001: out_fn = in0_fn;
3'b010: out_fn = in1_fn;
3'b100: out_fn = in2_fn;
default: out_fn = 65'hx;
endcase
bypass_27 = out_fn ;
end
endfunction
assign bp_paddr[27] = bypass_27( va_mux[27], /* combination of all Virtual addr.*/ bp_sel_21d[0], /* Bypass Mux selects (decoded above).*/ ctpr[23], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* Bypass Mux selects (decoded above).*/ ibar[23], /* IO Base Address Register output.*/ bp_sel_21d[2]) ;
// synopsys translate_off
always @ (posedge(~Mclocks.clock))
#1 if (( /* IO Base Address Register output.*/ bp_sel_21d[2]+ /* Context Table Pointer Reg.*/ bp_sel_21d[1]+ /* combination of all Virtual addr.*/ bp_sel_21d[0] !== 1) & `SS_SCOPE.input_reset_l &
~Mtask.trace.ppr & ~( /* IO Base Address Register output.*/ bp_sel_21d[2]+ /* Context Table Pointer Reg.*/ bp_sel_21d[1]^ /* combination of all Virtual addr.*/ bp_sel_21d[0]===1'bx)) begin
$display("### %m.bypass_27: CMUX3D select error!\n");
$display(" /* IO Base Address Register output.*/ bp_sel_21d[2], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* combination of all Virtual addr.*/ bp_sel_21d[0]=%0d%0d%0d\n", /* IO Base Address Register output.*/ bp_sel_21d[2], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* combination of all Virtual addr.*/ bp_sel_21d[0]);
Mclocks.warning_count = Mclocks.warning_count + 1;
end
// synopsys translate_on
// Expanded macro end.
/* Bypass Mux selects (decoded above).*/
/* DPA_27 mux (2:1) selects between Bypass addr. and TLB addr. */
// Expanded macro begin.
// cmux2(dpa_27, 1, data_pa[27], tb_out[21], /* TLB data output (PTP or PTE)*/ hack_par[27], /* Bypass address*/ dpa_sel_b)
function [ 1:1] dpa_27 ;
input [ 1:1] in0_fn ;
input [ 1:1] in1_fn ;
input select_fn ;
reg [ 1:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
dpa_27 = out_fn ;
end
endfunction
assign data_pa[27] = dpa_27( tb_out[21], /* TLB data output (PTP or PTE)*/ hack_par[27], /* Bypass address*/ dpa_sel_b) ;
// Expanded macro end.
/* DPA mux select (0 = tb_out).*/
/* */
/***** PA[26:24] definition. *********************************************/
/* BYPASS_24 mux (3:1) provides addresses that bypass the TLB. */
// Expanded macro begin.
// cmux3d(bypass_24, 3, bp_paddr[26:24], va_mux[26:24], /* combination of all Virtual addr.*/ bp_sel_21d[0], /* Bypass Mux selects (decoded above).*/ ctpr[22:20], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* Bypass Mux selects (decoded above).*/ ibar[22:20], /* IO Base Address Register output.*/ bp_sel_21d[2])
function [ 3:1] bypass_24 ;
input [ 3:1] in0_fn ;
input s0_fn ;
input [ 3:1] in1_fn ;
input s1_fn ;
input [ 3:1] in2_fn ;
input s2_fn ;
reg [ 3:1] out_fn ;
begin
case ({ /* IO Base Address Register output.*/ bp_sel_21d[2], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* combination of all Virtual addr.*/ bp_sel_21d[0]}) /* synopsys parallel_case */
3'b001: out_fn = in0_fn;
3'b010: out_fn = in1_fn;
3'b100: out_fn = in2_fn;
default: out_fn = 65'hx;
endcase
bypass_24 = out_fn ;
end
endfunction
assign bp_paddr[26:24] = bypass_24( va_mux[26:24], /* combination of all Virtual addr.*/ bp_sel_21d[0], /* Bypass Mux selects (decoded above).*/ ctpr[22:20], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* Bypass Mux selects (decoded above).*/ ibar[22:20], /* IO Base Address Register output.*/ bp_sel_21d[2]) ;
// synopsys translate_off
always @ (posedge(~Mclocks.clock))
#1 if (( /* IO Base Address Register output.*/ bp_sel_21d[2]+ /* Context Table Pointer Reg.*/ bp_sel_21d[1]+ /* combination of all Virtual addr.*/ bp_sel_21d[0] !== 1) & `SS_SCOPE.input_reset_l &
~Mtask.trace.ppr & ~( /* IO Base Address Register output.*/ bp_sel_21d[2]+ /* Context Table Pointer Reg.*/ bp_sel_21d[1]^ /* combination of all Virtual addr.*/ bp_sel_21d[0]===1'bx)) begin
$display("### %m.bypass_24: CMUX3D select error!\n");
$display(" /* IO Base Address Register output.*/ bp_sel_21d[2], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* combination of all Virtual addr.*/ bp_sel_21d[0]=%0d%0d%0d\n", /* IO Base Address Register output.*/ bp_sel_21d[2], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* combination of all Virtual addr.*/ bp_sel_21d[0]);
Mclocks.warning_count = Mclocks.warning_count + 1;
end
// synopsys translate_on
// Expanded macro end.
/* Bypass Mux selects (decoded above).*/
/* DPA_24 mux (2:1) selects between Bypass addr. and TLB addr. */
// Expanded macro begin.
// cmux2(dpa_24, 3, data_pa[26:24], tb_out[20:18], /* TLB data output (PTP or PTE)*/ hack_par[26:24], /* Bypass address*/ dpa_sel_b)
function [ 3:1] dpa_24 ;
input [ 3:1] in0_fn ;
input [ 3:1] in1_fn ;
input select_fn ;
reg [ 3:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
dpa_24 = out_fn ;
end
endfunction
assign data_pa[26:24] = dpa_24( tb_out[20:18], /* TLB data output (PTP or PTE)*/ hack_par[26:24], /* Bypass address*/ dpa_sel_b) ;
// Expanded macro end.
/* DPA mux select (0 = tb_out).*/
/* */
/***** PA[23:21] definition. *********************************************/
/* BYPASS_21 mux (3:1) provides addresses that bypass the TLB. */
// Expanded macro begin.
// cmux3d(bypass_21, 3, bp_paddr[23:21], va_mux[23:21], /* combination of all Virtual addr.*/ bp_sel_21d[0], /* Bypass Mux selects (decoded above).*/ ctpr[19:17], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* Bypass Mux selects (decoded above).*/ ibar[19:17], /* IO Base Address Register output.*/ bp_sel_21d[2])
function [ 3:1] bypass_21 ;
input [ 3:1] in0_fn ;
input s0_fn ;
input [ 3:1] in1_fn ;
input s1_fn ;
input [ 3:1] in2_fn ;
input s2_fn ;
reg [ 3:1] out_fn ;
begin
case ({ /* IO Base Address Register output.*/ bp_sel_21d[2], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* combination of all Virtual addr.*/ bp_sel_21d[0]}) /* synopsys parallel_case */
3'b001: out_fn = in0_fn;
3'b010: out_fn = in1_fn;
3'b100: out_fn = in2_fn;
default: out_fn = 65'hx;
endcase
bypass_21 = out_fn ;
end
endfunction
assign bp_paddr[23:21] = bypass_21( va_mux[23:21], /* combination of all Virtual addr.*/ bp_sel_21d[0], /* Bypass Mux selects (decoded above).*/ ctpr[19:17], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* Bypass Mux selects (decoded above).*/ ibar[19:17], /* IO Base Address Register output.*/ bp_sel_21d[2]) ;
// synopsys translate_off
always @ (posedge(~Mclocks.clock))
#1 if (( /* IO Base Address Register output.*/ bp_sel_21d[2]+ /* Context Table Pointer Reg.*/ bp_sel_21d[1]+ /* combination of all Virtual addr.*/ bp_sel_21d[0] !== 1) & `SS_SCOPE.input_reset_l &
~Mtask.trace.ppr & ~( /* IO Base Address Register output.*/ bp_sel_21d[2]+ /* Context Table Pointer Reg.*/ bp_sel_21d[1]^ /* combination of all Virtual addr.*/ bp_sel_21d[0]===1'bx)) begin
$display("### %m.bypass_21: CMUX3D select error!\n");
$display(" /* IO Base Address Register output.*/ bp_sel_21d[2], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* combination of all Virtual addr.*/ bp_sel_21d[0]=%0d%0d%0d\n", /* IO Base Address Register output.*/ bp_sel_21d[2], /* Context Table Pointer Reg.*/ bp_sel_21d[1], /* combination of all Virtual addr.*/ bp_sel_21d[0]);
Mclocks.warning_count = Mclocks.warning_count + 1;
end
// synopsys translate_on
// Expanded macro end.
/* Bypass Mux selects (decoded above).*/
/* DPA_21 mux (2:1) selects between Bypass addr. and TLB addr. */
// Expanded macro begin.
// cmux2(dpa_21, 3, data_pa[23:21], tb_out[17:15], /* TLB data output (PTP or PTE)*/ hack_par[23:21], /* Bypass address*/ dpa_sel_l1)
function [ 3:1] dpa_21 ;
input [ 3:1] in0_fn ;
input [ 3:1] in1_fn ;
input select_fn ;
reg [ 3:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
dpa_21 = out_fn ;
end
endfunction
assign data_pa[23:21] = dpa_21( tb_out[17:15], /* TLB data output (PTP or PTE)*/ hack_par[23:21], /* Bypass address*/ dpa_sel_l1) ;
// Expanded macro end.
/* DPA mux select (0 = tb_out).*/
/* */
/***** PA[20] definition. ************************************************/
/* BYPASS_20 mux (4:1) provides addresses that bypass the TLB. */
// Expanded macro begin.
// cmux4d(bypass_20, 1, bp_paddr[20], va_mux[20], bp_sel_20d[0], /* combination of all Virtual addr.*/ ctpr[16], bp_sel_20d[1], /* Context Table Pointer Reg.*/ ibar[16], bp_sel_20d[2], /* IO Base Address Register output.*/ io_addr[30], bp_sel_20d[3])
function [ 1:1] bypass_20 ;
input [ 1:1] in0_fn ;
input s0_fn ;
input [ 1:1] in1_fn ;
input s1_fn ;
input [ 1:1] in2_fn ;
input s2_fn ;
input [ 1:1] in3_fn ;
input s3_fn ;
reg [ 1:1] out_fn ;
begin
case ({ bp_sel_20d[3], bp_sel_20d[2], bp_sel_20d[1], bp_sel_20d[0]}) /* synopsys parallel_case */
4'b0001: out_fn = in0_fn;
4'b0010: out_fn = in1_fn;
4'b0100: out_fn = in2_fn;
4'b1000: out_fn = in3_fn;
default: out_fn = 65'hx;
endcase
bypass_20 = out_fn ;
end
endfunction
assign bp_paddr[20] = bypass_20( va_mux[20], bp_sel_20d[0], /* combination of all Virtual addr.*/ ctpr[16], bp_sel_20d[1], /* Context Table Pointer Reg.*/ ibar[16], bp_sel_20d[2], /* IO Base Address Register output.*/ io_addr[30], bp_sel_20d[3]) ;
// synopsys translate_off
always @ (posedge(~Mclocks.clock))
#1 if (( bp_sel_20d[3]+ bp_sel_20d[2]+ bp_sel_20d[1]+ bp_sel_20d[0] !== 1) & `SS_SCOPE.input_reset_l &
~Mtask.trace.ppr & ~( bp_sel_20d[3]+ bp_sel_20d[2]+ bp_sel_20d[1]^ bp_sel_20d[0]===1'bx)) begin
$display("### %m.bypass_20: CMUX4D select error!\n");
$display(" bp_sel_20d[3], bp_sel_20d[2], bp_sel_20d[1], bp_sel_20d[0]=%0d%0d%0d%0d\n", bp_sel_20d[3], bp_sel_20d[2], bp_sel_20d[1], bp_sel_20d[0]);
Mclocks.warning_count = Mclocks.warning_count + 1;
end
// synopsys translate_on
// Expanded macro end.
/* IO virtual address bit [30].*/
/* DPA_20 mux (2:1) selects between Bypass addr. and TLB addr. */
// Expanded macro begin.
// cmux2(dpa_20, 1, data_pa[20], tb_out[14], /* TLB data output (PTP or PTE)*/ hack_par[20], /* Bypass address*/ dpa_sel_l1)
function [ 1:1] dpa_20 ;
input [ 1:1] in0_fn ;
input [ 1:1] in1_fn ;
input select_fn ;
reg [ 1:1] out_fn ;
begin
case (select_fn) /* synopsys parallel_case */
1'b0: out_fn = in0_fn ;
1'b1: out_fn = in1_fn ;
default: out_fn = 65'hx;
endcase
dpa_20 = out_fn ;
end
endfunction
assign data_pa[20] = dpa_20( tb_out[14], /* TLB data output (PTP or PTE)*/ hack_par[20], /* Bypass address*/ dpa_sel_l1) ;
// Expanded macro end.
/* DPA mux select (0 = tb_out).*/
/* */
/***** PA[19] definition. ************************************************/
/* BYPASS_19 mux (4:1) provides addresses that bypass the TLB. */
// Expanded macro begin.
// cmux4d(bypass_19, 1, bp_paddr[19], va_mux[19], bp_sel_19d[0], /* combination of all Virtual addr.*/ ctpr[15], bp_sel_19d[1], /* Context Table Pointer Reg.*/ ibar[15], bp_sel_19d[2], /* IO Base Address Register output.*/ io_addr[29], bp_sel_19d[3])
function [ 1:1] bypass_19 ;
input [ 1:1] in0_fn ;
input s0_fn ;
input [ 1:1] in1_fn ;
input s1_fn ;
input [ 1:1] in2_fn ;
input s2_fn ;
input [ 1:1] in3_fn ;
input s3_fn ;
reg [ 1:1] out_fn ;
begin
case ({ bp_sel_19d[3], bp_sel_19d[2], bp_sel_19d[1], bp_sel_19d[0]}) /* synopsys parallel_case */
4'b0001: out_fn = in0_fn;
4'b0010: out_fn = in1_fn;
This page: |
Created: | Thu Aug 19 11:59:29 1999 |
| From: |
../../../sparc_v8/ssparc/mmu/dp_mmu/rtl/dp_mmu.v
|