BDD实现分析及其流化扩展

来源 :中山大学 | 被引量 : 0次 | 上传用户:fengraul
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
自从1986年R.E.Bryany等人提出了二叉决策图(Binary Decision Diagrams)的概念以来,由于其空间和时间上表示和处理布尔函数的高效性,BDD被广泛应用于大型数字系统设计中的逻辑功能验证、综合以及模型检测等方面且日益受到重视。然而,传统的BDD运算的实现主要基于哈希表技术,所以在处理大规模BDD运算时经常会遇到内存溢出问题。为了解决该问题有人提出如高效利用内存、基于广度优先实现BDD运算等方法,但由于BDD规模过大或BDD有些层节点过多,内存溢出问题还是会出现。Shin-ichi Minato等人提出了基于流的BDD运算模型,可以从根本上解决这个问题。其主要思想是把BDD转化为流,以流的形式作为运算输入,内存只用作运算缓存而不用存储整个BDD。v本文首先讨论了一个经典BDD包(BuDDy)的具体实现,该包基于哈希表技术采用深度优先算法实现简约有序二叉决策图(ROBDD)的运算。哈希表技术用于保证ROBDD的正则性。通过把哈希表和BDD节点存储表整合到同一个大的数组,提高了内存的利用率。运算过程中用动态规划避免了重复BDD节点间运算,且可以比较低耗的完成自动垃圾回收。由于这些技术的应用,BuDDy在进行BDD运算时比其它BDD实现包的效率高,但由于其基于哈希表技术所以会遇到内存溢出问题。为此,本文在BuDDy的基础上实现基于流的BDD运算,将其作为一个新的运算功能扩展到BuDDy包中。在本文的最后部分给出一个用扩展后的BuDDy包解决大规模BDD运算的实例,分析了流运算模型解决内存溢出问题的正确性和可行性。
其他文献
近年来,随着移动智能设备的迅猛发展,越来越多的移动应用比如基于位置信息的社交网络应用,开始广泛存在于日常生活中。这些资源需求巨大的移动应用给资源不足和电池容量有限的移
现代浏览器记录了用户浏览访问Web的历史。这些记录通常被用来帮助用户进行“重访问”a。同时,这些记录蕴含了丰富的用户特征和偏好,因此还可以用来帮助用户在Web上进行协同工
随着信息时代的来临,社会对软件的需求迅速增长,各种类型的、复杂多变的软件与日俱增,而这些软件大部分是用高级语言编写的,但绝大部分软件产品只提供可执行的程序,即通常意
集中抄表系统是一个集现代化管理、计算机应用、现代通讯技术、自动控制、信息等多学科技术于一体,实现电力营销监控、电力营销管理、营业抄收、数据采集和网络连接等多种功
随着网络上视频数量的增长,网络视频中往往存在着大量重复的(duplicate)或近似重复的(near-duplicate)视频。这些大量的重复视频不仅浪费了存储空间,也给视频的有效管理带来不
手机自发明以来,行业的快速发展已经使得手机已经超出了传统通讯工具的限制,如现在可以用手机浏览网页,收发邮件,GPS等。手机软件的发展使得测试变的越来越棘手,这就成为了一个值
XML作为一种数据描述语言,由于其内容与形式分离、易扩展、和易移植的特点,已经成为广泛应用的数据交换标准。基于XML的数据查询十分频繁,如何提高XML数据查询效率也一直是领域
随着智能手机的不断普及和移动互联网的迅猛发展,以NFC为技术基础的线下移动支付技术体系也逐渐地建立起来。而apple pay在我国的不断推广使得越来越多的智能手机开始支持NFC
近几年,移动支付已经成为非常热门的研究方向,移动支付市场每年都在以非常快的速度增长。广阔的市场前景吸引了许多公司和开发人员加入到移动支付行业中。移动设备中以安全单
模型驱动架构(MDA)是基于一系列工业标准的软件开发框架,模型驱动整个软件开发过程,使用支持工具可以实现模型之间、模型与代码之间的自动转换。它的核心思想是建立能够完整