(计算机系统结构专业论文)基于virtexⅡ的动态部分可重构技术的研究与系统实现.pdf_第1页
(计算机系统结构专业论文)基于virtexⅡ的动态部分可重构技术的研究与系统实现.pdf_第2页
(计算机系统结构专业论文)基于virtexⅡ的动态部分可重构技术的研究与系统实现.pdf_第3页
(计算机系统结构专业论文)基于virtexⅡ的动态部分可重构技术的研究与系统实现.pdf_第4页
(计算机系统结构专业论文)基于virtexⅡ的动态部分可重构技术的研究与系统实现.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(计算机系统结构专业论文)基于virtexⅡ的动态部分可重构技术的研究与系统实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 近年来,一种新的系统实现方式一可重构系统受到学术界的关注。它采用 动态电路重构技术,在运行时根据需要动态改变系统的电路结构,从而使系统 既有采用硬件优化所能达到的高速度和高效率,又能像软件那样灵活可变、易 于升级。随着f p g a 的一些改进,可重构系统投入实际应用成为可能。在很多对 运算速度和灵活性都有很高要求的应用得到广泛的采用。 动态部分重构技术充分地利用了f p g a 芯片提供的可重构功能,更好地推动 了可重构计算的发展,正成为当前国内外的研究热点。它减小了配置位流下载、 重构f p g a 芯片的时间,节省硬件资源,有效地提高了系统的整体性能。 本文对基于模块和基于差异两种动态部分可重构实现技术作了剖析,搭建 了硬件开发平台,针对i s e 用于开发动态部分可重构系统中存在的不足,设计并 实现了动态部分可重构系统框架自动生成工具,最后应用这个工具在硬件开发 平台上设计并实现了可应用于c r c i p 分组首部校验的动态部分可重构系统,并 对实现的结果作了分析。 关键词:f p g a ,v i r t c x - i i ,可重构计算,动态部分可重构 a b s t r a c t a b s t r a c t i nt h er e c e n t y e a r s ,t h er e c o n f i g u r a b l es y s t e m ,an e wm e t h o do fs y s t e m i m p l e m e n t a t i o n ,i sw i d e l yn o t i c e db yt h ea c a d e m i c i ta d o p t st h et e c h n o l o g yo f r e c o n f i g u r a t i n no fc i r c u i t r ya tr u n t i m e w h e ni t i sr t m n i n g ,t h es t r u c t u r eo ft h e c i r c u i t r yc a l lb ed y n a m i c a l l ym o d i f i e do nd e m a n d i th a sn o to n l yt h eh i g hs p e e da n d t h eh i g he f f i c i e n c ya st h eo p t i m i z e dh a r d w a r es y s t e m s t h er e c o n f i g u r a b l es y s t e mh a s m u c ha t t r a c t i v ep r o s p e c t so fa p p l i c a f i o no nt h o s es i t u a t i o n sw h e r eb o t ht h es p e e da n d f l e x i b i l i t ya r ei m p o r t a n t a st h ed e v e l o p m e n to f t h et e c h n o l o g yo f t h ep r o g r a m m a b l e l o g i cd e v i c e sa n ds o m ei m p r o v e m e n t so nt h ec i r c u i t r y - d e s i g nm e t h o d o l o g y , n o wi ti s p o s s i b l et ou t i l i z et h er e c o n f i g u r a b l es y s t e mt ot h ep r a c t i c a la p p l i c a t i o n s p a r t i a l l yr u n - t i m er e c o n f i g u r a t i o n ( p a r t i a l l yr t r ) i sb e c o m i n gac o n c e r n e d f i l e d ,d o m e s t i c a l l ya n da b r o a d i tt a k e sa d v a n t a g eo ft h ep a r t i a lr e c o n f i g u r a b l e c h a r a c t e r i s t i c si nf p g ad e v i c e sa n dp r o m o t e st h ed e v e l o p m e n to fr e c o n f i g u r a b l e c o m p u t i n g i ts o l v e st h ep r o b l e mo ft a k i n gt o om u c ht i m et oc o n f i g u r et h ef p g a s t h ep a r t i a l l yr t rs a v e sh a r d w a r er e s o u r c e sa sw e l la si m p r o v i n gt h e s y s t e m p e r f o r m a n c e t h i sd i s s e r t a t i o na n a l y z e st w of l o w sf o rp a r t i a lr e c o n f i g u r a t i o n :m o d u l eb a s e d a n dd i f f e r e n c eb a s e d a st ot h es h o r t c o m i n g so fi s e ,w eh a v e d e v e l o p e da m a i n f r a m e - g e n e r a t o rf o rp a r t i a l l yr u n - t i m er e c o n f i g u r a b l es y s t e ma sw e l la st h e h a r d w a r ed e v e l o p m e n tp l a t f o r m ,o nw h i c hap a r t i a l l yr u n t i m er e c o n f i g u r a t i o n s y s t e mf o rc r c i pc h e c k i n gh a sb e e na c h i e v e db yu s i n gt h et o o l s a f t e rt h a t ,t h e p e r f o r m a n c eh a sb e e ns t u d i e d k e yw o r d s :f p g a ,v i r t e x i i ,r e c o n f i g u r a b l ec o m p u t i n g ,p a r t i a l l yr u n t i m e r e c o n f i g u r a t i o n 南开大学学位论文版权使用授权书 本人完全了解南开大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:侨鲁暇 加巧年f 月f 6 目 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 解密时间:年 月日 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究t 作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名:傣辱l 昭 h o 5 年f 月co 日 第一章引言 第一章引言 第一节两种传统的计算方法 伴随着计算机技术以及电子技术的飞速发展,计算机技术和电子技术在人 类生产和生活的各个领域中得到广泛的应用并产生了深刻的影响。 在生产、生活领域中,存在许多复杂的算法和数据处理过程,传统的方法 是编制基于通用处理器的软件或者设计专用的硬件来实现这些算法和数据处理 过程。 软件的实现方法优点在于:比较灵活,一旦需求发生变化相对比较容易做 出相应的修改;目前在软件开发中广泛使用的开发语言的标准程度高,可以获 得较好的移植性;在软件设计中,模块化、面向对象思想使得软件可复用程度 高;开发和调试工具比较成熟,在开发过程中易于的验证,有利于缩短开发周 期;软件开发环境可以重复使用,在开发平台方面不需要重复投资。 同时,软件的实现方法也存在一些问题:目前广泛应用的通用处理器由于 其考虑通用性,不是针对解决某类问题、运行某类算法而设计的,难于高效地 实现算法来满足实际应用中对计算速度的要求,例如实时图像处理、加密解密、 快速傅立叶变换、小波变换等各种算法。尤其突出的一点是,许多算法在理论 上可以使用并行的方式实现,从而极大提升算法的运行速度,例如矩阵运算、 快速傅立叶变换等,但基于单通用处理器的软件实现方式却对并行处理缺乏有 效的支持。 硬件的实现方法优点在于:电路的具有并发特性,特别适合于实现可并行 处理的算法;可针对具体算法设计优化的实现方法,不受现有的平台制约。电 路的并发性,和具有针对性的系统实现方法,使得硬件的实现方法通常具有较 高的性能。 然而,硬件设计、开发周期长,不易于调试和实现原型系统,难于修改, 可复用性差;使用现有通用器件搭建容易受器件型号、性能和市场等因素的制 约,而专用芯片的设计和生产成本比较高,经济效益差,市场风险高。 另外,数字系统规模具有不断扩大的趋势,数字系统的逻辑电路资源增长很 难满足对系统逻辑功能增长的需求。在任何条件下,系统的逻辑电路资源都是 有限的,另外还需要考虑系统成本的因素,所以能使用的系统的逻辑电路资源 第一章引言 不可能要求是无限大。系统设计就不能一味追求传统的大规模、高密度,而需 要考虑利用有限的逻辑资源实现更大规模的逻辑功能,在系统的逻辑电路资源 既定的条件下,就要求对系统的逻辑电路资源在时间轴方向上分时复用,在必 要的时刻重新建立逻辑电路资源的连接关系,也就是对系统进行重构。 当对计算速度有较高要求的时候,通常使用硬件的实现方法。但需要对算 法作修改时,相应的电路修改将会比较困难,而且成本较高,开发周期长,系 统规模受系统的逻辑电路资源限制,逻辑电路资源的利用低。当对计算速度要 求不是很高,但对系统的灵活性和可扩展性有要求时,基于通用处理器的软件 实现方法是比较好的解决方法。在实际应用中,往往对计算速度和系统的灵活 性都有要求,这时软件和硬件两种方法都无法很好的满足要求。研究人员希望 有一种实现方法能兼有硬件的速度和软件实现方法的灵活性,于是就提出了可 重构计掣1 】【2 】【3 】的概念。 第二节可重构计算 随着微电子技术的发展,出现了大规模可编程芯片f p g a l 4 1 1 5 1 1 6 1 。基于s r a m 的f p g a 以c l b ( c o n f i g u r a b l el o g i cb l o c k ) 为基本逻辑单元,能够在电路级别上实 现各种逻辑功能,同时具有可重构性、可扩展性,开发周期短,易于仿真,兼 有软件的灵活和硬件的高效等特点。同时,单片f p g a 的门电路承载能力越柬越 强,等效门电路规模从几千门到上千万门,能够实现相当复杂程度的算法,满 足对计算性能的要求。 f p g a 的出现使得可重构计算从理论研究正走向实际应用,从八十年代中期 开始,可重构计算取得了较大的发展,在容错计算、并行处理、可重构指令集 计算机等方面研究中得到了应用。进入九十年代,可重构计算技术成为研究热 点,1 9 9 3 年1 e e e 出版物索引第一次出现了可重构体系结构( r e c o n f i g u r a b l e a r c h i t e c t u r e ) 这一主题关键词。 可重构计算还处于不断的发展过程中,目前在学术界还没有形成严格、统 一的定义。在通常意义下,可重构计算是指在系统中使用f p g a 实现算法,以 f p g a 为主要的计算单元进行计算,通过对f p g a 进行重新配置来实现对系统重 构,具有硬件资源利用率高、所能实现的系统规模可大大超过单片f p g a 所具有 的硬件资源的特点。 第一章引言 第一个性能上有突破的可重构计算系统是九十年代早期完成的,也称为定 制计算机【7 】【8 l ( c u s t o mc o m p u t e rm a c h i n e c c m ) 。他们均采用了在一个宿主计算机 上连接多片f p g a 芯片的方式构成。在需要高度并行和位处理级别运算操作应用 中证明这两种结构的确实现了比其他结构更高的性能。例如,s p l a s h 2 | 9 系统 在基因串匹配问题上比同时代的超级计算机要高几个数量级。 随着数字逻辑系统功能复杂化的需求,单片系统的芯片难朝着超大规模、 高逻辑密度的方向发展。对于一个大规模的可重构系统而言,系统构重构时隙 往往远大于其正常运行的时间,系统的重构时隙成为约束系统性能加速比的瓶 颈。例如,r r a n n 9 1 项目,系统重构的时间大约占了整个系统运行时间的8 0 。 系统重构时隙与重构规模成比例。无论对于时序逻辑系统,还是组合逻辑系统, 或者组合时序混合系统,从时间轴上来看,系统中的各个功能模块并不是任何 时刻都在激活或者工作的,而是根据系统外部的整体要求,轮流和循环地激活 或者工作。动态部分可重构系统1 2 1 1 4 1 1 7 1 由于能够对系统的局部进行重构,有效地 减小系统重构时隙,更能有效提高可重构系统的性能加速比。因此,动态部分 可重构系统成为可重构系统研究领域中热点。 可重构计算已经成为可能对未来的计算机体系结构产生重大影响的研究方 向,已经成为研究热点,但可重构系统的实现技术作为一个比较新的领域,还 缺乏商业厂家的有效支持,缺乏成熟、有效的开发工具和集成开发环境。而基 于f p g a 的可重构技术本身比较复杂,为可重构计算研究过程中原型系统的开发 和实际应用系统的开发带来了很大的困难。在开发可重构系统的过程中,由于 缺乏工具软件的支持,开发人员不得不花费大量的精力于可重构技术的实现、 系统框架的建立上,而系统的框架往往具有较多的共同点。为了让开发人员能 够把主要精力放在系统功能的实现上,有必要开发一些自动开发工具,让开发 人员通过指定一系列的参数就能够完成相当大部分的关键工作,从而减轻开发 人员的负担,有效地提高开发效率。 第三节论文内容安排 本论文阐述了f p g a 的可熏构基本原理,研究和总结了实现基于f p g a 的动 态部分可重构系统的两种关键技术一基于模块和基于差异的实现方法,提出了 可重构系统的基本模型,设计并实现了可重构系统的自动生成工具,最后应用 第一章引言 这个工具在硬件开发平台上设计并实现了可应用于c r c i p 分组首部校验的动态 部分可重构系统,并对实现的结果作了分析。 本论文的内容的基本安排如下: 第一章为引言,介绍了传统的两种算法实现方法:软件和硬件的实现方法, 分析了软件和硬件两种实现方法的特点和不足的地方,介绍了可重构计算的基 本概念、发展历史以及现状,并简述了可重构计算的技术对计算机技术的发展 所带来的机遇。 第二章为可重构系统的概述,从可重构系统的系统模型和可重构性两方面 来介绍了可重构系统。介绍了主要的可重构系统系统模型,阐述了静态可重构 系统、动态可重构系统、全局可重构系统以及部分可重构系统的概念,并重点 分析和评价了动态部分可重构系统的研究意义。 第三章为f p g a 基本原理和开发流程,分析了f p g a 的基本特性,f p g a 基本 结构,以及主要组成部件,包括可编程输入腧出资源、基本可编程逻辑单元、 嵌入式块r a m 以及布局布线资源。介绍了f p g a 设计流程,包括电路设计与输入、 功能仿真、综合、综合后仿真、实现、布线后仿真与验证和下板调试等主要步 骤。 第四章为动态部分可重构技术,研究了动态部分可重构技术的两种实现方 法:基于模块的实现方法和基于差异的实现方法,从设计原则、实现方法的角 度对上述两种实现技术进行剖析,并对两种实现方法做了对比。 第五章为可重构系统的开发平台,包括硬件平台和软件平台两个方面。在 硬件方面,阐述了系统的核心部件f p g a 芯片的型号选择原则,开发平台的选择 与构建;在软件平台方面,介绍了现有的商业集成的开发环境的使用,并针对 现有的开发环境对动态部分可重构系统开发的不足之处,设计并实现了动态部 分可重构系统的自动生成工具。 第六章为c r c i p 校验原型系统,利用自动生成工具生成c r c | p 校验原型系 统框架,在第五章中搭建的硬件平台上完成设计和实现,并对实现结果做了分 析。 第七章为总结与展望,对论文的研究内容以及研究过程中遇到的问题作了 总结,研究现状和研究过程中发现的问题对未来的研究工作做了展望。 4 第二章可重构系统概述 第二章可重构系统概述 f p g a 的出现使得可重构计算从理论研究正走向实际应用,从八十年代中期 开始,可重构计算取得了较大的发展,在容错计算、并行处理、可重构指令集 计算机等方面研究中得到了应用。可重构系统结合了传统的a s i c 技术和通用处 理器技术的特点,既具有通用处理器的灵活性,又具有可以达到甚至超过a s i c 的计算速度。 一般来说,可以从系统模型和系统的可重构特性来描述一个可重构系统。 可重构系统模型主要是指可重构逻辑与宿主机做b 理器之间的耦合关系,可重构 特性可从可重构逻辑的重构时刻( 动态可重构和静态可重构) 和重构粒度( 全局可 重构和局部可重构) 两个方面来描述。 第一节可重构系统模型 2 1 1 宿主机与可重构逻辑松耦合 属于这类系统的可重构逻辑部分一般包含多个f p g a ,而固定部分则是一个 宿主计算机,二者之间通过接口总线连接起来。可重构逻辑类似与宿主计算机 的协处理器,接受宿主计算机发出的指令和数据,并将结果通过y o 接v ( 立i :i i s a 、 p c i 、并口、串口等) 传回宿主机,如图2 1 所示: 图2 1 宿主机与可重构逻辑松耦合 这类系统的优点是设计简单。由于容易获得组成系统的部件,所以制造速 度快、编程方便,还可以根据需要灵活地选用不同的宿主机和c p u 。但其缺点也 是明显的,因为所有的数据交换都需要通过外部的接口总线来完成,这部分的 性能成了系统的瓶颈,限制了系统的性能加速比。 第二章可重构系统概述 2 1 2 处理器与可重构逻辑松耦合 属于这个分类系统的f p g a 阵列直接与中央处理器通过独立的数据和控制 总线进行连接,对c p u 来说相当于增加了一个多功能协处理器。与上一节所描述 的结构相比,该结构最大改进在于取消了同宿主机的外部通信接口,从而大大 提高了f p g a 阵列同c p u 的数据交换速度。这类系统的结构如图2 2 所示: 特权总线控制器 处理器基于f p g a 白勺协处理器 图2 2 处理器与可重构逻辑松耦台 在这类系统中执行某个运算时,任务被分解到硬件部分( f p g a ) 和软件部分 ( c p u ) ,可以用硬件结构快速实现的运算被映射至4 f p g a 上构成特定电路,而简 单的运算处理可控制功能则仍由c p u 来完成。任务划分主要由用户来决定,很大 程度上应该由编译系统来完成或由手工完成。 可重构逻辑在系统中的组织形式非常灵活,既可以配置成一个复杂的功能 单元用来执行某些耗时的操作,也可以配置成为多个简单的单元来一次处理多 个数据。对于c p u 来看,前者相当于指令集中增加了一条复杂指令,后者则相当 于增加了单指令多数据( s i m d ) 的支持能力。 这类系统同样具有前一类系统的易用特点。图中的处理器可以根据需要选 择不同的产品,只要该c p u 支持类似协处理器的工作方式即可。适合这种系统的 最适合用于需要执行大量复杂指令的场合。 2 1 3 处理器与可重构逻辑紧耦合 上一节介绍的结构在性能上受处理器一协处理器接口的限制,为此研究人 员将这个接口设计为紧耦合系统来解决这个问题,这就是第三类可重构计算结 构,如图2 3 所示 内部总线 处理器( 核) 基于f p g a i 均协处理器 图2 3 处理器与可重构逻辑紧耦合 第二章可重构系统概述 通常属于这分类系统中的c p u 不是通常商业上可直接应用的成品,而是以核 形式提供的设计模块。需要与可重构逻辑资源在芯片上集成起来。c p u 核可以与 通用处理器兼容,也可以是完全自行开发的专有电路。最终的系统一般是一个 或多个专用的集成电路芯片。例如,g a r p t “】中描述的m i p s 处理器与一个基于 f p g a 协处理器共同构成的可重构系统即属于这种分类。 由于这个类型系统将c p u 核与可重构逻辑资源集成在同一个芯片中,c p u 的一些参数如地址和数据总线宽度可以根据需要进行必要调整来实现二者之间 更快的数据交换,前面两个系统中c p u 管脚的位置对系统速度的影响在这个系统 中也变得很小,可以实现更快的速度。 这类系统的缺点是设计比较困难。前面两类结构的系统均可以直接选用现 成的芯片,而这类系统需要设计者按照全定制的方式设计专用集成电路,难度 较大。目前,这个方向是可重构计算器件部分的研究热点,除了研究人员外, 工业界也有大公司注意到这种趋势。目前传统意义上的可编程器件公司和逻辑 电路公司均对此展开研究,有的公司已经推出系列产品。一类是女n x i l i n x f l 2 1 等生 产f p g a 的公司,他们在自己的产品中计划增加嵌入式的微处理器核;另一类是 女n l s i 等逻辑电路供应商,他们则在自己的处理器产品上提供可编程的逻辑单元 以满足电路的灵活性的需要。这两类产品均属于处理器于可重构逻辑紧耦合的 分类。 2 1 4 处理器、存储器与可重构逻辑紧耦合 在c p u 和f p g a 可重构逻辑之间实现高速通信后,存储子系统成为系统的瓶 颈。在现代计算环境中,c p u 和存储器之间速度差别越来越大,而上一节可重构 结构中c p u 仍然受到于存储器交换数据带宽以及速度问题的影响。当c p u 、存储 器和可重构逻辑集成在一起后,二者之间分别以非常高的带宽传递数据。所以 第4 类结构中将c p u 、存储器和可编程逻辑集成在同一个芯片上,称为单芯片可 重构计算系统。其结构如图2 4 所示: 第二章可重构系统概述 图2 4 处理器、存储器与可重构逻辑紧耦合 这种类型的可重构系统依然保持了上一节所述系统的c p u 和f p g a 紧耦合 结构,所以也保持了它所带来的高速灵活接口的优点。同时,片上存储系统和 c p u 与f p g a 接口能力则进一步提高了系统的性能。运算部件可以直接与c p u 和 f p g a 高速交换,而在其他几种结构系统中数据往往通过c p u 的寄存器后才送往 可编程单元。受到目前工艺水平的限制,嵌入式存储器的容量还不能做得足够 大,所以这里的存储器需要引入多级存储的概念,即片上存储器的作用类似于 现代高性能处理器的片上c a c h e ,在芯片外部还有大容量存储器模块,片上存 储器则可以设计成各种宽度和深度来来满足系统的需要。 2 1 5 系统模型的比较 无论是宿主机与可重构逻辑松耦合系统还是处理器与可重构逻辑松耦合系 统,它们都需要通过处理器外部的数据通路来进行数据传输。采用松耦合连接 方式的可重构系统,其数据传输路径比较长、可靠性比较差、数据宽度受限制, 所以其数据传输速率比较低,成为系统性能的瓶颈,限制了可重构系统的性能 加速比。采用紧耦合方式的可重构系统,数据传输在f p g a 芯片内部进行,数据 传输路径短、可靠性高、数据宽度受限制很小,所以数据传输速率比较高,采 用紧耦合模型易于构造高性能的可重构系统。 宿主机与可重构逻辑的耦合模型相对与处理器与可重构逻辑的耦合模型而 言,前者的系统整体体积比较大,通用性好。处理器与可重构逻辑的耦合模型 具有低功耗、体积小等特点,更适合于在嵌入式系统中应用。 第二章可重构系统概述 第二节可重构系统的可重构特性 2 2 1 静态可重构系统 静念可重构b 3 ( c t r , c o m p l i l e - t i m er e c o n f i g u r a b l e ) 系统,即在系统运行之前 对f p g a 进行配置,在系统运行的过程中不改变f p g a 的逻辑功能,可概括为一 次配置一直运行。静态可重构系统中,f p g a 的配置信息保存在e 2 p r o m ,通 常在系统上电初始化时通过专门的配置芯片将对f p g a 进行配置。对系统的重构 通过重写e 2 p r o m 的配置信息来实现。 静态可重构系统的运行的过程中只能被配置一次,系统的硬件资源无法在 分时复用,所能实现的逻辑功能和系统规模受到片内资源的制约。 2 2 2 动态可重构系统 随着f p g a 技术的发展,出现了所谓的f p g a 动态可重构技术1 川( r t r , r u n t i m er e c o n f i g u r a b l e ) 。f p g a 动态可重构技术是指对于特定结构的基于 s r a m 编程的f p g a ,在一定的控制逻辑驱动下,可对芯片逻辑功能实现动态切 换。基于这种动态特征研究人员提出了一种新的思想:即分时复用相对小规模 的硬件逻辑资源来实现大规模系统功能。空间分布的硬件资源其器件外部特征 不变,而内部逻辑功能在时间轴意义上交替切换,从而共同在时间空间上构成 系统整体逻辑功能,这种动态重构可以是整个系统意义上的重构,也可以是系 统一部分意义上重构。 动态可重构系统,其含义是指在系统运行之前对f p g a 进行配置,在系统运 行的过程中根据需要可重配置f p g a ,使之具有新的逻辑功能,从而实现系统重 构。这样,系统所能支持的配置只依赖于保存配置信息的存储器容量的大小。 动态可重构系统按照系统重构的粒度可分为动态全局可重构系统0 4 1 1 1 0 i 和动 态部分可重构系统【7 1 1 14 1 。 1 动态全局可重构系统 动态全局可熏构系统在进行重构时,由于对整个f p g a 芯片的进行重新配 置,在重配置的过程中芯片停止工作,系统旧的逻辑功能失去,新的逻辑功能 尚未建立,系统的逻辑功能在时间轴上断裂( 可称之为系统构重构时隙) ,系统 的功能无法动态连续。例如,实现人工神经网络b p 算法的r r a n n ( r u n - t i m e 9 第二章可重构系统概述 r e c o n f i g u r a b l e a r t i f i c i a ln e p a ln e t w o r k ) 项目即属于动态全局可重构系统。 r r a n n 系统的重构时间大约占了整个任务执行时间的8 0 ,用于系统重构的时 间远远大于其执行任务的时间。所以,相对于减少指令的运行时间来说,减少 重构的时间将会更加有效地提高系统的性能。 运行 翻2 5 动态全局可重构系统 2 动态部分可重构系统 动态部分可重构系统在进行重构时,由于只对f p g a 芯片的部分区域进行重 新配置,所以在重配置的过程中芯片仍然工作,系统在建立新的逻辑功能的过 程中,未被重配置部分的逻辑功能仍然正常,即系统的逻辑功能在时间轴上是 动态连续的。如图2 6 所示为动态部分可重构系统。例如,r r a n n 2 t t l 和动态指 令集计算机【l ”( d l s c ,d y n a m i ci n s t r u c t i o ns e tc o m p u t e r ) 。 运行 时刻1 时刻2 时刻n 图2 6 动态部分可重构系统 基于f p g a 的动态部分可重构将一个纯空间的数字逻辑系统化解为在时间 空间上混合构建的数字逻辑系统。这种新型的数字逻辑系统从时间轴和外部看 上去,和原来整体功能一样;但从资源利用来看,由于可以动态地重复利用资源, 资源的利用率将成倍地提高,实现的数字逻辑系统规模不受硬件资源的限制。 o 第二章可重构系统概述 2 2 3 动态部分可重构系统的研究意义 目前,数字系统规模具有不断扩大的趋势,单片电路的资源增长很难满足系 统规模扩大的需求。在任何条件下单片电路的资源都是有限的,另外还需要考 虑系统成本的因素,所以能使用的单片电路资源不可能要求是无限大。在一个 单片电路无法完整实现系统时,系统设计就不能一味追求传统的大规模、高密 度,而需要考虑利用有限的逻辑资源实现更大规模的逻辑功能。从单片电路的 资源利用率看,在相同速度地条件下,在一定的时间区问内,其功能模块的平 均使用率将下降。换言之,随着系统规模的扩大,单片电路的资源利用率反而 下降。 数字逻辑系统是基于各种逻辑功能模块的组合。但是无论对于一个时序逻 辑系统,还是组合逻辑系统,或者组合时序混合系统,从时间轴上来看,系统 中的各个功能模块并不是任何时刻都在激活或者工作的,而是根据系统外部的 整体要求,轮流和循环地激活或者工作。 随着数字逻辑系统功能复杂化的需求,单片系统的芯片丁f 朝着超大规模、 高逻辑密度的方向发展。对于一个大规模的动态全局可重构系统而言,系统构 重构时隙甚至远远大于其正常运行的时间,例如前面提到的r r a n n 项目,系统 重构的时间大约占了整个系统运行时间的8 0 。在芯片重配置速度既定的情况 下,减小系统重构粒度将能有效地提高系统地性能。 第三章f p g a 基本原理与开发流程 第三章f p g a 的基本原理与开发流程 第一节f p g a 的基本特性 f p g a 既继承了a s i c 的大规模、高集成度、高可靠性的优点,又克服了普通 a s i c 设计周期长、投资大、灵活性差的缺点,具有高集成度、高可靠性、设计 周期短、投资小和灵活性高等特点,正逐步成为复杂数字硬件电路设计的理想 首选。 随着v l s i 工艺的不断提高,单一芯片内部可以容纳上百万个晶体管,f p g a 芯片的规模也越来越大,单片逻辑门数已达几百万,甚至上千万门。芯片的规 模越大,所能实现的功能就越强,同时也更适于实现s o c 。 f p g a 芯片在出厂之前都做过百分之百的严格测试,而且f p g a 的设计比较灵 活,发现错误时可直接更改设计,减少投片风险,节省了许多潜在的花费,所 以不但复杂系统需要使用f p g a 来完成,甚至a s i c 也要把实现基于f p g a 的功能 样机作为必须的步骤。 f p g a 一般可以反复地编程、擦除,在不改变外围电路的情况下,设计不同 片内逻辑就能实现不同的电路功能。所以,用f p g a 试制功能样机,能以最快的 速度占领市场,甚至在某些领域,因为相关标准协议发展太快,设计a s i c 可能 跟不上技术的更新。在这种情况下,通常只能使用f p g a 来完成系统的研制与开 发。 f p g a 开发工具智能化,功能强大。现在,f p g a 开发工具种类繁多,智能化 高、功能强大。应用各种工具可以完成从输入、综合、实现到配置芯片等一系 列功能。还有很多工具可以完成对设计的仿真、优化、约束、在线调试等功能。 这些工具使得设计人员可以集中精力进行电路设计,快速将产品推向市场。 本章所介绍的内容主要针对x i l i n x 公司生成的f p g a 。 第二节f p g a 的基本原理 2 第三章f p g a 基本原理与开发流程 以往f p g a 主要用于构建a s i c 的原型系统和作为a s i c 的替代方案,在作为 a s i c 的替代时,具有价格便宜、体积小的特点。目前,f p g a 已经成为最常用的 可重构芯片,如图3 1 所示为f p g a 的基本结构。 图3 1f p g a 基本结构 简化的f p g a 基本由六部分组成:可编程输入输出单元( 1 0 b ) 、基本可编程逻 辑单元( c l b ,c o n f i g u r a b l el o g i cb l o c k ) 、嵌入式块r a m ( b l o c kr a m ) 、丰富的布 线资源( r o u t i n g ) 、底层嵌入功能单元和嵌入式专用硬核。除底层嵌入功能单元和 嵌入式专用硬核外,下面对其中最为常用的四种基本部分做一下简单介绍。 3 2 1 可编程输入输出单元 输入输( i n p u t o u t p u t ) 单元简称i o 单元,是芯片与外界电路的接口部分, 完成不同电气特性下对输入,输出信号的驱动与匹配需求。为了使f p g a 有更灵活 的应用,目前大多数f p g a 的i ,o 单元被设计为可编程模式,即通过软件的灵活设 置,可以匹配不同的电气标准与i o 物理特性;可以调整匹配阻抗特性,上下拉 电阻,可以调整输出驱动电流的大小等。 可编程i o 单元支持的电气标准因工艺而异,不同器件商或不同器件族的 f p g a 支持的i o 标准也不同。一般说来,常见的电气标准由l v t t l 、l v c m o s 、 s s t l 、h s t l 、l v d s 、l v p e c l 和p c i 等。值得一提的是,随着v l s i 工艺的飞速 发展,目前可编程i o 支持的最高频率越来越高,一些高端f p g a 通过d d r 寄存 器存取技术,可以支持高达2 g h z 的频率。 第三章f p g a 基本原理与开发流程 3 2 2 可编程逻辑块 ,可编程逻辑块是可编程逻辑的主体,可以根据设计灵活地改变其内部连接与 配置,完成不同的逻辑功能。如图3 2 所示为可编程逻辑块结构图, 图3 2 司编程逻辑块 f p g a 一般是基于s r a m 工艺的,其基本可编程逻辑单元通常是由查找表 ( l u t ,l o o ku pt a b l e ) 和寄存器组成的。f p g a 内部查找表一般为4 输入,查找表 一般完成纯组合逻辑功能。f p g a 内部寄存器结构相当灵活,可以配置为带同步 异步复位或置位、时钟使能的触发器( f f ,f l i pf l o p ) ,也可以配置成为锁存器 ( l a t c h ) 。f p g a 中一般依赖于寄存器完成同步时序逻辑设计。比较经典的基本可 编程单元配置为一个寄存器加一个查找表。但是不同厂商的寄存器和查找表的 内部结构有一定的差异,而且寄存器和查找表的组合模式也有所不同。例如, x i l i n x 可编程逻辑单元由上下两部分构成,每部分都由一个寄存器加一个查找表 组成,被称之为逻辑单元( l c ,l o g i cc e l l ) ,两个逻辑单元之间有一些共用逻辑, 可以完成逻辑单元之间的配合工作与级连。 3 1 3 嵌入式r a m 目前大多数f p g a 都有内嵌的块r a m ( b l o c ks e l e c t r a m ) 。f p g a 内部嵌入可 编程r a m 模块,拓展了f p g a 的应用范围并增强了使用的灵活性。f p g a 内嵌的 块r a m 一般可以灵活配置为单口r a m ( s p r a m ,s i g n l ep o r tr a m ) ,双口 1 4 第三章f p g a 基本原理与开发流程 r a m ( d p r a m ,d o u b l ep o r t sr a m ) ,伪双i z l r a m ( p s e u d od p r a m ) 、c a m ( c o n t e n t a d d r e s s a b l em e m o r y ) 和f i f o 等常用存储结构。f p g a 中并没有专用的r o m 硬件资 源,实现r o m 的方法是对r a m 赋予初值,并保持该初值。除了块r a m 以外,还 可以灵活地将l u t 配置成r a m 、r o m 、f i f o 等存储结构,这种技术被称为分布 式r a m ( d i s t r i b u t e dr a m ) 。分布式r a m 适用于多块小容量r a m 的设计。 3 1 4 布线资源 布线资源连通f p g a 内部的所有单元,连线的长度和工艺决定着信号在连线 上的驱动能力和数据传输速度。f p g a 内部有着非常丰富的布线资源,这些布线 资源根据工艺、长度、宽度和分布位置的不同而划分为不同的等级,有一些是 全局性的专用布线资源,用以完成器件层与层之间的一些高速信号和一些第二 全局时钟信号的布线;还有一些叫做短线资源,用以完成基本逻辑单元之间逻 辑互连和布线;另外在基本逻辑单元内部还有着各式各样的靠线资源和专用时 钟,复位等控制信号线。布线资源如图3 3 所示,c l b 通过交换矩阵进行连接,在 交换矩阵中交换节点由6 个交换开关组成。 r r 阡、 _ - t f 一i lu i 川i :一二t - 一, 掺;- - 、:仁_ - ? 图3 3 布线资源 设计者通常不需要直接选择布线资源,实现过程一般是由布局布线器根据输 入的逻辑网表的拓扑结构和约束条件等自动选择可用的布线资源连通所用的底 层单元模块,所以设计者通常忽略布线资源。其实布线资源的使用和设计的实 第三章f p g a 基本原理与开发流程 现结果有直接关系。时序约束属性就是通过调整布线资源以使设计的布局布线 结果达到所需的时序性能。 第三节f p g a 的开发流程 一般来说,完整的f p g a 设计流程包括电路设计与输入、功能仿真、综合优 化、综合后仿真、实现( 翻译、映射、布局布线) 、布线后仿真与验证和下板调试 等主要步骤,如图所示: 图3 4f p g a 开发流程图 3 3 1 电路设计与输入 电路设计与输入使根据设计方法将所设计的功能描述给e d a 软件。常用的 设计输入方法有硬件描述语言f f t o l ) 和原理图输入法,两种辅助的设计输入方法 有波形输入和状态机输入方法。 1 6 第三章f p g a 基本原理与开发流程 原理图设计输入法在早期应用得比较广泛,这种方法根据设计要求,选用 器件、绘制原理图、完成输入过程。这种方法的优点是直观、便于理解、元件 库资源丰富。但是在大型设计中,这种方法的可维护性较羞,不利于模块建设 与重用。更主要的缺点是:当所选用的芯片升级换代后,所有的原理图都要做 相应的改动。 h d l 是目前进行大型工程设计时最为常用的设计方法。其中影响最为广泛的 h d l 语言是v h d l 和v e r i l o g h d l 。它们的共同特点是利于自顶向下的设计模式, 利于模块的划分与复用,可移植性好,通用性好,设计不因芯片的工艺与结构 的变化而变化,更利于向a s i c 的移植。 使用波形输入法时,只要绘制出激励波形和输出波形,e d a 软件就能自动根 据相应关系进行设计。而使用状态机输入法时,设计者只需要画出状态转移图, e d a 软件就能自动生成相应的h d l 代码或原理图,使用十分方便。 3 3 2 功能仿真 电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功能 是否符合设计要求。功能仿真有时也被称为前仿真。常用的仿真工具有m o d e l t e c h 公司的m o d e l s i m ,s y n o p s y s 公司的v c s ,c a d e n c e 公司的n c v e r i l o g 和 n c v h d l 等。通过仿真能及时发现设计中的错误,加快设计进度,提高设计的 可靠性。 3 3 3 综合优化 综合优化( s y n t h e s i s z e ) 是指将h d l 语言、原理图等设计输入翻译成由与、或、 非门、鼬w 、触发器等基本逻辑单元组成的逻辑连接( 网表) ,并根据目标与要求 ( 约束条件) 优化所生成的逻辑连接,输出d f 和e d n 等文件( 这些是什么文件,进 行描述) ,供f p g a 厂家的布局布线器进行实现。常用的专业综合优化工具有 s y n p l i c i t y 公司的s y n p l i f y s y n p l i f yp r o 、a m p l i f y ,s y n o p s y s 公司的f p g ac o m p l i e r i i 等。另外,f p g a 厂商的集成开发环境也带有一些综合工具,如x i l i n xi s e l l 7 1 中的x s t 1 7 i 等。 3 3 4 综合后仿真 综合完成后需要做综合后仿真以检查结果是否与原设计一致。在仿真时, 把综合生成的延时文件反标到综合仿真模型中去,可估计门延时带来的影响。 第三章f p g a 基本原理与开发流程 综合后仿真虽然比功能仿真精确一些,但是只能估计门延时,而不能估计线延 时,仿真结果与布线后的实现情况还有一定的差距,并不十分准确。这种仿真 的主要目的在于检查综合器的综合结果是否与设计输入一致。 3 3 5 实现 综合结果的本质是一些由与、或、非门,触发器,r a m 等基本逻辑单元组 成的逻辑网表,它与芯片实际的配置情况还有较大差距。此时应该使用f p g a 厂 商提供的工具软件,根据所选芯片的型号,将综合输出的逻辑网表( n e t l i s t ) 与具 体f p g a 器件结合起来,这个过程叫做实现( i m p l e m e n t a t i o n ) 过程。x i l i n x 的实现 过程分为翻译( t r a n s l a t e ) ,映射( m a

温馨提示

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

评论

0/150

提交评论