blob: e597101cfb9489e7d5b717f0f4228741c45db06a [file] [log] [blame]
module wb_rd_wr_buf#(
parameter WIDTH_ADD = 8
)(
input wb_rd_wr,
input [WIDTH_ADD - 1 : 0] wb_buf_address,
output reg IB_wr_en,
output reg WB_wr_en,
output reg IM_wr_en,
output reg OB_rd_en,
output reg SA_rd_en
);
always @(*) // RICHA : To be converted to Combinational Logic.
begin
case(wb_buf_address)
8'h31:
begin
IB_wr_en = wb_rd_wr;
WB_wr_en = 0;
IM_wr_en = 0;
OB_rd_en = 0;
SA_rd_en = 0;
end
8'h32:
begin
IB_wr_en = 0;
WB_wr_en = wb_rd_wr;
IM_wr_en = 0;
OB_rd_en = 0;
SA_rd_en = 0;
end
8'h33:
begin
IB_wr_en = 0;
WB_wr_en = 0;
IM_wr_en = 0;
OB_rd_en = ~wb_rd_wr;
SA_rd_en = 0;
end
8'h40:
begin
IB_wr_en = 0;
WB_wr_en = 0;
IM_wr_en = wb_rd_wr;
OB_rd_en = 0;
SA_rd_en = 0;
end
8'h41:
begin
IB_wr_en = 0;
WB_wr_en = 0;
IM_wr_en = 0;
OB_rd_en = 0;
SA_rd_en = ~wb_rd_wr;
end
default:
begin
IB_wr_en = 0;
WB_wr_en = 0;
IM_wr_en = 0;
OB_rd_en = 0;
SA_rd_en = 0;
end
endcase
end // always ended
endmodule