Emacs Verilog Perl 的使用

本文

主要介绍如何使用 Verilog-Perl 脚本对verilog代码进行神奇操作。

版本 说明
0.1 初版发布

背景

  • 主机: Thinkpad S2
  • 系统: Deepin GNU/Linux 15.11
  • 内核: Debian 6.3.0-18+deb9u1
  • emacs版本:Linux GNU Emacs 26.3
  • Verilog-Perl版本:Verilog-Perl-3.468

参考

安装verilog-perl

下载

安装

安装过程中,发现有依赖错误,先下载依赖文件(我也并不知道这些依赖有何作用,无非就是报出了依赖错误,乖乖安装罢了):

1
2
3
4
sudo apt install flex
sudo apt install bison
sudo apt install g++
sudo apt install gcc

接下来进行安装(详情可查看安装包中RENAME):

1
2
3
4
perl Makefile.PL
make
make test
sudo make install

vrename的使用

使用场景

vrename的使用主要有两个场景:

  • 一是同一文件,修改某信号名称,不用一一修改,通过vrename即可完成全部信号名的修改(好像查找替换也行,不过修改信号名较多时,vrename还是方便一些)
  • 二是交互文件,子模块与顶层模块间的实例化,此时修改信号就需要在不同的文件里修改或查找替换,当需要修改的信号较多时,就会繁杂且易出错,此时vrename将信号统一到一个文件里,修改此文件后使用vrename –change即可完成修改,方便快捷。

使用方法

vrename可以比较方便的从多个文件中为信号和模块重命名。操作过程分为两步:

  • 读取文件,你将会得到 signals.vrename 文件,其中包含了所有信号的列表。
1
vrename --list file1.v file2.v file3.v ...
  • 可以编辑此文件,修改信号名,然后在运行第如下命令,就可以把新的信号名应用到源文件上了。
1
vrename --change file1.v file2.v file3.v ...

展示 signals.vrename 文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Generated by vrename on Fri Jan  3 16:56:31 2020
#
# Files read for this analysis:
vfile	"testbench.v"
vfile	"dut.v"
#
#	Original Signal Name		Name to change to
#	--------------------		-----------------
#
sigren	"clk"				"clk"
sigren	"din0"				"din0"
sigren	"din1"				"din1"
sigren	"din2"				"din2"
sigren	"dout"				"dout"
sigren	"dout_a"			"dout_a"
sigren	"dout_b"			"dout_b"
sigren	"dout_c"			"dout_c"
sigren	"dout_x"			"dout_x"
sigren	"dout_y"			"dout_y"
sigren	"dout_z"			"dout_z"
sigren	"dut"				"dut"
sigren	"i_dut"				"i_dut"
sigren	"rst_n"				"rst_n"
sigren	"sig1"				"sig1"
sigren	"testbench"			"testbench"
#
# Use M-x compile in emacs to automatically perform the changes:
## Local Variables: ***
## compile-command: "./vrename -change testbench.v dut.v " ***
## End: ***

多目录问题的解决

如果文件分布到不同目录里,可以创建新的工作目录,并将源文件复制软链接至工作目录,此时就可以操作了。不过,vrename并不建议一次打开太多文件,以免信号过多。

vhire的使用

待补充,如有使用者,欢迎传授使用技巧。

vpassert的使用

待补充,如有使用者,欢迎传授使用技巧。

vsplitmodule的使用

待补充,如有使用者,欢迎传授使用技巧。

vppreproc的使用

待补充,如有使用者,欢迎传授使用技巧。


文章原创,可能存在部分错误,欢迎指正,联系邮箱 cao_arvin@163.com。