端口、句柄、全局变量、直接层次引用,我该如何让你看见我?
时间:2021-11-03 14:56:19
手机看文章
扫描二维码
随时随地手机看文章
[导读]SystemVerilog提供四种不同的实例之间的通信或连接方式:端口、句柄、全局变量、直接层次引用。 端口是静态实例世界的成员之间的连接,如module和interface实例。因此,它们可能不会在动态实例世界类中使用。UVM提供了诸如uvm_tlm_put_port等端口的概...
SystemVerilog提供四种不同的实例之间的通信或连接方式:端口、句柄、全局变量、直接层次引用。 端口是静态实例世界的成员之间的连接,如module 和interface 实例。因此,它们可能不会在动态实例世界类中使用。UVM提供了诸如uvm_tlm_put_port等端口的概念。这些端口不是SystemVerilog 端口,而是一个指针的wrapper 类。因此,UVM TLM端口是一种基于指针的通信方案,它伪装成Verilog和VHDL工程师所熟悉的端口。 类句柄是指向类对象(实例)的指针。virtual interface是一个指向interface 实例的变量。它可以被认为是一个interface 实例的一个句柄。 SystemVerilog中的每个标识符都有一个唯一的层级路径名。SystemVerilog 对象可以从任何SystemVerilog 对象中根据这个层次路径名称引用。虽然这很强大,因为它允许从任何地方到任何地方的通信,但通常不希望使用这种技术。在设计中,这种方法无法综合;在验证中,无法重用。 全局变量是指在某个作用域中声明的可被其他作用域引用的变量。在testbenche中使用全局变量的两个最常见的示例是在package中声明的变量和类的静态属性。建议全局变量仅用于初始化或状态类型通信。不建议全局变量用于在对象之间传输数据,由于全局变量的性质,会存在竞争冒险问题。





