首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

SoC和SLI时代的FPGA设计复用策略

SoC和SLI时代的FPGA设计复用策略

中国工程师正在采用越来越多地FPGA设计产品,在不久的将来,FPGA将广泛应用于今天由标准单元ASIC技术实现的设计。设计复用将成为芯片系统级集成趋势的催化剂,而对FPGA复用策略的理解和掌握将直接影响到IC设计公司在未来SLI市场上的竞争力。

设计复用弥合了生产力差距
目前的设计复用策略
系统级可重编程芯片
面向未来
共享RTL设计方法
通用设计复用策略
在FPGA中互连VC
FPGA编码和综合准则
FPGA的系统级复用问题

作者:Carol Fields
产品市场部总监
Xilinx公司

当今的科技使得设计师们拥有比以往任何时候都要多的可用门电路,这既是福音又是灾难。根据摩尔定律,集成电路的晶体管数平均每隔两年翻一番。但是,只有当设计能力的增长与指数增长的晶体管密度相匹配时,设计师们才能够真正利用它。

为什么要担心生产力中出现的这种差距呢?历史表明,一般来说对于某一产品市场,第一个进入者在该产品的整个生命周期中占有70%的销售份额,第二个占有15%,后来者分享剩余的15%,如图1所示。可见,市场先入者得利。

 

 

 

 

 

 

 

 

 

 

 

 

设计复用弥合了生产力差距

市场上最先出现也最有前景来弥补这种生产力差距(见图2)的方法是重复利用现有设计或虚拟元件VC(Virtual Components)。设计复用并不是个新的概念,设计师们早就在重复利用代码、脚本、标准测试程序等等,在最近几年中得到发展的是知识产权架构的成熟以及设计复用方法的体系化。

 

 

 

 

 

 

 

 

 

 

设计复用可分为几种级别,从重复利用以前的某个项目到从第三方供应商购买设计。如果一个自己开发的VC有可能会多次重复利用,那么投入一些力量开发出一种设计复用方法是比较明智的。这一方法应能解决在设计复用整个流程中所有可能出现的问题,包括法律和买卖事务、VC规范、设计和编码、测试方案、设计的保存和恢复、以及设计衡量标准。

在VC开发上付出的努力将直接影响到VC的可复用性,尤其当重利用这一模块的工程师不是原设计师时。如果你从第三方购买VC,那么预先了解VC的总成本和实际可用性是很重要的。

设计复用的关键是信任。对于内部设计的VC,你需要去建立信任。而当购买第三方VC时,你需要知道是什么使得该VC值得信赖。

我不是高手
目前的设计复用策略

最流行的设计复用方法主要针对ASIC设计,这是因为今天集成工艺水平的发展已足以允许将整个系统集成到一块芯片上,亦即目前所谓的SoC芯片。1995年Dataquest对SoC的定义包括计算单元(微处理器、微控制器或者数字信号处理器)、至少10万可用门和相当大的片上存储器。5年过去了,我们仍然没有看到多少含有整个系统的ASIC芯片,不过,我们已经看到市场上正涌现越来越多的系统级集成(SLI)芯片。

据预测,到2003年ASIC行业收入增长的幅度将取决于SLI的发展。目前的设计复用方法主要针对SoC,但如果能使设计复用方法同时适合于SoC和SLI,当然意义也就更大,因为一个体系化的设计复用方法将会使SoC和SLI设计师同时得益。

系统级可重编程芯片

但是,设计复用并不仅仅用于ASIC设计,现在FPGA (现场可编程门阵列)设计也已有设计复用方法和工具。自从15年前首次推出FPGA并将其作为"胶合逻辑"使用以来,FPGA已经有了长足的发展。在80年代末90年代初,FPGA主要用于样机开发和小批量应用,与此同时,可定制ASIC则用于大批量且成本敏感的应用。FPGA对于许多设计而言太过昂贵,而且速度太慢,除此以外,开发工具也总是难以掌握而且缺少可在ASIC开发系统中发现的功能。

硅片技术现在已允许我们制造含有成百上千万晶体管、并具有远胜于以往可编程技术特性和性能的FPGA,目前常规的运行在30MHz到50MHz的ASIC设计可以在使用同样RTL综合设计方法的FPGA中实现。到2003年,最先进的FPGA将集成超过5千万系统门电路,内部运行速度远远超过200MHz,许多由于速度、密度或者价格原因而一度只能采用ASIC实现的设计现在正在向更灵活、更高产的FPGA解决方案转移。

可以肯定的是,未来将有更多的系统采用FPGA实现。工业分析家预言,到2003年,FPGA将开始在除超大批量应用外的所有应用中取代标准单元ASIC。不过,目前还有很多应用的批量并没有高到非要采用标准单元ASIC技术,如千兆以太网和新兴的因特网设备应用。

由于目前SoC芯片可在一片FPGA上实现,因此业界创造了系统级可重编程芯片SOPC这一专用术语。这个术语可用来定义完整的或部分的系统级设计,因为这些FPGA设计师面临的挑战几乎是一样的。尽管目前还很难见到在FPGA上实现的完整系统,但由于最新一代的FPGA结构已具有系统级特性,因此越来越多的SLI级设计正在出现。

面向未来

大多数主要的数字设计公司都正在定义(或重定义)它们的设计复用策略,这通常需要创建一个内部设计复用部门,它的结构与现有的管理CAD工具的EDA部门很相似。在80年代后期,许多主要的公司成立了EDA部门以支持对大量ASIC工具的管理。那时,FPGA技术才刚刚起步,设计师们使用的是专用工具或简单的原理图描述工具,没有必要成立一个专门部门来管理它们。到90年代中期,同样是这些公司将FPGA广泛地用于更高密度的粘合逻辑和SLI,从而对FPGA的支持也归入EDA部门。

今天,我们已经能够定义一种设计复用策略,它同时适用于FPGA和ASIC设计。是否在设计复用方案中采用FPGA的决策必须尽早作出,因为它几乎影响设计复用流程的所有阶段,从设计规范到验证计划。

共享RTL设计方法

FPGA结构、价格和设计工具在这几年都已有长足的进步,这一进步产生的最激动人心的好处之一就是,它使得ASIC和FPGA设计师可以共享通用的RTL设计方法。这种通用RTL设计方法是通用设计复用方法的基础。

尽管ASIC将会继续提供更高程度的设计集成、更高速度和新的EDA设计环境,但它将很难再与FPGA拉开距离。目前主要的FPGA和EDA公司已经明确地做出了将它们的设计环境保持一致的决定,从最终用户的角度来看,这将使用户可以轻易地从一项技术转移到另一项技术。90年代中期RTL综合工具和验证工具的广泛采用可以说明这一点,以RTL综合为例,现有的ASIC方法仍保持不变,而综合算法则变为针对特定的FPGA器件。今天我们正在看到更高级的EDA工具(如平面规划工具)和基于因特网的团队型设计工具。

1999年FPGA设计一般在1万门到5万门之间,5万到10万门之间FPGA市场增长最快。由于认识到目前FPGA在数字设计领域得到比ASIC更广泛的应用,因此在设计复用策略中包含FPGA是有意义的。

通用设计复用策略

共享通用设计复用策略有很多好处,其中令人印象最深刻的就是灵活性,这使得设计师即便在设计后期也可以选择合适的IC技术。它使得工程师可以灵活地选择实现SLI设计的最佳方法,而毋需再对设计小组进行重新培训。

设计复用策略不仅仅是RTL编码和综合,许多重复利用设计的公司已经发现,设计和测试规范比实际的RTL设计更具价值。对现在的ASIC用户来说,好消息就是设计复用方法中的许多部分只需做最少的修改就可方便地适用于FPGA。不过,融合ASIC和FPGA设计复用策略还存在一些固有的问题。

设计复用方法的很多部分通过很少的修改就可以很容易地适用于FPGA,诸如复用成本的确定和构造设计复用架构的影响基本上也是由相同的部分组成。

开发通用复用策略中遇到的最大挑战是如何实现更高的速度。目前的通用复用策略基于RTL综合方法,不过,很多设计师正在发现,为了实现最高的时钟频率,他们必须制造VC固件。尽管有可能开发出一种包含固件宏单元的内部复用策略,但是这些宏在FPGA和ASIC之间是无法移植的。当然,这并不是说第三方IP供应商不能开发基于固件IP的可行策略。
我不是高手
在FPGA中互连VC

虽然今天的FPGA还不适用于高速局部处理器总线或者系统总线,但是它们可以很好地用来实现外围总线,与系统总线相比,它们通常具有简化了的信号接口。处理器总线和系统总线通常位于FPGA之外,在处理器总线和系统总线之间的桥接可以集成入FPGA。

对于运行速度需要超过120MHz的应用来说,采用由虚拟插座接口联盟(www.vsi.org)定义的VCI实现的RTL级FPGA设计通常比SLI设计要慢得多。使用正式总线结构实现的设计一般可以达到50MHz的内部速度,现今经过综合的SLI级FPGA设计的平均速度在50MHz到80MHz之间,最好的可以达到120 MHz。虽然使用VCI改善了可重复利用性,但是对FPGA而言这种技术我们并不推荐。

我们推荐的技术是一种在VC之间通信或互连的技术,VC通过开关直接相连,这提供了一种最短的连接以减小布线延迟。如果VC间的连接是双向的,那么就要采用内部三态缓冲器。这些方法使用最少的协议,化费开销也最小,但是并不利于重复利用。

FPGA编码和综合准则

紧密的ASIC结构能够接受各种RTL编码方式,而疏散的FPGA结构则对RTL编码方式和设计内容比较敏感。在很多情况下,遵守供应商的编码和综合准则可以将系统性能提高10%到100%。现有的设计复用方法也已经强调了一种好的编码方式对提高设计可复用性的重要性。

之所以同样一个设计在FPGA中运行要比在ASIC中慢,一个常见的原因是在关键的FPGA通道上有过多的逻辑级,但这是由FPGA的结构造成的,你很难加以改变。FPGA的一个逻辑级定义为一个组合逻辑块(CLB)或逻辑单元(LE)延迟,这些延迟取决于FPGA器件的速度级别,通常仅仅为几个纳秒。

例如,对于7纳秒级1.8V Virtex-E FPGA器件,典型的一个逻辑级延迟约为1.4纳秒,其中一个CLB的延迟为0.42纳秒,布线延迟为1纳秒。一旦需要二个CLB来实现某个设计逻辑,那么就需要再增加一个逻辑级的延迟。

在设计时应该尽可能遵循编码指南手册,因为它们包含了许多有助于减少逻辑级数量的指南。很多指南条款都是通过增加寄存器来改善整体速度,因为FPGA的寄存器资源非常丰富,这些技术包括倍增寄存器以减小关键通道的扇出数,以及状态机编码和流水线技术。

FPGA的系统级复用问题

最近几年半导体业持续增长的一种趋势是在FPGA器件中集成系统级性能,例如,一些FPGA器件已包含了时钟和时钟分配电路、进位逻辑、片上存储器、存储器接口和对多个可编程I/O接口的支持,这些性能肯定将使FPGA更适合于实现SLI设计,但通常只有几种特定的FPGA器件才具备这些性能。如果VC采用这种FPGA器件实现,那么最好利用这些系统特性并在设计文档中写明采用的器件型号和设计环境。

验证是改善大型FPGA设计生产率的关键因素,一个得到良好规划和执行的验证策略可为未来的设计工程师建立信心。验证计划使设计小组能够正确地计划和安排各项验证工作,不过,这一步骤在FPGA设计中常被跳过。为了有效地再利用FPGA设计,设计师将需要采纳一种结构化验证流程,包括验证规划、规范、可重复使用的测试基准和HDL模拟。随着用FPGA实现的SLI设计复杂性的增加,设计师将需要时序分析和形式验证工具。

Carol Fields是赛灵思(Xilinx)公司IP解决方案部门的设计方法专家,她现在主管赛灵思公司 Alliance系列软件设计工具的产品和技术市场推广工作。她拥有加州Santa Barbara大学电子工程学士学位。
我不是高手
返回列表