(电路与系统专业论文)vhdl编译系统设计方法及关键技术研究.pdf_第1页
(电路与系统专业论文)vhdl编译系统设计方法及关键技术研究.pdf_第2页
(电路与系统专业论文)vhdl编译系统设计方法及关键技术研究.pdf_第3页
(电路与系统专业论文)vhdl编译系统设计方法及关键技术研究.pdf_第4页
(电路与系统专业论文)vhdl编译系统设计方法及关键技术研究.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(电路与系统专业论文)vhdl编译系统设计方法及关键技术研究.pdf.pdf 免费下载

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

文档简介

v h d l 编译系统设计方法及关键技术研究 电路与系统专业 研究生李原指导教师赵刚 v h d l 是美国所确认的国家工业标准,现在已在世界上许多国家和地区获 得迅速的推广和应用。v h d l 能形式化地抽象表示电路的结构及行为,支持逻 辑设计中层次与领域的描述。v h d l 借用了高级语言的精巧结构来简化电路描 述,具有电路模拟与验证机制,能够保证设计的正确性,支持电路描述由高层 向低层的综合变换,便于文档管理,易于理解和设计重用。因此将v h d l 语言 作为高级综合的输入描述可以把它作为工业标准的优点与高级综合的自身优点 结合起来,其意义十分明显。 同传统高级语言的编译系统一样,v h d l 语言的编译系统具有重要的地位, 它的质量对于整个高级综合与混合模拟系统的实现与性能有重要的影响。然而, 在几乎所有的关于集成电路高级综合理论研究中,对于编译系统中v hl 语言 词法分析及语法分析具体实现的讲解都不是很详细,这些又恰恰是影响整个编 译系统编译质量好坏的关键技术。所以有必要对它们进行深入细致的研究。也 正是因为介绍这方面的资料不多,在前期调研中,每点进步都需要花费巨大 的心血和精力。 本论文的重点是对v h d l 编译系统中v h d l 语言算法级子集抽取、词法分 析器及语法分析器具体编写过程的深入研究。这几点是v h d l 编译系统设计中 最重要的几点。 本文首先对数字系统设计及高层次综合做了一个整体阐述。简单介绍了编 译原理及编译程序结构,还有v h d l 语言历史概述及语法介绍。目的是使读者 对v h d l 编译系统有一个快速而全面的了解。 本文接着对v h d l 语言编译系统设计进行了研究。在此作者首次尝试使用 了更易上手掌握的、能在w i n d o w s 操作系统下安装运行的p a r s e rg e n e r a t o r 2 0 软件。 接着依次介绍了v h d l 编译系统设计中的几项关键技术。子集的提取对于 词法分析器的生成至关重要,因为v h d l 语言本身是基于模拟的,它所提供的 一切手段实际上都是为了建立模拟模型的,所以在综合时要发生个转义的过 程。文中对v h d l 语言子集的提取和词法分析器的设计进行了深入的研究。并 在附录中给出了词法分析实现程序。 最后,本文讨论了v h d l 编译系统中最重要的部分,语法分析器的设计实 现。结合作者的开发体会,给出了详尽的设计策略,并重点讨论了冲突问题的 解决。 关键词:高级综合编译系统词法分析语法分析 v h d l c o m p i l i n gs y s t e md e s i g nm e t h o d sa n d s t u d i e so nt h ek e y t e c h n i q u e s m a j o r c i r c u i t sa n ds y s t e m s g r a d u a t el iy u a n s u p e r via o r z h a og a n g v h d li san a t i o n a li n d u s t r ys t a n d a r dt h a t u s aa f f i r m s a l r e a d yal o to f c o u n t r i e sa n dr e g i o n sh a v eg o tf a s tp o p u l a r i z a t i o na n da p p l i c a t i o ni nt h ew o r l dn o w v h d lc a l la b s t r a c t l ye x p r e s sc i r c u i t ss t r u c t u r ea n db e h a v i o ri nf o r m a l i z a t i o n ,i ta l s o s u s t a i n sa r r a n g e m e n ta n dd o m a i n sd e s c r i p t i o ni nl o g i cd e s i g n v h d lb o r r o w st h e d e s c r i p t i o no f h i g h - l e v e ll a n g u a g e si n g e n i o u sc o n f i g u r a t i o n ,w i t hw h i c h i tc a l lr e f i n e c i r c u i td e s c r i p t i o n v h d lh a sc i r c u i ts i m u l a t i o na n dv a l i d a t i o nm e c h a n i s m ,w h i c h m a k e si tc a r la s s b r et h ec o l t e c t l l c s so fd e s i g na n ds u s t a i nt h es y n t h e s i st r a n s f o r mo f c i r c u i td e s c r i p t i o nf r o mh i g h l e v e lt ol o w - l e v e l i ti se a s yt om a n a g ef i l e sa n dr e u s e t h ed e s i g n s oi th a sd i s t i n c t i v em e a n i n gt om a k ev h d la st h ei n p u tl a n g u a g ei n 1 1 i g h l e v e ls y n t h e s i s ,b e c a u s ei tc a nc o m b i n et h ev i r t b eo fi ta si n d u s t r ys t a n d a r da n d h i g h - l e v e ls y n t h e s i si t s e l f t h es a m ea st r a d i t i o n a la d v a n c e dp r o g r a m m i n gl a n g u a g e s c o m p i l i n gs y s t e m , t h ec o m p i l i n gs y s t e mo fv h d l l a n g u a g eh a sav e r yi m p o r t a n tp o s i t i o nt o o i th a s i m p o r t a n ti n f l u e n c eo nt h er e a l i z a t i o na n dp e r f o r m a n c eo ft h ew h o l eh i g h l e v e l s y n t h e s i s a n dm i xs i m u l a t i o ns y s t e m h o w e v e r , t l l e r ei sa l m o s tn od e t a i l e d e x p l a i n i n go nv h d ll e x i c a la n a l y s i sa n dg r a m m a t i c a la n a l y s i sg e n e r a t i o ni ni c 1 1 i g h - l e v e ls y n t h e s i st h e o r yr e s e a r c h ,w h i l et h e ya r ej u s tt h ek e yt e c h n i q u e sw h i c h c a ni n f l u e n c et h ew h o l ec o m p i l i n gs y s t e m s oi ti sn e c e s s a r yt oh a v ead e e p 3 p a r t i c u l a rr e s e a r c ho nt h e m b e c a u s et h e r ea r en o tal o to f m a t e r i a l si nt h i sr e s p e c t i t i sv e r yd i f f i c u l ti ns u r v e y i n ga n ds t u d y i n ge a r l i e rs t a g e i tn e e d sg r e a te f f o r t st om o v e a b e a da1 i t t l e t h i sp a p e rp u t st h ee m p h a s i so nt h ed e e ps t u d i e so ft h ed i s t i l l i n go fv h d l l a n g u a g ea l g o r i t h m l e v e ls u b s e t ,r e a l i z a t i o no f l e x i c a la n a l y z e ra n d p a r s e ra n a l y z e r a l lo f t h e ma r ei m p o r t a n tf o rv h d lc o m p i l i n gs y s t e md e s i g n ac o n s p e c t u so fd i g i t a ls y s t e md e s i g na n dh i 曲一l e v e ls y n t h e s i sa r ep r e s e n t e d f i r s ti nt h i sp a p e r i tb r i e f l yi n t r o d u c e sc o m p i l i n gt h e o r y , c o m p i l i n gp r o g r a m s s t r u c t u r ea n dv h d l l a n g u a g e sh i s t o r ya n du s a g e i t sp u r p o s ei st og i v et h er e a d e ra w h o l eu n d e r s t a n d i n go f t h ei s s u e so f v h d lc o m p i l i n gs y s t e m t h e n t 矗j sp a p e rf o c u so nt h er e s e a r c ho fv h d lc o m p i l i n gs y s t e md e s i g n h e r e ,t h ew r i t e rb s e san e ws o t t w a r en a m e dp a r s e rg e n e r a t o r 2 0 ,t h i ss o f t w a r ei s e a s i e rf o ru s i n gt h a np r e v i o u ss o f t w a r ea n di tc a nb ei n s t a l l e da n dl u l lu n d e r w i n d o w so s s t u d i e so ns e v e r a lk e yt e c h n i q u e si nv h d lc o m p i l i n gs y s t e md e s i g na r et h e n d i s c u s s e di nt u r n d i s t i l l i n gas u b s e to fv h d ll a n g u a g ei sv e r yi m p o r t a n tf o rt h e g e n e r a t i o no f l e x i c a la n a l y z e r b e c a u s ev h d ll a n g u a g ei t s e l f i sb a s e do ns i m u l a t i o n , a l lt h em e a n si tp r o v i d e sa r eu s e dt ob u i l ds i m u l a t i o nm o d e l s ,s ot h e r ei sat r a n s l a t e p r o c e d u r ew h e n i ti ss y n t h e s i z e d t h ep a p e rh a sad e t a i l e dr e s e a r c ho nv h d ls u b s e t d i s t i l l i n ga n d l e x i c a la n a l y z e rd e n g n i n g a n dt h el e x i c a la n a l y s i sg e n e r a t i o np r o g r a m i sg i v e ni na p p e n d i x f i n a l l y , t h ep a p e rd i s c u s s e st h em o s ti m p o r t a n tp a r ti nv h d lc o m p i f i n gs y s t e m , t h a ti st h ed e s i g n i n ga n dr e a l i z a t i o no fp a r s e ra n a l y z e r c o m b i n e dw i t ht h ew r i t e r s d e v e l o p m e n te x p e r i e n c e ,s e v e r a ld e s i g nt a c t i c s a r el i s t e d i n d e t a i l e s p e c i a l l y d i s c u s s e st h er e s o l v i n go f c o n f l i e t k e yw o r d s :h i 曲一l e v e ls y n t h e s i s ,c o m p i l i n gs y s t e m ,l e x i c a la n a l y s i s ,g r a m m a r a n a l y s i s 4 四川大学硕士学位论文 第一章引言 集成电路产业作为信息产业的核心和国民经济信息化的基础,已经成为信 息技术的制高点,而集成电路技术的任何发展都与电子设计自动化( e l e c t r o n i c s d e s i g na u t o m a t i o n ,e d a ) 技术的支持密切相关,可以说e d a 技术的发展和推 广应用极大地推动了电子工业的发展。e d a 技术是帮助设计人员从事电子元 件、整机和系统设计的一门综合技术,是一种以计算机为基本工作平台,应用 计算数学、图形学、拓扑逻辑学、人工智能等计算机应用科学最新成果开发出 来的一套软件工具。e d a 技术的出现不断推动着电子设计的发展。现如今,人 们把e d a 称为电子工业振兴腾飞之源。 第一代e d a 技术以二维平面图形计算机辅助设计为特征;第二代e d a 技 术以计算机仿真和自动布局布线为核心;第三代e d a 技术出现于9 0 年代初并 逐步完善。以高级语言( 包括软件语言和硬件语言) 描述、系统级模拟和综合 为特征。上个世纪9 0 年代,照着集成电路的飞速发展,数字系统自动设计( e d a ) 技术的概念和内涵也在不断扩大,由原来的简单设计概念,转而向将设计描述、 模拟、综合、工艺映射等功能集于一体的完整的设计环境发展,手工设计大规 模集成电路已成为历史1 8 】。与此同时,引起数字系统设计方式发生突破性变革 的技术是v h d l 设计技术 v h d l :v e r yh i 曲s p e e di n t e g r a t e dc i r c u i t ( v h s i c ) 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 ov h d l 作为1 e e e - 】0 7 6 标准所规范的硬件描 述语言,随着各种e d a 工具和集成电路制造厂商的普遍认同和推广,正在全 球范围内先进工业国家的电子系统设计领域获得广泛应用。 综合可在多个层次上进行,如系统级综合、高级综合、寄存器传输级( r t l ) 综合、逻辑综合等等【1 2 1 。国内外的大多数e d a 领域的设计者们主要致力于高 级综合与r t l 综合工具的开发。目前国内外比较成熟的e d a 工具有c a d e n c e 、 s y n o p s y s 以及m e n t o r 等公司出品的自动设计工具。针对v h d l 语言及其综合 模拟系统的研究已成为当今电子设计自动化领域的一大热点。上述几个公司均 推出了各自的商用v h d l 语言综合模拟应用支撑系统。在国内,北理工开发了 一个v h d l 行为描述到f p g a 的高级综合系统,该系统己通过验证。但是从所 发表的论文和已验证的成果来看关于高级综合技术的研究在国内进行的不是 四川大学硕士学位论文 很多,这还是一个有待开发的领域。正是基于此原因,本论文的前期开展工作 进行的异常艰辛,由于可参考的资料少,同行少,所有的工作都是在黑暗中摸 索进行,也走过很多的弯路。纵观已研究出来的成果,作为整个高级综合系统 前端的v h d l 语言编译系统的质量对于整个高级综合与混合模拟系统的实现 与性能有着重要的影响。由于v h d l 语言复杂的文法规则和丰富的语义约束, 所以编译系统不仅较其他硬件描述语言的编译系统复杂得多,而且较传统的高 级语言的编译器也面临着许多新问题需要解决。这其中专门讲解v h d l 编译系 统中前端词法分析和语法分析的更是少之又少,而这部分恰恰是整个编译系统 的重点部分,它的好坏直接影响到v h d l 编译系统的整体编译效率。本论文正 是基于此种原因诞生的。 1 1 数字系统的设计流程与设计层次 目前,集成电路的设计通常采用集成电路制造厂商提供的e d a 工具,一 般分为设计输入、设计综合及设计验证三个部分,其设计过程如下【5 】: ( 1 ) 利用v h d l 对设计进行功能和算法描述; ( 2 ) 编译,进行词法、语法及静态语义检查; ( 3 ) 通过综合自动生成与工艺无关的设计实现; 综合将数字系统从行为级描述转化为门级网表。综合可实现给定抽象层次 上用户电路描述的处理过程中每一个细节。 ( 4 ) 通过工艺映射将与工艺无关的综合结果转换为与工艺相关的设计结 构: 综合的结果网表与工艺无关,a s i c 投片制造时可根据特定的目标工艺, 通过工艺映射将综合结果转换成工艺厂商所接收的设计格式。 ( 5 ) 在设计的各个阶段利用v h d l 模拟器进行设计的模拟验证: ( 6 ) 利用逻辑图自动生成工具直观观察设计结果。 ( 7 ) 逻辑图自动生成工具将综合及工艺映射的结果分页自动生成逻辑图, 并作为设计文档保存。 综合部分是上述设计流程的关键所在。近年来,大家会发现有明显的趋势 倾向于系统综合过程的自动化,原因主要有以下几个方面【l l 】: 四川大学硕士学位论文 ( 1 ) 有能力探索更广泛的设计空间。一种有效的综合技术能够在短期内 从同一种描述中生成多种设计,允许设计者在价格、性能、能源、耗费、可测 试性等不同的方面进行权衡。 ( 2 )更短的设计周期“综合过程中自动化的使用减少了设计时间,同时 为各厂商提供了更好的打开产品市场的机会。;另外,许多情况下设计费用决定 产品开发费用,因此自动化能够明显减少产品的设计费用。 ( 3 ) 支持设计验证。 ( 4 ) i c 技术可靠性提高。从综含算法中获取更多设计知识,因此对于非 i c 技术专家的设计者来说,设计芯片变得更容易。 ( 5 )错误更少。人工设计活动的减少意味着人为错误的数目将减少,如 果综合算法有效,则更有信心保证最后的设计将正确地实现给定描述。 数字系统的设计和研究可以在许多不同的抽象层次上进行,从纯粹的行为 模型到底层的物理级均可。在行为级不说明系统的硬件细节,而在物理级只说 明物理元件的结构。表1 1 中列出了几种设计的抽象级别。 表1 1 数字系统设计抽象屡次 设计层次抽象级别物理细节详细 模型类型 系统级最高最少行为 寄存器传输级行为结构 门级结构 晶体管级结构 物理级 最低最多结构 1 2 高级综合原理及设计方法 电子系统设计包括行为、结构和物理三个领域( d o m a i n ) 。行为( b e h a v i o r a l ) 域是指系统的功能,结构( s t r u c t u r a l ) 域是指系统的逻辑组成,物理域是指具 体实现的几何特性与物理特性。这三个领域构成完整的设计,而所有的设计又 都涉及这三方面的内容。 根据抽象程度的不同,电子系统又划分成若干层次( 1 e v e l ) ,一般包括系统 四川大学硕士学位论文 级、算法级( 或行为功能级) 、寄存器传输级( r t l :r e g i s t e r t r a n s f e r l e v e l ) 、逻 辑级与电路级等。 所谓综合( s y n t h e s i s ) ,实际上就是一个从高层次到低层次、从行为域到结 构域的设计转换过程,其中还包含必要的优化。根据起始层次的不同,综合可 划分为逻辑综合、寄存器传输级综合等【2 0 】。而对于高级综合( h i g h l e v e l s y n t h e s i s ) 顾名思义其出发点就是在更高的设计层次( 例如算法级) ,一般认为, 高级综合指从目标系统的行为、算法描述到寄存器传输级结构描述的自动设计 过程。它从对设计对象的行为描述开始,在给定的目标速度、实现造价,乃至 可测试性等条件约束下,生成满足相应条件并能实现目标系统行为的结构描述。 行为描述是表征系统输入与输出间的对应关系或映射;而结构描述表示出组成 系统的基本元件及相互连接。通常这是由一系列设计工具集成的高级综合系统 来完成的一个复杂的设计过程h 。 高级综合将算法级行为描述转化为寄存器传输级网表,分为数据流综合与 控制流综合两部分,前者自动生成电路的数据通道部分并提取相应的控制信息, 后者将所提取的控制信息通过时序逻辑综合及组合逻辑综合转换成控制器结 构。其中数据流综合子系统完成高级综合的任务,是整个系统的核心【1 5 】。 控制流综合子系统中确立了用于f s m 及组合逻辑综合的v h d l 子集:提 出并实现了五种运算关系的处理:利用人工智能方法设计了一种有效的求解非 完全确定有限状态机的状态最小化算法;面向较大规模控制器的状态分配问题, 设计了面向两级逻辑实现的改进和扩充的按权状态分配算法;设计了直接面向 目标工艺进行综合、路径延迟均衡、改进的因式分解等多级逻辑综合的算法, 使延时优化、面积优化及处理速度都有所提高【2 2 】。 高级综合是在逻辑综合的基础上发展起来的,随着逻辑综合理论的成熟与 完善、逻辑综合自动化工具的实用,人们逐步开始重视高级综合的研究。在7 0 年代,高级综合主要处于研究阶段,s t a n d f o r d 、c m u 、k a e l 等大学进行了典型 的探索,提出了一些高级综合的算法并应用到各自的系统实现中,如d a a 、 m s s 和c a d d y 等;8 0 年代人们开始逐步进行高级综合实用化的研究,各大学 与公司相继推出了各自的综合系统;8 0 年代中后期工业标准硬件描述语言 v h d l 的产生,把高级综合的研究推向标准化,出现了许多以v h d l 语言作为 输入描述的高级综合系统。如i b m 的h i s 、c i n c i n n a t i 大学的d s s 及s i e m e n sa g 4 四川大学硕士学位论文 的c a l l a s 等【1 6 1 。 高级综合发展到今天,也已经有许多成熟的技术。它通常分为数据流综合 与控制流综合,其设计方案框图如图1 1 所示【18 】: 圈1 1高级综合设计方案 本篇论文重点研究的是第一个方框中间数据表示生成中的内容,即v h d l 编译系统的设计。 1 3 编译原理 编译程序完成从源程序到目标程序的翻译工作,是一个复杂的整体过程。 它和人们进行自然语言之间的翻译有许多相近之处。当把一种文字翻译为另一 种文字,举个简单的例子。例如把一段英文翻译成中文时,通常需要经过下列 步骤【6 】: 识别出句子中的一个个单词。 分析句子的语法结构。 根据句子的语法结构和含义进行初步翻译。 对译文进行修饰。 写出最后的译文。 5 四川大学硕士学位论文 类似的,编译程序的工作过程一般也可以划分为5 个阶段:词法分析、语 法分析、语义分析与中间代码产生、优化、目标代码生成。 ( 1 ) 第一阶段,词法分析 词法分析的任务是:输入源程序,对构成源程序的字符串进行扫描和分解, 识别出一个个单词。例如关键字( b e g i n 、e n d 、i f f o r 、w h i l e 等) 标志符、常 数、算符和界符( t a b 符、空白符、分号等) 。单词符号是语言的基本组成成 分,是人们理解和编写程序的基本要素。识别和理解这些要素无疑是翻译的基 础。就象将英文翻译成中文一样,如果对英语单词不理解,那就谈不上进行正 确的翻译。在词法分析阶段的工作所依循的是语言的词法规则( 或称构词规则) 。 ( 2 ) 第二阶段,语法分析 语法分析的任务是:在词法分析的基础上,根据语言的语法定义规则,识 别出构成单词符号串的各类语法单位,如“因子( f a c t o r ) ”、“项( t e r m ) ”、“表 达式( e x p r e s s i o n ) ”、“语句( s t a t e m e n t ) ”、“分程序( b l o c k ) ”和“程序( p r o g r a m ) ”。 通过语法分析,确定整个输入符号串是否构成语法上正确的“程序”。语法分析 所依循的是语言的语法规则。语法规则通常用上下文无关文法描述。词法分析 是一种线性分析,而语法分析是一种层次结构分析。例如,在很多语言中,符 号串 z :- - x + o 5 3 2 4 y 代表一个“赋值语句”,而其中的x + 0 5 3 2 y 代表一个“算术表达式”。因而, 语法分析的任务就是识别x + o 5 3 2 y 为算术表达式,进而再识别上述整个符号 串属于赋值语句 1 3 l 。 ( 3 ) 第三阶段,语义分析与中间代码产生 该阶段的任务是:对语法分析所识别出的各类语法单位,分析其含义,并 进行初步翻译( 产生中间代码) 。这一阶段通常包括两个方面的工作。首先,对 每种语法单位进行静态语义检查,例如,变量是否有定义,类型是否正确等。 如果语义正确,则进行另一方面工作,即进行中间代码的翻译。 “翻译”仅仅在这里才开始涉及。所谓“中间代码”是一种含义明确、便 于处理的记号系统,它通常独立于具体的硬件。常用的中间代码,除了四元式 之外,还有三元式、间接三元式、逆波兰表示和数形表示等。例如,许多编译 程序采用了- - 0 0 与“三地址指令”非常近似的“四元式”作为中间代码。这种 6 四川大学硕士学位论文 四元式的形式是 它的意义是对“左、右操作数”进行某种运算( 由“算符”指明) ,把运算所得 的值作为“结果”保留下来。在采用四元式作为中间代码的情形下,中间代码 产生的任务就是按语言的语义规则把各类语法单位翻译称四元式序列。看下面 这个赋值语句的例子: z := ( x 十0 4 8 1 ) 4 y w ; 可被翻译成如表1 2 所示的四元式序列。 表1 2 被翻译出的四元式序列 序号算符左操作数右操作数结果 ( 1 ) + x0 4 8 lt l ( 2 )t 1 y t 2 ( 3 ) t 2 z 其中,t 1 和t 2 是编译期间引进的临时工作变量;第一个四元式意味着把x 的值 加上o 4 8 1 存放于t l 中;第二个四元式将t l 的值和y 的值相乘存于t 2 中;第 三个四元式将t 2 的值除以w 的值将其结果赋予z 中。 ( 4 ) 第四阶段,优化 优化的任务在于对前一阶段产生的中间代码进行加工变换,以期在最后阶 段能产生出更为高效( 省时间和空间) 的目标代码。 ( 5 ) 第五阶段,i f l 标代码生成 该阶段的任务是把中间代码( 或经优化处理之后) 变换成特定机器上的低 级语言代码。这一阶段实现了最后的翻译,它的工作有赖于特定硬件系统结构 和机器指令含义。 上述编译过程只是一种典型的分法,在实际工作中,并不一定严格按照这 种分法来做。本论文中,由于时间关系,只是将主要精力放在了词法分析和语 法分析这一主要阶段,对于语义分析及优化和目标代码生成阶段,有待于进一 四川大学硕士学位论文 步的深入研究。 1 4 编译程序的结构 编译程序可以按照上述5 个阶段的任务分模块进行设计。编译程序总的结 构框图如图1 2 所示【6 】: 图1 2 编译程序结构框图 ( 1 ) 词法分析器 又称扫描器( s c a n n e r ) ,输入源程序,进行词法分析,输出单词符号串, 也称基本符号串或符号串。 ( 2 ) 语法分析器 简称分析器( p a r s e r ) ,对单词符号串进行语法分析( 根据语法规则进行推 导或规约) ,识别出各类语法单位,最终判断输入的符号串是否构成语法上正确 的“程序”。 四川大学硕士学位论文 ( 3 ) 语义分析和中间代码产生器 按照语义规则对语法分析器规约出( 或推导出) 的语法单位进行语义分析 并把它们翻译成一定形式的中间代码。 ( 4 ) 优化器 对中间代码进行优化处理 ( 5 ) 目标代码生成器 把中间翻译成目标程序。 除了上述5 个功能模块外,一个完整的编译程序还应包括“表格管理”和 “出错处理”两部分。 ( 6 ) 表格管理 编译程序在工作过程中需要有一系列表格( t a b l e ) ,以登记源程序的各类信 息和编译各阶段的进展状况。合理地设计和使用表格是编译程序构造的一个重 要问题。在编译程序使用的表格中,最重要的是标志符表。它用来登记源程序 中出现的每个标志名( 又称标志符) 及其各种属性。举个例子,一个标志名如 果是常量名,它的常量值是什么:如果是变量名,它的类型是什么、所占内存 多大、地址是什么;如果是过程名,它预留的内存多大、过程起始地址是什么 等。通常,在程序的说明部分遇到标志名时,要把标志名及其属性登记到标志 符表中;在程序处理部分遇到标志名时,要到标志符表中去查证标志名及其属 性。 ( 7 ) 出错处理 一个编译程序不仅应能对书写正确的程序进行翻译,而且应能对出现在源 程序中的语法错误进行处理。如果源程序有语法错误,编译程序应设法发现错 误,指明错误所在的位置,并把有关错误信息报告给用户。这部分工作是由出 错处理程序完成的。它在发现错误,准确的指出错误的性质和发生错误的地点 后,能将错误造成的影响限制在尽可能小的范围内,使得源程序的其余部分能 继续被编译下去,以便进一步发现其他可能的错误。一个好的编译程序一次编 译能最大限度地发现源程序中的所有错误。 表格管理和出错处理一般也穿插于作为核心的语法分析程序中。 9 四川大学硕士学位论文 1 5v h d l 语言的历史概述与特点 v h d l 是上个世纪7 0 年代到8 0 年代中期由美国国防部资助的王s i c ( v e r y h i g hs p e e di n t e g r a t e dc i r c u i t ) 项目开发的产品,它的初始目标仅是一种使电路 文本化的标准,使人们采用文本方式描述的设计能够为其他人所理解。同时, 作为模型语言,v h d l 用于软件模拟 2 4 1 。v h d l 于1 9 8 7 年由i e e e1 0 7 6 标准 所确认。1 9 8 8 年,m i l s t 4 5 4 规定所有为国防部设计的a s i c 产品必须采用v h d l 描述。1 9 9 3 年,i e e e1 0 7 6 标准升级,新的v h d l 标准为i e e e1 1 6 4 。1 9 9 6 年, i e e e1 0 7 6 6 成为v h d l 综合标准川。 现如今,v h d l 己成为一个数字电路和系统的描述、建模及综合的标准。 在电子产业界,无论a s i c 设计人员,还是系统级设计人员,都需要学习v h d l 以提高工作效率。由于v h d l 所具有的通用性,它已成为可支持不同层次设计 者需求的标准语言。 v h d l 允许设计者生成一个设计而无需事先选择实现设计所需的器件,也 就是采用自顶向下的设计方法。而对于同一设计描述,也可以采用多种不同器 件结构实现其功能。如果需要对设计进行资源重用或者性能优化,也并不要求 设计者非常熟悉器件的结构【1 9 1 。 v h d l 语言具有强大的语言结构,可用简洁明确的代码描述设计复杂控制 逻辑。为了有效控制设计的实现,v h d l 语言还具有多层次的设计描述功能, 支持设计库和可重复使用的元件合成,同时支持阶层设计,且提供模块设计的 创建。v h d l 是一种集设计、模拟、综合于一体的标准硬件描述语言矧。 同时,v h d l 的可移植能力允许设计者对需要综合的设计描述进行模拟, 在综合之前对一个数千门的设计描述进行模拟可以为设计者节约可观的时间 睇”。v h d l 是一个标准语言,因此不同的工具都支持v h d l 设计描述。 这种不依赖器件的设计和可移植能力,允许设计者在评估设计时采用不同 的器件结构和不同的综合工具。设计者在开始设计之前,无需了解将要采用何 种器件,只需要描述一个完整的设计并对其进行综合,生成选定的器件结构的 逻辑功能,然后再评估结果,选用最合的器件。 由此可见,v h d l 语言可大大提高数字设计的速度,v h d l 语言使设计描 1 0 四川大学硕士学位论文 述快捷、方便并促进设计的快速复制简便易行。 1 6v h d l 语法 v h d l 程序语言通常由实体、构造体:配置、包集合和库五个部分组成。 实体用于描述所设计的系统的外部接口信号:构造体用于描述系统内部的结构 和行为;包集合存放各设计模块都能共享的数据类型、常数和子程序等;配置 用于从库中选取所需单元来组成系统设计的不同版本:库存放已经编译的实 体、构造体、包集合和配置【1 ”。 经过这段时间的研究学习,为方便今后的工作开展。现将本文作者认为比 较好的几个地址附在附录l 中。 四川大学硕士学位论文 第二章v h d l 编译系统设计 传统的高级程序设计语言的编译程序是计算机系统软件的最重要的组成部 分,它将高级程序设计语言编写的源程序翻译为等价的目标程序。v h d l 语言 编译系统是整个高级综合与混合模拟系统的前端,为h l s b i t 的其它子系统提 供有力支持。因此v h d l 语言编译系统具有很重要的地位。 2 1v h d l 语言编译系统的结构及需求 v h d l 语言编译系统作为硬件描述语言的编译系统,它在结构上类似于一 般编译程序的分析部分及中间格式生成部分,其具体的结构如图2 1 所示【2 ”。 图2 1v h d l 编译系统的一般结构 由于v h d l 语言编译系统的性能对全系统具有重要影响,因此基于环境、 功能和性能的需求,对v h d l 语言编译系统有以下几点要求1 3 j : ( 1 ) 实现基手v h d l 语言全集的编译系统。 ( 2 ) 增强接口适应性,以保证功能各异的其它后继子系统( 综合、模拟 等) 提取数据信息方便。 ( 3 ) 用户界面友好,易于操作,提供简明准确的错误信息用来帮助用户 四川大学硕士学位论文 调试源描述程序。 ( 4 ) 易于维护、移植。 ( 5 ) 支持多文件输入,适应大规模硬件设计的分工合作实现。 ( 6 ) 中间模式表示应经初始优化,减小输出量,节约存储空间。 ( 7 ) 优化数据结构和编译系统关键算法,提高编译速度和其他性能。 2 2v h d l 语言编译系统设计与实现 纵观计算机语言编译系统的现状,在设计与实现上都以下述两种技术之一 为基础: ( 1 ) 利用编译系统自动生成工具来辅助生产编译系统,缩短开发周期。 ( 2 ) 针对计算机语言的文法定义及语义约束特点,使用c 或p r o l o g 等高 级语言来设计构造语言文本的编译系统。 在本论文中,作者使用的是第一种方案,之所以这样做一是考虑v h d l 语 言文法及其编译特点,二是考虑到开发周期和可移植特性等的需求。 v h d l 语言的文法具有扩展的巴科斯范式( e b n f ) 形式,这个类似于l r 文法,因此其编译系统可以考虑采用p a r s e rg e n e r a t o r 软件中提供的两个辅助工 具l e x ( al e x i e a la n a l y z e rg e n e r a t o r ) 和y a c c 来辅助自动生成。之所以选 择l e x 和y a c c ,因为它们是非常优秀的工具软件,能够使得所生成的编译系 统具有优良的性能。另外,这种设计方法可以缩短开发周期,模块清晰,易于 维护,便于组织。 鉴于以上分析,v h d l 语言编译系统的具体组织如图2 2 所示。这其中, 主程序作为系统的起点用来调用语法分析器,语法分析器调用词法分析器获得 单词的种属,以检查文法;当需要单词或指令结构的某些信息时,就来调用符 号表管理子程序或相应指令结构的语义处理子程序;语法分析器还向符号表、 指令表添加语义信息,一旦发现错误,就调用错误处理子程序。词法分析器除 了从输入文件中识别出单词的种属传给语法分析器外,还将所发现的单词加入 符号表。当源程序描述文件经分析并检查无错误时,由语法分析器调用中间模 式生成模块,生产源描述文件的中间表示模式【3 l 。 型型查堂堡圭堂垡堡奎 图2 2v h d l 语言编译系统的组织 2 3 开发环境及使用工具的优越性 前面已经介绍过本论文采用编译系统自动生成工具来辅助生成编译系统, 以往的科研开发都是使用的u n i x 提供的两个辅助工具l e x ( al e x i c a l a n a l y z e rg e n e r a t o r ) 和y a c c ( ap a r s e rg e n e r a t o r ) 来辅助自动生成。之所以选择 这两个,因为它们是很优秀的软件,可以使得所生成得编译系统具有优良的性 能。但是,它们也有不足之处,那就是开发界面不太友好,如果是初次开发使 用者,需要对u n 操作系统有定的了解,这无疑增加了开发的不必要时间 浪费。所以本次论文中作者首次尝试使用了p a r s e rg e n e r a t o r2 0 这个软件,该 软件在w i n d o w s 操作系统下即可运行,具有操作界面友好,帮助文档全面详细, 易于学习掌握的优点。这其中就包括如何对m i c r o s o f tv i s u a lc + + 软件进行设置 的问题,作者认为这点对于初学者非常重要。 4 四川大学硕士学位论文 第三章v h d l 语言高级综合子集的提取方法 v h d l 语言是i e e e 制定的工业标准硬件描述语言,它的主要特点是设计 层次覆盖面广、可读性好、硬件描述与工艺无关等等。最重要的是它作为工业 标准具有通用性,这是其它任何一种硬件描述语言所无法比拟的。因此,将 v h d l 语言作为高级综合系统的输入描述可以把v h d l 语言作为标准输入的优 点与高级综合自身的优点结合起来。所以,国外越来越多的高级综合系统都以 v h d l 语言作为设计输入【l ”。 3 1确立子集的必要性及意义 虽然在第二章中介绍过v h d l 语言编译系统要求实现基于v h d l 语言全 集的编译,但是为了解决下文中即将讲到的v h d l 语言的可综合性问题,需要 建立一个v h d l 语言的可综合子集,限制用于综合目的的v h d l 语言的使用。 由于v h d l 语言本身不是专为综合而设计的,它的许多语义不能或者不适合于 综合。另一方面,v h d l 也是一种复杂的语言,为了便于编译系统的开发,有 必要从v h d l i e e e1 0 7 6 标准中抽取一个可用的、有效的实用子集。 之所以这样说,是因为从开发的角度出发,子集分析器的实现更容易些, 实现中出错的可能性小,并且开发周期较短,这是一种取得开发经验的重要途 径,也是作者认为做得比较成功的一点。 3 2v h d l 语言的可综合性分析及检查 由于高级综合完成从行为描述到结构描述的自动转换,因此以v h d l 语言 作为高级综合的输入描述时所着重考虑的应是v h d l 语言的行为描述部分。但 是由于v h d l 语言本质上是基于模拟的,所以它所提供的行为描述的一切方便 手段实际上都是为了建立模型的,这其中就包括州: ( 1 ) 功能描述部分,用于建立设计实体的功能模型。 ( 2 ) 延迟特性描述部分,用于建立设计实体的延迟模型,包括惯性延迟和 粤些查兰壁主兰垡堕兰 传输延迟。 ( 3 ) 其他特性描述部分。 因此,将v h d l 的行为描述作为综合的输入描述,实际发生了一个“转义, 的过程,即原来用于建模的描述,现在用于设计描述。而v h d l 语言高级综合 所产生的许多问题也主要是由于这个转义过程造成的。归纳起来,v h d l 语言 的可综合性问题可分为如下三点1 1 0 】: 1 由于与模拟密切相关而造成的不可综合,包括: ( 1 ) v h d l 语言“测试台”( t e s t b e n c h ) 的机制;

温馨提示

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

最新文档

评论

0/150

提交评论