forked from Github_Repos/cvw
AMO and LR/SC instructions now working correctly.
Page table walking is not working.
This commit is contained in:
parent
57a7074800
commit
d80ebab941
@ -283,7 +283,7 @@ add wave -noupdate -group CLINT /testbench/dut/uncore/genblk1/clint/MTIMECMP
|
|||||||
add wave -noupdate -group CLINT /testbench/dut/uncore/genblk1/clint/TimerIntM
|
add wave -noupdate -group CLINT /testbench/dut/uncore/genblk1/clint/TimerIntM
|
||||||
add wave -noupdate -group CLINT /testbench/dut/uncore/genblk1/clint/SwIntM
|
add wave -noupdate -group CLINT /testbench/dut/uncore/genblk1/clint/SwIntM
|
||||||
TreeUpdate [SetDefaultTree]
|
TreeUpdate [SetDefaultTree]
|
||||||
WaveRestoreCursors {{Cursor 4} {32648010 ns} 0} {{Cursor 5} {10763646 ns} 0}
|
WaveRestoreCursors {{Cursor 4} {32648010 ns} 0} {{Cursor 5} {11165332 ns} 0} {{Cursor 3} {7672141 ns} 0}
|
||||||
quietly wave cursor active 2
|
quietly wave cursor active 2
|
||||||
configure wave -namecolwidth 250
|
configure wave -namecolwidth 250
|
||||||
configure wave -valuecolwidth 189
|
configure wave -valuecolwidth 189
|
||||||
@ -299,4 +299,4 @@ configure wave -griddelta 40
|
|||||||
configure wave -timeline 0
|
configure wave -timeline 0
|
||||||
configure wave -timelineunits ns
|
configure wave -timelineunits ns
|
||||||
update
|
update
|
||||||
WaveRestoreZoom {10763302 ns} {10763880 ns}
|
WaveRestoreZoom {11156770 ns} {11173894 ns}
|
||||||
|
@ -214,9 +214,12 @@ module lsu (
|
|||||||
always_comb begin
|
always_comb begin
|
||||||
case (CurrState)
|
case (CurrState)
|
||||||
STATE_READY:
|
STATE_READY:
|
||||||
if (|AtomicMaskedM) begin
|
if (AtomicMaskedM[1]) begin
|
||||||
NextState = STATE_FETCH_AMO_1; // *** should be some misalign check
|
NextState = STATE_FETCH_AMO_1; // *** should be some misalign check
|
||||||
DataStall = 1'b1;
|
DataStall = 1'b1;
|
||||||
|
end else if((MemReadM & AtomicM[0]) | (MemWriteM & AtomicM[0])) begin
|
||||||
|
NextState = STATE_FETCH_AMO_2;
|
||||||
|
DataStall = 1'b1;
|
||||||
end else if (MemAccessM & ~DataMisalignedM) begin
|
end else if (MemAccessM & ~DataMisalignedM) begin
|
||||||
NextState = STATE_FETCH;
|
NextState = STATE_FETCH;
|
||||||
DataStall = 1'b1;
|
DataStall = 1'b1;
|
||||||
|
Loading…
Reference in New Issue
Block a user