Fix dBus IO access
This commit is contained in:
parent
6e59ddcc73
commit
455607b6b4
|
@ -307,8 +307,9 @@ case class DataCacheMemBus(p : DataCacheConfig) extends Bundle with IMasterSlave
|
||||||
val counter = Reg(UInt(log2Up(p.burstSize) bits)) init(0)
|
val counter = Reg(UInt(log2Up(p.burstSize) bits)) init(0)
|
||||||
|
|
||||||
val cmdBridge = Stream (DataCacheMemCmd(p))
|
val cmdBridge = Stream (DataCacheMemCmd(p))
|
||||||
|
val isBurst = cmdBridge.length =/= 0
|
||||||
cmdBridge.valid := cmd.valid
|
cmdBridge.valid := cmd.valid
|
||||||
cmdBridge.address := (cmd.address >> widthOf(counter) + 2) @@ counter @@ "00"
|
cmdBridge.address := (isBurst ? (cmd.address(31 downto widthOf(counter) + 2) @@ counter @@ "00") | (cmd.address(31 downto 2) @@ "00"))
|
||||||
cmdBridge.wr := cmd.wr
|
cmdBridge.wr := cmd.wr
|
||||||
cmdBridge.mask := cmd.mask
|
cmdBridge.mask := cmd.mask
|
||||||
cmdBridge.data := cmd.data
|
cmdBridge.data := cmd.data
|
||||||
|
@ -325,7 +326,6 @@ case class DataCacheMemBus(p : DataCacheConfig) extends Bundle with IMasterSlave
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
val isBurst = cmdBridge.length =/= 0
|
|
||||||
bus.ADR := cmdBridge.address
|
bus.ADR := cmdBridge.address
|
||||||
bus.CTI := Mux(isBurst, cmdBridge.last ? B"111" | B"010", B"000")
|
bus.CTI := Mux(isBurst, cmdBridge.last ? B"111" | B"010", B"000")
|
||||||
bus.BTE := "00"
|
bus.BTE := "00"
|
||||||
|
|
|
@ -430,8 +430,6 @@ public:
|
||||||
top->eval();
|
top->eval();
|
||||||
|
|
||||||
|
|
||||||
dump(i + 1);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(top->VexRiscv->writeBack_RegFilePlugin_regFileWrite_valid == 1 && top->VexRiscv->writeBack_RegFilePlugin_regFileWrite_payload_address != 0){
|
if(top->VexRiscv->writeBack_RegFilePlugin_regFileWrite_valid == 1 && top->VexRiscv->writeBack_RegFilePlugin_regFileWrite_payload_address != 0){
|
||||||
|
@ -444,6 +442,8 @@ public:
|
||||||
|
|
||||||
for(SimElement* simElement : simElements) simElement->preCycle();
|
for(SimElement* simElement : simElements) simElement->preCycle();
|
||||||
|
|
||||||
|
dump(i + 1);
|
||||||
|
|
||||||
if(withInstructionReadCheck){
|
if(withInstructionReadCheck){
|
||||||
if(top->VexRiscv->decode_arbitration_isValid && !top->VexRiscv->decode_arbitration_haltItself && !top->VexRiscv->decode_arbitration_flushAll){
|
if(top->VexRiscv->decode_arbitration_isValid && !top->VexRiscv->decode_arbitration_haltItself && !top->VexRiscv->decode_arbitration_flushAll){
|
||||||
uint32_t expectedData;
|
uint32_t expectedData;
|
||||||
|
|
Loading…
Reference in New Issue