欢迎来到天天文库
浏览记录
ID:40571850
大小:17.53 KB
页数:3页
时间:2019-08-04
《SoC设计与验证技术发展综述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SoC设计与验证技术发展综述随着工艺能力和设计能力的快速发展,为了满足嵌入式系统市场对于成本、功能和功耗的要求,SoC(Systemon-a-Chip)设计技术已经成为一种发展趋势。众所周知,迄今为止在集成电路发展过程中,摩尔定律(单芯片上所能集成的晶体管数目每18个月翻一番)一直在起作用,因此SoC的规模和功能在不断急剧膨胀,使得设计验证日益重要,向业界提出了巨大挑战,已成为了整个SoC设计流程的瓶颈。目前芯片一次投片成功率只有35%左右,造成芯片重复投片的主要原因就是验证不够充分。SoC设计的验证需要投入的资源已占整个
2、设计资源的60%~80%。。现在愈来愈达成共识:单一的设计工具难以解决验证问题,而需要一系列复杂的工具和技术,来减少设计错误数,使之达到可接受的程度。SoC验证研究内容很多,如:IP核/模块级验证、系统级验证、仿真验证、软硬件协同验证、等价性检查、静态时序分析和时序验证、版图验证等。随着验证技术的逐步发展,验证方法由最初的直接测试向量生成,到约束随机测试,再到覆盖驱动验证,一直到最新的基于断言的验证方法,各种验证方法在不断创新发展。有了SoC验证流程还很不够,需要验证计划,这为SoC验证工作提供重要质量保证,它规划如何来
3、验证一个设计,主要包括以下内容:1.对模块和顶层的测试策略2.组成标准测试程序的各个组件的定义和规范,如BFM、总线监视器等3.用到的验证工具和流程4.仿真环境的定义和搭建5.关键的验证点6.验证工作结束的标准一、功能验证内容功能验证是验证中最复杂,工作量最大同时也是最灵活的部分,包括模块/IP核级验证、系统级验证、模拟仿真等。二、模块/IP核级验证任何SoC设计均由一系列模块组成。模块可能是自己开发,也可能是重用第三方的IP核。不论哪种情况,在系统集成前做IP核验证工作是必需的。软性检查主要检查
4、代码语法、可综合性、变量未初始化、结构化可支持性和端口失配性等;规范模型检查主要做设计特征遗漏性检查,以在早期发现错误状况,尤其对控制流设计效果明显,通过设计文档非正式说明、与设计者非正式沟通等途径抽取特征疑问,逐一验证,消除缺陷;功能验证主要利用基准测试向量基于事件或基于时钟进行功能验证,如白盒测试和灰盒测试等;协议检查主要验证是否违犯总线协议或模块互连约定,按照协议逐一检查并比较结果;直接随机测试通过随机产生数据、地址、控制等信号检查功能正确性,减少模拟仿真工作量;代码覆盖率分析主要根据模拟仿真时统计代码被执行数,可以按陈述
5、句、信号拴、状态机、可达状态、可触态、条件分支、通路和信号等进行统计分析,以提高设计可信度。三、系统级验证系统级验证主要确认芯片体系结构满足所赋予的功能/性能要求。系统级设计阶段将用户需求转换成功能/性能要求,并实现行为/功能设计,然后映射到相应的体系结构上,最后进行系统级验证。在系统级验证中,往往要构建虚拟目标系统,如中科SoC芯片在实施验证时,将其所有对外接口挂接许多虚拟IP核,同时编制了BIOS、RTOS及应用测试程序。首先做功能验证,验证是否满足要求;其次做软硬件性能验证;第三做系统级基准测试(自顶向下验证策略)
6、,抽取特定功能,编制测试向量/程序,定义对错条件,覆盖所有功能,形成基准测试程序,用于模拟仿真。四、模拟仿真功能仿真:主要关注模块-模块(IP核-IP核)间互连验证、系统总线协调性验证和标准规范兼容性验证等,由于复杂度高,可通过事件驱动和加速技术,如硬件加速器、模拟发生器和快速建模试验等来加速和简化仿真工作。事件驱动仿真:使用比较普遍,像NC_Verilog、VCS等均支持,但受芯片规模和性能限制。首先设计代码被仿真工具所接受,其次编制基准测试向量(波形或RTL),第三运行仿真,第四通过单步调试,错误定位、改正后可再次仿
7、真。时钟驱动仿真:在每一时钟结束时计算电路稳态响应,不考虑时序方面的问题,时序需要静态时序分析工具来验证是否满足要求。时钟驱动仿真比事件驱动仿真速度要快10~100倍,适合大规模电路仿真。五、FPGA验证FPGA验证成为SoC设计流程中重要的一个环节,一方面作为硬件验证工具,可以将所设计的RTL级代码综合实现后写入FPGA芯片进行调试检错;另一方面可以进行软件部分的并行开发,在验证板上检测驱动程序、启动操作系统。FPGA验证的流程相当于一个FPGA设计的主要流程,它主要分为设计输入、综合、功能仿真(前仿真)、实现、时序仿
8、真(后仿真)、配置下载、下载后板级调试检错这几个步骤。总的来说,FPGA验证是整个SoC设计中一个重要而且有效的验证步骤,用来改进RTL级设计代码,验证功能的正确和完整性,提高SoC流片成功率。功能验证方法方法有很多1.时序验证时序验证是用来避免时序异常的验
此文档下载收益归作者所有