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

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

ID:24677835

大小:69.50 KB

页数:9页

时间:2018-11-11

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软件处理后,产生.blif

2、文件,然后送入SIS综合软件处理,生成优化后的blif文件,如下图所示:SHAPE*MERGEFORMAT  图1.1  1.2使用ABC优化  输入.mv文件,经过mv2blif软件处理后,产生.blif文件,然后送入ABC处理,生成优化后的blif文件,如下图所示:  SHAPE*MERGEFORMAT  图1.2  1.3对比两种方法  使用SIS优化已经是比较陈旧的方法,现在更多的是使用ABC进行优化。我们知道,数据结构和算法是一个软件能否成功应用的核心,SIS在近几年一些最新的改变中没能提供一个良好的编程环境,比如对

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

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

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

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

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

8、DdNode*F,*fv,*fnv,*G,*gv,*gnv;DdNode*one,*r,*t,*e;unsignedinttopf,topg,index;statLine(manager);//循环次数加1one=DD_ONE(manager);/

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

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

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