对于芯片设计而言,整个芯片设计过程涉及流片、硬件测试等需要高成本、高耗时的过程,不像软件开发那样能够更轻松的迭代更新、修改和测试,所以IC开发不确定性很高。
而对于上述问题,系统原型和IC验证两个部分就非常关键了。
系统原型能够模拟硬件行为,常用SystemC来实现。IC验证则是通过SystemVerilog(SV)和UVM验证方法学构建软件测试平台,以验证设计出的RTL代码。
所以如果SV搭建的验证平台需要借用SystemC的系统原型,就需要一套通信标准实现跨语言组件通信。因此事务级建模(Transaction Level Modeling, TLM)1.0 通信标准得到了广泛使用。TLM最大的特点在于不依赖时间跨度,无需时钟驱动能够实现无缝组件通信。
除此之外,如果仅讨论SV和UVM搭建的验证平台,相比于SV中mailbox实现线程通信,TLM1.0也很有优势:
● TLM1.0可借助Analysis端口实现一对多广播式通信,还支持initiator非阻塞式空发
● 同时SV使用mailbox通信还存在着跨层次直接通信的问题,而TLM1.0可借用export端口实现层层定位连接,不会存在跨层次连接的问题。
● TLM1.0的封闭性更强,当两个component建立起通信之后,该通信不允许其他component参与。
● initiator执行数据流方法和target执行数据流方法互不依赖(initiator只需调用put、get就可,target只需实现put、get方法就行),而SV必须依赖媒介mailbox
本篇讲TLM1.0