Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
1574d2c
fpga: Reworked fully FPGA flow, added support and CI for VCU128, adde…
CyrilKoe May 5, 2023
ff72904
fpga: Removed a few phonies/variable defined targets
CyrilKoe Nov 28, 2023
aec7a83
put c910_axi_wrap from soc910 into cheshire_soc, passed compile
Aquaticfuller Oct 25, 2023
0765c25
modify some files to clean up port width mismatch warnings
Aquaticfuller Oct 26, 2023
8bf1c51
modify axi user length
Aquaticfuller Oct 26, 2023
dba0b9d
temporarily remove the ci script
Aquaticfuller Oct 26, 2023
f2a5121
solve the namespace problem in c910 config
Aquaticfuller Oct 26, 2023
0243b2f
edit the system memory map configures
Aquaticfuller Oct 27, 2023
9c70c42
solve reset and boot address problem, now the core can start fetch fr…
Aquaticfuller Oct 28, 2023
c4b290d
change some dependencies to verdor file for modification
Aquaticfuller Oct 31, 2023
23ec153
change the mode of stream_arbiter in reg_mux from rr to prio to get c…
Aquaticfuller Oct 31, 2023
286ba07
too avoid a assert failure
Aquaticfuller Oct 31, 2023
48056e9
1.add riscv-tests and bootrom_for_test; 2.Find that because of the Ch…
Aquaticfuller Nov 6, 2023
2ad682a
1.replaced the original CLINT of c910 by adding new ports to the c910…
Aquaticfuller Nov 23, 2023
d9d69d3
replace c910 internal plic with cheshire version, passed compile
Aquaticfuller Dec 8, 2023
f4dd9b7
start to add risc-v debug support in c910 core
Aquaticfuller Dec 12, 2023
b58e5f6
run hello world on the merged version, worth noting that the devmode_…
Aquaticfuller Dec 13, 2023
4c6b594
add c910 flag in xilinx.mk
Aquaticfuller Dec 13, 2023
22962d0
1. add preload mode 3, directly load hex file into memory, and jump f…
Aquaticfuller Dec 20, 2023
8ea9652
add spike co-simulation support, passed vsim compile, the co-sim logi…
Aquaticfuller Dec 20, 2023
ce42f85
chenge the AxiMaxReads in axi_dw_converter to 8, to meet the vivado i…
Aquaticfuller Dec 29, 2023
520b089
1.add spke co-sim logic; 2.update pulp_c910 dependency.
Aquaticfuller Dec 29, 2023
4582781
Add multiple spike co-simulation support:
Aquaticfuller Jan 8, 2024
7e75d28
update pulp_c910 dependency, remove some redundent ila signals
Aquaticfuller Jan 9, 2024
3b9fa6b
update axi_llc dependency, which removes axi error resp
Aquaticfuller Jan 9, 2024
20675b3
1.Update pulp_c910 dependency, fix the amo access fault and timer int…
Aquaticfuller Jan 15, 2024
85e856d
Enable the icacahe, dcache, data prefectch, branch prediction... hard…
Aquaticfuller Mar 15, 2024
6e68127
boot rom: 1.use t0 instead gp for t-head config reg setting; 2.direct…
Aquaticfuller Mar 23, 2024
4c2ceb3
update bender dependency: Corner case: aw send fast and get b resp, w…
Aquaticfuller Mar 23, 2024
3692321
update bender dependency [pulp_c910] Another fix for r interleave: ma…
Aquaticfuller Mar 28, 2024
a9cba3e
Add support for asic flow
Aquaticfuller Jun 1, 2024
99aba1e
Update Bender dependencies:
Aquaticfuller Jul 12, 2024
aec58d8
Fix the bug of interrupt signals which prevents the Linux booting.
Aquaticfuller Aug 14, 2024
7f2fbd5
1.Add support for netlist simulation; 2. Bump pulp_c910 dep: Change t…
Aquaticfuller Nov 21, 2024
2d37329
[Bump axi dep] Fix a bug: When a AR wrap burst come in but master rea…
Aquaticfuller Nov 21, 2024
f0d4850
[Bump pulp_c910 dep] Fix 2 bugs in pulp_c910:
Aquaticfuller Feb 21, 2025
9118a9c
[Bump sw dep] Replace cva6-sdk with new c910-sdk.
Aquaticfuller Feb 24, 2025
141c600
[Fix] Fix issues raised during the try-run.
Aquaticfuller Feb 25, 2025
e988ac6
[Bump sw dep] Bump c910-sdk dep.
Aquaticfuller Feb 25, 2025
27767a8
remove the flattened riscv-test, riscv-isa-sim, and pulp_register_int…
Aquaticfuller Mar 13, 2025
ba37ab5
remove dpi
Aquaticfuller Mar 13, 2025
f798cf1
restore .gitignore
Aquaticfuller Mar 13, 2025
466f75e
clean up the bootrom
Aquaticfuller Mar 13, 2025
e00f5b5
clean up sim scripts
Aquaticfuller Mar 13, 2025
9a21c02
further clean up the spike and cosim env
Aquaticfuller Mar 13, 2025
9f8c17b
clean up the vsim target script
Aquaticfuller Mar 14, 2025
e3e042f
clean up the rtl code base and related file list
Aquaticfuller Mar 17, 2025
c0424c7
further clean up for unused code
Aquaticfuller Mar 17, 2025
98cd832
[Bump sw dep] Update the cva6-sdk dep.
Aquaticfuller Mar 24, 2025
bb1bf08
[Bump hw dep] Update axi and pulp_c910 dep.
Aquaticfuller Mar 24, 2025
54b167a
[Bump hw dep] Update pulp_c910 dep.
Aquaticfuller Mar 24, 2025
6cccb58
Minor fix for the fpga flow.
Aquaticfuller Mar 26, 2025
4bee50b
[Bump hw dep] Remove soc910_pkg, update pulp-c910 dep, switch its sou…
Aquaticfuller Apr 28, 2025
a6ffa9f
1. Move the axi_burst_undec into the pulp-c910 IP, and remove the nee…
Aquaticfuller May 21, 2025
928e1f3
[Bump hw dep] Update to the stable release of pulp-c910
Aquaticfuller Jun 2, 2025
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
File renamed without changes.
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
[submodule "sw/deps/cva6-sdk"]
path = sw/deps/cva6-sdk
url = https://github.com/pulp-platform/cva6-sdk.git
ignore = dirty
branch = zx/cheshire_c910
55 changes: 32 additions & 23 deletions Bender.lock
Original file line number Diff line number Diff line change
Expand Up @@ -15,46 +15,46 @@ packages:
- apb
- register_interface
axi:
revision: fccffb5953ec8564218ba05e20adbedec845e014
version: 0.39.1
revision: f07498d53ecd5518b277c7d213ec3b71ca4df93c
version: 0.39.7
source:
Git: https://github.com/pulp-platform/axi.git
dependencies:
- common_cells
- common_verification
- tech_cells_generic
axi_llc:
revision: 559bcbd09a5a884dbe31e2d72fd95d024e357f39
version: 0.2.1
revision: edae802164fc453a59006e9170a18407b5e01e22
version: null
source:
Git: https://github.com/pulp-platform/axi_llc.git
Git: https://github.com/Aquaticfuller/axi_llc.git
dependencies:
- axi
- common_cells
- common_verification
- register_interface
- tech_cells_generic
axi_riscv_atomics:
revision: c3c3f2b65071841035c4e081c61c9b7be801d749
version: 0.8.1
revision: 0ac3a78fe342c5a5b9b10bff49d58897f773059e
version: 0.8.2
source:
Git: https://github.com/pulp-platform/axi_riscv_atomics.git
dependencies:
- axi
- common_cells
- common_verification
axi_rt:
revision: 2be9d4028cd3fd6617a0302a53212495a4c4e3fa
version: 0.0.0-alpha.4
revision: 50153a346b753dc2bc7723c446656a43db35d02d
version: 0.0.0-alpha.10
source:
Git: https://github.com/pulp-platform/axi_rt.git
dependencies:
- axi
- common_cells
- register_interface
axi_vga:
revision: 07be187d1e954d8090031b32d236ad76dc62ce45
version: 0.1.1
revision: 4d3e70d4f47bb74edc1ab68d99ffc02382e0fb9e
version: 0.1.4
source:
Git: https://github.com/pulp-platform/axi_vga.git
dependencies:
Expand All @@ -78,16 +78,16 @@ packages:
- common_cells
- register_interface
common_cells:
revision: 2bd027cb87eaa9bf7d17196ec5f69864b35b630f
version: 1.32.0
revision: 9afda9abb565971649c2aa0985639c096f351171
version: 1.38.0
source:
Git: https://github.com/pulp-platform/common_cells.git
dependencies:
- common_verification
- tech_cells_generic
common_verification:
revision: 9c07fa860593b2caabd9b5681740c25fac04b878
version: 0.2.3
revision: fb1885f48ea46164a10568aeff51884389f67ae3
version: 0.2.5
source:
Git: https://github.com/pulp-platform/common_verification.git
dependencies: []
Expand Down Expand Up @@ -144,9 +144,17 @@ packages:
- common_cells
- register_interface
- tech_cells_generic
pulp-c910:
revision: 1f738b48fd20e962a942e04de8712908b399205a
version: 0.2.0
source:
Git: https://github.com/pulp-platform/pulp-c910.git
dependencies:
- axi
- common_cells
register_interface:
revision: d7693be4aef1fc7e7eb2b00b41c42e87d959866c
version: 0.4.2
revision: 5daa85d164cf6b54ad061ea1e4c6f3624556e467
version: 0.4.5
source:
Git: https://github.com/pulp-platform/register_interface.git
dependencies:
Expand All @@ -155,16 +163,16 @@ packages:
- common_cells
- common_verification
riscv-dbg:
revision: 138d74bcaa90c70180c12215db3776813d2a95f2
version: 0.8.0
revision: f69f6342f69fff28655e1394ec889c0360bcca8b
version: null
source:
Git: https://github.com/pulp-platform/riscv-dbg.git
dependencies:
- common_cells
- tech_cells_generic
serial_link:
revision: 77bec1aebd92b2ebea9962814f2370d5d48390c3
version: 1.1.0
revision: c55df03a1da06b00e567cf968b1b1a5f40c9f802
version: 1.1.2
source:
Git: https://github.com/pulp-platform/serial_link.git
dependencies:
Expand All @@ -179,10 +187,11 @@ packages:
dependencies:
- common_verification
unbent:
revision: 89ea12018002e6fae51f88e25320e79f57db8073
version: 0.1.5
revision: e9c9d5cfb635f2d4668c816ce9235798cfecb297
version: 0.1.6
source:
Git: https://github.com/pulp-platform/unbent.git
dependencies:
- axi
- common_cells
- register_interface
9 changes: 6 additions & 3 deletions Bender.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ package:

dependencies:
apb_uart: { git: "https://github.com/pulp-platform/apb_uart.git", version: 0.2.1 }
axi: { git: "https://github.com/pulp-platform/axi.git", version: 0.39.0 }
axi_llc: { git: "https://github.com/pulp-platform/axi_llc.git", version: 0.2.1 }
axi: { git: "https://github.com/pulp-platform/axi.git", version: 0.39.7 }
axi_llc: { git: "https://github.com/Aquaticfuller/axi_llc.git", rev: edae8021 }
axi_riscv_atomics: { git: "https://github.com/pulp-platform/axi_riscv_atomics.git", version: 0.8.1 }
axi_rt: { git: "https://github.com/pulp-platform/axi_rt.git", version: 0.0.0-alpha.4 }
axi_vga: { git: "https://github.com/pulp-platform/axi_vga.git", version: 0.1.1 }
Expand All @@ -27,9 +27,10 @@ dependencies:
irq_router: { git: "https://github.com/pulp-platform/irq_router.git", version: 0.0.1-beta.1 }
opentitan_peripherals: { git: "https://github.com/pulp-platform/opentitan_peripherals.git", version: 0.4.0 }
register_interface: { git: "https://github.com/pulp-platform/register_interface.git", version: 0.4.2 }
riscv-dbg: { git: "https://github.com/pulp-platform/riscv-dbg.git", version: 0.8.0 }
riscv-dbg: { git: "https://github.com/pulp-platform/riscv-dbg.git", rev: f69f6342 } # zx/cheshire_c910
serial_link: { git: "https://github.com/pulp-platform/serial_link.git", version: 1.1.0 }
unbent: { git: "https://github.com/pulp-platform/unbent.git", version: 0.1.5 }
pulp-c910: { git: "https://github.com/pulp-platform/pulp-c910.git", version: 0.2.0 }

export_include_dirs:
- hw/include
Expand All @@ -53,4 +54,6 @@ sources:
- target: all(fpga, xilinx)
files:
- target/xilinx/src/fan_ctrl.sv
- target/xilinx/src/dram_wrapper_xilinx.sv
- target/xilinx/src/phy_definitions.svh
- target/xilinx/src/cheshire_top_xilinx.sv
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ source start.cheshire_soc.tcl
run -all
```

If you have access to our internal servers, you can run `make nonfree-init` to fetch additional resources we cannot make publically accessible. Note that these are *not required* to use anything provided in this repository.

## License

Unless specified otherwise in the respective file headers, all code checked into this repository is made available under a permissive license. All hardware sources and tool scripts are licensed under the Solderpad Hardware License 0.51 (see `LICENSE`) with the exception of generated register file code (e.g. `hw/regs/*.sv`), which is generated by a fork of lowRISC's [`regtool`](https://github.com/lowRISC/opentitan/blob/master/util/regtool.py) and licensed under Apache 2.0. All software sources are licensed under Apache 2.0.
Expand Down
20 changes: 12 additions & 8 deletions cheshire.mk
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ BENDER ?= bender
VLOG_ARGS ?= -suppress 2583 -suppress 13314
VSIM ?= vsim

# Define board for FPGA flow and/or device tree selection
BOARD ?= genesys2

# Define used paths (prefixed to avoid name conflicts)
CHS_ROOT ?= $(shell $(BENDER) path cheshire)
CHS_REG_DIR := $(shell $(BENDER) path register_interface)
Expand Down Expand Up @@ -53,7 +56,7 @@ chs-clean-deps:
######################

CHS_NONFREE_REMOTE ?= [email protected]:pulp-restricted/cheshire-nonfree.git
CHS_NONFREE_COMMIT ?= dafd3c1
CHS_NONFREE_COMMIT ?= 890a09d20bf200c4fbcc3d2b708a16ba89678306

chs-nonfree-init:
git clone $(CHS_NONFREE_REMOTE) $(CHS_ROOT)/nonfree
Expand Down Expand Up @@ -133,7 +136,7 @@ CHS_BOOTROM_ALL += $(CHS_ROOT)/hw/bootrom/cheshire_bootrom.sv $(CHS_ROOT)/hw/boo
##############

$(CHS_ROOT)/target/sim/vsim/compile.cheshire_soc.tcl: Bender.yml
$(BENDER) script vsim -t sim -t cv64a6_imafdcsclic_sv39 -t test -t cva6 -t rtl --vlog-arg="$(VLOG_ARGS)" > $@
$(BENDER) script vsim -t sim -t cv64a6_imafdcsclic_sv39 -t test -t cva6 -t c910 -t rtl --vlog-arg="$(VLOG_ARGS)" > $@
echo 'vlog "$(realpath $(CHS_ROOT))/target/sim/src/elfloader.cpp" -ccflags "-std=c++11"' >> $@

$(CHS_ROOT)/target/sim/models:
Expand All @@ -155,25 +158,26 @@ CHS_SIM_ALL += $(CHS_ROOT)/target/sim/models/24FC1025.v
CHS_SIM_ALL += $(CHS_ROOT)/target/sim/vsim/compile.cheshire_soc.tcl

#############
# FPGA Flow #
# Emulation #
#############

$(CHS_ROOT)/target/xilinx/scripts/add_sources.tcl: Bender.yml
$(BENDER) script vivado -t fpga -t cv64a6_imafdcsclic_sv39 -t cva6 > $@

CHS_XILINX_ALL += $(CHS_ROOT)/target/xilinx/scripts/add_sources.tcl
include $(CHS_ROOT)/target/xilinx/xilinx.mk
include $(CHS_XIL_DIR)/sim/sim.mk
CHS_XILINX_ALL += $(CHS_XIL_DIR)/scripts/add_sources.tcl
CHS_LINUX_IMG += $(CHS_SW_DIR)/boot/linux-${BOARD}.gpt.bin

#################################
# Phonies (KEEP AT END OF FILE) #
#################################

.PHONY: chs-all chs-nonfree-init chs-clean-deps chs-sw-all chs-hw-all chs-bootrom-all chs-sim-all chs-xilinx-all

CHS_ALL += $(CHS_SW_ALL) $(CHS_HW_ALL) $(CHS_SIM_ALL) $(CHS_XILINX_ALL)
CHS_ALL += $(CHS_SW_ALL) $(CHS_HW_ALL) $(CHS_SIM_ALL)

chs-all: $(CHS_ALL)
chs-sw-all: $(CHS_SW_ALL)
chs-hw-all: $(CHS_HW_ALL)
chs-bootrom-all: $(CHS_BOOTROM_ALL)
chs-sim-all: $(CHS_SIM_ALL)
chs-xilinx-all: $(CHS_XILINX_ALL)
chs-linux-img: $(CHS_LINUX_IMG)
Loading
Loading