History log of /XiangShan/src/main/scala/xiangshan/backend/fu/ (Results 126 – 150 of 1283)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
df3b4b9220-Sep-2024 Anzooooo <[email protected]>

feat(rv64v): support first only fault instruction

726c5ee817-Sep-2024 Anzooooo <[email protected]>

feat(VLSU, Trigger): add vector segment access Trigger logic

d0d2c22d15-Sep-2024 Anzooooo <[email protected]>

feat(VLSU): element in which the exception occurs needs to retain its old value

506ca2a311-Sep-2024 Anzooooo <[email protected]>

feat(Trigger): add vector memory access Trigger logic

f20002a002-Oct-2024 Zhaoyang You <[email protected]>

fix(csr): add support Non-registers interrupt pending to diff xip (#3572)

b2e314e030-Sep-2024 Xu, Zefan <[email protected]>

fix(csr): not skip read/write menvcfg/henvcfg (#3686)

Previously, menvcfg and henvcfg were added to "PerfCnt" to skip
read/write them, because its implementation is different between
XiangShan and

fix(csr): not skip read/write menvcfg/henvcfg (#3686)

Previously, menvcfg and henvcfg were added to "PerfCnt" to skip
read/write them, because its implementation is different between
XiangShan and NEMU. This patch removes this workaround as both XiangShan
and NEMU support menvcfg and henvcfg. This could solve the pbmte diff
problem.

show more ...

ca0aa83528-Sep-2024 Xuan Hu <[email protected]>

feat(CSR): add No.16,18 and 19 exceptions (#3640)

97e37a2227-Sep-2024 Ziyue Zhang <[email protected]>

fix(rv64v): not modify fflags when vl is zero (#3658)


/XiangShan/src/main/scala/xiangshan/L2Top.scala
/XiangShan/src/main/scala/xiangshan/backend/CtrlBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeStage.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/VTypeGen.scala
wrapper/VFALU.scala
/XiangShan/src/main/scala/xiangshan/backend/rob/Rob.scala
/XiangShan/src/main/scala/xiangshan/backend/rob/VTypeBuffer.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/MMUBundle.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/PageTableWalker.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/TLB.scala
/XiangShan/src/main/scala/xiangshan/mem/MemCommon.scala
/XiangShan/src/main/scala/xiangshan/mem/lsqueue/LSQWrapper.scala
/XiangShan/src/main/scala/xiangshan/mem/lsqueue/LoadExceptionBuffer.scala
/XiangShan/src/main/scala/xiangshan/mem/lsqueue/LoadMisalignBuffer.scala
/XiangShan/src/main/scala/xiangshan/mem/lsqueue/LoadQueue.scala
/XiangShan/src/main/scala/xiangshan/mem/lsqueue/StoreMisalignBuffer.scala
/XiangShan/src/main/scala/xiangshan/mem/lsqueue/StoreQueue.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/LoadUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/StoreUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/vector/VMergeBuffer.scala
/XiangShan/src/main/scala/xiangshan/mem/vector/VSegmentUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/vector/VSplit.scala
/XiangShan/src/main/scala/xiangshan/mem/vector/VecBundle.scala
/XiangShan/src/main/scala/xiangshan/mem/vector/VecCommon.scala
bbaa6b7c27-Sep-2024 Xuan Hu <[email protected]>

fix(CSR): remove reg in mhartid (#3665)

* mhartid should be assigned directly to multicycle hartid from top.

4446722426-Sep-2024 Zhaoyang You <[email protected]>

fix(csr): intermediate data should be stored when output not fire (#3634)

* Normal csr instrctions could fire by one cycle, while support IMSIC now.
* IMSIC and CSR have different clocks.
* Theref

fix(csr): intermediate data should be stored when output not fire (#3634)

* Normal csr instrctions could fire by one cycle, while support IMSIC now.
* IMSIC and CSR have different clocks.
* Therefore, CSR interacts with IMSIC through asynchronous reading.
* Implementd by fsm, and its state includes idle, waitIMSIC, finish.
* Output can fire when NewCSR requests an IMSIC response, and the
intermediate data should be stored.

---------

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

show more ...

e2216eca26-Sep-2024 Xuan Hu <[email protected]>

fix(CSR,interrupt): use rdata instead of regOut to produce interrupt (#3644)

* Make rdataFields as Output for InterruptFilter usage.
* This commit fix the problem that SEIP cannot be raised.

65b2b1ea26-Sep-2024 xiaofeibao-xjtu <[email protected]>

fix(csr): change connect0LatencyCtrlSingal to connectNonPipedCtrlSingal (#3647)

d88d432825-Sep-2024 Ziyue Zhang <[email protected]>

fix(vlwakeup): fix vl write back wakeup from intExu or vfExu (#3643)

44f2941b24-Sep-2024 Jiru Sun <[email protected]>

refactor(HPM): move HPMs from utils to utility repo (#3631)

Because HPMs will be used in Coupled L2 as well, delete
`PerfCounterUtils.scala` in Xiangshan and create
`HardwarePerfMonitor.scala` in

refactor(HPM): move HPMs from utils to utility repo (#3631)

Because HPMs will be used in Coupled L2 as well, delete
`PerfCounterUtils.scala` in Xiangshan and create
`HardwarePerfMonitor.scala` in Utility.
See also [Pull Request in
CoupledL2](https://github.com/OpenXiangShan/CoupledL2/pull/251#discussion_r1770738535).

show more ...

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


/XiangShan/src/main/scala/xiangshan/XSCore.scala
/XiangShan/src/main/scala/xiangshan/backend/Backend.scala
/XiangShan/src/main/scala/xiangshan/backend/Bundles.scala
/XiangShan/src/main/scala/xiangshan/backend/GPAMem.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
CSR.scala
NewCSR/CSREvents/CSREvent.scala
NewCSR/CSREvents/TrapEntryHSEvent.scala
NewCSR/CSREvents/TrapEntryMEvent.scala
NewCSR/NewCSR.scala
wrapper/CSR.scala
/XiangShan/src/main/scala/xiangshan/backend/rob/Rob.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/MMUBundle.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/TLB.scala
/XiangShan/src/main/scala/xiangshan/frontend/IFU.scala
/XiangShan/src/main/scala/xiangshan/frontend/icache/ICacheMainPipe.scala
/XiangShan/src/main/scala/xiangshan/frontend/icache/IPrefetch.scala
/XiangShan/src/main/scala/xiangshan/frontend/icache/WayLookup.scala
/XiangShan/src/main/scala/xiangshan/mem/MemCommon.scala
/XiangShan/src/main/scala/xiangshan/mem/lsqueue/LSQWrapper.scala
/XiangShan/src/main/scala/xiangshan/mem/lsqueue/LoadExceptionBuffer.scala
/XiangShan/src/main/scala/xiangshan/mem/lsqueue/LoadMisalignBuffer.scala
/XiangShan/src/main/scala/xiangshan/mem/lsqueue/StoreMisalignBuffer.scala
/XiangShan/src/main/scala/xiangshan/mem/lsqueue/StoreQueue.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/AtomicsUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/LoadUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/StoreUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/vector/VMergeBuffer.scala
/XiangShan/src/main/scala/xiangshan/mem/vector/VSegmentUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/vector/VecBundle.scala
/XiangShan/src/main/scala/xiangshan/mem/vector/VecCommon.scala
5860cb7021-Sep-2024 Zhaoyang You <[email protected]>

fix(csr): fix trap inst update when CSRR insts raise trap and remove useless io (#3620)

This PR fix trap inst update.
Because of CSRR inst is out of order insts, trap inst should select the
oldest

fix(csr): fix trap inst update when CSRR insts raise trap and remove useless io (#3620)

This PR fix trap inst update.
Because of CSRR inst is out of order insts, trap inst should select the
oldest trap inst when CSRR inst raise trap.

---------

Co-authored-by: Xuan Hu <[email protected]>

show more ...

45def85621-Sep-2024 Tang Haojin <[email protected]>

refactor(Pmem): use `Seq` for physical memory ranges (#3622)

cb36ac0f20-Sep-2024 Xuan Hu <[email protected]>

fix(CSR): Add legalization code for mstatus.MPP, mnstatus.MNPP and dcsr.PRV (#3577)

d10d706114-Sep-2024 linzhida <[email protected]>

fix(imisc): fix exception generate when access imsic.

af95bc3220-Sep-2024 Haoyuan Feng <[email protected]>

fix(prefetch): MMIO address should not send prefetch requests (#3615)

TODO: Prefetcher should check pmp & pma in order to decide whether to
send requests

db6cfb5a19-Sep-2024 Haoyuan Feng <[email protected]>

fix(exception): check high address bits of lsu (#3596)

In previous implementation, we simply truncated the higher bits of jump
target or load & store address, which made it impossible to raise
exc

fix(exception): check high address bits of lsu (#3596)

In previous implementation, we simply truncated the higher bits of jump
target or load & store address, which made it impossible to raise
exceptions in such cases.

Commit
https://github.com/OpenXiangShan/XiangShan/commit/c1b28b66879239a5b3a44741376f3b002e8ac834
has already fixed high address bits checking of jump target. This commit
fixes lsu part, checking full address in tlb and passing full address
directly to csr.

show more ...

9d9b0bfa19-Sep-2024 junxiong-ji <[email protected]>

fix(CSR): add a finite state machine in NewCSR (#3597)

CSR instructions used to be executed without pipelining, so a state
machine is not needed inside the CSR module. After adding an
optimization

fix(CSR): add a finite state machine in NewCSR (#3597)

CSR instructions used to be executed without pipelining, so a state
machine is not needed inside the CSR module. After adding an
optimization that allows certain CSRR instructions to be pipelined, a
state machine is required, since the arbiter to integer register files
must allow a write request before a CSRR instructions is successfully
executed.

show more ...

c0a99c0019-Sep-2024 Guanghui Cheng <[email protected]>

fix(VCVT): disable logic about scalar move instructions. (#3607)

7e1c607114-Sep-2024 Xuan Hu <[email protected]>

fix(vstopi): wrong API usage in InterruptFilter (#3557)

* Don't use asTypeOf to convert UInt to CSRBundle, since CSRBundle's
assign follows the different rule with other chisel3.Data type.

e9f7c49014-Sep-2024 Xuan Hu <[email protected]>

feat(Zicbom,Zicboz): add permission check and convert CBO.INVAL to CBO.FLUSH when CBIE=0b01 (#3559)

* CSR
* When reset, xenvcfg.CBZE = 1, xenvcfg.CBCFE = 1, xenvcfg.CBIE = 0b11,
while x in {m, s,

feat(Zicbom,Zicboz): add permission check and convert CBO.INVAL to CBO.FLUSH when CBIE=0b01 (#3559)

* CSR
* When reset, xenvcfg.CBZE = 1, xenvcfg.CBCFE = 1, xenvcfg.CBIE = 0b11,
while x in {m, s, h}.
* Support xenvcfg.CBIE = Flush(0b01)
* Decode
* Use the illegalInst and virtualInst conditions from CSR to assert
EX_II or EX_VI.
* Convert CBO.INVAL to CBO.FLUSH when envcfg.CBIE === EnvCBIE.Flush.

show more ...

12345678910>>...52