Design Compiler:语法检查工具dcprocheck
相关阅读
Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm=1001.2014.3001.5482
dcprocheck是一个在Design Compiler存在于安装目录下的程序(其实它是一个指向snps_shell的符号链接,但snps_shell可以根据启动命令名判断执行哪部分程序),用于检查Tcl脚本是否符合语法规范。
dcprocheck程序使用起来十分方便,直接将需要检查的Tcl脚本作为参数传入即可,如下所示。
shell> dcprocheck test.tcl
以图1所示的Tcl脚本为例,其中存在几个问题,读者可以先自己找找。
// test.tcl
create_clock -period 10 [get_ports clk
set_input_delay 0.5 [get_port data_in] -clocks clk
下面为使用dcprocheck程序进行语法检查的结果。
Synopsys Tcl Syntax Checker - Version 1.0
Loading snpsTcl.pcx...
Loading syn.pcx...
scanning: /home/zhangchen/DCNXT_2021.06/lab1/scripts/test.tcl
checking: /home/zhangchen/DCNXT_2021.06/lab1/scripts/test.tcl
test.tcl:1 (parse) parse error: missing close-bracket
create_clock -period 10 [get_ports clk
^
test.tcl:2 (warnUndefProc) undefined procedure: get_port
get_port data_in
^
test.tcl:2 (SnpsE-UnkOpt) Unknown option 'set_input_delay -clocks'
set_input_delay 0.5 [get_port data_in] -clocks clk
^
test.tcl:2 (SnpsE-ExtraPos) Extra positional or unknown option 'set_input_delay clk'
set_input_delay 0.5 [get_port data_in] -clocks clk
上面的问题中需要注意的是,即使get_port命令在某些EDA工具中(比如Design Compiler)是允许的,但这只是因为默认配置文件(比如.synopsys_dc.setup)中将get_port设置为get_ports命令的别名了,而不是真的存在一个get_port命令,有关默认配置文件的更详细介绍,参考下面的博客。
Design Compiler:默认配置文件https://chenzhang.blog.csdn.net/article/details/144016186
下表列出了一些dcprocheck程序常用的参数,注意这些选项需要放在待检查的脚本参数前。
选项 | 功能 |
-quiet | 显示最少的警告和错误信息 |
-verbose | 显示检查总结,包括有多少警告和错误 |
-suppress message | 阻止特定警告或错误的检查和显示 |
-W1 | 只检查和显示错误信息 |
-W2 | 只检查和显示用法警告和错误信息 |
-W3/-Wall | 检查和显示所有警告和错误信息 |