#
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
|