基于Synopsys ChipIt平台加速IP验证


陈锦华jhchen@pixelworks.com

逐点半导体(上海)有限公司

Pixelworks (Shanghai)

摘要

本文介绍逐点半导体公司(PIXELWORKS)数字全高清视频N2M芯片中的核心IP在Synopsys CHIPit平台上的成功验证。逐点半 导体公司(PIXELWORKS)数字全高清视频N2M芯片运用业界领先的运动补偿技术, 提高刷新频率,将数字全高清1080P信号倍 频输出以提高图像的显示质量。其核心视频IP都是基于自主产权的算法开发而成,内含大量的DSP运算,在纯RTL仿真器上运行 会耗费大量的时间。CHIPit是Synopsys基于FPGA的快速验证平台,该系统带有一个高度自动化的可编程互联架构,并提供了软 硬件协同仿真的Co-SIM功能. 基于这个功能,复杂的带DSP运算的IP的仿真时间可以大幅缩短,从而加快了整个N2M芯片验证速度, 提高了验证的效率,缩短了芯片的上市时间。
关键词:N2M, CHIPit , DSP,高清1080P, FPGA, Co-SIM

Abstract

This paper introduces the accomplishment of Pixelworks digital full HD video N2M chip verification with Synopsys CHIPit platform. Pixelworks N2M chip processes full HD video with advanced motion estimation and motion compensation technology, doubles the frame rate of the output HD video to improve the picture quality .The core IP is developed base on proprietary algorithm, which includes lots of DSP calculation. It will take long time if using regular simulation. CHIPit is an FPGA-based fast verification platform from Synopsys. This system includes a programmable connection architecture which can be implemented automatically, also, it has Co-SIM interface to do co-simulation together with HW and SW. Base on this feature, the simulation time for complex DSP calculation could be largely decreased. CHIPit brings fast, high efficiency and success to N2M verification.
Key words:N2M, CHIPit, DSP, high-definition 1080P, FPGA, Co-SIM

1. 引言

逐点半导体公司的数字全高清视频N2M芯片是应用于高清液晶屏幕的图形显示驱动芯片。其规模非常庞大,单芯片达到几百万门 的电路,而且作为消费电子,其更新速度非常快,每九个月就要有新的一代芯片面世。因此其验证工作除了保证功能的完备性, 更要保证验证的速度和效率。传统的基于仿真器(simulator)的纯软件仿真验证技术由于随着设计规模的增大而性能降低,无法 保证验证的速度,N2M中的核心算法IP往往要求运行几帧的高清信号激励,就需要花费好几天的时间。为加快验证的速度,我们 引进Synopsys公司基于FPGA技术的CHIPit快速验证平台,并采用CHIPit中的Co-SIM验证方法对算法IP进行硬件加速仿真,以保 证验证的高效率。

2. N2M技术介绍

液晶发展初期屏幕响应时间高达40ms以上,作为普通文本处理尚可,但观赏影片、玩3D游戏时,就难免会出现难看的拖影。这 也就是为什么在发展初期,液晶被认为不适合打游戏和看电影的原因。为提高视觉效果,液晶厂商开始设法提高液晶响应时间, 从初期黑白响应时间的改善,到降低灰阶响应时间,液晶屏幕也正式开始走向娱乐领域。目前液晶响应时间已可以达到1ms。实 际使用当中,响应时间的改善需要结合数字插帧倍频技术,才能实现视觉效果的根本改善。
逐点半导体公司在插帧倍频技术上有深入的研究,其应用于液晶电视100/120Hz刷新频率的插帧倍频技术称为N2M。其原理就是 采用动态映像系统,在传统的两帧图像之间加插一帧运动补偿帧,将普通平板电视的60Hz刷新率提升至120Hz。这样,运动画面 更加清晰流畅,优于4毫秒响应效果,从而达到清除上一帧图像的残影、提高动态清晰度的效果,并将影像拖尾降至人眼难以感知的程度。

图1 Film judder removal with Motion EngineTM technology

图1是Motion EngineTM技术把24Hz的电影的内容处理成为120Hz刷新率的示意图。首先,24Hz电影内容经过32下拉处理,变成 60Hz的NTSC制式。在此基础上,Motion EngineTM技术从这些序列中挑选出原始帧(帧A和B如图1所示),做一个帧和帧之间 的运动估计和运动矢量(MV)计算,然后运用补偿插帧技术产生介于帧A和帧B 的新帧,输出120Hz的新的序列。逐点半导体公 司的n2mTM技术可以将任何输入的帧速率的“n”转换为任何输出帧速率的“m”。

2.1 N2M系统框图

N2M 视频引擎由许多IP组成,其中有帧存控制器(fbc),显示时序控制器(dtg)和4个单独的子单元:输入单元(Input Unit),运动矢量计算单元(MVC Unit),插帧单元(FI Unit)和显示单元(Display Unit)组成。帧存控制器实现帧存的统一地址管理;运动矢量计算单元实现运动矢量估计和计算;插帧单元用于根据运动矢量和图像内容计算出新的帧实现N2M功能;并由显示单元输出显示。

图2 N2M 视频引擎设计框图

3. 核心IP的验证

N2M是由几个单元组成, 每个单元都是独立的一个IP。在进行全芯片的仿真验证之前, 我们首先进行的是IP级的验证,对每个IP进行 单独验证。在确保每个IP的功能都正确的基础上,再把这些IP整合成完整的芯片进行芯片级仿真验证. 以MVC这一IP为例,为提取 运动适量,需要对输入的视频像素进行大量的运算,其中涉及许多的乘积累加,含有这样运算的RTL代码在Simulator上进行仿真时,速 度非常慢,而运动估计往往又需要好多帧的信息. 为尽快验证算法,仿真时的图像尺寸都很小,序列也很短. 这样的仿真通过后, 我们 对RTL代码基本有了信心,然后希望模拟真实全高清情况下的仿真结果, 为加快仿真的速度,我们充分利用CHIPit的Co-SIM功能,把该 IP放到FPGA硬件中去执行, 而原来的Testbench仍旧留在Simulator里运行,由于FPGA硬件对乘积累加运算的速度非常快,这种新的 硬件加速的方法大大加快了仿真的速度, 提升了仿真的性能.由于各IP的验证方法基本类似, 下面着重描述MVC 这一IP的验证过程.

3.1 基于Simulator的IP验证

在纯软件环境下,基于Simulator的仿真方法比较简单,像素科技有一套成熟的软件环境.其结构如图3所示.

图3 基于Simulator的仿真验证方法框图

其中: DUT是为待验证的设计(DESIGN UNDER TEST), SSLTBS是SYSTEMC 的TESTBENCH: 包含TBCTRL(c脚本 解析器),可运行不同激励(TEST CASE);BFM 是行为发生 模块,用于产生DUT所需的接口信号; Native C test case 调用各种寄存器访问连接层如FAL(Function Abstraction Layer),RAL(Register Access Layer),TAL(Testbench control Abstraction Layer),IAL(Interrupt Abstraction Layer) 等。
逐点半导体公司的每个IP都采用标准化封装,所有的输入输出 接口都是标准化接口,如视频信号输入输出接口,寄存器接 口,以及存储器接口都有相应的标准对应,这极大的方便了 SystemC的建模,每个TESTBENCH都只需例化IP所需的行为 发生模块(BFM),用于产生DUT所需的激励信号。在仿真 时, 我们先建立MVC的BFM模块,该模块带有控制参数和配置, 在例化时,只要控制好这些参数,就可以控制接口的不同行 为。在TESTBENCH里还构建了行为发生模块(BFM)可随时与 TBCTRL单元通信的机制,TBCTRL单元可以运行C脚本,C脚 本包含所有模块的配置参数和控制参数,在运行的开始和过程 中,TBCTRL单元都可以将参数传递给每个模块,包括DUT。 有了这种机制,就可以通过运行不同的C脚本运行不同的激励 而无需更改TESTBENCH。
但是N2M芯片是一个规模非常庞大的芯片,芯片的工作频率也是非常高,主频300多兆,DDR跑在了400兆,小规模的IP的仿 真速度还没什么问题,但是诸如MVC, FI等大规模IP的仿真就面 临着极大的挑战,运行一个全高清的激励,服务器可能需要运行 好几天才能完成,这几乎是不可能完成的任务,更不用说芯片级 的仿真验证。这主要是因为基于Simulator的仿真手段,所有的 Testbench和DUT都在主机(Host)上运行,DUT中的每一条语 句在Simulator上是串行顺序执行的,这样DUT会非常销耗主机 的资源,影响设计的仿真速度。所以就需要一套设备来加速仿真 的速度,经过调研,选择了SYNOPSYS公司的CHIPit平台。

3.2 CHIPit平台中的Co-SIM功能.

CHIPit系统是基于FPGA技术的平台,该平台由主机(Host)和 CHIPit硬件组成,主机上运行控制管理软件CHIPit Manager,它 实现流程控制和对硬件的配置管理。主机和CHIPit硬件之间由被 称为UMRBUS的总线连接,其速率达到528Mbps.有了这条高速 的通道,运行在主机上的程序就可以和运行在FPGA硬件上的程序 进行大量的数据的高速交换,从而实现软硬件间的联合调试和仿 真.Co-SIM就是一种具体的应用模式。
CHIPit中的Co-SIM运行如图4所示,DUT被从主机上的 Simulator中移到硬件中。在主机这一侧,与DUT接口相同的 Dummy模块(Software Wrapper)填补原DUT的位置,在 编译时,与Simulator相应的库函数被调用,通过PLI接口与Simulator建立通信。在硬件这一侧,DUT也会被重新封装成统 一的UMRBUS总线的格式 (Hardware Wrapper),DUT的每一 个输入输出信号都会由UMRBUS重新产生,包括DUT中的时 钟信号,也就是说,在Co-SIM模式下,DUT运行的节拍是由 Simulator通过UMRBUS来控制的,Simulator是Master,DUT 是Slave。DUT的所有顶层接口信号都会送回到Simulator,并 可以在Simulator中用波形显示出来。
Software Wrapper 和Hardware Wrapper 是Co-SIM功能中的重 要模块,在使用这一功能时,这两个Wrapper可以由Synopsys 提供的专用的软件Chipit Manager Pro产生。

图4 CHIPit平台中CO-sim功能示意图

3.3 基于Co-SIM的IP验证

MVC这个IP是一个可综合的RTL代码,在用Co-SIM进行加速 仿真时,可以把整个MVC放到Chipit的一个V5的FPGA中去。 按照Co-SIM的流程要求,如图5,首先在Chipit Manage Pro 中读入MVC的顶层模块,产生Hardware Wrapper和Software Wrapper,然后Hardware Wrapper和MVC的所有RTL代码一起 进行综合、布局布线,产生配置文件,下载到FPGA中去。在 仿真器这边,图4的Testbench和新产生的SoftwareWrapper一 起在仿真器里进行编译,然后执行,MVC模块需要的一些初始 状态就由Simulator通过UMRBUS传送过来,并把MVC运行的 结果通过UMRBUS总线送回给Simulator。

图 5 Co-sim仿真流程

在Co-sim模式下, MVC被从Simulator移到了FPGA中,大大 减轻了Simulator的负担,只要MVC在Simulator中的运行时间 超过Simulator与硬件之间的交互的时间,Co-SIM这一种模式 就可以加速仿真的性能,表1是MVC这一IP运行在纯Simulator 和Co-sim这两种模式下的性能比较。

表1 Simulator和Co-SIM比较


如前所述,MVC中有很多的乘积累加运算,Simulator由 于是串行执行的关系,在执行大量乘积累加运算时降低了 整个仿真器执行的性能;而FPGA硬件在执行乘积累加这 样的运算则有非常显著的势,FPGA中的专用的乘积累 加单元可以快速的完成这一运算。
从软件仿真环境切换到Co-SIM的验证环境的过程中,Co-SIM 验证环境完整的保留了软件仿真环境,同时工具自动生成所需 软硬件的接口封装,无需人工太多的参与,避免了人工出错的 概率。而且CHIPit 软件自带的Sitrack 工具,让调试也异常方 便,和在服务器端调试相差无几,可以随时任意添加需要观测 的信号。

4. 总结

基于CHIPit的Co-SIM验证方法充分利用了硬件并行执行 的优势,借助于CHIPit平台提供的丰富的FPGA资源以及 主机和硬件间的高速通信通道UMRBUS总线,把设计中的 有大量乘积累计运算的RTL代码移植到FPGA硬件中来实 现,从而减轻Simulator的工作负担,达到了仿真加速的 目的。这一功能不仅可以运用在IP的加速仿真上,也可以 运用到整个芯片的加速仿真上,从而更有效的缩短整个芯片的验证时间,加快芯片的Tape out。

5. 参考文献

[1] Synopsys Inc. UMRBus Communication System handbook,2009
[2] Synopsys Inc. CHIPit Platinum Edition handbook, 2009.
[3] Pixelworks Inc. N2M design internal document, 2009.
[4] Pixelworks Inc. SystemC design guide document, 2009
[5] Video Demystified iv Edition by Keith Jack
[6] Pixelworks Inc. SVN environment maintain internal document 2009
[7] Pixelworks Inc. Linux shell script internal document 2009