使用HDL Designer 加速设计之Design Checker
Design Checker作为HDL Designer的一个组件,主要是用来检查语法规则和代码风格,这个类似于Synopsys中的LEDA和Debussy的nlint。一般的综合和仿真软件,只会检查语法的正确性,对于代码风格则不关心,而一个好的代码风格,除了有利于团队交流与版本管理外,对于提高设计的稳定性和性能也会起到很大作用。
1,启用Design Checker
在Design pad的操作界面上,有下图所示的logo,点击后,代码将会被提交到Design Checker中。
稍等片刻后,检查结构会会出现,点击左边Expand All,展开所有检查结果,如下图
从这里可以看到有2处跟规则有“冲突”的地方(其实这里就一个问题),Data0<=Data0+1这个在语法上是没有问题的,但是一个好的代码风格,最好将其改成Data0<=Data0+1`b1。
在Design Pad的编辑输入处,也可以看到相对应得提示。
在软件的检查结构的右侧,有一个对应的summary,里面列出了代码的“质量”,所使用的“规则”,规则的数量以及出现“冲突”的规则分别属于哪个范畴等等,是对整个过程的一个总结吧。
2,规则设置
点击下面菜单的“setup”(原来检查的结果在“Result”栏),出现了如下图所示的布局分布。
左边是“基础规则”、“规则包”和“应用策略”,右边是规则的明细(PS:这个很像McAfee企业版杀毒软件的设计)。
所谓“基础规则”,就是把所有的规则进行分类列出,比如“时钟”、“复位”、“FSM”等,这样便于查找所需要的规则。而“规则包”则是把一些基础规则打包在一起,当然不是随便打包的,比如根据Altera公司对于Coding Style的检验,做出了一个Altera的规则包,对应的当然也就有Xilinx包了。除了这些,像最近流行的DO-254和RMM也在列,至于DO-254和RMM是什么,自己google去吧,凭借Mentor在EDA界的功力,这些规则包做的还是相当有水平的。“应用策略”就比较好理解了,比如我今天在做Altera的设计,当然首选Altera的规则包,但是有一些规则我不想用,那么直接在右边“规则条例”里面将复选框的勾去掉就可以了,很简单吧。
到了这里,看似比较完美了,但是在实际中还是会出现这样的情况,我现在在做Altera的设计,发现RMM或者Xilinx的规则包里面有一些规则挺好的,我想一起加进Altera的规则中,那么怎么办呢?
Design Checker允许自己新建“规则包”和“策略”,只要把自己需要的规则加进来就好了,比较简单。事实上,Design Checker分别预先内置一个供使用者自己调节的“规则包”和“策略”,名字是“Essentials”和“My_Essentials_Policy”。
添加规则就直接从自己需要的基础规则或者规则包那里拷贝,然后粘贴到自己的规则包/策略即可,想要删除,直接点击右键即可,操作比较方便。
细心的人会发现,可以自定义的规则/策略所对应的规则条例与其他的似乎有一些不一样,其他标准内置的规则/策略的“规则条例”的logo上都一个红色的“X”,而自定义的却没有。原来这红色的X是“只读”的意思,就是说不可以被修改。Mentor为了防止使用者误操作,将规则破坏掉,所以那些预先设置的各种标准规则包和基础规则都是只读的,当你把它们拷贝到你自己的规则/策略后,就可以自行修改了,包括规则的名字、警告方式等等,这个很符合那些喜欢DIY的工程师们(PS:规则条例logo上带有SV的表示此规则使用于System Verilog,Mentor这些年一直在推SV,真是煞费苦心啊)。
规则设置完了,该要保存了,如果不保存,则会出现一个黄色的感叹号,这个是在提醒你,你的规则已经发生了变化。在工具栏的最左侧,有新建规则/策略,展开/压缩规则的快捷键,可以快速定义自己想要的规则。
文章评论(0条评论)
登录后参与讨论