HGSEMI华冠半导体HGSEMI原厂代理-FPGA的人可能都遇到过这样的问题
你的位置:HGSEMI华冠半导体HGSEMI原厂代理 > 芯片资讯 > FPGA的人可能都遇到过这样的问题
FPGA的人可能都遇到过这样的问题
发布日期:2024-02-06 08:45     点击次数:131

FPGA的人可能遇到过这样的问题:以前发布的版本代码找不到;忘记以前发布的版本解决了什么问题或升级了什么功能;版本不能返回到最后一个没有问题的版本等等。这些问题实际上是版本管理的问题。什么是版本管理,如何管理将相对简单和高效?本文对您自己的经验做了一个简单的记录,

现在假设有一个5-10人的FPGA开发团队。目前,有2-3个项目同时开发。每个项目都有一个负责人,也就是说,总共有三个项目负责人。有些人同时参与2 个项目。——–具体要求󈟜—–第一,要实现版本管理,首先要有版本管理工具。许多小公司不使用版本管理工具,通常由execl记录,如果团队只有1-2人,但在上述团队中,显然是不可行的。因此版本管理的首要条件是有管理工具,可以是SVN,也可以是git,也可以是其它工具。第二,发布的版本应该与版本库中的代码一一对应。上面提到的问题是,之前发布的版本代码找不到,因为没有一一对应。过了很长一段时间,我不记得发布的版本的源代码是哪个版本。这里介绍一个简单的方法。FPGA的开发通常为用户提供一些寄存器,我们充分利用这一特性来管理版本。我们提供两个寄存器,一个是编译时间寄存器,另一个是版本号寄存器。版本号是什么?对于git来说,每次上传更新,系统都会提供hash校准值,这是由 40 十六进制字符(0-9) 和 a-f)组成的字符串大概是这样的:24b9da65525252987a493b52f866cd6d3b00373git 保存在数据库中的信息是基于文件内容的哈希值。因此,每次提交的hash值都是不同的。在获得某个版本的代码时,可以通过这个hash值获得(不需要完整的40位,根据作者的经验,最后8位可以)。后8位:d3b00373,作为这个版本的版本号,写入寄存器(RTL代码)。之后,d3b00373可以通过读取版本号寄存器获得,然后根据d3b00373在git上获得当时的版本(源代码),可以很好地解决版本和代码一一对应的问题。当然,SVN也有类似的版本号,HGSEMI,华冠半导体,国产芯片,电子元器件采购平台这里就不详细描述了。三、做有意义的上传。有些人通常不上传代码,一次上传大量代码;有些公司需要上传次数,所以有些人节省代码,节省一定数量的错误,然后一起上传。我个人认为这不是一个特别好的方法。在项目开发的早期阶段,不需要如何上传代码,但在系统模拟阶段之后,建议蚂蚁移动上传。也就是说,每次解决一个特定的小问题后,上传一次,说明commit解决了什么问题。如果有三个bug需要解决,解决第一个bug后上传代码,解决第二个bug后再上传代码。这样做的好处是版本思路清晰,版本回归和查看版本进化也非常方便。四、对外发布的版本,必须从版本管理库中拉取源代码进行编译生产。如下图所示:

当我们从版本A修改代码获得A2时,我们通过验证解决了一个错误。此时,A2的bit文件在功能上解决了问题,但不能发布。我们必须谈论A1和A2的修改和上传版本管理库,然后将版本拉到生成bit文件的版本中。“多余”的目的是做好代码和版本寄存器的逐一对应。五、有版本管理也要做好记录。尽管上述方法解决了版本与代码一一对应的问题,但对于对外发布的版本,也要做好记录并上传版本管理工具。例如,我们已经向客户A发布了三个版本,我们都需要记录发布版本的时间寄存器,版本号寄存器的值,以便于后续查阅。还要记录每个版本的功能,解决了什么问题等等。你对FPGA项目的版本管理有什么更好的方法?欢迎留言交流。