⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wb_conmax_master_if.v

📁 这是一个MIPS架构的开发的CPU软核OR2000
💻 V
📖 第 1 页 / 共 2 页
字号:
input			s13_err_i;input			s13_rty_i;// Slave 14 Interfaceinput	[dw-1:0]	s14_data_i;output	[dw-1:0]	s14_data_o;output	[aw-1:0]	s14_addr_o;output	[sw-1:0]	s14_sel_o;output			s14_we_o;output			s14_cyc_o;output			s14_stb_o;input			s14_ack_i;input			s14_err_i;input			s14_rty_i;// Slave 15 Interfaceinput	[dw-1:0]	s15_data_i;output	[dw-1:0]	s15_data_o;output	[aw-1:0]	s15_addr_o;output	[sw-1:0]	s15_sel_o;output			s15_we_o;output			s15_cyc_o;output			s15_stb_o;input			s15_ack_i;input			s15_err_i;input			s15_rty_i;//////////////////////////////////////////////////////////////////////// Local Wires//reg	[dw-1:0]	wb_data_o;reg			wb_ack_o;reg			wb_err_o;reg			wb_rty_o;wire	[3:0]		slv_sel;wire		s0_cyc_o_next, s1_cyc_o_next, s2_cyc_o_next, s3_cyc_o_next;wire		s4_cyc_o_next, s5_cyc_o_next, s6_cyc_o_next, s7_cyc_o_next;wire		s8_cyc_o_next, s9_cyc_o_next, s10_cyc_o_next, s11_cyc_o_next;wire		s12_cyc_o_next, s13_cyc_o_next, s14_cyc_o_next, s15_cyc_o_next;reg		s0_cyc_o, s1_cyc_o, s2_cyc_o, s3_cyc_o;reg		s4_cyc_o, s5_cyc_o, s6_cyc_o, s7_cyc_o;reg		s8_cyc_o, s9_cyc_o, s10_cyc_o, s11_cyc_o;reg		s12_cyc_o, s13_cyc_o, s14_cyc_o, s15_cyc_o;//////////////////////////////////////////////////////////////////////// Select logic//assign slv_sel = wb_addr_i[aw-1:aw-4];//////////////////////////////////////////////////////////////////////// Address & Data Pass//assign s0_addr_o = wb_addr_i;assign s1_addr_o = wb_addr_i;assign s2_addr_o = wb_addr_i;assign s3_addr_o = wb_addr_i;assign s4_addr_o = wb_addr_i;assign s5_addr_o = wb_addr_i;assign s6_addr_o = wb_addr_i;assign s7_addr_o = wb_addr_i;assign s8_addr_o = wb_addr_i;assign s9_addr_o = wb_addr_i;assign s10_addr_o = wb_addr_i;assign s11_addr_o = wb_addr_i;assign s12_addr_o = wb_addr_i;assign s13_addr_o = wb_addr_i;assign s14_addr_o = wb_addr_i;assign s15_addr_o = wb_addr_i;assign s0_sel_o = wb_sel_i;assign s1_sel_o = wb_sel_i;assign s2_sel_o = wb_sel_i;assign s3_sel_o = wb_sel_i;assign s4_sel_o = wb_sel_i;assign s5_sel_o = wb_sel_i;assign s6_sel_o = wb_sel_i;assign s7_sel_o = wb_sel_i;assign s8_sel_o = wb_sel_i;assign s9_sel_o = wb_sel_i;assign s10_sel_o = wb_sel_i;assign s11_sel_o = wb_sel_i;assign s12_sel_o = wb_sel_i;assign s13_sel_o = wb_sel_i;assign s14_sel_o = wb_sel_i;assign s15_sel_o = wb_sel_i;assign s0_data_o = wb_data_i;assign s1_data_o = wb_data_i;assign s2_data_o = wb_data_i;assign s3_data_o = wb_data_i;assign s4_data_o = wb_data_i;assign s5_data_o = wb_data_i;assign s6_data_o = wb_data_i;assign s7_data_o = wb_data_i;assign s8_data_o = wb_data_i;assign s9_data_o = wb_data_i;assign s10_data_o = wb_data_i;assign s11_data_o = wb_data_i;assign s12_data_o = wb_data_i;assign s13_data_o = wb_data_i;assign s14_data_o = wb_data_i;assign s15_data_o = wb_data_i;always @(slv_sel or s0_data_i or s1_data_i or s2_data_i or s3_data_i or	s4_data_i or s5_data_i or s6_data_i or s7_data_i or s8_data_i or	s9_data_i or s10_data_i or s11_data_i or s12_data_i or	s13_data_i or s14_data_i or s15_data_i)	case(slv_sel)	// synopsys parallel_case	   4'd0:	wb_data_o = s0_data_i;	   4'd1:	wb_data_o = s1_data_i;	   4'd2:	wb_data_o = s2_data_i;	   4'd3:	wb_data_o = s3_data_i;	   4'd4:	wb_data_o = s4_data_i;	   4'd5:	wb_data_o = s5_data_i;	   4'd6:	wb_data_o = s6_data_i;	   4'd7:	wb_data_o = s7_data_i;	   4'd8:	wb_data_o = s8_data_i;	   4'd9:	wb_data_o = s9_data_i;	   4'd10:	wb_data_o = s10_data_i;	   4'd11:	wb_data_o = s11_data_i;	   4'd12:	wb_data_o = s12_data_i;	   4'd13:	wb_data_o = s13_data_i;	   4'd14:	wb_data_o = s14_data_i;	   4'd15:	wb_data_o = s15_data_i;	   default:	wb_data_o = {dw{1'bx}};	endcase//////////////////////////////////////////////////////////////////////// Control Signal Pass//assign s0_we_o = wb_we_i;assign s1_we_o = wb_we_i;assign s2_we_o = wb_we_i;assign s3_we_o = wb_we_i;assign s4_we_o = wb_we_i;assign s5_we_o = wb_we_i;assign s6_we_o = wb_we_i;assign s7_we_o = wb_we_i;assign s8_we_o = wb_we_i;assign s9_we_o = wb_we_i;assign s10_we_o = wb_we_i;assign s11_we_o = wb_we_i;assign s12_we_o = wb_we_i;assign s13_we_o = wb_we_i;assign s14_we_o = wb_we_i;assign s15_we_o = wb_we_i;assign s0_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s0_cyc_o : ((slv_sel==4'd0) ? wb_cyc_i : 1'b0);assign s1_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s1_cyc_o : ((slv_sel==4'd1) ? wb_cyc_i : 1'b0);assign s2_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s2_cyc_o : ((slv_sel==4'd2) ? wb_cyc_i : 1'b0);assign s3_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s3_cyc_o : ((slv_sel==4'd3) ? wb_cyc_i : 1'b0);assign s4_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s4_cyc_o : ((slv_sel==4'd4) ? wb_cyc_i : 1'b0);assign s5_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s5_cyc_o : ((slv_sel==4'd5) ? wb_cyc_i : 1'b0);assign s6_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s6_cyc_o : ((slv_sel==4'd6) ? wb_cyc_i : 1'b0);assign s7_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s7_cyc_o : ((slv_sel==4'd7) ? wb_cyc_i : 1'b0);assign s8_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s8_cyc_o : ((slv_sel==4'd8) ? wb_cyc_i : 1'b0);assign s9_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s9_cyc_o : ((slv_sel==4'd9) ? wb_cyc_i : 1'b0);assign s10_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s10_cyc_o : ((slv_sel==4'd10) ? wb_cyc_i : 1'b0);assign s11_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s11_cyc_o : ((slv_sel==4'd11) ? wb_cyc_i : 1'b0);assign s12_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s12_cyc_o : ((slv_sel==4'd12) ? wb_cyc_i : 1'b0);assign s13_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s13_cyc_o : ((slv_sel==4'd13) ? wb_cyc_i : 1'b0);assign s14_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s14_cyc_o : ((slv_sel==4'd14) ? wb_cyc_i : 1'b0);assign s15_cyc_o_next = (wb_cyc_i & !wb_stb_i) ? s15_cyc_o : ((slv_sel==4'd15) ? wb_cyc_i : 1'b0);always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s0_cyc_o <= #1 1'b0; 	else		s0_cyc_o <= #1 s0_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s1_cyc_o <= #1 1'b0; 	else		s1_cyc_o <= #1 s1_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s2_cyc_o <= #1 1'b0; 	else		s2_cyc_o <= #1 s2_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s3_cyc_o <= #1 1'b0; 	else		s3_cyc_o <= #1 s3_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s4_cyc_o <= #1 1'b0; 	else		s4_cyc_o <= #1 s4_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s5_cyc_o <= #1 1'b0; 	else		s5_cyc_o <= #1 s5_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s6_cyc_o <= #1 1'b0; 	else		s6_cyc_o <= #1 s6_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s7_cyc_o <= #1 1'b0; 	else		s7_cyc_o <= #1 s7_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s8_cyc_o <= #1 1'b0; 	else		s8_cyc_o <= #1 s8_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s9_cyc_o <= #1 1'b0; 	else		s9_cyc_o <= #1 s9_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s10_cyc_o <= #1 1'b0; 	else		s10_cyc_o <= #1 s10_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s11_cyc_o <= #1 1'b0; 	else		s11_cyc_o <= #1 s11_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s12_cyc_o <= #1 1'b0; 	else		s12_cyc_o <= #1 s12_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s13_cyc_o <= #1 1'b0; 	else		s13_cyc_o <= #1 s13_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s14_cyc_o <= #1 1'b0; 	else		s14_cyc_o <= #1 s14_cyc_o_next; always @(posedge clk_i or posedge rst_i) 	if(rst_i)	s15_cyc_o <= #1 1'b0; 	else		s15_cyc_o <= #1 s15_cyc_o_next; assign s0_stb_o = (slv_sel==4'd0) ? wb_stb_i : 1'b0;assign s1_stb_o = (slv_sel==4'd1) ? wb_stb_i : 1'b0;assign s2_stb_o = (slv_sel==4'd2) ? wb_stb_i : 1'b0;assign s3_stb_o = (slv_sel==4'd3) ? wb_stb_i : 1'b0;assign s4_stb_o = (slv_sel==4'd4) ? wb_stb_i : 1'b0;assign s5_stb_o = (slv_sel==4'd5) ? wb_stb_i : 1'b0;assign s6_stb_o = (slv_sel==4'd6) ? wb_stb_i : 1'b0;assign s7_stb_o = (slv_sel==4'd7) ? wb_stb_i : 1'b0;assign s8_stb_o = (slv_sel==4'd8) ? wb_stb_i : 1'b0;assign s9_stb_o = (slv_sel==4'd9) ? wb_stb_i : 1'b0;assign s10_stb_o = (slv_sel==4'd10) ? wb_stb_i : 1'b0;assign s11_stb_o = (slv_sel==4'd11) ? wb_stb_i : 1'b0;assign s12_stb_o = (slv_sel==4'd12) ? wb_stb_i : 1'b0;assign s13_stb_o = (slv_sel==4'd13) ? wb_stb_i : 1'b0;assign s14_stb_o = (slv_sel==4'd14) ? wb_stb_i : 1'b0;assign s15_stb_o = (slv_sel==4'd15) ? wb_stb_i : 1'b0;always @(slv_sel or s0_ack_i or s1_ack_i or s2_ack_i or s3_ack_i or	s4_ack_i or s5_ack_i or s6_ack_i or s7_ack_i or s8_ack_i or	s9_ack_i or s10_ack_i or s11_ack_i or s12_ack_i or	s13_ack_i or s14_ack_i or s15_ack_i)	case(slv_sel)	// synopsys parallel_case	   4'd0:	wb_ack_o = s0_ack_i;	   4'd1:	wb_ack_o = s1_ack_i;	   4'd2:	wb_ack_o = s2_ack_i;	   4'd3:	wb_ack_o = s3_ack_i;	   4'd4:	wb_ack_o = s4_ack_i;	   4'd5:	wb_ack_o = s5_ack_i;	   4'd6:	wb_ack_o = s6_ack_i;	   4'd7:	wb_ack_o = s7_ack_i;	   4'd8:	wb_ack_o = s8_ack_i;	   4'd9:	wb_ack_o = s9_ack_i;	   4'd10:	wb_ack_o = s10_ack_i;	   4'd11:	wb_ack_o = s11_ack_i;	   4'd12:	wb_ack_o = s12_ack_i;	   4'd13:	wb_ack_o = s13_ack_i;	   4'd14:	wb_ack_o = s14_ack_i;	   4'd15:	wb_ack_o = s15_ack_i;	   default:	wb_ack_o = 1'b0;	endcasealways @(slv_sel or s0_err_i or s1_err_i or s2_err_i or s3_err_i or	s4_err_i or s5_err_i or s6_err_i or s7_err_i or s8_err_i or	s9_err_i or s10_err_i or s11_err_i or s12_err_i or	s13_err_i or s14_err_i or s15_err_i)	case(slv_sel)	// synopsys parallel_case	   4'd0:	wb_err_o = s0_err_i;	   4'd1:	wb_err_o = s1_err_i;	   4'd2:	wb_err_o = s2_err_i;	   4'd3:	wb_err_o = s3_err_i;	   4'd4:	wb_err_o = s4_err_i;	   4'd5:	wb_err_o = s5_err_i;	   4'd6:	wb_err_o = s6_err_i;	   4'd7:	wb_err_o = s7_err_i;	   4'd8:	wb_err_o = s8_err_i;	   4'd9:	wb_err_o = s9_err_i;	   4'd10:	wb_err_o = s10_err_i;	   4'd11:	wb_err_o = s11_err_i;	   4'd12:	wb_err_o = s12_err_i;	   4'd13:	wb_err_o = s13_err_i;	   4'd14:	wb_err_o = s14_err_i;	   4'd15:	wb_err_o = s15_err_i;	   default:	wb_err_o = 1'b0;	endcasealways @(slv_sel or s0_rty_i or s1_rty_i or s2_rty_i or s3_rty_i or	s4_rty_i or s5_rty_i or s6_rty_i or s7_rty_i or s8_rty_i or	s9_rty_i or s10_rty_i or s11_rty_i or s12_rty_i or	s13_rty_i or s14_rty_i or s15_rty_i)	case(slv_sel)	// synopsys parallel_case	   4'd0:	wb_rty_o = s0_rty_i;	   4'd1:	wb_rty_o = s1_rty_i;	   4'd2:	wb_rty_o = s2_rty_i;	   4'd3:	wb_rty_o = s3_rty_i;	   4'd4:	wb_rty_o = s4_rty_i;	   4'd5:	wb_rty_o = s5_rty_i;	   4'd6:	wb_rty_o = s6_rty_i;	   4'd7:	wb_rty_o = s7_rty_i;	   4'd8:	wb_rty_o = s8_rty_i;	   4'd9:	wb_rty_o = s9_rty_i;	   4'd10:	wb_rty_o = s10_rty_i;	   4'd11:	wb_rty_o = s11_rty_i;	   4'd12:	wb_rty_o = s12_rty_i;	   4'd13:	wb_rty_o = s13_rty_i;	   4'd14:	wb_rty_o = s14_rty_i;	   4'd15:	wb_rty_o = s15_rty_i;	   default:	wb_rty_o = 1'b0;	endcaseendmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -