绪论半个多世纪以来,计算机发展主要经历了真空管(1代)、晶体管(2代)、集成电路(3代)、微处理器(4代)等4代。计算机技术发展与集成电路(IC)技术发展紧密相关。自从1958年美国德州仪器公司推出集成电路专利以来,IC设计产业经历了小规模(1代)、中规模(2代)、大规模(3代)、超大规模(4代)等4代,呈现出快速发展的态势。名词解释处理器:CPU(CentralProcessingUnit)单片机:SCP(SingleChipProcessor)嵌入式系统:(EmbeddedSystem)片上系统:SoC(SystemonChip)具有知识产权的内核:IP核(IntellectualPropertyCore)专用集成电路:ASIC(ApplicationSpecificIntegratedCircuit)目前计算机与超大规模集成电路技术结合出现了系统设计和IP核设计的分工,以软硬件协同设计(Software/HardwareCo-Design)、具有知识产权的内核(IP核)复用和超深亚微米(VeryDeepSub-M集成电路,简称VDSM)技术为支撑的SoC(SystemOnChip)是国际超大规模集成电路(VLSI)的发展趋势和新世纪集成电路的主流,对电子工程以及电路与系统设计技术发展产生了深远影响。SoC可以充分利用已往的设计积累,显著缩短ASIC(ApplicationSpecificIntegratedCircuit)的设计周期,缩小设计能力与IC工艺水平之间差距。其设计方法学与计算机体系结构发展紧密相关并大大促进后者的发展。SoC通常将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,使应用产品实现小型、轻量、低功耗、多功能、高速度和低成本,因此具备较强的市场竞争力。广泛用于计算机、通信、消费、工控、交通运输等领域。在过去6、7年中,SoC得到了快速发展。据估计,到2007年销售额将达347亿美元,年增长率超过20%。二十一世纪初将是SoC快速发展的时期。与此同时,制约未来集成电路工业进一步健康发展的关键问题是,系统设计技术水平远远滞后于电路制造技术的进步。1.传统的、基于标准单元库的设计方法已被证明不能胜任SoC的设计;2.现行的面向逻辑的集成电路设计方法在深亚微米集成电路设计中遇到了难以逾越的障碍;3.芯片设计涉及的领域不再局限于传统的半导体而且必须与整机系统结合;4.集成电路设计工程师们从来没有像今天这样迫切地需要汲取新知识,特别是有关整机系统的知识。所以尽快开展面向SoC的新一代集成电路设计方法学研究对于推动集成电路的发展是至关重要的。据有关报道,在今天的美国社会如果以每分钟9美分的费用计算,并有15%的家庭每天平均上网60min,则现有的网络容量必须增大1倍。由此引发的交换设备投资为300亿美元,接入设备投资多达7000亿美元。这些交换设备和接入设备对集成电路的需求拉动将是巨大的。1何谓SoC在多年的争论之后,专家们最终就SoC的定义达成了比较一致的意见。下面的定义虽然在形式上并不严格,但是明确了SoC的内涵和表征。SoC是一种集成电路芯片,它具备如下特性:实现复杂系统功能的VLSI;采用超深亚微米工艺技术;使用一个或数个嵌入式CPU或数字信号处理器(DSP);具备外部对芯片进行编程的功能;主要采用第三方的IP核进行设计。这样的定义决定了SoC的设计必须采用与现在的集成电路设计十分不同的方法。首先,一个SoC必须是实现复杂功能的VLSI,它的规模决定了芯片的设计不仅需要设计者具备集成电路的知识,更要具备系统的知识,也要对芯片的应用有透彻的了解。显然,这对设计者的知识结构提出了很高的要求。其次,深亚微米工艺提出的诸多挑战至今尚未得到彻底的解决,互连延迟主导系统性能的问题随着工艺技术的不断进步将变得越来越突出。在人们从面向逻辑的设计方法彻底转变到面向互连的设计方法之前,这个问题将一直存在,并长期困扰整个集成电路设计业。第三,单个芯片要处理的信息量和信息复杂度要求芯片必须具备强大的数据处理能力;使用嵌入式CPU或DSP是SoC的一个重要标志。事实上,一个芯片上集成一个或多个微处理器以完成复杂的系统功能,在今天的集成电路设计中已不少见。第四,采用嵌入式CPU或DSP的SoC具备了可编程能力,从而将ASIC集成电路系统的一部分功能交给应用工程师去完成可使SoC功能设计相对简化、应用范围将拓宽。与虽然采用内嵌CPU或者DSP但所需软件固化在SoC芯片中的系统相比有明显优势:1.未来的SoC功能非常复杂,采取外部编程的方式可以适应应用环境的修改或变动,减少应用风险。2.随着芯片规模的不断扩大,开发一个SoC不仅需要克服众多的技术难题,而且开发成本也越来越高。有能力进行SoC设计商家逐渐集中到技术和经济实力较强的单位。提供可由用户自己进行功能配置的SoC,将大大提高SoC芯片的出货量,摊薄SoC设计研发成本。3.相当多的应用系统软件或中间件研发成本巨大,由SoC设计商完成全部ASIC系统的软、硬件系统研发并不明智。提供SoC芯片的外部编程能力可使SoC设计商专心致力于平台设计。对于第三方合作伙伴来说,已有的技术储备即可轻松实现十分复杂的应用系统。4.减少SoC芯片的可测试设计。譬如,让Linux在SoC上跑起来可以支持许多复杂的测试过程。最后,采用第三方的IP核是SoC设计的必然。高度复杂的系统功能和愈来愈高新的产品打入市场的时间要求不允许芯片设计者一切从零开始,必须借鉴和使用已经成熟的设计为自己的产品开发服务。事实上今天的集成电路已经开始越来越多的使用IP核来进行设计(图3)1.1SoC设计方法SoC设计方法学正是围绕SoC的上述内容展开的新一轮理论研究。这一理论根植于过去几十年计算机辅助设计(CAD)、计算机辅助工程(CAE)和电子设计自动化(EDA)理论的土壤之中,将借鉴已有的理论并在其基础上创新。尽管如此,研究人员还是不得不面对许多的难题,因为SoC时代的集成电路设计方法学的内涵及外延到底是什么确实不那么清楚(图4).人们只能模糊在感到这个新生的理论应当涉及系统和芯片,应当涉及硬件和软件,应当涉及设计和制造,应当涉及知识产权的保护和使用等等一系列的问题,以及现在也许还无法提出的许多其它技术的和非技术的问题。要想把SoC设计中的所有问题都清楚地罗列出来是不现实的,但是研究人员可以在以前的研究基础上确认哪些是关系到SoC设计成败的关键,并将它们作为SoC设计方法学首先要解决的课题。1.2SoC技术第一个内容就是系统设计方法。传统的集成电路设计基本上属于硬件设计的范畴,少数的软件(主要是一些微码)也往往通过固化的方法在芯片中实现。而在SoC设计当中,设计者必须面对一个新的挑战,那就是他不仅要面对复杂的逻辑设计,而且要考虑软件,特别是那些可以改变芯片功能的外部应用软件的设计。尽管软件的加入在某种程度上加大了系统设计的工作量,但是软件的引入也会对系统代价的减少产生积极的作用。如何在软件和硬件设计中取得平衡,获得最优的设计结果是我们要认真探讨的课题。第二个内容是IP核的设计和使用。IP核是SoC设计中非常重要,它包含两个方面的内容,首先是IP核的使用,其次是IP核的生成。IP核的使用绝不等同于集成电路设计中的单元库的使用,它所涉及的内容几乎覆盖了集成电路设计中的所有经典课题,包括测试、验证、模拟、低功耗等等。IP核的生成也绝非是简单的设计抽取和整理,它所涉及的设计思路、时序的要求、性能的要求等均需要人们重新审视我们已经熟知的设计方法。第三个内容是深亚微米集成电路设计。尽管这个课题已经提出了相当长的时间,但是研究的思路和方法仍然在面向逻辑的设计思路中徘徊,也许布局规划和时序驱动的方法还能够解决当前大部分的实际问题,但是当我们面对0.15μm甚至更细线条的时候,又有谁能保证现在的作法有效呢?深亚微米集成电路设计方法的根本性突破显然是SoC设计方法学中最具挑战性的。2SoC研究内容SoC设计主要研究:总线架构技术IP核可复用技术可靠性设计技术软硬件协同设计技术SoC设计验证技术芯片综合/时序分析技术可测性/可调试性设计技术低功耗设计技术新型电路实现技术等此外还要做操作系统/嵌入式软件移植开发以及应用系统设计,是一门跨学科的新兴研究领域。2.1总线架构技术总线结构及互连技术,直接影响芯片总体性能发挥。对于单一应用领域,可选用成熟的总线架构;对于系列化或综合性能要求很高的,可进行深入的体系结构研究,构建各具特色的总线架构,做精做强,不受制于第三方,与系统同步发展,更具竞争力。目前SoC开发研制主要有基于平台(包括自主构建总体架构)、基于核、基于合成等方法,不断推出性能更好、扩展性更强的总线规范,如AXI总线(AMBA总线升级)、L*BUS总线(中科院计算所)等。2.2IP核可复用技术IP核一般分为硬核、软核和固核三种,硬核是指经过预先布局且不能由系统设计者修改的IP核;软核通常以HDL语言形式提交;固核由RTL的描述和可综合的网表组成。IP核可复用技术研究重点是开发适应多种总线接口的规范和可测试性一体化,以尽量少的外包和测试向量,达到复用目的。IP核应有良好的开发文档和参考手册,包括数据手册、用户使用指南,仿真和重用模型等,而兼容性是重要的因素。2.3可靠性设计技术SoC一般由有多级总线,每一总线上含有多个设备(IP核)。如何确保整个芯片正常运转,必须考虑防“死锁”和“解锁”机制。即使某一设备(IP核)瘫痪,也不应影响整个芯片其他功能。此外随着超深亚微米技术发展,对总线传输的可靠性提出了严重挑战,必须研究容错机制和故障恢复机制。2.4软硬件协同设计技术由于市场和设计风险的压力,SoC软硬件协同设计尤为重要。改进软硬件协同说明、协同分析、协同设计、协同模拟和协同验证,可大大减少硬件设计风险和缩短嵌入式软件的开发调试时间。同时在协同验证环境中能够及时发现软硬件中所存在的致命问题,避免在最后集成测试阶段重新进行软硬件的调整。2.5芯片综合/时序分析技术由于SoC系统复杂度和规模愈来愈庞大,多时钟、多电压以及超深亚微米等新课题不断出现,对SoC的综合性研究提出了更高的要求。尤其对时序预算如何分级、分解,关键路径的特殊约束的研究,要求研究人员具有深厚的系统背景知识。与此同时,静态时序分析(STA)日趋复杂、后端动态仿真效率低下,对总体设计人员提出了严峻的挑战。2.6SoC验证技术主要分IP核验证、IP核与总线接口兼容性验证和系统级验证等三个层次,包括设计概念验证、设计实现验证、设计性能验证、故障模拟、芯片测试等。从验证类型划分,有兼容性测试、边角测试、随机测试、真实码测试、回归(Regression)测试和断言验证等。由于芯片愈来愈复杂,软件仿真开销大,硬件仿真验证成为一种重要的验证手段。验证工作约占整个设计工作的70%,如何提高验证覆盖率和验证效率是设计验证的永恒课题。2.7可测性/可调试性设计技术主要研究解决批生产可测性问题和在线可调试性问题,实施技术包括DFT、SCAN、BIST、Iddq、JTAG/eJTAG等,要研究基于各种IP核的SoC测试架构和测试向量有效传递性,更重要的是要考虑测试平行化,降低芯片测试占用时间,此外要关注在线调试工作,方便用户开发和调试基于SoC的产品。2.8低功耗设计技术低功耗已经成为与面积和性能同等重要的设计目标,因此精确评估功耗也成为重要问题。芯片功耗主要由跳变功耗、短路功耗和泄漏功耗组成。降低功耗要从SoC多层次立体角度研究电路实现工艺、输入向量控制(IVC)技术、多电压技术、功耗管理技术以及软件(算法)低功耗利用技术等多个方面综合解决问题。2.9新型电路实现技术由于晶体管数急剧增加、芯片尺寸日益变小、密度不断增大、IP核可重用频度提高、低电压、多时钟、高频率、高可测性、新型高难度封装等要求的出现以及新工艺/新设计技术层出不穷,半导体工艺特征尺寸向深亚微米发展,要求SoC设计师不断研究新工艺、新工具,研究关键电路架构、时序收敛性、信号完整性、天线效