mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-03 02:05:21 +00:00
Fixed spill bugs in the aligner.
This commit is contained in:
parent
ada354f443
commit
84d86b1994
@ -80,7 +80,7 @@ module align import cvw::*; #(parameter cvw_t P) (
|
|||||||
logic SaveByteMask;
|
logic SaveByteMask;
|
||||||
|
|
||||||
always_comb begin
|
always_comb begin
|
||||||
case(MemRWM)
|
case(Funct3M)
|
||||||
2'b00: IncrementAmount = 4'd0;
|
2'b00: IncrementAmount = 4'd0;
|
||||||
2'b01: IncrementAmount = 4'd1;
|
2'b01: IncrementAmount = 4'd1;
|
||||||
2'b10: IncrementAmount = 4'd3;
|
2'b10: IncrementAmount = 4'd3;
|
||||||
@ -108,8 +108,8 @@ module align import cvw::*; #(parameter cvw_t P) (
|
|||||||
logic [$clog2(LLENINBYTES)-1:0] ByteOffsetM;
|
logic [$clog2(LLENINBYTES)-1:0] ByteOffsetM;
|
||||||
logic HalfSpillM, WordSpillM;
|
logic HalfSpillM, WordSpillM;
|
||||||
assign {WordOffsetM, ByteOffsetM} = IEUAdrM[OFFSET_BIT_POS-1:0];
|
assign {WordOffsetM, ByteOffsetM} = IEUAdrM[OFFSET_BIT_POS-1:0];
|
||||||
assign HalfSpillM = (IEUAdrM[OFFSET_BIT_POS-1:0] == '1) & Funct3M[1:0] == 2'b01;
|
assign HalfSpillM = (IEUAdrM[OFFSET_BIT_POS-1:1] == '1) & (ByteOffsetM[0] != '0) & Funct3M[1:0] == 2'b01;
|
||||||
assign WordSpillM = (IEUAdrM[OFFSET_BIT_POS-1:1] == '1) & Funct3M[1:0] == 2'b10;
|
assign WordSpillM = (IEUAdrM[OFFSET_BIT_POS-1:2] == '1) & (ByteOffsetM[1:0] != '0) & Funct3M[1:0] == 2'b10;
|
||||||
if(P.LLEN == 64) begin
|
if(P.LLEN == 64) begin
|
||||||
logic DoubleSpillM;
|
logic DoubleSpillM;
|
||||||
assign DoubleSpillM = (IEUAdrM[OFFSET_BIT_POS-1:2] == '1) & Funct3M[1:0] == 2'b11;
|
assign DoubleSpillM = (IEUAdrM[OFFSET_BIT_POS-1:2] == '1) & Funct3M[1:0] == 2'b11;
|
||||||
|
Loading…
Reference in New Issue
Block a user