[SV]local和protected的区别

news/2025/1/17 21:36:02/

local和protected的区别

Q1:什么时候用local和protected?

A:local和protected的封装属性,都可以隔离外部对类成员变量的访问。对于验证环境,反倒一般不建议添加local和protected,因为一般验证环境的层次没有太深太复杂。在开发验证环境时,一开始可以先放开访问权限,这有益于早期环境的稳定。待环境稳定后,可以考虑对哪些内部方法添加local、protected等访问权限的限定。这部分的建议与传统的软件开发的观点有所不同。

Q2:内嵌约束中的local::表示什么?

 A:在使用内嵌约束(inline constraint)即randomize(item) with {CONSTRAINT}时,约束体中变量名的查找顺序默认是从被随机化的对象开始查找的。但是如果调用randomize()时所处的局部域(local scope)中也有同名变量,那么就是需要使用local::来显式声明该变量来源于外部,而非被随机化的对象(在约束中也可以使用this、super来索引这些变量)。

A:local::只表示“域”,并不指代某个句柄,所以也可以用local::this表示调用randomize()函数时所在对象的句柄。

Q3:parameter、localparam和const有什么区别和差别?

A:相比于localparam,parameter可以在实例化的时候从外部修改。parameter值的修改,可以通过实例化时通过#以order list的方式完成,也可以通过defparam赋值语句来实现。

A:localparam是局部参数,无法再次修改,自然也不能通过外部实例化时从外部修改。localparam在赋值时可以引用parameter。

A:parameter和localparam都是在elaboration时确定的,而const常量则是在仿真时确定的。与localparam类似的地方在于,const一旦定义和初始化也就无法再修改它的值了。

A:const常量虽然在代码中不能再次对其进行赋值,但在仿真时任然可以通过force来修改它的值,进而影响与其相关的逻辑行为。

A:需要注意的是,不能通过force来修改parameter和localparam的数值。


http://www.ppmy.cn/news/38584.html

相关文章

C 错误处理

C 错误处理 C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码 errno,该错误代码是…

【动手学习深度学习笔记】

第二章预备知识 节省内存:使⽤切⽚表⽰法将操作的结果分配给先前分配的数组 Z[:] XY就可以把结果覆盖在Z的原内存上,而不是新开辟内存,就节省了内存了 处理缺失值 inputs,outputs data.iloc[:,0:2],data.iloc[:,2] # iloc为位置索引 in…

ABC252 D - Distinct Trio

还有一天就篮球被了,好紧脏.... 我的世界将被摧毁,也许事与愿违 是时候放弃一些东西了呢 D - Distinct Trio (atcoder.jp) 思路: 注意到值域很小,我们可以用值域的前缀和来维护全局哈希,即用前缀和来维护多少数比x…

华为OD机试-最多组合直角三角形个数-2022Q4 A卷-Py/Java/JS

题目描述 有N条线段&#xff0c;长度分别为a[1]-a[n]。 现要求你计算这N条线段最多可以组合成几个直角三角形。 每条线段只能使用一次&#xff0c;每个三角形包含三条线段。 输入描述 第一行输入一个正整数T(1<T<100)&#xff0c;表示有T组测试数据. 对于每组测试数据&…

自然语言处理(七): Deep Learning for NLP: Recurrent Networks

目录 1. N-gram Language Models 2. Recurrent Neural Networks 2.1 RNN Unrolled 2.2 RNN Training 2.3 (Simple) RNN for Language Model 2.4 RNN Language Model: Training 2.5 RNN Language Model: Generation 3. Long Short-term Memory Networks 3.1 Language M…

机器学习:无监督学习之deep generative model

无监督学习 费曼的思想&#xff1a;what i can not create, i do not understand 不知道怎么产生的话&#xff0c;是不能完全理解的。 Create - Image Processing Generative Models PixelRNN 输入一个3x3的像素块&#xff0c;输出3x3的像素块。再把所有的加入继续送入网络输…

【C++从0到1】12、C++11初始化赋值

C从0到1全系列教程 1、C和C11初始化赋值 把值写在小括号中&#xff0c;等于号可以省略&#xff08;C标准&#xff09; int a(15); // 声明变量a&#xff0c;初始化值为15。 int b(20); // 声明变量b&#xff0c;初始化值为20。把值写在花括号中&#xff0c;等于号也可以省略…

fcpx快闪插件推荐,让视频片头片尾更动感

FCPX快闪插件是一款为苹果Final Cut Pro X软件开发的过渡特效插件&#xff0c;可以帮助用户在视频剪辑中添加各种炫酷的快闪转场效果。以下是不错的fcpx快闪插件推荐&#xff1a; FCPX插件-快闪欢快节奏图文展示开场片头Clean Fast Opener 是快闪动感节奏图文展示片头视频FCP…