All pastes #458278 Raw Edit

Someone

public text v1 · immutable
#458278 ·published 2007-04-25 20:14 UTC
rendered paste body
module RF(RW,SA,SB,DR,D_in,DataA,DataB,reset);

input [2:0] DR,SA,SB;
input RW, reset;
input [7:0] D_in;
output [7:0] DataA, DataB;

reg [7:0] Mem[7:0], DataA, DataB;

always @ (SA)
case (SA)
	3'b000: DataA <= Mem[0];
	3'b001: DataA <= Mem[1];
	3'b010: DataA <= Mem[2];
	3'b011: DataA <= Mem[3];
	3'b100: DataA <= Mem[4];
	3'b101: DataA <= Mem[5];
	3'b110: DataA <= Mem[6];
	3'b111: DataA <= Mem[7];
endcase

always @ (SB)
case (SB)
	3'b000: DataB <= Mem[0];
	3'b001: DataB <= Mem[1];
	3'b010: DataB <= Mem[2];
	3'b011: DataB <= Mem[3];
	3'b100: DataB <= Mem[4];
	3'b101: DataB <= Mem[5];
	3'b110: DataB <= Mem[6];
	3'b111: DataB <= Mem[7];
endcase

always @ (D_in,reset)
begin
if(RW==1) begin
case (DR) 
	3'b000: Mem[0] <= D_in;
	3'b001: Mem[1] <= D_in;
	3'b010: Mem[2] <= D_in;
	3'b011: Mem[3] <= D_in;
	3'b100: Mem[4] <= D_in;
	3'b101: Mem[5] <= D_in;
	3'b110: Mem[6] <= D_in;
	3'b111: Mem[7] <= D_in;
endcase
end
if (reset==1) begin
Mem[0] <= 8'b00000000;
Mem[1] <= 8'b00000000;
Mem[2] <= 8'b00000000;
Mem[3] <= 8'b00000000;
Mem[4] <= 8'b00000000;
Mem[5] <= 8'b00000000;
Mem[6] <= 8'b00000000;
Mem[7] <= 8'b00000000;
end
end

endmodule