SystemVerilog 笔记与知识总结
本仓库提供了一份关于SystemVerilog的笔记和知识总结,特别适合IC验证领域的初学者。这份资源涵盖了SystemVerilog的核心概念和重点知识,帮助初学者快速上手并进行知识补充。
资源内容概述
1. 随机性(Randomization)
- 关键词随机:
rand
和randc
表示周期随机性,随机完所有值再重复。 - 预定义类随机函数:使用
std::randomize()
进行随机化。 - 约束(Constraint):约束与随机变量一起在类中声明。
- 伪随机数生成器(PRNG):
local::
:只在randomize
里出现,其他地方没有。- 伪随机数生成器通过特定算法生成一系列看似随机的数字,但实际上是确定的。
const
:常数声明,最好赋初值,不可二次赋值。
2. 约束(Constraint)
- inside{}:用于指定随机变量的取值范围。
- 权重分布(dist):
dist :=
:表示每一个值的权重相同。dist :/
:表示权重要平均分到值范围内的每一个值。- 使用
$
表示最大值或最小值,例如{[$:4]}
。
- 条件约束:
->
:如果箭头前面表达式的值大于0(等于1,为真),则触发后面的约束,相当于if
。
适用人群
这份笔记和知识总结特别适合以下人群:
- IC验证领域的初学者。
- 希望快速掌握SystemVerilog核心概念的学习者。
- 需要进行知识补充和复习的工程师。
如何使用
- 下载本仓库中的资源文件。
- 打开文件,按照章节顺序阅读,理解SystemVerilog的核心概念和重点知识。
- 结合实际项目或练习,加深对SystemVerilog的理解和应用。
贡献与反馈
如果您在使用过程中发现任何问题或有改进建议,欢迎提交Issue或Pull Request。我们期待您的反馈,以便不断完善这份资源。
希望这份笔记和知识总结能够帮助您在SystemVerilog的学习和应用中取得更好的进展!