赞
踩
来自:http://bbs.eetop.cn/thread-335755-3-1.html
两种方法:
1、在双引号前面加个转义符 \ ,即反斜杠。如"Hello \"W \"orld",会输出 Hello "W"orld
2、用单引号引起整个字符串,如'Hello "W"orld',同样输出 Hello "W"orld
同理也可以在字符串里嵌入单引号,如"Hello 'W'orld",输出 Hello 'W'orld
依论坛朋友需求,简单讲下脚本的安装和使用方法。写得比较简陋,请大家见谅哈,后面可能会更新,如果大家不清楚,可以回贴。
安装方法:
将压缩包解压后,将其中.vim/plugin/automatic.vim 拷贝到你home目录下相同目录中(.vim/plugin/),同时也拷贝.vim/after将home目录下.vim/, after目录下是一些图标,默认是linux平台下的图标。
重新打开gvim,会发现gvim会多几个菜单,其中就有一个verilog菜单,点开后会有一系列子菜单,其中就有Autoinst
-- 约束:verilog文件名与模块名保持一致, 一个verilog文件只定义一个模块。
-- 如果大量依赖本脚本的话,建议每个.v文件用模板的方式产生(模块的添加Header可以自行修改,搜索automatic.vim文件AddHeader,请比照相同的语法格式自行根据情况修改),然后用ctags_gen *.v , *.v为所有工程用到的.v文件,生成tags文件,使用脚本时,需要该tags文件。
-- 因为脚本是使用tags文件来寻找文件,所以需要这个东西,ctags_gen是用perl写的一个简单脚本,用于寻找module name,注意只有module name后面带有autoarg,才会把它添加进来。
使用:
1. 自动模块例化功能
a) 首先需要被例化模块和调用模块的.v文件需要在同一个目录,然后在调用模块.v文件添加如下行:
a u_a (【autoinst】); // a 为模块名, 请将autoinst两边【】修改为多行注释符,论坛不允许使用那个字符
注:如果例化时必须要修改parameter,而导致模块名a与实例化名u_a(【autoinst】)不处在同一行,请在autoinst行添加辅助模块名a后再使用,使用完成后将模块名a再删除,以简化脚本的设计复杂度。
b) 鼠标点中模块实例化行(autoinst关键字所在行),然后选择菜单Verilog -> AutoInst, 即完成自动例化功能
2. 自动模块例化连线更新功能: 此功能用于提示当子模块有接口改变后,快速的知道有哪些模块被添加或者被删除
提示会用注释的方式在模块port例化行的末尾加上,修改连线代码后,请自行删除。
// INST_NEW 表示当前行,为子模块新增加的信号
// INST_DEL 表示当前行,子模块已经将此信号删除,
a) 鼠标点中模块实例化行(autoinst关键字所在行),然后选择菜单 Verilog -> AutoInstUpdate, AutoInstUpdateOrder 是将连线顺序重新排布为子模块接口定义的顺序,方便对应
3. 添加例化模块的端口方向
a) 鼠标点中模块实例化行(autoinst关键字所在行),然后选择菜单 Verilog -> AppendPortDirectionToInst
4. 自动定义wire / reg类型功能,
此功能强烈依赖用户良好的verilog编码习惯,自己尝试后请慎重选择试用。 菜单Verilog -> AutoDef, 脚本会在autodef(请用注释符包起来)位置开始自动定义数据类型,当然不能识别所有的结构,未完全定义部分(会有提示,但测试中有遇到没有完全提示的情况)请自行添加到autodef {{{ }}} 结构之外, 避免重新autodef时被脚本删除。
5. 其它功能可以尝试摸索一下,应该是挺简单的。
工具下载地址:
https://download.csdn.net/download/times_poem/10782178
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。