Skip to content

Implementation of CVA6 on Xilinx ultrascal VCU118 #3044

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

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

1yacht
Copy link

@1yacht 1yacht commented Jul 7, 2025

Hello,
I add the implementation of the board VCU118 for the CVA6. To test it you need the VCU118 lisence and you just need to make the command " make fpga" on the root directory. I used the digilent configuration and change the DDR config for the DDR4 of the VCU118.

@1yacht 1yacht requested a review from JeanRochCoulon as a code owner July 7, 2025 13:12
Copy link
Contributor

github-actions bot commented Jul 7, 2025

❌ failed run, report available here.

Copy link
Contributor

@Gchauvon Gchauvon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

*.str files should be deleted.
vcu118.xdc file was modified, was VCU118 already supported on CVA6 ?

I'm afraid there are a lot of change not compatible with already existing and supported board. Make sure your modification does not break others boards, notably in Makefiles and ariane_xilinx.sv

Comment on lines +55 to +60


#modif par moi
.venv
/corev_apu/fpga/ariane.*
/corev_apu/fpga/vivado_pid*
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this necessary ?

@@ -39,7 +39,7 @@ torture-logs :=
# custom elf bin to run with sim or sim-verilator
elf_file ?= tmp/riscv-tests/build/benchmarks/dhrystone.riscv
# board name for bitstream generation. Currently supported: kc705, genesys2, nexys_video
BOARD ?= genesys2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We want to keep genesys2 as the default board.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To use a different board, you can just add BOARD option:
make fpga BOARD=vcu118
This file update must be removed.

@@ -1,5 +1,5 @@
VIVADO ?= vivado
VIVADOFLAGS ?= -nojournal -mode batch -source scripts/prologue.tcl
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We want to build the bitstream in batch by default. Does your build work in batch as well ?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can remain local update for your dev/tests.

Comment on lines -15 to +27
xlnx_mig_7_ddr3.xci
xlnx_mig_ddr4.xci \
xlnx_axi_dwidth_converter_512_64.xci

ips_standard := xlnx_axi_clock_converter.xci \
xlnx_axi_dwidth_converter.xci \
xlnx_axi_quad_spi.xci \
xlnx_axi_gpio.xci \
xlnx_clk_gen.xci

ips_ddr3 := xlnx_mig_7_ddr3.xci

ips_ddr4 := xlnx_mig_ddr4.xci \
xlnx_axi_dwidth_converter_512_64.xci
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are the new variable used ? It looks like you change the default behaviour genesys2, we do not want that.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can use the BOARD option to execute the section according to the desired configuration.
ifeq ($(BOARD), genesys2) #Existing code else ifeq ($(BOARD), vcu118) #Your updates endif
Indeed, BOARD option is passed through the make command in the Makefile at upper level.

Comment on lines -32 to +35
"xilinx/xlnx_mig_7_ddr3/xlnx_mig_7_ddr3.srcs/sources_1/ip/xlnx_mig_7_ddr3/xlnx_mig_7_ddr3.xci" \
"xilinx/xlnx_axi_dwidth_converter_512_64/xlnx_axi_dwidth_converter_512_64.srcs/sources_1/ip/xlnx_axi_dwidth_converter_512_64/xlnx_axi_dwidth_converter_512_64.xci" \
"xilinx/xlnx_mig_ddr4/xlnx_mig_ddr4.srcs/sources_1/ip/xlnx_mig_ddr4/xlnx_mig_ddr4.xci" \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment, no change of default behaviour for genesys2.

@@ -1192,7 +1215,7 @@ xlnx_mig_7_ddr3 i_ddr (
.app_sr_active ( ), // keep open
.app_ref_ack ( ), // keep open
.app_zq_ack ( ), // keep open
.ui_clk ( ddr_clock_out ),
.ui_clk ( clk_200MHz_ref ), // attention changement ici pour garder 200Mhz (pas nécessaire si pas utilisé ddr3)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not comment in french.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants