• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

SOC/IP验证工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

文章分类 -  Systemverilog

上一页 1 2 3 下一页

SystemVerilog中$sformat和$formatf的用法
摘要:systemverilog中sformat和sformatf的用法有哪些? 1.基本使用方法 首先查看一下这两个函数什么含义。看下这段代码: string inside_string; string outside_string; $sformat(inside_string, “1.value== 阅读全文

posted @ 2022-04-03 21:57 SOC验证工程师 阅读(1190) 评论(0) 推荐(0)

SystemVerilog中logic var reg wire的区别
摘要:在Verilog中,所有的线网和变量都是使用四态值,因此没必要也不能清晰的区分信号类型。 为了增强灵活性,SystemVerilog中定义信号同时具有类型和数据类型两个属性。 类型指示信号是属于线网(net)还是变量(var)。SV使用所有的Verilog线网类型,并且没有进行任何拓展。 需要注意的 阅读全文

posted @ 2022-01-09 18:59 SOC验证工程师 阅读(767) 评论(0) 推荐(0)

SystemVerilog中字符串String类型的基础知识(一)
摘要:1.字符串变量的长度是字符串中字符的个数。 2.字符串类型的变量是动态的,因为他们的长度在仿真的过程中可能发生变化。 3.通过对字符串变量的索引,可以对字符串中的单个字符读或写。 4.字符串的行为类似于长度为8bits倍数的packed arrays. 5.赋给不同大小的整型变量的packed ar 阅读全文

posted @ 2021-12-20 22:52 SOC验证工程师 阅读(1757) 评论(0) 推荐(0)

systemverilog中门类型-2-双向通过开关bidirectional pass switches
摘要:双向通过开关主要有tran/rtran/tranif0/tranif1/rtranif0/rtranif1 当tranif0,tranif1, rtranif0, or rtranif1设备关闭时,它们应该阻塞信号。当打开时,它们应该通过信号。而tran and rtran 设备不能被关闭,它们一直 阅读全文

posted @ 2021-11-01 22:34 SOC验证工程师 阅读(1455) 评论(0) 推荐(0)

systemverilog中门类型-1-三态门thress state gates
摘要:三态门主要有bufif0/bufif1/notif0/notif1 三态使能门实例声明语法: gate_instantiation ::= enable_gatetype [drive_strength] [delay3] enable_gate_instance { , enable_gate_i 阅读全文

posted @ 2021-10-31 18:40 SOC验证工程师 阅读(1224) 评论(0) 推荐(0)

systemverilog中进程管理-2-线程的停止
摘要:你需要在测试平台中创建线程,也会需要停止线程。 verilog中的disable语句可以用于停止systemverilog中的线程。 SystemVerilog提供了两大类process的控制方式,分别为wait和disable。 disable语句常用的多种方式包括:disable block_n 阅读全文

posted @ 2021-10-31 16:35 SOC验证工程师 阅读(883) 评论(0) 推荐(0)

systemverilog中进程管理-1-线程的发起
摘要:在实际的硬件中,时序逻辑通过时钟沿来激活,组合逻辑的输出则随着输入的变化而变化。所有这些并发的活动在verilog的寄存器传输级上是通过initial和always块语句,实例化和连续赋值语句来模拟的。 每个线程总是会跟相邻的线程通信。systemverilog中常见的线程间的通信有标准的veril 阅读全文

posted @ 2021-10-31 11:18 SOC验证工程师 阅读(299) 评论(0) 推荐(0)

systemverilog中输入/输出系统任务和系统函数---$sformat和$sformatf使用方法及其区别
摘要:文件I/O任务和函数(IEEE Standard for SystemVerilog 21) 将数据格式化为字符串(IEEE Standard for SystemVerilog 21.3.3) variable_format_string_output_task $sformat ( output 阅读全文

posted @ 2021-10-27 22:22 SOC验证工程师 阅读(1705) 评论(0) 推荐(0)

systemverilog中rand机制的 $urandom_range()函数
摘要:使用SystemVerilog中的rand机制, 经常会用到$urandom_range()这个函数, 得到一个无符号的整型数. 语法:$urandom_range(int unsigned maxval,int unsigned minval = 0);​ 有两个参数,一个上限参数和一个可选的下限 阅读全文

posted @ 2021-10-27 22:20 SOC验证工程师 阅读(1915) 评论(0) 推荐(0)

systemverilog中@和wait的区别
摘要:在SystemVerilog中,用来触发事件时,使用->;用来等待事件使用@或者wait。那么@和wait有什么区别呢? 在Verilog中当一个线程在一个事件上发生阻塞的同时,正好另一个线程触发了这个事件,则竞争就出现了。如果触发线程先于阻塞线程,则触发无效(触发是一个零宽度的脉冲); 例如:ve 阅读全文

posted @ 2021-10-27 22:18 SOC验证工程师 阅读(6397) 评论(0) 推荐(1)

systemverilog中创建线程的方法fork join/join_any/join_none以及区别
摘要:测试平台通过已有的结构如事件、@事件控制、wait和disable语句、以及新的语言元素(如旗语和信箱),来实现线程间的通信、同步以及线程的控制。 标准的Verilog对语句有两种分组方式,使用begin...end或fork...join。 begin...end中的语句以顺序方式执行,而fork 阅读全文

posted @ 2021-10-27 22:16 SOC验证工程师 阅读(1499) 评论(0) 推荐(0)

systemverilog中new()和new[]的区别
摘要:在systemverilog中new()和new[]有什么区别? **new()**为一个对象分配空间,初始化变量,并返回保存对象的地址。 **new[]**设定动态数组的大小。动态数组在编译时不知道元素个数,也就是数组的宽度,在运行仿真才知道。 相同点:他们都申请内存并且初始化变量。 不同点:最大 阅读全文

posted @ 2021-10-27 22:14 SOC验证工程师 阅读(926) 评论(0) 推荐(0)

systemverilog中引用ref的用法
摘要:input端口是输入端口;output是输出端口;还有inout端口。 inout端口用于双向连接。如果使用多个inout端口驱动一个信号,sv将会根据所有驱动器的值,驱动强度来计算最终的值。 ref是对变量(不能是net)的应用,它的值是该变量最后一次赋的值。如果将一个变量连接到多个ref端口,就 阅读全文

posted @ 2021-10-27 22:05 SOC验证工程师 阅读(2473) 评论(0) 推荐(0)

systemverilog中automatic的用法
摘要:verilog在20世纪80年代被创建的时,最初的目的用来描述硬件。**因此语言中的所有对象都是静态分配的。**特别是,子程序参数和局部变量是被存放在固定位置的,而不像其他编程语言那样存放在堆栈区里。 在verilog-1995中,如果你试图在测试程序里的多个地方调用同一任务,由于任务里的局部变量会 阅读全文

posted @ 2021-10-27 22:04 SOC验证工程师 阅读(2799) 评论(0) 推荐(0)

systemverilog中线程间通信方法---事件event/旗语somaphore/信箱mailbox
摘要:**测试平台中的所有线程都需要同步并交换数据。**例如在最基本的层面,一个线程等待另一个,多个线程可能会同时访问同一资源;在最高的层面上,线程间需要彼此交换数据。 systemverilog线程间的通信有三种: 1)事件 event 在verilog中,当一个线程在一个事件上发生阻塞的同时,正好另一 阅读全文

posted @ 2021-10-27 22:03 SOC验证工程师 阅读(1264) 评论(0) 推荐(0)

systemverilog中隐式转换和显式转换(静态转换和动态转换)
摘要:systemverilog中的类型转换 显式转换包含动态转换和静态转换 静态转换需要在转换的表达式前加上单引号,该方式并不会对转换值做检查,如果发生转换失败,无法获取相应的警告信息。 在verilog中,对整数和实数类型,或者不同位宽的向量之间进行隐式转换。 静态转换 静态转换失败,不会有任何提示。 阅读全文

posted @ 2021-10-27 22:02 SOC验证工程师 阅读(561) 评论(0) 推荐(0)

systemverilog中常见的数据类型
摘要:systemverilog中常见的数据类型 verilog作为硬件描述语言,属于硬件世界,四值逻辑属于硬件世界; systemverilog侧重于验证的语言,属于软件世界。二值逻辑属于软件世界; verilog中的数据类型bit,bit为二值逻辑,与systemverilog对应的数据类型为logi 阅读全文

posted @ 2021-10-27 22:01 SOC验证工程师 阅读(638) 评论(0) 推荐(0)

systemverilog中$cast类型向下转换和虚方法
摘要:当使用继承来扩展类的功能的时候,需要一些OOP技巧来控制对象和功能。 如果将子类句柄赋值给父类句柄时,编译器则认为赋值是合法的,但分别利用子类句柄和父类句柄调用相同对象的成员时,将可能有不同的表现。 例1:不加virtual的function class Transaction; rand bit 阅读全文

posted @ 2021-10-27 21:58 SOC验证工程师 阅读(355) 评论(0) 推荐(0)

systemverilog中的函数function和任务task
摘要:在verilog中,任务task和函数function之间有明显的区别,例如任务可以消耗时间而函数不能,函数里面不能带有诸如#100的时延语句或诸如@(posedge clock)、wait(ready)的阻塞语句,也不能调用任务,还有verilog中的函数必须有返回值,并且返回值必须被使用,例如用 阅读全文

posted @ 2021-10-27 21:57 SOC验证工程师 阅读(6828) 评论(0) 推荐(0)

sysytemverilog中系统函数$test$plusargs与$value$plusargs的用法
摘要:systemverilog可以采用define与parameter等方式定义变量,但是需要在编译前完成变量的定义,编译之后不能修改。当需要改变编译条件时,经常需要重新编译。并且一旦编译通过,在编译阶段指定的宏定义在整个仿真运行过程中一直有效,因此,如果需要修改宏定义,则需要重新进行编译,从而降低了仿 阅读全文

posted @ 2021-10-27 21:44 SOC验证工程师 阅读(953) 评论(0) 推荐(0)

上一页 1 2 3 下一页
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3