abc对输入mv文件的解决方案论文

abc对输入mv文件的解决方案论文

ID:25102221

大小:67.50 KB

页数:9页

时间:2018-11-18

abc对输入mv文件的解决方案论文_第1页
abc对输入mv文件的解决方案论文_第2页
abc对输入mv文件的解决方案论文_第3页
abc对输入mv文件的解决方案论文_第4页
abc对输入mv文件的解决方案论文_第5页
资源描述:

《abc对输入mv文件的解决方案论文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、ABC对输入MV文件的解决方案论文论文关键字:ABCMV文件时序综合论文摘要:ABC是一款时序逻辑电路的综合和验证的软件系统。ABC为查找表和标准块整合了基于AIGs(这个图只有与门和非门)的逻辑优化和基于技术映射的最优延迟DAG(无回路有向图)。MV是一种为描述时序层次电路系统而设计的语言,它能以层次形式来描述电路系统。ABC提供了对输入MV文件的支持,但其对MV文件的时序支持有限,本文讨论了其解决方案。1电路逻辑综合的一些常用方法1.1使用SIS优化输入.mv文件,经过mv2blif软件处理后,产生.bl

2、if文件,然后送入SIS综合软件处理,生成优化后的blif文件.freelv文件,经过mv2blif软件处理后,产生.blif文件,然后送入ABC处理,生成优化后的blif文件,如下图所示:SHAPE/*MERGEFORMAT图1.21.3对比两种方法使用SIS优化已经是比较陈旧的方法,现在更多的是使用ABC进行优化。我们知道,数据结构和算法是一个软件能否成功应用的核心,SIS在近几年一些最新的改变中没能提供一个良好的编程环境,比如对技术映射和延迟的整合。而且SIS在处理大型电路显得力不从心,效率低下。而AB

3、C使用了一种更为简单的数据结构AIGs(由两输入的与门和非门组成的多层逻辑网),使得电路综合和验证的质量和运行时间方面都得到很大改进。ABC提供了时序和组合的综合算法,其现在版本在优化延迟和启发式的缩小电路面积方面已能优化包含100K门和10K时序元素的门级设计。但ABC本身就能输入.mv文件,我们能否省去Mv2blif的步骤,让ABC直接读入mv,从而也能减少错误,提高效率,因为再好的软件或多或少总会存在一些错误,少用一个软件意味着我们能减少更多的错误。所以下面就是我们想要得到的版本:SHAPE/*MERG

4、EFORMAT2研究中发现问题及其原因2.1ABC中采用的网络介绍在读入特定电路设计文件经过软件处理,就形成当前的网络。ABC通过一系列对当前网络的转换来处理这个电路设计类似于SIS。ABC中的网络有其特定类型,包括NetList,LogicNetv文件经过优化后的blif文件的输入输出的个数与原先读入mv文件的输入输出个数的不一致问题。这是因为ABC输入mv文件时,主要经过了两步处理。输入mv时,ABC把mv文件转成了NetList,这一步是完全正确的,但在NetList转成AIG时,出现了问题,ABC把l

5、atch的输入当成了主输出,把latch的输出当成了主输入,从而造成了有几个latch,就多了几个输出输入。笔者认为根本原因在于,ABC对mv文件中的时序电路支持得有限,在将时序转化为组合的过程中,也就是在NetList转成AIG时,采用了不正确的方式去除了Latch,从而造成了有几个latch,就多了几个输出输入。3问题的解决方案及生成blif3.1解决问题在尝试直接把NetList网络转成AIG网络时,来处理这个问题,都归于失败。最后不得不考虑在生成的中间网络上找解决方法。首先,ABC处理mv文件的过程如

6、下:SHAPE/*MERGEFORMAT然后,我们查看了ABC处理blif文件的过程,如下:SHAPE/*MERGEFORMAT经过讨论,我们试想能不能构造出如下的一种处理方法来解决问题:经过研究,我们发现这条路是可行的。但在解决的过程中我们发现,.mv文件生成的NetList网络与.blif文件生成的NetList网络存在不同。在前面Mv2blif软件的实现方法中寻求灵感,我们试着将这两个相同类型网络转化,最后我们成功解决了这个问题,从而实现了ABC对.mv文件能直接进行处理,并且解决了输入输出个数与原先的

7、输入输出个数的不一致的问题。最终实现了如下版本:SHAPE/*MERGEFORMAT3.2生成blif文件ABC中读入mv文件后形成AIG网络,要想输出blif文件,可进行如下操作:SHAPE/*MERGEFORMAT4算法实现及举例对网络中的功能node进行转换,以下是转换node从AIG功能到BDD功能的算法,对于网络只需要用一个遍历,把其所有node转换即可。DdNode*cuddBddAndRecur(DdManager*manager,DdNode*f,DdNode*g){DdNode*F,*fv,

8、*fnv,*G,*gv,*gnv;DdNode*one,*r,*t,*e;unsignedinttopf,topg,index;statLine(manager);//循环次数加1one=DD_ONE(manager);//返回manger-one,即常数结点1//得到结点的正则状态,如果结点取过反,则返回没有取反的状态F=Cudd_Regular(f);G=Cudd_Regular(g);if(F

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。