问:谈谈对于SOC芯片验证的理解?
答:芯片验证包括模块级的验证,系统级的验证以及FPGA的原型验证三个部分。
第一个是模块级block level verification的验证主要是基于覆盖率(coverage)的验证,对模块进行全面的评价,包括模块功能的coverage 和RTL code 的coverage。用到的方法包括:assertion based verification (ABV)和 coverage driven verification(CDV)。ABV就是指插入断点的方法学,CDV主要涉及到UVM的方法学。
第二个验证的阶段就是系统级的验证,验证SOC集成的正确性,主要考虑四个方面:SOC需要做bus的集成还有一些模拟IP的集成;同时还会验证memory map,因为bus上有很多模块每个模块都有自己的地址,要看验证地址的设定是否正确;芯片集成了时钟和复位电路等,芯片的启动过程是否正确也需要验证;同时在系统级也会做function mode 和test mode的验证,function mode的验证方法主要是写C的code,经过编译之后用跑CPU的方式,而test mode 所用的验证方法就是verilog testbench 。
第三个验证FPGA的原型验证,在前面提到的系统级的验证是用C code在我们的服务器上去跑,如果C写的比较多的话会跑很慢,这个时候如果用FPGA去跑就会快很多,可以实现加速软硬件协同的验证的目的,让软件人员尽快实现Driver层面的验证,同时也会用跟真实芯片接口(如SPI等)的兼容性进行验证,加快实现接口兼容性的验证,验证的语言也是用C code。
文章评论(0条评论)
登录后参与讨论