对于芯片设计而言,整个芯片设计过程涉及流片、硬件测试等需要高成本、高耗时的过程,不像软件开发那样能够更轻松的迭代更新、修改和测试,所以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
本文深入探讨了UVM中的事务级建模(TLM)1.0通信标准,包括基本概念如initiator和target,端口的阻塞性、数据流和控制流,以及不同类型的端口通信。TLM1.0在IC验证中的优势在于其非阻塞特性、一对多广播通信和组件间通信的封闭性。此外,文章还介绍了如何避免数据流方法名冲突以及如何使用uvm_tlm_analysis_fifo实现组件的主动数据获取。
订阅专栏 解锁全文
1559

被折叠的 条评论
为什么被折叠?



