工作中难免会遇到多次instance某个module,然后某个module的同时又含有多个端口的时候,如下dut,有4个input req_x(x=0-3)
///rtl
module dut();
input req_0;
input req_1;
input req_2;
input req_3;
....
endmodule
//tb top
dut dut_0(
.req_0(my_req_0),
.req_1(my_req_1),
.req_2(my_req_2),
.req_3(my_req_3),
xxx
);
现在我们需要instance 4份dut(dut_0-3),那么端口上对接的信号就会有16个req_x,req_0-3对应dut0 .req_4-7对应dut_1,以此类推,在手动连完dut_0之后,怎么快捷完成其他几个的连接呢,这里介绍宏录制的方法:(以dut_1连接为例)
1. 第一步当然是整个copy dut_0的连接
2. 关键就是第二步把my_req_0-3改成my_req_4-7,替换步骤如下:
a. normal mode下按q进入宏录制
b.按下x,x是宏的名字,可以是其他字母
c.光标定位到my_req_0中的数字0上面,依次按下4和Ctrl+a(功能是执行+4,0变成4)
d.移动光标到下一行的my_req_1中的数组1上面,然后按下q,结束宏录制
e.光标在d中的位置上时,依次按下4和@x(功能是执行4次宏)
这样就完成了,还是比较简单和好用