History log of /XiangShan/src/main/scala/xiangshan/backend/decode/FusionDecoder.scala (Results 1 – 25 of 28)
Revision Date Author Comments
# bbb50258 25-Mar-2025 Tang Haojin <[email protected]>

fix(FusionDecoder): tie output to false when disabled (#4456)


# 7d62bb17 30-Dec-2024 Tang Haojin <[email protected]>

fix(FusionDecoder): instructions may be HINT cannot be fused (#4108)


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


# 768f5f91 06-May-2024 Yangyu Chen <[email protected]>

DecodeUnit: clean up decoder (#2943)

This commit sorts out decode by the ratified name of each extension for
Zb* and Zk*. And add some comments about RV32 concerns we may need
someday.

Signed-o

DecodeUnit: clean up decoder (#2943)

This commit sorts out decode by the ratified name of each extension for
Zb* and Zk*. And add some comments about RV32 concerns we may need
someday.

Signed-off-by: Yangyu Chen <[email protected]>

show more ...


# 8241cb85 17-Dec-2023 Xuan Hu <[email protected]>

Merge remote-tracking branch 'upstream/master' into backendq


# 0de3199c 28-Nov-2023 sinsanction <[email protected]>

FusionDecoder: prevent fusion when inst2 rs1 == rs2 (#2466) (#2513)


# 650ccc40 09-Nov-2023 sinsanction <[email protected]>

FusionDecoder: prevent fusion when inst2 rs1 == rs2 (#2466)


# 4b0d80d8 11-Oct-2023 Xuan Hu <[email protected]>

Merge upstream/master into tmp-backend-merge-master


# 8891a219 08-Oct-2023 Yinan Xu <[email protected]>

Bump rocket-chip (#2353)


# 765e58c6 31-Aug-2023 sinsanction <[email protected]>

Backend, Fusion: another implementation for instruction fusion case 'lui + addi(w)' without widening imm bits


# 54711376 28-Aug-2023 sinsanction <[email protected]>

Backend, Fusion: support instruction fusion case 'lui + addiw'


# fe528fd6 25-Aug-2023 sinsanction <[email protected]>

Backend, Fusion: support instruction fusion case 'lui + addi'


# 98cfe81b 23-May-2023 xgkiri <[email protected]>

mod: refactor the code of encoding


# 730cfbc0 16-Apr-2023 Xuan Hu <[email protected]>

backend: merge v2backend into backend


# 3b739f49 06-Mar-2023 Xuan Hu <[email protected]>

v2backend: huge tmp commit


# b6c99e8e 29-Dec-2022 ZhangZifei <[email protected]>

Merge remote-tracking branch 'origin/master' into rf-after-issue


# 3c02ee8f 25-Dec-2022 wakafa <[email protected]>

Separate Utility submodule from XiangShan (#1861)

* misc: add utility submodule

* misc: adjust to new utility framework

* bump utility: revert resetgen

* bump huancun


# a7a8a6cc 15-Dec-2022 Haojin Tang <[email protected]>

rename: use intRat for vconfig; add a vec read port


# 5827388e 11-Jul-2022 Yinan Xu <[email protected]>

fusion: deassert out.valid for invalid instructions (#1634)

This commit fixes the bug that instructions with exceptions may trigger
instruction fusion if the previous instruction at the same positi

fusion: deassert out.valid for invalid instructions (#1634)

This commit fixes the bug that instructions with exceptions may trigger
instruction fusion if the previous instruction at the same position is
fused. When the input instruction pair is invalid, the fusion decoder
should always set out.valid to false.B at the next cycle.

The bug is caused by the RegEnable for instrPairValid, which should be
updated at every clock cycle.

Should fix the error introduced by 0febc381f3bb3d9073abeba3b7e725b8813723d8
and the regression failure at https://github.com/OpenXiangShan/XiangShan/actions/runs/2645135867.

show more ...


# 0febc381 09-Jul-2022 Yinan Xu <[email protected]>

decode: move fusion decoder result Mux to rename (#1631)

This commit moves the fusion decoder to both decode and rename stage.

In the decode stage, fusion decoder determines whether the instructi

decode: move fusion decoder result Mux to rename (#1631)

This commit moves the fusion decoder to both decode and rename stage.

In the decode stage, fusion decoder determines whether the instruction
pairs can be fused. Valid bits of decode are not affected by fusion
decoder. This should fix the timing issues of rename.valid.

In the rename stage, some fields are updated according the result of
fusion decoder. This will bring a minor timing path to both valid and
other fields in uop in the rename stage. However, since freelist and
rat have worse timing. This should not cause timing issues.

show more ...


# a0db5a4b 20-Jun-2022 Yinan Xu <[email protected]>

decode: parallel fusion decoder and rat read (#1588)


# 361e6d51 31-May-2022 Jiuyang Liu <[email protected]>

fix for chipsalliance/rocket-chip#2967 (#1562)

* fix for chipsalliance/rocket-chip#2967

* decode: fix width of BitPat(?) in decode logic

Co-authored-by: Yinan Xu <[email protected]>


# 8a009b1d 01-Dec-2021 Li Qianruo <[email protected]>

Bug fix on detection logic for addw fusion (#1276)


# 6535afbb 26-Nov-2021 Yinan Xu <[email protected]>

decode,fusion: optimize detection logic for addw and logic ops (#1262)

This commit optimizes instruction fusion detection logic for fused
addw{byte, bit, zexth, sexth}, mulw7, and logic{lsb, zexth}

decode,fusion: optimize detection logic for addw and logic ops (#1262)

This commit optimizes instruction fusion detection logic for fused
addw{byte, bit, zexth, sexth}, mulw7, and logic{lsb, zexth}
instructions.

Previously we use fuType and fuOpType from the normal decoder, and this
incurs a bad timing. Now we change the detection logic to use only the
raw instructions. Though the fused instruction still uses the
fuOpType from the normal decoder, there should be only serveral MUXes
left.

show more ...


# 675acc68 25-Sep-2021 Yinan Xu <[email protected]>

backend: optimize aluOpType to 7 bits (#1061)

This commit optimizes ALUOpType to 7 bits. Alu timing will be checked
later.

We also apply some misc changes including:

* Move REVB, PACK, PACKH,

backend: optimize aluOpType to 7 bits (#1061)

This commit optimizes ALUOpType to 7 bits. Alu timing will be checked
later.

We also apply some misc changes including:

* Move REVB, PACK, PACKH, PACKW to ALU

* Add fused logicZexth, addwZext, addwSexth

* Add instruction fusion test cases to CI

show more ...


12