"); //-->
用SoC实现视频图形引擎功能的研究
摘要:结合实际方案对目前国内研究热点的SoC设计进行一些讨论,主要对系统集成、算法与系统芯片结构、可测试性设计等方面进行一些相关探讨。采用基于Altera的SOPC系统级芯片XA10,实现图形引擎功能;利用SoC平台化设计,以达到快速进入SoC设计领域的目的;希望从用户角度入手,逐步深入SoC的IP集成特性和AMBA技术以及软硬件联合设计等。
关键词:SOPC可编程系统芯片 视频图形引擎机 RTOS实时操作系统
引言
目前,国际上几乎所有的半导体厂商及其相关领域的高科技公司都在进军SoC及其应用产品市场,像Atmel、Xilinx、Altera、Triscend、IDT、Genesis、Cygnal、Cypress等;而国内,由于在原来分立标准器件的IC设计时代处于落后的状况,因此迫切希望在IC设计的第3次革命来临的时期赶上来。但是由于国内基础薄弹,工艺线缺乏,目前所做的研究,以偏于理论性的研究和构架的居多,而实际研究经验相对较少。可编程匣可配置SoC技术的出现,使我们有机会进入构造芯片技术结构的领域。因此我们迫切要做的事就是,从事实际SoC应用产品的开发研制,进行电子信息产品核心SoC技术研制开发与实现。在这些研究实际工作中,逐步深入开展关于SoC的EDA工具算法研究与实现以及SoC核心技术IP的研究与实现。而目前可编程的SoC芯片及其开发平台都提供了较理想的SoC技术应用的开发工具套件。这些套件具有了一般的编译、仿真、调试及验证功能,同时还针对不同的应用,提供了丰富的IP软核。因此,借助这些工具和芯片所提供的技术和方法,可很容易进入SoC设计的应用领域。同时,系统集成可以说是SoC设计的真正意义所在和主要设计瓶颈。因此,我们针对实际应用的设计策略是,一开始就从系统方面考虑(当然在真正的SoC设计中必须考虑很多工艺集成的问题,但主要可以靠IP及代工支持来完成),进行一些实际SoC应用项目设计研究探索。
1 SoC平台的概念及意义
SoC设计最主要的一个支撑技术是超深亚微米IC设计技术。可以说,它具有专用集成电路ASIC设计的复杂程度,但又和ASIC不完全一样。它是以超深亚微米IC设计技术为基础,是建立在超深亚微米IC设计技术上的系统级设计,是从半导体工程师到电子系统整机工程师的转手。要实现这一转变,就必须要有SoC平台和EDA的支持(并且现在合同外包,代加工业发展迅速,IP新经济模式等无不顺应了这一转变需求)。
我们要想快速地进入SoC设计行业就必须从这两个角度入手。目前,SoC平台主要有CSOC、SOPC、EPGA等。为了进一步明确SoC平台的概念,有必要首先搞清楚SoC的内涵和外延。我们知道,SoC的内涵和外延很自然地必须包括:实现复杂系统功能的VLSI;采用超深亚微米工艺技术;使用1个或数个嵌入式CPU或DSP;具有外部对芯片编程的能力。根据这些基本的外延,很自然地可得到SoC平台的一些概念。其中CSOC称为可配置系统级芯片,一般包括1个处理内核、可编程逻辑阵列和其它一些通用组成部件。其应用主要以芯核为主。SOPC则可以是全部的虚据点核加上FPGA模块,像Altera的NIOS内核模块,而EPGA则是以FPGA为主的SoC平台。这3者都符合SoC的外延概念。都可以说是SoC的开发设计平台。这一市场中竞争的公司主要包括:Atmel、Quicklogic、Chameleon、Altera、Xilinx和Lucent等。利用这些现有的SoC平台,SoC芯片不仅可以具有灵活编程的优点,同时又具备系统芯片集成度高和价格低廉的优势。表现为:缩短开发的周期,减少开发费用;避免成本高昂的掩膜变更为重新投片;实现基于平台的设计;允许设计人员快速、低成本适应标准的变化、或增加面向特定或应用定制的功能块;在制造和质量控制过程中,允许软硬件验证协同进行;允许采用同一套掩膜设计多个不同功能的产品;允许将风险较大的元件设计到EPGA中,让某些功能在设计完成后才予以定型;在生产阶段改变产品特性或功能以延长产品寿命;容许在低端标准芯片中集成高端标准FPGA的功能,从而获得高利润。这种基于平台的设计,可以使设计人员仅仅通过制造工艺与内核的接口来局部地关心制造工艺,而对内核予以更多的关注。软硬件的协同可编程性,可以使设计人员更关注内核功能的设计,如对内核接口进行标记,而不必关注制造工艺和硬件诊断,这就更符合系统设计的目标和要求。
过去,SoC项目设计必须需要20人以上的工程师团阶,而现在由于软件工具和半导体技术,以及各个大公司所做的工作,使我们可以用一个很精简的团阶进行SoC设计;而且SoC设计一般都是基于FPGA、微处理器和存储器结构的,使得我们完全可以在SoC平台上进行SoC的初步设计。
2 研究开展
根据现有的IC设计水平和基础设施以及资金情况,必须很好地规划我们的SoC设计策略。就研究的形式而言,首先必须是基于平台的SoC设计,其次必须是应用引导为主的SoC设计,再次必须是多芯核片上总线的SoC设计,最后必须是以专用技术核心为主的IP式SoC设计。在研究过程中,必须利用好自己专用化的原有技术,达到满足自己系统要求的目标;同时结合实际项目的研究,根据“Today's PCB is tomorrow ASIC.”的经验,借鉴PCB时代的系统集成设计概念,进行SoC系统集成的研究实践。也就是说,首先是一个以系统集成应用的研究为主,然后逐步摸索SoC及EDA设计方法学和深化开展自主IP技术的过程中。而就研究的工程管理来说,有必要结合SoC的新概念设计,进行实际应用的再工程设计过程和比较性设计。这几点都是在进行SoC研究计划中所考虑的因素。
3 方案具体组成
根据前面平台设计的概念,我们采用的SoC为初步定型产品XA10。它具恶JTAG接口、PLL时钟、UART接口、计数器、看门狗、扩展存储器接口、中断控制器、调试测试跟踪器、256KB皂SRAM、128KB皂DPRAM、APEX20K多芯FPGA嚓錫及ARM922T核处理器等。初始皂系统芯片构成如图1所示。
由于塔SoC设计时,很多时候是一个算法与芯片结构、软硬件结合的系统设计,因此,完全有必要针对视频图形引擎的应用,结合逻辑组成框图来讨论这一问题。在视频流处理中,数据传输和处理是两个影响性能的关键部分(在视频图形引擎中,数据处理主要是图形数据产生,而很少涉及浮点数的图形处理,因此又可以分为视频图形显示控制、绘图填表充数据产生和传输数据)。
在我们的SoS方案中,将控制、状态处理采用基于ARM922T的实时操作系统来构成。也就是说,对于输入、输出等相关逻辑控制采用软件实现,绘图的最高一级也采用软件实现,这样不仅可以完全避开浮点运算的要求,而且还可以充分利用32位RISC处理器的高效率,提高整个视频图形引擎的性能,同时也使产品成本和竞争力得到大幅度的提高。而对于底层和中级的绘图,采用FPGA的硬件实现;对于视频的叠加和成帧处理,同样也采用FPGA的硬件实现。这样就从根本上解决了视频图形引擎的处理速度问题。有一点必须说明了的是,这是我们进行SoC设计的关键点,更是未来SoC定制生产时必须升级到专用电路的部分,或者说是我们具有自主知识产权的IP内核。开始时,会担心在芯片版图设计和微电子工艺方面的经验不足,没有进行过实际工艺过程,但在经过长期深入的调查研究之后,发现在市场上已经有完整的FPGA转化成ASIC的解决方案。现代EDA的迅速发展和面对SoC设计的重新构架,以及半定制ASIC的工艺列新和半导体生产工艺的迅猛发展,使我们消除了这种担忧。我们所关心的只是芯片的整体结构和系统构成优化,这同时也是SoC的诱人之处。在数据传输问题上,我们充分利用内嵌存储器和AMBA的片上总线体系。这样就完全可以实现没有总线速度限制的数据传输(这是SoC的一大优点,因为它从根本上解决了限制总线速度的因素,如串扰、地跳、反射和PCB焊盘等效电容等)。如此,我们就可以实现低成本、低功耗。这两点的实现都必须和实际的应用以及实际应用中解决方案紧密结合起来才有可能。 视频图形引擎机构成框图如图2所示。
①系统参数及绘图指令的接受。可以用FPGA实现数字总线的接收功能,但是对于完整总线,这是一个相当复杂的设计过程(也不属于项目重点组成部分)。因此,先采用专用外接芯片实现此功能,再根据经验用8KB的双口存储器(在SoC中)作为数据接收缓冲。
②系统控制器。采用支持实时操作系统的ARM922T(在SoC中)完成各种输入输出、中断响应控制,以及高级绘图指令和程序构架。实时操作系统采用μC/OS-II。
③字模及图例库。采用外部非易失性存储器加载到SRAM(在SoC中),因为要求2048×2048的笔划信号术语,根据屏幕大小至少需要24×24以上的点阵显示汉字(最好是有40×40或者72×72的汉字显示)。于是需要不是127个ASCII码和约200个汉字的字模库、大小接近200KB的存储容量,因此,采用嵌入式的SRAM来实现是不合理的。根据汉字及ASCII码的编码规律,我们决定采用解码方式实现。应用FPGA的高速和并行性来实现解码,使数字、文字等笔划视频信号的产生成为系统瓶颈。
④视频格式控制。在加载FPGA程序,提供实现其功能时的一些控制功能;可以初步实现多视频格式支持的功能;
⑤视频图形产生。主要是处理符合视频流格式的扫描数据流。采用FPGA(在SoC中)的方式实现,对来自笔划、简单图形与合成的视频进行图像扫描数据流的输出。
⑥显示时序控制。利用PLL和ARM922T的计数器及中断(在SoC中)来和一定的简单逻辑产生视频格式要求的时序,以达到各种控制和同步。
⑦视频叠加控制。利用FPGA(在SoC中)实现与外视频的叠加控制功能。在这里只做简单的前景和背景处理(即简单的叠加功能),不涉及剪裁、遮挡等三维图形问题;
⑧视频协议传输。实现视频流成帧和发送。采用一种图形传输协议来进行图形的传输,初步先采用专用芯片,以后再考虑升级为芯片内集成,一级传输缓存采用DPRAM来传输(在SoC中),如果系统要求用到二级缓存的话,可方便地实现VRAM接口。
4 设计的实际经验
在实际的设计过程中,以下几点值得注意。
(1)IP库的调查和库选择
有时候,我们会担心所选定的SoC平台会限制SoC设计。而实际上,我们在选用这一平台时,做过详细的IP库调查。我们所选用的IP核构是十分通用的IP核,比如ARM核,一些关键部件均由FPGA自主研制开发,因此其技术具有很大的通用性。而Altera是世界上典型的Fabless公司之一,其属下并没有生产线,所以其工艺参数也是通过代加工实现得到的。其生产厂台积电TSMC也将马上进驻上海,因此我们完全可以去掉这样的担心。
(2)算法与芯片结构
在我们所进行的SoC研究中,算法与芯片结构主要是从系统应用规划、视频处理速度要求、实现方便可行性以及VHDL编程实现结构优化等几个角度入手;同时结合所用FPGA的实际结构,进行算法与芯片结构的考虑。从相关系统应用核心算法出发,讨论其实现过程和性能比较。像底层图形库的绘制算法、反走样算法、多屏幕实时处理调度算法等等。
(3)软硬件系统设计
具有一个微处理器和可编程性是SoC的基本概念外延,因此很有必要在SoC设计中进行软硬件协同设计。软硬件协同设计可以说一直是个挑战,因为它既有SoC设计的灵活性,又有SoC设计中难以揣摩、充满变数的特征。而且它还涉及到硬件资源的规划和艇,甚至会关系到整个系统性能的实现。这一切无不要求我们必须从一开始就仔细地考虑这一问题。在实际研究项目中,我们采用片上操作系统COS(Chip Operating System),以求符合SoC设计中办IP特性(主要指灵活性、可继承性和可复用性等特性)。结合ARM922T芯核的实际体系结构、性能和指令结构进行软硬件系统设计,在各个模块之间进行通信、传输、控制等,实现设计的一体化。
(4)系统集成设计 在系统集成设计中,我们就所选用的IP核进行无缝连接系统设计,以及相关的可测试和低功耗管理设计,主要是通过各个模块的测试接口和模块来实现的,而低功耗管理主要是通过一些系统状态和各个模块间专用接口以及OCB的桥接控制等来实现。当然,由于我们选择的是平台设计概念,所以AMBA的桥接主要是采用Altera技术,主要工作综合各个IP可测试性、功率管理特性以及各个IP接口的设计。
5 总结
由于我国目前还是IC设计行业基础薄弱的国家,为了提高我们的IC(SoC)设计能力,做以下方面的总结:
①EDA工具。在本SoC设计项目中主要采用Altera的SOPC开发环境QUARTUS II,采用工业级的集成分析软件和PowerGaugeTM分析软件,并增强企业验证工具,同时集成配有PowerFitTM装配器,进行新的时间驱动布线。语言描述采用VHDL语言和C语言。
②HDL语言工具。本研究中采用VHDL语言,并且在低层上就强调其结构和传输连接上的性能;结合VHDL语言结构性好的特点,弥补其在系统设计时的缺陷(目前尚无一个完善的系统设计语言);采用自顶至下的模块化设计,强调详细的配置和接口标准化。
③IP技术。主要是各个IP的现有资源、接口、可测试性、规范化,像我们实际应用中ARM核的现有资源与接口、APEX20K的资源规划、实际系统要求等。
6 结论
*以实际系统应用为主切入SoC设计,是符合当前SoC设计和我国实际情况的研究方式。
*系统集成IS是SoC设计的真正内涵。
*采用SoC平台概念,可以快速进入SoC设计领域。
*特有的应用IP核,是SoC设计未来生命的关键所在。
*系统集成IS设计方法、EDA等基础讨论更是SoC设计的意义所在。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。