Logic Synthesis And Verification Algorithms Gary D. Hachtel & Fabio Somenzi 第九章

本章节详细介绍了有限状态机(Finite Automata)及其与正则语言的关系,包括DFA的合成方法如子集构造法和确定映像法。此外,深入探讨了-L-自动机(-Regular Automata)及其在形式验证中的应用,特别是-L-语言的包含问题,以及如何通过构造积自动机进行验证。最后,通过实例展示了如何进行语言包含检查。
摘要由CSDN通过智能技术生成

Chapter 9 Finite Automata

9.1 Finite Automata and Regular Languages

这一小节的内容是有限状态机和正则语言。其实很多讲解编译器的书籍都有相关的论述,而且都比本书更加严谨和通俗易懂。没什么难度,我就不详细讲解了。只是列出几个关键点

  1. NFA与DFA
  2. \epsilon闭包
  3. string与tape的区别,一个有限,一个无限
  4. 正则表达式中的运算如*,|,+..都是作用于sting not tape

9.2 DFA Synthesis

主要有三步

  1. 给定一个正则表达式(a*b)*构建一个二叉解析树
  2. 深度搜索解析树, 后序访问各个节点,按照节点的操作符合并左右孩子的NFA。合并规则很简单,一看就懂。比如已知NFA a和NFA b,如何构造出NFA c = ab.
  3. 将NFA转换成DFA,两种-------子集构造法和deterministic image法

9.2.2 The Subset Construction

经典的方法,每本编译器的教材都有相关的内容。基本思路就是从NVA的起始集合S_0开始,求出S_0\epsilon闭包\epsilon(S_0),作为DFA的起始状态. 依次遍历输入集合,假设访问到输入x,求出\epsilon(S_0)中每个状态遇到x后可能到达的状态集合,求这些集合的并集S_1,继而求出S_1\epsilon闭包\epsilon(S_1). 如果 \epsilon(S_1)之前没有出现过,就把它加入DFA的状态集合,并从\epsilon(S_0)\epsilon(S_1)加一条标记为x的边。 这个过程持续下去,就得到DFA。可见DFA的一个状态对应了NFA的一个状态集。如果这个NFA状态集包含了NFA的接受状态,相应的DFA状态也标记为接收状态。

书中给出的子集构造法的伪代码是错的。从某个NFA状态集合闭包起,对每个输入x都做出一个DFA的状态。而不是像书中那样,对所有输入得到的状态集合再求并集。 可以参考编译器领域的龙书。

9.2.3 The Deterministic Image

由于子集构造法中,DFA的状态空间是NFA状态空间的幂集,在极不走运的情况下,可能面临存储空间过大的问题。本节介绍另一种NFA转DFA的方法------The deterministic image。

可见NFA \LARGE \tau的deterministic image是一个DFA \LARGE \tau'.  二者的状态集一样,但是输入集合大不相同。\LARGE \tau'的输入集是\LARGE \tau的输入集与状态集的笛卡尔积。 假设\LARGE \tau中有两个转换,s\overset{x}{\rightarrow} t_1s \overset{x}{\rightarrow} t_2,在\LARGE \tau'中转化成另外两个变换s\overset{xt_1}{\rightarrow}t1s\overset{xt_2}{\rightarrow}t_2。 显然这些变换分别符合NFA和DFA的特点。

Deterministic image方法的状态空间不变,输入空间增长了|S|倍。显然小于S的幂集的数目。

9.3 \LARGE \omega-Regular Automata

从本节开始,进入本章的难点。NFA和DFA通常是用来处理string的,即有限的序列。它们都需要指定一些接受或终止状态。而\LARGE \omega-自动机是处理tape,即无限的序列。其中简单的一种叫做L-automaton。

定义很复杂,但是关键点如下

没有了终止状态,但是如何判断一个tape属于该L-自动机,换句话说,如何判断一个输入tape是合法的呢。L-automaton定义了一个cycle sets-------C^A = (C_1, ... , C_k), C_i是自动机状态集合的一个子集。L-自动机判定输入合法的条件有两个,任何一个成立都行。

  • 输入会无数次经过自动机有向图的某条边,该条边被成为recur edge。
  • 输入无数次经过的哪些状态的集合S^\infty(s^x)是某个C_i的子集。由于输入是无限的tape,而L-自动机的状态是有限的,假设某个状态ss被无数次经过,说明ss必然属于某个cycle中。这就是cycle sets名字的由来。

9.4 Formal Verification with L-Automata

 9.4.1 \LARGE \omega-Regular Languages

 

 

 主要定义了两种操作lim(\mathcal{L})\mathcal{L}^\omega。需要注意\omega和*的区别,前者用于产生tape,后者用于产生string。假设X=\{a,b,c\},则X^\omega表示由a,b,c组成的所有无限长的tape的集合ÿ

### 回答1: 在数字电路逻辑合成领域,一些普遍推荐的介绍性教科书有《数字电路设计》(Digital Circuit Design)、《逻辑合成》(Logic Synthesis)和《数字电路的设计和分析》(Design and Analysis of Digital Circuits)等。相关的学术期刊有《IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》、《ACM Transactions on Design Automation of Electronic Systems》等。 ### 回答2: 逻辑综合是数字电路设计中的重要领域,有许多教材和相关学术期刊可以使用。 在教材方面,一本常用的入门教材是《数字逻辑与计算机设计》(作者:M.M.马诺亚尔夫斯基)。该教材系统地介绍了数字电路设计与逻辑综合的基本概念、方法和技术。另外,John P. Uyemura的《数字逻辑集成电路设计与优化》也是一本广泛使用的教材,涵盖了数字电路设计和逻辑综合的各个方面。 在学术期刊方面,逻辑综合领域有许多重要的学术期刊,其中一些被广泛引用和研究。例如,IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (TCAD) 是一个知名的期刊,它发表了许多与逻辑综合相关的高水平研究论文。此外,IEEE Transactions on Very Large Scale Integration (VLSI) Systems、Journal of Electronic Testing: Theory and Applications (JETTA) 等期刊也经常刊登关于逻辑综合的研究成果。 除了上述教材和学术期刊,逻辑综合领域还有其他一些影响力较大的资料和资源,如国际会议的论文集(如International Conference on Computer-Aided Design)以及一些专业组织的出版物或在线资源(如IEEE和ACM)。这些资源为学者和研究人员提供了更多的信息和研究成果,以促进逻辑综合领域的发展。 ### 回答3: 数字电路逻辑综合领域有很多介绍性教材和相关学术期刊。以下是一些常用的教材和期刊: 教材: 1. "Logic Synthesis and Verification Algorithms"由Gary Hachtel和Fabio Somenzi撰写,是逻辑综合算法领域的入门教材。 2. "Logic Synthesis for FSM-Based Control Units"由Maya B. Gokhale和Irith Pomeranz编写,主要介绍有限状态机(FSM)控制单元的逻辑综合。 3. "Introduction to Boolean Algebra and Logic Circuits"由Giriraj Sharma撰写,能够帮助初学者了解布尔代数和逻辑电路的基础知识。 期刊: 1. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (TCAD):这是一个针对集成电路和系统设计的重要期刊,经常涉及到逻辑综合的研究。 2. IEEE Design & Test:这个期刊涵盖了硬件设计和测试方面的广泛内容,并经常刊登有关数字电路逻辑综合的文章。 3. ACM Transactions on Design Automation of Electronic Systems (TODAES):这个ACM期刊关注电子系统设计自动化,经常包含逻辑综合的研究成果。 以上是数字电路逻辑综合领域常用的教材和期刊,它们提供了理论和实践方面的资料,对于学习和研究逻辑综合非常有用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值