History log of /XiangShan/src/main/scala/xiangshan/backend/CtrlBlock.scala (Results 26 – 50 of 328)
Revision Date Author Comments
# 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.


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


# b9a37d2f 03-Oct-2024 Xuan Hu <[email protected]>

fix(vector,exception,ctrlblock): block rob enq when VecExcpMod is busy


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


# d275ad0e 27-Sep-2024 Ziyue Zhang <[email protected]>

fix(vtypegen): fix initial condition after receive redirect (#3664)


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


# 92c61038 16-Aug-2024 Xuan Hu <[email protected]>

Frontend,Backend: add xxtvala support

* utils
* Add checkInputWidth function in NamedUInt to check if the UInt arg passed in has the same width as it defined.
* Frontend
* Pass the unexpanded in

Frontend,Backend: add xxtvala support

* utils
* Add checkInputWidth function in NamedUInt to check if the UInt arg passed in has the same width as it defined.
* Frontend
* Pass the unexpanded instruciton to IBuffer if the C extension 16 bits instruction is illegal.
* No need to use bypass illBuf, since the origin 16 bits instruction will be passed in the ctrlflow bundle.
* IBuffer
* Merge exceptionType and crossPageIPFFix into 3bit field, which type is IBufferExceptionType.
* IBufferExceptionType can hold illegal instruction exception.
* Backend
* CSROpType.ro is removed, since we can use rs1 and rd passed in imm field to distinguish CSRR and CSRW in CSR module.
* Create TrapInstMod to store the trap instruction and handle its update.

show more ...


# fa16cf81 15-Aug-2024 lewislzh <[email protected]>

Backend: support Shvstvala and Sstvala extension


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

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


# a3fe955f 16-Aug-2024 Guanghui Cheng <[email protected]>

DebugModule: Fix bug of singleStep. (#3395)

* `SingleStepStatus` should not be cleared by redirect before hart enter
debugMode.
* singleStep should block rob compress in `rename`.


# 8506cfc0 04-Aug-2024 xiaofeibao <[email protected]>

Decode and Ibuffer: change decodeCanAccept and bypass logic for fix timing


# f533cba7 29-Jul-2024 HuSipeng <[email protected]>

PcTargetMem: Fixed a bug that caused the backend to be unable to read the newest target (#3269)


# d19fa3e9 26-Jul-2024 xiaofeibao-xjtu <[email protected]>

Decode: add DecodeBuf for fix timing of ready to Ibuffer (#3293)


# 54c6d89d 24-Jul-2024 xiaofeibao-xjtu <[email protected]>

Redirect fix timing (#3209)


# e1a85e9f 05-Jul-2024 chengguanghui <[email protected]>

PerfEvent: refactor perfevents in Backend

* add `dispatch2Iq_out_fire_cnt`, `issueQueue_enq_fire_cnt`, `issueQueue_full` event in scheduler
* add busytable event
* move collecting perfevents from

PerfEvent: refactor perfevents in Backend

* add `dispatch2Iq_out_fire_cnt`, `issueQueue_enq_fire_cnt`, `issueQueue_full` event in scheduler
* add busytable event
* move collecting perfevents from `ctrlBlock` to `backend`
* change `perfEventsCtrl` into `perfEventsBackend`

show more ...


# 15ed99a7 23-May-2024 Xuan Hu <[email protected]>

NewCSR: add full illegal check to `sfence` and the insts in `Svinval` extension

* Move the permission check for some insts to DecodeUnit.
* These insts are `sfence.vma`, `sinval.vma`, `sfence.w.inva

NewCSR: add full illegal check to `sfence` and the insts in `Svinval` extension

* Move the permission check for some insts to DecodeUnit.
* These insts are `sfence.vma`, `sinval.vma`, `sfence.w.inval`, `sfence.inval.ir`, `hfence.gvma`, `hinval.gvma`, `hfence.vvma` and `hinval.vvma`.

show more ...


# dcdd1406 14-May-2024 Xuan Hu <[email protected]>

NewCSR: make XRET use redirect bundle to pass target instead of csr-rob direct connection

* TODO: remove isXRet signal from RobCSRIO.
* Add ftqIdx,ftqOffset in CSR Fu.
* XRet need not flushPipe


# 44b06f8a 12-Jul-2024 Xuan Hu <[email protected]>

Backend,Frontend: pass flag of FtqPtr to TargetMem to avoid read out-of-date predict target (#3184)

* Hold newest predict target everytime it is updated by frontend.
* Don't use out-of-date predict

Backend,Frontend: pass flag of FtqPtr to TargetMem to avoid read out-of-date predict target (#3184)

* Hold newest predict target everytime it is updated by frontend.
* Don't use out-of-date predict value even if FtqIdx match.

show more ...


# bd5909d0 12-Jul-2024 xiaofeibao-xjtu <[email protected]>

CtrlBlock: writeback to rob remove flush for fix timing (#3181)


# db000246 11-Jul-2024 Ziyue Zhang <[email protected]>

vtype: use the vtype stored in rob enq to vtypebuffer's snapshot (#3180)


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


# f5c17053 04-Jul-2024 xiaofeibao-xjtu <[email protected]>

Backend: fix ready timing from dispatch to frontend (#3127)


# 5110577f 27-Jun-2024 Ziyue Zhang <[email protected]>

vstart: support vstart value update and handle vstart exception (#3109)

* after execute vset and vload/vstore(no exception) instructions, set
vstart to zero
* when execute vector instructions exce

vstart: support vstart value update and handle vstart exception (#3109)

* after execute vset and vload/vstore(no exception) instructions, set
vstart to zero
* when execute vector instructions except above instructions, raise
illegal instruction exception
* when modify vstart, blockback and flushpipe

show more ...


12345678910>>...14