1+ # SPDX-FileCopyrightText: 2025 aesc silicon
2+ #
3+ # SPDX-License-Identifier: CERN-OHL-W-2.0
4+
15version : ' 3'
26
37includes :
@@ -7,9 +11,6 @@ includes:
711 flatten : true
812
913env :
10- package : " elemrv"
11- SOC : ElemRV
12- CONTAINER_NAME : elemrv_container
1314 FPGA_FAMILY : ecp5
1415 FPGA_DEVICE : um5g-45k
1516 FPGA_PACKAGE : CABGA554
2324 BUILD_ROOT : " {{ .PWD }}/build/"
2425 GCC : " /opt/elements/zephyr-sdk-0.17.0/riscv64-zephyr-elf/bin/riscv64-zephyr-elf"
2526 OPENROAD_FLOW_ROOT : " {{ .PWD }}/tools/OpenROAD-flow-scripts/flow"
27+
28+ vars :
29+ SOC : ' {{.SOC | default "ElemRV-N"}}'
30+ package :
31+ sh : echo "{{.SOC}}" | tr '[:upper:]' '[:lower:]' | tr '-' '_'
32+ CONTAINER_NAME : elemrv_container
2633 CONTAINER_ENV : " \
2734 -e SOC={{ .SOC }} \
2835 -e FPGA_FAMILY={{ .FPGA_FAMILY }} \
4754 - venv/bin/pip3 install podman-compose==1.0.6
4855 - curl https://storage.googleapis.com/git-repo-downloads/repo > repo
4956 - chmod a+rx repo
50- - ./repo init -u https://github.com/aesc-silicon/ElemRV.git -b {{if .branch}}{{.branch}}{{else}}main{{end}} -m manifest.xml
57+ - ./repo init -u https://github.com/aesc-silicon/ElemRV.git -b {{if .branch}}{{.branch}}{{else}}main{{end}} -m manifest{{if .nightly}}-nightly{{end}} .xml
5158
5259 build-container :
5360 desc : Creates a container with all necessary host requirements pre-installed.
@@ -65,14 +72,14 @@ tasks:
6572 - task : repo-sync
6673 vars :
6774 branch : " main"
75+ nightly : " false"
6876
6977 fpga-prepare :
7078 desc : Produces the Verilog file and metadata needed for FPGA operations.
7179 cmds :
7280 - task : lib-generate
7381 vars :
7482 board : " ECPIX5"
75- package : " elemrv"
7683 fpga-synthesize :
7784 desc : Generates the FPGA bitstream by synthesizing the design.
7885 cmds :
@@ -86,19 +93,29 @@ tasks:
8693 - task : lib-flash-bitstream
8794 vars :
8895 board : " ECPIX5"
96+ fpga-simulate :
97+ desc : Runs simulations at the RTL level. Add 'duration=n' to specify the duration in n milliseconds.
98+ cmds :
99+ - task : lib-simulate
100+ vars :
101+ board : " ECPIX5"
102+ fpga-view-simulation :
103+ desc : Opens the simulation with GTKWave.
104+ cmds :
105+ - task : lib-view-simulation
106+ vars :
107+ board : " ECPIX5"
89108
90109 compile-firmware :
91110 desc : Compiles bare metal firmwares.
92111 cmds :
93112 - task : lib-baremetal-firmware
94113 vars :
95114 board : " SG13G2"
96- package : " elemrv"
97115 app : " bootrom"
98116 - task : lib-baremetal-firmware
99117 vars :
100118 board : " SG13G2"
101- package : " elemrv"
102119 app : " demo"
103120
104121 prepare :
@@ -107,27 +124,23 @@ tasks:
107124 - task : lib-generate
108125 vars :
109126 board : " SG13G2"
110- package : " elemrv"
111127 - task : lib-sealring
112128 vars :
113129 board : " SG13G2"
114- - cp {{ .NAFARR_BASE }}/hardware/scala/nafarr/crypto/aes/AESMasked.v {{ .BUILD_ROOT }}/ElemRV/SG13G2/zibal/
115130
116131 simulate :
117132 desc : Runs simulations at the RTL level. Add 'duration=n' to specify the duration in n milliseconds.
118133 cmds :
119134 - task : lib-simulate
120135 vars :
121136 board : " SG13G2"
122- package : " elemrv"
123137
124138 view-simulation :
125139 desc : Opens the simulation with GTKWave.
126140 cmds :
127141 - task : lib-view-simulation
128142 vars :
129143 board : " SG13G2"
130- package : " elemrv"
131144
132145 layout :
133146 desc : Creates the physical layout of the chip.
0 commit comments