基于SystemC事务级协同验证方法研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SystemC事务级协同验证方法研究

基于SystemC事务级协同验证方法研究   随着深亚微米集成电路技术的发展,系统芯片上将集成越来越多的IP核,这些IP核不仅包括为数众多的存储器模块、控制电路模块、时钟电路模块、I/O模块和A/D、 D/A模块,还包括很多MCU、MPU和DSP,基于IP核的软硬件协同设计技术已经成为系统芯片发展的必然趋势。软硬件协同设计要求系统功能一部分由硬件实现,而其余部分则由软件实现,系统硬件实现的部分通常是由VHDL、Verilog等硬件编程语言描述其模型,然后进行仿真验证,最后利用EDA工具综合成门级网表并进行版图级的布局布线,而系统软件实现的部分则通常由C、C++等高级语言描述,并最终由软件编译器编译通过。由于系统芯片软件、硬件采用不同的设计方法和描述语言,这给验证带来了巨大的挑战,传统的软件、硬件分开验证的策略并不适合软硬件协同设计的要求,这就需要软硬件协同验证来解决上述问题。   系统芯片复杂度的增加使验证所耗费的周期愈来愈长,成本愈来愈高,据统计,验证已经占到整个芯片设计工作的70%甚至更多[1],为了缓解芯片上市日益紧迫的压力,工业界迫切需要新的验证方法和验证技术,事务级协同验证将是一个很好的选择。基于此,本文将首先介绍一下当前系统芯片验证的主要方法,通过对目前验证方法的分析和评估,提出事务级建模及事务验证策略,文中还将说明事务级设计及验证语言SystemC并在最后简单介绍一下SCV验证库。      当前主要验证方法介绍      系统芯片的验证主要可以分为形式化验证和基于仿真的验证,其中形式化验证方法包括定理证明技术、模型形式检查和等价性形式检查,基于仿真的验证则包括快速原型系统、软硬件协同验证等等。形式化验证与仿真验证的最大区别是形式化验证不需要测试平台(Testbench)和测试向量,虽然形式化验证能够达到较快的验证速度和很高的验证覆盖率,但形式化验证没有考虑设计对象的时序信息,所以该方法只能成为仿真的一种补充,本文后面介绍的事务级验证属于仿真的一种。   目前,系统芯片设计普遍采用IP核复用和基于平台的设计思想,这些复用的IP核包含了相当多的可编程逻辑资源,例如微处理器、数字信号处理器等等,软硬件协同验证能够帮助开发人员在硬件原型生产出来之前就能进行软件的设计和调试,从而大幅度削减芯片的开发周期。软硬件协同验证同时验证系统的软件和硬件,主要分为基于软件的协同模拟技术和基于硬件的协同仿真技术。目前基于FPGA硬件验证平台的协同验证技术正被越来越多的验证工程师采用,笔者所在实验室购买的奥腾公司Nexar2004+NanoBoard开发板正是软硬件协同验证的理想平台,该开发组件中包含了51系列及ARM系列单片机的软核,用户通过将硬件资源和软件资源下载到NanoBoard开发板上的FPGA中,可以实现软硬件的协同验证。   传统的软硬件协同设计中硬件模块是由Verilog等硬件编程语言描述,软件模块则由C、C++等高级语言描述,在基于FPGA的协同验证中,由于FPGA中包含了可编程的软核甚至是硬核,再加上FPGA本身的门电路可以综合成系统所需的硬件,所以利用FPGA开发平台进行协同验证是个不错的选择,但FPGA验证平台通常价格比较昂贵,同时开发人员也不容易观察到MCU,DSP等微处理器内部的状态位和断点信息。将系统芯片硬件模块的RTL描述提升到事务级,并通过SystemC在统一的环境下进行软硬件协同设计与验证能够很好的解决由于系统芯片软件、硬件采用不同设计语言所带来的验证困难。研究表明,在事务级进行验证可以大幅度提高设计生产率总体水平,下文将具体介绍事务级建模及验证方法。      事务级建模及验证方法      事务[2]是指在系统模型中两个组件之间通过接口所做的一次数据的交换或控制的传输,事务可以是读写某个存储单元的简单事务,也可以是数据包传输这样的复杂事务。      图1 基于事务的验证流程      事务级建模(Transaction Level Modeling,TLM)最早出现在系统级语言及建模领域,文献[3]首先定义了通道(Channel)的概念,这里通道将通信和计算分开,下文将会阐述通道和接口是事务级建模的基础。文献[4]具体介绍几种事务级建模方法,其中总线功能模型(Bus Function Model,BFM)应用比较广泛,其它如总线仲裁模型、周期精确的计算模型等则相对受关注程度较小。总线功能模型用来模拟总线的功能,其作用是把底层总线的时序封装起来,向上层提供一个统一的接口,使上层不用关心底层具体的实现细节。在事务级建模中,总线功能模型也可以理解为下文将要阐述的事务器。   事务级模型中的模块可以是硬件模块,也可以是软件模块。事务级模块之间的通信和RTL级模块不一样

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档