verilog解析工具——Pyverilog

verilog解析工具——Pyverilog最近发现一个好玩的verilog解析和生成工具Pyverilog。之所以会偶遇这个工具,是因为在做设计规则检查时,经常需要比较大的工作量。为了提

大家好,欢迎来到IT知识分享网。

最近发现一个好玩的verilog解析和生成工具Pyverilog。

之所以会偶遇这个工具,是因为在做设计规则检查时,经常需要比较大的工作量。为了提高效率也尝试过一些方法:

  1. 最开始是尝试使用脚本来通过正则匹配来实现检查。但是使用范围有限,因为有些代码使用了参数,对于这种正则匹配就行不通了。
  2. 尝试通过编译器输出转译过得代码,我再二次处理。但是没有找到编译器输出的方法。搜索的时候偶然发现了pyverilog。

pyverilog能干什么?

简单的原理可以参考作者的论文。

论文:https://link.springer.com/chapter/10.1007/978-3-319-16214-0_42

其中主要是分为3大块:代码抽象树(AST)产生、通过AST产生verilog代码、通过AST解析信号关系。

verilog解析工具——Pyverilog

主要是关注到AST代码解析,这个看起来很强大。能够以1个模块的输出引脚为起点,查找在一个模块内是受哪些信号、条件的影响。然后还能绘制一张树形图。但是这个树形图,初看比较晦涩,可能还不如自己看代码。但是可以通过pyverilog解析过的内容,来进行一些抽象判断,例如在某些信号满足某些条件下,输出引脚会被赋值某某。


这个工具生命力还比较顽强,作者一直在更新。顺带看了看相关项目,还有人用他的解析工具做了二次开发。感觉还是很有戏。


目前遇到的问题:尝试分析dataflow时,无法处理带function的verilog代码。目前我自己已经尝试修改了一下,可以正常输出解析文件,只是因为跳过了一些处理步骤避免报错,部分信息有误。还在完善中。感觉还是有挺多可玩性的。

后续,可以把设计规则用这个做一个抽象层次更高的检查工具。


关于function的处理问题,其实pyverilog工具转换成AST时,都是可以正常处理的。查看最终生成的AST是可以看到function信息。主要是我用了数据流分析功能,目前作者没有写解析function调用的处理分支,因此遇到此类型code时,就会自动报错。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/46293.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信