Add HMASTER output to processor wrappers, to indicate when the bus cycle is driven by SBA rather than the core
This commit is contained in:
		
							parent
							
								
									b1225c386c
								
							
						
					
					
						commit
						ae11d04b10
					
				| 
						 | 
					@ -28,6 +28,7 @@ module hazard3_cpu_1port #(
 | 
				
			||||||
	output wire [2:0]        ahblm_hburst,
 | 
						output wire [2:0]        ahblm_hburst,
 | 
				
			||||||
	output reg  [3:0]        ahblm_hprot,
 | 
						output reg  [3:0]        ahblm_hprot,
 | 
				
			||||||
	output wire              ahblm_hmastlock,
 | 
						output wire              ahblm_hmastlock,
 | 
				
			||||||
 | 
						output reg  [7:0]        ahblm_hmaster,
 | 
				
			||||||
	output reg               ahblm_hexcl,
 | 
						output reg               ahblm_hexcl,
 | 
				
			||||||
	input  wire              ahblm_hready,
 | 
						input  wire              ahblm_hready,
 | 
				
			||||||
	input  wire              ahblm_hresp,
 | 
						input  wire              ahblm_hresp,
 | 
				
			||||||
| 
						 | 
					@ -245,6 +246,7 @@ always @ (*) begin
 | 
				
			||||||
		ahblm_hsize   = {1'b0, dbg_sbus_size};
 | 
							ahblm_hsize   = {1'b0, dbg_sbus_size};
 | 
				
			||||||
		ahblm_hwrite  = dbg_sbus_write;
 | 
							ahblm_hwrite  = dbg_sbus_write;
 | 
				
			||||||
		ahblm_hprot   = hprot_sbus;
 | 
							ahblm_hprot   = hprot_sbus;
 | 
				
			||||||
 | 
							ahblm_hmaster = 8'h01;
 | 
				
			||||||
	end else if (bus_gnt_d) begin
 | 
						end else if (bus_gnt_d) begin
 | 
				
			||||||
		ahblm_htrans  = HTRANS_NSEQ;
 | 
							ahblm_htrans  = HTRANS_NSEQ;
 | 
				
			||||||
		ahblm_hexcl   = core_aph_excl_d;
 | 
							ahblm_hexcl   = core_aph_excl_d;
 | 
				
			||||||
| 
						 | 
					@ -252,6 +254,7 @@ always @ (*) begin
 | 
				
			||||||
		ahblm_hsize   = core_hsize_d;
 | 
							ahblm_hsize   = core_hsize_d;
 | 
				
			||||||
		ahblm_hwrite  = core_hwrite_d;
 | 
							ahblm_hwrite  = core_hwrite_d;
 | 
				
			||||||
		ahblm_hprot   = hprot_data;
 | 
							ahblm_hprot   = hprot_data;
 | 
				
			||||||
 | 
							ahblm_hmaster = 8'h00;
 | 
				
			||||||
	end else if (bus_gnt_i) begin
 | 
						end else if (bus_gnt_i) begin
 | 
				
			||||||
		ahblm_htrans  = HTRANS_NSEQ;
 | 
							ahblm_htrans  = HTRANS_NSEQ;
 | 
				
			||||||
		ahblm_hexcl   = 1'b0;
 | 
							ahblm_hexcl   = 1'b0;
 | 
				
			||||||
| 
						 | 
					@ -259,6 +262,7 @@ always @ (*) begin
 | 
				
			||||||
		ahblm_hsize   = core_hsize_i;
 | 
							ahblm_hsize   = core_hsize_i;
 | 
				
			||||||
		ahblm_hwrite  = 1'b0;
 | 
							ahblm_hwrite  = 1'b0;
 | 
				
			||||||
		ahblm_hprot   = hprot_instr;
 | 
							ahblm_hprot   = hprot_instr;
 | 
				
			||||||
 | 
							ahblm_hmaster = 8'h00;
 | 
				
			||||||
	end else begin
 | 
						end else begin
 | 
				
			||||||
		ahblm_htrans  = HTRANS_IDLE;
 | 
							ahblm_htrans  = HTRANS_IDLE;
 | 
				
			||||||
		ahblm_hexcl   = 1'b0;
 | 
							ahblm_hexcl   = 1'b0;
 | 
				
			||||||
| 
						 | 
					@ -266,6 +270,7 @@ always @ (*) begin
 | 
				
			||||||
		ahblm_hsize   = 3'h0;
 | 
							ahblm_hsize   = 3'h0;
 | 
				
			||||||
		ahblm_hwrite  = 1'b0;
 | 
							ahblm_hwrite  = 1'b0;
 | 
				
			||||||
		ahblm_hprot   = 4'h0;
 | 
							ahblm_hprot   = 4'h0;
 | 
				
			||||||
 | 
							ahblm_hmaster = 8'h00;
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,6 +28,7 @@ module hazard3_cpu_2port #(
 | 
				
			||||||
	output wire [2:0]        i_hburst,
 | 
						output wire [2:0]        i_hburst,
 | 
				
			||||||
	output wire [3:0]        i_hprot,
 | 
						output wire [3:0]        i_hprot,
 | 
				
			||||||
	output wire              i_hmastlock,
 | 
						output wire              i_hmastlock,
 | 
				
			||||||
 | 
						output wire [7:0]        i_hmaster,
 | 
				
			||||||
	input  wire              i_hready,
 | 
						input  wire              i_hready,
 | 
				
			||||||
	input  wire              i_hresp,
 | 
						input  wire              i_hresp,
 | 
				
			||||||
	output wire [W_DATA-1:0] i_hwdata,
 | 
						output wire [W_DATA-1:0] i_hwdata,
 | 
				
			||||||
| 
						 | 
					@ -41,6 +42,7 @@ module hazard3_cpu_2port #(
 | 
				
			||||||
	output wire [2:0]        d_hburst,
 | 
						output wire [2:0]        d_hburst,
 | 
				
			||||||
	output wire [3:0]        d_hprot,
 | 
						output wire [3:0]        d_hprot,
 | 
				
			||||||
	output wire              d_hmastlock,
 | 
						output wire              d_hmastlock,
 | 
				
			||||||
 | 
						output wire [7:0]        d_hmaster,
 | 
				
			||||||
	output wire              d_hexcl,
 | 
						output wire              d_hexcl,
 | 
				
			||||||
	input  wire              d_hready,
 | 
						input  wire              d_hready,
 | 
				
			||||||
	input  wire              d_hresp,
 | 
						input  wire              d_hresp,
 | 
				
			||||||
| 
						 | 
					@ -189,6 +191,7 @@ assign core_rdata_i = i_hrdata;
 | 
				
			||||||
assign i_hwrite = 1'b0;
 | 
					assign i_hwrite = 1'b0;
 | 
				
			||||||
assign i_hburst = 3'h0;
 | 
					assign i_hburst = 3'h0;
 | 
				
			||||||
assign i_hmastlock = 1'b0;
 | 
					assign i_hmastlock = 1'b0;
 | 
				
			||||||
 | 
					assign i_hmaster = 8'h00;
 | 
				
			||||||
assign i_hwdata = {W_DATA{1'b0}};
 | 
					assign i_hwdata = {W_DATA{1'b0}};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
assign i_hprot = {
 | 
					assign i_hprot = {
 | 
				
			||||||
| 
						 | 
					@ -270,6 +273,7 @@ assign dbg_sbus_rdata = d_hrdata;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
assign d_hburst = 3'h0;
 | 
					assign d_hburst = 3'h0;
 | 
				
			||||||
assign d_hmastlock = 1'b0;
 | 
					assign d_hmastlock = 1'b0;
 | 
				
			||||||
 | 
					assign d_hmaster = bus_gnt_s ? 8'h01 : 8'h00;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
endmodule
 | 
					endmodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue