电子电气架构 --- SOC设计流程及其集成开发环境
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。
老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:
周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过往,近况不该旧人知,过往不与新人讲。纵你阅人何其多,再无一人恰似我。
时间不知不觉中,来到新的一年。2025开始新的忙碌。成年人的我也不知道去哪里渡自己的灵魂,独自敲击一些文字算是对这段时间做一个记录。
片上系统(SOC——SystemOnaChip)是指在单芯片上集成微电子应用产品所需的全部功能系统,其是以超深亚微米(VDSMVery Deep Subnicron)工艺和知识产权(IP——Intellectual Property)核复用(Reuse)技术为支撑。
SOC技术是当前大规模集成电路(VLSI)的发展趋势,也是世纪集成电路技术的主流,其为集成电路产业和集成电路应用技术提供了前所未有的广阔市场和难得的发展机遇。SOC为微电子应用产品研究、开发和生产提供了新型的优秀的技术方法和工具,也是解决电子产品开发中的及时上市(TTM——Time to Market)的主要技术与方法。
片上系统(SOC)引入导致嵌入式系统的设计方法变革
就目前现状而言,若以嵌入式系统所采用的核心器件——处理器进行划分,嵌入式系统可以分为三种类型:
-> 基于微控制器(MCU)的嵌入式系统;
-> 基于信号处理器(DSP)的嵌入式系统;
-> 基于微处理器(MPU)的嵌入式系统。
其中基于MCU的嵌入式系统是一种低端嵌入式系统,这种系统共同的特点是系统运行速度低、数据处理能力弱和存储空间有限(K级),因此只适合于低端的电子产品;基于DSP的嵌入式系统是中低端嵌入式系统,这种系统共同特点是系统运行速度较高、数据处理能力强,但是存储空间也是有限的(K级M级);基于MPU的嵌入式系统通常可以分为两种类型:基于CISC架构微处理器的嵌入式系统和基于RISC架构微处理器的嵌入式系统。
其中,CISC架构微处理器通常是由x体系结构进行嵌入应用扩展而获得一种类型的嵌入式处理器;RISC架构嵌入式微处理器可以分为三大体系结构:arm体系结构、PowerPC体系结构和MIPS体系结构。基于这三大体系结构的嵌入式处理器品种繁多,功能也各异。但基于此类处理器的
嵌入式系统共同特点是运行速度高、数据处理能力强、存储空间足够大(G级),因此是一种高端的嵌入式系统。
无论是低端、中端或高端嵌入式系统,其经典的设计方法仍然是一种板级电子系统设计方法:首先,根据嵌入式系统的设计要求,并且按一定的设计规则,把整个嵌入系统划分成具有特定功能的若干个功能模块,如处理器模块、信号采集模块、执行机构控制模块等;然后,根据系统模块划分的结果,选择现成已商品化的模块或自行研制各功能模块;最后,把这些模块组合成一个完整的嵌入式系统。随着集成电路技术的发展和嵌入式系统小型化和微型化等方面要求,板级电子系统设计已经开始出现如下几个方面的变化:
(1)嵌入式系统的核心器件——处理器(包括MCUDSP和MPU等)已经开始向单芯片系统方向发展。例如经典8051系列微控制器已经从原来只有简单的并行I/O和串行接口(UART)发展到具有并行I/O、多UART接口、红外线传输、A/D转换器、D/A转换器、模拟比较器、可编程模拟信号放大器、滤波器、PWM等的可编程片上系统(SOPC)型MCU芯片,即只需要极其少量的外围器件就可以完成一个具有特定功能的嵌入式系统的设计工作;
(2)嵌入式系统的核心器件——处理器(包括MCUDSP和MPU等)已经开始向平台级芯片方向发展,目前所推出的高档嵌入式处理器,无论是基于arm体系结构、PowerPC体系结构还是基于MIPS体系结构的高档嵌入式处理器,在单芯片上不仅具有各种功能的外围接口,而且通常内置有RISC协处理器(例如RISC微控制器数字信号处理器等),同时还具有测试和自开发接口,因此完全可以把其认为是一种硬件平台级芯片,这样使得嵌入式系统设计与开发重点由板级系统设计转到芯片级系统设计;
(3)嵌入式系统的核心器件——处理器(包括MCUDSP和MPU等)已经向高处理速度方向发展,从而使板级电子系统的PCB设计难度增加,设计重点不仅是PCB版图设计,更重要的是电磁兼容性和系统可靠性设计。由此可见,由于嵌入式系统的核心部件——处理器向片上系统(SOC)发展板级设计工作量逐渐减少,未来的嵌入系统的发展的重点将从板级电子系统设计转到芯片级电子系统设计上(即转移到片上系统设计上)。因此,基于片上系统(SOC)设计方法必将成为未来嵌入式系统的发展主流;
对于一般的嵌入式系统设计者来讲,尤其是国内的嵌人式系统设计者来讲,基于片上系统(SOC)的设计方法还是主要停留在板级电子系统设计方法层次,即利用已经推出的商用SOC芯片进行板级电子系统设计。这主要是由于设计工具资金集成电路工艺等方面的限制所致,但是由于近年来多晶圆(MPW)项目和CPLD/FPGA技术的发展,尤其是可编程片上系统(SOPC——SystemonaProgrammablechip)芯片的出现使得一般的系统设计者进入芯片级电子系统设计成为可能。自从1999年出现第一个可编程片上系统(SOPC)器件以来,已经有众多可编程器件供应商推出了具有自己特色的可编程器件,最为典型的是世界上两大可编程器件供应商——Xilinx公司和Altera公司在FPGA/CPLD基础推出的系列可编程片上系统器件。其中Xilinx公司先后推出的可编程片上系统器件有Virtex系列VirtexE系列、VirtexII系列、VirtexPro系列、Spaxtan系列、SpartanII系列等;Altera公司先后推出的可编程片上系统器件有APEX系统、APEX II系列、Mercury系列、Excalibur系列、Stratix系列、Cyclone系列等。每个系列器件都有多种产品,以适用于不同的应用要求。因此,对于国内一般的系统设计者来讲,基于可编程片上系统(SOPC)器件的嵌入式系统设计将是进入芯片级电子系统设计的敲门砖。
那么,从板级电子系统设计到芯片级电子系统设计转变将导致哪些方面的变化?主要表现在如下几个方面:
-> (1)在设计描述工具方面,传统的板级电子系统设计主要采用电路原理图和元器件外形封装图作为设计描述语言工具而现在的芯片级电子系统设计主要采用文本方式的硬件描述语言(HDL——Hardware Description Language)作为设计描述语言工具
-> (2)在设计流程方面板极电子系统设计主要经历电子系统原理图设计与仿真、印刷电路板(PCB)设计与仿真分板(包括信号完整性分析、电磁兼容性分析等)等二个阶段,而芯片级电子系统设计通常需要经历系统级设计与仿真、算法级设计与仿真、寄存器传输级(RTL)设计与仿真、逻辑综合与验证、版图设计综合与验证等个阶段;
-> (3)在软硬件协同设计方面,板级电子系统设计所采用的方法是先进行硬件系统设计后再进行软件系统设计的方法,难以实现软硬同步设计或协同设计,而芯片级电子系统设计可以比较容易实现软硬件同时设计或协同设计;
-> (4)在设计实现方面,板级电子系统设计主要基于具有特定功能的集成电路器件,而芯片级电子系统设计主要是基于具有特定功能的电路模块——知识产权核(IP核)。因此,板级电子系统设计与芯片级电子系统设计无论是在设计方法上还是在设计工具方面都发生了较大的变化。
随着现代信息技术的发展,电子产品生命周期越来越短,特别是电子工业技术不断发展,基于深亚微米和超深亚微米的超大规模集成电路技术的片上系统(SOC)芯片需求日益扩大,传统的板级电子系统设计方法已不能适应产业界对电子产品需求。因此,基于知识产权(IP)核复用的芯片级电子系统设计方法将成为嵌入式系统设计的主流方式。基于可编程片上系统(SoPC)的设计流程基于可编程片上系统(SOPC)的芯片级电子系统设计主要有两大支撑点:可编程片上系统器件所能提供的片上资源和可复用IP核库所能提供的IP核资源。
其中可编程片上系统器件所能提供的片上资源是由集成电路工艺技术发展决定的,对于系统设计者来讲,应根据设计要求尽量选择合适的器件;可复用TP核库所能提供的IP核资源需要通过系统设计者自行建设。在基于SOC的电子系统设计中,针对各类专门技术、专门应用、专门工具、专门生产工艺、专门产品的IP资源库的建设和共享已形成一种规范,贯穿在系统设计的全过程。图1为典型的基于IP核库的片上系统(SOC)设计流程:
从图可以看出,在基于可编程上系统(SOPC)的嵌入式系统设计流程中,除了需要强有力的EDA设计工具支持外,离开充分的资源库的支持,可以说是寸步难行,并且必将失去竞争力。从总体上讲,各个层次的IP库和EDA工具是芯片级电子系统设计者必备的两翼,可选的IP核库资源是一种设计者能力的表征。图2为芯片级电子系统设计中自顶向下设计方法的流程中所依赖的库支持说明。
在片上系统(SOC)设计流程中的软硬件协同设计
在片上系统(SOC)的设计流程中,除了依赖强有力的IP核库和先进的EDA(电子设计自动化)工具支持外,与传统专用集成电路(ASIC)设计流程最显著的区别在于——软硬件协同设计。图3展示了软硬件协同设计的一般流程,凸显了这一设计方法上的创新与突破。
在软硬件协同设计的过程中,传统的硬件描述语言(如VHDL、Verilog HDL)和软件设计语言(如C/C++)已难以满足这一新兴设计方法的需求。为此,必须引入新的系统级描述语言,以更好地支持软硬件协同设计。
基于可编程片上系统(SOPC)的集成设计环境
片上系统(SOC)设计所需的EDA工具,从硬件设计角度来看,在设计流程的前端与ASIC设计并无太大差异。然而,从整个芯片设计的宏观视角出发,这两种类型的芯片设计存在显著区别。这是因为,在SOC设计中,通常包含微处理器,所设计的系统级芯片必须与设备驱动程序、操作系统或嵌入式实时操作系统进行接口,同时还需要应用程序来完成数字计算、信号处理变换、控制决策等复杂功能。
因此,在设计的前期阶段,需要进行软硬件协同设计,以明确哪些功能应由硬件实现,哪些功能应由软件实现,并进行合理的功能划分。在设计的中后期,则需进行软硬件协同验证,即将软硬件设计置于一个虚拟的集成环境中进行仿真验证,以确保硬件性能达到设计目标,软件功能满足设计要求。
基于可编程片上系统(SOPC)的芯片级电子系统集成设计环境
根据可编程片上系统(SOPC)的设计流程和软硬件协同设计的一般流程,本文提出了基于可编程片上系统(SOPC)的芯片级电子系统的集成设计环境(如图所示)。此集成环境是一种典型的软硬协同设计集成环境(或平台),由两个不同层次、不同功能的EDA集成设计环境组成。
第一层次的EDA集成设计环境是SOC系统级集成设计环境,主要用于完成嵌入式系统的系统级设计。首先,需要根据客户的需求进行系统的功能定义和性能评估,以确定系统规格。其次,根据已确定的系统规格,运用系统级描述语言(如C/C++或System C等)进行系统设计描述与设计验证,以确保所定义的系统规格在功能上可以实现。再次,在验证了系统规格的功能可行性后,需要进行系统软硬件功能划分,以明确哪些功能由软件系统实现,哪些功能由硬件系统实现,哪些功能需要软硬件协同完成。对于既可通过软件系统实现也可通过硬件系统实现的功能,还需进行性能与成本的评估。最后,对于已确定的硬件系统功能,还需进行芯片与PCB(印刷电路板)功能的划分,以明确哪些功能可在芯片上实现,哪些功能只能在PCB上实现。
第二层次的EDA集成设计环境:SOC硬件与软件系统集成设计
第二层次的EDA集成设计环境,即SOC(系统级芯片)硬件系统集成设计环境和SOC软件系统集成设计环境,主要用于完成嵌入式系统的软硬件系统设计。在系统级设计的功能划分基础上,SOC的硬件系统设计和软件系统设计并行进行。
在硬件系统设计中,通常经历多个设计阶段:首先是行为描述与验证,包括硬件系统的系统级、算法级、寄存器传输级的行为描述与仿真验证;接着是逻辑综合与验证,以及可测性设计综合与逻辑生成;然后是器件适配与仿真验证,最后是器件物理编程与物理验证,以及版图生成与验证。其中,前几个设计阶段是基于SOPC(可编程片上系统)的硬件系统设计流程。
在软件系统设计中,也经历了一系列阶段:软件系统编辑、软件系统编译、软件系统仿真调试,以及软件系统编程等。
在软硬件系统设计过程中,为了确保系统的性能价格比达到最优,需要不断进行软硬件协同设计。通常在硬件系统行为描述与仿真之后,就可以将所设计的硬件系统与软件系统置于虚拟器件的软硬件协同仿真验证环境中,以验证硬件系统集成的系统所能达到的功能、性能、成本等,从而使得所实现的芯片级电子系统的性能价格比达到最优。
基于可编程片上系统(SOPC)的嵌入式系统集成设计环境是一个相当复杂的集成EDA开发环境。常见的可编程片上系统集成化EDA开发套件,如Altera公司的Quartus II系列EDA工具套件和Xilinx公司的ISE.x系列EDA工具套件,虽然储存集成化程度较高,但也难以达到理想中的集成化程度。因此,系统设计者需要根据现有的商用化EDA工具来构建这样的集成设计环境。有理由相信,在不久的将来,将会推出类似的集成EDA工具环境,而片上系统(SOC)正是嵌入式系统的发展方向。
嵌入式系统的核心:微处理器与SOC的发展
嵌入式系统的核心部件是微处理器。随着集成电路技术的发展以及电子产品及时面市的要求,微处理器(包括微控制器、数字信号处理器、嵌入式处理器)正向着单芯片系统方向发展。这使得基于片上系统(SOC)的电子系统成为嵌入式系统的发展方向和主流。
目前,国内的基于片上系统(SOC)的嵌入式系统设计大都停留在板级电子系统设计水平。然而,随着可编程片上系统(SOPC)器件的应用和发展,相信在今后的若干年内,基于SOC的嵌入式系统设计会逐渐过渡到芯片级电子系统的设计水平。由于芯片级电子系统设计方法与板级电子系统设计方法有着本质的区别,因此,对于系统设计者来说,了解与掌握芯片级电子系统的设计流程以及集成设计环境是至关重要的。
为此,本文以图示方式直观地给出了基于可编程片上系统(SOPC)的芯片级电子系统设计流程和集成设计环境,全面展示了芯片级电子系统所涉及到的问题。通常,需要采用System C(或其他类似语言)才能完成软硬件协同设计。这种设计通常是从一个给定的系统任务开始的,通过有效地分析系统任务和所需要的资源,采用一系列的变换方法,并且遵循特定的准则,自动生成符合系统功能要求和实现代价约束的硬件和软件框架。
这种全新的软硬件协同设计思想需要解决许多问题,包括系统级建模、系统级描述语言、软硬件划分、性能评估、协调综合、协同仿真以及协同验证等。
搁笔分享完毕!
愿你我相信时间的力量
做一个长期主义者
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900030.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!