购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2.7 ::和.这两个符号使用起来有哪些区别?

::为域的索引符(scope resolution operator),即从一个域中索引某些类型、变量或方法。比如,从某个package或某个类中索引某个类型、变量或方法,又比如我们在调用 std::randomize() 函数时也是从std库(预定义)来引用randomize()函数。

.为层次化索引方式(hierarchy reference),在Verilog设计层次中,可以通过.来索引绝对路径或相对路径下的变量,在SV的验证环境中可以通过.来索引验证结构中的某个子一级实例或它的成员,也可以通过.来索引结构体变量的成员。此外,.还可以用来调用目标中的方法。

关键词:

::,域索引,.,层次索引

避坑指南:

在使用::时,所调用方法或变量应该为静态类型(不支持使用::索引动态类型);在使用.时,所调用的路径层次(无论是硬件层次还是软件层次)都应该存在。否则,不存在的硬件层次在链接时(elaboration)会发生错误,而不存在的软件层次在链接时或在运行时会发生错误。

阅读手记: m6skVY1awmzCsaTWkVNGfGaScX0DRzJh+yesNTpU1jBYNeOirNiQLmPPHXRBPihv

点击中间区域
呼出菜单
上一章
目录
下一章
×