History log of /XiangShan/src/ (Results 126 – 150 of 9484)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
11269ca709-Mar-2025 Tang Haojin <[email protected]>

chore: fix several deprecation warning (#4352)

7fbc1cb408-Mar-2025 Tang Haojin <[email protected]>

feat(AIA): integrate ChiselAIA (#4378)

0837330007-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.

ba0bece807-Mar-2025 Kamimiao <[email protected]>

config: add fpga diff top on tilelink for diff_top (#4370)

In order to be compatible with st's environment, the fpga difftest
project in tilelink is generated in the same way as noc top, which leads

config: add fpga diff top on tilelink for diff_top (#4370)

In order to be compatible with st's environment, the fpga difftest
project in tilelink is generated in the same way as noc top, which leads
tilelink top and difftest signals to difftop together.

show more ...

db3923fe07-Mar-2025 Guanghui Cheng <[email protected]>

fix(Trigger): fix comparison between consecutive pc and tdada2 (#4346)

ef82825f07-Mar-2025 junxiong-ji <[email protected]>

fix(CSR): add VTYPE to in-order read CSRs (#4354)

Since CSR VTYPE is not renamed (VL is renamed), the instruction CSRR
with VTYPE cannot be executed out-of-order.

522c7f9907-Mar-2025 Anzo <[email protected]>

fix(LSU): misaligned violation detection stuck (#4369)

Since a load instruction that cross 16Byte needs to be split and
accessed twice, it needs to enter the `RAR Queue` twice, but occupies
only one

fix(LSU): misaligned violation detection stuck (#4369)

Since a load instruction that cross 16Byte needs to be split and
accessed twice, it needs to enter the `RAR Queue` twice, but occupies
only one `virtual load queue`, so in the extreme case it may happen that
36 load instructions that span 16Byte fill all 72 `RAR queues`.

---

There is some problem with our previous handling; if the oldest load
instruction spanning 16Byte enters the `replayqueue` and at the same
time there exists an instruction in the `loadmisalignbuffer` that can't
finish executing because the `RAR Queue` is full, then the oldest load
instruction is never cannot be issued because the `loadmisalignbuffer`
has instructions in it all the time.

---

Therefore, we use a more violent scheme to do this.
When the RAR is full, we let the misaligned load generate a rollback,
and the next load instruction that the loadmisalignbuffer can receive
must be the oldest (if it is misaligned).

show more ...

a2ecedc906-Mar-2025 Ziyue Zhang <[email protected]>

fix(vlbusytable): fix vlbusytable update (#4364)

ac5be75406-Mar-2025 junxiong-ji <[email protected]>

chore(fu): delete redundant code in VCVT (#4328)

eaf1474706-Mar-2025 cz4e <[email protected]>

fix(LoadUnit): enable EnableAccurateLoadError (#4363)

90f8d3cf06-Mar-2025 cz4e <[email protected]>

fix(LoadUnit): exclude prefetch requests (#4367)

* In order to ensure timing, the RAR enqueue conditions need to be
compromised, worst source of timing from `pmp` and `missQueue`.

* if `LoadQueueRA

fix(LoadUnit): exclude prefetch requests (#4367)

* In order to ensure timing, the RAR enqueue conditions need to be
compromised, worst source of timing from `pmp` and `missQueue`.

* if `LoadQueueRARSize` == `VirtualLoadQueueSize`, just need to exclude
prefetching.

* if `LoadQueueRARSize` < `VirtualLoadQueueSize`, need to consider the
situation of `s2_can_query`

show more ...

455e3b5306-Mar-2025 cz4e <[email protected]>

fix(MainPipe): fix `s3_l2_error` and `s3_error` enable signal (#4345)

* `s2_fire` and `s2_can_to_s3` are different
* `io.error.valid` uses `s2_fire`, but `s3_l2_error` uses
`s2_can_to_s3`, causing

fix(MainPipe): fix `s3_l2_error` and `s3_error` enable signal (#4345)

* `s2_fire` and `s2_can_to_s3` are different
* `io.error.valid` uses `s2_fire`, but `s3_l2_error` uses
`s2_can_to_s3`, causing `io.error.valid` to be updated, but
`s3_l2_error` not to be updated.

show more ...

25381b7205-Mar-2025 Anzo <[email protected]>

fix(LoadUnit): misalign wakeup should not set s0 valid (#4359)

`s0_src_valid_vec` is not `s0_src_select_vec`, and bit corresponding to
`s0_src_valid_vec` is valid when any of the inputs `valid`. The

fix(LoadUnit): misalign wakeup should not set s0 valid (#4359)

`s0_src_valid_vec` is not `s0_src_select_vec`, and bit corresponding to
`s0_src_valid_vec` is valid when any of the inputs `valid`. Therefore,
`misalign wakeup` needs to globally control `s0_valid`.

show more ...

d084f29c04-Mar-2025 Tang Haojin <[email protected]>

build: can manually disable dfx by `DFX=0` (#4353)

e0d20e1b04-Mar-2025 Tang Haojin <[email protected]>

feat(Top): remain dfx io for `XSTile` under `Top.scala` (#4351)

168f199504-Mar-2025 Xu, Zefan <[email protected]>

fix(MMU): incorrect generation of Exception vaddr (#4349)

The preivous GenExceptionVa function makes some mistakes in selecting
the exception vaddr when exception. The check for S-stage, VS-stage an

fix(MMU): incorrect generation of Exception vaddr (#4349)

The preivous GenExceptionVa function makes some mistakes in selecting
the exception vaddr when exception. The check for S-stage, VS-stage and
G-stage are mixed together, which causes the one-hot signal to be wrong.

This patch rewrites the relative logic and fixes the bug.

show more ...

10cfb21d03-Mar-2025 cz4e <[email protected]>

fix(DCache): use `ParallelMux` instead of `Mux1H` (#4340)

* When there are multiple errors,`Mux1H` is equivalent to using `|`, for
example

* error 0, valid = 1, addr0 = 0x1000
* error 1, va

fix(DCache): use `ParallelMux` instead of `Mux1H` (#4340)

* When there are multiple errors,`Mux1H` is equivalent to using `|`, for
example

* error 0, valid = 1, addr0 = 0x1000
* error 1, valid = 1, addr1 = 0x0ffff
* the result is `io.error.valid == 1`, but `io.error.bits.addr == (addr0
| addr1)`, cause `Mux1H` will generate circuit like this:
```
addr = (valid0 ? addr0 : 'h0) |
(valid1 ? addr1 : 'h0)
```
* This problem can be avoided by using `ParallelMux`

show more ...

76cb49ab03-Mar-2025 cz4e <[email protected]>

feat(BEU): beu will trigger `NMI_31` non-maskable interrupt (#4335)

* use `NMI_31` is ok

f5d5a4f303-Mar-2025 CharlieLiu <[email protected]>

fix(DCache): fix wrong condition for blocking lr (#4337)

Following lr should be blocked when previous lr's resv_set is still
valid, which means `lrsc_count > 0`.

In previous PR #3017 and #4117, `lr

fix(DCache): fix wrong condition for blocking lr (#4337)

Following lr should be blocked when previous lr's resv_set is still
valid, which means `lrsc_count > 0`.

In previous PR #3017 and #4117, `lrsc_count > 8` is used as block
condition, and stop update `lrsc_count` when it reaches 8, fix it now.

show more ...

7ea4836603-Mar-2025 Anzo <[email protected]>

fix(LoadUnit): misalign load wakeup not enter loadunit (#4333)

9928cec702-Mar-2025 zhou tao <[email protected]>

feat(RAS): change the stall mechanism upon return stack overflow to dynamically disable the return stack. (#4317)

1. Predictor pipeline stalls exhibit poor fault tolerance.
2. Speculative queue over

feat(RAS): change the stall mechanism upon return stack overflow to dynamically disable the return stack. (#4317)

1. Predictor pipeline stalls exhibit poor fault tolerance.
2. Speculative queue overflow (requiring 32 uncommitted call/return
instructions) is an extreme scenario where disabling return stack
prediction incurs negligible performance impact.
3. Queue overflow often indicates recursion. In such cases, using
top-of-stack data (static return addresses) may outperform IT-TAGE
predictions despite disabled return stack.

show more ...

a67fd0f528-Feb-2025 Guanghui Cheng <[email protected]>

fix(PFEvent): use `CSRModule` for distribute_csr in PFEvent (#4321)

0d55e1db28-Feb-2025 cz4e <[email protected]>

timing(LoadQueueRAR, LoadUnit): adjust rar/raw query logic (#4297)

* Because of `LoadQueueRARSize == VirtualLoadQueueSize`, so no need to
add additional logic for rar enq
* When no need fast replay,

timing(LoadQueueRAR, LoadUnit): adjust rar/raw query logic (#4297)

* Because of `LoadQueueRARSize == VirtualLoadQueueSize`, so no need to
add additional logic for rar enq
* When no need fast replay, loadunit allocate raw entry

show more ...

66e9b54627-Feb-2025 Yanqin Li <[email protected]>

fix(LDU): nc is also not mis-aligned (#4326)

f486573527-Feb-2025 Guanghui Cheng <[email protected]>

fix(L2top): Shouldn't subtract dm from mmio_port when SeperateDMBus disable (#4324)

12345678910>>...380