(微电子学与固体电子学专业论文)基于fpga的高性能计算研究.pdf_第1页
(微电子学与固体电子学专业论文)基于fpga的高性能计算研究.pdf_第2页
(微电子学与固体电子学专业论文)基于fpga的高性能计算研究.pdf_第3页
(微电子学与固体电子学专业论文)基于fpga的高性能计算研究.pdf_第4页
(微电子学与固体电子学专业论文)基于fpga的高性能计算研究.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

摘要 随着信息技术的迅猛发展,在国民经济各领域对信息处理能力的要求也越来 越高,尤其是高性能计算方面的需求快速增长。在实践中,由于受到物理元器件 极限速度和技术水平的限制,单个的处理器远远不能满足现代许多领域中具有挑 战性的大规模计算课题对计算资源的需求。各种高性能计算平台步入了人们的生 活中,f p g a 从简单的胶合逻辑控制器发展到性能很高的可编程架构,利用其强 大的并行计算的特性开始步入了高性能计算平台的队伍,它已经被广泛的应用于 图像处理、生物信息、计算机科学、航天等各个领域。 本论文首先介绍了f p g a 的基本结构及特点,及相关开发工具。在此基础上, 采用a l t e r a 公司的e p 3 c 1 2 0 构建了基于f p g a 的蒙特卡罗模拟9 路围棋系统和 二维i s i n g 模型的蒙特卡罗模拟系统。蒙特卡罗模拟9 路围棋系统实现了3 _ 5 层a l p h a - b e t a 最大最小树搜索,其中三层为全搜索,四层和五层为选择性搜索。 选择性搜索候选点由计算机上计算得出,传给f p g a 。整个系统通过仿真实现和 验证,在搜索速度上与单机上实现相比得到了1 7 1 倍的提高,智力上与g n ug o3 8 进行比较,得到了与其相当的棋力,这也验证了b r u t ef o r c e 在围棋游戏的适用 性。二维i s i n g 模型的蒙特卡罗模拟系统模拟了2 4 * 2 4 的平均磁矩随温度变化的 曲线,得到了与理论解符合的结果。整个实现过程利用模式匹配和并行算法相比 于单机上所实现的提高了7 5 0 倍。两个系统的实现充分体现了f p g a 在并行计算 的优势与潜力。 关键词:h p c ;f p g a ;围棋;伊辛模型 a b s t r a c t w i t ht h er a p i d d e v e l o p m e n to f i n f o r m a t i o nt e c h n o l o g y , t h ed e m a n df o r i n f o r m a t i o np r o c e s s i n gc a p a b i l i t i e sh a si n c r e a s e di na l la r e a so fn a t i o n a le c o n o m p a r t i c u l a r l yi n t h er a p i dg r o w t ho fh i g hp e r f o r m a n c ec o m p u t i n g d u et o p h y s i c a l c o n s t r a i n to ns p e e do fc p u ,s i n g l ec o r ec p uc a nn o tm e e tc o m p u t a t i o n a ln e e d so f s o c i e t y a l lk i n d so fh i g hp e r f o r m a n c ec o m p u t i n gp l a t f o r m sh a v eb e e nd e v e l o p e d f p g ah a sb e e nd e v e l o p e df r o ms i m p l el o g i cc i r c u i tt oh i g hp e r f o r m a n c ec o m p u t i n g p l a t f o r md u et oi t sp o w e r f u lp a r a l l e lc o m p u t i n gc a p a b i l i t i e s n o wi th a sb e e nw i d e l y u s e di nm a n ya r e a s ,s u c ha si m a g ep r o c e s s i n g ,b i o l o g i c a li n f o r m a t i o n ,c o m p u t e r s c i e n c e ,s p a c ea n d s oo n t h i sp a p e rf i r s t l yi n t r o d u c e st h eb a s i cs t r u c t u r ea n dc h a r a c t e r i s t i c so ff p g a ,a n d r e l a t e dd e v e l o p m e n tt 0 0 1 s y s t e m st h a tc a r r i e so u tm o n t ec a r l os i m u l a t i o n so f9 x 9g o g a m ea n dt w o d i m e n s i o n a li s i n gm o d e lw e r eb u i l db a s e do ne p 3 c 12 0f p g ac h i p f r o ma l t e r a i nt h es y s t e mo fm o n t ec a r l os i m u l a t i o no f9 x 9g og a m e ,f i x e dd e p t h a l p h a b e t ag a m et r e es e a r c h e so f3t o5p l i e sw e r ei m p l e m e n t e d 3 - p l ys e a r c hw a s c a r r i e do u ti nf u l lg a m et r e e ,w h i l et h e4a n d5 - p l ys e a r c h e sw e r ei m p l e m e n t e do n p a r t i a lg a m et r e es p a n n e df r o mp r e - s e l e c t e dm o v e s t h ep r e - s e l e c t e dm o v e sw e r e c a l c u l a t e do nt h eh o s tc o m p u t e ra n dp a s s e dt ot h ef p g ac h i pb e f o r es e a r c hs t a r t s t h es y s t e mh a sas p e e d u po f171t i m e so v e ro u rn a i v eci m p l e m e n t a t i o no nas i n g l e c p u t h es y s t e mw a st e s t e da g a i n s tg n u g 0 3 8 ,a n dh a sac o m p a r a b l es t r e n g t ha s g n ug o3 8 t h i si st h ef i r s tt i m et h a tb r u t e f o r c et r e es e a r c hh a sa c h i e v e ds u c h p l a y i n gs t r e n g t hi nt h eg a m eo fg o m a g n e t i cp r o p e r t i e so fa 2 4 x 2 4t w o - d i m e n s i o n a l m a g n e t i cs p i ng r i dw e r es i m u l a t e dw i t hm o n t ec a r l om e t h o do nf p g a t h es y s t e m o b t a i n e dr e s u l t sc o n f o r m i n gt ot h e o r e t i c a lc a l c u l a t i o no fs u c hs y s t e m s t h ef p g a s y s t e m ,w h i c hu s e sp a t t e r nm a t c h i n ga n dp a r a l l e la l g o r i t h m s ,h a sas p e e d u po f7 5 0 t i m e so v e ri m p l e m e n t a t i o no nas i n g l ec p u t h er e a l i z a t i o no ft w of p g ap a r a l l e l c o m p u t i n gs y s t e m sp r o v e st h ep o t e n t i a lo ff p g a i nh i 【曲p e r f o r m a n c ec o m p u t i n g k e yw o r d s :h p c ;f p g a ;g og a m e ;i s i n gm o d e l i i 第一。章绪论 第一章绪论 1 1 高性能计算的发展现状 自1 9 4 6 年世界第一台电子计算机问世以来,计算机技术的进步推动了计算 机的发展和广泛的应用,它经历了从电子管,晶体管,中小规模集成电路到超 大规模集成电路的时代。它的性能根据摩尔定律每1 8 个月翻倍,得到了大幅的 提高。虽然计算机的性能已经很高,并且还在不断提高,但是依然不能满足人 类对计算性能需求的增长速度。在石油勘探、核武器研究、生物信息技术、计 算化学、地震预测预报、气象、天气和灾害预报、地质研究、天体和地球科学、 虚拟现实系统、工业过程改进和环境保护、图像处理等诸多领域都需要大量的 计算来解决。过去4 0 年中处理器性能的提高主要受益于半导体技术,但是这种 技术的改进达到了极限。电路越来越复杂,每一个设计的开发成本高达数百万 美元,数十亿美元才能形成新产品投产能力。时钟速率的提高导致器件功耗增 大,现在已经到了不能迅速散热的地步。单颗处理器性能可提高的空间已越来 越小,同时它无法摆脱的冯诺依曼瓶颈使它只能在某些应用中才能充分发挥效 能,而绝大多数应用中不能发挥高效处理。在这种情况下,通过其他途径获得 高性能计算能力成为一个重要的研究领域。一般来说,根据不同的应用主要有 以下几个方面: ( 1 ) 专用体系结构。在早期,人们主要开始采用专用体系结构。从系统结 构上看,高性能计算机系统可分为传统向量机、s m p ( 对称多处理机) 系统、 m p p ( 超大规模并行处理) 系统、高速互连的异构计算机机群系统。s m p 主要是 由数目相对较少的微处理器共享物理内存和i o 总线形成的计算机系统。m p p 主要由多个微处理器通过高速互联网络构成,每个处理器之间通过消息传递的 方式进行通讯和协调。早期的s m p 和m p p 相比扩展能力有限,不具有很强的计 算能力,但单机系统兼容性好,所以9 0 年代中后期的一种趋势是将s m p 的优点 和m p p 的扩展能力结合,发展成后来的c c - n u m a 结构,即分布式共享内存。 在发展c c n u m a 同时,机群系统( c l u s t e r ) 也迅速发展起来。机群系统是由多 个微处理器构成的计算机节点通过高速网络互连而成,节点一般是可以单独运 第一章绪论 行的商品化计算机。 ( 2 ) 多核技术。由于提高主频受到生产工艺和系统功耗的限制,人们提出 了由传统的单核c p u 向多核发展的技术路线。如今广泛使用的微机已普遍采用 较高主频的双核或四核c p u 。目前顶级计算机已经具有超过2 0 万个核的集成度, 今后还会更多。 ( 3 ) g p u 技术。除了传统c p u 由单核向多核发展的技术路线以外,一种已 经出现而且迅速崛起的高性能计算技术一g p u 技术,成为了近年来研究的热点。 1 9 9 9 年n v i d i a 公司发布g e f o r c e 2 5 6 图形处理芯片时,首先提 g p u ( g r a p h i e s p r o c e s s i n gu n i t ,图形处理单元) 的概念。早期g p u 主要为了加速图形处理,通 用性差。2 0 0 7 年,n v i d i a 公司发布了全新的开发环境c u d a ( c o m p u t e r u n i t e d d e v i c ea r c h i t e c t u r e ,计算统一设备架构) ,这就使得g p u 打破图形语言的局 限成为真正的并行数据处理的超级计算机 9 1 0 ,但面向g p u 的软件开发依然是 制约其应用的主要瓶颈。 ( 4 ) 云计算技术。近些年来,网格技术一直受到计算机界青睐,近期出现 的云计算( c l o u dc o m p u t i n g ) 正日益受到业界关注。它是在分布计算、并行计算、 网格计算等基础上发展起来的一种全新数据密集型超级计算模式,旨在通过网 络把多个成本相对较低的计算实体整合成_ 。个具有强大的计算能力的完美系 统,并借助于诸多先进的商业模式把这种强大的计算能力分布到终端用户手中。 ( 5 ) f p g a 技术。最近几年,新兴的低成本f p g a ( 现场可编程门阵列) ,利 用其在价格、性能、易用性以及功耗方面的优势而开始步入了高性能计算市场。 f p g a j j 口速高性能计算的应用,有点相似于移植单处理器应用到大规模并行处 理器的应用,但是不同计算平台有不同的特色,所使用的算法也是截然不同的。 f p g a 的可编程性和并行计算能力使其非常适合用于开发并行计算应用。 1 2f p g a 在高性能计算领域的应用 f p g a ( 现场可编程门阵列) 是一种新型的可编程逻辑器件,有很大的性能 潜力,完全满足h p c 的市场需求。f p g a 通过逻辑电路实现计算功能,而微处理 器则通过程序和存储器来控制计算过程。f p g a 支持深度可变的流水线结构, 提供大量的并行计算资源,可以在同一个时钟周期内完成非常复杂的功能。与 2 第。章绪论 传统超级计算机上动辄使用数百甚至上千个处理器,不同的是,大约使用十几 个相对便宜的现场可编程门阵列( f p g a ) 芯片,每个f p g a 芯片能够并行地处 理数千个任务;而传统计算机上使用的处理器同一时刻只能处理一个任务。另 外,f p g a 芯片不同于其它的芯片,女i i a s i c 这种专用芯片只能用于某种特定的 算法,灵活性不足,f p g a 支持可编程可重复烧写,用户可根据自己的需要而 设计不同的电路功能。在高性能计算和高吞吐量i o 应用方面,f p g a 已经超越 了专用的d s p 芯片,成为最佳的实现方案。当然,f p g a 这种纯硬件相比于微处 理器或者是其它软件算法,它使用的硬件描述语言也有它的局限性,如链表等 在c 语言很容易实现的东西,在f p g a 里却相当的麻烦,又如乘法和除法以及浮 点运算等在f p g a 的使用都将占用很大的逻辑资源,所以对于结构简单,数据 量大而又存在并行处理特性的算法,f p g a 将是个理想的选择。目前,基于f p g a 的高性能计算在实际应用中运算执行速度提高了1 0 倍、1 0 0 倍也是很常见的。 1 2 1f p g a 在图像处理领域的应用 由于实时视频处理对系统性能的要求极高,几乎所有只具最简单功能的通 用d s p 都不具备此项功能,f p g a 可编程逻辑器件允许设计人员利用并行处理 技术实现视频信号处理算法,并且只需单个器件能实现期望的性能,所以许多 实时图像和视频处理功能均适合于用f p g a 来实现,包括:图像旋转、图像缩 放色彩校正和色度较正、阴影增强、边缘检测、锐化、中值滤波器和斑点 分析等。如在中值滤波器应用中,d s p 处理器需要6 7 个时钟周期执行算法,而 f p g a 只需工作在2 5m h z 频率下,因为f p g a 能并行实现该功能。实现上述功能 的d s p 必须工作在1 5 g h z 频率下,可见在此特定应用中,f p g a 解决方案的处 理能力可以达到1 0 0 m h z d s p 处理器的1 7 倍。其它图像处理算法在f p g a 上的应 用,女l j s o b e l 算子等,也取得了数一t - n 数百倍速度的提高 1 1 - 2 1 。 1 2 2f p g a 在生物信息学领域的应用 近年来,分子生物学发展迅速,加上基因组技术的研发,产生许多生物相 关数据。这些大量积累的数据需要适当的储存、组织,并且能够被加以分析、 利用及搜寻。基因搜索及比对、药物设计等都需要高性能计算设备方能应付大 第一章绪论 量运算需求。i n v i t r o g e n s f 千i a c t i v em o i l 俩大生技公司构建的t i m e l o g i c 生物计算 系统整合f p g a 力f l 速器和基因组学算法,能将新发现的数据和已知的基因进行 快速比对,处理速度相比于c p u 提高了1 0 0 倍以上。f p g a 应用在分子动力学、 基因组测试等其它方面也取得了数十到数百倍的速度提高 2 2 - 2 4 。 1 2 3f p g a 在计算机科学的应用 随着4 c 技术的迅猛发展,以及近十多年来智能控制技术的成就,智能控制在 工业用仪器仪表和信息电器( 认) 产业中得到了广泛应用,其实现手段也趋于多 样化。采用f p g a 实现控制器与使用冯诺伊曼( v o n n e u m a n n ) 结构的微控制 器( m c u ) 相比,具有信息流并行性、快速性、灵活性和易于扩展等特点。特 别在实现复杂智能控制策略时,由于微控制器只能顺序执行程序,随着算法复杂 程度的提高,执行速度必将受到限制。f p g a 可固件串行与并行实现算法,从本 质上提高了处理速度,对实时性要求较高的智能控制过程来说是一种有效的实现 途径。f p g a 已成功的应用于神经网络、人工大脑 2 5 2 7 】。 1 2 4f p g a 在航天领域的应用 基于f p g a 的可重构计算系统加速实现了高性能计算。可重构计算 ( r e c o n f i g u r a b l ec o m p u t i n g ) 技术是指在软件的控制下,利用系统中的可重用资 源,根据应用的需要重新构造一个新的计算平台,达到接近专用硬件设计的高性 能。澳大利亚科学卫星f e d s a t 号( 2 0 0 2 年1 2 月发射升空) 率先将f p g a 的可重构 计算技术运用于航天领域。这颗卫星中采用的可重构器件( x i n l i n x 公司的f p g a ) 是卫星高性能计算有效负载的关键器件。可重构计算技术的采用使卫星无须返回 地面即可改变内部电子线路,从而节省了大量的研发时间与成本。据报道,2 0 0 3 年时这颗卫星的一个方向传感器出现了由振动导致的异常,科学家门通过发送代 码补丁的方法便完成了传感器控制算法的更新,使f e d s a t 号得以正常运行。 1 3 本文的主要研究内容及结构安排 随着信息社会的发展,越来越多的领域需要处理海量的数据。这些需求迫 使高性能计算已经不只是只局限在科学计算、国家高端科技上,在更多的领域 4 第一章绪论 也不断地体现其价值。受到半导体物理过程的限制,微处理器运算速度的提高 已经趋于缓慢,并且微处理器受制于冯诺依曼结构的制约,在一些问题中,处 理速度和性价比不理想。f p g a 是一种新型的可编程器件,因具有并行计算的 特点而逐渐的步入高性能计算平台。基于f p g a 的结构特点和工作原理,本文 在f p g a 上实现了蒙特卡罗模拟9 路围棋系统和二维i s i n g 模型的蒙特卡罗模拟 系统。在9 路围棋博弈系统中,利用f p g a 的流水线技术,设计了1 6 7 级流水线 模拟黑白各走一步的功能,并在此基础上,实现了对整盘围棋的蒙特卡罗模拟, 设计了并行的选子算法和提子算法,系统处理速度达得到了很大的提高。整个 评估过程采用了b r u t ef o r c e 的搜索算法,并与g n ug 0 3 8 进行了测试,这也是第 一次的验证了b r u t ef o r c e 的搜索算法在围棋中的适用性,也是本文工作的一个创 新。在二维i s i n g 模型中,使用了模式匹配的算法实现自旋的更新,把不相关的 格点归为一类进行并行处理,提高了系统的处理速度。 本文各章节的主要内容安排如下:謦 第一章是绪论,主要介绍高性能计算的发展现状以及目前主要使用的一些 高性能计算技术,介绍了f p g a 在高性能计算领域的应用。 第二章是基于f p g a 的数字系统开发,主要分析f p g a 的基本结构及特点、 f p g a 开发流程、软件开发工具、以及开发语言v e r i l o gh d l ,最后介绍了f p g a 的并行处理结构和流水线技术,并以二值形态学腐蚀变化为例,展现了f p g a 的整个开发流程。 第三章阐述了蒙特卡罗模拟9 路围棋系统在f p g a 上的设计与实现,包括硬 件平台、系统整体框架、模块化分,在f p g a 上编程实现各模块的算法如选子 算法、提子算法、模拟棋局模块、通信模块等的设计实现。最后对整个系统与 g n u g o 的测试结果进行分析。 第四章阐述了二维i s i n g 模型的蒙特卡罗模拟在f p g a j x 的设计与实现,详细 介绍了模式匹配算法及并行处理的实现过程和随机数的产生,最后对整个模拟 结果进行分析与讨论。 第五章是系统的总结与展望,总结了本文的主要工作内容,并对f p g a 这个 新的高性能计算平台进行了展望。 第二章基于f p g a 的数字系统开发 第二章基于f p g a 的数字系统开发 2 1f p g a 简介 纵观数字集成电路的发展历史,经历了从电子管、晶体管、小规模集成电 路到大规模以及超大规模集成电路等不同的阶段。发展到现在,主要有3 类电 子器件:存储器、处理器和逻辑器件。存储器保存随机信息( 电子数据表或数 据库的内容) ;处理器执行软件指令,以便完成各种任务( 运行数据处理程序或 视频游戏) ;而逻辑器件可以提供特殊功能( 器件之间的通信和系统必须执行的 其他所有功能) 。逻辑器件分成两类:( 1 ) 固定的或定制的。( 2 ) 可编程的或可 变的。其中,固定或定制的逻辑器件通常称为专用芯片( a s i c ) 。a s i c 是为了 满足特定的用途而设计的芯片,例如m p e 解码芯片等。其优点是通过固化的 逻辑功能和大规模的工业化生产,降低了芯片的成本,同时提高了产品的可靠 性。随着集成度的提高,a s i c 的物理尺寸也在不断的缩小。但是a s i c 设计的 周期很长,而且投资大,风险高。一旦设计结束后,功能就固化了,以后的升 级改版困难比较大。电子产品的市场正在细分,为了满足快速产品开发,产生 了现场可编程逻辑器件( f p g a ) 。 自从1 9 8 4 年美国x i l i n x 公司首先推出世界上第一片现场可编程门阵列( f i e l d p r o g r a m m a b l eg a t ea r r a y , f p g a ) 以来,短短二十几年的发展过程中,以f p g a 为代表的数字系统现场集成技术取得了惊人的发展。f p g a 产品朝着规模越来 越大、开发简单、研制与开发周期短、开发智能化,功能越来越强大的方向发 展。f p g a 既继承了a s i c 的大规模、高集成度、高可靠性的优点,又克服了普 通a s i c 设计周期长、投资大、灵活性差的缺点,己经逐步成为复杂数字硬件电 路设计的理想首选。除了a s i c 的优点外,f p g a j 丕具有以下优点【3 0 】: ( 1 ) f p g a 可以反复地编程、擦除和使用。在外围电路不动的情况下,设 计不同片内逻辑就能实现不同的电路功能。所以,用f p g a 试制功能样片,能 以最快的速度占领市场。甚至在某些领域,因为相关标准协议发展太快,设计 a s i c 可能跟不上技术的更新,只能用f p g a 完成系统的研制和开发。 ( 2 ) 开发过程投资小。f p g a 芯片在出厂之前都做过百分之百的测试,而 6 第二章基于f p g a 的数字系统开发 且f p g a 设计灵活,发现错误时可直接更改设计,减少了投片风险,节省了很 多潜在的花费。所以不但许多复杂系统使用f p g a 完成,甚至连设计a s i c 也要 把实现f p g a 功能样机作为必需的步骤。 ( 3 ) 规模越来越大。随着v l s i t 艺的不断提高,单一芯片内部可以容纳上 百个晶体管,f p g a 芯片的规模也越来越大。单片逻辑门数己超过百万门。芯 片的规模越大所能实现的功能就越强,同时也更适于实现片上系统。 ( 4 ) 保密性能好。在某些场合下,根据要求选用防止反向技术的f p g a , 能很好地保护系统的安全性和设计者的知识产权。 ( 5 ) f p g a 开发工具种类繁多、智能化高、功能强大。电路设计人员在很 短的时间内就可完成电路的输入、综合、实现直到最后的配置芯片。f p g a 软 件易学易用,可以使设计人员更能集中精力进行电路设计,快速将产品推向市 场。 ( 6 ) 新型f p g a 内嵌c p u 或d s p 核,支持软硬件协同设计,可以作为片上 可编程系统( s o p c ) 的硬件平台。 一f p g a 的发展非常迅速,形成了各种不同的结构。按逻辑功能块的大小, f p g a 可分为细粒度f p g a 和粗粒度f p g a 。细粒度f p g a 的逻辑功能块较小,资 源可以充分利用,但连线和开关多,速度慢;粗粒度f p g a 的逻辑功能块规模 大,功能强,但资源不能充分利用。从逻辑功能块的结构上分类,可分为查找 表结构、多路开关结构和多级与非门结构。根据f p g a 内部连线的结构不同, 可分为分段互联型和连续互联型。根据编程方式,f p g a 可分为一次编程和可 重复编程两种。 f p g a 基本结构由基本可编程逻辑模块、可编程输入输出模块、丰富的布 线资源、嵌入式r a m 、底层嵌入功能单元和内嵌专用硬核等组成,如图2 1 所 示【3 l 】。 i 7 第二章基于f p g a 的数字系统开发 图2 1f p g a 的基本结构 ( 1 ) 可编程逻辑模块 可编程逻辑模块是f p g a 的主要组成部分,是实现基本逻辑功能的单元, 遍布整个芯片。它是由查找表( l u t ) 和寄存器( r e g i s t e r ) 组成的,查找表完 成纯组合逻辑功能。f p g a 内部寄存器可配置为带同步异步复位和置位、时钟 使能的触发器,也可以配置成为锁存器。f p g a 一般依赖寄存器完成同步时序 逻辑设计。一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个 查找表,但不同厂商的寄存器和查找表的内部结构有一定的差异,而且寄存器 和查找表的组合模式也不同。 ( 2 ) 可编程输入输出模块 可编程输入输出模块完成的功能是连接芯片与外部封装,通常分布于可编 程逻辑模块的四周。其主要是由输入触发器、输入缓冲器、输出触发锁存器 和输出缓冲器组成。每一个输入输出模块控制一个引脚,可被配置为输入、输 出或双向i o 功能。 ( 3 ) 布线资源 布线资源是一些各种长度的连线和可编程的连接开关。通过对它的配置将 第章基于f p g a 的数字系统开发 内部各个可编程逻辑模块、可编程输入输出模块连接起来,构成各种复杂功能 的系统,连接长度和工艺决定着信号在连线上的驱动能力和传输速度。有全铜 的全局时钟布线资源,也有速度较快、抖动延时很小的长线资源,普通的布线 资源也有许多种。 可编程逻辑模块和布线资源的构造主要有两种类型:查找表类型和多路开 关型。查找表型f p g a 的可编辑逻辑单元是由功能为查找表的s r a m 构成函数 发生器,由它来控制执行f p g a 应用函数的逻辑。s r a m 的输出为逻辑函数的 值,由此输出状态控制传输门或多路开关信号的通断,实现与其它功能块的可 编程连接。多路开关型的f p g a 的基本构成是一个多路开关的配置。利用多路 开关的特性,在多路开关的每个输入接到固定电平或输入信号时,可实现不同 逻辑功能。大量的多路开关和逻辑门连接起来,可以构成实现大量函数的逻辑 块。 ( 4 ) 嵌入式r a m ,目前大多数f p g a 都有内嵌的块r a m 。它一般可灵活 配置为单端口r a m ( s p r a m ,s i n g l e p o r t r a m ) 、双端口r a m ( d p r a m ,d o u b l e p o r t sr a m ) 、伪双端口r a m ( p s e u d od p r a m ) 、c a m ( c o n t e n ta d d r e s s a b l e m e m o r y ) 、f i f o ( f i r s ti nf i r s to u o 等常用存储结构。c a m ,即为内容地址存储 器。写入c a m 的数据会和其内部存储的每一个数据进行比较,并返回与端口 数据相同的所有内部数据的地址。简单的说,r a m 是一种写地址,读数据的 存储单元;c a m 与r a m 恰恰相反。除了块r a m ,x i l i n x 和l a t t i c e 的f p g a 还可以灵活地将u j l 配置成r a m 、r o m 、f i f o 等存储结构。 ( 5 ) 底层嵌入功能单元。底层嵌入功能单元指的是那些通用程度比较高的 嵌入式功能模块,比如p l l ( p h a s el o c k e dl o o p ) 、d l l ( d e ll o c k e dl o o p ) 、d s p 、 c p u 等。随着f p g a 的发展,这些模块被越来越多地嵌入到f p g a 的内部,用 来满足不同场合的需求。 ( 6 ) 内嵌专用硬件核,如s e r d e s ( 串并收发单元) 等。 - 2 2 开发流程 e d a 出现以前,人们用传统的硬件电路设计方法来设计系统,即自下而上 的设计方法。其主要步骤是:根据系统对硬件的要求,详细编制技术规格书, 9 第二章基于f p g a 的数字系统开发 并画出系统控制流图;然后根据技术规格书和系统控制流图,对系统的功能进 行分化,合理地划分功能模块,并画出系统功能框图;接着就是进行各功能模 块的细化和电路设计;各个模块的功能调试完以后,将各个模块的硬件电路连 接起来,再进行调试,最后就完成整个系统的硬件电路设计。这种传统的电路 设计方法的系统仿真和调试要在系统的硬件完成后才能进行,因此存在的问题 只有在后期才能发现,一旦考虑不周,就要重新设计,使得设计的费用和周期 增大。随着大规模专用集成电路的开发和研制,为了提高开发的效率和增加已 有开发成果的可继承性,以及缩短开发周期,各种新兴的e d a 开发工具开始 出现,特别是硬件描述语言h d l 的出现,使得传统的硬件电路设计方法发生 了巨大的变革,就是从系统总体的要求出发,自上而下的逐步将设计内容细化, 最后完成系统的整体设计。f p g a 的简要设计流程基本可分为设计、仿真、编 译、下载等主要步骤如图2 2 所示。 图2 2f p g a 设计流程 ( 1 ) 设计 设计主要是算法设计和设计输入。算法设计时应该充分考虑f p g a 的优势 和劣势,f p g a 最主要的优势是可以同时对大量变量进行逻辑运算和赋值,实现 并行运算;但f p g a 也有它的弊端,对于浮点数运算,乘除法运算等都非常占 据逻辑资源,所以在设计f p g a 算法的时候,应该充分发挥f p g a 可以同时对 大量的变量进行逻辑运算和赋值的优势,而尽量避免使用浮点数运算,乘除法 1 0 第一章基于f p g a 的数字系统) f 发 运算等数值计算功能。对于一些功能上必须顺序执行又要大量模拟计算的问题, 通常利用2 3 节和2 4 节所介绍的流水线型并行结构可以有效的提高处理速度。 当算法设计完成时,就要进行底层的设计输入工作。设计输入可以是原理图输 入、硬件描述语言h d l 输入或者搭建s o p c 平台。h d l 语言在描述状态机、 控制逻辑、总线功能方面较强,使其描述的电路能在特定综合器作用下以具体 硬件单元较好地实现;而原理图输入在项层设计、数据通路逻辑、手工最优化 电路等方面具有图形化强、单元节俭、功能明确等特点,但有太多的局限性, 对于复杂应用基本不考虑。s o p c 的应用也越来越广泛,不过使用h d l 设计依 然是主流,因为使用这种输入,可以很容易地把完成的设计移植到不同厂家的 不同芯片中去,并在不同规模的应用时可以较容易地做修改,同时它最大的优 点是其与工艺无关性,不需要过多的考虑门级及工艺实现的具体细节,只需要 设计时注意时序上的约束。 目前世界上最流行的两种硬件描述语言是v e r i l o gh d l 和v h d l ,都是在 2 0 世纪8 0 年代中期开发出来的。前者是在1 9 8 3 年由g d a ( g a t e w a yd e s i g n a u t o m a t i o n ) 公司的p h i l m o o r b y 首创开发的。两种h d l 均为i e e e 标准。v e r i l o g h d l 就是在用途最广泛的c 语言基础上发展起来的一种硬件描述语言,所以与 v h d l 相比,v e r i l o gh d l 的最大优点是:它是一种非常容易掌握的硬件描述 语言,只要有c 语言的编程基础,通过2 0 学时的学习,再加上一段实际操作, 一般可在2 3 个月内掌握这种设计方法的基本技术。而掌握v h d l 设计技术就 比较困难。这是因为v h d l 不很直观,需要a d a 编程基础,一般认为至少需要 半年以上的专业培训,才能掌握v h d l 的基本设计技术 3 5 1 。本文选择了v e r i l o g h d l 作为项目的开发语言。 v e r i l o gh d l 发展于c 语言,因而它相似于c 又不同于c 。它们最主要的不 同是:c 语言是由函数组成的,而v e r i l o g 则是由称之为m o d u l e 的模块组成的。 c 语言中,整个程序的执行从m a i n 函数开始。v e r i l o g 没有相应的专门命名模 块,每一个m o d u l e 模块都是等价的,但必定存在一个顶层模块,它的端口中包 含了芯片系统与外界的所有i o 信号,这个顶层模块从程序的组织结构上讲, 类似于c 语言中的m a i n 函数,但v e r i l o g 所有m o d u l e 模块都是并发运行的。 同时c 程序是一行接一行依次执行的,属于顺序结构;而v e r i l o g 描述的硬件 第二章基于f p g a 的数字系统开发 是可以在同一时间运行的,属于并行结构,例如非阻塞赋值语句即操作浮( = ) , 这也是我们在设计中常用的语句。这一点与c 有本质的区别。同时,v e r i l o g 语 言有可综合和不可综合的语法,对于可综合的语法,是指硬件能够实现的一些 语法,所以在编写时要用可综合的语法。 ( 2 ) 仿真 仿真即设计验证,可分为时序仿真和功能仿真,这里的仿真指的是功能仿 真。电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功 能是否符合设计的要求。通过仿真能及时发现设计中语法或者逻辑错误,加快 设计进度,提高设计可靠性。功能仿真过程没有加入时序信息,不涉及具体器 件的硬件特性。时序仿真则是在编译完成后进行,在目标器件中测试设计的逻 辑功能和最坏情况下的时序。由于时序仿真时间耗费比较长,我们一般跳过时 序仿真,直接下载到硬件上验证。 ( 3 ) 编译 编译是指在q u a n t u si i 上执行的一系列流程,包括建立工程、添加设计文件、 设置器件型号、分析工程、设置管脚、编译工程。建立工程主要是对工作目录、 工程名称以及项层模块名称进行设置。添加设计文件即是把上述仿真正确的设 计文件添加进工程。设置器件型号是指定目标器件型号,选取的器件型号将在 编译工程时将工程设计映射到对应的器件逻辑资源上。分析工程目的是为了检 查设计输入的语法及检测输入输出端口的管脚数。设置管脚作用在于将工程文 件的端口与实际的器件进行映射,实现设计输入模块端口的实例化。编译工程 是利用q u a r t u si i 集成的工具即a l t e r a 自己提供的软件工具,自动将h d l 语言 翻译成由与、或、非门、r a m 、寄存器等基本逻辑单元组成的逻辑连接( 网表) , 然后根据所选芯片的型号,将逻辑网表适配到具体的f p g a 器件上的过程。编 译工程完成后将提供一系列的信息报告,从信息报告中可以看出所使用的各类 。资源情况及编译时间等。当然这里,除了可以使用a l t e m 自己提供的软件工具, 也可以使用其它e d a 产商提供的软件工具,常见的软件工具还有:s y n o p s y s 公司的f p g ae x p r e s s ,m e n t o r 公司的l e o n a r d os p e c t r u m 两款综合工具。q u a r t u s 中集成了与这些设计工具的友好接口,可以直接调用这些开发工具。 ( 4 ) 下载 1 2 第二章基于f p g a 的数字系统开发 整个设计开发的最后步骤就是在线调试或者将生成的配置文件写入芯片中 进行测试,从硬件上验证整个设计。下载即配置芯片,是在程序仿真正确的前 提下,将综合后形成的位流数据文件下载到具体的f p g a :签片中。a l t e r a 公司 的f p g a 设计最常用的两种配置模式:a s 模式和j t a g 模式。a s 模式是将逻 辑下载至配置芯片上( 如e p 3 c 6 4 ) 。这种模式下载速度较慢,但掉电不失,适 合调试结束后固化最后版本的逻辑时使用,下载文件类型为p o f 文件。j t a g 模 式直接将逻辑下载至f p g a 。这种模式下载速度快,但掉电即失,适合进行电 路调试时使用,下载文件类型为s o l 2 3f p g a 的并行处理结构 f p g a 并行算法中常用的电路结构包括流水线型和并行阵列型二种( 见图 2 3 和图2 4 ) 。在流水线型结构中,计算任务被分解成多个子任务,由多个子电 路依次完成,多组数据依次进入流水线电路,同时进行不同阶段的计算( 见图 2 3 ) 。忽略首批数据进入流水线的延迟,流水线电路处理数据的用时等于所有 子任务所需时间中最长的用时。如果每个子任务都可以采用组合电路来完成而 不需要时序电路,则所有子任务都可以在一个f p g a 时钟内完成,从而实现极 高的运算速度和性价比。在并行阵列型电路中,多组并行排列的子电路同时接 收整体数据的多个部分进行并行计算( 见图2 4 ) 。并行阵列型电路中的子电路 本身可以是简单的组合电路,也可以是复杂的时序电路,如流水线型电路。如 果受逻辑资源限制,无法同时处理数据的全部,也可以依次处理部分数据,直 到完成全部数据的处理。本文采用的都是流水线型并行处理结构。 巨州至悃- - - - - i - 叵乎 高回p 瓜习妙 图2 3 流水线型结构 第章基于f p g a 的数字系统开发 2 4f p g a 的流水线技术 图2 4 并列阵型结构 f p g a 设计中的流水线( p i p e l i n e ) 设计【5 0 】是一种用于提高所设计系统运行速 度的有效方法。为了保障数据的快速传输,必须使系统运行在尽可能高的频率 上,但如果某些复杂的逻辑功能的完成需要较长的延时,就会使系统很难运行 在高的频率上,在这种情况下,即可使用流水线技术,即在长延时的逻辑功能 块中插入触发器,使复杂的逻辑操作分步完成,减小每个部分的处理延时,从 而使系统的运行频率得以提高。流水线设计的代价是增加了寄存器逻辑。流水 线设计的一个关键在于整个设计的时序的合理安排,要求每个操作步骤的划分 合理。如果前级操作时间恰好等于后级的操作时间,设计最为简单,前级的输 出直接输入后级的输入即可;如果前级操作时间大于后级的操作时间,则需要 对前级的输出数据适当缓存才能汇入后级输入端。如果前级操作时间恰好小于 后级的操作时间,则必须通过复制逻辑,将数据流分流,或者在前级对数据采 用存储、后处理方式,否则会造成后级数据的溢出。流水线处理方式之所以频 率较高,是因为复用了处理模块,它是f p g a 设计中面积换取速度思想的一种 具体体现。 2 5 开发实例:二值形态学腐蚀变换 以下我们以二值形态学腐蚀变换为例,设计一个简单的并行f p g a 算法,详 细阐述f p g a 的整个设计流程。如果我们把一幅二值图像中所有前景像素的集合 称为a ,把某个内核集合称为b ;把该内核中心在x 图像点时所包含的前景像素 的集合称为b ( x ) ,则以b 为结构元素的腐蚀变换定义为集合 xb ( x ) 彳) 。我 们具体的计算任务是以包含右相邻和下相邻像素的内核为结构元素,对多幅 1 4 第章基于f p g a 的数字系统j f 发 6 x 6 的二值图像进行连续2 次腐蚀变换。下面利用2 2 节所述的开发流程来详细 讲述二值形态学腐蚀变化的整个设计过程。 ( 1 ) 设计。首先是设计算法,由于图像处理需要对每个像素进行处理, 同时又要对多幅图像处理,数据量大,耗时多,利用f p g a 的并行性,使用非 阻塞赋值语句,在同一时刻可以同时处理所有像素,并使用流水线结构,同时 对多幅图像处理,达到一个时钟处理一幅图像。在图2 5 和图2 6 中我们采用 v e r i l o g 语言输入,设计了一个3 级流水线电路来实现这个计算任务,这个电路 处理一幅图像的平均时间是一个f p g a 时钟。在逻辑资源允许的情况下,相同 的算法可以处理任何尺寸

温馨提示

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

评论

0/150

提交评论