SOC设计方法与实例_第1页
SOC设计方法与实例_第2页
SOC设计方法与实例_第3页
SOC设计方法与实例_第4页
SOC设计方法与实例_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、SOC设计方法与实例I数字电路设计的演进与HDLI.A历史背景数字电路的发展,一路随着真空管、晶体管到ic的发明而持续演进,而IC的问世,更是 不断地将数字电路的功能及复杂度,提升到新的境界;从早期的SSI、MSI、LSI、VLSI,到现 在大家常看到的0.25u、0.18u、0.13u等等,其中不断增加的,就是单一 IC中逻辑闸的数目,从 早期的十数个,到现在0.13u制程的IC,其中的逻辑闸数目可能高达1025M,这其中的的差距 真的是不可同日而语。当IC中的逻辑闸数目随着制程的进步而越来越多时,一些在设计上的问题就伴随而来:我 要怎么利用这么多可用的逻辑闸?我可以拿来设计什么?我要怎么设

2、计?大家可以回想一下当 初是怎么学习数字电路的,一开始的时候不外乎是利用真值表、有限状态机等等将数字电路转成 一堆逻辑闸的组合,之后在面包版上用一堆小IC跟接线将电路实作出来,而在计算机上也有一 些辅助设计软件(CAD )帮助设计者作布线的工作以及逻辑闸层次的仿真。这样看起来好像不错,但是请大家想一下,现在一颗0.13u制程的IC起码有上千万个逻辑 闸,这下好了,我们要到哪里去找这么大的面包版来测试电路,就算全部都在计算机上测试,接 下来的问题是,我们要怎么去组织这么多的逻辑闸?我们只能在逻辑闸的层次去设计数字电路 吗?I.B硬件描述语言与逻辑合成如果大家学过计算机程序设计的话,就应该会有一种

3、感觉,那就是我们可以用程序语言去 描述一些功能,不管这些功能是用来排序或是用来作判断;同样的,设计数字电路也是为了实现 某些功能,那有没有程序语言可以用来描述硬件电路的?答案是有的,这种语言我们通称为硬件 描述语言(Hardware Description Language(HDL),HDL经过长时间的发展,目前较普遍的有VHDL 以及Verilog HDL。但是光有HDL并不能解决IC设计上的问题,我们还是需要以人工的方式将 HDL的设计转换成逻辑闸之间的连接线路,而逻辑合成(Logic Synthesis)工具的出现,正好弥补 这个空缺,使得数字电路的设计工作,产生巨大的改变。另一方面,相

4、较于用HDL开始Top-to-Button的设计方式,还有一种称之为Cell Based的方法是采取 从晶体管层次开始由下往上的设计方式,目前较常用于内存的设计。II SOC设计方法与业界的解决方案II.A数字IC设计流程 L High Level DesignP&RFunctional VerificationTiming Simulation.SynthesisLVS/DRCFront EndRC Extraction-Back End图1 Top-to-Button的IC设计流程图1是一般数字IC的设计流程,大体来说Top-to Button的IC设计分为Front End以及BackE

5、nd两个部分,Front End的工作主要就是把程序代码转换成逻辑闸层次的电路,而到了 Back End 的部分,P & R作的是布局(Place)与绕线(Route), Timing Simulation主要是测试经过P & R后某 些电路产生的延迟对整个系统的影响,最后两个步骤是投光罩前所作的修正;大家应该可以感觉 到Front End的工作主要是在功能开发以及逻辑合成产生电路,而Back End就是作一些电路布局 以及半导体相关的工作,通常Front End跟Back End会交给不同的人或小组负责,在业界甚至有 些公司就是专精在作Front End或Back End的部分。B硅智财与模

6、块化设计从前文的介绍,我们可以看出目前数字IC设计的重心,就在于如何用HDL撰写适合逻辑 合成的程序,而这些程序也就是硅智财(Intellectual Property(IP)中的一种,通常我们称这种用 HDL写出来的程序为Soft IP; 一般来说,用HDL撰写程序代码时,通常会以模块化的方式将电 路组织起来,换句话说,利用模块化的方式将一个个IP组合成一个电路是现在数字电路设计普 遍采用的方式。II.C System On Chip (SOC)之前讨论的话题,一直围绕在数字ic设计的演进,但是我们不要忘了,设计方法的演进, 有部分是因为IC的制程不断提升而产生的需求,前面也提过一颗0.13

7、u制程的IC可以包含上千 万个逻辑闸,那么延续文章一开始我们提的问题,我们现在可以利用HDL设计大型的数字电路, 而现在单一 IC的容量也放得下这么大型的电路,那我们可以拿它来作什么?说到系统(System),以PC为例子,大家应该都看过PC的主板,上面有CPU、内存、控制 芯片、总线等等不同的部分,而整张主板也布满了大大小小一堆的IC,也就说PC这个系统并不 是由单一的IC所组成的;换过来说,如果我们今天需要一个系统,但是不需要拥有类似PC的 计算能力或完整的功能,再加上现在的IC可以塞那么多的东西,那我们可不可以把整个系统放 到一颗IC里面?System On Chip (SOC),照字面

8、的意思讲起来就是把系统放到芯片上,它现在也是电子业界 热门的话题,我们先给系统一个简单的定义,那就是系统是一些模块以及子系统的集合,将这些 模块跟子系统链接起来达到特定的功能就是一个系统,所以说起来,PC是一个系统,手机也是 一个系统,游乐器也是一个系统,很多东西都可以称得上是系统。那把整个系统塞到一颗或少数几颗芯片中么好处?以下就列举几项SOC的优点:成本降低。执行效能增加。耗电量降低。体积缩小。可靠度增加。将系统中IC数目降到最低,体积缩小跟成本降低是可以预期的,而把所有电路浓缩到一颗 芯片使得不同模块间彼此的连接距离都相当短,所以可以增加执行效能以及降低耗电量,可靠度 之所以能提升是因为

9、系统中外部连接点数目减少的缘故,一般来说尽量将系统的功能整合到单一 芯片中是目前IC设计的趋势。II.D SOC 架构图2是目路等等,配合嵌入式软件(Embedded Software)跟实时操作系统(RTOS)等一起运作,大家或许会觉 得这看起来跟一般微处理机系统好像差不多,不过当系统整合在单一芯片中,有些地方的考虑就 会不一样,如芯片中的总线结构(即上图的OCB(On Chip Bus) Architecture),因为连接总线的模 块以及总线本身都在同一个芯片中,而一般总线连接的装置就不是如此。II.D SOC设计上的挑战由于IC制程的演进,使得将系统单一芯片化成为一项趋势,而这的确也有

10、它的好处存在, 但是在SOC的设计上,也有其困难之处,例如系统的复杂度就是其中之一,一个SOC的设计可 能包含了处理器、DSP、软件接口、操作系统、总线结构、数字或模拟模块等等,其中的复杂度 可能不下于一般的处理器系统。另外由于市场竞争的压力越来越大,产品的成本不断向下探底, 开发周期也越来越短,如何满足客户不同的需求也是重点之一。II.E IP模块的可重复使用性SOC的发展除了如何有效发挥IC的功能外,经济性也是非常重要的考虑,如何缩短开发 时间,如何有效利用现有的资源都是关键之一。而现今IP的设计大都以模块化为主,接下来IP 模块的可重复使用性便成了一个重要的课题,模块是否可重复使用的关键

11、之一就是接口的设计。 例如Virtual Socket Interface(VSI) Alliance提出的VC Interface便是提供一个模块跟总线之间以及 模块之间连接接口的标准规格,在这个规格之下,所有的 IP模块都被视为一个个的Virtual Component(VC),而VC之间的沟通就藉由VCI来完成,如此IP模块的可重复使用性便能大幅的提升,自然有助于降低开发成本以及开发周期。II.F平台式设计面对日趋复杂的SOC结构以及越来越快的市场周期,另一项设计趋势是采用平台式的设计 方式(Platform-Based Design),所谓的平台(Platform),一般来说就是一个完

12、整的总线架构以及一 些IP模块所组合而成,而这个架构也必须考虑到新增IP模块的方便性,而要设计一个平台,大 致上需要的步骤有:决定这个平台主要的应用领域在哪里。选择主要的IP模块,一般来说就是选择处理器的IP。决定总线、系统结构以及模块间的沟通方式。决定内存的存取方式。选择所需的软硬件IP模块。有时候选用的模块无法直接跟系统沟通,这时要考虑设计网桥的问题。在SOC的设计上采用一个成熟的平台通常会有几点好处:开发的时间可有效的缩短。在复杂的设计中,大量使用已验证过的模块,可有效侦测系统遇到的瓶颈或问题。容易建立开发平台供软件开发之用。II.G SOC设计流程在图3中我们将看到采用平台式的SOC设

13、计流程。图 3 SOC 设计流程 from: “Surviving the SOC Revolution-A Guide to Platform-Based Design”图3的横轴代表的是主要的四项开发工作,从左到右分别是模块开发、模块转移、芯片整 合、软件开发。模块开发主要的工作是准备需要的IP模块供整合之用;模块转移是将个别的模 块作整合之前的调整,以利模块能顺利的整合;芯片整合就是将模块结合成所需的系统;软件开 发则包含了操作系统、驱动程序、应用程序等的开发。纵轴代表的是整个设计流程,从上到下分 别是功能设计、结构设计、整合计划、模块开发、制造,最下面的则是支持用的技术。图3所描述的整

14、个设计流程是四项开发工作并行地从上到下的进行,图中的各项作业在此 不详细说明,其实这张图只是简图,对详细流程有兴趣的可以参考Surviving the SOC Revolution-A Guide to Platform-Based Design,这本书对整个流程有非常详细的描述。II.H SOC平台市场概况接下来我们将看一看目前市场上有关SOC的解决方案,而且我们将锁定厂商提供的SOC 设计平台,数据源是Design And Reuse,这是一个提供B2B服务的机构,主要收集的资料就是各 厂商在 IP 及 SOC 领域的产品,它的网址如下: HYPERLINK /%ef%bc%8c%e5%9

15、c%a8 /,在 Platform LevelIP的目录下共有以下各类产品,在此只列出数量:Processor Core Dependent8051: 1ARC: 1ARM: 24Intel 186:0MIPS: 2PowerPC:1Processor Core IndependentGeneral-Purpose: 3Networking & Communications: 9Multiprocessor / DSPGeneral-Purpose: 9从这里可以很明显的看到ARM这颗处理器在目前的SOC市场上占有明显的优势,而应用 在网络及通讯领域的SOC平台设计也比较多。II.I SOC平

16、台实例ARM除了在IP的处理器市场占有一席之地,在SOC的设计上也有完整的解决方案,PrimeXsys Wireless Platform 是ARM在无线通信应用上提供的SOC平台,其基本架构如图4所 示:MOVE JARM926CPUStmt M的匚叮 rterfdce sn fSDFAMLtritroll erVeijtrirHdlrtern_fzitLtirtrolLtdcrLCDDMA,AftTCHDOGIIIARMIAHB ARMDAHB LCOAHEFTOlB(DMA2 AHB(E-IPANSONAHBCore APBTIMERSA HE:/ APE:rwDMA APBA HE:/

17、APE:SSP.j.ppJi cationSpecific IPDMA APE:EriengcrisGPIO :-:4RTL:SYSTEMCONTROLUARTSIM Lrd图 4 ARM PrimeXsys Wireless Platform整个架构以ARM926这颗CPU为中心,透过AHB总线跟其它基本模块如LCD控制器、 SDRAM控制器、SRAM接口连接,特殊需求的IP模块也是经由AHB总线跟系统连接,Core APB 则是提供操作系统运作所需的基本功能,而DMA APB则提供快速的DMA接口,在这个平台中 除了 ARM自己的处理器外,它采用的系统总线AMBA及其它IP模块也是ARM的

18、产品,除了 硬件架构外,PrimeXsys在操作系统上提供Linux、Windows CE、Symbian OS多种选择;在其它 方面,ARM也为SOC设计提供完整的开发工具,如Integrator硬件开发平台,ARM Developer Suite、 ARM Applications Library ARM Firmware Suite等软件开发工具。举这个例子是为了强调一个完 整的商业化SOC平台可以包含哪些东西,从应用领域、硬件架构、操作系统、程序接口到软硬 件开发工具等等,完整的平台解决方案一方面可以有效开发功能越来越强大的IC,另一方面也 可以有效缩短开发的周期。III OPENCO

19、RES与SOC设计相关资源当今的IC设计大部分是以IP设计为主,而IP主要是以HDL所构成,也就是说用HDL写 成程序代码是现在数字电路设计的主流。说到程序,大家可能就会想到要钱的跟免费的,上一节 提到的Design And Reuse中就有很多厂商提供的IP程序,不过绝大部分都是要收钱的,那在IP 设计的领域中,有没有人在推广或收集免费的IP程序,接下来要介绍的OPENCORES就是这么 一个机构,OPENCORES主要希望以Open Source的理念推广IP程序的设计,它的网址如下: HYPERLINK /%ef%bc%8c /, OPENCORES中可以利用的资源大致可分为四大类,简述

20、如下。一、News:提供最新消息的地方,这里也可以看到一些项目的最新进度以及新进的技术文件。二、Articles:目前这里的文章有4篇,不算很多。三、Forums(Mailing Lists): OPENCORES目前有13个讨论区,大部分的讨论区其实都是跟某些项目相关的,条列如下。BluetoothOpenipCdromOpenppcCoresOpenriscEccPciEthMacUsbFpuVideoNnarm四、Projects:项目区可以说是整个OPENCORES的重心所在,所有的IP设计在这里都是以一个 个的项目在进行着,到目前为止(2002/09/05),OPENCORES中总共

21、有145个项目,开发者有四 百多人,其中有45个项目是已经完成的;一般来说,一个完整的项目会包含以下的数据:说明 文件通常以PDF的格式存在,完整的说明文件中会详细的列出IP模块中的输出入接口、缓存器、 记忆地址、行为模式等数据;IP以及作模拟及测试的程序代码则主要以VHDL及Verilog HDL 为主。接下来我们将以分类的方式看看OPENCORES中有哪些已完成的项目。Arithmetic core:完成的有一个执行CORDIC算法的IP。Communication controller:这里有很多已完成的通讯控制及传输接口 IP,如IrDA、USB、Ethernet MAC、HDLC、U

22、ART、I2C、GPIO、TDM、SPI、Serial Uart、Reverse CDMAAccess等,共有11个完成的项目。Coprocessor:有1个FPU的项目已完成。Crypto core:有1个作DES运算的项目已完成。DSP core:有 2 个 Filter core 已完成,分别是 FIR 以及 Biquad IIR。Memory core: 3个完成的项目。Microprocessor:有 11 个处理器的项目完成,分别是 RISC MicrocontrollerT80RISC5X OPENRISC 1000、tiny8、AX8、PPX16、Yellow Star、Min

23、i-Risc、Plasma、nnARM,但 是nnARM这个设计已经不开放下载,详细情形在Articles中有一篇文章有解释。Other:这里有1个PS2接口以及1个PWM/Timer/Counter产生器已完成,另外完成的 还有1个OpenRISC开发及除错用的接口设计。Prototype board:除了 1个小型的FPGA测试用机版外,另外1个就是OPENCORES 开发的IP测试用机版,其中有完整的机版电路图,之前有提供订购电路板的服务,不 过目前已取消。SoC:目前完成的2个项目都是WISHBONE总线的控制或桥接接口。System controller:完成的项目有 5 个,分别是

24、 PCI bridge、RS232、IDE ControllerMemory Controller、AC97 Controller。Video controller:有3个项目已完成。III.B OPENCORES中的SOC设计相关资源由上面的介绍,可以明显的看到目前OPENCORES中已经有相当多IP模块的设计,而且种 类不少,除了上述已完成的项目外,还有很多开发中的项目在进行着,而且未完成的项目大都有 部分完成的程序代码可供参考。那到目前为止,它有没有一个完整的SOC设计?很遗憾的,目 前还没有较完整的设计出现,不过有几个相关的项目正在进行。讲到这里,我们先来看一项重要的东西,那就是总线,

25、总线在系统中扮演着连接不同模块 的角色,所以对一个系统而言,模块的设计采用何种总线的接口便是重要的考虑之一。而SOC 总线的标准目前是出现百家争鸣的局面,很多SOC开发相关领域的厂商都有推出总线的规格, 如 ARM 的 AMBA、Altera 的 Avalon、IBM 的 CoreConnect、VSIA 的 VSIA On-Chip Bus 等等,不过使用这些总线规格不是要收费,就是需要取得授权,免费自由使用的很少。在 OPENCORES 中,推荐的 SOC 总线是 WISHBONE,WISHBONE 是由 Silicore Corporation所开发出来的芯片总线规格,使用它是完全免费的

26、,也不需要授权,WISHBONE的规格可参考 下列网址: HYPERLINK /wishbone.htm%ef%bc%8c%e8%80%8c /wishbone.htm,而 OPENCORES 中的项目,若是采用 WISHBONE 作为总线的接口,便会有一个wbc(WISHBONE Compliant Core)的标志,以兹识别。WISHBONE采用MASTER/SLAVE的架构,数据的传输都是从MASTER端开始,SLAVE 端接收,但是MASTER端跟SLAVE端的连接方式共有4种:Point-to-point, Data flow, Shared bus, Crossbar switch

27、,我们用图5来表示。就m二诧IP GOREPoint-to pointAEBOHE 提OREIFHI 置星Data flowIIrXfewlSHBoNl连接 IP模块的方式I 顽 I I 茹Shared busC从图5中可以看出,在WI浩噩携规麒it羸之间的沟通方式都是采用相同的MASTER/SLAVE结构,但是IP跟IP连接的方式就可视需要选择4种中的任何一种,这种弹性是跟一般的总线规格比较不同的地方。WISHBONE尝试以一种简单,但是有弹性的方式提供一个SOC总线所需要的功能,不过 目前WISHBONE在市场上的可见度并不高,反而在OPENCORES中使用的比例就高很多,这 大概是因为它

28、本身是免费且完全开放使用的缘故。接下来我们会把重点放在处理器的模块,因为这会与系统结构跟软件息息相关,在OPENCORES中,较完整而且跟WISHBONE兼容的处理器设计首推OpenRISC 1000项目,这个 项目包含了完整的软硬件架构,在架构方面,OpenRISC 1000架构预计提供一个32/64-bit的RISC 处理器设计,目前整个架构的规格已经完成,而OpenRISC 1200是目前第一个采用OpenRISC 1000规格设计的32-bit处理器,目前大致上也已经完成,它们的关系如图6所示。图6 OpenRISC架构在软件方面,目前在系统移植工具方面,包括GCC,GNU Binutils, Newlib以及GDB等 工具都已完成,而且在Linux上也有OpenRISC 1000的仿真器可以使用。在操作系统方面,目前 已有Linux、RTEMS可以在OpenRISC 10

温馨提示

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

评论

0/150

提交评论