基本环境
my_top
my_test/my_if/my_DUT
my_env
my_agent1/my_agent2.../my_predictor/my_scoreboard/vseq/vsqr
my_driver/my_monitor/my_sequencer
my_sequence
my_sequence_item
vsqr可以理解为一个sequencer中心化的路由器;
vseq可以理解为所有sequence的调度器;
激励在sequence/sequence_item中完成基础约束;在例化时,完成完整的约束(具体的过程可以在vseq中写好,在my_test中例化时仅需要几个控制变量,利用这几个控制变量完成完整的约束)
例如需要一个长包/短包/错包都可以在vseq中事先约束好,然后通过一个控制变量pkg_type[1:0]来控制;
在vseq中还可以完成各个sequence的调度,例如一个模块前后都会给激励,此时可以通过fork_join等操作,同时驱动两个激励到各自的vsqr.sqr(这里vsqr.sqr会跟各个agent中的sqr连接),由sqr再给到drvier,各自driver会根据各自的时序驱动到DUT;(当然也可以在vseq这边完成时序匹配,这样driver那边不需要做)

field_automation
print()/compare()/pack()/unpack()
config机制
使用专门的类来组织config变量,完成各种参数配置
可以通过设置pkt_num给到sequence和driver保证激励数量一致(已经被raise_objection和drop_objection替代)

1万+

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



