(计算机应用技术专业论文)并行verilog模拟的研究与实现.pdf_第1页
(计算机应用技术专业论文)并行verilog模拟的研究与实现.pdf_第2页
(计算机应用技术专业论文)并行verilog模拟的研究与实现.pdf_第3页
(计算机应用技术专业论文)并行verilog模拟的研究与实现.pdf_第4页
(计算机应用技术专业论文)并行verilog模拟的研究与实现.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

上海人学硕+ 学位论文 ! ! ! ! ! ! ! g 堡! ! ! 生旦墅坚! ! ! ! ! ! g ! 型型! ! 鲨堡i 堡 摘要 在使用硬件描述语吉设计数字电路的过程中,模拟是非常重要的一个环节, 通过模拟可以实时反馈设计结果,使用户发现设计中存在的问题。但是随着集成 电路设计规模和复杂度的不断增长,传统的串行模拟方法日益成为设计中的瓶 颈。并行模拟由于在提高模拟速度方面有着巨大的潜力,得到了越来越多的关注。 v e r i l o g 作为一门被广泛使用的硬件描述语言,如果能在并行v e r i l o g 模拟上有所 突破,则必将提高我国在集成电路设计领域的竞争力,并对我国e d a 的发展产 生重要的推动作用。 本文首先介绍了并行v e r i l o g 模拟的原理和影响并行v e r i l o g 模拟的因素,在 此基础上提出了一个并行v e r i l o g 模拟的框架并加以实现,通过将v e r i l o g 转换为 c + + ,然后与底层并行模拟支持库进行链接,生成可执行的并行程序,进行并行 模拟。整个系统按照功能可以分为三部分,即前端分析模块、并行模拟支持库和 代码生成模块。前端分析模块将v e r i l o g 描述转换为中间格式,并行模拟支持库 为并行v e r i l o g 模拟提供支持,代码生成模块负责电路划分以及生成可执行的c + + 代码。本文对这三部分的设计过程分别进行了详细的论述。 最后,在集群式高性能计算机上,用实际电路对系统进行了测试。实验结果 表明本系统能够对v e r i l o g 描述的电路进行正确的模拟,并且也证明了并行模拟 在提高模拟速度上的潜力。 关键字:并行v e r i l o g 模拟,模拟核心库,时间偏差协议,电路划分 上海人学硕十学何论文 卫! ! ! 壁艘堂坐坠塑! ! ! ! ! ! ! ! g ! ! ! 型! ! ! 墅i ! ! a b s t r a c t s i m u l a t i o ni sa ne x t r e m e l yi m p o r t a n ts t e pi nt h ed e s i g no fd i g i t a lc i r c u i t su s i n g h d lf l a w se x i s t i n gi nt h ed e s i g nc a nb ef o u n dt h r o u g hs i m u l a t i o n h o w e v e r , a st h e s c a l ea n dc o m p l e x i t yo fv l s i ( v e r yl a r g es c a l ei n t e g r a t i o n ) s y s t e m sc o n t i n u o u s l y i n c r e a s e ,t r a d i t i o n a ls e q u e n t i a ls i m u l a t i o nb e c o m e st h eb o t t l e n e c ko ft h ed e s i g n p a r a l l e ls i m u l a t i o nh a sa t t r a c t e dm o r ea n dm o r ea t t e n t i o nf o ri t sp o t e n t i a lt os p e e du p t h es i m u l a t i o na p l e n t yo fe f f o r th a sb e e nm a d et oi m p r o v et h ep e r f o r m a n c eo f p a r a l l e ls i m u l a t i o n s i n c ev e r i l o gi sah d l w h i c hs e e sw i d ei n d u s t r i a lu s e ,i fw ec a n m a k et h eb r e a k - t h r o u g hi nt h ep a r a l l e lv e r i l o gs i m u l a t i o n ,n o to n l yc a nw ei m p r o v e t h ec o m p e t e n c ei ni cd e s i g nf i e l d ,b u ta l s oi m p e lt h ed o m e s t i ce d a ( e l e c t r o n i c d e s i g na u t o m a t i o n ) d e v e l o p m e n t f i r s t ,t h i st h e s i si n t r o d u c e st h et h e o r i e so fp a r a l l e lv e f i l o gs i m u l a t i o na sw e l la s f a c t o r sa f f e c t i n gs i m u l m i o n t h e nw eb r i n gf o r w a r daf r a m e w o r kf o rp a r a l l e lv e r i l o g s i m u l a t i o n i tt r a n s l a t e st h ev e r i l o gd e s c r i p t i o ni n t oc + + c o d e t h e ng e n e r a t e s e x e c u t a b l ep a r a l l e lp r o g r a ma f t e rc o m p i l i n ga n dl i n k i n gt h ec + + c o d ew i t hp a r a l l e l s i m u l a t i o nk e r n e l t h es y s t e mc a nb ed i v i d e di n t ot h r e ep a r t sa c c o r d i n gt ot h e f u n c t i o n t h ef r o n t a n a l y z e r t r a n s l a t e st h e v e r i l o gd e s c r i p t i o ni n t oi n t e r m e d i a t e f o r m a t ;t h ep a r a l l e ls i m u l a t i o nk e r n e lp r o v i d e st h ep a r a l l e ls i m u l m i o na b i l i t ya n dt h e c o d eg e n e r a t i n gm o d u l et a k e sc h a r g eo fp a r t i t i o n i n ga n dg e n e r a t i n gc + + c o d e w e d e s c r i b et h ed e s i g na n di m p l e m e n t a t i o no f t h e s et h r e ep a r t s f i n a l l y ,t h es y s t e mi st e s t e db ye f f e c t i v ec i r c u i tb e n c h m a r k o nh j 曲p e r f o r m a n c e c l u s t e r s t h ee x p e r i m e n tr e s u l t ss h o wt h a tt h es y s t e mc o u l di m p l e m e n tp a r a l l e l s i m u l a t i o nc o r r e c t l y i ta l s op r o v e st h ep o t e n t i a lo fp a r a l l e ls i m u l a t i o no ni m p r o v i n g t h es i m u l a t i o ns p e e d k e y w o r d s :p a r a l l e lv e r i l o gs i m u l a t i o n ,s i m u l a t i o nk e m e l ,t i m ew a r pp r o t o c o l ,c i r c u i t p a r t i t i o n i n g 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表 或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签名 本论文使用授权说明 本人完全了解上海人学有关保留、使川学位论文的规定,即;学校有权保留论文及送交论文 复印件,允许论文铍查阅和借阅;学校可以公布论文的全部或部分内容。 ( 保密的论文在解密后应遵守此规定) 墓逻日期:塾:弛 上海人学硕十学位论文 t h ep o s t g r a d u a t et h e s i so fs h a n g h a iu n i v e r s i t y 第一章前言 随着微电子产业的飞速发展,集成电路的规模和复杂度急速增长,越来越多 的项目采用v e r i l o g 、v h d l 等硬件描述语言及相应的模拟、综合工具自上而下 进行设计,显著减少了丌发周期并提高了产品的可靠性。 模拟是使用硬件描述语言设计数字电路中非常关键的一个步骤,通过软件模 拟可以实时反馈设计结果,使用户发现设计中存在的问题。据统计,使用电子设 计自动化( e d a ) 进行系统设计,其中有9 0 以上的时间花在电路模拟上,因此提 高模拟效率对缩短产品上市时阳j 是关键的一环。为了适应我国十五计划中大力发 展i c 设计的战略,研究丌发出技术先进、实用且具有知识产权的面向e d a 工具 具有重要意义。 1 1 电子设计自动化与v e r i l o g 语言 集成电路技术的发展经历了小规模( s s i ) 、中规模( m s i ) 、大规模( l s i ) 、 超大规模( v l s i ) 的阶段,现已进入了特大规模( u l s i ) 阶段。随着技术的发 展,i c 设计工作越来越复杂,e d a 也顺应发展。从7 0 年代以交互式图形编辑和 设计规则检查为特点的计算机辅助设计c a d ( c o m p u t e ra i d e dd e s i g n ) 到8 0 年 代集逻辑图输入、测试代码生成、电路模拟等工具为一体的计算机辅助工程c a e ( c o m p u t e r a i d e d e n g i n e e r i n g ) ,再到9 0 年代采用标准化多层次的硬件描述语言 ( h d l ) 的设计方法应运而生,使e d a 向高层次设计发展。 h d l 是e d a 工具的界面,是人们对数字集成系统的抽象化、模型化和形式 化的产物。用以描述设计者最为关心的特性。h d l 有以下特点【1 ) : 1 ) 简练而精确的描述,无二义性,有严格的语法结构,能被计算机接受。 2 ) 是一种结构化语言,能有效的描述电路实体的结构。 3 ) 可读性好,便于形成设计文件,作为设计人员之间或用户和厂家之间的 共同约定,准确传递消息。 h d l 发展至今已经有几十年的历史,到8 0 年代就出现了上百种h d l ,如 c o n l o n ( - - 致语言) 、a d l i b ( 行为描述设计语言) 等。它们对设计自动化起到 了促进和推动作用,但这些语言一般都各自面向特定的设计领域与层次,而且众 多的语言也使用户无所适从。因此急需一种面向设计的多领域、多层次,并且得 到普遍认可的标准硬件描述语言+ 。所以进入8 0 年代,h d l 向标准化、集成化方 向发展。最终,v h d l 和v e r i l o g 适应了这种趋势的要求,先后成为由i e e e 制 上海人学坝十学何论文 坠! ! ! 壁塑! 型! ! 堕! ! 堕! 堕业! 坐! ! ! 堡! 壁 定的工业标准。 硬件描述语言v e r i l o g 是p h i l i prm o o r b y 于1 9 8 3 年在英格兰阿克顿市的 g a t e w a y d e s i g n a u t o m a t i o n 硬件描述语言公司设计出来的 2 ,同一年该公司发布 了“v e r i l o gh d l ”及其模拟器。1 9 8 5 年该公司推出改进产品v e f i l o g x l ,实现 了“x l 算法”,使得门级模拟十分有效,v e r i l o g 的用户开始迅速增长,当时它 只是一种专用语言。1 9 8 9 年1 2 月,c a d e n c e 公司收购了g a t e w a y 公司,v e r i l o g 语言和v e r i l o g 模拟器成为c a d e n c e 公司的私有财产。1 9 9 0 年c a d e n c e 意识到如 果v e f i l o g 仍保持为一种封闭的语言,标准化的压力最终会导致工业界转移到 v h d l 上,因此,c a d e n c e 于1 9 9 0 年将v e r i l o g h d l 公开,成立了o v i 组织( o p e n v e r i l o gi n t e r n a t i o n a l ) 负责v e r i l o g 的发展。i e e e 在1 9 9 5 年1 2 月将硬件描述语言 v e r i l o g 正式作为i e e es t d1 3 6 4 1 9 9 5 工业标准,并于2 0 0 1 年1 0 月正式修订为 i e e es t d1 3 6 4 2 0 0 1 工业标准,简称v e f i l o g 一2 0 0 1 。v e f i l o g 的特点如下【3 】: 1 ) v e r i l o g 是一种通用的硬件描述语言,易学易用。在语法上,它与c 语言+ 相似,具有c 语言编程经验的设计人员感到v e r i l o g 很容易学。 2 ) v e r i l o g 允许不同的抽象层次混合在相同的模型内。设计人员可以根据丌 关、门、寄存器传输或行为代码定义硬件模型。此外,设计人员仅需要学习一门 语言用于激励和层次化设计。 3 ) 大多数流行的逻辑综合工具支持v e r i l o g ,使它成为供设计人员选择的一 种语苦。 4 ) 所有制造厂商都提供用于后逻辑综合模拟的v e r i l o g 库。因此,用v e r i l o g 进行芯片设计允许厂商进行范围宽广的选择。 5 ) 编程语言接口( p r o g r a ml a n g u a g ei n t e r f a c e ,p l i ) 是一个强大的功能单 元,用户可以写入定制的c 代码与v e r i l o g 内部数据结构相结合。设计人员还可 以通过p l i 定制一个v e f i l o g 模拟器以满足需要。 v e r i l o g 从诞生起就与生产实际紧密结合在一起,据报道,全世界近9 0 的 半导体公司都使用v e f i l o g 进行设计。迄今为止,全球有7 0 多家公司提供基于 v e r i l o g 的模拟器、综合器及其它工具。v e r i l o g 支持2 5 0 种各类a s i c 、f p g a 及 其它类型的库。在国际市场上,v e r i l o g 已成为一种很有竞争力的硬件描述语言。 1 2 并行v e r i l o g 模拟的研究意义 随着集成电路规模的急速增长,i c 设计工作变得越来越复杂,i c 设计者总 是希颦e d a 工具能够在最短的时问内得出模拟结果,以便于对原来的设计工作 做出俨确的评价。然而,由于v l s i 系统复杂性的不断提升,模拟所花费的时问 上海人学硕士学仿论文 ! 生! ! ! 塑! ! 坚! ! ! 型! ! ! ! ! ! ! g 堕望! ! ! 塑塑 越来越长,模拟计算速度越来越成为设计进程中的一个瓶颈部分【4 】。 为了解决这一问题,有效地提高模拟速度,国内外专家提出了很多模拟算法。 但是,这些算法基本上局限于在单机上实现,所得到的效果并不十分显著,速度 的提升局限在一个有限的层次上。专用的硬件加速器或并行模拟器能够有效的提 高模拟速度,但它们的价格太过昂贵,而且不具有通有性。在传统模拟方法无法 取得突破的情况下,并行逻辑模拟作为一个新的研究领域丌始受到重视,它基于 并行离散事件模拟( p d e s ) 模型,通过分散模拟工作量到并行机的多个处理器 上或者普通的网络节点上来减少模拟时间,因此它被看作是解决模拟速度这一问 题的有效途径。 v e r i l o g 作为一门被广泛使用的硬件描述语占,如果能够建立支持v e f i l o g 的 并行模拟平台,不仅对整个i c 设计领域都有意义,而且可以缩小国内外的差距, 提高我国在集成电路设计领域的竞争力。同时,因为并行逻辑模拟并不需要特殊 的硬件支持,在普通的网络工作站上即可实现,所以,它具有很好的应用前景。 1 3 国内外研究现状 并行逻辑模拟的概念早在八十年代就提出来了。国内外许多大学和机构的学 者都对此进行了研究,他们在逻辑网络单元划分、并行模拟模型构建、时钟同步 算法等方面,取得了不小的进展,有些己在并行机上进行了实验【5 i 6 1 。这些研究 成果为并行逻辑模拟的进。步研究奠定了良好的基础。但是,大部分研究都是面 向v h d l 的并行模拟,对v e r i l o g 的并行模拟的研究还很少。在国外,只有加拿 大m c g i l l 大学的c a r lt r o p p c r 7 】等人提出了支持v e f i l o g 的分布式逻辑模拟框架, 但是模拟效果并不理想。在国内,只有国防科技大学的李暾【8 】等人发表过相关文 章,但目前还处于起步阶段,和国外还有一定差距。 1 4 本文主要研究内容 论文的研究课题是上海一应用材料研究与发展基金( a m 基金) 资助的基 于硬件描述语占的并行逻辑模拟系统项目的一部分。该基金项目的研究重点是 如何提高硬件描述语言v h d l 和v e r i l o g 的模拟速度,其主要的思想是通过多个 节点进行并行模拟。 本文首先描述了并行v e r i l o g 模拟的系统结构,然后对系统中按照功能划分 的模块进行逐一介绍,最后给出了总结和展望。具体结构如下: 第二章描述了并行v e r i l o g 模拟的系统设计思想,简要地分析影响并行模拟 上海人学硕士学位论文 ! 堑! 型墅! ! ! ! 堡! ! 塑! ! ! ! ! ! ! g 堕望! ! ! 竺坐! 越来越k ,模拟计算速度越来越成为设计进程中的一个瓶颈部分- 4 j 。 为了解决这一问题,有效地提高模拟速度,国内外专家提出了很多模拟算法。 但是,这些算法基本上局限于在单机上实现,所得到的效果并不十分显著,速度 的提升局限在一个有限的层次上。专用的硬件加速器或并行模拟器能够有效的提 高模拟速度,但它们的价格太过昂贵,而且不具有通有性。在传统模拟方法无法 取得突破的情况下,并行逻辑模拟作为个新的研究领域丌始受到重视,它基于 并行离散事件模拟( p d e s ) 模型,通过分散模拟工作量到并行机的多个处理器 上或者普通的网络节点上来减少模拟时间,因此它被看作是解决模拟速度这一问 题的有效途径。 v e r i l o g 作为一门被广泛使用的硬件描述语占,如果能够建立支持v e n l o g 的 并行模拟平台,不仅对整个i c 设计领域都有意义,而且可以缩小国内外的差距, 提高我国在集成电路设计领域的竞争力。同时,因为并行逻辑模拟并不需要特殊 的硬件支持,在普通的网络工作站i - _ 目n 可实现,所以,它具有很好的应用前景。 1 3 国内外研究现状 并行逻辑模拟的概念早在八十年代就提出来了。国内外许多大学和机构的学 者部对此进行了研究,他们在逻辑网络单元划分、并行模拟模型构建、时钟同步 算法等方面,取得了不小的进展,有些已在并行机上进行了实验p 】1 6 。这些研究 成果为并行逻辑模拟的进步研究奠定了良好的基础。但是,大部分研究都是面 向v h d l 的并行模拟,对v e r i l o g 的并行模拟的研究还很少。在国外,只有加拿 大m c g i l l 大学的c a r lt r o p p e r 7 等人提出了支持v e r i l o g 的分布式逻辑模拟框架, 但是模拟效果并不理想。在国内,只有国防科技大学的李暾1 等人发表过相关文 章,但目前还处于起步阶段,和国外还有一定差距。 1 4 本文主要研究内容 论文的研究课题是上海应用材料研究与发展基金( a m 基金) 资助的基 于硬件描述语言的并行逻辑模拟系统项目的一部分。该基金项目的研究重点是 如何提高硬件描述语言v h d l 和v e r i l o g 的模拟速度,其主要的思想是通过多个 节点进行并行模拟。 本文首先描述了并行v e r i l o g 模拟的系统结构,然后对系统中按照功能划分 的模块进行逐一介绍最后给出了总结和展望。具体结构如下: 第二章描述了并行v e r i l o g 模拟的系统设计思想,简要地分析影响并行模拟 第二章描述了并行v e r i l o g 模拟的系统设计思想,简要地分析影响并行模拟 上海人学硕p 学位论文 t h ep o s t g r a d u a t et h e s i so fs h a n g h a iu n i v e r s i t y 性能的五个主要因素以及它们之间的关系,然后拙述了系统的整体结构。 第三章描述了前端分析模块的设计与实现,前端分析模块完成对v e r i l o g 语 言的词法、语法和静态语义分析,生成中阳j 格式。 第四章首先简要介绍了v e f i l o g 模拟语义和时问偏差协议的系统模型,然后 介绍了时间偏差协议的实现w a r p e d 模拟核的构成,最后描述了并行模拟核心 库的各个组成部分。 第五章介绍了代码生成模块的设计与实现,代码生成模块分为电路划分器和 代码生成器两部分,这里讨论了电路划分的三大原则,介绍了四种电路划分算法 以及它们在系统中的实现和代码生成的过程。 第六章是实验结果的比较分析。 第七章是总结与展望。 上海人学硕十学位论文 里! ! ! 坐型! 坐! 堕堡堕! ! 塑g ! ! ! 芏! ! ! ! 堑 第二章并行v e r i l o g 模拟的系统设计 本章从总体上阐述了并行v e r i l o g 模拟所涉及到的几个主要方面,介绍了并 行v e r i l o g 中采用的并行编程模型和并行模拟方法,并对影响并行模拟性能的因 素作了简要的分析,最后给出了本系统的整体结构图。 2 1 并行编程模型 目前两种最重要的并行编程模型是数据并行和消息传递【9 】。数据并行编程模 型的级别比较高,编程相对简单,但它仅适用于数据并行问题;消息传递编程模 型的编程级别相对较低,但消息传递编程模型可以有更广泛的应用范围。 数据并行是将相同的操作同时作用于不同的数据,因此适合在s i m d ( s i n g l e i n s t r u c t i o nm u l t i p l ed a t a ) 和s p m d ( s i n g l ep r o g r a mm u l t i p l ed a t a ) 并行计算机 上运行。在向量机上通过数据并行求解问题的实践说明,数据并行可以高效地解 决一大类科学与工程计算问题。然而,对于非数据并行类的问题,如果通过数据 并行的方式来解决,一般难以取得较高的效率。数据并行不容易表达甚至无法表 达其它形式的并行特征。 消息传递即各个并行执行的部分之间通过传递消息来交换信息,协调步伐 控制执行。消息传递一般是面向分柿式内存的,但是它也可适用于共享内存的并 行机。消息传递为编程者提供了更灵活的控制手段和表达并行的方法,一些用数 据并行方法很难表达的并行算法,都可以用消息传递模型来实现。灵活性和控制 手段的多样化,是消息传递并行程序能提供较高执行效率的重要原因。 消息传递模型一方面为编程者提供了灵活性,另一方面,它也将各个并行执 行部分之间复杂的信息交换和协调、控制的任务交给了编程者,这在一定程序上 增加了编程者的负担,这也是消息传递编程级别低的主要原因。 并行v e r i l o g 模拟所涉及的电路模型各种各样,有的可能适合数据并行,但 大多数情况下难以用数据并行来简明地表达,而消息传递模型可以非常清楚地描 述出并行逻辑模拟的特征,比如异步性和各个子系统之间的信息传递性。并行 v e r i l o g 模拟模型在某种意义上说就是消息传递模型的一种具体应用。为了减少 消息传递模型编程的复杂性和提高系统的可维护性,本系统采用分层设计方法, 即在最低层的并行核中实现了消息传递模型的m p i 通信,并将其封装起来,同 时向j 二提供发送、接收等通信接 j ,在上层的模拟处理中只要调用这些接口就可 以实现消息的传递,而不必关心发送或接收的进程是在本地节点还是远程节点 上海人学硕十学何论文 ! 些! ! 坠墅! ! ! 塑! ! ! ! ! ! ! ! ! ! 塑g 墅型! ! 兰堡塑 上。 2 2 并行v e r i l o g 模拟方法 2 2 1 解释型模拟和翻译型模拟 v e r il o g 模拟可以分为解释型模拟和翻译型模拟。解释型模拟的实现方法较 为直观,利于实现调试功能,但在运行速度和内存占用方面的性能较低:首先, 模拟是一个多周期的循环过程,而解释型v e r i l o g 模拟的每个模拟周期较长,因 而整体运行时间长;其次,在解释型模拟运行的全过程中始终需要保存庞大的动 态数据结构以便进行模拟控制及信息保存,因此要占据很大的空间。解释型模拟 适于对局部电路设计的调试工作,而对整个大规模的电路进行总体功能模拟时, 则需依靠翻译型v e r i l o g 模拟来解决时间和空间复杂性的问题。 翻译型模拟一次将v e r i l o g 语言翻译成某种高级语言代码( 例如c 语言) ,然 后编译执行该高级语言程序。此种方法将大量工作尽可能在翻译过程完成,大大 缩短了每个模拟周期的运行时阳j ,从而保证整个系统的高效率。基于上述考虑, 本文提出4 哿v e r i l o g 翻译成c + + 语言的翻译型模拟的设计思想。 2 2 2 模拟的并行化方法 对于模拟的并行实现,首先需要考虑的是采用什么样的方法以及在何种层次 上来并行化模拟的操作,比较常见的几种方法是算法并行、数据并行和模型并行。 算法并行:使用流水操作技术,通过在不同的处理器上执行独立的程序步来 加速主循环的执行,使用这种方法的并行性受到主循环步数的限制。 数据并行:使用不同的处理器模拟独立的输入向量,这种技术在故障模拟中 特别有效,因为有大量独立的向量需要被模拟。然而在设计验证阶段,这种方法 的效率不高,因为在设计验证阶段,输入向量之间的关联性比故障模拟时要大的 多,即当f j l 输入向量的模拟结果依赖于前一个输入向量的模拟结果,而数据并行 对于这类数据相关性比较高的情况是不太适合的。 模型并行:将整个电路划分为多个子模块,每个子模块由若干个逻辑元件构 成,通过将独立的子模块分配到各个处理机上来实现并行模拟。这是迄今为止最 为流行的种并行逻辑模拟方法,本文讨论的即是这种并行化方法。 模型并行属于并行离散事件模拟( p d e s ) 的范畴,它通常是基于事件驱动 的。在一个离散事件模拟系统中,系统变量被建模成一系列的离散量,这些离散 上海人学硕+ 学位论文 坠! ! ! ! 壁塑! ! 堕! ! ! ! ! ! 堕! ! 塑g 坠! 型! ! :! 婴堕 量的值只会在各个离散时间点上发生改变。 2 3 影响并行模拟性能的因素分析 影响并行模拟性能的因素主要有五个:电路结构、定时粒度、目标结构、同 步算法、划分和映射。理解这些因素对模拟性能的影响对于并行模拟系统的建立 和进一步研究探索具有重要的理论指导意义。 电路的结构:包括电路本身的拓扑结构和输入向量,它们对模拟性能具有重 要的影响,有些电路在并行模拟时表现出非常好的性能,而有些电路的并行模拟 结果则很差。即使对于同一个电路,不同的输入向量也会产生相差较大的模拟结 果。由于电路的结构是i c 设计者根据实际的应用需求来确定的,因此在模拟系 统中不能加以改变。 定时粒度:模拟覆盖电路的多个层次,每一个层次都有其对应的定时粒度, 比如从细粒度的0 1 n s 到粗粒度的零延迟。定时粒度对于模拟器的性能有很大影 响,一般来说,使用细粒度的模拟器得到的模拟结果更加精确,但需要更长的模 拟时洲,相反,粗粒度的模拟器可以得到更快的模拟速度,但没有细粒度的模拟 器来得精确。本文讨论的并行模拟主要是为了探讨并行模拟的加速潜力,因此, 在保证模拟正确性的前提下,模拟速度是第一位的,所以在本系统使用粗粒度的 标准延迟。 目标结构:主要指并行机采用的体系结构和物理存储模式等,我们的实验是 以上海大学“自强2 0 0 0 ”作为平台的,由于实验条件的限制,没有在其它结构 的并行机环境下进行测试,所以不准备对这一部分进行详细的讨论,有关内容可 以参考文献【| “。 划分和映射:划分和映射的目的是将整个电路分成若干个子部分并将它们分 配到各个处理器上执行,它主要是通过划分算法柬实现的,划分算法和下面讨论 的同步算法是并行逻辑模拟实现过程中的两个关键因素。所谓划分算法就是根据 某种分割原则或规定,将原来在单独一个处理器上执行的串行作业,按照某种方 式分配到多个处理器上并行执行,使得每一个处理器上能够执行原有作业在进行 划分后产生的各个子作业,进而获得比串行作业更快的执行速度1 12 1 。在划分过程 中主要考虑的是通信量和负载平衡等问题。在本系统中引入了四种划分算法,文 中将给出它们的实现和测试结果。 同步算法:在事件驱动模拟算法的执行过程中,事件典型地维持在一个时侧 有序的队列中,在串行模拟时,只要依次取出事件执行,因而不会引发因果错误。 而在并行模拟中,有多个事件队列存在,通常是一个处理器维护一个,为了保证 上海人学硕士学位论文 t h ep o s t g r a d u a t et h e s i so fs h a n g h a iu n i v e r s i t y 处理器之间事件因果的正确性,必须对事件的计算进行协调和同步,同步算法即 用来完成这类任务。 目前,在并行模拟中使用的时日j 同步算法手要有全局时钟同步方法和异步方 法。常用的异步方法主要有保守异步 1 1 14 峙乐观异步。保守异步方法要求每个 进程的局部模拟时间的任何一次推进都必须保证不违反事件的因果关系,即在某 个进程将局部模拟时间推进到时间t 之前,它必须确认不会再收到任何一个带有 时问标记小于t 的消息。乐观异步方法允许各个局部模拟时间完全独立地向前推 进,当发现因果错误的时候就采用某种机制进行恢复,最流行的一种乐观异步方 法就是时间偏差( t i m ew a r p ) 协议 i 。从国外的并行模拟研究所得出的实验数 据分析中可以看出,在分布式内存环境下,乐观异步方法( 都采用的是时间偏差 协议) 所得到的性能要比另外两种方法来得好,因此,本系统采用时间偏差协议, 本文将在第四章对时间偏差协议的系统模型进行详细讨论。 电路活动率分析:除了上面提到的五个影响逻辑模拟性能的因素之外,电路 的活动率也得到各家专家的广泛关注,而其中并行度的研究是主要内容之一,即 使用经验的数据来推导出并行逻辑模拟的速度上界。如果能够在理论上提供这个 值,那么对于并行逻辑模拟的研究无疑具有非常重要的指导意义。虽然对电路活 动性的研究已有很多年,但各个实验结果得出的结论是不尽相同的,有时甚至是 完全相反的,导致这种情况的原因主要有以下几个:1 ) 使用了不同的标准来衡量 电路活动。2 1 使用了不同的串行模拟器。3 ) 使用了不同的抽象层次和时间粒度。 4 ) 使用了不同的电路和测试向量。5 ) 电路本身的结构太过复杂和多样化。 这些结果从一个侧面反映了一个事实,即并行模拟还有很多的工作要做,要 在理论上得到一个一致的结果是非常困难的,这也是我们研究并行v e n l o g 模拟 的一个重要原因,因为在没有得到完全的结论之前,任何一个并行模拟器的建立 都将会为并行模拟的进一步研究发展提供新的经验数据。 2 4 并行v e r i l o g 模拟系统的整体结构 并行v e r i l o g 模拟系统的整体结构如图2 1 所示,v e r i l o g 描述在经过前端分 析模块后被转换为中问格式,此时中间格式保存了整个设计信息。代码生成模块 以中间格式为输入,首先对设计进行确立,生成电路网表。然后利用划分算法对 整个电路模型进行划分,最后以并行模拟核心库为模板,生成与设计等价的c + + 代码。模拟时,将生成的c + + 代码与并行模拟核心库和w a r p e d 库链接生成可执 行程序,就可以在分布式环境下进行并行模拟了。 上海人学硕十学位论文 ! ! ! ! ! ! ! g ! 塑! 苎! ! ! 望! ! ! ! ! ! ! 竖! 型旦! ! ! ! 翌! 生 r 。 r 厂一 r 。厂一 中间格式一、_ 代码生成器一l 。+ + 代码r 。j 并行环境i ,7 广,一一一、广 ,7 :j 。【j 一一,。一7 、l 【一_ _ _ _ 一h 厂 “、 m - e | w 模a 拟r p 核e de , 图2 - 1 并行v e r i l o g 模拟系统的整体结构 9 上海人学硕 j 学位论文 ! 堡! ! 壁望! 垫坐! ! ! ! ! ! ! ! ! ! ! ! g ! ! ! 旦! ! ! ! ! 堕! 第三章前端分析模块的设计与实现 前端分析模块的功能是对输入的v c r i l o g 源代码进行词法分析、语法分析和 静态语义分析,生成源描述的中刚格式。 3 1v e r i l o g 语法的概要描述 v e r i l o g 既是一种行为描述的语言也是一种结构描述的语言。这就是说,无 论描述电路功能行为的模块或描述元器件或较大部件互连的模块都可以用 v e r i l o g 语言来建立电路模型。v e r i l o g 模型可以是实际电路的不同级别的抽象。 这些抽象的级别和它们对应的模型类型共有以下五种: 1 ) 系统级( s y s t e m ) :用语言提供的高级结构实现设计模块外部性能的模型。 2 ) 算法级( a l g o r i t h m ) :用语言提供的高级结构实现算法运行的模型。 3 ) r t l 级( r e g i s t e rt r a n s f e rl e v e l ) :描述数据在寄存器之间流动和如何处 理和控制这些数据流动的模型( 以上三种都属于行为描述,只有r t l 级才能与 逻辑电路有明确的对应关系) 。 4 ) 门级( g a t e l e v e l ) :描述逻辑门以及逻辑门之间连接的模型。 5 ) 开关级( s w i t c h 1 e v e l ) :描述器件中三极管和储存结点以及它们之间连 接的模型。 一个复杂电路系统的完整v e r i l o g 模型是由若干个v e r i l o g 模块构成的,每一 个模块又可以由若干个子模块构成。其中有些模块需要综合成具体电路,而有些 模块只是与用户所设计的模块有交互联系的现存电路或激励信号源。利用 v e r i l o g 语言结构所提供的这种功能就可以构造个模块间的清晰层次结构来描 述极其复杂的大型设计,并对所作设计的逻辑电路进行严格的验证。 3 1 1v e r i l o g 模块基本概念 在v e r i l o g 语言中,模块是基本的构造单元,它可以由如图3 1 所示的几个 部分组成。一个模块类似c + + 语言中的模板,通过它可以创建实际的对象。当调 用个模块时,v e r i l o g 从模板中创建一个单独的对象。每个对象都有各自的名 称、变量、参数和i o 接口。从模块的模板中创建对象的过程称为例示,而对象 称为实例。在一个模块的定义中不能包含另一个模块的定义,但是可以通过例示 包含其他模块的实例。通过使用模块定义来描述复杂的模块,设计人员可以更好 上海火学硕士学位论文 ! 堕! ! 壁g 翌! ! ! 塑里墅! ! ! ! ! ! 竺g 坐! 望! 些! 堡塑 地控制设计的复杂度 m o d u l e 模块名 端u 说叫 参数眦喇( t , j 选瑚) ”g 其他熏最的说叫蕺据漉语句 ;。聍嚣j :删黜嚣瓢 模腆中 任务和目鼓 幽3 - 1 模块结构幽 一个模块可以包含多个组成部分。模块必须以关键字m o d u l e 丌始,以关键 字e n d m o d u l e 结束,其他组成部分端口表、端口声明、参数声明、变量声明 和信号声明、数据流语句、行为块、更低层模块的例示以及函数和任务都是可选 项,可以根据设计的需要来选择。 作为一个完整的设计,在完成设计模块进行模拟时,还需要一个激励模块。 激励模块通常称作测试台,是用来测试设计模块的,也用v e r i l o g 语言进行描述, 它通常是顶层模块。 3 1 2v e r i l o g 中的行为建模语句 v e r i l o g 允许设计人员用算法来描述设计的功能,也就是描述电路的行为。 一个行为描述是用高层次抽象的方式来描述电路的,它不需要详尽叙述电路的实 现细节,行为建模与c 语言编程类似。 v e r i l o g 语言中最基本的行为建模语句是2 个结构化过程语句:i n i t i a l 语句和 a l w a y s 语句。结构化过程i n i t i a l 语句和a l w a y s 语句形成了基本的行为模型,所 有其他的行为语句只出现在这两个结构化过程语句内。一个i n i t i a l 模块只执行一 次,而a l w a y s 模块可连续执行直到模拟结束。 对于在行为设计中经常用到的程序代码,v e r i l o g 提供了任务和函数,这使 得相同的程序代码可以在设计中不同的地方被引用,而不用繁琐地一再键入相同 的程序代码,并且使用任务和函数可以将程序分成一个个有特定功用的模块,使 程序更加易读。 上海人学硕+ 学位论文 ! ! ! ! ! ! ! 堑! ! ! ! 堕! 堕! ! ! ! ! ! ! ! ! g ! ! ! 坚! ! ! ! 堡! 型 3 1 3v e r i l o g 中的结构建模语句 v e r i l o g 的结构建模语句分为两部分,即逻辑级建模和开关级建模。逻辑缴 建模用来为模块建立逻辑结构,指明其端口、子模块、逻辑功能,以及与其实现 直接对应的互连方式。而开关级建模通过v e r i l o g 语言提供的基本的m o s 和 c m o s 晶体管,使得设计人员可以用这些器件从逻辑上实现一些电器特征。 逻辑级建模允许设计人员通过元件来描述设计的逻辑实现。v e r i l o g 使用模 块定义来描述元件,这些元件有其他模块和门基元( v e r i l o g 语言为标准逻辑函 数提供了门级基元) 组成,它们可以任意复杂。逻辑建模所用的基本数据类型是 线网,线网是由门和连续赋值语句驱动的。 开关级建模在抽象的逻辑和模拟晶体管级之间提供一个抽象层次,用来描述 传输门的互联,这些传输门就是单个的m o s 管和c m o s 管的抽象。开关级晶体 管可以模拟为开或关、导通或不导通。此外,由互联线网传送的值是从模拟电压 或电流的整个值域中抽象出来的几个离散值。这些值称作信号强度。 一个结构模型可能包含行为建模语句,持续赋值语句,还可能引用其他模块 或是门级基元的模块例示语句,以及所有这些语句的组合。通过使用模块定义来 描述复杂模块,设计人员能够更好地控制设计的复杂性。 3 2 前端分析模块的结构 3 3 中间格式的设计 图3 2 前端分析模块结构图 由于直接将v e r i l o g 描述转换为可模拟的c + + 描述比较困难,因此我们有必 要设计一种中间结构,它能够将源描述中的信息保存起来,以方便后面的语义分 上海人学硕+ 学位论文 业! ! 型! ! 塑型! ! ! 塑! ! ! ! ! ! ! g ! ! ! 旦! 竺登! 堕 析和代码生成。在此处,中唰格式被设计成一个c + + 类库,类库中的每个类对应 着v e r i l o g 中的一个语法元素,这样经过语法分析后,整个v e r i l o g 描述就被保存 在一个用中间格式表示的模块类对象列表中。 中间格式的类主要是用来描述v e r i l o g 中的语法元素的,因此按照v e r i l o g 语法来划分,中问格式类库中的类可以分为以下几部分: 1 ) 模块类,模块类描述v e r i l o g 中的m o d u l e 实体。v e r i l o g 源描述经过语法 分析后,整个描述信息被保存在一个模块列表中。模块可以看作一个命名的容器 和范围,包含了诸如线网和门例示等语义实体。模块类的定义如下所示: c l a s sm o d u l e p u b l i c : e x p l i c i tm o d u l e ( c o n s ts t r i n g & n a m e ,c o r l s ts v e c t

温馨提示

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

评论

0/150

提交评论