(微电子学与固体电子学专业论文)fpga互连资源设计.pdf_第1页
(微电子学与固体电子学专业论文)fpga互连资源设计.pdf_第2页
(微电子学与固体电子学专业论文)fpga互连资源设计.pdf_第3页
(微电子学与固体电子学专业论文)fpga互连资源设计.pdf_第4页
(微电子学与固体电子学专业论文)fpga互连资源设计.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(微电子学与固体电子学专业论文)fpga互连资源设计.pdf.pdf 免费下载

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

文档简介

第5 章工作总结与展望5 2 5 1 工作总结5 2 5 2 今后工作展望5 4 至谢。5 7 i i 摘要 摘要 f p g a 能够减少电子系统的开发风险和开发成本,缩短上市时间,降低维护 升级成本,广泛地应用在电子系统中。由于互连资源占用f p g a 7 0 8 0 的芯 片面积,5 0 - - 6 0 的信号时延,因此互连资源是f p g a 设计的重要部分。 本论文的工作围绕基于l u t 的f p g a 层次式互连资源设计进行,重点放在 设计具有较高芯片面积利用率和电路布通率的互连资源上。本文提出的互连资源 设计方法在认真分析芯片可编程逻辑单元结构并提出多种具有代表性的候选互 连结构基础上,利用业界已有的主流工艺映射软件、布局布线软件运行大量的 b e n c h m a r k ,并对b e n c h m a r k 的大量数据结果提出了计算和分析方法使用折线 图将计算得到的数据进行处理,能帮助设计者清晰明了准确地决定芯片最终选用 的互连结构。除此之外,本文还提出了通过挑选合适规模的b e n c h m a r k 以及修改 v p r 布局布线软件运行条件来合理确定芯片通道宽度的设计方法。 利用本文提出的层次式互连资源设计方法,为f d t 2 0 0 k 芯片确定了合理的 层次式互连资源,该布线资源具有较高的芯片面积利用率和电路布通能力。 采用s m i c0 1 8 u m6 层金属c m o s 工艺,f d t 2 0 0 k 试验版芯片进行了物理 实现。 i i i p r i m a r ym a p p i n ga n dp l a c e & r o u t es o f t w a r ea n dp u t sf o r w a r dm a n y c a l c u l a t i v ea n d a n a l y t i c a lm e t h o d s ,a n dt h ep a p e rd e a l sw i t ht h ed a t at h r o u g h b r o k e nl i n ea n dh e l p s t h ed e s i g n e r sc h o o s et h ef i n a li n t e r c o n n e c ts 仃u c n l r ec l e a r l ya n de x a c t l y b e s i d e st h e s e t h et h e s i sa l s op u t sf o r w a r d st h ed e s i g nm e t h o do ft h ec h a n n e lw i d t ho ft h ec h i p t h r o u g hc h o o s i n gs u i t a b l es c a l eb e n c h m a r k sa n dm o d i f y i n gv p r sr u n n i n g c o n d i t i o n s t h ep a p e rc o n f i r m e dt h es u i t a b l ei n t e r c o n n e c tr e s o u r c eo ff d t 2 0 0 ku s i n gt h e a b o v em e t h o d s ,a n dt h ei n t e r c o n n e c tr e s o u r c eh a sh i g h e ru t i l i z i n gr a t eo fc h i p sa r e a a n dc i r c u i tr o u t i n ga b i l i t y a d o p t i n gs m i c 0 18 u r n6 sm e t a lc m o s p r o c e s s ,t h et e s tc h i po ff d t 2 0 0 k h a s t a p e do u t i v 前言 静士 日l j舌 1 9 8 5 年,x i l i n x 公司推出了世界上第一块现场可编程门阵列f p g a ( f i e l d p r o g r a m m a b l eg a t ea r r a y ) 芯片,可以方便地通过下载不同的配置位流文件( b i t s t r e a m ) 实现不同逻辑功能。由于f p g a 能够减少电子系统的开发风险和开发成 本,缩短上市时间,通过在系统编程、远程在线重构等技术降低维护升级成本, 因此在通信、控制、数据计算等领域得到了广泛的应用。有许多公司推出了各具 特色的f p g a 芯片,其中典型的有x i l i n x 的v i r t e x x i l i 0 1 系列、a l t e r a 公司的 s t r a t i x a l t e 0 4 系列及a c t e l 公司的p r o a s i c a c t e 0 0 等。 f p g a 能够很好的利用最为前沿的制造和封装工艺,通过全定制的电路和版 图设计方法优化器件设计,因此f p g a 的逻辑密度、性能、功能和功耗等都已经 得到大幅度改进,成本显著下降。目前,f p g a 芯片的集成度己达到几千万等效 门,速度可达到4 0 0 5 0 0 m h z 【x i l i 0 4 a l t e 0 4 】,内嵌s r a m 、微处理器、总线收 发器、高速串行接口、时钟及功耗管理等模块。在制造上采用了0 0 9l am9 层铜 连线工艺 f p g a 】,并且应用新的封装技术提供数千管脚的f p g a 芯片。 f p g a 的主要优点是: 随着v i s i ( v e r yl a r g es c a l ei 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 进行电路设计时,不需要具备专门的i c ( 集成电路) 深层 次的知识,f p g a 软件易学易用,可以使设计人员更能集中精力进行电路设计, 快速将产品推向市场。 一 前言 随着f p g a 在功能、密度、速度上的不断提升和成本的降低,以及用户需求、 协议标准等的变化越来越快,f p g a 芯片不但被用来制作原型机,而且还被大量 地应用到网络、消费电子、科研、航天及国防的许多最终产品中,成为一系列电 子系统的核心。2 0 0 3 年,全世界以f p g a 为代表的可编程逻辑器件销售额达2 6 亿美元 y o u n 0 4 】,据d a t a q u e s t 预测,以f p g a 为代表的可编程逻辑器件是半导 体工业增长最快的市场领域,其年复合增长率( c a g r ) 高达1 9 5 d a a n 0 4 】。 f p g a 主要由三大部分组成:可编程逻辑单元c l b ( c o n f i g u r a b l el o g i c b l o c k ) 、可编程输入输出模块( 1 0 b ) 和可编程互连资源( i n t e r c o n n e c t i o n r e s o u r c e ) 。后者是f p g a 中非常重要的一部分,原因在于布线资源占用了f p g a 约7 0 8 0 的芯片面积和约5 0 6 0 的信号时延 m a r q 2 0 0 0 】,因此, 互连资源设计的好坏直接影响f p g a 芯片的- 生能 r o s e 9 7 】。本文所讨论的重点就 是f p g a 可编程互连资源结构的设计方法。 2 第1 章技术背景 第1 章技术背景 f p g a 可被认为由三大部分组成,可编程逻辑资源、可编程输入输出模块和 可编程互连资源。可编程逻辑资源顾名思义是通过编程来实现特定电路逻辑功能 的模块。而可编程互连资源则是负责连接这些可编程逻辑单元,由各种长度的连 线线段组成,其中也有一些可编程的连接开关,它们用于可编程逻辑块之间、可 编程逻辑块与可编程输入输出块之间的连接。f p g a 的连线结构是影响连线布 通率、芯片面积利用率及速度等性能的重要因素,不同的单元结构、编程方式都 对连线结构提出了不同的要求。从连线的拓扑结构上来分,一般地可以分为四大 种互连结构:对称式连线结构、基于行的连线结构、长线式连线结构和层次式连 线结构。 i i 对称式连线结构 对称式f p g a 结构模型中采用了对称式可编程连线结构。该结构最早由是 j r o s e 等人 b r o w 9 2 提出,在x i l i n x 的f p g a 产品中,x c 3 0 0 0 x c 4 0 0 0 就属于 对称式连线结构。 口口口口口口口口口口口口 c l b 目c b 目c l b 目c b 目c l b c b e 鲁s b _ 巨刍c b e js b 目c b 目c b 目c l b 目c b 目c l b c b 宦刍s b 喜爿c b 皇刍s be 爿c b c l b 目c b 目c l b 目c b 目c l b 口口口口口口口口口口口口 图1 1 对称式连线结构 这种连线结构中连线按水平和竖直两个方向排列,在水平和竖直连线的相交 处用开关盒s b ( s w i t c hb o x ) 连接,形成网格状。可编程逻辑单元 c l b ( c o n f i g u r a b l el o g i cb l o c k ) 的输入输出引脚通过连接盒c b ( c o n n e c t i o nb o x ) 和水平竖直通道中的连线相连接。在最早提出的对称式连线结构中水平和竖直连 口口口口口口口口口口口口口口口口口口口口口口口口 第1 章技术背景 线的长度为跨1 个c l b ( 即每段连线连接相邻的两个开关盒) ,这样的结构连线 资源利用率高,进行较近的连接时线上的分布电容小,但是这种单位长度对称式 连线在构成远距离的连接时由于连线通过的可编程开关数目很大,所以连线延时 增加很快。因此改进的对称式连线结构中加入了不同跨度的连线,这种连线被称 图1 2m = 2 分段式网格连接 为分段连线( s e g m e n t e di n t e r c o n n e e t i o n ) ,水平( 或竖直) 方向跨度为m 的 分段连线连接水平( 或竖直) 方向相邻的m + 1 个开关盒,在连线两端的开关盒 处断开( 图1 2 所示跨度为2 的分段连线结构) 。被分段连线所连接的中间m 1 个开关盒中,连线开关仅需连接相交的连线,而两端的2 个开关盒还需要连接同 一方向上断开的连线。例如图1 2 中,开关盒s b l 负责水平和竖直连线的断开, 开关盒s b 2 负责竖直的连线断开,开关盒s b 3 负责水平的连线断开,通过s b 4 的水平和竖直连线它们自身都是连通的,4 种s b 的实现情况简图如图1 3 所示。 在对称式连线结构所采用的网格形状的连线构架中,关于开关盒和连接盒不 同设计方案 b r o w 9 2 】【c h a n 9 6 】 w i l t 9 7 】【b e t z 9 8 】【b e t z9 9 的研究已经有很多。其 中较为经典的3 种s b 结构分别是s u b s e t 、u n i v e r s a l 和w i l t o n ,这3 种结构s b 的连线关系见图1 4 和图1 5 所示,图中通道连线从水平和竖直方向送入s b 后, 若两根连线在s b 内有一条虚线相连,说明这两根通道连线之间有可编程开关管 进行连接。 4 外3 个方向通道编号同样为i 的连线连接。x i l i n x 3 0 0 0 、4 0 0 0 器件都使用的是这 种结构 x i l i 9 5 。但是s u b s e t 结构的缺点是使通道中的连线人为的划分了“域”, 即无论是水平还是竖直通道,编号为i 的连线只能通过s b 中的可编程开关管与 其它方向编号也为i 的连线相连,通道中有多少根连线,s u b s e t 就将连线资源分 成了多少个“域,各个域之间无法连通,降低了连线的灵活性。 4 0 3 l 2 2 1 1 0 0 图1 - 4( 左图) s u b s e t 结构s b ;( 右图) u n i v e r s a l 结构s b u n i v e r s a l 结构是yc h a n g 等人 c h a n 9 9 6 对开关块的拓扑结构进行了深入研 究的基础上,提出的用最少开关构造通用开关块u s m ( u n i v e r s a ls w i t c h m o d u l e ) 的结构,并基于网络流理论分析了开关块的可布通性。该结构称其自己在满足一 定约束条件下( 有关通道宽度和所布线网数量的约束条件) 能布通所有的线网, 但这些线网仅限 包含了某种“域 连线相连接。 w i l t o n 结构 旋转了一个通道 连线的灵活性。 在对称式连 编程逻辑单元的 电容也小,因此 x i l i 9 5 】。 1 2 基于行的连线结构 基于行的连线结构来源于a s i c 的标准单元设计结构,这种连线结构也分成 水平和垂直连线。但水平连线通过专用的水平通道来连接水平单元或垂直连线, 而垂直连线则无专用的连线通道,对隔行的单元或水平线段提供连接,是穿越逻 辑模块进行的。a c t e l 公司型号为a c t - 1 a c t - 2 及4 0 m x 系列的f p g a 器件中, 采用行式连线结构 a c t l 9 9 】。基于行的连线结构由于布线结构规则,也容易较准 确地估算时延性能。但是由于垂直连线跨越可编程逻辑单元,如果在采用 e e p r o m 或s r a m 编程技术的f p g a 中使用,会造成连线和逻辑单元交叠处的 编程单元拥挤。因此该种连线结构只适用于a c t e l 采用的反熔丝编程技术并未被 广泛使用。 6 第1 章技术背景 s 叼m e n t 副 h o n i r o u t i n g 和 t 阳c i 8 每 v n i i 鼬u i i 叼t 憎c 耐, 1 3 长线式连线结构 图1 - 6基于行的连线结构 图1 7 长线式连线结构 长线式连线结构主要用于c p l d 中,其连线长度跨越整个芯片。一般这种长 线结构配合大粒度的可编程逻辑单元,逻辑单元的信号通过b u f f e r 驱动长线,相 交长线间的连接也会通过b u f f e r 驱动。长线式连线结构中,芯片的连线延时可预 测性较好,实现大跨度的连接时时延也较小,但是面积利用率相对较低。尤其是 当芯片规模很大时,单纯采用长线连线结构由于面积上的巨大开销,变得不再实 用。 1 4 层次式连线结构 层次式连线结构结合了对称式连线结构和长线式连线结构的特点。采用层次 式连线结构的f p o a 主要有x i l i n x 公司的v i r t e x 系列和a l t e r a 公司的f l e x 、a p e x 第1 章技术背景 系列等。在层次式f p g a 中,模块内部的连接用低层次的连线完成,由于低层次 的连线较短,寄生电阻电容较小所以能够实现小跨度的快速连线;跨模块的连接 用高一层的跨度较大的分段式连线完成,可以减小连线经过的可编程开关数目, 提高速度。由于针对不同类型的线网能够采用不同层次的连线进行优化实现,使 得层次式的连线结构具有良好的速度性能,同时其时延也具有一定的可预测性, 所以层次式连线结构的f p g a 芯片速度普遍高于采用对称式连线结构的f p g a 。 同时层次化的连线结构虽然使布线c a d 软件变得复杂,但是具有较大规模 c l u s t s e r 结构的f p g a 与具有较小规模c l u s t e r 的f p g a 相比,在实现电 路时将使用更少的c l u s t e r 数量,这将减少软件用于布局和布线的时间,加快 软件的布线速度( x i l i 9 7 】中报道了7 2 8 7 的布线运行时间缩减) 。目前主流器 件采用的基本都是这种连线结构。 肝疽剥蜘翩碍 图1 8 层次式连线结构 图1 8 为a l t e r a 公司的f l e x l 0 k 的层次式连线结构 a l t e 9 5 。f l e x l o k 中 采用丰富的局部连线( l o c a li n t e r c o n n e c t ) 将8 个基本单元组成逻辑阵列块e a b , e a b 按阵列化排列用长线( r o wi n t e r c o n n e c t ,c o l u m ni n t e r c o n n e c t ) 的进行连接。 第2 章f d p l 0 0 k 芯片互连资源结构分析 第2 章f d p l 0 0 k 芯片互连资源结构分析 f d p l 0 0 k 芯片是项目组2 0 0 4 年研制的具有完全自主知识产权1 0 万门针对 数据通路的f p g a 芯片 m a x i 0 3 】。其可编程逻辑单元l c ( l o g i cc e l l ) 采用基于 一位查询表和多路选择器的的混合形式,在功能上以实现一位优化的全加器为目 标。一个可编程逻辑单元除了能高效地实现一位快速全加器f a ( f u l la d d e r ) 和 乘法单元m u ( m u l t i p l i c a t i o nu n i t ) 等适于数据通路的单元电路外,还能实现任 意三输入单输出、部分四输入单输出函数及d 触发器( df l i p f l o p ) 的功能。l c 的结构精简,占用芯片面积小,是一种细粒度( f i n eg r a n u l a r i t y ) 的逻辑单元结 构。4 4 = 1 6 个l c 组成宏单元m c ,以m c 为单位,通过编程可以确定可分割 长线的长度。f d p l 0 0 k 芯片的可编程逻辑单元l c 的结构如图2 1 所示,具有4 个输入端、1 个输出端,水平和竖直两条快速进位链,l c 可以通过编程决定实 现组合逻辑或时序逻辑 g u o b 0 2 】。 图2 1f d p i o o k 芯片l c 单元结构 9 第2 章f d p l 0 0 k 芯片互连资源结构分析 2 1f d p l 0 0 k 互连资源结构介绍 f d p l 0 0 k 芯片的连线资源采用层次式结构,分成三个层次:贯穿整个芯片 的全局连线( g l o b a ll i n e ,简称长线( l o n gl i n e ) ) ;连接m c 的可分割长线 ( s e p a r a b l el o n gl i n e ) 和负责临近l c 的高速局部连线( u l t r a f a s tl o c a ll i n e , 简称短线( s h o r tl i n e ) ) 。短线具有最快的连线速度,l c 通过短线可以和相邻的 l c 进行连接。可分割长线能和水平( 垂直) 方向上的任何l c 进行连接,当短 线无法连通时,可用这种连线来进行连接。其连接跨距可通过编程进行改变,跨 距的长度为m c 的整数倍。长线提供了高速,大跨距的连线结构,与可分割长线 类似,贯穿整个f p g a 芯片。但这种连线的长度固定、不可编程,且只能对m c 进行连接。 i 2 1 1 短线结构 短线提供了一种专用的快速连线方式,1 个l c 与其相邻的8 个l c 间可通 过短线进行连接。由于用短线连接时只通过一个开关,且连线长度最短,因此, 短线在三类连线结构中具有最小信号时延,在实现数据通路应用时,能实现最快 的数据传输。如,在实现诸如乘法器电路时,l c 间彼此的输出与输入,用短线 在斜向的连接性能最好。短线资源在实现一般的组合逻辑应用时,能实现高扇出、 快速的组合逻辑。 口口口口口 口 q甲 厂 口 j 口d h 门 口 矿石弋 【j 口口由 簟一 u口 c丁亡丁亡c u 口口口口口 固定连接 。可编程连接点 _ l c 输出 _ u = 输入 图2 - 2f d p l 0 0 k 芯片短线连接示意图( 左) ,短线的电路实现( 右) l o 第2 章f d p l 0 0 k 芯片互连资源结构分析 2 1 2 可分割长线 可分割长线,提供了l c 间跨距可编程的连接。在水平( 垂直) 方向上每个 l c 的输入端和输出端均可连接到一组可分割长线上去,一组可分割长线数为8 根。两组相交的可分割长线,在彼此相交处用可编程开关相连;每组可分割长线 隔一个m c ( 即4 个l c ) 用一组带缓冲器的可编程开关进行连接,这不仅可减 少连线的时延,而且又可提高连线的利用率和连线编程的灵活性。可分割长线能 实现无法用短线来实现的l c 间的连接。结构见图2 。3 。 园回固回 回国囤囤 囤囡回国 园回国囡 图2 3f d p l 0 0 k 芯片可分割长线示意图 芯片中l c 的引脚与可分割长线的连接是通过连接盒c b 实现的,而可分割 长线之间的连接则是通过开关盒s b 完成的。具体的连接关系如下图2 - 4 所示。 c b 采用的是半连通的结构,即l c 的每个引脚可以与通道中二分之一的可分割 长线通过可编程开关相连接。s b 则是采用连通度为2 的某种结构。 - j ,1 卜卜 i c l mc i 1 tc l 口z - 0 盯 c l 脚 l c 眦 卜 c l i d l i 图2 4f d p l 0 0 k 芯片c b 和s b 结构示意图 第2 章f d p l 0 0 k 芯片互连资源结构分析 2 1 3 长线结构 长线提供了高速,大跨距的连线结构,它以宏单元m c 为单位进行连接,贯 穿整个f p g a 芯片。通过编程开关,长线在水平和垂直方向上可分别与宏单元中 一组水平可分割长线和垂直可分割长线进行连接。水平长线和垂直长线的相交 处,用一组可编程开关进行连接。在短线、可分割长线的基础上,加入长线能更 进一步提高连线的布通率和f p g a 的性能。 i-, 例一砂琵 - o 。 曲由一冀 图2 5f d p l 0 0 k 芯片长线示意图 长线在水平和垂直方向上分别可通过相应的连线开关和宏单元相连。为了减 少开关冗余,长线只和宏单元中水平和垂直方向上,各有一组可分割长线编程相 连。水平和垂直相交的长线也有编程开关相连。这里的长线除了其特有的作用( 连 接宏单元、提高连线的布通率等) 外,还是对可分割长线的一种很好的补充。 竖舸分刮长 水牛长线 , 水平可分 刮长瞠 图2 - 6f d p l 0 0 k 芯片长线连线开关示意图 1 2 第2 章f d p1 0 0 k :吝片互连资源结构分析 2 2f d p l 0 0 k 芯片互连资源结构分析 f d p l 0 0 k 芯片流片回来后进行了全面的测试,测试结果显示,f d p l 0 0 了能以较好的性能实现基本的单元电路外,更能实现类似于电子琴、音乐门铃等 较大规模的通用电路,这样的结果说明f d p l 0 0 k 实现了流片的项目要求,芯片 各部分工作正常。但在测试中,经过认真的分析也发现了芯片内部互连上所隐含 的一些问题,下边将做介绍。 2 2 1c b 和s b 结构 f d p l 0 0 k 采用的是半连通c b ( l c 的引脚只能与通道中一半的连线资源通 过可编程开关连接) 和连通度为2 的s b 结构,这样的c b 和s b 结构引起了芯 片互连资源上的问题。依据图2 7 中所显示,芯片的互连资源被明显的分隔为两 层,细线的一层和粗线的一层,两层之间没有任何连通,这一点给芯片的布局布 线造成了极大的障碍。在芯片的实际测试中,实验结果更是证明了这种问题。测 r c l c l x o l r c l l + 一 c l d l 图2 f d p l 0 0 k 芯片c b 和s b 结构引起的连线问 试中发现,从可编程逻辑资源的数量角度衡量,完全可以放得下的电路,在实 的布局布线过程中却布不通。解决的方法就是在布局的过程中手工调整布局 果,将原本的4 个l c 沿对角线拉动,使得相当于4 个l c 逻辑资源的电路, 实际的布局布线过程中整整占用了1 6 个l c ( 见图2 8 ,小方块代表f d p l 0 0 中可编程逻辑单元l c ,若l c 被占用就表现为暗灰色,左图表示软件自动布 后为实现某种电路功能被占用的相邻4 个l c ,但这样的布局结果在布线的过 中却遭到了失败,原因是这样的布局过于密集,其附近的互连资源无法完成其 的连线要求,所以进行了手工的布局调整,将4 个临近的l c 拉开,如右图所 , 图2 - 9f d p1 0 0 k 芯片长线连接关系 长线在f d p l 0 0 k 中不是均匀分布的,而是通过编程开关,在水平和垂直方 向上可分别与宏单元中一组水平可分割长线和垂直可分割长线进行连接。但是与 第2 章f d p l 0 0 k 芯片互连资源结构分析 f d p l 0 0 k 相配套的软件开发系统f d e ( f d pd e s i g ne n v i o 砌怔n t ) 只能处理 均匀分布的各种布线资源( 水平和竖直的l c 布线通道中,每行每列都有该种连 线资源) 这导致了f d p l 0 0 k 中长线资源没有被软件利用极大的浪费了芯片中的 连线资源。由此引发了在新一版芯片中长线资源要进行修改的思考。长线与m c 以及长线与长线之间的连接关系如图2 - 9 所示。 2 2 3 互连资源的数量 在2 2 1 节中提到的从可编程逻辑资源角度看完全可以放得下的测试电路在 实际的布局布线过程中却遇到布不通的问题,引发了对可分割长线的c b 和s b 结构的思考。但是从另一个角度也引发了对互连资源数量的思考,即f d p l 0 0 k 中的互连资源是否能满足可编程逻辑资源的需求? 是否布线资源的数量成为限 制f d p l 0 0 k 电路布通率的瓶颈? 由此对f d p l 0 0 k 的互连资源数量进行了计算。计算的方法是把每种互连资 源折合到每个l c 的数量进行求和。 2 2 3 1 短线的数量 每个l c 配有3 2 根短线,这3 2 根短线起点都是这个l c 的输出端,终点是 与这个l c 相邻的8 个l c 的各个输入端。在实际电路中扇出高达3 2 的输出端几 乎很少见,更何况这些扇出所要连接的电路部分也不一定都被布局在这个l c 的 临近周围,由此可见f d p l 0 0 k 的短线资源确实是存在冗余。 2 2 3 2 可分割长线的数量 在本节计算可分割长线数量和下面2 2 3 - 3 节中计算长线数量时所采用的算 法是:将通道中每种连线资源的数量( 每个通道中的数量) 除以共享此种连线资 源的l c 数目,得到水平或竖直方向此种连线资源折合到每个l c 的数量,由于 水平和竖直布线通道中连线的数量是一样的,所以将刚刚得到的数据乘以2 就得 到了属于每个l c 的此种连线的数量。 望冀堇票粤雩橥婆娑冀挈婴2 = 每个三c 的此种连线数量 共享此种连线的c 数量“ 。“一。呐”8 可分割长线在编程为断开的情况下可以连接临近的四个l c ,在编程为连通 的情况下则可以连接更远的l c 。每个l c 附近有水平和竖直两个布线通道。在 水平布线通道中,有8 根可分割长线,由于每根可分割长线的长度是4 个l c , 第2 章f d p l 0 0 k 芯片互连资源结构分析 所以每个l c 附近水平方向折合有8 - 4 = 2 根可分割长线。竖直方向与水平方向 相同折合为2 根。每个l c 附近可分割长线总的数量是4 根。 2 2 3 3 长线的数量 长线水平和竖直贯穿整个芯片,以m c 为单位分布。在m c 的水平布线通 道中有4 根长线,芯片水平方向一行有8 个m c ,每个m c 中又包含1 6 个l c , 即这四根水平长线被1 6 8 = 1 2 8 个l c 共用,这个到每个l c 上为4 1 2 8 = 0 0 3 1 2 5 。同理竖直方向每个l c 折合有0 0 3 1 2 5 根长线。得出每个l c 附近长线 的数量为o 0 3 1 2 5 + 0 0 3 1 2 5 - - 0 0 6 2 5 根。 2 2 3 4 互连资源数量的分析 由2 2 3 1 到2 2 3 3 的计算可以看出,邻近l c 的短线资源是过剩的,但对 于中长距离的传输,每个l c 共有5 个引脚,但每个l c 附近的中长度连线资源 只有4 s 根可分割长线加上o 0 6 2 5 根长线资源,这明显是短缺的。由此引起了对 合理的布线资源数量的思考。 2 3 关于互连资源思考的总结 在f d p l 0 0 k 芯片测试过程中发现的问题所引起的关于互连资源的思考已经 在这一章的前半部分分别进行了阐述。现在对这些思考进行一下总结,使这些思 考的问题更加清晰明确,以方便在下一章中更好的对这些问题进行解决。 针对芯片逻辑资源利用率比较低的问题,合理的确定各种互连资源的数 量;依据可编程逻辑资源的数量合理分配负责近距离和中长距离连接的各种连线 资源的比例和数量: 针对布线资源分层的问题,合理确定c b 和s b 的结构; 针对配套软件所提供的支持,调整长线的分布形式;依据软件只能支持均 匀分布布线资源的现状,打散长线成捆的现状使其均匀分布。 下一章的工作将是本论文工作的重点,着重讨论一种f p g a 芯片互连资源设 计的方法,应用此方法设计的互连资源应能有效的避免上述问题的发生。 1 6 第3 章层次式互连资源设计及f d t 2 0 0 k 互连资源结构介绍 第3 章 层次芎螽藿潦黼f d t 2 0 0 k 互 f d t 2 0 0 k 芯片是项目组即将研制的具有完全自主知识产权的2 0 万门新一版 f p g a 芯片( 初步预定可编程逻辑单元的数量为4 0 x 4 0 个) ,本文的工作就是围 绕f p g a 互连资源设计展开,结合f d t 2 0 0 k 芯片互连资源的设计,提出一种 f p g a 互连设计方法。试验版芯片较f d t 2 0 0 k 的预定规模要小,为1 6 x 1 6 个可 编程逻辑单元。本文设计的f g p a 互连资源结构在试验版芯片中进行物理实现 ( 试验版芯片已于2 0 0 5 年3 月1 7 日提交数据进行0 1 8 u r n6 层金属工艺流片) 。 本文第l 章概括介绍了目前f p g a 几种主流的互连资源结构,他们利弊皆有。 没有人能在无任何前提的情况下,武断的认定某一种互连结构是最好的。我认为 这里所提到的前提包含两层意义:一是芯片中可编程逻辑单元的结构;二是体现 在互连资源结构上的折衷。 所谓可编程逻辑单元的结构。互连资源最终的目的是连接芯片中的各部分可 编程逻辑单元,即芯片中可编程逻辑单元的具体结构极大的影响着互连资源结构 的合理性。因此在设计芯片的互连资源之前特别要仔细分析芯片可编程逻辑单元 的结构,找出可编程逻辑单元结构的特点,为设计出能与逻辑单元相配套的互连 资源打下坚实的基础。 所谓体现在互连资源结构上的折衷。哲学上的提法是事物的两面性,体现在 芯片的互连资源上就是芯片面积,电路的布通率,信号时延等一系列问题的权衡。 大量的可编程开关管和布线通道保证了芯片的测试电路布通率,但从另一方面 看,如此做法却导致了过大的芯片面积,高昂的制造成本和冗长的信号延迟;若 为了节省芯片面积而一味的压缩可编程开关的数量,减少布线通道,又使得芯片 没有足够的布线资源而影响芯片的布通率,从而造成芯片可编程逻辑资源的浪 费。因此在设计芯片的互连资源时要做到顾此而又不失彼,均衡的考虑到各个方 面的需求,找到各个方面需求的较佳平衡点。 依据以上的分析,本章的第l 部分将进行f p g a 互连结构设计的第一步骤, 首先分析可编程逻辑单元的内部结构的特点,即介绍f d t 2 0 0 k 芯片可编程逻辑 单元的结构,并分析其结构的特点;第2 部分是本章的重点,也是本文工作的重 点,结合f d t 2 0 0 k 互连资源设计的具体情况,提出了基于l u t 的f p g a 层次 第3 章层次式互连资源设计及f d t 2 0 0 k 互连资源结构介绍 式互连资源设计方法;之后的几个部分将分别介绍f d t 2 0 0 k 各个部分 的具体结构。 3 1 可编程逻辑单元结构分析 芯片可编程逻辑单元结构的分析,主要是分析可编程逻辑单元结构的特点, 包括: 基本组成单元是l u t 还是m u x 或两者的混合,若是基于l u t 的,则说 明可编程逻辑单元的输入端是等价的; 可编程逻辑单元的输入端数目; 可编程逻辑单元的输出端数目,同时要分析出各个输出端所能输出的数据 来源,从而由此判断出此输出端的重要性,若某个输出端能被可编程逻辑单元内 部多个信号驱动,说明这个输出端非常重要,则在为这个输出端设计互连资源时, 就要考虑使其连接灵活性高一些,反之则相反; 可编程逻辑单元是否还提供有为其额外功能电路服务的其它输入输出端, 以及这些输入输出端是否需要互连资源的支持: f d t 2 0 0 k 芯片内部的可编程逻辑单元基于l u t 查询表结构。如图3 1 是 f d t 2 0 0 k 的一个s l i c e 结构( 内部悬空点由编程点控制) ,由2 个相同的l c 以 及两者结合部件组成。不同于常见的基于4 输入查询表结构的l c , f d t 2 0 0 k 1 个l c 是由2 个具有相同输入端的3 输入l u t 、多个数据选择器、快 速进位链、以及一个可编程控制时序逻辑单元构成。2 个独立3 输入查询表和数 据选择器可完成最高4 输入任意组合逻辑,也可以产生2 个相同输入的任意3 输入函数。快速进位单元可以结合1 个3 输入l u t 实现加、减和1 位乘加算术 逻辑功能;时序单元可以对输入端e 或者组合逻辑输出进行锁存,而且时序单 元带有扫描链逻辑可实现芯片内l c 的扫描测试。 0 b 0 c 0 e 0 e 1 a 1 b 1 c 1 d 1 图3 1f d t 2 0 0 k 芯片s l i c e 结构 l c 端口说明:a b c d 是主要的逻辑输入端,e 可以作为5 输入逻辑的1 个输入端、触发器数据输入端、时钟使能端、扫描链使能控制端中的一种。l e n 是从c l u s t e r 的时序控制单元送来的4 个时序单元公用的局部时钟使能端。 o u t a o o u t b o 是输出端,其中o u t a 是组合逻辑输出端,o u t b 可作为组合 或时序逻辑输出端。每个l c 都有自下而上的竖直专用进位输入、输出端口,以 及专用自下而上竖直移位输入输出端口。由于这两组专用端口不通过互连线资源 而和上下相邻的可编程逻辑单元相连,因此这些信号可在l c 间保持高速传输。 1 9 , 第3 章层次式互连资源设计及f d t 2 0 0 k 互连资源结构介绍 提炼出对互联资源设计有意义的特征信息就是,每个l c 有5 个输入端,其 中a 、b 、c 、d 端在逻辑上是完全等价的,e 端通常意义上可以理解为一个时 序输入端,每个l c 有o u t a 和o u t b 两个输出端,其中o u t a 是组合逻辑的 输出端,而o u t b 既可以作为组合逻辑的输出端也可以作为时序逻辑的输出端, 也就是说,o u t b 端为主要的输出端,o u t a 端为次要输出端。 3 2 层次式互连资源结构设计方法 本文的第1 章介绍了4 种流行的f p g a 互连资源结构:对称式、基于行的、 长线式和层次式。由于基于行的结构适用于反熔丝的结构;长线式结构因为芯片 面积开销巨大而不再实用;对称式结构是较早的一种互连资源结构,这样的结构 连线资源利用率高,进行较近的连接时线上的分布电容小,但是这种单位长度对 称式连线构成远距离的连线时由于连线通过的可编程开关数目很大,连线延迟增 加很,陕: b r o w n 9 8 】,所以这种结构也慢慢的退出了设计舞台。因此在四种基本连线 结构中,层次式连线结构最具有研究价值,本文的工作也正是基于此种连线结构 展开的。 这部分工作的主要思想是根据可编程逻辑单元结构的特点确定几种互连的 基本机构,针对每种结构再提出多种子结构。然后寻找可以针对这些结构进行工 艺映射和布局布线的软件,通过编写芯片结构描述文件,把提出的多种候选互连 资源结构在软件中进行描述,以使得软件能够依据所提出的各种互连结构各自的 具体形式,对测试网表进行布局布线。在进行软件测试之前要根据软件所能处理 的文件格式,寻找相应的格式转换软件,这样做的目的是使尽可能多的b e n c h m a r k ( 能找到的b e n c h m a r k 格式不尽相同,若能找到转换不同格式b e n c h m a r k 的软件, 将他们转换成工艺映射和布局布线软件所能接受的格式将极大的增加可用的 b e n c h m a r k 的数量) 符合要求,从而使b e n c h m a r k 的结果更具有广泛性和说服力。 下面本文将严格按照工作顺序具体介绍每部分的工作。 3 2 1b e n c h m a r k 的收集 目前测试领域最常用的就是i s c a s 8 9 和m c n c m c 9 3 两套网表,但并不是 这两套网表中的每个测试电路都可供使用。因为这两套网表中有些电路的规模实 在是太小了,在测试的时候根本起不到任何实际意义,所以最终决定使用的网表 中只包含了他们中规模在中等以上的测试电路。除此之外还需从网上查找了一部 分规模符合要求的测试网表。在后面的介绍中可以看到,在为f d t 2 0 0 k 设计互 第3 章层次式互连资源设计及f d t 2 0 0 k 互连资源结构介绍 连资源时所使用的b e n c h m a r k 中,最小的消耗掉相当于1 0 4 7 个f d t 2 0 0 k 的l c , 最大的消耗掉8 3 8 3 个。 3 2 2 软件工具的确定 以下是在设计互连结构时所使用的软件工具和测试流程。该流程基于的假设 是:用户的可编程逻辑单元是基于l u t 结构,即本文所提出的互连资源设计方 法针对的是基于l u t 的采用层次式互连资源的f p g a 芯片。 测试网表 l 工艺映射( f l o w m a p ) 1 l 报告电路所使用的l c 数 l i 将l c 打包成c l u s t e r ( t v p a c k ) l 芊厅局( v p rp i a c e m e n t ) l 布线( v p rr o u t i n g ) 图3 2 设计互连资源时所使用的软件流程 f l o w m a p c o n 9 9 4 】的功能是分解测试网表,按照用户的要求将网表映射到 m 输入的l u t 和d 触发器中,其中l u t 的输入端数是由用户的可编程逻辑单 元中l u t 的输入端数决定的。f d t 2 0 0 k 芯片的可编程逻辑单元相当于4 输入的 l u t ,所以在f l o w m a p 这一步主要完成的工作是将测试网表映射到4 输入的 l u t 和d 触发器中。 第3 章层次式互连资源设计及f d t 2 0 0 k 互连资源结构介绍 t - v p a c k b e t z 9 7 是将测试网表中的逻辑单元进行打包的软件。具体的说就 是,将f l o w m a p 处理后的网表( 对于f d t 2 0 0 k ,此时都是单个的4 输入l u t 和d 触发器) 进行再处理,按照用户的要求把n 个l u t 和n 个d 触发器组合 成一个更大的逻辑单元c l u s t e r ( l u t 和d 触发器的数目是相等的) 。这样做 的原因是有许多的研究表明,层次式互连资源因为具有容量更大的可编程逻辑单 元c l u s t e r 有着更好的逻辑利用率,同时因为更大的可编程逻辑单元有利于将 更多的模块间的连接转变为逻辑单元内部的局部连接从而获得更好的信号时延 特性 m a r q 2 0 0 0 【m a r q 9 9 】。 v p r b e t z 9 7 是一个f p g a 布局布线的软件,再运行这个软件的时候要求提 供一个描述f p g a 芯片互连结构的a r c h 文件,在确定了各种候选互连资源结构 之后就要为每种候选互连结构编写它们的结构描述文件供v p r 使用。v p r 的工 作具体分成两部分:布局和布线。在布局完成之后将输出p 文件,之后的布线工 作将接受布局产生的p 文件,生成新的r 文件,从而完成整个的布局布线工作。 v p r 的运行有两种模式,在它的默认模式下,v p r 将在由结构文件所描述的特 定f p g a 中反复多次的尝试布测试电路,目的是找到在该种结

温馨提示

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

评论

0/150

提交评论