本文共 1082 字,大约阅读时间需要 3 分钟。
我们通常习惯于使用verdi等GUI界面来浏览RTL代码,好处是非常直观,操作简捷方便;但前期的准备工作也
比较繁琐,比如需要准备一个RTL文件列表include.f,然后用类似以下命令读入: verdi -2001 -f include.f我们还可以使用ctags工具,linux os一般情况下都已安装该工具。仅通过vim就可以完成项目所有rtl的
浏览,跳转等。假设我们的RTL设计仿真环境为:
proj/rtl/ : 存放了所有的RTL代码,其中包含了子目录如proj/rtl/sub1/, proj/rtl/sub2/
proj/sim/ : 仿真环境,其下包含有子目录如 proj/sim/presim/ 前仿 proj/sim/postsim/ 后仿 proj/sim/tb/ testbenches前仿阶段,我们的主要工作路径在proj/sim/presim/下。
在该路径下,若我们需要去看proj/rtl/sub1/下的一个RTL代码,可能的方式,在terminal命令行敲入以 下命令: gvim ../../rtl/sub1/a.v 若要看另一个rtl代码,则需要在命令行类似地敲入另一个命令,非常繁琐。ctags的解决方案:
步骤1 产生tags文件。
在 proj/sim/presim/路径下敲入以下命令: ctags -R ../../rtl 执行完毕,在该路径下可以看到生成了一个tags列表文件,包含了各个RTL代码文件的module名、信号 名、端口名等变量。步骤2 利用tags打开浏览RTL。
利用tags,在tags所在路径下,以下命令可以直接替代“gvim ../../rtl/sub1/a.v”命令。 gvim -t a该命令执行时,gvim自动读入tags文件,从中搜索a变量,并进而直接打开a.v 。打开后,鼠标直接跳
转到module a所在行。 类似的若我们知道一个信号名叫sys_clk, 并且该信号在a.v中是一个input端口。可以用以下命令直 接打开a.v。打开后,鼠标直接自动跳到定义sys_clk的“input sys_clk"所在行 。 gvim -t sys_clk 即-t参数所跟的变量可以是:模块名,wire,input,output,reg等。步骤3 利用tags在RTL中进行跳转
ctrl + ] :该命令跳转到鼠标所在出的变量定义的地方。(作者测试发现不支持inout端口变量) ctrl + T :回跳到跳转前的文件。ctrl + o : 跳转到前一个浏览位置。
转载地址:http://owsoi.baihongyu.com/