#
30f35717 |
| 14-Apr-2025 |
cz4e <[email protected]> |
refactor(DFT): refactor `DFT` IO (#4530)
|
#
8cfc24b2 |
| 07-Apr-2025 |
Tang Haojin <[email protected]> |
feat(AIA): integrate ChiselAIA again (#4509)
|
#
42cb6426 |
| 06-Apr-2025 |
Tang Haojin <[email protected]> |
chore(XSNoCTop): minor connection changes (#4501)
|
#
602aa9f1 |
| 02-Apr-2025 |
cz4e <[email protected]> |
feat(Sram): add `SRAM_CTL` interface (#4474)
* add `SRAM_CTL` interface for SRAMTemplate * use `SRAM_WITH_CTL` to enable, e.g. `make sim-verilog CONFIG=KunminghuV2Config RELEASE=1 SRAM_WITH_CTL=
feat(Sram): add `SRAM_CTL` interface (#4474)
* add `SRAM_CTL` interface for SRAMTemplate * use `SRAM_WITH_CTL` to enable, e.g. `make sim-verilog CONFIG=KunminghuV2Config RELEASE=1 SRAM_WITH_CTL=1`
show more ...
|
#
529b1cfd |
| 17-Mar-2025 |
Tang Haojin <[email protected]> |
Revert "feat(AIA): integrate ChiselAIA (#4378)" (#4429)
This reverts commit 7fbc1cb42a2c96ef89a1dfd0f5f885ccada40c26.
|
#
7fbc1cb4 |
| 08-Mar-2025 |
Tang Haojin <[email protected]> |
feat(AIA): integrate ChiselAIA (#4378)
|
#
4b2c87ba |
| 27-Feb-2025 |
梁森 Liang Sen <[email protected]> |
feat(dfx): integerate dfx components (#4312)
|
#
c590fb32 |
| 08-Feb-2025 |
cz4e <[email protected]> |
refactor(MemBlock): move MemBlock.scala from backend to mem (#4221)
|
#
881e32f5 |
| 22-Jan-2025 |
Zifei Zhang <[email protected]> |
submodule(CoupledL2, OpenLLC): bump L2 and LLC (#4189)
This pull request includes: - add compilation support for CHI Issue C (but not yet verified) - enable DataCheck and Poison - add requirement fo
submodule(CoupledL2, OpenLLC): bump L2 and LLC (#4189)
This pull request includes: - add compilation support for CHI Issue C (but not yet verified) - enable DataCheck and Poison - add requirement for CHI port width check - add prefetch control by custom csr - optimize timing in CoupledL2, mainly paths from SRAM to ICG - add clock gate to each of the splitted SRAMs in CoupledL2 - fix several bugs concerning WriteEvictOrEvict, SnpQuery, SnpCleanShared, SnpStash*, etc
---------
Co-authored-by: zhanglinjuan <[email protected]> Co-authored-by: Ma-YX <[email protected]> Co-authored-by: Yanqin Li <[email protected]>
show more ...
|
#
e836c770 |
| 16-Jan-2025 |
Zhaoyang You <[email protected]> |
feat(TopDown): add TopDown PMU Events (#4122)
This PR adds hardware synthesizable three-level categorized TopDown performance counters. Level-1: Retiring, Frontend Bound, Bad Speculation, Backend Bo
feat(TopDown): add TopDown PMU Events (#4122)
This PR adds hardware synthesizable three-level categorized TopDown performance counters. Level-1: Retiring, Frontend Bound, Bad Speculation, Backend Bound. Level-2: Fetch Latency Bound, Fetch Bandwidth Bound, Branch Missprediction, machine clears, Core Bound, Memory Bound. Leval-3: L1 Bound, L2 Bound, L3 Bound, Mem Bound, Store Bound.
show more ...
|
#
b7a63495 |
| 16-Jan-2025 |
NewPaulWalker <[email protected]> |
feat(custom, csr): add two custom CSRs mcorepwr and mflushpwr to control power (#4164)
Co-authored-by: Zhu Yu <[email protected]>
|
#
5bd65c56 |
| 14-Jan-2025 |
Tang Haojin <[email protected]> |
feat(Config): add yaml parser for complicated parametrization (#4147)
This commit enables complicated parameterization by yaml parsing. We use circe to do this.
In this commit, we implement 6 confi
feat(Config): add yaml parser for complicated parametrization (#4147)
This commit enables complicated parameterization by yaml parsing. We use circe to do this.
In this commit, we implement 6 configurations:
- PmemRanges: physical memory ranges - PMAConfigs - CHIAsyncBridge: set depth to 0 to disable it - L2CacheConfig - L3CacheConfig - DebugModuleBaseAddr
For better human-readability, this commit changes `WithNKBL2/3` to `L2/3CacheConfig`, changing to case classes, and making the first parameter only accept human-readable size configuration like `0.5 MB` or `256kB`.
This commit also changes PMAConfigs and PmemRanges into List of case classes.
show more ...
|
#
6c106319 |
| 30-Dec-2024 |
xu_zh <[email protected]> |
feat(ICache): ECC error injection (#4044)
This PR is part of *RAS(Reliability, Accessibility, Serviceability)* error recovery features.
- Add a series of mmio-mapped CSR to control ICache ECC check
feat(ICache): ECC error injection (#4044)
This PR is part of *RAS(Reliability, Accessibility, Serviceability)* error recovery features.
- Add a series of mmio-mapped CSR to control ICache ECC check & ECC inject features - Implement ICache ECC injection - M-state software can write `eccctrl` to trigger error injection to meta/dataArray, next read can trigger auto-recovery (implemented in #3899) - Remove custom CSR `Sfetchctl`
# Details ## CSR The base address of the added mmio-mapped CSR is `0x38022080` and the registers is defined as below: ``` 64 10 7 4 2 1 0 0x00 eccctrl | WARL | ierror | istatus | itarget | inject | enable |
64 PAddrBits-1 0 0x08 ecciaddr | WARL | paddr | ``` | CSR | field | desp | | --- | --- | --- | | eccctrl | enable | ECC check enable | | eccctrl | inject | ECC inject enable (write 1 to trigger injection, read always 0) | | eccctrl | itarget | ECC inject target<br>0: metaArray<br>1: rsvd<br>2: dataArray<br>3: rsvd | | eccctrl | istatus | ECC inject status (read-only)<br>0: idle: inject controller idle, goes to working when received a inject request (i.e. write 1 to eccctrl.inject)<br>1: working: inject controller working, goes to injected when finished / error when failed<br>2: injected, goes to idle after read<br>3: rsvd<br>4: rsvd<br>5: rsvd<br>6: rsvd<br>7: error: inject failed (check eccctl.ierror for reason), goes to idle after read | | eccctrl | ierror | ECC error reason (read-only, valid only if `eccctrl.istatus==error`)<br>0: ECC check is not enabled (i.e. `!eccctrl.enable`)<br>1: inject target invalid (i.e. `eccctrl.itarget==rsvd`)<br>2: inject addr (i.e. `ecciaddr.paddr`) not in ICache<br>3: rsvd<br>4: rsvd<br>5: rsvd<br>6: rsvd<br>7: rsvd | | ecciaddr | paddr | Physical address of the inject target |
## Inject method ```asm $INJECT_ADDR: # maybe do something else ret
test: la t0, $BASE_ADDR # load icache control base addr la t1, $INJECT_ADDR # load inject addr jalr ra, 0(t1) # jump to injected addr to load it i sd t1, 8(t0) # set inject addr la t2, (target << 2 | 1 << 1 | 1 << 0) # load inject target & inject enable & ecc enable sd t1, 0(t0) # set inject enable & ecc enable loop: ld t1, 0(t0) # get ecc control state andi t1, t1, (0b11 << (4+1)) # get high bits of inject state beqz t1, loop # if is idle, or working, loop
addi t1, t1, -1 # t1 = inject_state[2:1] - 1 bnez t1, error # if is not injected, error or rsvd
jalr ra, 0(t1) # jump to injected addr to trigger error j finish
error: # handle error finish: # finish ``` Or, checkout https://github.com/OpenXiangShan/nexus-am/pull/48
show more ...
|
#
c37914a4 |
| 25-Nov-2024 |
xiaofeibao <[email protected]> |
area(Backend): merge pcMem and pcTargetMem
|
#
3ad9f3dd |
| 05-Dec-2024 |
chengguanghui <[email protected]> |
fix(trace): add pipe for traceCoreInterface in memblock and l2top
|
#
d288919f |
| 30-Oct-2024 |
chengguanghui <[email protected]> |
fix(trace): add traceCoreInterface in memblock
|
#
725e8ddc |
| 19-Sep-2024 |
chengguanghui <[email protected]> |
feat(trace): add TraceCoreInterface in top.
|
#
e10e20c6 |
| 27-Nov-2024 |
Yanqin Li <[email protected]> |
style(pbmt): remove the useless and standardize code
* style(pbmt): remove outstanding constant which is just for self-test
* fix(uncache): added mask comparison for `addrMatch`
* style(mem): code
style(pbmt): remove the useless and standardize code
* style(pbmt): remove outstanding constant which is just for self-test
* fix(uncache): added mask comparison for `addrMatch`
* style(mem): code normalization
* fix(pbmt): handle cases where the load unit is byte, word, etc
* style(uncache): fix an import
* fix(uncahce): address match should use non-offset address when forwading
In this case, to ensure correct forwarding, stores with the same address but overlapping masks cannot be entered at the same time.
* style(RAR): remove redundant design of `nc` reg
show more ...
|
#
e04c5f64 |
| 19-Nov-2024 |
Yanqin Li <[email protected]> |
feat(outstanding): support nc outstanding and remove mmio st outstanding
|
#
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
|
#
1bf9a598 |
| 13-Nov-2024 |
Anzo <[email protected]> |
feat(difftest): add 'pc' and 'robidx' for store event (#3862)
|
#
85a8d7ca |
| 01-Nov-2024 |
Zehao Liu <[email protected]> |
feat(dbltrp) : add support for critical error (#3793)
|
#
70f6b69f |
| 17-Oct-2024 |
Jiru Sun <[email protected]> |
timing(HPM): pass Coupled L2 HPM signal through memblock (#3747)
Physical design: L2 and the backend are not allowed to be directly
connected in partition. Pass Coupled L2 HPM signal through MemBlo
timing(HPM): pass Coupled L2 HPM signal through memblock (#3747)
Physical design: L2 and the backend are not allowed to be directly
connected in partition. Pass Coupled L2 HPM signal through MemBlock.
show more ...
|
#
8bb30a57 |
| 10-Oct-2024 |
Jiru Sun <[email protected]> |
feat(HPM): enable HPMs in CoupledL2 and print them (#3708)
* Bump CoupledL2 and connect perf events.
* Update the number of HPMs
* Detail names of HPM can be printed now. The previous implementati
feat(HPM): enable HPMs in CoupledL2 and print them (#3708)
* Bump CoupledL2 and connect perf events.
* Update the number of HPMs
* Detail names of HPM can be printed now. The previous implementation
has been removed in
[#3631](https://github.com/OpenXiangShan/XiangShan/pull/3631).
show more ...
|
#
ad415ae0 |
| 21-Sep-2024 |
Xiaokun-Pei <[email protected]> |
feat(trap): support m/htinst for specific G-stage translation (#3604)
According to RISC-V priv spec, mtinst/htinst could be always written
zero on trap into M/HS-mode, except for Guest-Page-Fault t
feat(trap): support m/htinst for specific G-stage translation (#3604)
According to RISC-V priv spec, mtinst/htinst could be always written
zero on trap into M/HS-mode, except for Guest-Page-Fault traps that meet
both of the following conditions:
- the trap is caused by a G-stage translation which supports VS-stage
translation
- a nonzero value is written to mtval2/htval
"isForVSnonLeafPTE" is used only in exceptional circumstances that gpf
happens in the G-stage translation which supports VS-stage translation,
such as searching the non-leaf pte of VS-stage.
This patch adds support for writing proper value to mtinst/htinst when
specific trap occurs. And bump the nemu.
show more ...
|