在芯片验证的漫长旅程中,我们常常会被各种低层次细节所困扰。你是不是也曾经在波形图中挣扎,试图追踪某个信号为何在某一周期出现异常?又或者,你是否曾经花费大量时间编写测试用例,仅仅为了验证一个简单的功能?事务级验证(Transaction Based Verification)正是为解决这些痛点而生的方法。
什么是事务级验证?
简单来说,事务(transaction)是设计中某项活动的抽象表示。通过这种抽象,我们能够以更少的工作量完成模块验证。想象一下,不必关心总线上每个信号的具体时序,只需描述"我要进行一次读操作",这是多么美妙的事情!
事务级测试用例只需描述应该执行哪些高层次事务,而验证环境会将这些事务转换为与模型抽象级别相对应的具体行为。这种转换通常通过transactor或总线功能模型(BFM)来实现。