在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 19892|回复: 55

vim编辑verilog的妙用

[复制链接]
发表于 2009-9-19 10:44:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
先做一个演示:

在linux(windows下没试过,因为键的映射不同,可能不对)下用vim打开解压后的附件。
把光标移到第一行的任何位置,在normal模式下敲入   
"ayy          把第一行的内容读入register a
移动光标到adder那一行,在normal模式下敲入
50@a       把register a的内容重复执行50次
有兴趣了吗?


if (no),  goto:   dzh.mop.com

else
在编写verilog程序时,有大量相似的模块,比如:
adder adder0
(   
    .rst(rst),
    .clk(clk),
     
    .a(a0),
    .b(b0),

    .sum(sum0)
);

adder adder1
(   
    .rst(rst),
    .clk(clk),
     
    .a(a1),
    .b(b1),

    .sum(sum1)
);

。。。

假如相似的模块有50个该怎么办?500个呢?(哭去吧:)

通常的办法是先写好adder0,然后复制/粘贴/修改,重复49次。这是一个冗长、无趣且易出错的过程。
如果你用的是vim,那么通过录制一个简单的宏可以让你的生活变的轻松惬意、充满趣味和成就感,甚至当你在同事前炫耀时还能小小的虚荣一把! :-P

简单的说,宏是一串命令的集合,类似批处理的概念。

该宏如下
qa^<ctrl-v>jjjjjjjjjjyjjjjjjjjjjjp/adder\d<ctrl-a>/a\d<ctrl-a>/b\d<ctrl-a>/sum\d<ctrl-a>kkkkkkkkkq
前提是先把光标移到adder0的那一行,进入normal模式,就是按几下Esc键。
看上去很复杂,是吧?

下面逐项解释:
q                  宏开始
a                  宏名
<ctrl-v>       进入块操作模式
jjjjjjjjjj          向下移动到模块结束
y                  复制
jjjjjjjjjjj        向下移动到空白行
p                 粘贴
/adder\d      查找后面带数字的adder,会停在adder0这个word上
<ctrl-a>     就是ctrl和a同时按。这个比较奇妙,它会把adder0变成adder1,具体的说就是+1,3<ctrl-a>就是+3。seemslike magic?<ctrl-x>就是-1。有一点不爽的是在win下不能这样,因为<ctrl-a>被映射为全选了,网上有处理这个的方法,基本上就是不加载win的键盘映射。Google一下就可以了。
/a\d
<ctrl-a>
/b\d
<ctrl-a>
/sum\d
<ctrl-a>
kkkkkkkk     回到adder那一行
q                  宏结束

其实操作一下就会发现就是一些简单操作的集合。然后在normal模式下敲49@a,魔术就会发生,你要的代码会自动出现在屏幕上。

这大概是最初级的用程序写程序吧(programming by programming?),不禁让人浮想联翩,假如机器真的会写程序了世界会是什么样子?我们失业了?被Matrix了?or幸福地生活下去...

Enjoy!

vimtest.zip

250 Bytes, 下载次数: 109 , 下载积分: 资产 -2 信元, 下载支出 2 信元

测试文件

发表于 2010-1-18 18:26:35 | 显示全部楼层
good job!
发表于 2010-1-19 10:15:26 | 显示全部楼层
不错啊
呵呵
发表于 2010-1-19 12:25:57 | 显示全部楼层
不错啊,很好的东西
发表于 2010-1-20 11:18:48 | 显示全部楼层
那个附件好像没用吧。这个技巧还是不错的。
发表于 2010-1-20 12:41:00 | 显示全部楼层
虽然并不怎样,还是值得表扬,编辑工具如果不熟还编什么程序,特别是在Unix下。
发表于 2010-1-20 22:36:16 | 显示全部楼层
1# heavywater
windows下也能用Vim啊?
发表于 2010-1-21 01:11:18 | 显示全部楼层
2# littletreeggg kankan
发表于 2010-3-3 13:00:15 | 显示全部楼层
猛人,佩服!
发表于 2010-3-3 13:03:32 | 显示全部楼层
windows下当然也可以用vim
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-28 23:20 , Processed in 0.034496 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表