History log of /XiangShan/src/main/scala/xiangshan/backend/rob/RobBundles.scala (Results 1 – 25 of 29)
Revision Date Author Comments
# 08373300 07-Mar-2025 Anzo <[email protected]>

feat(Difftest): add multi-core vector load check (#4361)

Currently, we implement the multi core vector load check in difftest.
We modified difftest and NEMU and added related content in XiangShan.


# 22b25a0e 20-Dec-2024 Guanghui Cheng <[email protected]>

timing(Rob): modify selection from robentries to robDeqGroup (#4067)


# 35b3b30b 04-Dec-2024 xiaofeibao <[email protected]>

timing(rob): enqRob pipe for better timing


# c308d936 21-Nov-2024 chengguanghui <[email protected]>

fix(trace): remove traceTrap & tracePriv from trace pipeline


# 4907ec88 19-Sep-2024 chengguanghui <[email protected]>

feat(trace): add trace buffer.


# c7353d05 03-Sep-2024 Yanqin Li <[email protected]>

feat(NCld): support WMO access for NC ld

* feat(LDU): add support for NC in LoadUnit

* feat(LQ,UB): add support for NC in load queue and uncache buffer

* chore(pbmt): add xsperf for nc ld statistic


# a751b11a 11-Nov-2024 chengguanghui <[email protected]>

fix(dcsr): debug support critical error state

* support nmip, cetrig, extcause fileds in dcsr.
* critical error state enter dmode when dcsr.cetrig assert.


# 5769b9b3 08-Nov-2024 Zhaoyang You <[email protected]>

area(Rob): remove RobEntryBundle's parameters related to perfCount (#3833)


# 11bd888f 17-Oct-2024 Xuan Hu <[email protected]>

fix(VecExcp): use `isEnqExcp` to distinguish pc and mem trigger (#3755)

Futher fix after #3722.


# fe3c789c 15-Oct-2024 happy-lx <[email protected]>

fix(csr): fix width of instruction commit (#3734)

Due to the rob compression mechanism, the number of instructions
committed per cycle may be greater than 7.
And the source signal `retiredInstr` s

fix(csr): fix width of instruction commit (#3734)

Due to the rob compression mechanism, the number of instructions
committed per cycle may be greater than 7.
And the source signal `retiredInstr` sent by rob to the csr module has a
bit width of 3, while the sink signal `instNum` has a bit width of 7,
causing the low bits to be truncated when any cycle the number of commit
instructions is greater than 7, making the minstret update inaccurate.

show more ...


# e43bb916 20-Sep-2024 Xuan Hu <[email protected]>

feat(VecLoad): add VecLoadExcp module to handle merging old/new data

* When NF not 0, the register indices are arranged group by group. But in exception handle progress, all registers needed to merg

feat(VecLoad): add VecLoadExcp module to handle merging old/new data

* When NF not 0, the register indices are arranged group by group. But in exception handle progress, all registers needed to merge will be handled first, and then the registers needed to move will be handled later.
* The need merge vdIdx can be until 8, so 4 bits reg is needed.
* If the instruction is indexed, the eew of vd is sew from vtype. Otherwise, the eew of vd is encoded in instruction.
* Use ivemulNoLessThanM1 and dvemulNoLessThanM1 to produce vemul_i_d to avoid either demul or iemul is less than M1.
* For whole register load, need handle NF(nf + 1) dest regs.
* Use data EMUL to calculate number of dest reg.
* GetE8OffsetInVreg will return the n-th 8bit which idx mapped to.
* Since xs will flush pipe, when vstart is not 0 and execute vector mem inst, the value of vstart in CSR is the
first element of this vector instruction. When exception occurs, the vstart in writeback bundle is the new one,
So writebacked vstart should never be used as the beginning of vector mem operation.
* Non-seg indexed load use non-sequential vd.
* When "index emul" / "data emul" equals 2,
the old vd is located in vuopidx 0, 2, 4, 6,
the new vd is located in vuopidx 1, 3, 5, 7.
* Make rename's input not ready until VecExcpMod not busy.
* Delay trap passed to difftest until VecExcpMod not busy.
* Rab commit to VecExcpMod as it commit to Rat, and select real load reg maps in VecExcpMod.
* Use isDstMask to distinguish vlm and other vle.
* When isWhole, vd regs are sequential.

show more ...


# c0355297 11-Sep-2024 Anzooooo <[email protected]>

feat(VLSU): set vstart when the support vector accesses anomalies


# fd33b932 30-Aug-2024 xiaofeibao <[email protected]>

feat(Rob): support vld exception write vstart


# 63d67ef3 14-Sep-2024 Tang Haojin <[email protected]>

build: enable always-basic-diff for make verilog (#3574)

This commit turns on basic difftest features again, no matter it's for
simulation or physical design. This commit aims at allowing designs f

build: enable always-basic-diff for make verilog (#3574)

This commit turns on basic difftest features again, no matter it's for
simulation or physical design. This commit aims at allowing designs for
physical design to be verified.

show more ...


# c1b28b66 09-Sep-2024 Tang Haojin <[email protected]>

fix(exception): check high address bits of jump target (#3003)

This commit contains high address bits checking of jump target. In
previous implementation, we simply truncated the higher bits of jump

fix(exception): check high address bits of jump target (#3003)

This commit contains high address bits checking of jump target. In
previous implementation, we simply truncated the higher bits of jump
target address, which made it impossible to raise exceptions in such
cases.

To resolve this problem, we detect the invalid jump target in
jump/branch/CSR and, this information to frontend and store the complete
invalid target in a single register in backend. The frontend will then
raise an exception to backend and backend will also use the invalid
target in the register to write xtval and mepc.

---------

Co-authored-by: Muzi <[email protected]>
Co-authored-by: ngc7331 <[email protected]>

show more ...


# 49162c9a 24-Aug-2024 Guanghui Cheng <[email protected]>

Rob: fix bug of rob commit. (#3418)

In this PR, the main goal is to fix the bug encountered during ROB
commit. However, resolving this issue requires information about
`iretire` and `ilastsize`, w

Rob: fix bug of rob commit. (#3418)

In this PR, the main goal is to fix the bug encountered during ROB
commit. However, resolving this issue requires information about
`iretire` and `ilastsize`, which need be collected by the trace.
Therefore, I have also included the trace interface in this PR.

The specific changes are as follows:
* When rob commit, update the ftqIdx and ftqOffset to correctly notify
the frontend which instructions have been committed.
* In each robentry, the ftqIdx and ftqOffset belong to the first
instruction that was compressed, that is Necessary when exceptions
happen.
* Add trace Interface in hart.
* Add trace parameter in parameter.scala.
* Collect trace infomation in backend pipeline.

show more ...


# 7e0f64b0 21-Aug-2024 Guanghui Cheng <[email protected]>

Trigger: refactor trigger information in pipeline. (#3403)


# 41d8d239 21-Aug-2024 happy-lx <[email protected]>

RVA23: Support Zicclsm & Zama16b (Handling Unaligned Load Store by Hardware) (#3320)

This PR supports handling load store unaligned exceptions by hardware
and provides CSR-controlled switches

--

RVA23: Support Zicclsm & Zama16b (Handling Unaligned Load Store by Hardware) (#3320)

This PR supports handling load store unaligned exceptions by hardware
and provides CSR-controlled switches

---------

Co-authored-by: xiaofeibao <[email protected]>

show more ...


# 62014f7c 05-Aug-2024 sinceforYy <[email protected]>

Rob: set dirtyFS when fpwen or wflags is high


# 3e8a0170 25-Jul-2024 Xuan Hu <[email protected]>

ROB: clear flushPipe when the enq uop has exception (#3281)


# e3da8bad 22-Jul-2024 Tang Haojin <[email protected]>

build: purge chisel 3 and add deprecation check (#3250)


# b6188ee4 18-Jun-2024 sinceforYy <[email protected]>

NewCSR: executing vecOPF inst will set FS=Dirty


# 571677c9 09-Jul-2024 xiaofeibao-xjtu <[email protected]>

Rob: fix bug of exception (#3161)

1.when writeback exception, rob may commit next cycle. 2.when fulshOut,
rob commit info to ftq may 4 cycle after redirect but redirect info to
ftq need 5 cycle.


# ad5c9e6e 04-Jul-2024 Junxiong Ji <[email protected]>

RenameTable: fix width of rename table addr ports (#3128)

Different rename table has different numbers of entries, leading to
differences in the width of read/write ports. In the code we see the
w

RenameTable: fix width of rename table addr ports (#3128)

Different rename table has different numbers of entries, leading to
differences in the width of read/write ports. In the code we see the
widths of all read/write ports were set to 6, which works well but is
not parameterized. Now these widths are modified to be controlled by
parameters.

show more ...


# d8a50338 13-Jun-2024 Ziyue Zhang <[email protected]>

vl: assign vl in csr to the value store in vl regfiles


12