Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expanded support for CFUs. #14

Draft
wants to merge 34 commits into
base: master
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
054cffc
Changes to build VexRiscv versions with Cfu plugin:
tcal-x Oct 5, 2020
7374fad
Set up wrappers to contain the cpu+cfu.
tcal-x Oct 6, 2020
ae3d1d7
Add 'clk' input to CFU modules.
tcal-x Oct 8, 2020
07a72e2
Add perf count CSRs; rebuild CFU VexRiscv Verilogs.
tcal-x Nov 5, 2020
f022529
Increase to 8 perf counter CSRs; rebuild.
tcal-x Jan 7, 2021
59f011d
Bump both I$, D$ from 4k to 8k.
tcal-x Jan 12, 2021
12ecb67
Bump SpinalHdl/VexRiscv submodules; rebuild; widen CFU funcid port.
tcal-x Feb 19, 2021
9f87086
Delete SpinalHDL submodule.
tcal-x Mar 5, 2021
b6724a2
Rebuild: VexRiscv master w/ cfu fix, Spinal 1.4.3, wide func_id.
tcal-x Mar 6, 2021
767476c
Update CFU instr. encoding to match spec (update vex submodule too).
tcal-x Apr 7, 2021
eafff82
Match CFU spec; function_id now 10b {funct7,funct3}.
tcal-x Apr 7, 2021
c888198
Remove I-format CFU instruction; it impacts timing.
tcal-x Apr 8, 2021
b31d499
Add 'SlimCfu' variants; add missing reset/rst connections.
tcal-x Apr 25, 2021
6db4891
Slim: reduce Icache size to 1kB.
tcal-x Apr 29, 2021
528360a
Rebuild SlimCfu CPUs w/ 1kB Icache.
tcal-x Apr 29, 2021
e78ff1c
Remove wrapper mechanism for VexRiscv/CFU.
tcal-x Jun 3, 2021
aa12b0d
Rebuild Verilogs at hash e78ff1c.
tcal-x Jun 3, 2021
848042f
Add VexRiscv for Fomu -- minimal, plus hard muldiv, plus mcycle.
tcal-x Jun 11, 2021
301554e
Trim Fomu variants by removing alignment etc. checks.
tcal-x Jun 11, 2021
9188280
Tweak the Fomu variant to remove division, debug, and writeback/memor…
JosephBushagour Jul 19, 2021
43e1317
Merge pull request #1 from JosephBushagour/jbushagour_fomu_tweaks
tcal-x Jul 20, 2021
d8ec2d8
Require a memory and writeback stage for the CFU plugin.
JosephBushagour Aug 2, 2021
dc1f9dd
Merge pull request #2 from JosephBushagour/fomu-cfu
tcal-x Aug 2, 2021
9face5f
Add icache, single-cycle-shift, and single-cycle multiply to the Fomu…
JosephBushagour Aug 9, 2021
38f50db
Merge pull request #3 from JosephBushagour/fomu-cfu
tcal-x Aug 9, 2021
5bb9114
New "perf" variant has perfCSRs.
tcal-x Aug 31, 2021
cbb04d3
Rebuild affected verilogs with correct hash comment (5bb9114).
tcal-x Aug 31, 2021
7490bb2
Add slimperf+cfu variant.
tcal-x Sep 16, 2021
593e180
Merge branch 'master' into fomu-cfu-mm2
tcal-x Sep 21, 2021
9f85993
Rebuild Verilogs at 593e180.
tcal-x Sep 21, 2021
6f2afa7
Add 'slim' variant for completeness.
tcal-x Sep 29, 2021
6dfdf25
Rebuild VexRiscv_Slim.v so it has correct hash in comment.
tcal-x Sep 30, 2021
7454d1a
Remove performance CSRs from 'FullCfu' variants.
tcal-x Sep 30, 2021
9a22d43
Rebuild VexRiscv_FullCfu*.v at 7454d1ac.
tcal-x Sep 30, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
New "perf" variant has perfCSRs.
Also increase "Slim" D$ to 4kB, I$ to 2kB.

Signed-off-by: Tim Callahan <[email protected]>
tcal-x committed Aug 31, 2021
commit 5bb91146a62643cf606443d5366c69720906549c
16 changes: 9 additions & 7 deletions pythondata_cpu_vexriscv/verilog/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SRC := ${shell find . -type f -name \*.scala}

all: VexRiscv.v VexRiscv_Debug.v VexRiscv_Lite.v VexRiscv_LiteDebug.v VexRiscv_IMAC.v VexRiscv_IMACDebug.v VexRiscv_Min.v VexRiscv_MinDebug.v VexRiscv_Full.v VexRiscv_FullDebug.v VexRiscv_Linux.v VexRiscv_LinuxDebug.v VexRiscv_LinuxNoDspFmax.v VexRiscv_FullCfu.v VexRiscv_FullCfuDebug.v VexRiscv_SlimCfu.v VexRiscv_SlimCfuDebug.v VexRiscv_Fomu.v VexRiscv_FomuCfu.v
all: VexRiscv.v VexRiscv_Debug.v VexRiscv_Lite.v VexRiscv_LiteDebug.v VexRiscv_IMAC.v VexRiscv_IMACDebug.v VexRiscv_Min.v VexRiscv_MinDebug.v VexRiscv_Full.v VexRiscv_FullDebug.v VexRiscv_Linux.v VexRiscv_LinuxDebug.v VexRiscv_LinuxNoDspFmax.v VexRiscv_FullCfu.v VexRiscv_FullCfuDebug.v VexRiscv_SlimCfu.v VexRiscv_SlimCfuDebug.v VexRiscv_Fomu.v VexRiscv_FomuCfu.v VexRiscv_PerfCfu.v VexRiscv_PerfCfuDebug.v

VexRiscv.v: $(SRC)
sbt compile "runMain vexriscv.GenCoreDefault"
@@ -38,21 +38,23 @@ VexRiscv_Full.v: $(SRC)
VexRiscv_FullDebug.v: $(SRC)
sbt compile "runMain vexriscv.GenCoreDefault --csrPluginConfig all -d --outputFile VexRiscv_FullDebug"

# CFU versions must have module name changed because they will be wrapped
VexRiscv_FullCfu.v: $(SRC)
sbt compile "runMain vexriscv.GenCoreDefault --dCacheSize 8192 --iCacheSize 8192 --csrPluginConfig all --cfu true --perfCSRs 8 --outputFile VexRiscv_FullCfu"

# CFU versions must have module name changed because they will be wrapped
VexRiscv_FullCfuDebug.v: $(SRC)
sbt compile "runMain vexriscv.GenCoreDefault --dCacheSize 8192 --iCacheSize 8192 --csrPluginConfig all -d --cfu true --perfCSRs 8 --outputFile VexRiscv_FullCfuDebug"

# CFU versions must have module name changed because they will be wrapped
VexRiscv_PerfCfu.v: $(SRC)
sbt compile "runMain vexriscv.GenCoreDefault --dCacheSize 8192 --iCacheSize 8192 --csrPluginConfig all --cfu true --perfCSRs 8 --outputFile VexRiscv_PerfCfu"

VexRiscv_PerfCfuDebug.v: $(SRC)
sbt compile "runMain vexriscv.GenCoreDefault --dCacheSize 8192 --iCacheSize 8192 --csrPluginConfig all -d --cfu true --perfCSRs 8 --outputFile VexRiscv_PerfCfuDebug"

VexRiscv_SlimCfu.v: $(SRC)
sbt compile "runMain vexriscv.GenCoreDefault --dCacheSize 0 --iCacheSize 1024 --csrPluginConfig all --cfu true --perfCSRs 8 --outputFile VexRiscv_SlimCfu"
sbt compile "runMain vexriscv.GenCoreDefault --dCacheSize 4096 --iCacheSize 2048 --csrPluginConfig all --cfu true --outputFile VexRiscv_SlimCfu"

# CFU versions must have module name changed because they will be wrapped
VexRiscv_SlimCfuDebug.v: $(SRC)
sbt compile "runMain vexriscv.GenCoreDefault --dCacheSize 0 --iCacheSize 1024 --csrPluginConfig all -d --cfu true --perfCSRs 8 --outputFile VexRiscv_SlimCfuDebug"
sbt compile "runMain vexriscv.GenCoreDefault --dCacheSize 4096 --iCacheSize 2048 --csrPluginConfig all -d --cfu true --outputFile VexRiscv_SlimCfuDebug"

VexRiscv_Linux.v: $(SRC)
sbt compile "runMain vexriscv.GenCoreDefault --csrPluginConfig linux-minimal --outputFile VexRiscv_Linux"
2,362 changes: 1,025 additions & 1,337 deletions pythondata_cpu_vexriscv/verilog/VexRiscv_FullCfu.v

Large diffs are not rendered by default.

2,462 changes: 1,075 additions & 1,387 deletions pythondata_cpu_vexriscv/verilog/VexRiscv_FullCfuDebug.v

Large diffs are not rendered by default.

7,159 changes: 7,159 additions & 0 deletions pythondata_cpu_vexriscv/verilog/VexRiscv_PerfCfu.v

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions pythondata_cpu_vexriscv/verilog/VexRiscv_PerfCfu.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
iBus: !!vexriscv.BusReport
flushInstructions: [4111, 19, 19, 19]
info: !!vexriscv.CacheReport {bytePerLine: 32, size: 8192}
kind: cached
7,457 changes: 7,457 additions & 0 deletions pythondata_cpu_vexriscv/verilog/VexRiscv_PerfCfuDebug.v

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions pythondata_cpu_vexriscv/verilog/VexRiscv_PerfCfuDebug.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
debug: !!vexriscv.DebugReport {hardwareBreakpointCount: 0}
iBus: !!vexriscv.BusReport
flushInstructions: [4111, 19, 19, 19]
info: !!vexriscv.CacheReport {bytePerLine: 32, size: 8192}
kind: cached
4,758 changes: 2,669 additions & 2,089 deletions pythondata_cpu_vexriscv/verilog/VexRiscv_SlimCfu.v

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pythondata_cpu_vexriscv/verilog/VexRiscv_SlimCfu.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
iBus: !!vexriscv.BusReport
flushInstructions: [4111, 19, 19, 19]
info: !!vexriscv.CacheReport {bytePerLine: 32, size: 1024}
info: !!vexriscv.CacheReport {bytePerLine: 32, size: 2048}
kind: cached
4,813 changes: 2,707 additions & 2,106 deletions pythondata_cpu_vexriscv/verilog/VexRiscv_SlimCfuDebug.v

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pythondata_cpu_vexriscv/verilog/VexRiscv_SlimCfuDebug.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
debug: !!vexriscv.DebugReport {hardwareBreakpointCount: 0}
iBus: !!vexriscv.BusReport
flushInstructions: [4111, 19, 19, 19]
info: !!vexriscv.CacheReport {bytePerLine: 32, size: 1024}
info: !!vexriscv.CacheReport {bytePerLine: 32, size: 2048}
kind: cached