片上系统设计思想与源代码分析
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章 片上系统概述

本章主要内容

本章作为开篇,讲述集成电路工艺技术和集成电路设计方法的发展、讲述片上系统的基础知识及基本概念,并在此基础上,引出DemoSoC的架构设计,后续章节中将对其设计细节进行进一步分析。

1.1 片上系统的基础知识

1.1.1 集成电路技术的发展

与分立元件相比,集成电路将晶体管、电阻、电容、二极管等电子组件整合装至一块芯片(chip)上,由于集成电路的体积极小,使载流子运动的距离大幅缩小,因此速度更快且可靠性更高。在集成电路的发展初期,集成电路的种类一般是以内含晶体管等电子组件的数量来划分,其分类如下:

MSI(中型集成电路),晶体管数100~1000;

LSI(大规模集成电路),晶体管数1000~100000;

VLSI(超大规模集成电路),晶体管数100000以上。

然而集成电路的发展一直遵循摩尔指示的规律推进,即工艺特征尺寸大约每18个月减小一倍,集成度大约每18个月翻一番,至今已有40年的历史。在VLSI之后,就再也没有出现过被广为接受的以晶体管个数形式命名的集成电路类型划分名称。如今,集成电路已经进入深亚微米阶段,国外主流设计工艺尺寸已经达到90nm,最新工艺尺寸已达到40 nm,国内也发展到了0.13um,单芯片可集成的晶体管数已经超过千万。由于信息市场的需求和微电子自身的发展,引发了以微细加工(集成电路特征尺寸不断缩小)为主要特征的多种工艺集成技术和面向应用的系统级芯片的发展。

随着半导体产业进入超深亚微米乃至纳米加工时代,在单一集成电路芯片上就可以实现一个复杂的电子系统,诸如手机芯片、数字电视芯片、DVD芯片等,这就是片上系统SoC(System - on - Chip)。在未来几年内,有上亿个晶体管、几千万个逻辑门的集成电路都可望在单一芯片上实现。

1.1.2 片上系统基本概念

片上系统技术始于20世纪90年代中期,随着半导体工艺技术的发展,IC设计者能够将愈来愈复杂的功能集成到单硅片上,SoC正是在集成电路(IC)向集成系统(IS)转变的大方向下产生的。1994年Motorola发布的FLEX-CORE系统(用来制作基于68000和PowerPC的定制微处理器)和1995年LSILogic公司为Sony公司设计的SoC,可能是基于IP(Intellectual Property)核完成SoC设计的最早报道。由于SoC可以充分利用已有的设计积累,从而显著地提高了ASIC的设计能力,因此发展非常迅速,引起了工业界和学术界的关注。

片上系统的具体定义为:在单个芯片上集成一个完整的系统,一般包括系统级芯片控制逻辑模块、微处理器/微控制器CPU内核模块、数字信号处理器DSP模块、嵌入的存储器模块、和外部进行通信的接口模块、含有ADC/DAC的模拟前端模块、电源提供和功耗管理模块,是一个具备特定功能、服务于特定市场的软件和硅集成电路的混合体,比如WLAN基带芯片、便携式多媒体芯片、DVD播放机解码芯片等。片上系统产品的成功关键在于需要在正确的时间窗口为目标用户提供令人满意的性能和价格。片上系统常具备以下基本特征。

(1)片上系统应由可设计重用的IP核组成,IP核是具有复杂系统功能、能够独立出售的VLSI模块;

(2)片上系统应采用深亚微米以上的工艺技术;

(3)片上系统中可以有多个MPU、DSP、MCU或其复合的IP核;

(4)片上系统内嵌有系统软件或可载入的用户软件。

1.1.3 集成电路设计方法的发展与进步

最初的集成电路设计都采用逻辑门输入方式,采用卡诺图进行手工化简,设计效率非常低。1985年Phil Moorby发明了Verilog HDL,1987年VHDL成为IEEE标准,这两种语言被用来建模集成电路,使得组合逻辑能够和时序逻辑分开单独优化,进而出现了Synopsys的Design Compiler这样的寄存器传输级(RTL)综合工具。寄存器传输级综合代表了人类集成电路设计能力的一次重要进步,人类进入了RTL时代。

此后,人们一直在寻找能够提供更高设计效率的下一代设计方法学。1999年,EDA业界的Cadence、Synopsys、ARM等公司共同组织开始设计基于C++的新的EDA语言,从而诞生了SystemC。在2006年,SystemC成为IEEE标准,成为所有EDA软件支持的VHDL、Verilog之后的第三种自然语言。此间,Verilog也发展到3.1版本,即SystemVerilog。SystemC的最大价值在于将通信和功能分开,将人类的集成电路设计时代引入以事务处理级(Transaction level or TL)建模为核心的电子系统级(ESL)时代。正如Verilog任务组主席Cliffcummings所说,SystemC的真正价值在于使得高层次综合成为可能。SystemC正在逐渐为业界所接受,它能够提供更高的设计效率、更高的首次流片成功概率、更有效的设计流程,从而帮助解决集成电路产业面临的爆炸性的复杂度、上市压力(Time to market presure)、飙升的成本等问题。

回首RTL时代,除了RTL综合外,另外一个重要标志为FPGA(包括CPLD)的出现,FPGA作为ASIC原型验证平台芯片、高性能计算芯片、快速上市量少、价格不敏感的应用芯片出现在市场上,目前已经发展到每年50亿美元的市值。FPGA的核心特征在于使得RTL综合的结果可以直接运行在芯片上,让人们立即看到运行的结果。在ESL时代,人们是否需要一种类似RTL时代FPGA的芯片,使得ESL的综合结果可以直接运行在芯片上,让人们看到运行的结果?在RTL时代,硅硬件占据了绝对的主导地位,软件是非常少的。而ESL时代,软件正在成为SoC的核心,而硅硬件只提供一个执行平台。ESL的综合结果一部分是硅硬件,它们可以继续在FPGA上运行,而ESL综合结果的另外一部分甚至是主要部分是嵌入式软件,这部分软件不适合在FPGA上运行,它们应该运行在一种更适合软件运行的器件上,这是一种新型的器件,一种与FPGA一起共同支持和支撑ESL时代的器件,这种器件,在笔者看来,就是以能够执行gcc的C编译最小32位处理器阵列为核心构成的多核处理器,权且称作SOPA(SystemC Optimized Processing Array),与FPGA(Field Programmable Gate Array)互补,正如设计语言SystemC与SystemVerilog之间的互补关系。

1.1.4 片上系统设计中的基本问题

片上系统设计中的基本问题包括以下几点。

1.片上互联问题

片上互联常采用单总线、多总线和片上网络方式。片上总线结构及互联技术,直接影响芯片总体性能发挥。对于单一应用领域,可选用成熟的总线架构,如AMBA、WISHBONE、CoreConnect;对于系列化或综合性能要求很高的,可进行深入的体系结构研究,构建具有自主特色的总线架构,做精做强,不受制于第三方,与系统同步发展。

2.IP核复用技术

IP核分为硬核、软核和固核三种,硬核是指经过预先布局布线且不能由系统设计者修改的IP核,通常是GDSII格式;软核通常以HDL RTL代码形式提交,固核则是RTL代码综合后的网表。IP核应有良好的开发文档和参考手册,包括数据手册、用户使用指南、仿真和重用模型,便于移植。

3.软硬件协同设计技术

由于市场和设计风险的压力,SoC软硬件协同设计尤为重要。改进软硬件协同设计规范、协同分析、协同设计、协同模拟和协同验证,可大大减少硬件设计风险和缩短嵌入式软件的开发调试时间。同时在协同验证环境中能够及时发现软硬件中所存在的致命问题。

4.先进验证技术

主要分IP核验证、IP核与总线接口兼容性验证和系统级验证三个层次,包括设计概念验证、设计实现验证、设计性能验证、故障模拟、芯片测试等;从验证类型分,有兼容性测试、边角测试、随机测试、真实码测试、回归测试和断言验证等。由于芯片愈来愈复杂,软件仿真开销大,因而硬件仿真验证成为一种重要的验证手段。

5.低功耗设计

降低功耗要从SoC多层次立体角度研究电路实现工艺、输入向量控制(IVC)技术、多电压技术、功耗管理技术,以及软(算法)低功耗利用技术等多方面综合解决问题。

6.嵌入式软件移植/开发

包括嵌入式操作系统移植和应用软件开发,软件要便于维护,易读易懂,要具有安全性好、健壮性强、代码执行效率高等特点。