- 博客(11)
- 资源 (5)
- 收藏
- 关注
原创 VMM testbench diagram
如上图, vmm testbench的结构如下SYSCfg 包含了全局开关,这些开关控制了是否允许randomize,是否启用default值,是否允许error/delay injection, run_for_n_packets. REGCfg 包含了register要配置的初始值,memory的初始值CfgDUT 调用RAL的handler, 根据REGCfg的值配置各
2010-02-26 16:53:00 2161
原创 VMM coding style -- recommended by synopsys AE
1. 定义一个系统级的config类, 如 syscfg. 在类中集中了所有的控制变量(总开关),这些变量决定了是否允许randomize,error injection, delay injection, 产生包的个数,等等 这样可以有效的消除一些不必要的callback。一般callback只是用于将某段代码开放给后面的维护人员以便进行一些复杂的修改之用。 Callb
2010-02-25 09:55:00 3018 1
原创 再谈VMM文件的组织形式
上次谈到的VMM的组织形式,VCS编译器不能很好的支持。根据synopsys的指导更新一下如何组织VMM testbench1. testcase 在 programe 语句块内 include vmm_sv 以及 tb_env.sv2. tb_env class 定义之外 include 所有的 vmm_data, vmm_xactor的扩展类, 并且严格按照调用顺序。3. 所有的
2010-02-24 11:43:00 1712
原创 VMM中各个类的构造函数--new的参数
vmm_data的派生类的new函数中,只是用静态的log去初始化消息服务窗口和通知窗口。vmm_data的stream_id和transactor相关,因此stream_id由transactor给出。同理,data_id 由generator在每产生一个产品的时侯increase。function new(); super.new(log);endfunctionvm
2010-02-05 23:38:00 2183
原创 迅速构建最初级的VMM testbench
一般在design才出来的阶段,我们需要迅速构建一个简单够用的testbench,以便能够检查最基本的功能。这样的direct test 的testbench需要几个组件1. interface 2. transaction descriptor 3. Driver/BFM/Master with in_chan 4. tb_env (只有一个Driver)组件5.
2010-02-04 00:12:00 1655
原创 vmm_atomic_gen and vmm_ms_scenario_gen
对外开放的公共成员: class_name_channel out_chan; //output channelint unsigned stop_after_n_inst; //仅仅生成n个产品,并放入out_chan中class_name randomized_obj; //由blueprint拷贝生成的对象两个事件,GENERATED和DON
2010-02-04 00:07:00 1861
原创 vmm_xactor
vmm_xactor为我们构建所有的component提供了基类模板。generator,BFM,Driver,Monitor,scoreboard都是从vmm_xactor派生出来的。1. 主要数据成员 vmm_log log; // transactor基类的消息接口 int stream_id; // t
2010-02-03 23:49:00 3454
原创 vmm_data
1. 成员解释:stream_id: 指示何种设备发出或传送的transaction。一般和transactor相关data_id: transaction的序号scenario_id:某设备传送的一组transaction,构成了一个scenario.vmm_notify 我们只需要指定一个静态的log就可以构造出一个vmm_data实例。即, new(vmm_log l
2010-02-03 23:35:00 2300
原创 vmm_notify
vmm_notify类实现进行通知服务的接口。该通知服务可为并发线程或者事物提供同步机制。1. 通知可以和某一个由vmm_data派生出的status descriptor实例相关联,以便以后重新得到这个关联的status descriptor。如下:this.notify.indicate(int notification_id, vmm_data status);....$
2010-02-03 23:28:00 2934
原创 vmm_log
vmm_log 类用于实现消息服务的接口。创建时指定接口名以及实例名。与特定接口名和实例名匹配的所有消息服务接口都受到这种方法的影响。function new(string name, string instance) 在vmm_xactor, vmm_channel, vmm_env这些组件中都有vmm_log这一公共成员,可以说基本所有的基类都有。缺省的是vmm_log在这些基类构
2010-02-03 23:20:00 8037
原创 VCS自动连接NOVAS文件(SV enhance)
在2006版本以后的vcs(VCS-MX 2006.06.SP1-8)支持自动连接novas相关的PLI。然后通过vcs -fsdb 选项(或者 scs,simv,scsim)来链接novas。带来的方便是,vcs运行时不需要再加上-P, +vcsd, -debug_all这些选项了。还有一个好处是对systemverilog的支持更加完美了。譬如支持logic变量在波形中的显示,支持syst
2010-02-02 22:54:00 5202
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人