SoC设计与视频图形引擎机
Ofweek 2021-09-13

  引言

  目前,国际上几乎所有的半导体厂商及其相关领域的高科技公司都在进军SoC及其应用产品市场,像Atmel、Xilinx、Altera、Triscend、IDT、Genesis、Cygnal、Cypress等;而国内,由于在原来分立标准器件的时代处于落后的状况,因此迫切希望在IC设计的第3次革命来临的时期赶上来。但是由于国内基础薄弹,工艺线缺乏,目前所做的研究,以偏于理论性的研究和构架的居多,而实际研究经验相对较少。可编程匣可配置SoC技术的出现,使我们有机会进入构造芯片技术结构的领域。因此我们迫切要做的事就是,从事实际SoC应用产品的开发研制,进行电子信息产品核心SoC技术研制开发与实现。在这些研究实际工作中,逐步深入开展关于SoC的EDA工具算法研究与实现以及SoC核心技术IP的研究与实现。而目前可编程的及其开发平台都提供了较理想的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(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设计的意义所在。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
热门推荐
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • ARM Cortex系列处理器知识点汇总

    最近因为要为芯片选定核,所以就在了解哪些核合适且性价比好,这是一个需要结合产品各类技术、市场分析的活,看似简单却还是需要一些储备的,今天选了一篇ARM Cortex系列的科普文章与大家分享。 众所周知,英国的ARM公司是嵌入式微处理器世界当中的佼佼者。AR

    05-11
  • 你的CPU属于哈佛结构还是冯诺依曼结构?

    现代的CPU基本上归为冯诺伊曼结构(也称普林斯顿结构)和哈佛结构。 冯洛伊曼结构就是我们所说的X86架构,而哈佛结构就是ARM架构。一个广泛用于桌面端(台式/笔记本/服务器/工作站等),一个雄踞移动领域,我们的手持设备(平板\手机用的大多就是他了)。 01

    05-10
  • 如何批量修改MCU封装管脚定义

    在做产品开发时,为了缩短研发周期,我们一般都是直接找来参考设计做参考。这些参考资料要么是来自原厂的,要么是来自方案商的。  接触过这么多的参考设计资料,发现大部分的资料都有一个通病,就是不少MCU的PIN脚定义都只是标出IO口的定义,其它复用​​​​功能

    05-08
  • MCU为什么要消抖动

    简单的说,进入了电子,不管是学纯模拟,还是学单片机,DSP、ARM等处理器,或者是我们的FPGA,一般没有不用到按键的地方。按键:人机交互控制,主要用于对系统的控制,信号的释放等。因此在这里,FPGA上应用的按键消抖动,也不得不讲! 一、为什么要消抖动 在

    05-07
  • 51单片机的ISP下载知识

    本文详细介绍了串口、51单片机的ISP下载等基础知识,已经学过单片机的也可以看看,加强一下对这方面的了解。 串口 串行接口简称串口,也称串行通信接口,是采用串行通信方式的扩展接口。 我们比较熟悉的USB接口,全名通用串行总线(Universal Serial BUS),就

    05-06
  • 硬件开发如何选择合适的MCU

    点击上方关注我们! 我在做硬件开发时,如果遇到的是一个新产品,新项目,之前没有做过的,没有任何的经验,在选MCU时,我一般是这样操作的。 首先,根据产品的需求,整理出一份硬件规格。比如,电源管理,传感器接口,人机交互接口等。 然后,整理出整个原理

    05-06
  • 单片机的功耗怎么算的?

    单片机的功耗是非常难算的,而且在高温下,单片机的功耗还是一个特别重要的参数。暂且把单片机的功耗按照下面的划分。 暂且把单片机的功耗按照下面的划分。 1.内部功耗(与频率有关) 2.数字输入输出口功耗 2.1输入口 2.2输出高 2.3输出低 3.模拟输入口功耗从

    05-07
  • 嵌入式工程师必备工具:I2C和SPI总线协议

    IIC vs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求

    04-30
  • 嵌入式面试注意事项

    找工作也是一门技能,有的人很快就找到自己喜欢的工作,有的人找了很久也没找到合适的工作。 下面给大家分享几点找工作过程中存在的“潜规则”内容。 1、面试的本质不是考试,而是告诉面试官你会做什么 经验不够的小伙伴特别容易犯的一个错误,不清楚面试官到

    04-29
  • 为什么需要RTOS?

    很多单片机初学者都是从裸机开始的,裸机确实也能开发出好的产品,但作为一个嵌入式软件工程师,如果只能用裸机开发产品,那肯定是不够的。 要从裸机的思维转变到RTOS的思维,其实需要一个过程,而且开始的一段时间会很痛苦。但过一段时间理解了一些内容,能

    04-28
  • 使用RTOS的8个理由

    嵌入式系统中,有很多方式实现任务调度。功能有限的小系统中,无限循环足够实现系统功能。当软件设计变得庞大且复杂时,设计师应该考虑使用实时操作系统。 下面给大家分享使用RTOS的8个理由: 1.硬实时响应 基于优先级抢占的RTOS,根据任务的实时需求,执行优

    04-26
  • 单片机延时程序,Keil C编译器实现

    应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动 DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而

    04-26
下载排行榜
更多
广告
X
广告