25 set default_commands {
27 Msg Status "\n** The projects in this repository are:"
28 ListProjects $repo_path $list_all
32 # DESCRIPTION: List the projects in the repository. To show hidden projects use the -all option
33 # OPTIONS: all, verbose
40 # DESCRIPTION: Display this help message or specific help for each directive
46 # NAME: CHECKCIENV or CIE
47 # DESCRIPTION: Check that the common environment variables needed for Hog-CI are set
51 \^(CHECKPROJENV|CPE)?$ {#
52 set do_checkproj_env 1
53 # NAME: CHECKPROJENV or CPE
54 # DESCRIPTION: Check that the environment variables needed for Hog-CI to run the chosen project are set and point to valid paths
58 \^(CHECKPROJVER|CPV)?$ {#
59 set do_checkproj_ver 1
60 # NAME: CHECKPROJVER or CPV
61 # DESCRIPTION: Check the project version just before creating the HDL project in Create_Project stage. \
62 The CI job will SKIP the project pipeline, if it the project has not been modified with respect to the target branch.
63 # OPTIONS: ext_path.arg, simcheck, verbose
70 # DESCRIPTION: Create the project, replace it if already existing.
71 # OPTIONS: ext_path.arg, lib.arg, vivado_only, vitis_only, verbose
74 \^I(MPL(EMENT(ATION)?)?)?$ {#
75 set do_implementation 1
78 # NAME: IMPLEMENTATION or I
79 # DESCRIPTION: Runs only the implementation, the project must already exist and be synthesised.
80 # OPTIONS: check_syntax, ext_path.arg, njobs.arg, no_bitstream, no_reset, recreate, verbose
83 \^SYNT(H(ESIS(E)?)?)? {#
87 # DESCRIPTION: Run synthesis only, create the project if not existing.
88 # OPTIONS: check_syntax, ext_path.arg, njobs.arg, recreate, verbose
91 \^S(IM(ULAT(ION|E)?)?)?$ {#
94 # NAME*: SIMULATION or S
95 # DESCRIPTION: Simulate the project, creating it if not existing, unless it is a GHDL simulation.
96 # OPTIONS: check_syntax, compile_only, ext_path.arg, lib.arg, recreate, scripts_only, simset.arg, verbose
100 set do_implementation 1
104 # NAME*: WORKFLOW or W
105 # DESCRIPTION: Runs the full workflow, creates the project if not existing.
106 # OPTIONS: bitstream_only, check_syntax, ext_path.arg, impl_only, njobs.arg, no_bitstream, recreate, synth_only, verbose, vitis_only, xsa.arg
109 \^(CREATEWORKFLOW|CW)?$ {#
110 set do_implementation 1
116 # NAME: CREATEWORKFLOW or CW
117 # DESCRIPTION: Creates the project -even if existing- and launches the complete workflow.
118 # OPTIONS: check_syntax, ext_path.arg, njobs.arg, no_bitstream, synth_only, verbose, vivado_only, vitis_only, xsa.arg
121 \^(CHECKSYNTAX|CS)?$ {#proj
122 set do_check_syntax 1
123 # NAME: CHECKSYNTAX or CS
124 # DESCRIPTION: Check the syntax of the project. Only for Vivado, Quartus and Libero projects.
125 # OPTIONS: ext_path.arg, recreate, verbose
128 ^(IPB(US)?)|(X(ML)?)$ {#proj
131 # DESCRIPTION: Copy, check or create the IPbus XMLs for the project.
132 # OPTIONS: dst_dir.arg, generate, verbose
136 set do_list_file_parse 1
138 # DESCRIPTION: Print Hog list file contents in a tree-like fashon.
142 \^(CHECKYAML|YML)?$ {
145 set do_check_yaml_ref 1
146 # NAME: CHECKYML or YML
147 # DESCRIPTION: Check that the ref to Hog repository in the .gitlab-ci.yml file, matches the one in Hog submodule.
156 # DESCRIPTION: Add Hog buttons to the Vivado GUI, to check and recreate Hog list and configuration files.
160 \^(CHECKLIST|CL)?$ {#proj
161 set do_check_list_files 1
162 # NAME: CHECKLIST or CL
163 # DESCRIPTION: Check that list and configuration files on disk match what is on the project.
164 # OPTIONS: ext_path.arg, verbose
169 set argument_is_no_project 1
170 # NAME: COMPSIMLIB or COMPSIM
171 # DESCRIPTION: Compiles the simulation library for the chosen simulator with Vivado.
172 # OPTIONS: dst_dir.arg, verbose
177 # NAME: RTL or RTLANALYSIS
178 # DESCRIPTION: Elaborate the RTL analysis report for the chosen project.
179 # OPTIONS: check_syntax, recreate, verbose
184 # NAME: SIGASI or SIG
185 # DESCRIPTION: Create a .csv file to be used in Sigasi.
192 # DESCRIPTION: Print the design hierarchy for the chosen project.
193 # OPTIONS: compile_order, ext_path.arg, ignore.arg, include_gen_prods, include_ieee, light, output.arg, top.arg, verbose
198 # NAME: VHDL-LS or VHDL
199 # DESCRIPTION: Create a VHDL-LS configuration file for the chosen project.
206 # DESCRIPTION: Create a cocotb Python script to build VHDL/Verilog libraries using runner.build().
207 # OPTIONS: verbose, lib.arg
212 # NAME*: VERSION or VER
213 # DESCRIPTION: Print the version of the chosen Hog project. With -describe, prints the Hog describe string instead.
214 # OPTIONS: describe, verbose
218 if {$directive != ""} {
219 set NO_DIRECTIVE_FOUND 1