中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 科技成果 >>电子行业新闻正文

基于RVM SD/MMC卡控制器验证平台的搭建

时间:2008/12/10 9:33:00  作者:  来源:ic72  浏览人数:2585
 
 

      0 引言

      随着芯片的复杂度的不断提高,芯片验证工阼也越来越重要,在芯片设计周期中,验证占整个项目工作量的70%以上。传统的验证方法已经不能满足验证工作的需要,现在以测试向量自动生成技术为代表的高级验证技术已成为主流验证技术,在高度复杂的SOC设计中发挥越来越重要的所用。本文介绍了Synopsys公司提供的openvera语言在RVM验证平台上编写验证代码的过程。

      1 RVM验证方法学

      RVM验证方法学的关键就是验证平台的分层结构,分层结构如图1所示,主要包括5层。

ic72新闻中心

      信号层定义了验证平台与DUT连接的接口(Interface)。验证平台通过此接口,驱动DUT的输入信号或者监听DUT的端口信号。命令层包含驱动器(Drive),断言(Assertion)和监视器(Monitor)模块。功能层包含处理器(Transaction)和检查器(check)模块。功能层包括产生器(Generator)模块。产生器随机产生事务,并将事务通过通道传到下层模块。测试层包括需要完成的随机测试例和直接测试例。

      验证环境中还包括一个重要的模块功能覆盖率(functional coverage)。此模块中包含验证工程师定义的功能覆盖点,功能覆盖点可以分为激励覆盖点和行为覆盖点,激励覆盖点用来记录和反馈验证平台向DUT施加的激励,而行为覆盖点用来记录和反馈DUT的内部和输出行为。在验证过程中,仿真器根据定义的功能覆盖点统计出功能覆盖率,验证工程师在功能覆盖率的指引下添加测试例,直到功能覆盖率达到期望的要求,从而取保DUT的功能得到充分的验证。

      2基于RVM方法学SD/MMC卡控制器模块级验证平台

      图2为SD/MMC模块的验证平台。DUTGEN模块随机产生DUT所需的配置数据;GEN模块用于产生对文件的仿真操作实例,APB XAC-TOR将GEN模块的文件操作翻译为SD/MMC模块的控制指令,并更新文件系统的拷贝;APB DRV摸块按照APB总线标准实现对SD/MMC模块的寄存器配嚣。SLAVE端MMC/SD DRV负责模块接口信号的采样以及驱动,MMC/SD XACTOR模块用于实现SD卡协议;由于SD/MMC模块只支持单一插槽,所以每次仿真只需要一个CHECK模块用于数据的比较,如此在SLAVE端需要一个MUX开关用于选通XACTOR的数据。

ic72新闻中心

      该验证平台的中心思想使以事务和功能覆盖率为基础。验证平台的各个模块之闻通过事务进行通信。事务中定义了控制器命令的类型,卡的状态和验证平台的处理器与驱动器之间交互所需的变量;功能覆盖率由仿真器自动统计,他可以告诉验证工程师工作的完成情况,提高验证效率,并确保验证工作的完整充分。

      3验证平台各个模块的具体搭建

      验证平台由多个模块用通道连接构成,下面分析其中几个主要模块。

      3.1生成器(generator)

      产生器用于产生用户定义的数据对象(pack-ets,frames,instructions等)或事务(transactions)。如果要产生某个数据类的数据对象,需要在generator中声明这个数据对象,然后调用randomize()系统函数产生数据对象中的随机数据成员。

      Generator通过channel与下层的transactor连接,这种连接SD/MMC卡验证平台中可以用以下代码实现:

ic72新闻中心

      3.2处理器(transactors)

      Transactor类派生于rvm_xactor基类,所有的操作都定义在main_t()函数中。在main_t()中首先要使用fork join并行语句调用基类的main_t()函数。在env.vr中调用rvm_xactor::start_xactot(),rvm_xactor::stop_xactor(),rvm_xactor::reset_xactor()来启动,停止和重启用户定义的transactor。

      在SD/MMC验证平台中xactor模块里也有两个xactor文件,apb_xactor.vr和sd_xactor.vr。他们完成的功能不同,但代码编写也相似,可以用如下代码简要描述:

ic72新闻中心

      3.3驱动器(driver)

      驱动器(driver)的主要功能是将接收到的事务通过信号层的interface写入到DUT中。驱动器一般有一个与上层连接的输入通道(in_chan),一个与上层连接的输出通道(out_chan)和一个输出的虚拟借口(port)。

      3.4调试和编译

      编写完以上等几个模块后,通过编译生成各自的.vro和.vrh文件,在RVM平台上编写sdmme_env.vr文件调用这些.vrh文件。在sdmmc_env.vr文件里定义这些任务:gen_cfg(),build(),cfg_dut(),start_t(),wait_for_end_t(),stop_t(),cleanup_t(),report()。

      4仿真波形的生成

      完成以上操作后,再编写测试例,经过编译和调试,最后可以生成仿真波形,如图3所示。

ic72新闻中心

      根据SD卡的协议,SD卡有1根命令线(cmd),2根时钟线(clk,sdclk),和4根数据线(dat0,dat1,dat2,dat3)。它们的波形如图3所示,在卡的鉴别模式下,在cmd线上发送命令(ACMD41,CMD2,CMD3)和接收相应(response)来鉴别是否是SD卡。注意在发命令ACMD41之前,要先发送命令CMD56,因为根据协议发送了CMD56之后,后面接着发送的是ACMD命令。经过鉴别模式以后,我们知道是SD卡,现在进入数据传输模式。根据在cmd线上发送的命令,可以发送单模块数据,也可以发送多模块数据,协议规定,在默认情况下只在dat0上传输数据,但是如果在SD卡控制器的寄存器里把传输宽度设置成4,就可以在dat0,dat1,dat2,dat3上传输数据,在通过CRC效验码来检查数据是否出错,是否重传。

      5结 论

      本文系统的介绍了基于RVM验证平台的搭建过程,由此可知: (1)RVM是一个高效的验证环境,它以面向覆盖率分析的方法,大大加快了验证周期的收敛,提高了验证质量。

      (2)RVM利用类封装及分层化结构建立测试平台的技术,从而大幅提高了代码可重用性。

 
【相关文章】
·基于RVM SD/MMC卡控制器验证平台的搭建
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9