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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: heavywater

vim编辑verilog的妙用

[复制链接]
发表于 2010-6-5 21:01:16 | 显示全部楼层
dddddddddddddddd
发表于 2010-6-5 21:02:39 | 显示全部楼层
dddddddddddddddddd
发表于 2010-6-5 21:39:04 | 显示全部楼层
楼主好棒
发表于 2010-6-5 22:19:40 | 显示全部楼层
听说过VIM,没有用过,不过确实听说可以省很多事!包括数据类型都可以它帮你声明!
发表于 2010-6-7 13:03:24 | 显示全部楼层
这个很不错,用VI很久了,却没用到楼主这般的境界,佩服!
发表于 2012-8-28 11:53:41 | 显示全部楼层
感觉自己用vi还是菜,据说写verilog很方便,自己抽时间好好学习一下这种编辑环境
发表于 2012-8-28 15:29:30 | 显示全部楼层
<ctrl-a><ctrl-x>, 学习了,NB啊!感谢!
发表于 2012-8-28 15:40:00 | 显示全部楼层
我也分享vim一个功能: 编辑时使用 vim 脚本

比如要打印
assign a[0] = 32'h0;
assign a[1] = 32'h1;
...
assign a[32] = 32'h20;

在 Normal 模式下依次输入

:let i = 0
:while i < 32
:  let a = printf("assign a[%d] = 32'h%X;\n", i, i)
:  put = a
:  let i = i + 1
:  endwhile
发表于 2012-8-28 15:50:44 | 显示全部楼层
回复 1# heavywater


    不过呢,你这种情况更适合用 instance array 或者 generate

parameter NUM = 100;
parameter AW = 8;
parameter BW = 8;
parameter SW = 8;
wire [AW*100 - 1:0] a;
wire [BW*100 - 1:0] b;
wire [SW*100 - 1:0] sum;

// [instance array]

adder adder[NUM-1:0]
(   
    .rst(rst),
    .clk(clk),
    .a(a),
    .b(b),
    .sum(sum)
);

// [generate]

genvar i;
generate
for (i = 0; i < NUM; i++) begin: gen_adder
adder adder
(   
    .rst(rst),
    .clk(clk),
    .a(a[i*AW +: AW]),
    .b(b[i*BW +: BW]),
    .sum(sum[i*SW +: SW])
);
end
endgenerate
发表于 2012-8-28 17:22:51 | 显示全部楼层
重复的语句用generate 语句,代码阅读起来简洁
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-3-29 00:09 , Processed in 0.025902 second(s), 5 queries , Gzip On, Redis On.

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