浙江大学硕士学位论文
1.2.1视频编解码芯片开发方法
视频编解码芯片的设计研究涉及到超大规模集成电路(Very Large Scale Integration, VLSI)设计和现场可编程门阵列(Field Programmable Gate Array, FPGA)设计两个方面的技术。随着VLSI工艺技术的发展,器件特征尺寸越来越小,芯片规模越来越大,数百万门级的电路可以集成在一个芯片上。同时随着FPGA工艺的成熟,大容量FPGA的出现为视频处理等大规模芯片的设计提供了良好的开发和仿真验证平台。
专用集成电路(Application Specific Integrated Circuit, ASIC)是指面向特定用户要求和特定电子系统的需要而设计制造的集成电路。ASIC的特点是面向特定用户的需要,其品种多、批量少,要求设计和生长周期短,它作为集成电路技术与特定用户的整机或系统技术紧密结合的产物,与通用集成电路相比,具有体积小、重量轻、功能强、保密性强、成本低等优点。目前ASIC设计主要有CPLD(复杂可编程逻器件)和FPGA (现场可编程逻辑阵列)两种方式。它们都具有用户现场可编程特性、都支持边界扫描技术,而在集成度、速度以及编程方式上具有各自的特点。一般来说,CPLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至20-30多个组合逻辑输入。而FPGA的一个LUT只能处理4输入的组合逻辑,因此,PLD适合用于设计译码等复杂组合逻辑。但FPGA的制造工艺决定了FPGA芯片中包含的LUT和触发器的数量非常多,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于PLD。所以如果设计中使用到大量触发器,那么使用FPGA就是一个很好选择。
高层次设计阶段是与具体生产技术无关的,即与工艺无关(Technology Independent)。一段HDL代码可以通过逻辑综合工具综合为一个FPGA电路,也可综合成某一生产工艺所支持的专用集成电路,即ASIC电路。HDL原代码对于FPGA和ASIC是完全一样的,仅需更换不同的库,重新进行综合即可。此外,由于工艺技术的进步,需要采用更先进的工艺时,也可利用原来所书写的HDL代码。
1.2.2 ASIC设计流程
视频编解码器ASIC的设计流程
[21].
致,可分为以下几个步骤:
通常称为前段设计 与具体的实现工艺无关 [20].
如图 1-1所示,与绝大部分的ASIC设计流程基本一
测试生成 布局布线 行为级描述 门级仿真 参数提取 行为级优化 RTL级转化 逻辑优化 后仿真 逻辑综合 制版流片 图 1-1视频编解码器ASIC的设计流程
9
浙江大学硕士学位论文
行为级描述——在完成系统性能分析与功能划分的基础上,对于各个电路功能模块,用HDL语言(Verilog HDL/VHDL)来进行行为级(Behavior Level)描述。
行为级优化与RTL级转化——进行行为级算法优化与功能仿真,同时完成向寄存器传输级(RTL:Register Transport Level)描述的转化。现有的EDA工具只能接受RTL级描述的HDL文件进行自动逻辑综合,因此必须进行RTL级转化。SYNOPSYS提供的Behavior Compiler就是专门完成行为级优化与RTL级转化的工具。
逻辑综合与逻辑优化(Logic Synthesis & Logic Optimization)——选定工艺库,确定约束条件,将RTL级的HDL代码映射到具体的工艺加以实现。在进行逻辑综合与优化之前必须得到包含相应工艺参数的逻辑综合库的支持。在设计一个系统时,总有对应的设计指标,典型的如时钟频率、芯片面积、端口驱动能力等,自动综合工具将这些设计指标作为综合过程的约束条件,在给定的包含工艺参数的综合库中选取最佳单元,实现综合过程。
门级仿真——在EDA设计的每一个阶段都需要模拟仿真,以便尽早发现并改正错误,保证设计过程的正确性。与行为级仿真和RTL级仿真不同的是,完成逻辑综合后的门级仿真包含了门单元的延时信息,因而门级仿真需要相应工艺的仿真库的支持。
测试生成——测试分为功能测试(Function Test)与制造测试(Manufacture Test)两部分。功能测试就是为了检验线路的逻辑,时序等是否正确。EDA设计过程的每一步模拟仿真都是围绕电路的功能进行的,因而都属于功能测试的范畴。制造测试则是针对半导体工艺而设计的,目的是实现高的故障覆盖率。对于较复杂的时序电路而言,高故障覆盖率的测试向量必须借助于测试综合才能完成。在ASIC设计过程中必须兼顾功能测试与制造测试。
布局布线——这一步借助于版图综合的自动布局布线工具,在相应的工艺版图库支持下完成,布局布线通常称之为后端设计。
参数提取——在前面完成逻辑综合所产生的门级网表文件中,已经包含了门级单元本身的工艺参数,完成版图综合后,由于布局布线都已确定,可以从版图进一步提取出连线电阻,连线电容等分布参数。
后仿真——将上一步中提取的分布参数再反标到原来的门级网表中,进行包含门延,连线时延的门级仿真。这一步主要是进行时序模拟,考察在增加连线时延后,设计的时序是否仍然满足设计要求。如果不能满足,通常需要回到第三步重新确定约束条件,进行优化。有时候也可能要回到第二步,从算法实现上加以调整。
制版流片——在利用EDA工具完成设计后,交付半导体厂商进行投片生产。
1.2.3 FPGA与ASIC设计
FPGA是一种包含很多相同的逻辑单元的集成电路,内部有许多触发器和分布的布线资源。逻辑单元通过连线阵列和可编程开关实现互联。用户在设计时规定逻辑单元实现的逻辑函数,并且选择性的接通互联阵列的连线,从而实现自己的设计。不同的FPGA产品的逻辑单元结构有非常大的不同。FPGA设计软件的功能非常强大,能自动的对用户输入的电路图,或硬件描述语言程序进行翻译,然后进行布局布线,利用设计库中大量的复杂宏函数帮助用户优化设计。
近年来,各个厂家普遍采用0.25、0.13甚至 0.09μm的CMOS工艺,继续向高密度、大容量发展。FPGA的规模发展到1000万门以上的水平。I/O接口采用模拟电路达到1~10Gbps甚至更高的接口数据传输速率,片内时钟可以达到400MHZ以上。FPGA的低端产品在工艺和结构上创新,性能的提高和价格的降低都是令人惊叹的。Xilinx目前是世界上最大的FPGA供应商之一。Xilinx 的Virtex-IV是其标志性的高端产品系列,它使用了90nm 的制造工艺,使得在创造了高性能与高密度的同时,功耗却减半,全片高达500 MHz的运行
10
浙江大学硕士学位论文
频率,I/O接口方面也由于使用了新技术,可以支持500MHZ以上的数据传输速率。
FPGA厂商一般为用户提供非常丰富的软件支持,如Xilinx 公司的ISE 系列就是其FPGA产品的EDA软件包,提供设计输入、综合、实现和验证以及板级集成。除电路图外还支持状态机产生、IP核和DSP设计,包括定时分析器,约束编辑器等等非常强大的功能来辅助用户设计。
随着半导体工艺技术的发展,由0.18μm到0.09μm ASIC的系统速度也从120MHz提升到300MHz,但ASIC的设计成本和技术风险愈来愈高,并且从设计方案到ASIC产品商业应用的周期也更长。为适应市场的快节奏,减少前期的设计成本、回避设计风险,FPGA是一个最好的选择。它将原来ASIC设计修改周期从至少两个月,减少到几分钟到几小时之间,尤其适合产品的前期开发和中小批量产品的应用;并且FPGA设计成功后,可非常方便地向ASIC转化。在ASIC设计中,FPGA可起到原型设计及验证的作用,在做原型设计及验证作用
[22].
的FPGA的模型与设计的ASIC芯片的功能模型应当是相同的。
[23].
FPGA在系统验证时带来的益处有: ? 对逻辑功能进行全面验证
? 对部分电路进行时序验证,发现潜在的问题 ? 可以进行逻辑综合过程验证
? 加快设计流程,减少重新制版几率,降低成本 ? 加快系统厂商的系统产品开发 ? 方便系统厂商对逻辑功能全面确认
1.2.4视频编解码器体系结构
视频编解码芯片有两种最基本的体系结构:可编程结构和专用结构。在综合了二者的特点基础之上,还有一种混合结构。以下对它们分别进行介绍。
[17].
1) 可编程结构
可编程结构是一个通用平台,提供灵活的各种算法实现可能性,其实质是设计一个执行
[19].
指令的硬件核(如RISC核),通过在其上运行程序实现解码功能。它灵活,适用范围广,能对不同的算法提供支持,易于升级,但是它为了提供多功能解码支持,必须增加硬件电路的复杂性,从而导致电路功耗的增加。对于图像格式比较大的码流,为了保证解码任务的适时性,必须提高软件的并行度,这给编制程序带来了很大困难。
随着计算机硬件的发展,当前的计算机运算处理功能非常强大,但是考虑到视频图像处理运算的特殊性,一些算法在通用的处理器上并不能得到有效的实现。在可编程结构中,需要增强处理器的某些功能来适应面向视频图像处理的特殊算法。
? 子字并行性:有的图像算法对数据处理精度要求不高,因此可以在ALU中并行处理
多组数据。
? 超长指令字:在一条指令中实现多个操作,由译码器实现指令的调度、执行。 ? 协处理器:对于特殊的功能,用硬件实现,在通过软件对其输入、输出进行控制,
比如对变长码的处理,一般的可编程多媒体视频处理器均有独立于CPU的VLD处理模块。
? 存储结构设计:由于视频图像处理的数据量非常大,存储结构对系统的整体性能影
响相当大。
[25].
2)专用结构
专用视频解码器结构不具备可编程性,它是针对某个算法或某一类算法而设计和优化的
11
浙江大学硕士学位论文
硬件电路,每个处理单元可以最大程度的与算法特点相匹配,视频解码的各种任务映射到不同硬件处理单元上,针对特定的算法进行系统结构和子模块优化,可以最大程度地与算法特点相匹配。专用视频解码器结构与可编程结构相比,其硬件消耗小,处理速度高,但它的可扩展性差。采用专用芯片的视频系统的优点是速度快,一旦专用芯片设计成功,其生产成本相对较低,而且实现容易,控制简单,适合大规模生产。缺点是不易修改,而且专用芯片设计成本高,设计周期也较长。
虽然随着计算机技术的发展,可编程结构将会是视频处理体系结构的发展趋势,但是专用的视频处理结构由于功能单一,可以最大程度的优化结构,提高集成度,满足低功耗的要求。因此会在消费电子类和移动图像处理等对功能要求不高,但强调低功耗、低成本、高集成度的应用中得到广泛应用。专用图像处理器结构的SoC也有广泛的发展前景。
[26].
3)混合结构
如前所述,随着编码效率的提高和许多新功能的加入,视频编解码标准的算法变得越来越复杂,对运算的需求也越来越大。但在一些视频编码中,运算会主要集中在少数几个模块中,比如在MPEG-4中,最主要的运算任务集中于运动估计(ME)和形状编码(shape-encoding)部分,这两者占去了整体运算90%的复杂度。而对于较低的档次不考虑形编码的情况,运动估计对于运算的集中需求更是显著。其运算明显属于规则的底层任务,而且需要从帧存中读取大量的数据,对于这种情况,专用结构和片内缓冲区是非常重要的,这样可以减少数据传输和提高运算效率。而其他一些任务,比如DCT/IDCT, Q/IQ, 和运动补偿,因为也有许多规则运算,因此也可以使用专用结构,而可编程结构更适合系统中需求较少但是高层次的任务,比如系统控制等等。基于低功耗的DSP平台的软件方案应用于目前一些商用视频编解码芯片中,它们一般都有较高的延展性,可以满足未来多媒体丰富的功能,但是由于资源受限,在达到实时编解码的时候不得不使用快速算法,因此降低了质量。一些视频芯片使用了专用的硬件结构来获得低功耗和较小的成本,它的缺点是缺少对未来延展的潜力和开发成本
[18].
较高,因此,也有一些编解码芯片接收了两者的优点,产生了混合了软硬件的结构,这种结构在性能和延展性上取得了某种平衡。
混合结构将视频处理任务作软硬件实现上的划分。于是,它内部既有可编程核,用于处理复杂的高级任务,同时又有专用处理模块,处理中、低级任务。这种结构既有可编程的灵活性,又兼有了专用结构的功耗小、处理速度高等特性。图 1-2是一个混合结构的MPEG-4编码器的例子:
Program Data Bitstream Share RISC Cache DMA MEM IF RISC BUS Motion Estimator Motion Compensator Share Memory Texture Block Engine Bitstream Generator SHARE BUS DATA BUS 图 1-2混合结构MPEG-4编码器结构
在这个结构中,RISC负责系统的宏块级的流水安排,编码模式决定,运动矢量编码等等高层任务。其他硬件模块并行处理专用结构算法从而提高了编解码效率。所有的硬件模块
12
浙江大学硕士学位论文
都被集成在一块芯片中,系统编程需要的固件(Firmware)存储在片外的PROM等器件中等待调用。混合结构的系统的灵活性取决于系统任务软、硬件划分的情况。如果划分到软件实现的任务较多,且硬件实现的任务比较单一,那么系统的灵活性较好。
1.3 本研究的意义及论文主要内容
如前所述,如果要开发高性能的视频编解码器芯片,需要一整套的系统来支持这项庞大的工作。首先应该有一个优秀的开发验证平台,这个平台应该具有如下的特征来满足开发的
[59].
需要:
? 具有非常强大的可编程性
? 具有非常高的性能以满足视频开发越来越高的需求 ? 能够同时满足三种体系结构的开发需要
? 具有良好的兼容性,供不同的视频标准和不同的开发情况使用 ? 具有功能强大的软件和模块支持 ? 可以进行方便的测试和验证
? 有完善的对外接口,供数据交换和视频输入输出,并且使用方便 ? 在满足以上条件情况下尽可能低成本
本文基于上述的角度出发,提出了基于FPGA的高性能视频开发平台的设计,这一设计是在原有的MPEG-4编解码芯片开发系统的基础上开发设计的,满足了上述的优秀视频开发平台的基本特征,具有非常强大的性能,可以保证视频编解码器的顺利开发。 本文整体结构安排如下:首先是本文研究涉及的部分背景知识做一个介绍,接着介绍课题组在2003年开发的MPEG-4编解码芯片开发系统以及在其上进行的专用解码芯片开发和专用解码芯片的验证系统的开发。接着介绍了高性能视频开发平台的设计,包括了平台设计的目标和应用范围,平台的硬件系统设计和软件系统以及接口应用模块的开发,最后介绍了基于高性能视频开发平台开发验证的例子。最后是本文的总结与展望。 具体章节安排如下: 第一章是背景知识介绍。第一部分主要包括常用视频解码标准及其发展历程的介绍,第二部分介绍了视频编解码芯片的开发方法与流程,第三部分是本文的章节安排。
第二章是MPEG-4编解码芯片开发系统的介绍。第一部分对这个开发系统做了一个简单的阐述,包括了开发系统的性能指标,框架结构和重要模块的硬件设计等等;第二部分介绍了MPEG-4专用解码芯片的开发;第三部分介绍MPEG-4专用解码芯片的验证系统的设计;最后一个部分提出了这一开发系统的缺陷与不足。 第三章提出了高性能视频开发验证平台的设计。第一部分介绍了高性能视频开发验证平台的框架体系和优势;第二部分着重介绍了平台硬件系统的设计,包括平台各个重要硬件组成部分;第三部分介绍平台的PCB设计要点;第四部分介绍平台的应用软件和接口应用模块。
第四章是基于平台进行视频编解码器开发验证的例子。第一部分介绍了基于平台的AVS D1解码器的开发,第二部分介绍了基于平台的AVS运动矢量预测模块AGU的设计和仿真验证,第三部分是平台与SMIC 0.18μm单元库的综合结果比较。 第五章是全文的总结与展望。
13