当前位置: X-MOL 学术J. Instrum. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Hog (HDL on git): a collaborative management tool to handle git-based HDL repository
Journal of Instrumentation ( IF 1.3 ) Pub Date : 2021-04-29 , DOI: 10.1088/1748-0221/16/04/t04006
N.V. Biesuz 1 , A. Camplani 2 , D. Cieri 3 , N. Giangiacomi 4 , F. Gonnella 5 , A. Peck 6
Affiliation  

In this paper, we present Hog (HDL on git), a set of Tcl scripts and a suitable methodology to allow a fruitful use of git as a HDL repository and guarantee synthesis and placing reproducibility and binary file traceability. Tcl scripts, able to recreate the HDL projects are committed to the repository. This ensures that all the modifications done to the project are correctly propagated, allowing reproducibility. To make the system more user friendly, all the source files used in each project are listed in dedicated text files that are read out by the project Tcl file and imported into the project. Hog supports Xilinx Vivado, ISE (PlanAhead) and Intel Quartus. To guarantee binary file traceability, Hog links it permanently to a specific git commit by embedding the git-commit hash (SHA) into the binary file via HDL generics stored into firmware registers. This is done by means of a pre-synthesis script, which interacts with the git repository. The project creation and the pre/post synthesis Tcl scripts make use of the Hog utility library, that includes functions to handle git, parse tags, read list files, etc. Gitlab Continuous Integration (CI) is automatically configured by Hog to simulate, synthesise, and build the design. Hog-CI generates binary files and checks for timing violations. This permits validating new modifications before accepting them, by exploiting the Gitlab Merge Request (MR) system. This is meant to avoid the pollution of the official branch, undermining the starting point for other developers. Hog-CI runs on shared and private (where the needed IDE must be installed) Gitlab runners. It can parse MR parameters, allowing the specification of directives through special keywords in the MR title/description on Gitlab website.



中文翻译:

Hog (HDL on git):一个协作管理工具,用于处理基于 git 的 HDL 存储库

在本文中,我们介绍了 Hog(git 上的 HDL)、一组 Tcl 脚本和一种合适的方法,以允许将 git 作为 HDL 存储库进行富有成效的使用,并保证合成和放置再现性和二进制文件的可追溯性。能够重新创建 HDL 项目的 Tcl 脚本被提交到存储库。这可确保对项目所做的所有修改都正确传播,从而实现可重复性。为了使系统更加用户友好,每个项目中使用的所有源文件都列在专用文本文件中,由项目 Tcl 文件读出并导入到项目中。Hog 支持 Xilinx Vivado、ISE (PlanAhead) 和 Intel Quartus。为了保证二进制文件的可追溯性,Hog 通过存储在固件寄存器中的 HDL 泛型将 git-commit 哈希 (SHA) 嵌入到二进制文件中,将其永久链接到特定的 git 提交。这是通过与 git 存储库交互的预综合脚本完成的。项目创建和综合前/后综合 Tcl 脚本使用 Hog 实用程序库,其中包括处理 git、解析标签、读取列表文件等功能。Gitlab 持续集成 (CI) 由 Hog 自动配置以模拟、综合,并构建设计。Hog-CI 生成二进制文件并检查时序违规。这允许通过利用 Gitlab 合并请求 (MR) 系统在接受新修改之前验证它们。这是为了避免官方分支的污染,破坏其他开发者的起点。Hog-CI 在共享和私有(必须安装所需的 IDE)Gitlab 运行器上运行。它可以解析 MR 参数,允许通过 Gitlab 网站上 MR 标题/描述中的特殊关键字来指定指令。

更新日期:2021-04-29
down
wechat
bug