直接开始讨论example08-08. 这个例子和07-03非常相似,07-03使用transport_port来传输stimulus, 而08-08使用sequence机制来产生stimulus.
08-08的架构图如下:
只有fpu_seq_rand/fpu_sequencer/fpu_driver和07-03不同,其他都一样。最终程序运行的结束判断条件也是由fpu_coverage来决定。 在07-03中引入了test_case的概念,在08-08中,为了突出sequence和复用的概念,没有引入复杂的test case。fpu_talker仅仅用来显示transaction的内容。 fpu_monitor用来监测BUS上的transaction,并且打包成fpu_pair. fpu_tlm是行为级golden model. 整个设计架构非常清晰明了。
从上图标识的两个port可以看出,为什么ovm_seq_item本身是从ovm_transaction继承而来,目的在于sequence机制传输的item亦可以用标准transport来传输。数据类型直接通用。seq_item只是ovm_transaction的一个特例而已。