datasheet
超过460,000+ 应用技术资源下载
pdf

一款基于SRAM的FPGA器件设计

  • 1星
  • 日期: 2014-03-05
  • 大小: 1.78MB
  • 所需积分:1分
  • 下载次数:2
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 一款基于SRAM的FPGA器件设计

FPGA是一种可通过用户编程来实现各种数字电路的集成电路器件。用FPGA设计数字系统有设计灵活、低成本,低风险、面市时间短等好处。本课题在结合国际上FPGA器件方面的各种研究成果基础上,对FPGA器件结构进行了深入的探讨,重点对FPGA的互连结构进行了分析与优化。FPGA器件速度和面积上相对于ASIC电路的不足很大程度上是由可编程布线结构造成的,FPGA一般用大量的可编程传输管开关和通用互连线段实现门器件的连接,而全定制电路中仅用简单的金属线实现,传输管开关带来很大的电阻和电容参数,因而速度要慢于后者。这也说明,通过优化可编程连接方式和布线结构,可大大改善电路的性能。本文研究了基于SRAM编程技术的FPGA器件中逻辑模块、互连资源等对FPGA性能和面积的影响。论文中在介绍FPGA器件的体系构架后,首先对开关矩阵进行了研究,结合Wilton开关矩阵和Disioint开关矩阵的特点,得到一个连接更加灵活的开关矩阵,提高了FPGA器件的可布线性,接着本课题中又对通用互连线长度、通用互连线间的连接方式和布线通道的宽度等进行了探讨,并针对本课题中的FPGA器件,得出了一套适合于中小规模逻辑器件的通用互连资源结构,仿真显示新的互连方案有较好的速度和面积性能,在互连资源的面积和性能上达到一个很好的折中。 接下来课题中对FPGA电路的可编程逻辑资源进行了研究,得到了一种逻辑规模适中的粗粒度逻辑块簇,该逻辑块簇采用类似Xilinx 公司的FPGA产品的LUT加触发器结构,使逻辑块簇内部基本逻辑单元的联系更加紧密,提高了逻辑资源的功能和利用率。随后我们还研究了IO模块数目的确定和分布式SRAM结构中编程电路结构的设计,并简单介绍了SRAM单元的晶体管级设计原理。最后,在对FPGA构架研究基础上,完成了一款FPGA电路的设计并设计了相应的电路测试方案,该课题结合CETC58研究所的一个重要项目进行,目前已成功通过CSMC0.6μm 2P2M工艺成功流片,测试结果显示其完全达到了预期的性能。

江南大学 硕士学位论文 一款基于SRAM的FPGA器件设计 姓名:侯卫华 申请学位级别:硕士 专业:微电子学与固体电子学 指导教师:于宗光 20070319 摘要 摘要 题 目:一款基于SRAM的FPGA器件设计 研究生:侯卫华 导 师:于宗光教授 专 业:徽电子学与固体电子学 FPGA(Field.Programmable Gate Arrays)是一种可通过用户编程来实现各种数字电路 的集成电路器件。用FPGA设计数字系统有设计灵活、低成本,低风险、面市时间短等 好处。本课题在结合国际上FPGA器件方面的各种研究成果基础上,对FPGA器件结构 进行了深入的探讨,重点对FPGA的互连结构进行了分析与优化。FPGA器件速度和面 积上相对于ASIC电路的不足很大程度上是由可编程布线结构造成的,FPGA一般用大 量的可编程传输管开关和通用互连线段实现门器件的连接,而全定制电路中仅用简单的 金属线实现,传输管开关带来很大的电阻和电容参数,因而速度要慢于后者。这也说明, 通过优化可编程连接方式和布线结构,可大大改善电路的性能。本文研究了基于SRAM 编程技术的FPGA器件中逻辑模块、互连资源等对FPGA性能和面积的影响。论文中在 介绍FPGA器件的体系构架后,首先对开关矩阵进行了研究,结合Wilton开关矩阵和 Disjoint开关矩阵的特点,得到一个连接更加灵活的开关矩阵,提高了FPGA器件的可 布线性,接着本课题中又对通用互连线长度、通用互连线间的连接方式和布线通道的宽 度等进行了探讨,并针对本课题中的FPGA器件,得出了一套适合于中小规模逻辑器件 的通用互连资源结构,仿真显示新的互连方案有较好的速度和面积性能,在互连资源的 面积和性能上达到一个很好的折中。 接下来课题中对FPGA电路的可编程逻辑资源进行了研究,得到了一种逻辑规模适 中的租粒度逻辑块簇,该逻辑块簇采用类似Xilinx公司的FPGA产品的LuT加触发器 结构,使逻辑块簇内部基本逻辑单元的联系更加紧密,提高了逻辑资源的功能和利用率。 随后我们还研究了IO模块数目的确定和分布式SRAM结构中编程电路结构的设计,并 简单介绍了SRAM单元的晶体管级设计原理。最后,在对FPGA构架研究基础上,完 成了一款FPGA电路的设计并设计了相应的电路测试方案,该课题结合CETC58研究所 的一个重要项目进行,目前已成功通过CSMC0.69ra 2P2M工艺成功流片,测试结果显 示其完全达到了预期的性能。 关键字:FPGA、SRAM、通用互连资源、开关矩阵、逻辑块簇 江南大学硕士学位论文 Abstract Title:The Design ofa SRAM Based FPGA Device Name:HouWeihua Tutor:.Yu Zong-gnang pmfessH M面∽Microclcctronics and solid-stste electr∞ics Field—Programmable Gate Arrays(FPGAs)are integrated circuits which can be programmed to implement any digital circuit.To implement digital systems with FPGA have the advantage of flexible,low-cost,low-risk,low-turn-around time and SO on.At the background ofthe previous work ofFPGA devices internationally.111is study is began on the structure of the FPGA and it foeued on optimizing the interconnect resources of FPGA.Be compared witll the ASIC.much of the area and speed penalty to the FPGA is due to the programmable muting structures.TIlis happens because in FPGA,gates are connected with chips嘴simple programmable switches and metal wires,but full—fabrication wires to make interconnections between logic gates.These switches have much larger resistance and capacitance and hence are slower than the wires in向ll-fabrication chips.TKs indicates that we can improve the performance by optimizing the programmable interconnect method and the interconnect structures.In this thesis,r11le effect of the logic modules and interconnect resources on the SRAM based FPGA devices is studied,First the basic system architecture was introduced in this paper,and following we studied the switch maUix and got a more flexible switch matrix archiIecture which combined the character ofthe Wilton switch matrix and the Disjoint switch matrix,the new switch matrix help to improve the routable mte notably.Then the length of the general programmable wire,the programming connect techniques and the width ofthe muting channels were also researched and the general muting architecture that suite for the moderate or small scale FPGAs was got,the simulation showed that the new routing architecture had a good performance on speed and alga and got a beltgr trade一0frbe押,∞n them. Then the programmable logic resources was studied and a moderate scale coarse—grain logic cluster.this logic cluster has a Xilinx products semiarid structure ofLUT and Flip-Flops combination。this structure makes the Basic Logic Cells’connection in the Logic Cluster more closely and improves the Logic Cluster’S function.Then the number of the 10 modules and the programming circuit to the distribution—style SRAM resources were studied,and the transistor leveI design of the SRAM ccll Was alSO introduced.Finally,a FPGA device was designed on the basis of Our study work and the test scheme Was also designed,As a key project of CETC58 institute.now this chip has been fabricated under the CSMC O.61ma 2P2M process.1nhe test results show that it achieves the anticipated performance. Keywords:FPGA;SRAM;General Interconnect Resources;Switch Matrix;Logic Cluster Il 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 本人为获得江南大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 日期:如7年弓月J7日 关于论文使用授权的说明 ,本学位论文作者完全了解江南大学有关保留、使用学位论文的规 定:江南大学有权保留并向国家有关部门或机构送交论文的复印件和 磁盘,允许论文被查阅和借阅,可以将学位论文的全部或部分内容编 入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、 汇编学位论文,并且本人电子文档的内容和纸质论文的内容相一致。 保密的学位论文在解密后也遵守此规定。 签名: 导师虢盈宣些 日期:砂]年≥月哆日 I J 第1章绪论 第1章绪论 现场可编程门阵列FPGA(Field Programmable Gate Array)器件在当今电子系统设计 中起着十分重要的作用,可以用在任何数字系统中。本章我们首先介绍了FPGA的特点 以及用FPGA开发数字系统的优势,接着简要介绍了PLD(Programmable Logic Device) 可编程逻辑器件的发展历程,并总结了目前国际国内FPGA的发展状态、大致发展趋势 以及FPGA产品开发中的关键技术。 1.1 FPGA的研究意义及现状 1.1.1 FPGA的特点 基于FPGA的设计方法有其交货时间短、无NRE费用、高集成密度、可实现较大 功能甚至系统电路等独特的优势,因此FPGA器件有着广阔的前景。FPGA的结构资源 满足了高性能数字处理对存储器、数据通路、和处理器的基本需求,电子设计领域对对 高可靠性、高水平FPGA的需量逐年增加,高性能FPGA电路的设计一向是IC领域研 究关注的热点IlJ。 FPGA与ASIC(Application Specific Integrated.Circuit专用集成电路)、MPGA(Mask Programmable GateArray掩模可编程门阵列)相比具有特定的优势。相对于MPGA, FPGA有高的灵活性,例如基于SRAM的FPGA具有无限次可编程的特点,而MPGA 不能重复编程;相对于ASIC电路,FPGA除了灵活性外更具有低风险、无NRE(Non Recurrent Expense)成本等优势。然而,FPGA这种灵活性是有代价的,用FPGA实现 的电路耗用逻辑资源多,速度较慢、功耗也较高等。表1.1对ASIC、MPGA、FPGA 三种数字设计方法进行了比较: 表1.1 ASIC,MPGA、FPGA性能比较 工艺 设计风险 NRE成本 相对速度 相对功耗 设计灵活性 ASlC 高 Ⅷ(执 较高 高 高 低 不可修改 低 较高 较高 不可修改 FPGA 低 无 低 高 可重复修改 ASIC电路设计风险受产品性能、市场变化、技术发展等因素影响,其产品的市场 定位、设计规划、研发投入是一个漫长(几个月甚至几年时间)过程,需要较大的研 发投入,而市场竞争及迁移、技术更新导致短的生命周期都给ASIC开发带来很高的 风险。而FPGA的设计可修改性恰恰避免了这个风险,而基于MPGA的设计风险与 江南大学硕士学位论文 FPGA相比要大得多;因为MPGA设计的缺陷需要修改最终的掩模,代价很大,还要 花费几个星期(6.8周)的重新设计时间。图1.1和图1.2分别给出了近年来FPGA和 ASIC电路开发成本的走势。 -_ I● _I,J.J.广 。r ,F .【 1 图1.1单片Flea生产成本降低 图1.2 ASIC开发费用快速增长 ASIC的NRE费用包括工作成本和掩模费用以及设计工具、测试验证、原型样品 等,长的产品开发周期和工艺进步带来的制版费用大幅度的提高使得ASIC电路的NRE 费用非常高,一次设计失败,供应商将承受巨大的损失。MPGA相比而言设计周期较 短,掩模版费用较低且有较大的用户群来分担处理过程中的NRE费用。随着半导体制 造技术的不断发展,硅器件单位面积的制造成本迅速降低,FPGA的单片价格不断下 降。FPGA开发过程中,只需改进编程数据对FPGA器件进行配置,几乎没有NRE费 用[2-51。 ASIC总是可以运用最合理的设计技术和制造工艺来实现特定的电路,因此其面积、 速度等因素较合理甚至最优,制造商总是设法用最小的面积实现最高的速度或最小的功 耗。而前面提到,FPGA需要大量的存储单元和可编程开关来实现其可编程灵活性,速 度和功耗、面积效率都很受影响,MPGA与之相比也因为无附加电路及可编程连接原 件造成的延时,因而速度较高,集成度也较高。 1.1.2可编程逻辑器件的发展历程 可编程逻辑器件是经历了一个很长的发展过程才到达今天FPGA这样复杂的程度 的,本节我们简单介绍一下可编程逻辑器件的发展历程。 可编程逻辑器件的发展大约经历了PROM、PLA、PAL、CPLD和FPGA等阶段lI’ 31。早在ROM问世时期,人们就利用ROM存储一定的逻辑或其它函数值,通过地址查 表方式实现特定的逻辑功能,然而,用ROM存储代码是一个相当昂贵、耗时的过程, 因为ROM供应商要为每一个用户提供唯一的一套掩膜版,从定货到交货周期也相当长。 上世纪的70年代出现了ROM的替代产品PROM,它允许用户用一个桌面编程器进行 功能配置,且与ROM一样断电后数据不会丢失,在逻辑编程领域替代了ROM,后来 陆续出现了EPROM、EEPROM、Flash存储器等改进器件,这里我们统称为PROM。 2 第1章绪论 ’PROM主要是作为数据存储出现的,其只能适合有限输入、输出端子的组合逻辑,而且 速度非常慢,当今的PROM存储时间最少也在40ns左右。这一时期真正的可编程器件 是可编程逻辑阵列(PLA)器件,通过具有宽输入的“与”阵列和输出“或”阵列组成, 解决PROM输入输出数量的不足,而且工作速度也快的多,但是仍只能实现组合逻辑 功能。 70年代末,AMD公司推出了可编程阵列逻辑(PAL)器件,相比PLA,PAL不仅 采用了更有效的“与”、“或”阵列,而且器件集成了触发器,速度也高出许多,使得 PAL不仅可以设计组合逻辑电路,还可以实现高速的状态机控制器。紧接着,Lattice 公司推出电可擦除,比PAL更灵活,功能更强的通用阵列逻辑器件(GAL)。这些器件 出现导致了硬件描述语言HDL的诞生,为后来的VHDL、Verilog HDL奠定了基础。80 年代中后器,Lattice等公司推出了在系统可编程器件ISP,同时出现了一系列的复杂可 编程逻辑器件CPLD。1985年,Xilinx公司推出第一代FPGA XC2000系列FPGA,宣 告可编程逻辑器件进入了FPGA时代。 1.1.3 FPGA的现状及发展趋势 自1985年问世以来,FPGA器件越来越成为人们实现许多数字电路和系统的首选 方案。随着集成电路技术的发展,例如:特征尺寸不断缩小,单片IC上集成的晶体管 达到上十亿个;单端口或双端口存储器件的成熟;面向时钟管理的数字锁相环;高速IO 接口;片上DSP资源及嵌入微处理器等,所有这些都使得FPGA不再局限于部分电路 实现,而越来越适合于实现更强大甚至片上系统的功能。近年来,FPGA在越来越多的 领域如计算机和数据处理系统、通信设备、雷达、声纳、医疗电子设备、测试仪器等逐 步取代ASIC和通用器件DSP、MCU等I”。 XILINX是FPGA器件的发明者,也是当今国际FPGA业界的领跑者,这里我们主 要以XILINX公司产品为主。说明一些FPGA的发展现状及趋势。当今的FPGA产品主 要有以下一些特点[I,6-11】: (1)更高集成度、更高的速度、更低的功耗: FPGA电路的集成度也已经成为微电子发展水平的直接体现,微电子制造工艺的每 一次改进都首先体现在FPGA器件上。目前的FPGA工艺正由90nm向65nm转移,2006 年,XILINX推出其基于65nm工艺的新型FPGA器件Virtex.5家族的两个系列:LX和 LXT,分别对高性能逻辑和带有串行I/O的高性能逻辑进行了优化睁】。与上一代产品(基 于90nm工艺的Virtex-4)相比,采用更低的1v工作电压,速度提高30%、动态功耗降 低35%、面积缩小45%。并首次采用新型对角线布线技术,实现了高速可预测布线, 系统时钟高达550MHz。 (2)更加丰富的片上资源、面向应用领域优化的系统FPGA平台: 3 江南大学硕士学位论文 国际主要FPGA厂家在系统级FPGA的技术发展上,主要强调了两个方面:FPGA的 要体现在两个方面:①高集成度带来的丰富的可编程逻辑资源和布线资源,②FPGA中 集成的DSP、微处理器、高速IO、RAM模块等嵌入IP单元。现在的FPGA器件可提供高 达数百万甚至近千万的可编程逻辑门数,集成大量的乘法单元等专用DSP模块等。例如, XILINX公司在2004年推出的Virtex-4系列包括3个系列:LX、SX和FX,LX平台主要针 对通用逻辑应用,提供了最高的逻辑密度和高性能I/O;SX平台主要针对高性能信号处 理应用,针对高性能实时信号处理提供更多的Xtreme DSP逻辑模块与嵌入式块RAM资 源;FX平台主要用于复杂系统应用如网络、电信等领域,其特点是嵌入了PowcrPC 405 微处理器模块和支持600Mbps至11.1Gbps任何速率的千兆位串行收发器模块嗍。其它如 Altera公司的Stratix II系列集成了片上ARM RISC IP核,更适合于片上系统领域的应用 [IH。 (3)更低的价格、成本: 市场竞争等因素使得FPGA厂商在不断提高FPGA性能的同时努力控制其成本和价 格,XILINX在新推出的V'mex-5时利用EasyPath免转换、成本削减的批量生产方法, 使器件的生产成本降低30.75%,并且没有转换风险和隐性成本。 中低端批量应用种 如XILINX推出的Spartan系列、Altera公司的Cyclone系列,都在保证性能同时极具价 格优势,成本上也可以和ASIC相竞争。 国内对FPGA器件的研究起步较晚,开始于二十世纪九十年代初,但是近几年才引 起重视,但仍没有成功的商业产品问世。目前国内仅有以复旦大学等为代表的少数几家 高校和科研单位开展这方面的研究工作。基于这个形式及国内市场需求,中国电子科技 集团第58研究所近年来对FPGA进行了立项研究,本课题正是作为该项目的一部分。 深入研究了FPGA相关设计技术,并进行实际的FPGA器件设计,对于国内FPGA产 业发展有着重要的作用。 , 1.2 FPGA的分类 1.2.1按编程技术分 目前市场上的FPGA产品编程技术主要有基于SRAM技术、基于反熔丝技术以及 近年来出现的基于Flash EPROM技术等几个系列。其中以基于SRAM技术的FPGA产 品最多。表1.2给出了三种编程技术特点。 基于SRAM编程技术的FPGA器件中嵌入大量分布式或块状的SRAM单元,对 FPGA编程时,配置信息通过配置引脚存储于这些SRAM中,实现特定的功能,SRAM 单元的作用主要有两点:(1)将一组SRAM单元组合起来作为一个UJT,实现任意组合 逻辑功能;(2)用某个SRAM单元的存储信息控制传输管开关或多路器实现电路元器件 4 第1章绪论 连接与否。其最大的优点是可无限次重复编程和在系统可编程性(即在整个电子系统工 作过程中对FPGA进行配置),此外,这种FPGA完全由CMOS工艺实现,工艺简单成 本较低。而SRAM的缺点是系统掉电时数据无法保存,需要外置ROM/PROM等存储 单元。 主要特性 表1.2三种FPGA编程技术特点 翻洲 反熔丝 Flash EPROM 易失性 是 否 否 在系统编程性 最好 否 较好 相对速度 较慢 快 最慢 功耗 高 低 中 面积 5X IX 0.8X 安全性 制造工艺 否 Ch螂 是 改进CMOS 否 Flash 编程次数 无限次 一次 有限次 由于可以从SRAM单元中读出数据,因而使系统缺乏安全性又因为SRAM单元的固有 特点(双反相器首位相连的反馈保持结构),在某些特殊应用,如军事项目中SRAM配 置信息可能因为辐射或瞬时脉冲干扰等环境变化而受到影响,使配置信息出现错误。 反熔丝技术的原理是:在一个由绝缘体分开的两个导体间跨接一个小的链接环,如 图1.3所示,当在这个链接环的两端施加一个大的电压时,链接环熔化,导体1流入原 来链接环位置,实现两个导体的连接。当今的制造工艺中主要有两种类型的反熔丝技术, 第一种是多晶.n+扩散型反熔丝技术,即图1.3中的导体1为多晶硅,导体2为神‘散 区,绝缘体为ONO(Oxide-Nitride-Oxide氧化物.氮化物.氧化物,通常为Si02.Si3N4.Si02), 链接环由单晶硅实现。第二种金属.金属反熔丝技术,即图中的导体l和导体2皆为金 属,绝缘体为无定形硅,链接环为钛、钨等的硅化物。 导体l 链接环 导体2 图1.3 Flea反熔丝结构简图 基于Flash技术的FPGA是随着近年来Flash EPROM技术的发展而出现的新型 5 江南大学硕士学位论文 FPGA器件,Actei"公司的ProASIC plus器件等使用了Flash编程技术。与基于SRAM· 的器件类似,不过它们是用Flash EPROM单元编程,其特点是兼具非易失性和可重复 编程性,不过,相对于SRAM,基于Flash T艺的FPGA编程和读取速度慢,功耗较大, 工艺代价也较大,且仅能进行有限次数(早期的几百次到现在的上万次)的编程。 1.2.2按逻辑资源粒度大小分 还有一种对FPGA电路的分类技术是按可编程逻辑模块的规模将FPGA分为细粒度 和粗粒度两类,FPGA早期人们采用的细粒度可编程逻辑模块大小相当于ASIC门阵列 中的单元,其逻辑模块较小的单元如“与非门”、“或非门组成,通过互连资源将这些小 的逻辑单元连接实现不同功能。理论上细粒度这类FPGA器件资源利用率比较高,而且 由于其结构类似与门阵列的ASIC电路,因而与ASIC电路间的转换更容易。然而,细 粒度的逻辑模块中由于需要大量的互连线,路径问题成为制约速度和资源利用率的瓶 颈,随着芯片集成度提高,细粒度结构已无法承受集成度带来的布线资源的要求,这类 FPGA已逐渐被淘汰例。显然,按粒度大小分类是一个相对的分类方法,现在人们所说 的粗粒度指FPGA电路中的逻辑模块结合了组合逻辑电路和多个触发器,或者说由一些 基本逻辑单元构成的逻辑块簇,可实现较大的功能【12d5】;而细粒度单元则指规模较小的 组合逻辑和单个触发器构成的逻辑模块。随着FPGA器件规模的扩大,FPGA器件提供 的逻辑模块规模也越来越大。详细的逻辑模块的讨论将在第二章介绍。 1.3本文重点及结构安排 本文首先总体介绍了FPGA体系结构,重点研究了中低逻辑密度的FPOA器件的可 编程资源特别是可编程互连资源的设计,在此基础上,我们设计了一块可编程门数大于 6k的FPGA器件并设计相应的测试方案,该器件通过CSMC 0.6微米2P2M工艺进行 流片,对样片的测试结果显示其完全达到预期研究目标。 本文内容安排如下:第2章介绍了FPGA的体系结构以及用FPGA电路进行数字设 计的CAD流程;接下来在第3章中重点介绍了我们对FPGA片上通用互连资源的结构 研究,得出一套适合于中小规模FPGA器件的通用互连结构;第4章介绍了FPGA的逻 辑资源、编程电路和SRAM单元的设计等,并给出我们设计的FPGA芯片的最终版图 概貌;最后,第5章我们介绍了本FPGA器件的测试策略,设计了一套故障覆盖率高、 测试时间少的测试方案。 6 第2章FPGA的体系结构 第2章FPGA的体系结构 一般来说,影响FPGA总体性能主要有3个主要因素:(1)FPGA的体系结构;(3) CAD T具的性能:(2)FPGA器件晶体管级元件的电器性能等。本章我们概括地介绍 FPGA器件的硬件构架和CAD开发流程。首先讨论了FPGA的基本体系结构,重点介 绍了FPGA中的各用户可编程模块的结构与功能,然后简述了用FPGA进行数字电路设 计的CAD流程和设计FPGA系统的关键技术。 2.1 FPGA体系结构 每一个FPGA生产厂商都有其自己的FPGA体系结构,但是这些不同的结构都有类 似的基本模块。基于SRAM技术的典型FPGA基本结构如图2.1。由图,FPGA的体系 结构包括控制部分、SRAM存储资源和用户可编程资源3部分。控制部分包括对可编程 资源进行操作的编程电路部分和相应的编程控制部分、复位电路、时钟控制电路等。这 部分提供了用户(通过相应的CAD工具)对可编程资源配置的接口;配置信息存储于 片上大量的SRAM单元中,这些SRAM单元以阵列形式分布于整个FPGA芯片,实现 对所有片上可编程资源的控制;用户可编程资源包括CLB(Configurable Logic Block: 可配置逻辑块)、IOB(IO Block:IO模块)和PI(Programmable Interconnect:可编程 互连资源)等部分,是实现具体功能的主要资源。FPGA芯片将由以上3部分占用的总 资源成为FPGA的系统门数,将可编程资源的占用的逻辑门数称为用户可编程门数,通 常,FPGA器件中的系统门数远远大于用户可编程门数,这也反映了FPGA器件的面积 效率较ASIC电路要差的多。本章我们主要介绍FPGA的用户可编程逻辑资源结构。 I CLB I可 控 o—二一编 制 《 回罂 部 圃罴 分 图2.1 FPGA的体系结构 严格地说,一套完备的FPGA系统还应包括与之相配套的CAD开发软件,CAD软 件系统中的各模块所采用的算法强烈依赖于其芯片的结构,因此不同的FPGA器件供应 商都提供了针对各自FPGA产品的软件开发系统,这些CAD工具也随着FPGA产品的 发展不断更新换代。例如,Xilinx公司的开发工具经历了Foundation工具到现在强大的 ISE8.2版本集成开发环境,各版本分别支持不同时期的FPGA器件的设计。 7 江南大学硕士学位论文 ’ 2.2 FPGA的可编程资源 图2.2中给出一个被称为“岛屿”式布局的FPGA内部结构,大量的可编程布线资 源围绕着阵列结构的可编程逻辑模块。整个FPGA可编程资源包括如下几个部分:(1)实 现组合和时序逻辑功能的可配置逻辑模块;(2)建立信号连接的可编程互连资源(包括通 用互连资源和可编程长线等);(3)提供FPGA与外部器件接IS]的可编程FO模块。大量 的SRAM存储单元分布于整个FPGA芯片。 图2.2“岛”式布局的FPGA可编程资源 2.2.1可配置逻辑模块 可编程逻辑模块多采用粗粒度的形式,有基于查找表LUT和基于多路选择器MUT 两大类。常见的逻辑模块为由不同数目的LUT或MUX加触发器组合构成的逻辑块簇 结构。下面我们分别讨论两类租粒度逻辑模块: (1)基于LUT的逻辑模块: 目前大多数的FPGA产品采用基于LUT的逻辑模块,XILlNX公司研制的第一块 FPGA电路即采用基于uJT技术。LUT的原理是由一组SRAM单元来存储逻辑函数值, 由函数输入端对这些SRAM存储单元按位寻址以实现相应逻辑功能,是一种泛函的组 合逻辑解决方法。图2.3给出了一个2输入LuT的原理图。可见,一个n输入的LUT 由2“个SRAM单元组成,改变SRAM单元中的配置,即可实现所有n变量逻辑函数。 8 第2章FPGA的体系结构 由于LuT具有结构规则、工艺影射方便(只要考虑满足输入输出端的要求即可)的特 点,因而非常适合用于可编程逻辑器件的逻辑发生器。目前大多数的FPGA产品采用4 输入LUT。XILINX公司在其最新一代的Virtex一5系列FPGA中首次采用了6独立输入 的LuT,减少逻辑级数,速度更高I”。 一个基于LUT的基本逻辑模块一般由LUT加上一个或几个触发器构成,如图2.4 所示。本文我们主要讨论采用基于LUT的逻辑块的FPGA,我们设计的基于SRAM的 FPGA器件也采用了基于LUT的逻辑模块。 瓴I) I l碲瓣l 鲰哪l 图2.3 2输入LUT原理图 图2,4基于LLrr的逻辑基本逻辑单元 (2)基于MUX的逻辑模块 Actel公司的多数FPGA产品采用了基于MUX的逻辑单元,如图2.5所示。与LuT 相比,这类逻辑单元除了在结构上不同外,在实现逻辑方式上也不同,它本身不可编程, 是一种固定逻辑模块,其逻辑的实现是通过输入端和连线资源的不同连接来实现的,如 图2.5(b)为实现一个特定组合逻辑功能的情况。这种结构的逻辑块输入端较多,消耗 更多的连线开关,连线开 关采用反熔丝结构。但由 于反熔丝结构的连线开 关占用面积比SRAM小 很多,且电气性能好,因 此这类结构能取得更高 的逻辑密度和更高的速 度。这类器件由于反熔丝 技术的特点,多用于要求 可靠性高的场合,如航空 航天,军事领域等。 (a) (b) 图2.5基于删X的逻辑单元结构 目前的粗粒度逻辑模块一般为组合了两个或多个基本逻辑单元形成的逻辑块簇 (Logic Cluster),块簇内的基本逻辑单元BLE通过局部连线实现高速互连,增加逻辑 9 江南大学硕士学位论文 密度的同时减小了互连延时。例如采用含有8个基本逻辑单元逻辑块簇的FPGA比仅用 单个基本逻辑单元的FPGA结构要减小23%的延时和14%的面积‘12】。同时,采用逻辑 块簇的FPGA可以显著地减小设计编译时间,而设计编译时间正随着FPGA的逻辑规模 的增大越来越引起人们的关注。图2.6为一个含有N个基本逻辑模块的逻辑块簇模型图, 其输入端口数为I,输出端口数为N,本文的逻辑块簇将都采用这个模型。 1个输入 端口 图2.6逻辑块簇结构 2.2.2 I/O模块 可编程I/O模块提供了FPGA内部信号与芯片外部器件的接口,包括电压转换、压 摆率控制等等。如今新型的FPGA器件都提供高性能的I/O模块,如Xilinx Virtex系列 器件提供了高性能的SelectIO电路,可以轻松支持所有常见的接口标准和电气标准,能 与任何常见的外围元件进行接口/桥接。这里我们以Xilinx公司XC4000系列的I/O模块 为例简述FO模块的功能。图2.7为XC4000系列I/O模块简图【161: 可编程I/O模块可提供多种不同电压标准问的转换,支持多种传输信号格式,可用 作输入、输出或双向端口。输入可设定为直接、锁存或寄存模式,输出可设定为直接或 寄存模式。输出缓冲带有畸变和翻转等控制。其中的延迟单元用以补偿时钟信号到达I/O 模块前全局缓冲引入的延迟,从而消除了外部数据引脚处数据的保存条件。I/O模块三 态输出可将输出缓冲置于高阻态。输出缓冲的翻转速率可以控制,以将非临界信号跳变 时对电源总线的瞬时影响降到最小,I/O引脚可以编程为上拉或下拉,以避免不必要的 能耗和噪声。 10 第2章FP(;A的体系结构 图2.7 XC4000系列的lOB 2.2.3互连资源 FPGA的互连资源包括可编程逻辑模块内部的互连和可编程逻辑模块间的互连,当 然,含有基本逻辑模块越多的逻辑块簇,逻辑模块内部互连将越复杂。图2.8给出了 FPGA内部逻辑块簇和其周围的互连资源构成的一个基本结构图(FPGA正是通过多次 重复这种基本结构构成)。 ‘l f 、奉. j.一 、 ‘i 、、 ● 、 、 I一 .. 事辈卜 内部互连 一 矩阵 一I /‘ q*“。 ‘。2.J、 “ z 3,二 ,,, J, 封面司 I ■ ■ 布 线 逼 谨 图2.8 逻辑块簇和周围互连资源的基本结构 图2.8中可编程逻辑模块内部通过内部连接矩阵实现基本逻辑单元的完全连接,即 任一个BLE的可连接到任何一个BLE的输入,块簇的每个输入端口可以连接大任一个 BLE的输入。完全互连的优势在于由FPGA实现的电路的物理连接变得非常简单(具 江南大学硕士学位论文 体连接路径选择由CAD工具决定),布线工具可以简单地将逻辑块簇的输入信号连接到 任何一个输入端口,增加了布线工具的灵活性,也减少了布线路径上通用互连线断的数 目。然而,同时也因为增加了更多的多路选择器而增大了芯片面积和延时,对于大的逻 辑块簇,这个面积和延时代价是相当大的。 逻辑模块间的互连通过图2.8中所示的布线通道、开关矩阵和连接块实现,我们将 实现逻辑块间互连的这些连接资源称为通用互连资源,这是本课题研究的重点,将在第 三章详细论述。结合图2.2和图2.8可以看出,布线通道以网格状的结构围绕于逻辑块 簇四周,通道内具有特定数目的金属互连线,这些金属连线具有固定的长度。,开关矩 阵出现在每一段布线通道的两端,实现不同通道内首尾相邻的金属连线间的可编程连 接。连接块内的可编程连接开关由传输管开关、多路选择器或三态缓冲器实现,完成逻 辑块簇的内部与通用互连资源间的信号交换。由图可见,“岛”式布局的FPGA的互连 结构中,通用互连资源构架的设计包括以下几方面的内容: (1)布线通道内通用互连线段的长度和数目(人们一般将跨过一个逻辑模块的导线 长度设为单位长度,即跨过n个逻辑模块的导线称为n单位长线)。 (2)通用互连线间的连接方式。主要有传输管开关或双向缓冲器两种连接方式。 (3)开关矩阵结构的确定。 “)布线通道内可以与相邻的逻辑模块的输入输出端口进行连接的通用互连线数 目。 (5)各种可编程开关的尺寸设计。 (6)金属互连线段的线宽选择 通用互连结构的设计是复杂的,因为上述每一项的确定与设计都是一个在FPGA逻 辑密度,速度,逻辑利用率等方面的折中,需要反复验证。 2.3用FPGA进行数字电路设计的CAD流程 用FPGA进行数字系统设计的过程就是借助相应的CAD工具,将给定的数字电路 (电路图或硬件描述语言形式)转换成一个可以对FPGA器件进行配置的二进制.bit文 件,通过下载线将生成的二进制文件对目标FPGA进行配置,完成相应的电路功能。前 面提到,CAD工具的性能对由FPGA器件实现的具体电路性能有很大的影响。通常, 每个FPGA厂家都会根据自己FPGA的特点提供配套的CAD开发工具。 图2.9给出了FPGA的CAD流程【17琊】:用电路图或硬件描述语言形式描述的电路 首先通过综合被转成用基本门电路描述的网表结构,然后对综合结果进行优化(sIs)以减 少晶体管数目[2qo接下来通过FlowMap和FlowPack算法㈤对电路进行工艺影射,即 将用电路图或硬件描述语言描述的电路转换成网表形式的描述(这个过程用到已存在的 LUT和寄存器的网表形式的描述)。由于FPGA是由大量的逻辑块簇构成的,因此要对 综合优化结果进行一个称为Packing(T-Vpack或Vpack)的处理【23洲,Packing过程是 第2章FPGA的体系结构 将由LUT和锁存器形式的网表“封包”处理,形成基本逻辑单元BLE,BLE经过逻辑 密度和速度优化后在被组成逻辑块簇,产生用逻辑块簇形式描述的网表。接着给每一个 得到的逻辑块簇的网表在FPGA上指定一个位置,然后用可编程的水平和垂直方向的布 线通路将这些逻辑块簇连接起来,即基于VPR算法的布局(Placement)布线(Routing) 操作。最后的布局布线结果即为.b“二进制配置文件,将此文件通过下载线对目标FPGA 进行配置,即可得到相应功能的电路。 电路描述 与工艺无关的逻辑优化(SIS) 山 !—一 工艺影射为LLrr和触发器 I(FIowMap+FlowPack) 山 T-VPAC啪ACK 将LUT幕I触发器。封包’成基本逻辑单元 ● t7VPR ● 、 布局(Placement) ● 布线(Routing) 、 + / 图2.9 FPGA开发的CAD流程 2.4设计FPGA器件的关键技术 一套完整的FPGA产品设计是一个复杂的工程,它不仅包括FPOA芯片的完成,还 要有与之相配套的FPGA开发软件的设计。这里我们从电路设计、编程工艺和CAD开 发工具三个方面简述FPGA设计中的关键技术。 1.片上可编程资源设计:所有的FPGA器件都包括3种基本的用户可编程资源: 可编程的逻辑模块、可编程的IO接口模块以及可编程的互连资源,一些高端的FPGA 器件片上可能集成有更复杂的可编程处理器、DSP模块、时钟管理模块、高速串行收发 江南大学硕士学位论文 器等,所有这些资源都有一个共同的特点,最大可能的用户可编程性以保证FPGA的灵 活性,使其可以适应于各种领域的需要。因此,FPGA器件片上资源的设计与传统的 ASIC是不同的,它没有特定功能,又保证可通过用户配置实现最大的功能。这种特点 带来的直接后果之一就是造成片上可编程互连资源的增加,通常占据70*/0-80%的芯片 面积11l,因此,如何使可编程资源的灵活性与布线资源的复杂度达到一个最优的折中成 为FPGA设计中的一个关键问题,本课题正是在研究3类基本资源特别是互连资源的基 础上完成一款FPGA的设计。 2.FPGA的编程工艺:由1.2知,主要有3类可编程技术:反熔丝、SRAM和EPROM (E2PROM、Flash),其中,SRAM仅用到普通CMOS工艺,工艺实现简单因而价格较 低,可无限次编程,编程速度最快,真正达到ISP的功能(In-System·Programmable在 系统编程),因此我们采用了较通用的SRAM编程技术。 3.FPGA开发的CAD工具: 如前面所述,FPGA的集成CAD开发环境一般包括 设计输入、设计优化、映射、布局、布线时序验证等。工艺映射、布图方法等直接影响 软件系统与FPGA器件的和谐工作以及应用设计电路在面积、速度与功耗等方面的性能 优劣,同时,为了避免将来因硬件结构修改而造成软件系统的不适应,要求软件系统能 灵活地支持规模、结构不同的可编程芯片。本课题中我们主要集中在FPGA器件的研究 设计。 2.5本课题中FPGA器件的设计目标 由于我们对FPGA电路的研究尚处于初级阶段,因此我们在本课题中进行了一款较 小规模的FPGA器件设计,预期电路规模为5K-10K的可编程门数,系统时钟为 50MHz.80MHz,5V电源电压,静态电流小于5mA,采用CSMC0.6微米工艺流片。 2.6小结 本章我们介绍了FPGA的体系结构,对于FPGA器件的不仅要设计FPGA的硬件 电路资源,而且要设计相应的方便用户对FPGA进行配置的CAD软件工具。本章我们 重点介绍了FPGA的硬件体系构架主要是用户可编程资源的结构及原理,这也是本研究 课题的重点,此外我们还简要介绍了对FPGA进行用户配置的CAD流程。在此基础上 我们总结出设计FPGA器件过程中的关键技术。 14 第3章通用互连资源的设计 第3章通用互连资源的设计 FPGA器件中,通用互连资源占据了大部分的芯片面积并且造成电路上主要延时。 FPGA通用互连结构是决定系统速度和逻辑密度的主要因素,因此,通用互连结构的优 化受到人们极大的关注口∞o】。本章首先介绍了对FPGA互连资源进行性能评估的面积和 延时模型,然后分析了互连结构设计中的关键部分,最后我们在分析现有的通用互连结 构基础上提出一个改进的互连结构,在互连资源的面积和延时上达到一个良好的折中。 3.1面积模型和延时模型 本节给出我们对FPGA性能进行评估的面积模型和延时模型,面积模型运用FPGA 分析中比较常用的“最小宽度晶体管”模型,延时性能分析用到了基于Elmore的延时 模型分析和SPICE仿真分析方法。 3.1.1面积模型 对FPGA互连结构研究过程中,人们曾用到多种面积模型,最先人们通过计算进行 成功布线后在每个布线通道内用到的通用互连线的总数目来计算布线面积,也有人通过 计算布线后布线资源中用到的可编程开关数目来估计布线面积。前一种方法的不足之处 在于:由于每条通用互连线上连接的开关数目是不固定的,因而其所占用的面积也是不 同的,计算出的等效面积也将有很大误差;后一种方法的也是有局限性的,对于采用了 不同可编程开关的开关矩阵(例如同时采用传输管开关和双向缓冲器),这种模型将很 不精确。本文采用了文献[261的提到的“最小宽度晶体管”面积模型,相比之下,该模 型可获得最优的面积估计。 创建这个模型的一个基本前提是假设FPGA总的芯片面积全部由有源区构成,当然 这需要多层的金属布线(由于晶体管面积决定了FPGA的布线面积,因此对FPGA构架 面积进行估算的最精确的方法是估计其版图上晶体管的总面积,这已以被Xilinx和 Altera等众多FPGA厂商所证实)。“最小宽度晶体管”模型如图3.1,这个最小面积单 位定义为一个晶体管的最小版图面积加上某一特定工艺下的晶体管间的最小间距【26,271。 运用“最小宽度晶体管面积”作为基本面积单位,电路中任何一个比最小面积晶体管大 的晶体管都可以计算为多个最小面积晶体管,同时考虑宽长比为最小面积晶体管的2倍 的晶体管需要的面积小于2个最小面积单位。运用这个最小面积单位的优点在于可以使 FPGA面积的计算与具体工艺无关。在对FPGA中所有的逻辑和互连资源进行晶体管级 设计,用这个面积模型计算所有的门电路、传输管、缓冲器等的等效面积,以估计面积 性能,比较不同结构的FPGA器件的面积效率。 江南大学硕士学位论文 最小水平间距 n+加+扩散区 图3.1最小宽度晶体管模型 3.1.2延时模型 我们的延时模型基于CSMC 0.6微米CMOS工艺。找出FPGA实现的电路结构的可 能的关键路径,对这些关键路径进行SPICE静态时序分析。通过对采用不同的互连方 式的SPICE仿真结果进行比较,得出面积和性能折中下的最优结构。确定互连通路的 关键路径,我们要考虑如下几点: (1)确定逻辑模块内部的路径延时; (2)确定逻辑模块间的路径延时: (3)利用(1)、(2)的结果对电路进行基于路径的时序分析; 每一次布线完成后,用SPICE工具对逻辑模块内部电路的关键路径进行静态时序分 析,对于逻辑模块间的互连用电阻、电容、理想二极管、延迟单元构建其Elmore延时 模型,接着用SPICE进行时序分析。 3.2开关矩阵的结构设计 对于逻辑模块间的互连,开关矩阵是最重要的互连结构。如图2.8所示。开关矩阵 可以将进入开关矩阵的通用互连线通过可编程连接的传输管开关或双向buffer连接到 一条或数条其它布线通道中的互连线上。显然,开关矩阵的灵活性成为整个FPGA器件 的灵活性和可布通性的关键,开关矩阵中的传输管加大了互连线的电容和电阻负载,因 此开关矩阵对互连通路造成了重大的影响以至对整个FPGA器件的速度性能造成很大 的影响。此外,由于大部分的FPGA芯片面积由互连部分构成,因此,开关矩阵对FPGA 16 第3章通用互连资源的设计 器件逻辑密度也造成重大的影响。由上,一个优良的开关矩阵的-设计至关重要。本章我 们将在现有的3种开关矩阵的基础上,分析其各自特点,并得到一个经过优化的适合我 们的FPGA电路的开关矩阵。 3.2.1三种常见开关矩阵 开关矩阵在通用互连结构中的位置见图3.2,是通用互连结构设计中最重要的部分。 常见的开关矩阵有三种【3l】:不相交开关矩阵(the Disjoint Switch Matrix)Ill}、;通用开 关矩阵(the Universal Switch Matrix)[321、;威尔顿开关矩阵(the Wilton Switch Matrix) [3313种开关矩阵的结构如图所示。 尊'奎 3‘ ,ar.1:、. 。h: ,’。}。 ●● :∥’≯: 二>≈.、、§ 奢0 翔^:∥ ’、o{< 2 2 :。j《、K ,,,fi:亭乏 ’' O● :芑垒絮,t,芷‘泌。q,t,一·∥r ● ' 奎 3● ‘-)D蛳oint 0' 23 ● (b)Univernl 图3.2三种不同的开关矩 ● '2 04 “)Wilton 图3.2中的三种开关矩阵中,每条进入开关矩阵的通用互连线(这里我们称之为线 道)都通过图中的虚线(每条虚线代表一个可编程开关)连到另外3条线道。三种开关 矩阵的不同之处在于每条线道通过开关矩阵连到的另外3条线道的位置不同。 Disjoint开关矩阵的格式具有“相称性”,如果进出开关矩阵的通用互连线的编号如 图中所示,可以看出,通过开关矩阵只能使具有相同编号的通用互连线实现可编程连接, 这意味着整个布线结构可以分为按通道分为不相交的W(图2.9中W=5)个子集:线 道l,线道2,线道3,线道4,线道5,采用线道i(#l,2,3,4,5)的互连不可能 再用到其他4个子集的互连资源。例如,如果一个信号通路用线道l布线实现,而在经 过某一个开关矩阵时如果开关矩阵的另外3条“1”线道已被占用,则就无法完成布线。 Disjoint矩阵的这种布线局限性使得其可布线性比较低。 Universal开关矩阵主要的特点是用该开关矩阵可以同时实现最多数目的互连,但 没有考虑相邻开关矩阵间的相关性。Wilton开关矩阵与Disjoint矩阵类似,不同之处在 于对角位置的斜线连接“旋转”了一个互连线距离。这减小了子集带来的可布线性低的 问题,给每一条线道间的互连提供更多得布线选择。例如,线道1可以通过Wilton开 关矩阵连接到线道1或线道4,增加了互连结构的可布通性。相比之下,Disjoint矩阵 17 江南大学硕士学位论文 具有较好的速度、面积效率,适合用于通用互连线长度大于1的FPGA结构中(如Xilinx 4000及以后的各系列);Wilton开关矩阵可布线性高,适合用于通用互连线长度全为1 的FPGA结构中。 3.2.2适合中小规模FPGA器件的开关矩阵的改进结构 由上对三种开关矩阵结构的分析,可以看出,三种开关矩阵都存在由子集引起的可 布线性的问题,这在中小逻辑规模(可编程门数在万门级或以下)的FPGA器件中是不 可取的。这类器件特点是逻辑块簇粒度较小、布线通道宽度窄(一般小于或等于5)且 通用互连线长度小(一般为l单位长度)。这时,采用这三种矩阵的任一种形式的FPGA 器件在实现一些连线复杂的电路(如超前进位加法器等)时,都会造成布线资源的瓶颈 问题,从另一方面说是浪费了逻辑资源利用率。因此,我们针对矩阵子集问题对其进行 改进,结合Wilton矩阵思想,增加可编程开关数目,避免了子集问题,改进的开关矩 阵结构示意图如图3.3(图中给出部分增加的可编程连接)。 + 麓荆嚣~ 妒—髋帑o~\V。讳_缘,二争卜霄土~|;和 书帑咯费簪 图3.3改进的开关矩阵结构示意 这里我们定义一个简单的模型来比较三种基本开关矩阵和改进开关矩阵的布线灵 活性(用F表示),而布线的灵活性直接决定着布线的成功率。设每条线道可连接到其 它11种不同位置编号的线道,考虑到开关矩阵的四条边上的连接情况相同,有: W ∑刀, F=上jl∥-一 (…3.’1) 可见,F最大值为W,即每条线道都可连接到所有W种线道上。各个开关矩阵的布线 灵活性如下; 表3.1几种开关矩阵布线灵活性 开关矩阵 I F Disjoint l Universal 1.8 Wilton 2.6 改进结构 3.8 可见,改进结构每条线道可连接到更多条不同线道,使得改进后矩阵不存在子集问题。 18 第3章通用互连资源的设计 当然,由于增加了可绣糨互连数目,改进结构增大了可编程互连资源面积,我们设所有 的可编程开关均为传输管开关,利用前面提到的面积模型分析得,改进结构占用面积是 前三种的1.8倍。但这将大大提高通用可编程互连资源利用率和逻辑资源利用率。:XililⅨ XC3000系列器件中也采用了类似的开关矩阵结构‘川。 3.3可编程连接开关选择 常用的可编程连接方式有传输管开关、MUX、和三态缓冲器、和双向缓冲器等几 种形式,各自的结构如图3.4所示。一般开关矩阵中用到传输管开关、或双向缓冲器。 连接块中多用MUX、三态缓冲器等。下面分别讨论每种连接方式的特点: 布线通道 图3.4基于SRAM的FPGA中的可编程开关 (1)传输管开关: 传输管开关仅用单个晶体管的导通情况实现节点的连接与否,这由驱动其栅极的 SRAM单元中的信息决定。传输管开关结构简单、占用面积小、本征延时小,是用的最 多的连接方式。但传输管也有很多缺点:①传输管开关会产生电平损失,信号经过多多 个传输管后需要进行电平恢复;②串接较多的传输管时,路径上的Elmore模型中电阻、 电容参数变得非常大,从而引起较大的路径延时。0.6微米工艺下,忽略金属线延时对串 vl。’1。 —哦’1’ 一^。1’Vn日vI。塌摊啦Tvn C1-I-(72-I" o叶 口 守 守 , 图3.5 串接传输管开关的路径Elmore延时模型 接多个传输管的路径构建其Elmore延时模型(近似于传输线的Elmore延时模型psl)如图 19 江南大学硕士学位论文 3.5所示。 · · 设每个传输管导通电阻为R札、总对地等效电容C。,计算其Elmore延时为: N j f。N2i圣1 ci j至l Rj ㈤ 又因为Rl-R2=…=‰、CI=C2=…=C。,可得: 帆=之与c 。,卸 可见路径延时是传输管个数的平方的函数。图3.6为信号经过具有不同个传输管的路 径上的延时情况的sPIcE仿真结果。 6 — +1个}琢传输管延时。 5 —— 1I——1d广小‘住I蛤l≈管棚j置fX时}v1 4 l一靠舔磊一;_ 矿?2嘲8嚆自碰自!‘自自811鲤翳鬻ll§2募嘲 I/’厂一 3 自f,—∥一…一:。。.一删———一。j, 电压^《v .I l {, 2 。 1l\ _厂 }i ‘0 1 。々 }, ,l 、 J/ 0 . . . . &L一二叠~~ 0 0.5 1 1.5 2 2.5 3 时间rnn 图3.6不同个传输管开关串联的路径上的延时 (2)三态缓冲器: 三态缓冲器多用于开关块中,对由通用互连资源进入逻辑块簇的信号进行整形,或 对进入全局长线结构(将在3.5节介绍)的信号提供大的驱动以减小长互连中的延时。相 比传输管开关,它只能进行单向传输,且要消耗较多的面积。我们的FPGA电路中所有 由通用互连进入逻辑块簇的信号都要经过三态缓冲器。 (3)双向缓冲器: 直接将两个三态缓冲器首尾相接,并且两个三态缓冲器由不同SRAM单元控制即 可构成~个双向三态缓冲器。我们的FPGA中采用了如图3.7给出的一个特殊设计的结 第3章通用互连资源的设计 构,这在缓冲器尺寸较大时,可节省很大的面积,如我们FPGA双向缓冲器结构中缓冲 器等效面积是其中传输管的8倍左右,因此比前一种结构面积节省约l,3。虽然本征延 迟稍大于前者,但是因为双向缓冲器只用于较长的互连路径,只要两者驱动能力相同(因 为两者用了相同大小的缓冲器,因此驱动能力是相同的),双向缓冲器的本征延迟对于 整个路径的影响是微不足道的。 a b 上 上 图3.7双向缓冲器开关 (4)MUX: 基于SRAM的FPGA用到大量的多路选择器,如前面提到的Io模块、逻辑块簇等, 组成逻辑块簇内部互连矩阵等多种可编程多路选择模块。基于SRAM的MUX内部结 构也是由传输管开关组成。 3-t.1同时采用两种连接方式的开关矩阵 许多商业FPGA器件如Xilinx XC4000X的开关矩阵同时采用传输管开关和双向缓 冲器的连接方式,其互连通道的四单位长线在经过开关矩阵时有6个传输管开关和1个 双向缓冲器等几种可编程连接方式可供选择。人们曾提出一个采用传输管开关和双向缓 冲器各占50%的开关矩阵结构阳,如图3.8(a)所示,可以看出,这种开关矩阵是基 于Disjoint矩阵结构,采用传输管和双向缓冲器的通路互不相交,因而存在子集问题。 即某互连路径上要么全部采用传输管开关,要么采用双向缓冲器。而对于一些电路中, 如果当双向缓冲器的路径资源被用尽时,其它较长的互连不得不采用传输管开关,又带 来关键路径延迟较大的问题。一种改进方法是加大开关矩阵中双向缓冲器与传输管开关 的比例,但是这并不可取因为:1.短的互连中传输管开关速度优势明显;2.双向缓冲开 关消耗很大的芯片面积[28,291。 针对这种不足,文献[231qa提出另一种通用互连结构,通过改进开关矩阵结构和两 种可编程连接方式的比例来解决前,如图3.8(b)所示,这种结构速度与面积综合性能 可比前者提高10%左右pJ。 2l 江南大学硕士学位论文 ●传输管开关 (a)传输管开关和双向缓冲器各占 50%的Wilton矩阵 ●双向buffer Cb)改进的混合可编程连接方式 矩阵 图3.8采用混合可编程互连方式的开关矩阵 3.3.2本课题FPGA通用互连结构中的可编程连接方式 我们的FPGA电路中通用互连线间也采用了传输管开关与双向缓冲器混合结构的可 编程连接。不同的是,结合我们的电路规模较小和开关矩阵中可编程路径较多的特点, 没有必要采用太多占用大量面积的双向缓冲器。因此大大减小了双向缓冲器开关的数目 且将双向缓冲开关调到开关矩阵外部,每段布线通道中有一条通用互连线双向缓冲开 关,在仅比全部采用传输管连接的结构增加少量面积的情况下提高了长互连路径的速 度。 3.3.3可编程传输管开关对功耗的影响 FPGA中有大量的可编程互连开关资源,这些可编程开关资源的晶体管级设计对 FPGA的整体功耗有重要的影响。CMOS门电路本身具有很好的静态功耗性能,但是 FPGA互连资源中大量存在一个传输管开关驱动一个缓冲器的结构,而电压经过传输管 开关后产生电平信号不完整,从而带来由可编程开关引起的功耗问题。这里我们主要讨 论FPGA电路中比较普遍的传输管开关加缓冲器结构对功耗的影响。 传输管的阈值电压V山是影响功耗的主要因素,而传输管的驱动能力的大小即速度 性能和传输管的功耗在这个参数上是相互矛盾的。对路径延时而言:vm越小,传输管 电压损失越小,驱动能力越大,因而整个路径延时变小。对于互连路径功耗,同其它逻 辑电路一样,我们从静态功耗和动态功耗两方面分析。由于互连资源中传输管的负载主 要有传输管负载和缓冲器负载(即反相器负载)两种,传输管负载中由于不存在电源 第3章通用互连资源的设计 VDD到地GND间的通路,因此可认为不存在静态功耗;而反相器负载情况下,由于信 号通过传输管后存在阈值电压损失,这里我们设电压变为VDD-Vth,经过多个传输管后 衰减更厉害,如3.3节中图3.6所示,导致负载反相器的P管不完全关断,存在VDD 到GND电流路径,引起较大的静态功耗。可见,减小阈值电压Vm有助于减小静态功 耗。每个传输管上的动态功耗可表示如下: T.T E。一-2{p(伽f-%。{/’sup(伽, yDD—y俄 5%。{CLdVo“,2C£’%。+(%。一‰) (3-4) 由式3-4得:传输管开关的阈值电压v血越小,动态功耗反而越大。可见,工艺中传输 管开关阈值的调整是静态功耗和动态功耗的一个折中,也是速度与功耗等方面性能的折 中。我们的FPGA电路中经过综合考虑,将N管的阈值电压设定为比典型值降低了约 0.1-4).2V左右,得到了良好的功耗和速度性能。 3.4布线通道宽度和通用互连线长度的研究 对于不同逻辑规模的FPGA器件,其布线通道宽度和通用互连线的长度是不同的。 布线通道的确定原则是在满足所有逻辑单元都被使用的情况下每个布线通道的平均最 小宽度。而通用互连线长选择也是在面积与速度方面的一个折中,既不浪费逻辑资源, 也可取得较好的布线性能。本节在研究这两方面的设计方法的基础上得到我们的FPGA 器件的布线通道宽度和通用互连线长度。 3.4.1布线通道宽度的确定 E1.Gamal曾经提出一个预测二维逻辑单元阵列布线需求的模型1381,该二维阵列正 是一个水平和垂直布线通道位于逻辑单元行和列间的“岛屿”式结构。该模型将布线通 道分成穿越一个逻辑单元的长度和宽度的导线段,假定所有互连从一个单元开始,通过 最小距离布线路径到达目标单元。统计发现每个单元的连接数目可以从参数为九的泊松 分布得到,这里A定义为电路的总连接数与单元数的比值。平均连接长度R以通过的单 元数目度量。在上述的条件下,在一个二维逻辑阵列中,通道宽度服从泊松分布,平均 宽度由五_/2给出。这个结果提供了预测通道宽度的一个便利方法。图3.9给出了较小 规模的逻辑阵列的一个典型预测结果,通过与实际的FPGA布线通道密度分布比较发 现,该模型非常接近实际值139l。 通过以上分析,我们得到对于一个可编程逻辑门数较小的FPGA中,布线通道宽度 江南大学硕士学位论文 为5时即可取得较好的布线结果和较优面积性能,因此我们的电路中布线通道中含有5 条通用互连线段。 0.2 O.18 0.16 0.14 热矜 #3、 一实际通道 川Ⅲ ∥Ⅺ 0.12 璧¨ , / Ⅵ 吨 0.08 , N 0.06 / Ⅻ 0.04 / \ 0.02 /.....N 0 0 2 4 6 8 10 12 密度 图3.9预测布线通道密度与实际密度的比 3.4.2通用互连线长度研究 通用互连线长度选择对互连结构性能是非常重要的,短的互连线段在用于长的互连 路径中时,由于需要经过大量的可编程开关,因而带来很差的速度性能瞄l。然而。采用 太长的通用互连线段对速度性能也是不利的,因为短的路径也不得不用长线连接,由于 长线本身参数负载较大,因而速度比采用短互连差。使电路性能恶化。特别是进入深亚 微米工艺后,金属线电阻、电容参数等成为造成电路延时得越来越主要的因素,因此, 未经任何驱动的长线延时也非常大。 文献【39】中对FPGA通用互连线长的进行了深入的研究。当FPGA器件的通用互连结 构采用单一长度的通用互连线,同时设开关矩阵都采用传输管开关连接时,采用通用互 连线长为4个单位时取褥较好的性能面积上的折中,图3.10中给出了对采用不同互连 结构的FPGA进行实际电路布局布线后的速度和面积性能比较结果, 可见,4单位线 在现代的FPGA构架中具有明显的优势,许多商业FPGA中都有不同数量的4单位长线。 而混合长度的通用互连资源更加提高了FPGA性能,现代的商用FPGA中都采用了不同 长度的通用互连线混合的通用互连结构。如Virtex系列等采用了l、2、4、6等多种长 度的通用互连线段,通用互连结构非常复杂f7-91。 第3章通用互连资源的设计 - _ 名- 矗 u● 基 茁‘ 卅 t ■ { { \ \ \ / √/ l l ● l I‘ k 通用互连貔长(单位长度’ I I ● ● l‘■M 通用互连垅长【单位长度, 图3.10采用单一通用互连线长的FPOA性能比较 3.4.3本课题FPGA电路中通用互连线长确定 由于3.4.2中对FPGA通用互连线长的研究是在对较大规模的电路进行布线的条件 下进行的,而对于较小规模的电路是不太合适的。我们的电路是基于0.6微米工艺实现 的,因此相对于传输管延时,每单位通用互连线上的延时是几乎可以忽略的。用前面给 出的延时模型,对分别采用l、2、4、8单位通用互连线的FPGA结构进行不同关键路 径延时分析,(本实验采用短路径最小为l单位长度,最长路径为约8个单位长度左右, 并用等效电阻、电容代替0.6微米工艺下的金属线)可以看出,短的路径上,采用不同 长度通用互连线的FPGA速度差别很小,较长的互连线因为很小的等效电阻、电容负载 —.-撙 十—口4单一蝉位位线线长长 > V 蚓 — +l*单一2位单位线线长长 脚 时阚(as) 图3.11跨过一个逻辑块簇的互连路径延时 等因素而延迟稍大一些;长的互连路径中不同互连结构的FPGA性能差距较为明显,这 跟预先估计的相似。图3.11和图3.12分别为实验中用到的长短两种路径下的SPICE仿 真结果。 江南大学硕士学位论文 6 5 4 3 2 ^>一幽脚 1 0 1 q筑 { lf f ,J 4, 他., 2 3 4 5 1 一l \ { —卜瑾 +—4{单h蝉位位线线长长 —+l—单一2位单位线线长长 l 。 6 时闻(ns] 圈3.12跨过8个逻辑块簇的路径延时 现在我们讨论不同互连线长下的面积性能,图3.13中给出一个采用4单位通用互 连线的通用互连结构。可见,与采用1单位线的通用互连结构想比,若这两种结构下的 开关矩阵采用相同的连接方式,用前面的面积模型,虽然其有源区具有相同的芯片面积, 但是,采用4单位通用互连线的电路结构中每个布线通道要占用很大的宽度,可见采用 长的通用互连线会带来金属布线层数的增加。 图3.13采用4单位长通用互连线的布线通 综上,我们得出在小规模的FPGA中采用短的互连线不会给电路带来明显的性能不 足,却可减少金属层数目,版图实现也较简单。而我们设计的FPGA逻辑块簇仅为14"16 的阵列结构,规模较小,因此通用互连线全部采用了l单位长线,并加入额外的全局长 线来减小长互连路径上的延时(这将在下一节讨论)。 3.5长线结构和逻辑块簇问直接互连设计 FPGA电路中除了通用互连资源外,还有长线和逻辑块簇间的直接互连线等多种连 接方式,对改进整个FPGA性能有很大帮助。长线有助于减小较长互连路径延时,而直 第3章通用互连资源的设计 接互连又加大了相邻迎辑块簇或IO模块的速度,两者是对通用互连资源的有力补充。 3.5.1长线结构 为了改善长的互连路径延时性能,我们在FPGA电路设计中采用了长线结构。长线 是指水平或垂直方向上跨过整个芯片的可编程连线。可编程长线资源不仅可改善长互连 性能,对一些简单数据通路电路中总线的实现等都有很大的优势。每行布线通道配备了 两条垂直方向水平长线,每列布线通道配有3条垂直方向长线。长线可通过传输管开关、 三态缓冲器(进入长线的信号由三态缓冲器驱动)与通用互连资源进行连接,垂直长线 其实是由两条在芯片中间通过一个可编程传输管开关连接的半长线,实现长路径的高速 连接。 D^ DI D..一1 % 图3.14长线结构 水平长线结构如图3.14,每个三态缓冲器中驱动一个由逻辑块簇来的信号,并在两 端进行电阻上拉,可见该结构实现的功能为: z=见.j+玩.否+DⅣ-1.而+DⅣ.丙 (3.5) 在将DN与N相连时,可实现“线与”功能,当所有输入为高电平时,z_‘l’,任何一 个输入为‘0’时,长线被下拉至‘0’,电路结构和功能如下: Z=D^·D8·DNd·…·Dw (3.6) 长线的上拉电阻与弱保持单元等等效下拉间的阻抗匹配是其成功实现“线与”功能 的关键,这要求精确的晶体管尺寸设计,因为与长线相连的使能端有效的三态缓冲器数 目越少,等效下拉越大,对上拉强度的要求也越高,因此晶体管级设计只要使得有一个 输入长线的缓冲器有效且输入为低电平时能够正确将长线上拉为高即可。 江南大学硕士学位论文 3.5.2逻辑块簇间的直接连接 除了通用互连网络了长线以外,我们加入了逻辑块簇间的直接金属互连线。这些互 连线提供逻辑块簇问及逻辑块簇与lO模块问的直接高速互连。由于不需要可编程开关, 这些路径上的信号延迟非常小。每个逻辑块簇的输出由4条直接连接线,可与其正上、 正下、正左、正右方的四个逻辑块簇的输入(进入内部互连矩阵)直接连接,这是FPGA 互连资源中最有效的连接方式。 3.6全局时钟网络 时钟偏差和抖动是数字电路中存在的主要问题H“,它们可能从根本上限制了数字系 统的性能,每个数字电路中都尽最大可能使这两者最小。时钟网络布满整个芯片,时钟 网络路径长、扇出大、速度高、功耗大,其设计非常关键。现代高端的FPGA中都采用 了复杂的时钟管理模块和时钟布线网络,如Virtex中的DCM(Digital Clock Manager数 字时钟管理模块)等。 (a)缓冲时钟分布树结构 (b)H树结构 图3.15全局始终网络结构 VLSI数字电路中常用到的时钟网络结构有缓冲时钟分部树和H树结构[42J,如图 3.15所示。缓冲时钟分布结构中的缓冲放大信号可去除时钟源和寄存器间的互连电阻引 起的信号损伤,隔离相反方向的局部时钟网络的负载阻抗。H树网络如图3.15(b),首 先把时钟连到芯片的中心点,然后包括匹配的互连线和缓冲器的均衡路径把参照时钟分 布至q每一个叶子节点。理想情况下,如果每一条路径绝对均衡,那么时钟偏差为零,然 而在实际中,由于制造过程和环境的变化还是会造成时钟的偏差和抖动【36】。在规模较小 的电路中,H树提供的均衡性经常是不必要的,且带来较大的导线电容和功耗。因此, 我们的电路中采用了较为简单实用的缓冲时钟分布树结构。 第3章通用互连资源的设计 3.7小结 本章我们研究了FPGA中的通用互连资源的设计及优化,利用学术界对FPGA的研 究中常用到的研究方法和相应的面积模型和延时模型,对通用互连资源中的开关矩阵、 布线通道宽度、通用互连线长度进行了深入的研究,在此基础上得出一套适合中小规模 FPGA器件的通用互连结构,仿真及实际流片结果显示该通用互连结构取得了良好的面 积性能上的折中。为减小长的互连路径上的延时,我们引入了长线结构来改善其性能。 此外我们还讨论了FPGA的片上全局时钟网络的选择。 江南大学硕士学位论文 第4章逻辑资源和编程电路设计 上一章我们介绍了互连资源的设计并进行了性能分析,接下来介绍FPGA电路中 逻辑模块的结构。本章首先介绍了我们的FPGA电路中逻辑块簇的内部结构、10模块 结构和所能实现的功能,并对逻辑块簇内部关键路径模型进行了延时分析,接着分析了 编程电路的结构和SRAM单元等。最后给出了得到的FPGA的版图概貌。 4.1逻辑块簇 我们设计的FPGA电路中的逻辑块簇组成一个14"16的阵列,总等效可编程逻辑门 数约为6400门左右,由于电路规模较小,逻辑块簇中仅采用了两个BLE,相对于大的 逻辑块簇,可提高逻辑资源利用率和减少逻辑块簇内部互连的复杂度【431。这一节我们首 先简单介绍逻辑块簇的结构,然后构建逻辑块簇内部关键路径模型,利用前面提到的延 时模型对其进行延时分析。图4.1中给出了我们采用的类似于Xilinx公司XC3000系列 的逻辑块簇结构。 mnI_匹 :童k—一 G X i;罐?4一Llrf i;k l£ii降日4一删 a幽 口轴|LE C“班 DI瑚}CT ^ES耵 10m¨xr) 图4.1逻辑块簇功能结构 4.1.1逻辑块簇结构设计 逻辑块簇采用了与Xilinx XC3000系列类似的结构。每个逻辑块簇可以看成一个具 第4章逻辑资源和编程电路设计 有10个输入、2个输出的功能模块。可近似认为是如图2.4中含有2个BLE和内部互 连矩阵的结构,每个BLE由一个4.LUT和一个触发器构成。本电路逻辑块簇结构中的 两个BLE相关性很强,如图4.1所示。输入A、B、C、D、E为5个组合逻辑输入变量, DI为触发器的直接信号输入端,都是由通用互连资源上的信号和长线上的信号、逻辑 块簇问直接互连线信号经过连接块选择得到。EC为时钟允许信号,RD为直接复位信 号,此外还有全局时钟CLOCK和全局复位信号GLOBLE RESET等共输入信号,两个 输出X和Y可配置为LuT直接输出和触发器输出满足组合逻辑和时序电路需要。如图 4.1,5个组合逻辑输入配合两个触发器反馈端QX、QY可通过内连矩阵将LuT配置成 多种形式如2个4输入、一个5输入、一个部分6输入或部分7输入的泛函逻辑功能(指 根据LUT中SRAM单元内容不同可实现各种逻辑函数)。由于我们逻辑块簇仅含有2 个BLE,因此内部互连矩阵采用完全连接形式,使得两个BLE结合更加紧密,这有助 于增强每个逻辑块簇的功能。得到的逻辑块簇电路结构示意图如图4.2,LuT部分由2 个16'1bit的SRAM存储阵列和译码电路组成,2个D主从触发器可选择直接数据输入 笔慈薅,”j。+7≯一i:!≯i 或LuT产生的组合逻辑输入。 i_+:? 皇羼萎=霹萎 LUT 图4.2逻辑块簇电路结构 3l 江南大学硕士学位论文 ‘4.1.2逻辑块簇内部关键路径模型 为了对逻辑块簇进行延迟分析,我们构建了其内部的关键路径模型,由于前面对通 用互连资源进行时序分析中的路径模型输出端即为逻辑块簇的输入,因此结合两个关键 路径模型我们便可对整个FPGA电路可能实现的具体配置电路进行延迟分析。逻辑块簇 内部关键路径模型如图4.3。 由Elmore延时模型,从输入IN到输出OUT的延时为: %lmore(IN,OUT)I州∈旆,D盱)&l厂孚,. +Cv 、 J (4.,) ‰咖(V,6)=Db+RbC, (4.2) 其中,c。为传输管开关电容,&为传输管开关电阻,Cv为由点v为源点的总电容,Db 为三态缓冲开关的本征延迟,风为三态缓冲开关的输出电阻。在CSMC0.6微米工艺下 对此关键路径进行SPICE仿真,得出各个内部模块的延迟如表4.1: 内部 模块 延迟OB) 内部互连矩阵 (科to舢 表4.1逻辑块簇内部关键路径延时情况 LUT地址译码 LUT输出有效 触发器建立 (AtoB) ∞to c) 时间 0.49 1.15 1.04 0.4 触发器传输 时甸 1.1 由上表,关键路径总延时约为4.2ns,对比第三章对互连路径的分析结果可得,在 互连路径较短时,例如只跨过一个逻辑块簇时互连路径延时远远小于逻辑块簇内部延时 (仅不足后者的1/10),较长路径中互连路径虽逐渐增大但仍不至于构成电路延时的主要 部分。由于我们的电路采用了0.6微米工艺,因此逻辑部分延迟仍占主导地位,随着生 产工艺进入深亚微米后,这一现象将有所改变,因为,晶体管尺寸减小时的逻辑延时减 小,而金属线宽度随之减小,布线延时将逐渐增大,变得与逻辑延时相当。 图4.3 逻辑块簇内部关键路径模型 4.2可编程IO模块 第4章逻辑资源和编程电路设计 可编程10模块提供内部逻辑信号与外部管脚的互连,为了保证FPGA实现更多的 电路功能,必须有足够的可编程IO引脚。实际上FPGA器件的引脚除电源、地引脚外 几乎全为可编程IO口,部分IO引脚编程模式下复用为配置端口。而IOPAl)数目过多 又会大大增加芯片面积,造成浪费。本节主要讨论FPGA器件IO PAD数目的确定。 4.2.1可编程10模块结构 第二章我们介绍了10模块主要的功能,本文采用的IO模块结构类似于图2.7。本 电路中10模块作为输入端口时,可配置为直接输入或寄存器输入两种模式,同时可配 置为高阻上拉,输入电路提供ESD保护电路。作为输出端口时,可以提供三态输出。 三态输出缓冲器可以被直接输出或寄存器输出驱动,同时提供可编程的时钟信号。图 4.4给出压摆率控制单元电路示意图和ESD保护电路的版图结构。 (a)压摆率控制电路 (”带ESD保护的PAD版图结构 图4.4 IO模块中的压摆率控制电路和ESD电路 33 江南大学硕士学位论文 4.2.2可编程IO模块数目的确定 这里我们用单位逻辑块簇长度或高度上的10管脚数目来表征FPGA器件中所需要 的合理10数目。我们设平均每个逻辑块簇长度或高度上的IO管脚数目为10率,Io率 的确定一般采用对多种标准电路布线后进行统计的实验方法。通过标准电路的配置找出 所需的IO端口数目随不同电路的增长规律,找到合适的Io率,许多商业FPGA产品 应用证明这是一种合适的方法。图4.5给出各种不同标准电路布线面积随10率的变化 曲线,可见,对于输入输出端口比较多的电路,加大IO率可以减小布线面积,增加FPGA 的可布线性,同时可减小实现相同电路功能所需逻辑块簇的数目,有利于整个FPGA芯 片总面积的减小。但是,当的率大于2以后,布线面积的变化幅度很小,而增加的lO PAD也导致芯片版图面积增加。因此,IO率大于2对电路实现是并不可取的。而对于 输入输出端口较少的电路而言,10率的变化对布线面积几乎没有影响,实现同种电路 所需的逻辑块簇数目也基本不变,因此,IO管教数目主要由前一种电路决定。这也进 一步证明将逻辑块簇尽可能布局为正方形即可减小芯片面积,又可节省10管脚数目。 龉 弱 钟 、 ,} 、—=苌l}嚣” 钟 --O---●11i-tic 一以fteQ .---*--,pez4 箱 巧 .‘\{ 卸 —---‘一w,isez8 卸 ——_一tltt4 \{{ 埔 ” ” ≈{k ● · · · ” ■——-=:、~. o 一 , o o 2 3 4 I 2 (a)管脚数目大 抽,管廊数目小 图4.5布线面积随每个逻辑块对应Io数的变化 由上,我们的FPGA电路采用的IO率为2,因为电路采用14"16的逻辑块簇阵列,因 此可编程IO数目约为2‘(14+16)*IO率=120。 4.3 FPGA的编程电路结构 我们的FPGA器件中采用分布式的SRAM资源,SRAM资源以M*N的结构分布于 整个芯片中,通过专门的编程电路对每个SRAM单元进行配置。第二章的FPGA器件 的CAD开发流程中提到,开发工具最终形成一个FPGA二进制配置文件,即.bit文件, 配置文件中的数据大小和格式与目标FPGA芯片的SRAM阵列的大小和行列结构一致, 每一个有效配置位对应一个SRAM单元。可通过标准JTAG下载接口或其它接口方式 第4章逻辑资源和编程电路设计 将这些二进制配置信息读入SRAM单元中实现相应电路功能。 4.3.1编程电路结构 编程电路采用了串并行结构,FPGA电路中存在2个长度分别等于SRAM阵列的 行数M和列数N的移位寄存器链:数据移位寄存器和地址移位寄存器,分别控制SRAM 单元写入内容和写入选通,如图4.6: tttl-移位寄存嚣 致 据 移 位 寄 存 嚣 图4.6编程结构 编程模式下,数据移位寄存器在编程时钟CCLK驱动下每周期读入1位配置数据。 任一时刻地址移位寄存器只有一个触发器为l状态并将相应列选通,数据寄存器中的内 容可写入该有效“1”状态所对应列的SARM中。设一个计数器对CCLK进行计数,每 读满数据寄存器且写入相应SRAM行后产生一个脉冲,该脉冲驱动地址寄存器的移位 操作。可见,总的配置时间近似为M·N+TccLK。从SRAM单元中读取数据的过程与配 置过程正好相反,数据寄存器并行读出选中行的数据,然后由数据移位寄存器中串行移 出。 江南大学硕士学位论文 4.3.2 SRAM单元结构 当今CMOS工艺的SRAM技术已经相当成熟,SRAM的功耗的可做的非常小,体 积和速度也都更小更快,SRAM对FPGA整体性能的影响也变得很小。我们的FPGA 器件使用了5管SRAM单元结构,各个晶体管尺寸经过认真设计,具有很高的可靠性 和噪声容限,以保证其中存储的信息不会受环境因素影响。5管单元SRAM结构如图 4.7(a)所示,存储部分采用典型的双反相器反馈环,由于FPGA中含有大量的SRAM 单元,对其各个晶体管尺寸的确定原则是在保证性能的前提下,使得每个单元面积尽可 能的小。 数据线 (a)SRAM单元结构 (b)写1等效电路 图4.7 SRAM单元电路 (c)写0等效电路 对SRAM单元的配置是一个对其进行写“1”或写“0”的过程,我们假设SRAM 单元存放数据“l”,即Q=I,现在通过晶体管M5将“0”写入(在FPGA中,传输管开 关多数由SRAM单元的百端控制,即存储“0”时可打开相应的开关),如果各个晶体 管尺寸合适,即可强行将“0”写入,只要电路状态尚未改变,我们可假设M1、M2栅 端接GND,等效电路如图4.7(b),此时M2、M5都处于导通状态,如果M2、M5尺 寸设计合适,可在考虑噪声容限下将Q下拉至M3阈值电平以下(理论上讲,只要将其 下拉到M3、M4组成的反相器的开关阈值时即可翻转,考虑到噪声容限,更保险的做 法是下拉至M3的阈值电平),实现M3、M4组成的反相器的翻转,利用反馈环的特性 加剧这个翻转过程,即可成功实现写“0”操作。使这一状态变化发生的临界翻转电平 vQ(也即M3的阙值)可通过所希望阈值点处的dc电流公式推导,此时由ID,M5爿D,M2, 有: k材,p咖一矧=kp,M2忙咖巾一单] ㈠,, 求解Vo得: %2%o一‰一 (4.4) 第4章逻辑资源和编程电路设计 其中:I=%∥co是器件的增益因子,rn2芳乡等为上拉管和下拉管的尺寸比。在 CSMC0.6微米工艺下可得到除PR外的各具体参数,可得到PR应大于3.63,借助SPICE 分析,我们得到SRAM单元的各晶体管最佳W/L如下表: 表4.2 SRAM单元中各个晶体管的尺寸 晶体管 Ml M2 m M4 M5 W(pm) “IIIn) 1.5 2.5 3 2.4 2.5 2 2.5 0.8 l O.8 4.4小结 本章中我们总结了课题中对FPGA的可编程逻辑资源以及编程电路等的研究,讨论 了我们的FPGA器件的逻辑块簇和Io模块的设计,得出适合我们电路的各个逻辑资源 模块和编程电路结构等。最后得到我们的FPGA的物理版图如下: 图4.8最终FPGA芯片版图 江南大学硕士学位论文 我们设计的FPGA通过CSMC 0.6微米双多晶双铝11阱工艺进行流片验证,得到的 FPGA芯片版图如下,版图尺寸约为6.7mm*7.8mm,包含224个可编程逻辑块簇,用 户可编程IO端口为120个,可编程逻辑门数约6400门。 第5章FPGA的测试 第5章FPGA的测试 本章我们讨论FPGA器件的测试技术和我们的FPGA器件的测试策略。由于FPGA 器件本身不是面向特定功能的设计,与通常的ASIC测试策略在功能测试方面有很大不 同,且我们的电路本身不具备BIST自测试电路,也没有内置JTAG扫描链,因而给电 路测试造成一定的困难。本章我们在结合目前国际上对可编程阵列逻辑电路的测试技术 的基础上,结合我们的电路特点,采用了一套测试周期短、测试覆盖率高的测试方法完 成FPGA的测试工作。 5.1 FPGA测试内容和测试技术 FPGA的测试从某方面说是测试其各可编程资源的可用性。我们可以利用其可编程 特点通过配置不同的具体电路,通过对配置后的FPGA器件测试即可完成该具体所占用 的可编程资源的测试。当然,不可能配置一个占用整个FPGA所有可编程资源的电路, 因此为提高测试覆盖率,我们需要对FPGA多次编程,分别完成其各个部分的测试,可 见这是一个耗时较大的过程,目前人们提出了多种测试覆盖率高,测试时间短的方法, 本章在结合这些测试技术基础上完成了对我们的FPGA器件的测试。 5.1.1 FPGA测试内容 集成电路的测试主要有参数测试、功能测试两个方面削,分别涉及设计产品的性能 优劣、功能异常与否从而反映出芯片的各种可能故障。参数测试要经过直流特性和交流 特性两种情况下的测试,直流测试的内容包括短路和开路测试、静态最大电流、漏电流、 输出驱动电流、阈值电压等静态参数。交流测试可测出电路的传输延迟、建立保持时间、 上升下降时间等与时序相关的参数。功能测试通过事先确定测试码和理想情况下的响 应,通过比较测得的实际响应与理想响应的差别判断故障的类型及原因。 结合前面提到的FPGA结构可知,FPGA测试主要包括对可编程逻辑资源(逻辑块 簇和IO模块)的测试、对可编程互连资源的测试和对SRAM资源的测试。SRAM的测 试比较简单,可以直接通过编程引脚将其中配置数据读出,通过与写入数据相比较即可 完成SRAM阵列测试,因此本章我们只讨论逻辑资源和互连资源的测试。 5.1.2 FPGA测试技术 上面提到要对一个FPGA进行完整测试,需要配置多个不同的测试电路,对每一个 配置完成相应的测试。通常,对FPGA进行配置的时间远大于对具体配置测试的时间, 江南大学硕士学位论文 因此,总的测试时间主要取决于编程的次数。我们的目的就是利用尽可能少的配置次数 对FPGA每个模块都完成高覆盖率的测试。 相比而言,逻辑块簇的测试要比互连资源复杂许多,目前国际上大多数对FPGA测 试的研究主要针对逻辑资源进行。文献【45J中提出一种基于混合单一故障模型(hybrid single fault module)的方法对FPGA逻辑资源进行测试。混合单一故障模型假设某一条测 试路径上仅有一个逻辑块簇存在故障,该故障只存在该逻辑块簇的某一个模块中,由于 这个故障可以指某一模块的功能故障,也可以指工艺带来的固定缺陷故障,因此,称这 个模型为混合单一故障模型,这些模块故障可能包括:(1)对于LUT,故障可能发生在 SRAM存储单元阵列、地址译码器或uJT输入输出线上,而SRAM单元缺陷我们已先 行测试过,地址译码器上的故障表现为某一地址位的逻辑错处,属于功能故障,是由 LuT输入线的固定缺陷故障造成,LUT输出线上的固定缺陷故障可借助SRAM单元的 测试结果检测出。(2)对于多路选择器,可以通过其内部逻辑结构的变化建立一个功能 缺陷模型。(3)触发器中可能有任何功能故障。 测试中我们首先完成对SRAM和互连资源的测试,逻辑资源的测试的前提是假设 所有SRAM单元和通用互连资源已经通过测试。由于每个配置电路都不可避免地用到 IO模块,因此IO模块的测试可以在对互连资源和逻辑块簇的测试中同步完成。 5.2互连资源测试 互连资源的测试包括金属互连线和各种可编程开关的测试,我们仍分为通用互连资 源和长线两类进行测试,通用互连资源中测试的主要内容为开关矩阵的可用性,因为开 关矩阵中占据绝大部分的可编程开关资源,每个开关矩阵中含有54个可编程开关。对 于互连资源的测试我们用了基于总线结构的测试方法,即将互连通道配置c横一组组的 总线结构。通过多次不同的总线方向配置覆盖到开关矩阵中的所有可编程开关。长线结 构的测试通过将长线配置成线与结构,从而同时测试与长线相连的三态缓冲器和长线。 本节我们重点说明通用互连资源的测试方法。 5.2.1通用互连的测试方法 对FPGA互连资源测试的研究中,人们得出三种较普遍的方法[451:基于总线的测 试方法、BIST(Build.In-Self-Test内建自测试)方法和奇偶校验BIST。基于总线的测 试方法配置简单,假设互连路径上只存在短路和开路两种故障模型,通过将互连通道中 的通用互连线作为总线形式配置并比较其输入输出端的信号来判断该路径是否存在缺 陷,但是为提高故障覆盖率,完全的互连资源测试要经过多次配置。BIST方法是利用 FPGA可编程的特点将其配置为内建自测试电路,并将内部互连资源分为被测试部分 WUT(WireUnderTest)和BIST两大部分,BIST部分包括TPG(TestPatternGenerator 40 第5章FPGA的测试 测试图案生成器)和ORA(OutputResponseAnalyzer输出响应分析器)。当被测试部分 完成后,重新配置实现两部分互换。可见BIST方法最少情况下需要两次配置即可完成 测试,但是,完成覆盖率的测试中BIST配置电路的设计比较复杂,对于小规模的FPGA 器件测试更加困难,而且当wuT和ORA中存在相同故障的情况将被忽略【45l。奇偶校 验BIST类似于BIST法,不同的是在TPG中生成奇偶校验码,同时在、棚T的输出端 配置有一个奇偶校验码生成器以生成输出响应中的奇偶信息,将该结果与通过一条额外 路径传递TPG中的奇偶码来比较,ORA对比较结构分析,即可得wuT中的故障情况, 可见,这也是一种BIST测试法,小规模FPGA测试中它与BIST具有相同的特点。因 此,我们的电路测试采用了配置简单,测试故障覆盖率有保证的基于总线的测试方法。 l ●- I期}l厅 l l || || ||| ||||||| i ●一 l}_ ==1 l l ●_ i._ l 41 江南大学硕士学位论文 拦㈦龇 中8个、(d)中10个、(e)10个、(f)中6个,而且可以看出,各种配置中覆盖的可 编程开关不存在交集,因此~共54个,即覆盖了全部传输管开关。 鳓燃麟 (a) (c) (e) (f) 图5.2通用互连资源的6种配置结构 5.3逻辑资源测试 逻辑资源包括逻辑块簇和IO模块,IO模块的测试可以在通用互连资源和逻辑块簇 的测试过程中完成,如图5.1中不同组的总线接不同的IO模块,两次配置即可几乎覆 盖全部的IO模块,在不同配置中完成IO模块不同模式的测试。逻辑块簇结构较复杂, 要经过多次配置分别测试不同的部分,如何优化逻辑模块测试是FPGA器件测试研究的 重点。本节主要介绍我们的FPGA器件逻辑块簇的测试方案。 5.3.1单个逻辑块簇的测试内容 逻辑块簇内部分为组合逻辑和时序逻辑两大部分,由5.1.2中提到的单一故障模型, 可得组合逻辑部分测试包括以下几个方面: 第5章FPGA的测试 配置次数 l 2 测试矢量数 4 8 3 8 4 3 5 3 6 3 7 3 8 3 9 3 10 3 ll 3 12 23 13 2 14 2 15 2 16,17 10 表5.1每个逻辑块簇的测试过程 测试重点 a1、a3的固定故障,Mi(M3)选B(D) ao、a2’的固定故障,M2选CMF(MG)选G(F) ao、a2的固定故障,M2选C。lVlF(MG)选G(F) MI(M3)选QX(E) MI(M3)选QX(E) M2选QX M2’选Qx M1选QY MI选QY m选QY №选QY FG选G,M4选FG FG选F,M4’选FG X选Qx,MF选DIN,MK选上升沿,D触发器QX在上升沿接收数据 Y选QV,MG选DIN,MK选上升沿,D触发器QY在上升沿接收数据 ME,MR或门。D触发器Ox,QY在下降沿接收数据 1)对于UJT存储阵列的测试,SRAM阵列的测试中我们已经覆盖到全部的 SRAM单元,因此这里可认为Sm蝴已经全部通过测试。 2)测试LUT的输入输出线上的单一固定故障,两次配置的存储阵列中的布尔 差异为l; 3)对于多路开关,每一个数据输入端至少要被选中一次并施加0、1各一次。 在我们的FPGA的逻辑块簇结构中,上述的测试需要15次配置。 测试时序模块时,D触发器的上沿触发、下沿触发以及使能端的功能,也都至少要 有一次编程用来进行检查,主要分为: 1)D触发器的功能测试要在D端输入101或者010即可。为了要检测时钟的 上升/下降沿触发,需要两次配置。 2)因为测试触发器功能时,一定要用到多路开关,所以其功能测试可以和测 试触发器并行。 3)RESET功能测试需要两次配置,即使能端分别为enable/disable两种情况。 上述对触发器的测试需要9次配置。 江南大学硕士学位论文 上面测试组合、时序模块的配置可以合并成17次配置,具体配置方式见表5.1,对 应的逻辑块簇内部单元如图5.3。这17次配置涵盖了每个CLB的任意可以配置的开关。 组合模块 时序模块 出 (a)逻辑块簇 (b)组合逻辑部分 图5.3逻辑块簇结构和其组合逻辑部分结构 5.3.2逻辑块簇阵列的测试 逻辑块簇阵列测试最简单的方法是将每一个逻辑块簇的输入输出都和IO模块连接 起来,直接对每一个逻辑块簇内的逻辑电路进行测试。但这一方法的主要问题是FPGA 的10模块不够多,每次配置只能测试一部分逻辑块簇,而且每个逻辑块簇一次配置也 无法完成测试。为了减少配置次数以及对10模块的需求,通常是将逻辑块簇整行(列) 或若干行(列)连在一起进行测试,这就是基于阵列的测试技术。通过配置把逻辑资源 中的逻辑块簇连成阵列,然后基于逻辑块簇阵列对逻辑资源整体进行并行测试,大大减 少了IO模块的使用数量。通常采用的方法是一次将阵列中部分行进行测试,将余下的 行作为结果信息的输出行。可见,由于这种方法每次只能进行部分行的逻辑块簇测试, 这样完成整个FPGA逻辑资源测试就需要更多的配置次数144}。文献【“】中还给出了基于 这种方法的一个测试方案,如图5.4所示,与被测行相邻的两行分别被编程为与门和或 门,用与门行来传递正常输出为l,而实际输出为0的错误信息,或门行来输出正常输 出为0而实际输出为1的错误。 为了减少编程次数,我们充分利用了本FPGA电路中的各种可编程资源,采用长线 “线与”的方式来传递测试结果信息。如图5.5所示,将各行的逻辑块簇的输出配置成 长线“线与”代替图5.4中逻辑块簇配置的与门,这样每次配置可以测试一半的逻辑块 簇。通过比较看出,前一种方法一次配置只能测试l/3的逻辑块簇,而后者一次配置则 可测试1/2的逻辑块簇,减少了配置次数,明显加快了测试速度。 第5章FPGA的测试 图5.4基于阵列的逻辑资源测试结构 图5.5用长线“线与”代替与门行的测试结构 江南大学硕士学位论文 5.4小结 本章我们研究了FPGA电路的测试工作。因配置前没有具体的功能,FPGA电路的 测试与普通ASIC电路等具有很大的差别,国际上对FPGA电路测试专门的研究。FPGA 电路的测试包括互连资源的测试和逻辑资源测试两大部分,互连资源的测试主要是对开 关矩阵的测试,我们利用基于总线的测试方案完成了对可编程互连资源的高故障覆盖率 测试,逻辑资源的测试中我们结合电路中的长线结构,提出一个新的测试策略,在高的 测试覆盖率情况下比传统方法减少测试过程中的配置次数,节省了约1/6的逻辑资源测 试时间。 结论 第6章结论 本文中我们介绍了FPGA电路的特点和发展趋势等,当今的数字系统设计领域, FPGA器件的作用是显而易见的,基于FPGA的设计方法已经逐渐成为人们进行产品开 发的酋选方案,这主要得益于FPGA器件的可编程灵活性等特点。随着半导体生产工艺 的不断进步,FPGA器件性能也越来越高,几乎可以满足任何数字设计领域的需求,而 且价格业同业来越低,与ASIC电路在性能等方面的差距越来越小,在很多领域呈现出 替代ASIC产品的趋势。 本文基于以上背景,结合我国在FPGA领域的现状,对FPGA器件进行了深入研究, 并设计了一块FPGA样片电路。该电路设计过程中我们主要进行了关于FPGA构架,特 别是其通用互连资源结构的研究,主要包括以下几个方面: l。 构建了FPGA器件的总体结构,采用了“岛”式布局的逻辑资源和互连资源 结构,分布式SRAM配置方案。确定了逻辑块簇数目与IO模块数目间的关 系,通用互连线长度对器件性能的影响等。 2. 对通用互连资源进行了深入研究,研究了开关矩阵的结构,通用互连线的连 接方式选择依据,通用互连线长度和布线通道中通用互连线数日的确定等, 并设计了一套适合与中小规模器件的通用互连结构。 3. 对逻辑块簇大小对FPGA器件性能影响进行了初步研究,对逻辑块簇的内部 结构进行了分析,对逻辑块簇内部关键路径延时情况进行了分析,找出本课 题实现的FPGA器件的最佳逻辑块簇规模。 4. 对FPGA器件的编程电路结构和SRAM单元进行了研究,得出本电路的编程 结构和最佳的SRAM单元结构。 5. 完成了一款用户可编程门数为6400门的FPGA器件的设计并设计了相应的 测试方案。 该电路的目前已通过CSMC 0.6微米双铝双多晶工艺成功流片,并且已顺利通过特性测试。但 是,这只是一个阶段性成果,我们的FPGA电路无论在规模,还是芯片资源,性能上于目前市场上 的主流产品还有一定的差距,这也促使我们要进行不断的研究探索。我们以后的工作主要有提高该 FleA器件的稳定性,根据特性测试结果改进电路中一些结构参数,提高电路性能等。更进一步的 研究主要方向为对于更大规模FPGA器件的研究,进一步丰富片上资源以及对开发FPGA的CAD 软件工具的研究等。 江南大学硕士学位论文 攻读硕士学位期间发表的论文情况 1.第一作者FPGA中通用互连资源的设计与优化【J】.半导体技术.2007.1。 2.第一作者基于快速MVR-CORDIC算法的格型IIR滤波器设计阴.电子与封装.2007, 5。 参考文献 参考文献 l 于宗光.可编程集成电路技术[R】.2005:l—150. 2 Michael JollIl,Sebastian Smith著.专用集成电路【M】.虞惠华,汤庭鳌等译.北京:电 子工业出版社,2004.1--21. Bob Zeidman著.基于FPGA&CPLD的数字Ic设计方法【M】.赵宏图译.北京:北京 航空航天大学出版社,2004. 4 Paul S.Zuehowski,Chritopher B.Reynolds,Richard J.Grupp ate。A Hybrid ASIC and FPGAArchiteenn'e[M].IEEE,2002. Vinee Hopkin,Bob Kirk.FPGA Migration To ASICs[R].American Mierosystems,Inc. 2002. 6 高海霞.基于SRAM技术的现场可编程门阵列器件设计研究【D】:【博士学位论文】.西 安:西安电子科技大学,2005. 7 Xilinx Corporation:V'trtex-5 Datashcct[Z],2006. 8 Xilinx Corporation:V'trtex-4 Datasheet[Z],2004. 9 Xilinx Corporation:Virtex·2 Pro Datasheet[Z],2005. lO Xilinx Corporation:Spartan Datasheet[Z】,1999. 11 Altera Corporation:Strtix II FPGA Handbook[Z],2004. 12 Vaughn Betz,Jonathan Rose.Cluster-Based Logic Blocks for FPGAs:Area-Efficiency VS.Input Sharing and size田.CICC,1997551--554. Ken Eguro,Scott A.Hauck.Resource Allocation for Coarse-Grain FPGA Development[J].IEEE Transactions on Computer-aided Design of Integrated Circuits and Systems.2006:1572—1583. K.Compton,S.Hauck.Totem:Custom reconfigurable array generation[J].IEEE Symp. FPGAs Custom Computing Machines.2001:111—119. 15 Marvin Tom,Guy Lemieux.Logic Block Clusting of Large Design for Channel-Width Constrained FPGAs[J].IEEE Transactions on Circuits and Systems.2005:726-732. 16 Xilinx Corporation:XC4000 Datashcet[Z],1999. 17 王诚,薛4,SaJ等著.Xilinx ISE使用详解【M】.北京:人民邮电出版社,2005. 18 褚振勇,翁木云著.FPGA设计与应用【M】.西安:西安电子科技大学出版社,2002. 19 Michael D.Ciletti著.Verilog HDL高级数字设计【M】.北京:电子工业出版社,2005. 20 Anshuman Nayak,Malay Haldar,Alok Choudhardry,Pritll Banerjee。Accurate Area and Delay Estimators for FPGAs[J].IEEE Automation and Test in Europe Conference and Exhibition.2002:1530.1591. 21 E.M.Sentovieh et a1.SiS:A System for Sequential Circuit Analysis[R].Tech.Report No. 江南大学硕士学位论文 UCB/ERL M92/41,University ofCalifornia,Berkeley,1992. 22 J.Cong.Y Ding.FlowMap:An Optional Technology Mapping Algorithm for Delay Optimization in Lookup-Table Based FPGA Design[J].IEEE Trans.CAD,1994:1·12. 23 V Betz.VPR and T-Vpaek User’s Manual(Version 4.30)【R】,University ofToronto,2000. 24 16V.Betz,JonathanRose,VPR:ANewPacking,PlacementandRoutingToolforFPGA Research阴. International Workshop on Field Programmable Logic and Applications,1997. 25 V Kalenteteridis,H.Poumara,I(.Siozios,K.Tams,G Koytroympezis.ate。An Integrated FPGA Design Framework:Custom Designed FPGA Platform and Application Mapping Toolset Development[J].IPDPS’04.2004:1—8. 26 Vaughn Betz,Jonathan Rose.FPGA Routing Architecture:Segmentation and Buff'rag to Optimize Speed and Density[J】.FPGA’99:59__68. 27 Stephen Brown,Muhammaad Kbellah,Zvonko Vranesic.Minimizing FPGA intereormeet delay[J].IEEE Design&Test ofcomputers 1996:0740·0745. 28 V Betz,Jonathan Rose.Circuit Design,Transistor Sizing and Wire Layout of FPGA Interconnect阴.FPGA'00:32-39. 29 J.Cong,L.He,C.Koh,Z.Pan,Global Interconnect Sizing and Spacing with Consideration ofCoupling Capacitance叽.ICCAD,1997:628-633. 30 P.Chow,S.Sen,k Chnag,GPaez,I.Rahardja,wnle Design of an SRAM·Based Field-Programming Gate Array,Part ll:Circuit Design and Layout,IEEE Tram.On VLSI. 31 FPGARoutingStructures:ANovel SwitchBlockandDepopulatedIntercormectMatrix Architectures[D]:[MasterDegreeThesis].theDalhousieUniversity,1998. 32 Y W:Chang,D.F.Wang,Universal Switch-module Design for Symmetric Array Based FPGAs[J].Proceedings of the 1996 Fourth International Symposium on Field Programmable GateArray,1996:80-86. 33 Wilton S.Architectures and Algorithms for Field-Programmable Gate Arrays with Embedded Memories[D】Ph.D Dissertation,University ofToronto,1997. 34 Xilinx Corporation:XC3000 Datasheet【z】,1998. 35 Jan M.Rabaey,Anantha Chandrakasan,Borivoje Nikolic著.数字集成电路设计一电 路、系统与设计【M】.周润德等译.北京:电子工业出版社 36 Mike Sheng,Jonathan Rose.Mixing Buffers and Pass Transistors in FPGA Routing Architectures[J].FPGA,Feb。2002:203—-213. Dean 37 Stephen Brown.Routing Algorithms and Architectures for Field-Programmable Gate Arrays[D]:[PhD thesis].University ofToronto,1992. 38 A.A.El Gamal.Two—Dimensional Stochastic Model for Interconnections in Master 50 参考文献 Slice Integrated Circuits[J].IEEE Transactions on Circuits and Systems,V01.CAS-28, No.2,Feb.1981:127—138. 39 FPGA Routing Architecture:Segmentation and Buffering to 0ptimize Speed and Density[J].FPGA Feb.1 999:59--68. 40 Sean Stetson.Low Jitter Clock Distribution Networks[J].Dissertation Proposal,The University ofMichigan,1997. 41 Eby G Friedman.Clock Distribution Networks in Synchronous Digital Integrated Circuits,PROCEEDINGS OF THE IEEE,VOL.89,No.5,2001:665—692. 42 E.Ahmed and J.Rose.The Effect of LUT and Cluster Size on Deep—Submicron FPGA Performance and Density[J]Transactions on VLSI systems,2004:288--298.30Michael L.Bushnell,Vishwani D.Agrawal.超大规模集成电路测试【M】.蒋安平,冯建华,王新 安译.北京:电子工业出版社. 43 W K.Huang.F.J.Meyer,E Lombardi.Array-Based Testing ofFPGAs:Architecture and Complexity【J】.Innovative Systems in Silicon Conference,1996:249—258. 44黄维康.FPGA的测试[J1.计算机辅助设计与图形学学报2000:396—400. 45 Prabha Aebarya,Rajeshwary Tayade.Testing Techniques for Reconfigurable FPGAs[M].Testing and Diagnosis ofDigital Systems,2003:205-210. 5 江南大学硕士学位论文 致谢 首先,我要衷心的感谢我的导师于宗光博士,本论文从开展Njil酮j完成都是在他的 悉心指导下完成!攻读硕士学位期间他无论从学习、课题研究还是生活一k都给予我们无 微不至的指导与关怀。他的工作、生活态度以及人格魅力都对我们产生了深远的影响, 使我们受益匪浅! 衷心的感谢CETC58研究所薛忠杰高级工程师,感谢江南大学信息学院的全体老师, 是他们无私的把自己的知识及经验传授给我们。感谢江南大学信息学院的王士同院长、 研究生秘书徐黛岩老师等各位领导给予我们学习、生活等各方面的帮助。 该课题是在CETC58研究所的一个重要工程研究项目下进行,为此,衷心地感谢 CETC58所的领导和员工给予我参与这个项目研究的机会,感谢项目组的负责人刘明峰师 傅以及郭晖、李蕾蕾、李彦明、万清、赵娟、邹翔等各位工程师给予我的指教和帮助。 我的同窗好友李红征、高宁、施亮等,感谢他们在学习生活中的成果无私的分享, 这份友情令我们的3年研究生生涯在愉悦中度过。 最后,感谢我所有的亲人、朋友,所有帮助、支持我的人! 一款基于SRAM的FPGA器件设计 作者: 学位授予单位: 侯卫华 江南大学 相似文献(1条) 1.学位论文 刘肄倬 基于SRAM的FPGA测试技术研究 2009 现场可编程门阵列FPGA(Field Programmbel Gate Array)芯片是一种用编程方式快速实现数字系统的可编程逻辑器件。其主要特点有:设计编程十 分容易,通过编程可以把FPGA芯片配置成用户需要的硬件数字电路;设计修改方便,设计者可通过反复修改逐步达到设计目的和优化;可在开发系统中 直接进行系统仿真,无工艺实现的损耗;设计通过在线系统编程、远程在线重构等技术降低维护升级成本,因此在通信、控制、数据计算以及信息家电 等领域得到了广泛的应用。特别是在小批量、多品种的产品需求中取代了ASIC的市场。在航空、航天和军事领域,FPGA更是具有其他器件不可替代的作 用。 半导体芯片的生产制造过程并不是完美无缺的,所有的芯片需要进行针对制造缺陷的测试,FPGA芯片也不例外。测试保证了芯片的批量生产中成品 的质量,保证送到客户手中的芯片没有任何的缺陷,所以测试在芯片的生产制造过程中扮演了一个非常重要的角色。随着FPGA芯片规模越来越大,结构 越来越复杂,产品测试也越来越复杂,越来越困难。测试占芯片成本的比例也越来越大。在FPGA测试所面临的主要问题是:对CLB、互连资源、IO资源等 结构进行数学建模、测试配置算法和测试向量的开发、测试结构的选择、测试平台的搭建等。 本文依托中国科学院知识创新工程重要方向项目“百万系统门级FPGA芯片研制及抗辐照加固关键技术研究”之子课题“基于SRAM的FPGA芯片测试技 术研究”开展了FPGA芯片测试技术一系列问题研究,包括Xilinx XC4000系列FPGA测试配置算法、自动测试配置软件、测试模型建立、硬件测试平台搭建 ;XilinxVirtex-II系列FPGA开关矩阵测试建模和测试结构选择;一款国产FPGA芯片可配置资源测试配置产生算法的研究。本文主要工作及创新点如下: FPGA的可配置逻辑模块主要包括3部分:常规CLB逻辑、接口逻辑、进位逻辑模块(CLM,Carry Logic Module)。通过对CLB配置而实现不同的逻辑功 能。给出了一种测试CLB的组合逻辑部分和时序逻辑部分经典的8个测试配置。我们提出了基于故障模型的CLB模型测试方法,加入固定型的单故障,仿真 测试配置和测试向量针对该故障的正确性。然后再将测试配置和测试向量施加到硬件测试平台中进行验证。 FPGA裸片中80%以上的面积和8层以上的金属用于互连结构,互连资源的故障概率大大高于逻辑元件。所以互连资源的测试是FPGA测试的重要组成部 分。我们用G图为Xilinx XC4000系列FPGA互连资源建模,并用改进的贪心算法为图着色,最小颜色数目即互连资源最小测试配置数目。并编程实现自动 测试配置生 成算法,4个全局配置对全局互连达到100%的覆盖率,18个局部互连配置实现了100%覆盖率。测试配置(Test Configuration,TC)要转换成器件配置 (DeviceConfiguration,DC)才能下载到FPGA芯片中,这在FPGA测试中是非常关键的步骤。我们提出了一种新的用坐标定位实现测试配置到器件配置的转 换方法,这种转换方法简单实用。最后我们搭建了基于ATE的测试平台,通过这个平台实现了验证Xilinx XC4000系列FPGA芯片互连资源测试方法,测试 效果良好。 通过XC4000系列FPGA可配置逻辑单元和互连资源测试的研究,我们总结了适合FPGA测试的一般方法,可以应用在任何类型的FPGA测试中 。 Xilinx Virtex-II系列FPGA采用0.15微米/0.12微米,8层金属的CMOS工艺,结构优化,因此高速、低功耗,很高的灵活性,高密度达到千万门级。 Xilinx Virtex-II系列FPGA的互连结构非常的复杂,规模也非常大。要对其结构进行数学建模,并形成自动测试配置生成的算法是非常困难的。我们提 出了一种针对开关矩阵多路选择器的测试配置方法和测试向量。并将这种方法推广到芯片级测试配置,提出了一种基于BIST的测试结构。这是因为 FPGA芯片的IO端口有限,用BIST结构可以减少10资源的使用。 关键词:基于SRAM的FPGA;测试;互连资源;CLB;测试平台 本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y1195303.aspx 授权使用:北京理工大学(北京理工大学),授权号:b764d810-2f16-4f48-852c-9e1f009fe905 下载时间:2010年10月30日
更多简介内容

评论

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人电子
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })