路科验证的个人空间 https://blog.eetop.cn/1561828 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

验证系统平台的发展趋势

已有 1585 次阅读| 2016-11-27 22:06 |个人分类:验证前沿资讯|系统分类:芯片设计

近年来,在电子工业领域发生着一个显著的变化,那就是软件在整个系统中越来越多的成为主导者,甚至在很多产品中,软件应用成为唯一的不同点这样使得许多系统公司对于半导体硬件公司的期望很多,希望他们不仅仅是能够提供物理芯片的设计,而且能够准备好包括软硬件的系统平台以供他们去开发新的软件应用,为了能够适应这种需求,让我们的产品上线时间更短,我们需要一个良好的软硬件协同验证平台
在此之前,我们的系统设计一直遵循这样的选择:先硬件后软件,即先设计硬件,验证通过后再拿来在它的基础上设计软件,但随着软件的比重不断增加(近年来,软件设计在系统中所占的比重已经超过50%),这样的系统设计方法显然会极大的浪费时间和金钱,面对这样的情况,我们提出了一些解决方法,包括虚拟原型,测试平台仿真,硬件加速,FPGA原型
虚拟原型:虚拟原型是一个基于软件的系统模型,它在系统设计早期(没有硬件原型)被用来代替硬件设计的作用,其中包括处理器和一些外围设备,它可以以接近真实电路的速度进行仿真,这样软件设计人员就可以利用它进行软件开发,和硬件系统并行设计,除此之外,它还可以在系统设计后期(硬件原型已经具备)被半导体公司当做替代硬件原型的参考板卡(reference board)交给软件设计公司,因为它是由软件实现的,会有更好的debug环境,能够节省软硬件集成时间,但是对于它来说不好的地方在于它是独立于我们的验证环境来实现的,和我们真实的RTL没有任何的连接关系,这让我们的验证显得有点断崖

测试平台仿真:测试平台仿真一直是我们验证RTL的最主要的方法,现在比较先进的仿真器支持覆盖率驱动的验证,它以覆盖率结果为导向来调整随机测试激励的约束情况,但测试平台仿真有个很大的缺点是,它的仿真速度随着设计复杂度增加并不是线性下降,而是下降的很快,这就导致在设计复杂度增加的时候,它的仿真速度会变得有点不可接受,让debug速度大大下降

硬件加速:硬件加速提供硬件设计在内的验证,但仿真速度相比测试平台仿真确实数量级的增加,仿真速度之所以增加很多是因为在硬件加速中,有一部分的硬件设计是在硬件电路上去仿真而测试平台在工作站上进行仿真,而且由于在硬件加速中,测试平台并没有在硬件平台进行仿真,所以对于在软件仿真中支持的特点它都支持,包括受约束的随机测试,覆盖率收集,debug的方便性等等,但由于硬件加速的平台相对于我们上一个验证平台(测试平台仿真)和下一个验证平台(FPGA原型)都没有任何连接性,是独立存在的,导致我们无论是从上一个验证环境切换过来还是切换到下一个验证环境都需要人为手动去迁移环境,这毫无疑问会带来时间上的巨大浪费
FPGA原型:几乎所有的ASIC和SOC项目都会用到FPGA原型,FPGA原型的仿真速度和真实硬件电路仿真速度相当,而且它可以连接真实的硬件和接口,但是它比较大的缺点是debug起来比较困难,因为对于它来讲,仿真的时候并不是所有的信号都是可见的,我们需要提前定义需要查看的信号,然后在仿真的时候工具去匹配这些信号,并赋予信号变化的值

以上是在我们在系统验证中会经常用到的验证方法,每一种验证方法都有它们自己的特点和使用周期,但由于验证过程是一个阶段一个阶段递进的,如果每一个阶段我们都要搭建一个新的验证环境,这就给我们带来很多时间和金钱上的浪费,尤其是现在这种设计复杂度越来越高的情况下,我们需要一种开放,互联,可扩展的高度自由的软硬件协同验证环境来代替上面这些封闭,碎片化,有限制的验证环境,来让我们的验证进程走的更加顺利,鉴于上面这些验证平台共有的局限性,Cadence发布了一个综合性的系统验证验证平台,它的应用可以从刚开始的模块设计验证到早期的软件设计测试再到后期的系统的debug和集成,把我们主要用到的所有验证环境集成在了一个验证套件中,所有我们需要用到的这些小的验证平台是作为一个整体出现的,不需要我们在验证过程中去手动的切换验证环境,给我们的验证过程带来了很大的便利
在Cadence给出的验证套件中,包括Virtual System Platform,Rapid Prototyping Platform,Verification Computing Platform,Inclusive Verification Platform,以上四个平台都一起工作,共享数据(包括仿真器,debug接口,编译环境,仿真环境)具体如下图:
对于Cadence提供的验证平台组件有一下几个特点:开放,互联,可扩展,对于开放的特点,Cadence所提供的验证平台组件都是基于工业标准设计开发的,例如Virtual System Platform采用了OSCI,TLM和IEEE-1666 SystemC标准,并且提供了TLM2代码生成器(输入文件是基于IP-XACT标准),Incisive Verification Platform支持标准语言如e,SystemC,Systemverilog和UVM1.0,Verification Computing Platform支持UVM,Rapid Prototyping Platform支持标准设计语言和一些标准接口如PCIe,USB等,对于互联的特点体现在所有这些平台使用统一的数据库,从一个平台切换到另一个平台非常容易,具体实现参考原文,由于各个平台之间切换非常容易,这使得我们的环境可以很容易的切换到不同抽象级的平台上去,这就使得我们可以随时根据系统验证的具体要求采用不同的验证环境来满足特定的性能,例如Virtual System Platform可以让我们很容易的从单核切换到多核来获得性能的提高,Verification Computing Platform也提供最大20亿门的配置等等,还有一些其他详细的配置参考原文

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 253

    粉丝
  • 25

    好友
  • 33

    获赞
  • 45

    评论
  • 访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-25 14:12 , Processed in 0.010903 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部