组织管理-养成良好的工程文件管理习惯(附Windows和Linux生成脚本)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


写在前面的话

之所以不先去讲Verilog语法和数字IC相关知识点,而把工程文件管理放到分享的开始原因有两点,第一就是语法和知识点实在太多了,一时半刻不知从何讲起;第二个就是我认为所有称为能力的东西都是可以通过学习获得的,而习惯一旦养成,后续则很难更改。所以,从一开始就养成良好的工程习惯,对后续学习和工作能有很大帮助。我见过很多人,项目做了不少,但是让他找出具体的模块文件或者说明文档却是难上加难。翻来覆去地去找,一个个点开文件夹,又去关闭,最后迫不得已从FPGA或者脚本中找原始文件路径。


一、良好的工程文件目录组织

良好的文件夹设置和管理是学习数字IC设计的基础,也是参与到重大项目中必须掌握的方法和良好习惯。工程文件目录组织并没有强制的要求,一般由项目成员或公司统一制定。这里拿本人参加的项目规定举个例子,下图中,project是顶层文件夹,也是每次开发的具体模块名称;顶层文件夹下有6个子文件夹,其中,doc为设计相关的说明文档以及debug记录文件;img为设计中的图片,如项目框图、时序图、波形截屏等;prj是项目的主工程文件,这里一般是FPGA的工程;rtl是verilog可综合代码存放目录;sim是功能仿真的工程文件夹,这里涉及到的主要是modelsim工程;testbench是测试文件存放目录。
在这里插入图片描述

二、推荐的常用工程目录组织

这里列举两种目录组织

1.FPGA工程目录

在这里插入图片描述

2.数字IC工程目录(来自书籍《Verilog编程艺术》)

在这里插入图片描述
1、src:存放设计代码。
2、sim:存放仿真用到的驱动和验证代码。
3、vrf:存放编译和运行脚本,存放test_case,和编译出来的执行文件simv。
4、fpga:存放FPGA使用的Verilog文件、约束文件、综合脚本和布线脚本。
5、impl:存放综合、STA、TMAX和Formality脚本。
6、work:综合、STA、TMAX、Formality、FPGA综合等的工作目录。
7、public:存放网表、SDF、SPEF文件和各种报告的公共目录。
8、project:存放各种文档的公共目录,此目录在windows下,因为我们习惯在windows阅读文档。


三、脚本语言-减少重复劳动

上述的文件目录,少的四五个,多的能有数十,随着学习的深入,工程文件会越积越多,要是每次都手动新建文件夹,则是浪费时间和经历,这里分享Windos和Linux中文件目录生成的脚本。

1.Windows篇

(1)这里使用vbs脚本生成文件目录,具体代码如下,复制后将后缀名修改为vbs:

// A code block
// An highlighted block
project = inputbox ("Input project name","title","project")
Set objFso = CreateObject("Scripting.FileSystemObject")
objFso.CreateFolder (project)


objFso.CreateFolder (project&"\doc")
objFso.CreateFolder (project&"\img")
objFso.CreateFolder (project&"\prj")
objFso.CreateFolder (project&"\rtl")
objFso.CreateFolder (project&"\testbench")
objFso.CreateFolder (project&"\sim")
//需要多少文件夹,就在这里添加

msgbox "OK! Have a good time!"

(2)使用方法
点开vbs脚本,输入新建的工程名,默认工程文件名为project
在这里插入图片描述
这里以新建一个CSDN工程为例,在窗口下方输入CSDN,点击确定按钮。
在这里插入图片描述
弹出以下窗口时,说明完成新建目录工作。
在这里插入图片描述

2.Linux篇

(1)具体代码如下,用gvim生成一个文件,这里以dir为例:

// A code block
mkdir A_project
mkdir A_project/rtl
mkdir A_project/testbench
mkdir A_project/doc
mkdir A_project/script

(2)使用方法,直接在命令行source刚才的文件
在这里插入图片描述
在这里插入图片描述

注意:这里需要重新修改一下顶层工程名,由于在学校主要使用FPGA,就没管这个了(其实是自己太菜,不会高级脚本,有时间再看看吧)

写在后面的话

刚开始接触博客,想到啥就写啥了,最近时间比较充裕,慢慢学一点,作为一个在线的笔记也挺好的,上述脚本会共享出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值