验证总让人和机械劳动,没有价值等概念联系起来,如果你不培养自己这方面的兴趣,那你还真的做不出来什么有价值的东西。因此兴趣需要培养 :)

 

1. Mutation

鉴于该项目还在patent search阶段,延迟2个月再来完善;

2. HTB

Hybrid testbech,目的是复用IP level的checker(假定是用UVM写的)到chip的验证环境中(假定是C++fusion这一套),同时要解决很多VIP没有mesa仿真model的问题。

其实就是解决前面文章提到的mesa的缺点。

2.1 how it works?

 

两个部分,第一个部分是将dut的signal和uvm的interface建立起联系,这样当把dut放到fusion-mesa环境里时,uvm(在ncsim里run)仍然能够看到接口信号;另一个部分是通过socket接口,将uvm所有的backdoor操作(VIP一般都支持backdoor access)映射到mesa环境里。

2.2 实现方法

第一部分由eda team和cdn合作完成,细节不详,第二部分有我们自己开发,denali vip的调用最终都会实现成这个样子:

write_data(trans.rank_select, trans.address, trans.data)
 |
+> write_inst_data(ddr4sdram_mem_inst, addr, wr_data)
      |
     +> inst.backdoor_write(trans) // inherit from denaliMemInstance
            |
           +> write(trans) // write is denaliMemInstance’ function

我们在write(trans)和backdoor_write之间加一层,在该层把我们需要的信息存储下来,同是通过systemverilog的DPI-C/C++接口将信息送到socket的一端。在fusion一端,守护进程每个cycle都进行端口检测,并把所需信息放回给uvm端。