随笔分类 - SystemVerilog学习
摘要:# 工程组织 可以将一些公用的变量定义成package,放到同一个sv文件中,然后在需要用到公用变量的文件中通过import来引用变量,创建filelist时,需要通过+incdir+(包含package的sv文件的路径)来指示,并将这些package的sv列在其他sv前面 ``` package
阅读全文
摘要:# 常用断言 ``` assert property (@(posedge clk) disable iff(~rstn) (a -> b)); assert property (@(posedge clk) disable iff(~rstn) (a b)); assert property (@
阅读全文
摘要:1、原始类与扩展类 (1)原始类被称为父类或者超类,扩展类被称为派生类或者子类。扩展类可以直接访问原始类和其本身的所有变量,应该将原始类中的子程序定义成虚拟的,这样它们就可以在扩展类中重定义。new函数无法扩展,SV始终基于句柄类型来调用new函数。 (2)扩展类的构造函数 如果基类构造函数有参数,
阅读全文
摘要:1、几种语句块的区别 (1)fork……join:块内语句以并发方式执行 (2)begin……end:块内语句以顺序方式执行 (3)fork……join_none:其块内语句执行时,父线程继续执行 (4)fork……join_any:其块内第一个语句完成后,父线程才继续执行,其他停顿的线程也得以继续
阅读全文
摘要:1、受约束的随机测试法(CRT) 随着设计变得越来越大,要产生一个完整的激励集来测试设计的功能变得越来越困难。解决的办法是采用受约束的随机测试法自动产生测试集。CRT环境比定向测试的环境复杂,不仅需要产生激励,还需要通过参考模型、传输函数或其他方法预测输出结果。然而只要准备好了这个环境,就可以运行上
阅读全文
摘要:1、测试平台的构建 发生器(generator):创建事务并且将它们传给下一级 驱动器(drive):与设计进行会话 监视器(monitor):捕获设计返回的事务 计分板(scoreboard):将捕获的结果跟预期的结果进行对比 测试平台应该分成若干个块(block),然后定义它们相互之间如何通信。
阅读全文
摘要:1、验证一个设计的步骤: 生成输入激励,捕捉输出响应,决定对错和进度 2、连接设计和测试平台 信号连接:SystemVerilog已经扩展了传统的reg类型,可以像wire那样用来连接模块,它的新名字为logic,logic不能多驱动。 -缺点:使用信号连接极易出错。 接口:接口可以看作是一捆智能的
阅读全文
摘要:1、过程语句 for语句、do-while语句、while语句 1 initial begin 2 string cmd; 3 int file,c; 4 fopen("comman
阅读全文
摘要:1、数据类型 内建数据类型:逻辑(logic)类型、双状态数据类型(bit,byte,shortint,int,longint)、四状态数据类型(integer,time,real) SV对经典的reg数据类型进行了改进,使得它除了作为一个变量以外,还可以被连续赋值、门单元和模块所驱动,这种数据类型
阅读全文
摘要:1、SV入门 参考书籍《SystemVerilog验证 测试平台编写指南》 【美】克里斯·斯皮尔 著 2、仿真环境搭建 仿真工具:modelsim se 2019.2,它不仅支持Verilog,还支持SystemVerilog 、SystemC、TCL等。 下载:https://blog.csdn.
阅读全文