论文部分内容阅读
随着IC设计和制造技术的发展,芯片的设计规模越来越大。SOC已经成为当前IC发展的主流方向。SOC在单颗芯片上集成了众多IP以提高设计速度,这使SOC功能的复杂度急剧的提高,同时也给SOC的验证工作带来了巨大的挑战。与传统的ASIC验证不同,SOC的验证不仅包括了硬件的验证,还包括软件的验证。传统的验证技术已经不能满足SOC验证的需要,在SOC的系统级验证中,要采用软硬件协同验证方法。目前,验证是影响SOC项目开发进度的关键因素,它所需要的时间已经占到整个开发周期的70%左右。因此如何缩短验证时间,提高验证的质量,对缩短SOC芯片的上市时间具有决定性的意义。本论文的研究工作是以一个基于ARM9内核的SOC芯片开发项目为背景。论文首先简单的介绍了SOC的开发流程和传统的IC验证技术,包括功能验证、时序验证、形式验证、物理验证等。接着引出了SOC软硬件协同验证技术,重点讨论了目前广泛应用的两种软硬件协同验证的方案:基于仿真平台的协同验证和基于FPGA原型的协同验证。然后详细的介绍了待验证项目的SOC的系统架构和片上资源,其中,微处理器ARM9是系统软件和硬件进行交互的中介。本文最后两章详细地讨论上面提到的两种软硬件协同验证方案。在基于仿真平台的协同验证中,首先介绍了SOC的层次化功能验证和目前常用的几种软硬件协同仿真方法;然后重点论述本项目SOC的软硬件协同仿真系统的组成,包括硬件设计、软件设计和仿真平台的设计;最后本文以SPIM模块的协同仿真为例来说明此方案已成功实施。在基于FPGA原型的协同验证中,首先分析了用FPGA实现SOC的原型验证的可行性、目的及挑战;接着介绍了FPGA协同验证中的实用技术,如移植技术、调试技术等;然后重点介绍了本项目FPGA原型验证平台的设计和软硬件协同调试过程;最后本文以UART模块的FPGA验证来说明此方案也已成功实施。在项目实践过程中,本人已深刻的体会到两种验证方案各自的优缺点,仿真验证易于调试,但速度太慢,而FPGA验证速度够快,但调试不太方便。在实际的应用中,一般会根据不同的验证阶段和验证目标,采用两种方法相互配合,协调工作的方式进行验证,从而达到最佳的验证效果。