lint 是一个代码静态检查工具。vcs 中 -lint 可以在编译期间查找部分代码问题,辅助完成一些代码clean工作,例如长度不匹配,未初始化就使用等问题,利用它能在早期纠正代码中的问题。
通过 vcs -h 查看它的基本参数,其中all包括所有的 ID 选项检查,而 none 是排除所有的 ID 选项检查。
+lint=[no]ID|none|all,...
几种基本的使用组合:
+lint=ID1, ID2 //主动打开某些 ID 选项检查
+lint=all,noID1,noID2 //打开除了 ID1, ID2 之外所有 ID 选项检查
+lint=all //打开所有 ID 选项检查
+lint=none //关闭所有 ID 选项检查,这是默认选项
目前可用的 ID 选项检查:
Lint-[IRIMW] Illegal range in memory word
Lint-[NCEID} Non-constant expression in delay
Lint-[GCWM] Gate connection width mismatch
Lint-[CAWM] Continuous Assignment width mismatch
Lint-[IGSFPG] Illegal gate strength for pull gate
Lint-[TFIPC] Too few instance port connections
lint-[IPDP] Identifier previously declared as port
lint-[PCWM] Port connect width mismatch
其他选项:
- 可以通过 -error=all 来强制解决所有的 lint warning
- -warn=ID 可以达到和 -lint=ID 相同的效果; -supress=ID 可以达到和 -lint=noID 相同的效果
- vcs manual 文档中没有完整的 ID 列表,可以先使用 -lint=all 打开所有的检查,然后将认为不需要报警的 ID 检查屏蔽掉。