IC技术圈期刊 文章分类

类别: FPGA(364) 前端(228) 验证(168) 后端(128) 嵌入式(9) 自动化(21) 模拟(23) 求职就业(163) 管理(11) 软件(26) 按月份
SystemVerilog与功能验证方法学
#验证  #FPGA  #UVM  #SystemVerilog 
介绍SyetemVerilog与功能验证技术和方法学,为有效提高验证效率找方法。
科学文化人
SystemVerilog与功能验证方法学
#FPGA  #FPGA  #UVM  #SystemVerilog  #芯片 
介绍SystemVerilog与功能验证技术和方法学,为有效提高验证效率找方法。
科学文化人
验证仿真提速系列--SystemVerilog编码层面提速的若干策略
#验证  #SystemVerilog  #UVM 
随着设计复杂度和规模增加,验证平台复杂度跟着增加。验证平台的仿真速度问题成为验证过程中一个重要问题…
杰瑞IC验证
SystemVerilog | UVM | Phase机制基础
#验证  #SystemVerilog  #UVM  #芯片验证 
Phase机制在基于UVM的仿真中尤其重要,它是整个仿真周期中的同步机制。本文将介绍Phase的基础部分,包括Phase的概念、框架和应用实例。
芯片学堂
SystemVerilog | UVM | 深入Phase机制,看懂Phase机制实现原理
#验证  #SystemVerilog  #UVM  #芯片验证 
本文将在前面介绍Phase机制基本内容的基础上,到源代码中去了解Phase机制的实现方式,并且将尽可能以可视化的方式来呈现Phase机制源码的实现逻辑,属于Phase机制进阶篇。
芯片学堂
SystemVerilog | UVM | 精讲RAL寄存器模型基础
#验证  #SystemVerilog  #UVM  #芯片验证 
RAL(Register Abstract Layer,寄存器抽象层),通常也叫寄存器模型,顾名思义就是对寄存器这个部件的建模。本文要介绍的内容,包括对UVM寄存器模型的概述,如何构建寄存器模型,以及如何将寄存器模型集成到验证环境中。
芯片学堂
SystemVerilog | UVM | RAL寄存器模型操作图鉴
#验证  #SystemVerilog  #UVM  #芯片验证 
本文将展开介绍寄存器模型访问上的一些话题,包括寄存器域段的成员值、寄存器的前后门访问以及具体各种访问方法图示。
芯片学堂
SystemVerilog中队列的越界访问
#验证  #SystemVerilog  #queue 
通过示例说明SystemVerilog中的队列越界访问及注意事项
硅芯思见
SystemVerilog中有界无界的队列
#验证  #SystemVerilog  #queue 
示例SystemVerilog中有界和无界队列的使用注意事项
硅芯思见
动态数组的创建不一定非要new[]
#验证  #SystemVerilog  #dynamic_array 
通过示例说明动态数组的一些使用方法
硅芯思见
SystemVerilog | UVM | RAL寄存器模型操作图鉴
#验证  #SystemVerilog  #UVM  #芯片验证 
寄存器模型操作,指的是通过寄存器模型对RTL中寄存器进行读写访问,或者同步寄存器模型与RTL中寄存器的值。本文将展开介绍寄存器模型访问上的一些内容,包括寄存器域段的成员值、寄存器的前后门访问以及具体各种访问方法图示。
芯片学堂
SystemVerilog | 脱离代码谈芯片验证关键指标:覆盖率
#验证  #SystemVerilog  #UVM  #芯片验证 
验证覆盖率(Verification Coverage)的存在是为了试图回答这样一个问题:“你怎么知道验证已经完成?” 实际上,就算验证覆盖率达到了100%,从逻辑上也不能保证当前的验证是完备的。只不过,100%的验证覆盖率,可以让工程团队对即将tape out的芯片增添不少信心。本文将重点厘清覆盖率相关的概念,以及在芯片开发流程中跟覆盖率相关的事项。
芯片学堂
芯片开发必备工具 | 正则表达式(RegularExpression)使用指南
#前端  #SystemVerilog  #UVM  #芯片验证 
在芯片开发过程中,正则表达式的使用非常常见。初次上手晦涩难懂,多用几次爱不释手!本文将概述正则表达式以及实用的匹配规则,并给出使用表达式的辅助工具:CheatSheet和在线测试工具。获取全文高清图片,可在公众号后台直接回复“正则表达式”获得下载链接。
芯片学堂
验证仿真提速系列--认识“时间”与平台速度定量分析
#验证  #VCS  #SystemVerilog 
…我们今天围绕“时间”这个主题,首先讨论了验证仿真中的“3个时间”建立了基础认知,接着明确了平台提速到底要提哪个时间?最后以vcs工具举例了怎么收集和分析相关信息…
杰瑞IC验证
SystemVerilog中clocking block中的输入偏差和输出偏差
#验证  #SystemVerilog  #Interface  #Skew 
示例说明SystemVerilig中interfae中clocking block的输入输出偏差
硅芯思见
SystemVerilog中格式化输出域宽(field width)如何设置
#前端  #SystemVerilog  #Field Width 
在使用$display等方法格式化显示数据时,经常需要指定显示数据的对齐方式,一般情况下会在百分号(%)和指定基数之间通过指定域宽(field width)实现要显示数据的对齐格式。本文将示例field width在格式化显示中的使用方法。
硅芯思见
SystemVerilog中相互“嵌套”的队列和动态数组
#验证  #SystemVerilog  #Queue  #Dynamic array 
本文示例实现队列和数组之间的相互嵌套存储
硅芯思见
SystemVerilog类中方法定义在类外的那些事儿
#验证  #SystemVerilog  #extern  #method 
在SystemVerilog中所有类的方法都可以定义于类内,也可以定义于类外。一般将比较复杂的方法的实现放在类外,这样可以增加代码的可读性,而比较简单的方法在类内实现。本文通过示例说明外部方法使用注意事项
硅芯思见
从Verilog PLI到SystemVerilog DPI的演变
#软件  #Verilog  #SystemVerilog  #PLI  #DPI  #API 
聊一聊从Verilog PLI发展到SystemVerilog DPI都经历过哪些变化
ICer消食片
SystemVerilog中program提前结束仿真
#验证  #SystemVerilog  #program 
在SystemVerilog中,增加了program...endprogram用于将测试代码集成在其中,从而区分RTL设计代码和测试平台代码在time-slot中执行的区域,其与module...endmodule用法类似,但是还是有些差异,如果使用不当可能会出现一些不期望的问题,本文将主要针对program提前结束仿真的行为与module进行对比说明。
硅芯思见
SystemVerilog中unpacked数组的assignment pattern
#验证  #SystemVerilog  #Assignment 
本文示例SystemVerilog中unpacked数组的赋值方式
硅芯思见
SystemVerilog中的生命周期lifetime
#验证  #SystemVerilog  #lifetime 
本文通过示例带着读者一并了解SystemVerilog中的生命周期到底是怎么回事,并且给出了对应的使用总结
硅芯思见
硅芯思见:SystemVerilog类中的静态方法和属性
#验证  #SystemVerilog  #Static Method 
在SystemVerilog中关于方法有两种“static”,一种是具有静态生命周期的方法(参见《SystemVerilog中的生命周期lifetime》),另一种则是静态的方法,两种“static”方法在声明时“static”关键字所处的位置是不同的,本文将主要针对静态方法进行说明。在SystemVerilog中,类中方法的生命周期是动态的(automatic lifetime),不能将类中的方法声明为具有静态的生命周期,但是可以将类中的方法声明为静态方法(static method),那么这种静态方法有哪些特点和使用注意事项呢?本文我们将通过示例进行说明。
硅芯思见
SystemVerilog | UVM | Sequence的仲裁和锁定,还有要避开UVM的bug
#验证  #UVM  #SystemVerilog  #Sequence 
比较多的干货,也偏保姆级,介绍Sequence之间发生竞争的时候,我们需要或者说可以做些什么,包括如何配置sequence的仲裁算法和优先级、如何让sequence占用sequencer(这个地方UVM 1.2有个bug),以及如何中断sequence的执行。
芯片学堂
你知道get_coverage和get_inst_coverage得到的都是什么覆盖率吗
#验证  #SystemVerilog  #get_coverage  #get_inst_coverage 
在SystemVerilog中提供了大量的用于获得coverage的方法,方便了用户进行功能覆盖率的收集,比较常见的主要有:$get_coverage、get_coverage和get_inst_coverage,那么这几种get coverage得到的到底是什么coverage彼此之间有什么差异呢?本文将通过示例说明。
硅芯思见
【小技巧】如何解决SV进程之间的冲突?
#验证  #SystemVerilog 
如何解决SV进程之间的冲突?示例代码中,如何保证在仿真时间不前进的情况下,保证c=b这句话后执行?只需要在c=b之前加一句uvm_wait_for_nba_region();
摸鱼范式II芯片验证之路
不该被遗忘的interface class和多重继承
#验证  #SystemVerilog  #interface class  #多重继承 
在面向对象的世界里,继承是一个为人所熟知的概念,也是OOP的方法论之一。继承则又可以分为单继承和多重继承。单继承是比较常用的思路,比如经典的继承例子:麻雀类继承于鸟类,鸟类继承于动物类,子类不仅具有父类的属性和方法,同时还有自己的特质。而多继承则是表明子类可以同时具有多个父类,兼具多种“角色”的属性和方法。在SV 2012标准里引入了接口类(interface class)和实现(implements),可以实现多重继承的设计。
验证芯发现
硅芯思见:【165】SystemVerilog中的关联数组那些事儿
#验证  #SystemVerilog  #关联数组 
在SystemVerilog中,我们知道可以使用动态数组实现数组元素个数的动态分配,即随用随分,其中元素在数组中的索引是连续的,但是如果要实现数组元素访问时不采用连续索引的话,采用动态数组和定宽数组就不是很合适,容易造成空间的浪费,为此在SystemVerilog中引入了关联数组(Associative Array),实现了一种查找表,该查找表的索引可以根据用户需要指定,不限于整形,其内存空间直到使用时才会分配,即只针对写入的元素分配存储空间,其使用方式类似于Perl等其他语言中的哈希结构。关联数组与其他数组表面上的不同主要体现在数组的索引上,非关联数组的索引一般都是整型变量,而关联数组的索引可以是任何的数据类型。下面我们将通过示例说明关联数组是如何定义和常用的方法如何使用。
硅芯思见
SystemVerilog,验证与AOP(一)概述
#验证  #SystemVerilog  #AOP 
面向切面编程(AOP)是对面向对象编程(OOP)的补充。AOP中关键概念称之为"切面"或者切面扩展,能够改变一个或多个类的行为方法。在SystemVerilog中使用AOP可以更加有效灵活地涉及testcase,减少code lines。AOP主要用于解决,在随机约束的TB中使用OOP难以解决的一些问题:1、上下文相关的行为2、临时性或"需求"外的扩展 3、……
验证芯发现