Skip to content

Commit

Permalink
Porting Ultrascale ZCU104 board (#435)
Browse files Browse the repository at this point in the history
Porting for Ultrascale
  • Loading branch information
JoseCalero authored Mar 8, 2024
1 parent b81f7f6 commit 3bf7753
Show file tree
Hide file tree
Showing 18 changed files with 1,730 additions and 284 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ verible:

## Generates the build folder in sw using CMake to build (compile and linking)
## @param PROJECT=<folder_name_of_the_project_to_be_built>
## @param TARGET=sim(default),systemc,pynq-z2,nexys-a7-100t
## @param TARGET=sim(default),systemc,pynq-z2,nexys-a7-100t,zcu104
## @param LINKER=on_chip(default),flash_load,flash_exec
## @param COMPILER=gcc(default), clang
## @param COMPILER_PREFIX=riscv32-unknown-(default)
Expand Down Expand Up @@ -223,7 +223,7 @@ app-simulate-all:
## @section Vivado

## Builds (synthesis and implementation) the bitstream for the FPGA version using Vivado
## @param FPGA_BOARD=nexys-a7-100t,pynq-z2
## @param FPGA_BOARD=nexys-a7-100t,pynq-z2,zcu104
## @param FUSESOC_FLAGS=--flag=<flagname>
vivado-fpga:
$(FUSESOC) --cores-root . run --no-export --target=$(FPGA_BOARD) $(FUSESOC_FLAGS) --build openhwgroup.org:systems:core-v-mini-mcu ${FUSESOC_PARAM} 2>&1 | tee buildvivado.log
Expand Down
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,11 +231,11 @@ make app
To run any other application, please use the following command with appropiate parameters:

```
app PROJECT=<folder_name_of_the_project_to_be_built> TARGET=sim(default),systemc,pynq-z2,nexys-a7-100t LINKER=on_chip(default),flash_load,flash_exec COMPILER=gcc(default),clang COMPILER_PREFIX=riscv32-unknown-(default) ARCH=rv32imc(default),<any RISC-V ISA string supported by the CPU>
app PROJECT=<folder_name_of_the_project_to_be_built> TARGET=sim(default),systemc,pynq-z2,nexys-a7-100t,zcu104 LINKER=on_chip(default),flash_load,flash_exec COMPILER=gcc(default),clang COMPILER_PREFIX=riscv32-unknown-(default) ARCH=rv32imc(default),<any RISC-V ISA string supported by the CPU>
Params:
- PROJECT (ex: <folder_name_of_the_project_to_be_built>, hello_world(default))
- TARGET (ex: sim(default),pynq-z2)
- TARGET (ex: sim(default),systemc,pynq-z2,nexys-a7-100t,zcu104)
- LINKER (ex: on_chip(default),flash_load,flash_exec)
- COMPILER (ex: gcc(default),clang)
- COMPILER_PREFIX (ex: riscv32-unknown-(default))
Expand Down Expand Up @@ -545,7 +545,7 @@ This project offers two different X-HEEP implementetions on Xilinx FPGAs, called

In this version, the X-HEEP architecture is implemented on the programmable logic (PL) side of the FPGA, and its input/output are connected to the available headers on the FPGA board.

Two FPGA boards are supported: the Xilinx Pynq-z2 and Nexys-A7-100t.
Two FPGA boards are supported: the Xilinx Pynq-z2, Nexys-A7-100t, Zynq Ultrascale+ ZCU104.

Make sure you have the FPGA board files installed in your Vivado.

Expand All @@ -563,6 +563,12 @@ or
make vivado-fpga FPGA_BOARD=nexys-a7-100t
```

or

```
make vivado-fpga FPGA_BOARD=zcu104
```

or add the flag `use_bscane_xilinx` to use the native Xilinx scanchain:

```
Expand Down
36 changes: 36 additions & 0 deletions core-v-mini-mcu.core
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,11 @@ filesets:
- hw/fpga/scripts/nexys/set_board.tcl: { file_type: tclSource }
- hw/fpga/scripts/nexys/xilinx_generate_clk_wizard.tcl: { file_type: tclSource }

ip-fpga-zcu104:
files:
- hw/fpga/scripts/zcu104/set_board.tcl: { file_type: tclSource }
- hw/fpga/scripts/zcu104/xilinx_generate_clk_wizard.tcl: { file_type: tclSource }

ip-asic:
depend:
- technology::prim_mytech
Expand Down Expand Up @@ -154,6 +159,11 @@ filesets:
- hw/fpga/constraints/pynq-z2/constraints.xdc
file_type: xdc

xdc-fpga-zcu104:
files:
- hw/fpga/constraints/zcu104/pin_assign.xdc
file_type: xdc

netlist-fpga:
files:
- build/openhwgroup.org_systems_core-v-mini-mcu_0/nexys-a7-100t-vivado/core_v_mini_mcu_xiling_postsynth.v
Expand Down Expand Up @@ -279,6 +289,10 @@ parameters:
datatype: bool
paramtype: vlogdefine
default: false
FPGA_ZCU104:
datatype: bool
paramtype: vlogdefine
default: false
# Make the parameter known to FuseSoC to enable overrides from the
# command line. If not overwritten, use the generic technology library.
PRIM_DEFAULT_IMPL:
Expand Down Expand Up @@ -485,6 +499,28 @@ targets:
part: xc7z020clg400-1
toplevel: [xilinx_core_v_mini_mcu_wrapper]

zcu104:
<<: *default_target
default_tool: vivado
description: ZCU104 Evaluation Board
filesets_append:
- x_heep_system
- rtl-fpga
- ip-fpga-zcu104
- ip-fpga
- xdc-fpga-zcu104
parameters:
- COREV_PULP
- FPU
- X_EXT
- SYNTHESIS=true
- REMOVE_OBI_FIFO
- FPGA_ZCU104=true
tools:
vivado:
part: xczu7ev-ffvc1156-2-e
toplevel: [xilinx_core_v_mini_mcu_wrapper]

asic_synthesis:
<<: *default_target
default_tool: design_compiler
Expand Down
14 changes: 14 additions & 0 deletions hw/fpga/board_files/vendor/esl_epfl_zcu104_board_files.lock.hjson
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

// This file is generated by the util/vendor script. Please do not modify it
// manually.

{
upstream:
{
url: https://github.com/esl-epfl/zcu104_board_files.git
rev: 53e4affbaeec73809304940be8f5351ae147227a
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// Copyright 2023 David Mallasén Quintana
// Solderpad Hardware License, Version 2.1, see LICENSE.md for details.
// SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
{
name: "esl_epfl_zcu104_board_files",
target_dir: "esl_epfl_zcu104_board_files",

upstream: {
url: "https://github.com/esl-epfl/zcu104_board_files.git",
rev: "53e4affbaeec73809304940be8f5351ae147227a",
},

exclude_from_upstream: [
"README.md"
]
}
Loading

0 comments on commit 3bf7753

Please sign in to comment.