blob: 08a076e62cab2c3bb777d5e983282b1c4139a01e [file] [log] [blame] [edit]
// ========== Copyright Header Begin ==========================================
//
// OpenSPARC T1 Processor File: lsu_stb_ctldp.v
// Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
//
// The above named program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public
// License version 2 as published by the Free Software Foundation.
//
// The above named program is distributed in the hope that it will be
// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this work; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
//
// ========== Copyright Header End ============================================
//FPGA_SYN enables all FPGA related modifications
`ifdef FPGA_SYN
`define FPGA_SYN_CLK_EN
`define FPGA_SYN_CLK_DFF
`endif
module lsu_stb_ctldp (/*AUTOARG*/
// Outputs
so, stb_state_si_0, stb_state_si_1, stb_state_si_2,
stb_state_si_3, stb_state_si_4, stb_state_si_5, stb_state_si_6,
stb_state_si_7, stb_state_rtype_0, stb_state_rtype_1,
stb_state_rtype_2, stb_state_rtype_3, stb_state_rtype_4,
stb_state_rtype_5, stb_state_rtype_6, stb_state_rtype_7,
stb_state_rmo,
// Inputs
rclk, si, se, stb_clk_en_l, lsu_stb_va_m, lsu_st_rq_type_m,
lsu_st_rmo_m
);
input rclk;
input si;
input se;
// input tmb_l;
output so;
input [7:0] stb_clk_en_l;
input [7:6] lsu_stb_va_m;
input [2:1] lsu_st_rq_type_m;
input lsu_st_rmo_m;
output [3:2] stb_state_si_0;
output [3:2] stb_state_si_1;
output [3:2] stb_state_si_2;
output [3:2] stb_state_si_3;
output [3:2] stb_state_si_4;
output [3:2] stb_state_si_5;
output [3:2] stb_state_si_6;
output [3:2] stb_state_si_7;
output [2:1] stb_state_rtype_0;
output [2:1] stb_state_rtype_1;
output [2:1] stb_state_rtype_2;
output [2:1] stb_state_rtype_3;
output [2:1] stb_state_rtype_4;
output [2:1] stb_state_rtype_5;
output [2:1] stb_state_rtype_6;
output [2:1] stb_state_rtype_7;
output [7:0] stb_state_rmo;
wire [7:0] stb_clk;
wire clk;
assign clk = rclk;
`ifdef FPGA_SYN_CLK_EN
`else
clken_buf stb0_clkbuf (
.rclk (clk),
.enb_l (stb_clk_en_l[0]),
.tmb_l (~se),
.clk (stb_clk[0])
) ;
`endif
`ifdef FPGA_SYN_CLK_EN
`else
clken_buf stb1_clkbuf (
.rclk (clk),
.enb_l (stb_clk_en_l[1]),
.tmb_l (~se),
.clk (stb_clk[1])
) ;
`endif
`ifdef FPGA_SYN_CLK_EN
`else
clken_buf stb2_clkbuf (
.rclk (clk),
.enb_l (stb_clk_en_l[2]),
.tmb_l (~se),
.clk (stb_clk[2])
) ;
`endif
`ifdef FPGA_SYN_CLK_EN
`else
clken_buf stb3_clkbuf (
.rclk (clk),
.enb_l (stb_clk_en_l[3]),
.tmb_l (~se),
.clk (stb_clk[3])
) ;
`endif
`ifdef FPGA_SYN_CLK_EN
`else
clken_buf stb4_clkbuf (
.rclk (clk),
.enb_l (stb_clk_en_l[4]),
.tmb_l (~se),
.clk (stb_clk[4])
) ;
`endif
`ifdef FPGA_SYN_CLK_EN
`else
clken_buf stb5_clkbuf (
.rclk (clk),
.enb_l (stb_clk_en_l[5]),
.tmb_l (~se),
.clk (stb_clk[5])
) ;
`endif
`ifdef FPGA_SYN_CLK_EN
`else
clken_buf stb6_clkbuf (
.rclk (clk),
.enb_l (stb_clk_en_l[6]),
.tmb_l (~se),
.clk (stb_clk[6])
) ;
`endif
`ifdef FPGA_SYN_CLK_EN
`else
clken_buf stb7_clkbuf (
.rclk (clk),
.enb_l (stb_clk_en_l[7]),
.tmb_l (~se),
.clk (stb_clk[7])
) ;
`endif
`ifdef FPGA_SYN_CLK_DFF
dffe_s #(5) ff_spec_write_0 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_0[3:2], stb_state_rtype_0[2:1],
stb_state_rmo[0]} ),
.en (~(stb_clk_en_l[0])), .clk(clk),
.se (se), .si (), .so ()
);
`else
dff_s #(5) ff_spec_write_0 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_0[3:2], stb_state_rtype_0[2:1],
stb_state_rmo[0]} ),
.clk (stb_clk[0]),
.se (se), .si (), .so ()
);
`endif
`ifdef FPGA_SYN_CLK_DFF
dffe_s #(5) ff_spec_write_1 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_1[3:2], stb_state_rtype_1[2:1],
stb_state_rmo[1]} ),
.en (~(stb_clk_en_l[1])), .clk(clk),
.se (se), .si (), .so ()
);
`else
dff_s #(5) ff_spec_write_1 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_1[3:2], stb_state_rtype_1[2:1],
stb_state_rmo[1]} ),
.clk (stb_clk[1]),
.se (se), .si (), .so ()
);
`endif
`ifdef FPGA_SYN_CLK_DFF
dffe_s #(5) ff_spec_write_2 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_2[3:2], stb_state_rtype_2[2:1],
stb_state_rmo[2]} ),
.en (~(stb_clk_en_l[2])), .clk(clk),
.se (se), .si (), .so ()
);
`else
dff_s #(5) ff_spec_write_2 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_2[3:2], stb_state_rtype_2[2:1],
stb_state_rmo[2]} ),
.clk (stb_clk[2]),
.se (se), .si (), .so ()
);
`endif
`ifdef FPGA_SYN_CLK_DFF
dffe_s #(5) ff_spec_write_3 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_3[3:2], stb_state_rtype_3[2:1],
stb_state_rmo[3]} ),
.en (~(stb_clk_en_l[3])), .clk(clk),
.se (se), .si (), .so ()
);
`else
dff_s #(5) ff_spec_write_3 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_3[3:2], stb_state_rtype_3[2:1],
stb_state_rmo[3]} ),
.clk (stb_clk[3]),
.se (se), .si (), .so ()
);
`endif
`ifdef FPGA_SYN_CLK_DFF
dffe_s #(5) ff_spec_write_4 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_4[3:2], stb_state_rtype_4[2:1],
stb_state_rmo[4]} ),
.en (~(stb_clk_en_l[4])), .clk(clk),
.se (se), .si (), .so ()
);
`else
dff_s #(5) ff_spec_write_4 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_4[3:2], stb_state_rtype_4[2:1],
stb_state_rmo[4]} ),
.clk (stb_clk[4]),
.se (se), .si (), .so ()
);
`endif
`ifdef FPGA_SYN_CLK_DFF
dffe_s #(5) ff_spec_write_5 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_5[3:2], stb_state_rtype_5[2:1],
stb_state_rmo[5]} ),
.en (~(stb_clk_en_l[5])), .clk(clk),
.se (se), .si (), .so ()
);
`else
dff_s #(5) ff_spec_write_5 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_5[3:2], stb_state_rtype_5[2:1],
stb_state_rmo[5]} ),
.clk (stb_clk[5]),
.se (se), .si (), .so ()
);
`endif
`ifdef FPGA_SYN_CLK_DFF
dffe_s #(5) ff_spec_write_6 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_6[3:2], stb_state_rtype_6[2:1],
stb_state_rmo[6]} ),
.en (~(stb_clk_en_l[6])), .clk(clk),
.se (se), .si (), .so ()
);
`else
dff_s #(5) ff_spec_write_6 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_6[3:2], stb_state_rtype_6[2:1],
stb_state_rmo[6]} ),
.clk (stb_clk[6]),
.se (se), .si (), .so ()
);
`endif
`ifdef FPGA_SYN_CLK_DFF
dffe_s #(5) ff_spec_write_7 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_7[3:2], stb_state_rtype_7[2:1],
stb_state_rmo[7]} ),
.en (~(stb_clk_en_l[7])), .clk(clk),
.se (se), .si (), .so ()
);
`else
dff_s #(5) ff_spec_write_7 (
.din ({lsu_stb_va_m[7:6], lsu_st_rq_type_m[2:1],
lsu_st_rmo_m}),
.q ({stb_state_si_7[3:2], stb_state_rtype_7[2:1],
stb_state_rmo[7]} ),
.clk (stb_clk[7]),
.se (se), .si (), .so ()
);
`endif
endmodule // lsu_stb_ctldp