您的位置:技术中心首页 > 逻辑验证 >> 建立仿真环境对芯片进行全面验证

建立仿真环境对芯片进行全面验证

作者:Cinda Flynn   时间:2006-02-11 17:29:23  来自:摩托罗拉半导体产品事业部  浏览次数:336  文字大小:【】【】【
简   介:设计验证是视频通信设计所面临的主要挑战之一,除了传统的模拟之外,对新芯片做仿真也是避免在整个芯片制造过程中重复设计的一个重要方法。样机设计遇到的问题表明,设计人员不仅要考虑芯片工作性能,而且还要考虑怎样对芯片进行控制和通信。本文通过实例介绍如何开发仿真环境,完成对芯片的验证。

摩托罗拉公司视频通信应用设计人员在芯片开发过程中,除了传统的模拟外还积极采用仿真手段,对设计进行全面验证。他们利用Aptix公司配有FPGA和存储模块的MP4仿真板,构建了一些设备和定制开发板,包括一个视频通信系统环境,该环境具有用户交互性,可以在真实状态下测试芯片设计,因此不需要再完全依赖模拟向量。除了验证之外,仿真还给软件开发和芯片制造带来一些原先没有预见到的好处,这些因素结合在一起提供了一种应对验证挑战的设计方法。

问题的提出

摩托罗拉MC149573(代号为Cougar)是一种能为实时视频会议提供标准移动视频编/解码的芯片,它支持国际电信联盟(ITU)标准H.261和H.263视频编/解码,在通用媒介格式(CIF)分辨率下性能可达30帧/秒。Cougar运行的位速率范围从简易老式电话系统(POTS)到4Mbps,其自适应速率控制可充分利用目前不断涌现的宽带通信媒介,进行视频会议和语音通信,如xDSL、线缆调制解调器、ISDN以及传统调制解调器等。Cougar使用外置主处理器提供通信前端,然后即可与各种通信信道一起使用,另外用户还能控制显示特性,如显示自身图像、下载的位图图片或静止图像的画中画(PIP)等。芯片运行时,所有这些特性和用户选择都可以通过软件编程实现。

由于有很多参数和功能,因此对Cougar来说验证是个很大挑战,Cougar要不断调整,以便工作在不同信道速率、位流误差和各种用户选项条件下,这些参数在质量与帧速率之间进行折衷(带宽低环境中),显示出各选项,如PIP窗口位置。Cougar可以利用硬件描述语言(HDL)代码进行完全综合,在最初的芯片集成和调试中,只用模拟对Cougar做验证。Cougar的核心功能需要非常广泛的验证,而对整个芯片HDL代码作50个视频帧模拟需要一周时间,门级模拟综合需要两周时间,因此由于时间的限制,模拟只能测试一部分特性,而且还不能说明外部通信如主处理器的异步特性。所以这里不仅需要加快模拟向量,还要能自由地实时改变性能,验证Cougar整个系统的异步特性。

仿真方法

仿真为Cougar提供了一种与模拟大不相同的验证环境,它允许用真正的硬件取代外部接口模型,还可以在硬件里综合HDL代码并运行Cougar,同时保留的调试能力比硅片所能提供的更多。仿真可在几秒内处理成百上千个视频帧,不需要数周或数月,而且它还能验证整个系统设置,包括与用户的交互性。所有外部接口都用简化时钟运行Cougar仿真环境,内部时钟也是简化的,这样FPGA之间的速度和传播延迟就不用再考虑,并且能尽量减少HDL改动,使样机的HDL与芯片HDL没有或只有很小区别。这是很关键的,因为目标是对芯片进行设计验证和降低风险,如果HDL代码有很大不同,那么仿真所验证的就不是与芯片设计一样的东西,削弱了仿真带来的好处。

用于样品设计的Aptix MP4板在芯片设计仿真阶段非常重要,Aptix MP4板为构建样机系统提供了一个硬件平台,它允许各种FPGA和其它元件插板直接装到主板上,就像面包板一样。随着设计的进展每个FPGA程序都可以重新编制,无需修改电路板上的其它FPGA。与传统面包板不同的是,MP4在插卡之间没有硬线互连,由现场可编程互连元件(FPIC)在FPGA模块之间提供可编程互连,同时接在一个逻辑分析仪上进行调试。这种结构非常灵活,即使设计变化也不需要物理修改或重新做PCB。

Cougar芯片由3个中央总线连接的10个模块组成(图1),Cougar在每个模块上都使用标准接口模块方式,模块通过中央总线相互通信。仿真也采用同一结构,仿真板上每个模块使用一个FPGA,这样每次设计变化改动模块时不会影响其它模块的布局、布线和时序。中央总线在模块之间交换几乎所有内部数据和控制信号,不用再给设计增加信号线。每个模块使用一个FPGA的唯一问题是MP4板的容量,Cougar的10个模块加上单独时钟控制模块,使得在MP4板上总共需要11个FPGA,但是11个FPGA超出了Aptix MP4板的容量,而增加一块板又不可取。

为解决这个问题,Aptix设计了一些转接器,能让FPGA垂直装到MP4板上。虽然这样大大减少了每个FPGA上的引脚端数,但却增加了板的容量。在垂直转接器上,还有一些翼形连接器可与外置设备相连,不需要MP4板参与,这些翼形连接器是连接芯片外部接口的一个理想方式。

完整的视频通信系统构成取决于所应用的场合,Cougar的目标应用包括机顶盒、PC摄像头和独立的视频电话(包括有线式和手持式)。使用Cougar芯片时有些元件是相同的(图2),如摄像头、显示器(电视或LCD板)、主处理器和外部存储器。主机采用66MHz时钟,由一个20MHz外部时钟驱动的板上可编程锁相环(PLL)提供。

摄像头和Cougar芯片之间有一个NTSC/PAL解码器,该芯片接收摄像头传来的模拟信号,再将其转换成数字信号,格式为CCIR-601或CCIR-656。CCIR-601需要8位数据总线和另外3个信号线,其中一个信号是27MHz视频输入像素时钟,剩下两个信号为8位数据总线提供水平和垂直时序。CCIR-656与CCIR-601类似,有一个27MHz时钟8位数据总线,但它的垂直和水平时序代码内嵌在数据流里,27MHz时钟与主机66MHz时钟完全不同步。

Cougar与显示器之间的接口也需要一个类似转换芯片。NTSC/PAL编码器接收Cougar数据并转换成驱动电视或LCD板所需信号,数据同样是CCIR-601或CCIR-656格式。NTSC/PAL编码器提供27MHz视频输出时钟,并给CCIR-601提供水平和垂直信号;在CCIR-656中,由Cougar提供内嵌于数据流的水平和垂直时序信号。和视频输入时钟一样,27MHz视频输出时钟与主机66MHz时钟完全不同步,另外视频输入时钟和视频输出时钟即使在同一频率下运行也是不同步的。

主处理器接口是一个并行口,通过收发已编码视频数据提供本地用户控制,并为Cougar视频处理器提供信道通信,主机重新得到本地编码视频数据后通过信道发送到远端,这种接口再将接收的视频数据发给Cougar用于解码和显示。它是一个有6位地址总线和16位双向数据总线类似SRAM的存储器映射接口。

Cougar由3个电平驱动信号(片选、读、写信号)控制数据的发送和接收,从设计来讲这是一个异步接口,与主机时钟的同步是这种接口一个主要问题。

外置存储器为Cougar视频编码/解码提供中间存储媒介,用工业级132MHz SDRAM与Cougar通信可实现该要求,接口在内部66MHz系统时钟的两倍下运行。和其它三个外部接口不同,SDRAM总线没有不同步的问题,此时的时序问题是存储器时钟与主机时钟之间的时滞或相位偏移。

样机系统

研制样机系统的第一个难题是如何替代上述Cougar系统中使用的外置芯片,因为只有这样样机环境才是真实的(图3)。

每个接口需要解决不同的问题,进行评估的第一批外部接口是视频输入(NTSC/PAL解码器)和视频输出(NTSC/PAL编码器)。Cougar需要从NTSC/PAL解码器连续接收动态视频信号,然后把连续的运动视频信号输出给NTSC/PAL编码器。如果达不到实时,外接芯片将不会运行,解决办法是用一个装置把摄像头接收到的信号记录下来,或者从视频测试图形读取数据,再以步进方式一次一帧或连续无限循环播放信号序列。该装置也能从Cougar样机上记录视频序列,并在监视器上回放。由于是用内置存储器存储视频序列,因此它以用户提供的时钟速度播放并记录视频数据。

该设备也可作为视频图像的大型帧缓冲器,提供摄像头输入以及捕捉电视输出,帧缓冲器接口是发射极耦合逻辑(ECL),不是晶体管-晶体管逻辑(TTL)。还有一块PCB连在仿真器上,通过电缆线接入FPGA转接器的翼形连接器进行视频输入输出,PCB把FPGA TTL信号转换成帧缓冲器ECL信号,或者相反。由于使用了电缆线,进出FPGA线缆的信号受到缓冲保护,提供的无源终端避免了信号完整性和噪声问题。这种帧缓冲器还可提供简化视频输入和视频输出像素时钟,通常NTSC/PAL解码器和编码器芯片都可以做得到。

第二种要考虑的接口是主处理器。以前的系统设计利用摩托罗拉MC56309数字信号处理器作为主处理器,Cougar系统设计包含同样的DSP,但这种DSP不能直接贴装到MP4板上。现有开发板利用DSP和上一代视频通信处理器MC149570(代号为Cheetah),这种开发平台增加一个连接器就可改造为用于Cougar样机,该连接器允许DSP控制板上的Cheetah芯片或Cougar芯片。

FPGA直接在这个新连接器和垂直转接器翼形连接器之间连接,为FPGA接口增加的缓冲保证了电缆在两个方向上信号完整性良好。

我们需要考虑的最后一个接口是外置存储器接口。SDRAM芯片能以比实时(132MHz)慢的速度运行,也有一些现成转接器可将SDRAM芯片直接装到MP4板上,这样可以让存储器接口在真正SDRAM芯片上测试控制和刷新方案,而不是用一个模型或构建的一个模块。

样机问题

外部接口工作完成后,还有一些内部硬件问题需要修改以用于Cougar样机系统,主要问题集中在板上总线。如图1所示,有三种主要总线在所有模块之间进行通信,包括板上模块驱动的一个7位总线、一个1位三态信号线和一个36位三态总线。前两个总线在布线时穿过MP4板上一个特殊“总线”网络,能最大限度减少信号路径。由于垂直转接器减少了FPGA上的引线数,所以没有足够的引线把36位总线纳入“总线”网络,因此用菊花链电缆连到每个FPGA所配备的垂直转接器翼形连接器上。该线缆为36位总线提供直接连接,但在连结过程中会大量增加电容量,为减少增加电容,电缆之间连接板采用四个单股菊花链线缆,连接板还带有在线上拉电阻插座,可进行直接信号连接。这些分立板允许用四个菊花链电缆提供连续总线,每个信号可并联三个上拉电阻。在三种连接板上,只有一种板需要装配上拉电阻以提供36位三态总线所需时序,另两个连接板没有配上拉电阻。对样机系统的其它改动包括将DSP和存储器时钟放慢到其正常运行速度的一部分,同时增加DSP等待状态。

硬件问题解决之后,在要考虑的硅片代码和FPGA代码之间HDL也要改变。SDRAM芯片要求样机的刷新时间和原系统一样,但由于系统时钟速度降低,很少有系统时钟周期能满足刷新周期数量,为补偿时钟速度放慢,对存储器控制的模块进行修改使其提供刷新周期所需数量。这种代码改动只在仿真代码上进行,而不在硅片存储器控制模块上,每个模块所需HDL改动都用FPGA SRAM模型代替硅片SRAM模型。每个Cougar模块含有内置“中间结果暂存器”SRAM模型,为中间结果提供储存。由于这些SRAM模型在硅片代码中是用实例说明的,所以FPGA必须要有自己的SRAM模型,FPGA库提供的SRAM配置与硅库SRAM的工作方式相同。用于每个模块的FPGA存储器在存储器外部结构下构造并进行说明,存储器外部结构可提供与硅片库SRAM模型相同的引线输出,这样控制SRAM的HDL代码就不需要更改,用FPGA存储器外部结构就可直接替代硅片SRAM。

硬件平台和HDL改动完成之后,再开发DSP器件驱动器,并为PC编写图形用户界面(GUI),该GUI允许直接进入Cougar主处理器接口及预编程方案,用这种方法测试可验证的预缺省设置(如典型ISDN呼入设置)及用户选项(如PIP位置)。为便于调试,逻辑分析仪利用MP4调试特性和直接连接所需信号方式连接主机总线、DSP接口、视频输入、视频输出和SDRAM接口。硬件、软件和调试平台都完成以后,就可以着手开始验证工作了。

其它问题

验证工作还发现了以前不知道的一些需要改动HDL代码的设计问题,可以分为以下三类:

  1. 模拟测试可能会发现的问题。这类问题因为接口模型不完整而引起,如果模拟用另一种方式进行也可能会发现。
  2. 模拟未测试的问题。由于时间限制或者因为仿真系统比模拟环境测试效果更好,有些项目没有在模拟中测试。
  3. 由于仿真系统像真正系统一样使用异步外置接口而发现的问题。因为用户要求改变与片上时序不同步,所以这些问题通过了模拟但未通过仿真。

第一类问题采用更全面建模和深入模拟环境可以解决;在仿真中经常遇到的是第二类问题,因为系统复杂性需要模拟环境所没有的测试特性;第三类问题表明了与模拟相比仿真最引人注目的性能,虽然这类问题在模拟中不是不可能发现,但需要几个事件在特定时间以特定顺序发生才行,而这些事件的发生概率很小。第三类问题需要改变代码和重新综合,如果它们在硅片里已经做好,那么所有层都需要改动才能解决问题,要不然就只能减少功能。

除了验证之外,仿真系统还有助于软件开发。尽管Cougar芯片还在制造当中,但用仿真器模拟Cougar芯片已在DSP上开发生产软件驱动器,连上逻辑分析仪后,能更容易准确发现编程命令,以及用硅片替代仿真器后“芯片”在真实环境下如何反应,Cougar生产完成后,即可对为终端系统应用而定制的生产电路驱动器进行编写测试,并集成到整个DSP栈中。

仿真工作也有助于芯片调试。随着平台的开发,硅片上电效果非常清楚。把连接DSP开发板与仿真器的电缆拆除,然后将含有Cougar芯片的专用设计子板连到同一个连接器上,从软件观点看,实验室DSP电路驱动器需要修改以控制真正的NTSC/PAL解码器和编码器。硬件和软件都完成后,硅片在实验室工作台上加电一天即可调试完毕。通过整个样机制作工作可以学到很多经验,从而对正在开发的下一代MPEG-4芯片模拟和仿真策略做出改进。

由于垂直转接器减少了FPGA上的引线数,所以没有足够的引线把36位总线纳入“总线”网络,因此用菊花链电缆连到每个FPGA所配备的垂直转接器翼形连接器上。该线缆为36位总线提供直接连接,但在连结过程中会大量增加电容量,为减少增加电容,电缆之间连接板采用四个单股菊花链线缆,连接板还带有在线上拉电阻插座,可进行直接信号连接。这些分立板允许用四个菊花链电缆提供连续总线,每个信号可并联三个上拉电阻。在三种连接板上,只有一种板需要装配上拉电阻以提供36位三态总线所需时序,另两个连接板没有配上拉电阻。对样机系统的其它改动包括将DSP和存储器时钟放慢到其正常运行速度的一部分,同时增加DSP等待状态。

硬件问题解决之后,在要考虑的硅片代码和FPGA代码之间HDL也要改变。SDRAM芯片要求样机的刷新时间和原系统一样,但由于系统时钟速度降低,很少有系统时钟周期能满足刷新周期数量,为补偿时钟速度放慢,对存储器控制的模块进行修改使其提供刷新周期所需数量。这种代码改动只在仿真代码上进行,而不在硅片存储器控制模块上,每个模块所需HDL改动都用FPGA SRAM模型代替硅片SRAM模型。每个Cougar模块含有内置“中间结果暂存器”SRAM模型,为中间结果提供储存。由于这些SRAM模型在硅片代码中是用实例说明的,所以FPGA必须要有自己的SRAM模型,FPGA库提供的SRAM配置与硅库SRAM的工作方式相同。用于每个模块的FPGA存储器在存储器外部结构下构造并进行说明,存储器外部结构可提供与硅片库SRAM模型相同的引线输出,这样控制SRAM的HDL代码就不需要更改,用FPGA存储器外部结构就可直接替代硅片SRAM。

硬件平台和HDL改动完成之后,再开发DSP器件驱动器,并为PC编写图形用户界面(GUI),该GUI允许直接进入Cougar主处理器接口及预编程方案,用这种方法测试可验证的预缺省设置(如典型ISDN呼入设置)及用户选项(如PIP位置)。为便于调试,逻辑分析仪利用MP4调试特性和直接连接所需信号方式连接主机总线、DSP接口、视频输入、视频输出和SDRAM接口。硬件、软件和调试平台都完成以后,就可以着手开始验证工作了。

其它问题

验证工作还发现了以前不知道的一些需要改动HDL代码的设计问题,可以分为以下三类:

  1. 模拟测试可能会发现的问题。这类问题因为接口模型不完整而引起,如果模拟用另一种方式进行也可能会发现。
  2. 模拟未测试的问题。由于时间限制或者因为仿真系统比模拟环境测试效果更好,有些项目没有在模拟中测试。
  3. 由于仿真系统像真正系统一样使用异步外置接口而发现的问题。因为用户要求改变与片上时序不同步,所以这些问题通过了模拟但未通过仿真。

第一类问题采用更全面建模和深入模拟环境可以解决;在仿真中经常遇到的是第二类问题,因为系统复杂性需要模拟环境所没有的测试特性;第三类问题表明了与模拟相比仿真最引人注目的性能,虽然这类问题在模拟中不是不可能发现,但需要几个事件在特定时间以特定顺序发生才行,而这些事件的发生概率很小。第三类问题需要改变代码和重新综合,如果它们在硅片里已经做好,那么所有层都需要改动才能解决问题,要不然就只能减少功能。

除了验证之外,仿真系统还有助于软件开发。尽管Cougar芯片还在制造当中,但用仿真器模拟Cougar芯片已在DSP上开发生产软件驱动器,连上逻辑分析仪后,能更容易准确发现编程命令,以及用硅片替代仿真器后“芯片”在真实环境下如何反应,Cougar生产完成后,即可对为终端系统应用而定制的生产电路驱动器进行编写测试,并集成到整个DSP栈中。

仿真工作也有助于芯片调试。随着平台的开发,硅片上电效果非常清楚。把连接DSP开发板与仿真器的电缆拆除,然后将含有Cougar芯片的专用设计子板连到同一个连接器上,从软件观点看,实验室DSP电路驱动器需要修改以控制真正的NTSC/PAL解码器和编码器。硬件和软件都完成后,硅片在实验室工作台上加电一天即可调试完毕。通过整个样机制作工作可以学到很多经验,从而对正在开发的下一代MPEG-4芯片模拟和仿真策略做出改进。

责任编辑:5life

更多相关 验证 SOC 仿真环境 的文章

在SoC设计后端实现低功耗可配置处理器 [2006-09-10]
版图设计及其验证 [2006-04-08]
SoC测试的概念及实例详解 [2006-03-01]
三种常用SoC片上总线的分析与比较 [2006-02-22]
事务级验证是如何工作 [2006-02-11]
应对百万门级系统级芯片验证挑战的可扩展解决方案 [2006-02-11]
系统级芯片设计语言和验证语言的发展 [2006-02-11]
SoC设计验证技术发展综述 [2006-01-16]
SoC片上总线综述 [2006-01-16]
在以覆盖率为导向的验证理论中如何有效结合断言和覆盖点 [2006-01-06]
本文共有0条评论,现在显示最新的5条。

栏目导航

电路基础
硬件语言
逻辑验证
电路综合
后端设计
可测设计
基本逻辑
制造工艺
书籍精选
说文解字
工具学习
数字滤波
趣闻逸事
数字锁相
设计杂项
低耗设计

站点最新

更多相关链接

  仿真工作流程(Verilog/M...
  Modelsim 教程
  Debussy 教程
  Verilog PLI教程 --- 第...
  Verilog PLI教程 --- 第...
  Verilog PLI教程 --- 第...
  Verilog PLI教程 --- 第...
  Verilog PLI教程 --- 第...
  PLI步步为营 -- 二、PLI...
  PLI步步为营 -- 一、PLI概述

栏目最新

更多相关链接

  仿真工作流程(Verilog/M...
  Modelsim 教程
  Debussy 教程
  Verilog PLI教程 --- 第...
  Verilog PLI教程 --- 第...
  Verilog PLI教程 --- 第...
  Verilog PLI教程 --- 第...
  Verilog PLI教程 --- 第...
  PLI步步为营 -- 二、PLI...
  PLI步步为营 -- 一、PLI概述

热点文章

更多相关链接