IC技术圈期刊 文章分类

类别: FPGA(377) 前端(242) 验证(177) 后端(133) 嵌入式(9) 自动化(24) 模拟(23) 求职就业(164) 管理(12) 软件(27) 按月份
微信公众号:验证芯发现
关注验证语言基础、验证技术和技巧,分享验证相关经验,尝试从多领域交叉的角度发现芯片验证的方方面面。
SystemC Verification Randomization
#验证  #SystemC  #随机约束 
SystemC Verification作为SystemC 的验证库,引入约束随机描述,可以实现基于C++/SC的Constraint Rand Verification.
验证芯发现
sv_string | 简单、易用、开源的System-Verilog字符串操作函数库
#验证  #芯片验证  #systemverilog  #string 
相比于Python和C++ string丰富的操作方法, systemverilog中string操作方法略显单薄, 仅支持大小写转换和遍历等少量方法。作者借鉴部分python string的操作函数风格, 以及结合常用的一些字符串操作, 开发一个sv_string的开源库, 使用systemverilog编写, 无需DPI和C代码编译, 开箱即用。源码已开源在github, 已经过questasim仿真测试。
验证芯发现
值得一看 | 细说验证中的Memory Allocation Manager
#验证  #UVM_MEM_MAM  #YAMM  #内存管理  #DMA  #SOC 
介绍芯片验证中的“内存管理”概念,可以用作数据搬运类验证的地址管理和分配,解决随机重复地址的问题,分享两个常用的库:UVM_MEM_MAM和YAMM。
验证芯发现
使用PlantUml绘制逻辑时序图/波形图
#验证  #时序图  #波形图  #plantuml 
Plantuml不仅可以绘制类图,还可以绘制数字电路中的逻辑时序图/波形图,时序描述格式的易用性好,可读性强。Plantuml开源可用,AgileWave已支持PlantUml在线画图,Git源码参见:https://github.com/cc-hook/agileWave
验证芯发现
Class数据封装 | macro_[private/protected/public]_property
#验证  #参数宏  #OOP 
面向对象中的数据封装,通常不会直接声明为public,而是声明为private或者protected,并伴随定义public的Set和Get方法,以此限制参数的写入和读取权限。Systemverilog/C++的class中,可以使用参数宏,进行数据和配套操作方法的快速声明。
验证芯发现
Lite PlantUML Parser | UML类图结构解析
#验证  #PlantUML 
Lite PlantUML Parser,基于ANTLR实现,编写PlantUML类图的语法解析,将已有的plantuml设计信息提取出来,以便后续开发使用。
验证芯发现
UVM harness:可复用的interface连接方法
#验证 
分享一种使用bind和uvm_config进行interface连接复用的方法:UVM harness.
验证芯发现
不该被遗忘的interface class和多重继承
#验证  #SystemVerilog  #interface class  #多重继承 
在面向对象的世界里,继承是一个为人所熟知的概念,也是OOP的方法论之一。继承则又可以分为单继承和多重继承。单继承是比较常用的思路,比如经典的继承例子:麻雀类继承于鸟类,鸟类继承于动物类,子类不仅具有父类的属性和方法,同时还有自己的特质。而多继承则是表明子类可以同时具有多个父类,兼具多种“角色”的属性和方法。在SV 2012标准里引入了接口类(interface class)和实现(implements),可以实现多重继承的设计。
验证芯发现
SystemVerilog,验证与AOP(一)概述
#验证  #SystemVerilog  #AOP 
面向切面编程(AOP)是对面向对象编程(OOP)的补充。AOP中关键概念称之为"切面"或者切面扩展,能够改变一个或多个类的行为方法。在SystemVerilog中使用AOP可以更加有效灵活地涉及testcase,减少code lines。AOP主要用于解决,在随机约束的TB中使用OOP难以解决的一些问题:1、上下文相关的行为2、临时性或"需求"外的扩展 3、……
验证芯发现
优化函数传参,花里胡哨的那种
#验证  #传参 
任何编程语言中,函数都是进行功能封装,模块化设计的必备手段之一。在Systemverilog中也不例外,SV中有function和task之分,都属于广义上的函数。在函数的设计和编码规范中,我们往往会尽量减少入参的个数,一方面是为了函数的简洁和可读性,另一方面也是对环境质量和仿真性能有所裨益。此前,在验证环境中看到一个对用户开放的API函数,含有多达6个传递参数。便想着,如何能减少函数传递参数的个数?下面是一些粗浅的见解和尝试,分享如下。
验证芯发现