Hog (HDL on git): a tool to manage HDL code on a git repository
Davide Cieri
Abstract
Coordinating digital design development among many international collaborators is now a very widespread problem. Guaranteeing firmware synthesis reproducibility and assuring traceability of binary files is instrumental to the success of a project.
With this in mind, we created Hog (HDL on git), a set of stand-alone TCL scripts tackling these issues with no need for any external tool or library. Hog is seamlessly integrated into the most common HDL IDEs: AMD Vivado Design Suite/ISE, Intel Quartus Prime, and Microchip Libero.
At synthesis time, Hog checks the status of your git repository, assuring absolute control of HDL source files, constraint files, and project properties. It also automatically embeds the git commit SHA and a numeric version into the binary file (automatically renamed and properly stored), hence it guarantees traceability.
Hog allows the IDE GUI to be used normally. Developers can get quickly up to speed: clone the repository, run the Hog script, and work on their IDE as they would normally do.
Hog works on Windows and Linux, and provides YAML files to set up, without any additional effort, a working Continuous Integration on GitLab or GitHub Actions.