Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
eb4d694
fpga_diff: add UVHS implementation flow
klin02 Jul 26, 2026
ef6619c
fix(fpga_diff): synchronize interconnect reset
klin02 Jul 29, 2026
7019f7c
feat(fpga_diff): support XiangShan in UVHS flow
klin02 Jul 29, 2026
cfb9521
refactor(fpga_diff): simplify UVHS build and runtime
klin02 Jul 29, 2026
e47a610
feat(fpga_diff): add UVHS flash programming
klin02 Jul 29, 2026
82e8508
refactor(fpga_diff): remove obsolete UVHS adapters
klin02 Jul 30, 2026
6dc0d10
refactor(fpga_diff): detach UVHS runtime session
klin02 Jul 30, 2026
1ffe174
fix(fpga_diff): align UVHS flash address mapping
klin02 Aug 2, 2026
5ee5d28
refactor(fpga_diff): simplify UVHS flow scripts
klin02 Aug 2, 2026
eb8972b
refactor(fpga_diff): streamline UVHS flow inputs
klin02 Aug 2, 2026
2c5cf21
refactor(fpga_diff): separate UVHS flow stages
klin02 Aug 2, 2026
7a1d68e
refactor(fpga_diff): expose stable UVHS targets
klin02 Aug 2, 2026
23d4969
refactor(fpga_diff): consolidate UVHS scripts
klin02 Aug 2, 2026
33389a3
refactor(fpga_diff): tighten UVHS defaults
klin02 Aug 2, 2026
491b816
fix(fpga_diff): expose FPGAs for XiangShan partitioning
klin02 Aug 2, 2026
584c828
refactor(fpga_diff): unify UVHS build entry point
klin02 Aug 2, 2026
192007c
refactor(fpga_diff): consolidate UVHS IP preparation
klin02 Aug 2, 2026
6bb38ac
refactor(fpga_diff): organize UVHS flow scripts
klin02 Aug 2, 2026
3466113
fix(fpga_diff): constrain UVHS clocks in frontend
klin02 Aug 2, 2026
c3096c0
feat(fpga_diff): add UVHS waveform capture
klin02 Aug 2, 2026
85483d5
feat(fpga_diff): add default UVHS probe script
klin02 Aug 2, 2026
15fba25
feat(fpga_diff): expose UVHS ILA controls
klin02 Aug 2, 2026
1f80d1b
fix(fpga_diff): run GeneralBus export with Bash
klin02 Aug 2, 2026
76ef00a
fix(fpga_diff): reuse staged PCRE1 library
klin02 Aug 2, 2026
376a34b
fix(fpga_diff): qualify UVHS pin helpers
klin02 Aug 2, 2026
066855c
fix(fpga_diff): restore UVHS worker libraries
klin02 Aug 2, 2026
aac92e3
fix(fpga_diff): inline UVHS async constraints
klin02 Aug 2, 2026
650027e
fix(fpga_diff): constrain UVHS XDMA AXI clock
klin02 Aug 2, 2026
bb2fd5e
docs(fpga_diff): document UVHS ILA limits
klin02 Aug 2, 2026
15a0b26
fix(fpga_diff): balance UVHS partition blocks
klin02 Aug 3, 2026
b9c9ecc
fix(fpga_diff): reserve UVHS debug DDR cards
klin02 Aug 3, 2026
709a74d
fix(fpga_diff): query UVHS partition RTL cell
klin02 Aug 3, 2026
a3115d5
fix(fpga_diff): recreate UVHS frontend database
klin02 Aug 3, 2026
4748d39
fix(fpga_diff): constrain UVHS partition after elaboration
klin02 Aug 3, 2026
b235664
fix(fpga_diff): align UVHS backend constraints
klin02 Aug 3, 2026
c464e15
fix(fpga_diff): bind UVHS user DDR resources
klin02 Aug 3, 2026
ca39379
fix(fpga_diff): avoid localizing UVHS derived clock
klin02 Aug 3, 2026
691881a
fix(fpga_diff): keep UVHS led3 on F2
klin02 Aug 3, 2026
b0c6c23
fix(fpga_diff): leave DDR status LED unbound
klin02 Aug 3, 2026
1eba6ea
fix(fpga_diff): use global UVHS SoC clock
klin02 Aug 3, 2026
cc8ab99
fix(fpga_diff): preserve UVHS DiffTest clock gating
klin02 Aug 3, 2026
39ca3f9
fix(fpga_diff): isolate UVHS runtime files
klin02 Aug 3, 2026
607d990
feat(fpga_diff): split UVHS waveform capture
klin02 Aug 3, 2026
9384ff3
fix(fpga_diff): exclude UVHS clock TDM checks
klin02 Aug 3, 2026
d698f8b
docs(fpga_diff): clarify UVHS trigger window
klin02 Aug 3, 2026
5710f48
fix(fpga_diff): align UVHS UART topology
klin02 Aug 6, 2026
83cba23
fix(fpga_diff): colocate UVHS memory and host paths
klin02 Aug 7, 2026
4d0b81f
fix(fpga_diff): constrain UVHS DDR reset CDC
klin02 Aug 7, 2026
1a1b89e
fix(fpga_diff): use valid CDC startpoints
klin02 Aug 7, 2026
4b60604
fix(fpga_diff): normalize UVHS signoff constraints
klin02 Aug 7, 2026
9500cf6
fix(fpga_diff): colocate UVHS memory adapters
klin02 Aug 8, 2026
00b4e0f
fix(fpga_diff): use UVHS signoff clock
klin02 Aug 9, 2026
dca66ac
fix(fpga_diff): route UVHS clock enable at x1
klin02 Aug 9, 2026
6dd1aa5
fix(fpga_diff): colocate UVHS IMSIC bridge
klin02 Aug 9, 2026
224e25c
refactor(fpga_diff): name UVHS board assembly
klin02 Aug 9, 2026
b8bc3fd
fix(fpga_diff): colocate UVHS configuration path
klin02 Aug 9, 2026
1577e48
feat(fpga_diff): retain UVHS host trigger
klin02 Aug 9, 2026
8ff41f0
fix(fpga_diff): scope UVHS DDR reset CDC
klin02 Aug 9, 2026
973676c
fix(fpga_diff): detect DDR signoff master clock
klin02 Aug 10, 2026
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
9 changes: 7 additions & 2 deletions fpga_diff/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ PRJ_NAME = fpga_$(CPU)$(if $(strip $(SUFFIX)),-$(strip $(SUFFIX)),)
PRJ_DIR ?= $(ENV_SCRIPTS_HOME)/$(PRJ_NAME)
PRJ ?= $(PRJ_DIR)/$(PRJ_NAME).xpr

.PHONY: bitstream vivado dump_ila write_jtag_flash update_core_flist
.PHONY: bitstream vivado dump_ila update_core_flist \
write_bitstream halt_soc write_jtag_ddr write_jtag_flash reset_cpu

# Get Vivado version
VIVADO_VERSION := $(shell vivado -version 2>/dev/null | head -1 | grep -o '[0-9]\{4\}\.[0-9]' || echo "unknown")
Expand All @@ -41,7 +42,7 @@ bitstream:

# RTL_INCLUDE accepts RTL files, directories, and .f/.flist/.list file lists.
update_core_flist:
@./tools/update_core_flist.sh "$(CORE_DIR)" -- $(RTL_INCLUDE)
@./tools/update_core_flist.sh vivado "$(CORE_DIR)" -- $(RTL_INCLUDE)

# Launch Vivado with FPGA project configuration
vivado: check_vivado_version
Expand Down Expand Up @@ -99,3 +100,7 @@ get_synth_log:
all:
$(MAKE) update_core_flist CORE_DIR="$(CORE_DIR)" RTL_INCLUDE="$(RTL_INCLUDE)"
$(MAKE) vivado CPU=$(CPU) SUFFIX="$(SUFFIX)"

# UVHS targets use an explicit uvhs_* namespace and do not replace the normal
# Vivado/JTAG targets above.
include uvhs/uvhs.mk
12 changes: 12 additions & 0 deletions fpga_diff/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,16 @@ FPGA_DDR_LOAD_CMD="bash -lc ' \
./fpga-host --diff <nemu> -i <workload>.bin
```

UVHS Flow
=========

The Hejian UVHS flow uses separate `uvhs_*` targets and leaves the targets above
unchanged. Configure the UVHS tool environment in the runtime host shell, then
invoke:

```shell
make uvhs CPU=<design> CORE_DIR=/path/to/release/build SUFFIX=<tag>
```

See [`uvhs/README.md`](uvhs/README.md) for the board-template and vendor-DDR
inputs, build stages, and runtime commands.
Loading