(电路与系统专业论文)集成电路VHDLRTL逻辑综合研究[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)集成电路VHDLRTL逻辑综合研究[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)集成电路VHDLRTL逻辑综合研究[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)集成电路VHDLRTL逻辑综合研究[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)集成电路VHDLRTL逻辑综合研究[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

街交通人学倾f j 学位论文摘要 集成电路v h d lr t l 逻辑综合研究 摘要 , - ( 综合是将硬件的一个抽象描述转化为一个基于库的门级描述。 过去的一些辅助软件,功能极其有限。随着设计规模的扩大,复杂 、 、 程度的增加,那些依靠人工进行设计和输入的方法已经不适合社会 、 发展的需要了。不但其周期长,工作量大,而且容易出错,对于一 些极其复杂和大规模的系统,手工设计已经不可想象。由此而产生 的技术就是e d a ( e l e c t r o n i cd e s i g na u t o m a t i o n ) 工具。e d a 工具 将硬件描述语言转化为优化的门级描述,而硬件描述语言提供一个 独立于库的硬件描述,该描述既可以进行模拟也可以进行综合。利 用综合技术的优点是可以很容易地用程序描述一个硬件系统,然后 利用综合工具将描述生成所需要的硬件。当然,综合也有局限性, 并不是所有的硬件语言描述都可以综合,可综合的语言描述有一定 的描述风格。库技术、约束条件、参数也都是影响综合的因素。由 于硬件描述和硬件实现之间的不完全映射,硬件描述及综合风格也 。 、 有多样性,因此,综合过程中的人工干预也是必不可少的。, v h d l 是标准的硬件描述语言。基于v h d l 的综合技术也迅速 发展起来。直接对硬件语言描述进行综合的有行为级综合和寄存器 传输级( r t l ) 综合两种。但是,语言的纯软件描述与物理硬件之 问还是有相当的距离,行为级描述太抽象,直接从行为级描述到物 理硬件实现在目前来说还不是很成熟,现有的一些行为级综合工具 海交通人学顺i + 学位论文摘监 的能力也是有很大限制。而寄存器传输级描述由用户划分时序,然 后在各个时序中描述数据流的传输。本文研究的就是v h d l 语言的 r t l 级综合。 f 本文给出一个可综合设计的流程,并根据自己的工作对其中几 个环节进行详细阐述。 第一部分分析硬件描述语言v h d l 的语言结构。v h d l 是一种 功能强大但也比较复杂的语言。该部分给出该语言有哪些主要的语 言结构,它们的抽象含义,并分析其适合进行建摸的地方。第二部 分是给出v h d l 的语法分析。语法分析是综合的第一步,如何给出 个合适的语法树以及各种符号表,将影响到语法分析的效率和可 维护性。v h d l 有一个不足,它是有歧义的语言,它的文法是二义 性的。文章给出产生二义性的地方,给出修改文法的方法。进行语 法分析中用到的一个工具是y a y ,它比常用的y a c c 工具有更强大 的功能。利用这个功能文章给出文法规则及相应的解决方法。第三 部分给出综合的方法。语法分析给出语言描述的语法树及相应的符 号表,该过程是在其基础上进行语义分析,根据不同的语义,生成 相应的门级网表。第四部分是给出v h d l 语言级的一些优化。由于 硬件描述最终生成的是物理器件,冗余的结构将会增加系统的规模, 对v h d l 语言描述的优化可以在更大范围、更高层次上进行优化。 所以在语言级上结合硬件描述语言的特点,给出一个优化的方法也 是很必要婀y j f 关键词;v h d l ,r t l 综销语法分析,优化,歧义文法 ! :塑窒里叁兰丝! :堂笪笙兰! ! ! ! 竺!一 s t u d i e so n v h d l r t ll o g i cs y n t h e s i s f o ri n t e g r a t e dc l r c u i t s a b s t r a c t s y n t h e s i si st h et r a n s l a t i o np r o c e s sf r o m a l la b s t r a c td e s c r i p t i o no fa h a r d w a r ed e v i c ei n t oa n o p t i m i z e dt e c h n o l o g ys p e c i f i cg a t e l e v e l i m p l e m e n t a t i o n t h i s c o n v e r s i o n p r o c e s sm a yb e d o n em a n u a l l yv i a s c h e m a t i ce n 仃yt o o l s h o w e v e r ,a sd e v i c e sb e c o m em o r ec o m p l e x a n d t h e i rg a t ec o u n ti n c r e a s ei tb e c o m e sv e r yi m p r a c t i c a la n de r r o rp r o n et o c o n t i n u eu s i n gs u c ham a n u a lm e t h o d a l t e r n a t i v e l ys y n t h e s i sm a yb e a c h i e v e db yu s i n ge l e c t r o n i cd e s i g na u t o m a t i o n ( e d a ) t o o l st oc o n v e r ta h a r d w a r ed e s c r i p t i o nl a n g u a g e ( h d l ) i n t oa no p t i m i z e dg a t el e v e ld e s i g n t h eh d l p r o v i d e sat e c h n o l o g yi n d e p e n d e n td e s c r i p t i o no f t h et a r g e t e d d e v i c et h a tc a nb eb o t hs i m u l a t e da n d s y n t h e s i z e d t h ep r i n c i p a l a d v a n t a g eo fs y n t h e s i si s t h a ti ti s v e r ye a s yi t d e s c r i b ead e v i c ei na s o f t w a r em e d i u ma n dt h e nt or e l yo nas y n t h e s i st o o lt og e n e r a t et h e i n t e n d e dh a r d w a r e h o w e v e r , t h eh a r d w a r ed e s i g n e rm u s tb ev e r yc a r e f u l b e c a u s et h eh d lc o d i n gs t y l eh a sag r e a td e a lo fi n f l u e n c eo f f t h e a u t o m a t e d s y n t h e s i sa l g o r i t h m s b e s i d e sc o d i n gs t y l e t h e t a r g e t t e c h n o l o g y , t h ed e s i g nc o n s t r a i n t s ,a n dt h ee n v i r o n m e n t a la t t r i b u t e s a r e a l s o i m p o r tp a r t s t h a ti n f e c tt h er e s u l to fs y n t h e s i s d u r i n gt ot h e ! :塑奎翌盔兰婴土兰垡堡壅! ! 坐! ! ! a n dt h ev a r i o u sh a r d w a r e d e s c r i p t i o n s a n d s y n t h e s i ss t y l e s ,m a n u a l i n t e r v e n u o ni sn e c e s s a r y v h d li sas t a n d a r dh a r d w a r e d e s c r i p t i o nl a n g u a g e v h d l s y n t h e s i st e c h n o l o g yh a sd e v e l o p e dr a p i d l yi nt h e s ey e a r s t h e r ea r et w o s y n t h e s i sm e t h o d si n c l u d i n g b e h a v i o rs y n t h e s i sa n dr e g i s t e rt r a n s f e rl e v e r ( r t l ) s y n t h e s i sd i r e c t b a s e do nh d l b u tt h e g a pb e t w e e ns o f t w a r e p r o g r a ma n d h a r d w a r ei m p l e m e n ti sn o tn a r r o w t h eb e h a v i o rd e s c r i p t i o n i st o oa b s t r a c ta n di ti sh a r dt ot r a n s f e rf r o mt h i s1 e v e lt oh a r d w a r ed e v i c e t h eb e h a v i o rs y n t h e s i st o o l st h a te x i ta l s oh a v el i m i t e dp o w e r i nr t l d e s c r i p t i o n ,u s e r s h a s p r o c e s s e ds e q u e n t i a ls c h e d u l i n g t h e d a t aa r e t r a n s f e r r e di nt h e s c h e d u l i n g t h ep a p e r r e s e a r c h e so nv h d lr t l s y n t h e s i s w e p r o v i d ead e s i g nf l o wu s i n gs y n t h e s i s s o m eo f t h ep r o c e s s e s a r e e x p a t i a t e di nd e t a i la c c o r d i n gt oo u rw o r k f i r s t l y , t h es t r u c t u r eo f v h d li s a n a l y s e d v h d li s ar i c hb u tab i tc o m p l e xl a n g u a g e i th a s m a n yt y p e s a n ds t r u c t u r e s w e e x p l a i n t h e i ra b s t r a c t m e a n i n g s a n d 。 a n a l y s i s t h e m o d e l i n gm e t h o d s o fv h d l s e c o n d l y , w ep r o v i d et h e p a r s i n go fv h d l p a r s i n gi st h ef i r s ts t e po fs y n t h e s i s ag o o dp a r s i n g t r e ea n d i d e n t i f yt a b l ew i l lh a v e a g r e a td e a lo f i n f u l e n c eo nt h ee f f i c i e n c y a n dm a i n t e n a n c eo f p a r s i n g v h d lh a s as h o r t c o m i n gt h a ti ti sa n a m b i g u o u sl a n g u a g ea n di t sg r a m m a r i sa m b i g u o u s p a p e ri n d i c a t e st h e s t r u c t u r e st h a tb r i n gt h ea m b i g u o u sa n dp r o v i d et h em o d i f i e dg r a m m a r ! :塑窒望盔兰堡! :兰竺笙塞垒! ! ! ! ! 竺 r u l e s t h ep a r s i n gt o o li sy a y i tc a np a r s e sl a l r ( 2 ) g r a m m a ra n di s m o r e p o w e r f u lt h a ny a c c ,w h i c h i sac o m m o n p a r s i n gt 0 0 1 t h i r d l y , w e p r o v i d e t h e s y n t h e s i sm e t h o d p a r s i n gp r o d u c e t h e p a r s i n g t r e ea n d i d e n t i f y t a b l e s s e m a n t i c a n a l y s i s i s p r o c e s s e d b a s e do n p a r s i n g a c c o r d i n g t ot h es e m a n t i c ,s y n t h e s i st o o lp r o d u c e sg a t el e v e ld e s c r i p t i o n s f o u r t h l y , s o m el a n g u a g e l e v e l o p t i m i z a t i o n m e t h o d sa r ec a r r i e do u t b e c a u s et h ep h i s i c a lt a r g e t e dd e v i c ew i l lb ec r e a t e d ,r e d u n d a n ts t a t e m e n t s w i l le n l a r g et h es y s t e ms c a l e t h el a n g u a g eo p t i m i z a t i o nw i l lb em o r e g l o b a l i ti sn e c e s s a r y t og i v es u c h o p t i m i z a t i o n m e t h o d s k e yw o r d s :v h d l ,r t ls y n t h e s i s ,o p t i m i z a t i o n ,p a r s i n g , a m b i g u o u sg r a m m a r l :海交通大学硕1 1 学位论文第一章结论 第一章绪论 随着电子技术的发展,数字系统的设计j 下朝高速、大容量、小体积、短周 期的方向发展。推动该潮流的就是日益进步和完善的a s i c 设计技术。但随着 所设计系统的规模的扩大、复杂程度的增加,手工设计已经跟不上时代的发展。 人们对数字系统的需要必然促使设计方法的改进。电子设计自动化( e d a ) 技 术的出现是数字系统发展的必然结果。 e d a 工具主要是要求用形式化的方法来描述数字系统,也就是利用硬件描 述语言描述数字系统。对硬件语言的描述我们可以进行模拟和综合。因此,对 硬件描述语言及相关的模拟、综合技术的研究也是当今e d a 领域的一个重要课 题。 e d a 的出现是随着数字系统的发展而逐步发展起来的。数字系统的复杂度 与e d a 工具的水平也是逐步提高的。初期阶段,数字系统的设计是分阶段进行 的。在不同的阶段由掌管不同专业知识的技术人员使用相应的e d a 工具进行 设计,前一阶段的输出是后一阶段的输入。不同阶段的衔接需要人工的介入。 这一时期的e d a 工具多数只能适应某一阶段的工作,并且首先由抽象级别较低 的层次开始。最近几年的趋势是从级别较高的层次( 如行为级) 开始,对电路 做功能描述,自顶向下地完成整个设计。 在美国,6 0 年代到7 0 年代出现了第一代c a d 设备。其硬件以1 6 位小型 计算机为基础,软件功能主要是交互图形编辑和设计规则检查,成为集成电路 设计和版图设计的不可缺少的工具。8 0 年代出现了第二带c a d 系统,并且使 用3 2 位工作站为工作平台,全力以赴开发软件。第二代c a d 系统的功能主要 包括:原理图输入、模拟验证、逻辑综合、芯片布图和印刷板布图等。这一时 期的c a d 系统大都提供单元库的支持。由于单元库是经过精心设计和生产检 验的,因而能保证设计质量和提高设计效率。8 0 年代末到9 0 年代初出现的e d a 工具可以看作第三代。其主要特点是:设计工作可以从高层次开始,使用标准 话的硬件描述语言( 如v h d l ) 描述电路的行为特性,自顶向下地跨越各个层 次完成整个设计。 数字系统的自动化设计是层次式是设计,一个层次的输出是下一个层次的 海交通人学坝i :学位论文第一章绪论 输入。下面是一个综合设计的流程图 图卜1 可综合设计流程 f i g 1 1 f l o wo fs y n t h e s i a b l ed e s i g n 每个层次有相应的工具。这也就是e d a 所涉及的主要领域: ( 1 ) 硬件描述语言 硬件描述语言是设计者和e d a 工具的界面,设计者通过硬件描述语言对 数字系统进行描述,e d a 工具根据硬件语言描述进行各种操作。硬件描述语言 是人们对数字系统抽象化、模型化和形式化的产物,用以描述设计者最关心的 最本质的特征。在不同的阶段,设计者关心的对象是不同的。 硬件描述语言可以对系统在不同的层次上进行描述,对于v h d l 语言来 说,一般可以分为行为描述,数据流描述,结构描述三种描述方式。其中,行 为描述描述的是所设计系统的功能,主要使用函数、过程和进程语句,以算法 形式描述数据的变换和传输。数据流方式,也称为寄存器传输级,主要使用并 行的信号赋值语句,既显式地表示了设计单元的行为,也隐式地表示了该设计 单元的结构。结构描述描述设计单元的结构,主要使用配髯语句和元件例化语 器寓 ! :查銮塑盔堂堡! 兰篁堡壅笙二童堑堡一! 句捌i 述元什的类型和互连信息。 ( 2 1 模拟验证 所谓模拟验证就是对模型施加外部激励信号,通过观察其输出来判断该数 字系统是否复合要求。模拟技术式当前数字系统验证的主要手段,但也有其局 限的地方:模拟器的功能只能表示在那些施加激励信号情况下系统是符合要求 的,但加什么样的信号以及在其他信号下是否f 确则由设计者决定。 ( 3 1 综合技术 综合是将硬件描述语言的描述转换为门级描述的过程。本文将对此进行详 细讨论。 ( 4 ) 测试诊断 随着v l s i 工艺的进步,芯片内部元件的密度剧增,以致几乎没有空隙允 许探针插入。因此,外部激励信号只能从引脚引入,观察点只能从输出引脚引 出,这就增加了测试的难度,需要设法在外部激励信号的作用下,把故障驱赶 到输出端,以便能在输出引脚上观察到故障的存在。但并不是所有的故障都可 以用这种方法在输出端表现出来。用于故障测试和诊断的e d a 工具的主要任务 是;对于一个给定的数字系统,能自动生成一个最小的测试集,利用该集能最 大限度地检测出该系统内的故障并指出故障的位置或区域。 ( 5 ) 逻辑设计形式验证 由于层次化设计一般采用自顶向下的设计方法。在较高层次的设计完成之 后,都要经过检验,待证明正确之后才进入较低层次的设计,如用模拟进行验 证。但模拟技术存在缺陷,不能快速、完全地进行验证。形式验证不进行动作 模拟,而是用形式验证的方法验证逻辑设计的正确性。目前还处在发展阶段。 本文是对v h d lr t l 综合问题进行研究。对于在综合中遇到的一些问题进 行阐述。主要涉及的问题有: ( 1 )分析硬件描述语言v h d l 的语言结构。v h d l 是一种功能强大但 也比较复杂的语言。该部分给出该语言有哪些主要的语言结构,它们 的抽象含义,并分析其适合进行建摸的地方。 ( 2 )给出v h d l 的语法分析语法分析是综合的第一步如何给出一个 合适的语法树以及各种符号表,将影响到语法分析的效率和可维护性。 海交通犬学顺j :学位论文第一市绪论 4 v h d l 有一个不足,它是有歧义的语言,它的文法是二义性的。文章 给出产生二义性的地方,给出修改文法的方法。进行语法分析中用到 的一个工具是y a y ,它比常用的y a c c 工具有更强大的功能。利用这 个功能文章给出文法规则及相应的解决方法。 ( 3 )给出综合的方法。语法分析给出语言描述的语法树及相应的符号 表,该过程是在其基础上进行语义分析,根据不同的语义,生成相应 的门级网表。 ( 4 ) 给出v h d l 语言级的一些优化方法。由于硬件描述最终生成的是物 理器件,冗余的结构将会增加系统的规模,对v h d l 语言描述的优化 可以在更大范围、更高层次上进行优化。所以在语言级上结合硬件描 述语言的特点,给出一个优化的方法也是很必要的。 ! 塑奎婆叁兰堡! :兰垡堡苎笙三皇j 尘旦l 塑量型堂l 一一5 第二章v h d l 语言结构 2 1v h d l 语言特点 v h d l 主要用于描述数字系统的结构、行为、功能和接1 2 1 。除了含有许多 具有硬件特征的语句外,v h d l 的语言形式和描述风格与句法都十分类似与一 般的计算机高级语言。v h d l 的程序结构特点是将一项工程设计或者设计实体 ( 可以都是一个元件、一个电路模块或一个系统) 分成外部( 或称可视部分, 即端1 2 1 ) 和内部( 或称不可见部分) ,即设计实体的内部功能和算法完成部分。 在对一个设计实体定义了外部界面之后,一旦其内部开发完成后,其他的设计 就可以直接调用这个实体。这种将设计实体分为内外部分的概念是v h d l 系统 设计的基本点。应用v h d l 进行工程设计的优点是多方面的,主要有: 1 与其他硬件描述语言相比,v h d l 具有更强大的行为描述能力,从而决 定了它成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是逼 开具体的期间结构,从逻辑行为上描述和设计大规模电子系统的重要保 证。就目前流行的e d a 工具和v h d l 综合器而言,将基于抽象的行为描 述风格的v h d l 程序综合为具体的f p g a 和c p l d 等目标器件的网表文件 已不成问题,只是综合与优化效率上略有差异。 2 v h d l 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能检 查设计系统的功能可行性,随时可对设计进行仿真模拟,即在远离门级的 高层次上进行模拟,使设计者对整个工程设计的结构和功能的可行性进行 决策。 3 v h d l 语句的行为描述能力和程序结构决定了它具有支持大规模的分解 和已有设计的再利用功能,符合市场需求的大规模系统高效、高速地完成 必须要由多人甚至多个开发组共同进行的工作才能实现的工作。v h d l 中 设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作 提供了有力的支持。 4 对于用v h d l 完成的一个确定的设计,可以利用e d a 工具进行立即综 合和优化,并自动地把v h d l 描述设计转变为门级网表。这种方式突破了 门级设计的瓶颈。极大地减少了电路设计的时间和可能发生的错误,降低 海交通人学颂i 学位论文 第一章v h d l 语占结构 了丌发成本。应用e d a 工具的逻辑优化功能,可以自动地把一个综合后 的设计变成一个更小、更高速的电路系统。反过来,设计者也可以容易地 从综合和优化后的电路获得设计信息,修改相应的v h d l 描述,使电路符 合设计者的要求。 5 由于v h d l 具有类属描述语句和予程序调刚等功能。对于已经完成的 设计,在不改变源程序的情况下,只需改变类属参量或函数,就能方便地 改变设计的规模和结构。 2 2 v h d l 和v e r i l o g 的比较 一般的硬件描述语言可以在三个层次上进行电路描述,其层次有高到低 依次可分行为级、r t l 级和门电路级。v h d l 语言通常更适于行为级和r t l 级的描述,v e r i l o g 通常只适于r t l 级和门电路级的描述。任何一种语言源程 序,最终都要转换成门电路级才能被布线器或适配器所接受。因此,v h d l 语言源程序的综合通常要经过行为级、r t l 级和门电路级的转化,而v e r i l o g 语言的源程序的综合过程就要简单一些,即经过r t l 级到门电路级的转化。 与v e r i l o g 相比,v h d l 语言是一种高级描述语言,适于电路高级建摸。随着 v h d l 综合器的进步,综合的效率和效果将越来月好。v e r i l o g 语言则是一种 较低级的描述语言,最适于描述门级电路,易于控制电路资源。显然,v h d l 和v e r i l o g 主要的区别在于逻辑表达的描述级别。v h d l 虽然也可以直接描述 门电路,但这方面的描述能力却不如v e r i l o g 语言;但v e r i l o g 语言在高级描 述方面不如v h d l 。v e r i l o g 语言的描述风格接近于电路原理图,从某种意义 上说,它是电路原理图的高级文本表示方式。v h d l 语言最适于描述电路的 行为,级描述电路的功能,然后由综合器根据功能要求来生成符合要求的电 路网络,v h d l 几乎不能直接控制门电路的生成。 2 3 v h d l 语言结构 一个完整的设计实体通常包括实体( e n t i t y ) 、构造体( a r c h i t e c t u r e ) 、配置 ( c o n f i g u r a t i o n ) 、包集合( p a c k a g e ) s 1 1 库( l i b r a r y ) 5 个部分。实体是用于描述所设 计的系统的外部接口信号:构造体用于描述系统内部的结构和行为;包集合存 放个设计模块共享的数据类型、常数、子程序等:配置用于从库中选取单元来 f 二海交通人学预l + 学位论文第二章v h d l 语占结构 7 组成系统设计的不同版本;库存放已经编译的实体、构造体、包集合和配置。 对于一种硬件描述语言来说,它的结构跟硬件结构或系统模型或设计思想有很 深的关系,理解语言结构与硬件结构的关系是重要的一步。下面对于v h d l 中 重要的几个体现v h d l 语言思想的结构进行一些介绍。 ( 1 ) 实体( e n t i t y ) , 实体是描述系统与外界的接口二实体定义了端1 :3 ( p o n s ) 和参数( g e n e t i c s ) , 对参数的静态检查( 如值的范围检查) 和对端口的动态检查。就一个设计实体 而言,外界所能看到的是它的界面上的接口。实体可以有一个或多个结构体, 用于描述此实体的逻辑结构或逻辑功能。实体类似于实际硬件系统的一个部件 符号,它可以对应一个门电路、一个芯片、一块电路板甚至整个系统。实体是 一个完成某一定功能的单元。实体可以有不同层次,实体可以由更小的实体组 成。 实体的语句结构中有一个是类属说明语句。它为实体提供时间参数、总线 宽度等静态信息。类属与常数不同,常数只能在实体内部得到赋值,外界是不 能给予影响的,而类属的值可以由设计实体外部提供,实际者可以方便得通过 类属语句改变实体的涡性,使实体有更好的通用性。 ( 2 ) 结构体( a r c h i t e c t u r e l 结构体描述的是实体的实现。它描述实体的行为或结构或者两者的混合。 每个实体可以有多个结构体,每个结构体对应实体的不同实现方式。对于具有 多个结构体的实体,必须用配置语句( c o n f i g u r a t i o n ) 进行配置。即在综合后的 可映射于硬件电路的设计实体中,一个实体只对应一个结构体。 ( 3 ) 块语句结构( b l o c k ) 块语句结构实际上是对于结构体的划分。它是将结构体的并行描述语句进 行组合的方法,它的主要目的是改善并行语句及其结构的可读性。这种机制可 以使设计者合理地将一个模块划分为几个块,每个块完成一定的功能。任何在 结构体的说明部分进行说明的对象都可以在b l o c k 说明部分中进行说明。由于 b l o c k 语句对结构体的划分只是形式上的不是进行功能上的划分,所以使用b l o c k 结构不会影响原结构体的模拟结果。 ( 4 ) 进程( p l - o c e s s ) i :海交通人学坝l 学位论文第一二章v h d l 语苦结构旦 进程是最具v h d l 语占特色的语句。p r o c e s s 语句结构包含了一个代表这设 计实体中部分逻辑行为的、独立的顺序语句描述的进程。进程语句结构本身是 作为并行语句,但进程语句结构单而的语句是按顺序执行的。虽然进程里面的 语句是按顺序执行的,但这是针对模拟来说的,这个过程与硬件结构中实现的 对应的逻辑行为是不同的。进程里面顺序语句在于描述硬件的一种功能,它采 用的是一种顺序的表达方式。该表达方式即可以描述时序逻辑也可以描述组合 逻辑。 进程语句有自己很强的特点: 1 进程之间是并行的,但进程内部语句是顺序的。这种结构设计可以说是 v h d l 的一个很大的优点。它可以很方便地为各种电路建摸。 2 进程是通过敏感信号或者是通过w a i t 语句来激发。但不能同时具有敏 感信号和w a i t 语句。而且对于综合后对应于进程的结构,对进程的所有 读入信号都是敏感的。 3 进程问通过传递信号和共享变量来实现,这使进程结构有了更大的功 能,使结构体中多个进程能同步运行,相互协调。 4 进程是v h d l 重要的建摸工具。进程的建摸将对综合结果有直接的影 响。 ( 5 ) 元件( c o m p o n e n t ) 元件的概念及其机制又是v h d l 一个很有特色的语言结构。在实际的系统 设计中我们经常要多次用到同种元件,利用元件我们只需要定义种模型, 然后通过实例化获得多个实例。其中各个实例可以有不同的配置。这是一个更 灵活的机制:实例化只是让系统知道有这样一个模型,但不必知道模型的具体 实现。而另外一种实例化方式,即直接绑定实体和结构体的方式,则需要具体 的实体和结构体的实现。对于元件来说,并没有具体的行为在里面,它实际上 体现的是一种机制,它使指定实体和结构体的工作往后移动,这对于自上而下 的设计方法来说是很有用处的。 使用元件需要三个操作:声明、实例化和配置。 1 声明。声明是通过元件声明语句声明元件的端口参数,它类似于实体的 声明。元件的声明和实体的声明并不一定相同,元件本身不是一个实际 0 i j 海交通_ 大学坝i 学位论文第一章v h d l 语占结构 的物理模型,而是一个观念上存在的模型,是一个类似插槽( s o c k e t ) 的概念。 2 实例化。实例化是将该元件嵌入某个系统之中。实例化的那些端口参数 对应于和元件相连的信号。这个时候,元件对应于哪个实体和结构体对 还是未知的。实际上,实体和结构体对在这个阶段可能还没有存在。 3 配置。配置是绑定实体和结构体对与元件实例。可以在配罱的时候进行 调整,使元件实例适应实体和结构体对,如端口和类属名字及其顺序。 元件的配置好比是在插槽上插上元件。 元件提供了一个很灵活的机制。它可以使选择实体和结构体对的工作推到 后面( 比如在综合之前) ;它也可以使系统方便地从不同的库中选择模型。 2 4 本章小结 本章分析了v h d l 语言的结构。分析其建摸的方法。通过对v h d l 语言结 构的理解我们可以更容易理解综合的方法。 ! :塑窒塑叁堂堡! ! 兰垡堡兰笙三! ! 里! 堕鲨坌塑一竺 第三章v h d l 语法分析 3 1 语言开发工具 识别一个复杂的语言一般分为两个阶段:词法分析和语法分析。在词法分 析阶段识别的是比较低级固定的对象,如数、操作符及保留字等:而语法分析 阶段识别的是比较高级的对象,如程序语言的语句。在词法分析阶段,输入的 是一串字符,词法分析程序读入,根据规则识别出每一个对象单词( t o k e n ) , 供语法分析用,单词也是语法分析的最小单位。而在语法分析阶段,根据单词 判断是否构成语言的句子或短语,比如是否是一条过程调用语句或是否是个表 达式。如果不是的话,还要报错,进行出错处理。语法分析程序也要根据一定 的规则进行判断,这些规则是根据语言的语法来制定的。 根据自动机理论和形式语言理论,已经有常用的词法和语法丌发工具;l e x 和y a c c 。其中l e x 是利用自动机理论中的正则表达式理论来实现词法的识别, y a c c 比较复杂一点,主要是根据形式语言理论中的上下文无关语言等理论来 自动实现语法的分析,它能识别l a l r ( 1 ) 文法。它们都有自己的文件输入格 式。我们使用的是f l e x 和y a y 。其中f l e x 是l i n u x 环境下的词法分析工具。 y a y 是自动生成识别l a l r ( 2 ) 文法的程序的工具,比y a c c 功能要强。 3 2 词法分析 词法分析是扫描源程序,按语言的词法规则识别出各类单词( t o k e n ) 并输 出相应的单词符号,同时进行的是词法检查。可以将词法分析程序单独作为一 遍来实现,输出单词符号串,保存在文件或内存中,作为语法分析的输入,或 者将词法分析和语法分析安排在同一遍中。此时。词法分析程序是语法分析程 序的一个子程序,该子程序有语法分析程序调用。当语法分析程序需要一个新 的符号时,就调用该子程序。该子程序每调用一次就从源程序字符串中读入一 个具有独立语法意义的单词。采用这种编译器结构,可以避免中间文件而且省 取取送单词符号的操作,提高编译器的效率。 大多数语言的词法规则是属于乔姆斯基3 型文法,即正则文法。通过正则 文法描述语言的表达式称为正则表达式。正则表达式的值即为一个语言。根据 海交通大学倾:学位论文第三章v h d l 语法分析 1l 自动机理沦,正则表达式与有穷自动机是等价的,即币则语言可以被某有穷自 动机识别。有穷自动机的形式定义为: 有穷自动机是一个5 元组( q ,6 ,q 0 ,f ) ,其中 1 ) q 是个有穷集合,叫做状态集。 2 ) 是个有穷状态集,叫做字母表。 3 ) 6 :q - q 是转移函数。 4 ) q 0 e q 是起始状态。 5 ) f q 是接受状态集。 识别一个源程序是否合法的过程就是自动机从开始状态q 0 到接受状态集 的过程。 比如对于如下的一个状态机m : 0 m = ( q ,6 ,q l ,f ) ,其中 1 ) q = q l ,q 2 ,q 3 ) ; 2 ) = 0 1 ) 3 ) 6 如下表 图3 1 有穷自动机 f i g 3 - 1f i n i t ea u t o m a t i o n 表3 1m 的转移函数 t a b l e 3 1f u n c t i o no fm 4 ) q l 是起始状态 5 ) f = q 2 ) l :海交通人学顾i 学位论文第兰三章v h d l 语法分析 一1 2 设a 是机器m 接受的全部字符串集,称a 是机器m 的语言,记作l ( m ) = a 。或者说,m 识别a 或m 接受a 。上面的例子中,若令 a = w l w 至少含有一个1 并且在最后的l 后面有偶数个o ) 则l ( m ) = a ;或者说,m 彭 目| ja 。 同样,对于v h d l 语言,我们也要设计一个自动机,来识别v h d l 语言的 字符串。我们可以利用词法生成工具l e x 自动生成识别字符串的程序。 l e x 是产生词法分析程序的工具。l e x 有自己的输入格式,产生y y l e x 函 数,该函数 会被语法分析函数( 由y a y 生成) 调用。l e x 的输入文件格式为: f 定义部分 1 l e x 正则表达式和动作 用户白定义函数 l e x 源程序由三部分组成:第一部分是定义式,第三部分是识别规则及动 作。最后一部分是用户程序。各部分用隔开。 对于下面一个例子: f i n ty y li n e n o = l : i n ty y c o l u m n o = o : u p p e r c a s e l e t t e r a - z l o w e r c a s e l e t t e r a z d i g i t 0 - 9 s p e c i a l c h a r a c t e r # ( ) + ,一: 一 s p a c e c h a r a c t e r t ! :塑窒塑叁堂堡! :堂丝堡兰笙兰! ! 里! 堕鲨坌塑旦 h a s i c g r a p h i c c h a r a c t e r ( u p p e r c a s e l e t t e r l d i g i t i s p e c i a l c h a r a c t e r l s p a c e c h a r a c t e r ) l e t t e r ( u p p e r c a s e 一1e t t e r i l o w e r c a s e l e t t e r ) ) ( g r a p h i c c h a r a c t e r i ”i ) r e t u r n ( t _ c h a r a c t e r l i t ) f 门 y y l i n e n o + + : y y c o l u m n o = o : r e t u r n ( t _ n e w l i n e ) 上面的几个部分仅仅是必须的,其余部分都是可选的。其中最主要的是 中间的l e x 正则表达式和动作。第一个之前的“ ”和“ ,之间的部 分定义的是第三部分要使用到的一些函数和变量,第一部分中定义的词法,其 右边对应的是正则表达式;第二部分的各个处理动作中返回的标记( t o k e n ) 都 是在v h d l 的语法描述文件( 用于生成语法分析程序的y 文件) 中定义过的: 上面文件中的变量是f l e x 和y a y ( 或y a c c ) 中约定的全局变量,这些变量 的值可以在语法分析器中被引用。该文件是f l e x 的输入文件,经过处理之后, 生成一个c 文件,这个c 文件就是v h d l 词法检查器的源程序,其中主要是 一个y y l e x 的函数,该函数读入v h d l 源程序,识别出一个一个的单词,传递 给后面的语法分析器。 l e x 的功能就是根据l e x 的源程序构造一个词法分析程序。该分析程序的 作用就是一台有穷自动机。由l e x 所生成的彻底法分析程序由两部分组成即 一张状态转换图和一个控制执行程序。它的工作过程为: 1 ) 扫描每一条识别规则p i ,构造一个相应的不确定的有穷状态机m i ; 海交通人学硕i 学位论文第三章v h d l 语法分析旦 2 ) 将各有穷状态机m i 合并为一个新的不确定有穷状态机m ; 3 ) 将m 确定化,并生成该确定有穷状态机的状态转换矩阵和控制执行程 序。 l e x 所生成的词法分析程序在识别单词符号时,可能会遇到二义的情况。 如遇到字符串“b e g i n ”,程序可以认为是保留字或者是标识符;还有对于 “ = ”,可以看作 和= ,也可以看作赋值符号 b 均满足i a i i b l :仅仅s - 例外,但s 不能出 现在任何产生式的右部。 2 ) g 的任何产生式为a b ,a v b ( v u ) + ; 3 ) g 的任何产生式为a e 口b 或a 一 口,其中口+ ,a ,b v 。 其中3 型文法称为右线形文法,它等价于正则表达式,所以也称为正则文 法由正则文法产生的语言叫做正则语言。如前面提到的词法分析器识别的就是 f 则语言。2 型文法也称上下文无关文法。它是比j 下则文法强得多的文法。 2 上下文无关文法 上下文无关文法是这样一种文法,它所定义的语法范畴是完全独立与这种 范畴可能出现的环境的。不会因为上下文环境的不同而改变其意义。这与自然 语言有很大的不同。 上下文无关文法( c f g ) 是一个4 元组( v ,r ,s ) ,其中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论