forked from Github_Repos/cvw
Renamed FinalAMOWriteDataM to AMOWriteDataM
This commit is contained in:
parent
6504017044
commit
c07b9d1722
@ -41,7 +41,7 @@ module atomic (
|
||||
input logic [1:0] LSUAtomicM,
|
||||
input logic [1:0] PreLSURWM,
|
||||
input logic IgnoreRequest,
|
||||
output logic [`XLEN-1:0] FinalAMOWriteDataM,
|
||||
output logic [`XLEN-1:0] AMOWriteDataM,
|
||||
output logic SquashSCW,
|
||||
output logic [1:0] LSURWM);
|
||||
|
||||
@ -50,7 +50,7 @@ module atomic (
|
||||
|
||||
amoalu amoalu(.srca(ReadDataM), .srcb(LSUWriteDataM), .funct(LSUFunct7M), .width(LSUFunct3M[1:0]),
|
||||
.result(AMOResult));
|
||||
mux2 #(`XLEN) wdmux(LSUWriteDataM, AMOResult, LSUAtomicM[1], FinalAMOWriteDataM);
|
||||
mux2 #(`XLEN) wdmux(LSUWriteDataM, AMOResult, LSUAtomicM[1], AMOWriteDataM);
|
||||
assign MemReadM = PreLSURWM[1] & ~IgnoreRequest;
|
||||
lrsc lrsc(.clk, .reset, .FlushW, .StallW, .MemReadM, .PreLSURWM, .LSUAtomicM, .LSUPAdrM,
|
||||
.SquashSCW, .LSURWM);
|
||||
|
@ -181,7 +181,7 @@ module lsu (
|
||||
// Memory System
|
||||
// Either Data Cache or Data Tightly Integrated Memory or just bus interface
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
logic [`XLEN-1:0] FinalAMOWriteDataM, FinalWriteDataM;
|
||||
logic [`XLEN-1:0] AMOWriteDataM, FinalWriteDataM;
|
||||
logic [`XLEN-1:0] ReadDataWordM;
|
||||
logic [`XLEN-1:0] ReadDataWordMuxM;
|
||||
logic IgnoreRequest;
|
||||
@ -255,13 +255,13 @@ module lsu (
|
||||
if (`A_SUPPORTED) begin:atomic
|
||||
atomic atomic(.clk, .reset, .FlushW, .StallW, .ReadDataM, .LSUWriteDataM, .LSUPAdrM,
|
||||
.LSUFunct7M, .LSUFunct3M, .LSUAtomicM, .PreLSURWM, .IgnoreRequest,
|
||||
.FinalAMOWriteDataM, .SquashSCW, .LSURWM);
|
||||
.AMOWriteDataM, .SquashSCW, .LSURWM);
|
||||
end else begin:lrsc
|
||||
assign SquashSCW = 0; assign LSURWM = PreLSURWM; assign FinalAMOWriteDataM = LSUWriteDataM;
|
||||
assign SquashSCW = 0; assign LSURWM = PreLSURWM; assign AMOWriteDataM = LSUWriteDataM;
|
||||
end
|
||||
|
||||
subwordwrite subwordwrite(.LSUPAdrM(LSUPAdrM[2:0]),
|
||||
.LSUFunct3M, .FinalAMOWriteDataM, .FinalWriteDataM, .ByteMaskM);
|
||||
.LSUFunct3M, .AMOWriteDataM, .FinalWriteDataM, .ByteMaskM);
|
||||
|
||||
|
||||
endmodule
|
||||
|
@ -33,7 +33,7 @@
|
||||
module subwordwrite (
|
||||
input logic [2:0] LSUPAdrM,
|
||||
input logic [2:0] LSUFunct3M,
|
||||
input logic [`XLEN-1:0] FinalAMOWriteDataM,
|
||||
input logic [`XLEN-1:0] AMOWriteDataM,
|
||||
output logic [`XLEN-1:0] FinalWriteDataM,
|
||||
output logic [`XLEN/8-1:0] ByteMaskM
|
||||
);
|
||||
@ -46,18 +46,18 @@ module subwordwrite (
|
||||
if (`XLEN == 64) begin:sww
|
||||
always_comb
|
||||
case(LSUFunct3M[1:0])
|
||||
2'b00: FinalWriteDataM = {8{FinalAMOWriteDataM[7:0]}}; // sb
|
||||
2'b01: FinalWriteDataM = {4{FinalAMOWriteDataM[15:0]}}; // sh
|
||||
2'b10: FinalWriteDataM = {2{FinalAMOWriteDataM[31:0]}}; // sw
|
||||
2'b11: FinalWriteDataM = FinalAMOWriteDataM; // sw
|
||||
2'b00: FinalWriteDataM = {8{AMOWriteDataM[7:0]}}; // sb
|
||||
2'b01: FinalWriteDataM = {4{AMOWriteDataM[15:0]}}; // sh
|
||||
2'b10: FinalWriteDataM = {2{AMOWriteDataM[31:0]}}; // sw
|
||||
2'b11: FinalWriteDataM = AMOWriteDataM; // sw
|
||||
endcase
|
||||
end else begin:sww // 32-bit
|
||||
always_comb
|
||||
case(LSUFunct3M[1:0])
|
||||
2'b00: FinalWriteDataM = {4{FinalAMOWriteDataM[7:0]}}; // sb
|
||||
2'b01: FinalWriteDataM = {2{FinalAMOWriteDataM[15:0]}}; // sh
|
||||
2'b10: FinalWriteDataM = FinalAMOWriteDataM; // sw
|
||||
default: FinalWriteDataM = FinalAMOWriteDataM; // shouldn't happen
|
||||
2'b00: FinalWriteDataM = {4{AMOWriteDataM[7:0]}}; // sb
|
||||
2'b01: FinalWriteDataM = {2{AMOWriteDataM[15:0]}}; // sh
|
||||
2'b10: FinalWriteDataM = AMOWriteDataM; // sw
|
||||
default: FinalWriteDataM = AMOWriteDataM; // shouldn't happen
|
||||
endcase
|
||||
end
|
||||
endmodule
|
||||
|
Loading…
Reference in New Issue
Block a user