Glossary#

Key terms used throughout the Hog documentation.


Bitstream The binary file produced at the end of the FPGA build flow (synthesis + implementation). It is programmed onto the FPGA device to configure its logic. Hog embeds the project version and git SHA into the bitstream so that every binary file is traceable back to its exact source code.


Block Design (BD) A Vivado-specific visual design entry method where logic blocks are connected graphically. The design is stored as a .bd file, which should be committed to the repository and added to a .src list file.


Describe string A human-readable string that uniquely identifies the state of a project, combining the version tag, the number of commits since that tag, the short git SHA, and a dirty suffix if the repository had uncommitted changes at build time. Example: 1.2.3-5-gabcdef0-dirty. Retrieved with ./Hog/Do VERSION <project> -describe.


Dirty repository A repository that has uncommitted local changes. Hog detects a dirty state at synthesis time and issues a Critical Warning, setting the version to 0.0.0. This guarantees that only clean, committed states produce valid version numbers.


hog.conf The project configuration file, located at Top/<project>/hog.conf. It tells Hog which FPGA device to target, which synthesis and implementation strategies to use, how many parallel jobs to run, and optionally defines generics to pass to the top-level HDL module. A template is available at Hog/Templates/hog_vivado.conf. See hog.conf reference.


Hog buttons Custom buttons added to the Vivado GUI toolbar by Hog. They allow Vivado users to check and update Hog list files directly from within the IDE, without leaving Vivado. See Hog Buttons.


Hog submodule The Hog scripts are included in every Hog-managed repository as a git submodule at Hog/. This means Hog itself is version-controlled alongside your design. When cloning, use git clone --recursive to ensure the submodule is fetched.


Implementation The place-and-route step of the FPGA build flow, which follows synthesis. It maps the netlist produced by synthesis onto the physical resources of the target FPGA device. Run with ./Hog/Do IMPLEMENTATION <project>.


IP (Intellectual Property core) A pre-built, reusable design block provided by the IDE vendor or a third party. In Vivado, IPs are represented by .xci files. These files should be committed to the repository and listed in a .src or .ext list file.


Library In Hog, a library is a named group of HDL source files. Each .src list file defines one library: the library name is the filename without the .src extension (e.g., mylib.src defines library mylib). This library name must match the HDL library declaration in your VHDL or Verilog files, and in Vivado it corresponds to the compile library set in the Sources panel.


List file A plain-text file in Top/<project>/list/ that lists the source files belonging to a Hog project, one path per line (relative to the repository root). Hog reads these files to populate the IDE project. See List Files for full details.


Project top-directory The per-project subdirectory inside Top/, named after the project (e.g., Top/myproject/). It contains the hog.conf configuration file and the list/ subdirectory with all list files.


Reproducibility The guarantee that building the same committed state of the repository produces an identical binary. Hog enforces this by requiring all source files to be committed to git before synthesis.


Simulation set A named group of simulation source files, defined by a .sim list file. Hog creates one IDE simulation set per .sim file. Run a specific set with ./Hog/Do SIMULATION <project> -simset <name>. See Simulation.


Synthesis The first step of the FPGA build flow, which translates HDL source code into a technology-mapped netlist for the target device. Run with ./Hog/Do SYNTH <project>.


Top directory The Top/ folder at the root of the repository. It contains one subdirectory per Hog project. The name of each subdirectory becomes the project name used in all Hog/Do commands.


Top module The highest-level HDL entity or module in the design hierarchy — the one that gets synthesised and implemented. It is usually specified in hog.conf under the [main] section as top_module.


Traceability The ability to identify exactly which source code revision produced a given binary file. Hog embeds the git SHA and version into the bitstream at synthesis time, so any binary can be matched back to its exact repository state.


Version A semantic version string (e.g., 1.2.3) derived from the most recent git tag on the current branch. Hog reads this automatically at synthesis time and embeds it in the binary. Retrieve it with ./Hog/Do VERSION <project>.


Workflow The full FPGA build sequence: synthesis → implementation → bitstream generation. Run the complete workflow with ./Hog/Do WORKFLOW <project>. Individual steps can also be run separately with SYNTH, IMPLEMENTATION, and WORKFLOW -bitstream_only.