论文部分内容阅读
摘要:伴随着设计规模的不断扩大和工艺水平的日益提高,集成电路技术正在飞速发展。一方面,客户的需求日益多样化,对芯片的设计要求越来越高,另一方面,芯片设计厂商为了利润最大化,不断缩短设计制造周期,这就势必给芯片设计带来更大的难度和挑战,产生错误的几率也会随之增大,那么如何确保集成电路芯片正常可靠的运行,保证设计的一致性和正确性,是验证工程师正在面临的一个严峻难题,也同样是芯片设计是否成功的关键所在。论文依托一款正在设计的3D集成电路芯片(基于Cortex-M3处理器)。通过学习与芯片验证相关的原理、技术、设计,在设计过程中,对该芯片进行验证。其中重点研究了高质量测试激励的生成以及验证覆盖率的评估与分析。本论文在简单阐述了集成电路设计流程的基础上,对当今主流的验证技术方法进行了研究和分析,并结合具体的“3D芯片”工程项目,确定了以模拟验证为本论文的研究方法。本论文的主要研究工作如下:1.芯片的模块验证。采用矩阵计算的方法验证ALU部件,并设计测试激励对SysTick定时器中断、外部中断、SPI的两种工作模式以及UART收发数据等功能进行详细验证。2.芯片的整体性验证。采用经典测试激励Dhrystone对系统进行性能测试,将测试结果与成品STM32做比较。此外,通过计算器程序对芯片各大模块进行了综合验证。最后设计演示系统证明了硬件检查点的可行性。以上三种应用程序都对芯片的整体性功能进行了充分的验证。3.指令覆盖率的评估与分析。利用工程中的tarmac模块生成的有指令详细执行情况的tarmac.log文件,对前面验证的所有程序进行统计,并在此基础上通过C语言嵌入汇编的方式手动编写测试,最终达到92%的指令覆盖率。本论文的研究工作贯穿整个芯片的设计流程。通过发现并反馈错误确保功能的正确性以及完备性,验证时序的收敛性以及硬件的可测性,对最后芯片的成功流片以及正确实现其预期的功能起到了重要的作用。