目录
一、省略get语句
只要使用uvm_field_int注册,并且在build_phase中调用super.build_phase(),就可以省略在build_phase中的get语句: 原因在白皮书P89.
二、check_config_usage( )
能显示截止到函数调用时,系统中有哪些参数被设置过set但是没有被读取过get,由于config_db的set和get语句一般都用于build_phase阶段,所以此函数一般在connect_phase中调用。
三、TLM相关
- PORT和EXPORT体现的是控制流而不是数据流,发起者拥有的都是PORT端口,而不是EXPOTRT.(白P102);port具有高的优先级,export具有低优先级,只有高优先级的端口才能向低优先级的端口发起三种操作。
- 15种port和export定义:
-
put 端口:
-
uvm_blocking_put_port #(T);
-
uvm_nonblocking_put_port #(T);
-
uvm_put_port #(T);
-
get端口:
-
uvm_blocking_get_port #(T);
-
uvm_nonblocking_get_port #(T);
-
uvm_get_port #(T);
-
peek端口:
-
uvm_blocking_peek_port #(T);
-
uvm_nonblocking_peek_port #(T);
-
uvm_peek_port #(T);
-
get_peek端口:
-
uvm_blocking_get_peek_port #(T):
-
uvm_nonblocking_get_peek_port #(T);
-
uvm_get_peek_port #(T);
-
transport端口:
-
uvm_blocking_transport_port #(REQ, RSP);
-
uvm_nonblocking_transport_port #(REQ, RSP);
-
uvm_transport_port #(REQ, RSP);
-
export,import端口类似,不同的在于import有两个参数uvm_blocking_put_import #(T,IMP);第一个参数是将要传输的transaction,第二个参数就是实现接口的uvm_component;