IC技术圈
致力于建立知识、人的联系
成员列表
期刊
专栏
招聘
知识付费
搜索
RSS订阅
EDA在线
IC问答
成员出版图书
书单
首页
成员列表
期刊
专栏
招聘
知识付费
搜索
RSS订阅
EDA在线
IC问答
成员出版图书
书单
IC技术圈期刊 文章分类
类别:
FPGA(382)
前端(257)
验证(179)
后端(143)
嵌入式(9)
自动化(25)
模拟(25)
求职就业(165)
管理(13)
软件(27)
按月份
验证阶段思考——反馈&升级
#验证
#覆盖率
#风险识别
阿辉说
UVM实战[三]
#验证
#UVM
摸鱼范式
PMP质量保证和质量控制在IC验证中的实践与思考
#管理
#项目管理
#验证
#质量
ExASIC
[十四]Cracking Digital VLSI Verification Interview
#求职就业
#笔试面试
#验证
#UVM
摸鱼范式
UVM实战[二]
#验证
#UVM
#Testbench搭建
摸鱼范式
[systemverilog]reg、wire、var和logic傻傻分不清
#验证
#SystemVerilog
#语法
#两态四态
数字IC小站
验证阶段思考——“清单思维”
#验证
阿辉说
当我们做后仿时我们究竟在仿些什么
#验证
#后仿
icsoc
SystemVerilog中Assertions
#验证
#断言
数字IC小站
SystemVerilog的一个简单验证demo
#验证
#SystemVerilog
#demo
数字IC小站
SystemVerilog和UVM到底是啥关系?
#验证
#SystemVerilog
#UVM
数字芯片实验室
啥?100个agent?这个台子怎么搭?
#验证
#UVM
杰瑞IC验证
SystemVerilog面试题(26-30)
#求职就业
#笔试面试
#验证
#SystemVerilog
数字芯片实验室
验证面试攻略专辑
#求职就业
#笔试面试
#验证
摸鱼范式
UVM常考概念题
#求职就业
#笔试面试
#验证
#UVM
数字IC小站
IC验证工程师高效战斗手册
#求职就业
#验证
杰瑞IC验证
用SV写一个蒙哥马利算法的参考模型
#验证
#参考模型
#SystemVerilog
摸鱼范式
[400题]验证工程师面试宝典-完结篇
#求职就业
#笔试面试
#验证
摸鱼范式
IC验证工程师高效战斗手册--提问之道(上篇)
#求职就业
#验证
杰瑞IC验证
AXI总线,关于“贩毒交易”“火车”“马匪”的故事<一>
#前端
#AXI总线
#IC验证
#协议
杰瑞IC验证
谈谈UVM中的Factory机制
#验证
#UVM
数字芯片实验室
Verilog仿真事件队列
#验证
#Verilog
精进攻城狮
你的case真的pass了吗?
#验证
#UVM
杰瑞IC验证
人人都会用到,但是大部分人不清楚是什么的“神秘空间”
#验证
#SystemVerilog
杰瑞IC验证
Systemverilog中的Process(1)--产生进程的方式
#验证
#SV
杰瑞IC验证
IC验证工程师高效战斗手册--接到验证任务与前期高效学习
#验证
#效率
#流程
杰瑞IC验证
我的第一个UVM代码——Hello world
#验证
#UVM
ExASIC
当我们做后仿时我们究竟在仿些什么(四)
#验证
#后仿
#门级仿真
icsoc
我的第二个UVM代码——连接interface
#验证
#UVM
ExASIC
验证工程师经常犯的错误(4)---符号位扩展问题
#验证
#SV
杰瑞IC验证
IC验证工程师高效战斗手册---提问之道(下篇)
#验证
#职场
#效率
杰瑞IC验证
更强、更快、更实用 EpicSim,全球速度最快的开源数字仿真器
#验证
#开源
#EDA
EDAGit开源社区
手把手教你如何使用SV宏
#验证
#SV宏
#macro
IC验证分享圈
手把手教你使用条件编译
#验证
#条件编译
#macro
IC验证分享圈
我的第三个UVM代码——把testcase与driver分开
#验证
#UVM
在本示例中没有env、agent、sequencer、sequence等组件,属于一个简化的验证环境,主要是由于分步演示的需要。侧面也说明UVM是一个灵活的验证架构,可以根据自己的需要进行裁剪。
ExASIC
你还在用plusargs传递参数吗?来试试这个玩法~
#验证
#UVM
#SV
当面对很多验证组件,并且有很多命令行参数需要传递的时候,如何才能简单的实现给这些组件传递命令行参数呢?
杰瑞IC验证
IC验证工程师高效战斗手册--验证feature文档梳理
#验证
#效率
#流程
本文我们一起探讨如何又快又好的梳理验证测试点这个文档?怎样在验证过程中充分使用这个文档?
杰瑞IC验证
SystemVerilog与功能验证方法学
#验证
#FPGA
#UVM
#SystemVerilog
介绍SyetemVerilog与功能验证技术和方法学,为有效提高验证效率找方法。
科学文化人
Win10 WSL + Linux 开源 EDA(三)
#验证
#开源
#EDA
本期介绍一款开源的 VCD 波形查看器。
icsoc
数字系统仿真验证方法 —— 华山论剑
#前端
#数字IC
#仿真
#验证
#IP设计
数字IP/IC仿真验证方法梳理。
SiliconThink
一个加法器的UVM验证平台设计
#验证
#UVM
#IC验证
#验证平台搭建
以入门的角度进行一个加法器的UVM验证平台设计
Andy的ICer之路
SystemVerilog中的Process(2)--进程的控制
#验证
#SV
本文主要讲解named block、wait _order、wait _fork、disable、SystemVerilog中的内建process类等
杰瑞IC验证
SV中import和include的区别
#验证
#SV
此公众号主要分享数字IC相关的学习经验,做公众号的目的就是记录自己的学习过程,这篇文章主要介绍SV中import和include的区别
Andy的ICer之路
IC验证er一起学点设计模式(1)---单例模式
#验证
#SV
#UVM
#面向对象
众所周知,目前IC验证行业使用最主流的语言是SystemVerilog,这个语言有一个重要特点就是它是面向对象的语言。对于面向对象的语言,想要把代码写得更“牛逼”,其实就绕不开一个概念叫“设计模式”。
杰瑞IC验证
数字IC设计与数字IC验证哪个好?
#验证
#IC设计
#IC验证
详细解读了数字IC设计与数字IC验证的区别、前景等等
ZYNQ
数据存储和传输的大小端问题
#验证
#前端
吃茶叶蛋的时候,你会先磕破鸡蛋比较小的那一端,还是比较大的那一端?
杰瑞IC验证
SV开源库svlib学习
#验证
#sv
#验证
开源库svlib的学习使用
摸鱼范式
数字芯片设计验证-秋招指南
#求职就业
#求职
#设计
#验证
#攻略
保姆级备战秋招指南
摸鱼范式
EasySim: 一个简单的仿真脚本 v1.1
#自动化
#验证
#python
EasySim v1.1版支持: - 切换仿真器irun、xrun、vcs,在conf.json里指定。 - 支持打开Verdi,并支持只打开RTL。 - 增加了options可以仿真fpga代码,支持多顶层。 - 增加了dryrun,只打印最终的cmd,但不运行,方便调试脚本本身的错误。 - 支持灵活的timescale,功能仿真用粗精度,后仿用高精度,支持从conf文件里覆盖timescale。
ExASIC
验证仿真提速系列--SystemVerilog编码层面提速的若干策略
#验证
#SystemVerilog
#UVM
随着设计复杂度和规模增加,验证平台复杂度跟着增加。验证平台的仿真速度问题成为验证过程中一个重要问题…
杰瑞IC验证
2021年,IC验证还值得转吗?
#验证
#IC验证
#就业
#求职
#芯片
#秋招
近几年,IC行业成为了就业的热门,国内一线大厂为优秀的应届毕业生开出了40万的年薪,赚足了眼球。对于材料,化学等专业的学生来说,转行IC成为了趋势。就2021年的现状来看,IC验证还值得转吗?
OpenIC
芯片行业哪些人能达到年薪百万?
#求职就业
#验证
#IC验证
#就业
#求职
#芯片
#秋招
#薪资
#前端设计
芯片行业薪资大揭秘,看看你的上限在哪里!
OpenIC
+vcs+initreg+random、xprop、后仿讨论总结
#验证
萌新来啦
关于reset的一些做法
#验证
萌新来啦
由屏蔽某些UVM_ERROR想到的
#验证
萌新来啦
IC验证工程师高效战斗手册--如何制定高效的验证方案
#验证
#提效
当我们完成了前期的充分学习,对验证对象有所理解、有了初步验证思路、提取出了验证feature,就到了制定完善具体的验证方案了,验证方案如同作战方案,是行动高效的保证,从作战意识到作战策略,都很重要。如何才能制定出高效的验证方案呢?
杰瑞IC验证
数字IC设计知识结构
#前端
#数字IC知识结构
#前端
#后端
#验证
IC 定义,芯片各个节点分工,数字IC设计全流程:前端设计 、物理实现 和功能验证,总结知识结构。
FPGA自习室
你真的了解“随机”这两个字意味着什么吗?
#验证
#随机
你真的了解“随机”这两个字意味着什么吗?“随机”这两个字,隐藏着哪些工作需要做呢?
杰瑞IC验证
芯片可靠性介绍
#前端
#IC验证
#就业
#求职
#芯片
#秋招
OpenIC
科普 | 人工智能(AI)芯片大乱斗
#前端
#验证
#就业
#求职
#芯片
#秋招
#薪资
OpenIC
中芯国际Q2财报亮眼,半导体下半年走向何方?
#前端
#IC验证
#就业
#求职
#芯片
#秋招
#薪资
近日,各大半导体公司纷纷发布了第二季度的财报,而备受瞩目的国内半导体制造领域“一哥”中芯国际也在8月5日公布了财报:第二季度销售收入超13亿美元,毛利率超30.1%,各项财务指标均好于预期。在财报公布后,中芯国际全年营收成长和毛利率上调为约30%。
OpenIC
怎么在sequence中调用agent中的函数以及如何快速实验你的想法?
#验证
#UVM
#SV
通过本篇文章主要想送给广大验证初学者和爱好者2件礼物:“一条鱼”和“一只鱼竿”。希望大家连吃带拿,开开心心地。
杰瑞IC验证
UVM COOKBOOK学习
#验证
#uvm
摸鱼范式
验证那些事儿
#验证
#验证
摸鱼范式
fsdb转vcd的方法
#验证
#fsdb
#vcd
虽然VCD波形用得很少了,但还是有极少数情况需要。比如给模拟电路做vector,fsdb版本过新打不开,或者单纯没有verdi,或者是为了与开源工具交互……下面介绍了用verdi自带的工具fsdb2vcd来转换VCD的方法。
ExASIC
IC验证工程师高效战斗手册--高效验证平台搭建和冒烟测试要注意什么?
#验证
#提效
杰瑞IC验证
【资料库】数字ic前端后端验证
#前端
#资料库
#前端
#后端
#验证
分享一些从网上搜集的数字ic前端后端验证学习资料,内含UVM学习、版图实训、电路设计、Verilog RTL实践、VCS学习、SRAM、Perl、DFT了解,以及一些经验之类的分享
电子狂人
【UVM COOKBOOK】Sequences||Sequence API
#验证
#uvm
#uvm_cookbook
摸鱼范式
【VCS版】基于UVM的UART验证环境
#验证
#uart
#实战
#uvm
摸鱼范式
SystemVerilog | UVM | Phase机制基础
#验证
#SystemVerilog
#UVM
#芯片验证
Phase机制在基于UVM的仿真中尤其重要,它是整个仿真周期中的同步机制。本文将介绍Phase的基础部分,包括Phase的概念、框架和应用实例。
芯片学堂
SystemVerilog | UVM | 深入Phase机制,看懂Phase机制实现原理
#验证
#SystemVerilog
#UVM
#芯片验证
本文将在前面介绍Phase机制基本内容的基础上,到源代码中去了解Phase机制的实现方式,并且将尽可能以可视化的方式来呈现Phase机制源码的实现逻辑,属于Phase机制进阶篇。
芯片学堂
SystemVerilog中的event到底怎么回事儿
#验证
#event
#triggered
在SystemVerilog构建测试平台时,经常会用到event来实现多个进程之间的同步处理,例如一个进程处于等待某事件发生,当该事件发生了那么对应的进程将会被执行。但是有时候我们会遇到明明已经触发了事件,为什么对应的进程还处于挂起等待状态呢?该文将示例说明。
硅芯思见
generate常用用法
#验证
#generate
本文示例generate常用用法
硅芯思见
SVA概述
#验证
#sva
这里,你可以对SVA有一个快速的了解,但是需要你自己coding下文中示例加深印象
硅芯思见
形式验证与formality基本流程
#验证
#形式验证
数字ICer
【UVM】 layering sequence for layered protocol
#验证
#UVM
IC中常见的如PCIe,USB,UFS等都是分层传输的协议。对于这些高速IP,其验证环境通常也采用分层结构,方便扩展和重用。
IC Verification Club
UVM设计模式 (九) 状态模式、Modelling Finite-State Machines in Testbench
#验证
#UVM
#设计模式
在我们的验证环境中,有时也需要一个组件专门负责FSM的建模;例如验证USB Device DUT时,验证环境需要模拟USB Host的行为;对于USB协议复杂的状态机,使用专门的FSM组件模拟,可以减少组件间的耦合;也可以将FSM组件的状态赋值到virtual interface上,通过波形协助debug;
IC Verification Club
VC Spyglass CDC(二)常见的CDC处理方法
#验证
#VC Spyglass
#CDC
EDA厂商提供golden的CDC处理单元,Synopsys的Building Block IP提供如下解决方案;
IC Verification Club
SystemVerilog中超级英雄super
#验证
#systemverilog
#super
SystemVerilog的OOP编程中,经常需要使用super这个关键字,主要用于子类访问父类中的属性和方法。当然并不是在所有情况下都需要使用super,一般情况下如果子类对于父类中的属性或者方法进行overriden,那么此时如果要引用父类中被overriden的属性或者方法时,就需要明示super。
硅芯思见
SystemVerilog中传说的DPI
#验证
#systemverilog
#dpi
本文示例DPI-C的基本用法
硅芯思见
IC验证学习路线(干货满满!)
#验证
#IC验证
#学习路线
#面试面经
#知识分享
酒酒总结的IC验证学习路线(附资料,面试面经,IC验证面试常问88道总结,IC面试手撕代码总结,IC设计问题总结)
酒酒聊IC编程
酒酒爆肝80道大厂高频面试题
#验证
#IC验证
#IC设计
#面试面经
酒酒总结的IC设计问题(比较全面)
酒酒聊IC编程
酒酒拿下四五十万的真实大厂面试经历
#验证
#IC验证
#IC设计
#面试面经
酒酒提前批面试面经总结(大概30家公司面经总结,zeku,展锐,联发科,华为,寒武纪,地平线,商汤,奥比中光,集创北方。。。。。。)
酒酒聊IC编程
数字IC岗位,HR常问的44个问题
#求职就业
#IC设计
#面试面经
#IC验证
整理了一些HR面试或者综合面试时,面试官常常问的一些问题,建议大家秋招面试的时候提前看一眼,做到心中有数~
IC媛
关于UVM driver的幕后||你知道get_next_item在哪里吗?
#验证
#UVM
#源码
我们都知道,driver要和sequencer相连,然后通过seq_item_port接口的get_next_item方法和sequence之间进行交互。 但是,你有没有去查过get_next_item这个方法究竟是哪个类提供的呢?
摸鱼范式II芯片验证之路
安全地启动sequence
#验证
#验证
#建议
uvm从1.1d到1.2再到IEEE1800.2,有了很多变化。尤其是从1.1d到1.2,在objection的使用上有了一些关键性变化。
摸鱼范式II芯片验证之路
SystemVerilog | UVM | 精讲RAL寄存器模型基础
#验证
#SystemVerilog
#UVM
#芯片验证
RAL(Register Abstract Layer,寄存器抽象层),通常也叫寄存器模型,顾名思义就是对寄存器这个部件的建模。本文要介绍的内容,包括对UVM寄存器模型的概述,如何构建寄存器模型,以及如何将寄存器模型集成到验证环境中。
芯片学堂
SystemVerilog | UVM | RAL寄存器模型操作图鉴
#验证
#SystemVerilog
#UVM
#芯片验证
本文将展开介绍寄存器模型访问上的一些话题,包括寄存器域段的成员值、寄存器的前后门访问以及具体各种访问方法图示。
芯片学堂
入行数字IC验证的一些建议
#求职就业
#经验分享
#IC验证
分享成功入行SoC验证工程师的自学个人经验
ICer消食片
通过一个简单的testbench来初识SystemVerilog
#验证
#验证
#systemverilog
简单介绍一个由systemverilog搭建的testbench
ICer消食片
低功耗验证笔记:一个UPF低功耗例子
#验证
#验证
#低功耗
#UPF
通过一个例子介绍UPF文件的编写规范与测试平台的修改
数字验证笔记
低功耗验证笔记:Verdi的Power-Aware Debug
#验证
#验证
#低功耗
#UPF
介绍如何使用verdi进行低功耗仿真
数字验证笔记
芯片验证需要围绕DUT做什么?
#验证
#验证
#组件
#流程
深入了解芯片验证workflow!
ICer消食片
SystemVerilog中队列的越界访问
#验证
#SystemVerilog
#queue
通过示例说明SystemVerilog中的队列越界访问及注意事项
硅芯思见
SystemVerilog中有界无界的队列
#验证
#SystemVerilog
#queue
示例SystemVerilog中有界和无界队列的使用注意事项
硅芯思见
动态数组的创建不一定非要new[]
#验证
#SystemVerilog
#dynamic_array
通过示例说明动态数组的一些使用方法
硅芯思见
我的2021秋招经历——IC验证
#验证
#验证
#秋招
#经验分享
2022届物理专业硕士分享21年秋招转IC验证的经历!
ICer消食片
SystemVerilog | UVM | RAL寄存器模型操作图鉴
#验证
#SystemVerilog
#UVM
#芯片验证
寄存器模型操作,指的是通过寄存器模型对RTL中寄存器进行读写访问,或者同步寄存器模型与RTL中寄存器的值。本文将展开介绍寄存器模型访问上的一些内容,包括寄存器域段的成员值、寄存器的前后门访问以及具体各种访问方法图示。
芯片学堂
SystemVerilog | 脱离代码谈芯片验证关键指标:覆盖率
#验证
#SystemVerilog
#UVM
#芯片验证
验证覆盖率(Verification Coverage)的存在是为了试图回答这样一个问题:“你怎么知道验证已经完成?” 实际上,就算验证覆盖率达到了100%,从逻辑上也不能保证当前的验证是完备的。只不过,100%的验证覆盖率,可以让工程团队对即将tape out的芯片增添不少信心。本文将重点厘清覆盖率相关的概念,以及在芯片开发流程中跟覆盖率相关的事项。
芯片学堂
芯片开发必备工具 | 正则表达式(RegularExpression)使用指南
#前端
#SystemVerilog
#UVM
#芯片验证
在芯片开发过程中,正则表达式的使用非常常见。初次上手晦涩难懂,多用几次爱不释手!本文将概述正则表达式以及实用的匹配规则,并给出使用表达式的辅助工具:CheatSheet和在线测试工具。获取全文高清图片,可在公众号后台直接回复“正则表达式”获得下载链接。
芯片学堂
UVM验证TinyALU项目:1 - Introduction and DUT
#验证
#UVM
#systemverilog
#IC验证
《The UVM Primer》 是一本UVM的入门书籍,由Ray Salemi编写出版,并且是免费开源的项目,代码可以在GitHub上下载。
ICer消食片
UVM验证TinyALU项目:2 - A Conventional Testbench for the TinyALU
#验证
#UVM
#systemverilog
#IC验证
在搭建UVM验证环境之前,我们先从SystemVerilog验证平台开始,随后一步一步地过渡到完整的UVM验证平台。
ICer消食片
UVM验证TinyALU项目:3 - Interface and BFM
#验证
#UVM
#systemverilog
#IC验证
结束interface和BFM
ICer消食片
UVM验证TinyALU项目:4 - Object-Oriented Programming (OOP)
#验证
#UVM
#systemverilog
#IC验证
介绍SystemVerilog和OOP
ICer消食片
UVM验证TinyALU项目:5 - Classes and Extension
#验证
#UVM
#systemverilog
#IC验证
介绍class和extend。
ICer消食片
UVM验证TinyALU项目:6 - Polymorphism
#验证
#UVM
#systemverilog
#IC验证
介绍polymorphism。
ICer消食片
验证仿真提速系列--认识“时间”与平台速度定量分析
#验证
#VCS
#SystemVerilog
…我们今天围绕“时间”这个主题,首先讨论了验证仿真中的“3个时间”建立了基础认知,接着明确了平台提速到底要提哪个时间?最后以vcs工具举例了怎么收集和分析相关信息…
杰瑞IC验证
SystemVerilog中clocking block中的输入偏差和输出偏差
#验证
#SystemVerilog
#Interface
#Skew
示例说明SystemVerilig中interfae中clocking block的输入输出偏差
硅芯思见
UVM EVENT那些事
#验证
#UVM
#源码分析
分析event的用法和注意事项
摸鱼范式II芯片验证之路
SoC Verification Flow
#验证
#SoC
#流程
ICer消食片
用NanDigits GOF LEC做一致性检查
#验证
#LEC
#EDA
录了一段视频,来体验一下用NanDigits GOF LEC做LEC。
ExASIC
SystemVerilog中相互“嵌套”的队列和动态数组
#验证
#SystemVerilog
#Queue
#Dynamic array
本文示例实现队列和数组之间的相互嵌套存储
硅芯思见
2021秋招面经——华为
#验证
#秋招
#求职
#面试
#笔试
秋招华为面试经验!
ICer消食片
字节内推!薪资40+达不溜!
#求职就业
#秋招
#IC设计验证
#实习
#内推
字节内推!
Andy的ICer之路
【经验分享】毕业后做了一年验证工程师以后,他有了这些经验
#验证
摸鱼范式II芯片验证之路
IC研发常用英文术语缩写
#验证
#前端
#后端
#求职就业
记录一些常用的IC术语
ICer消食片
UVM验证TinyALU项目:7 - Static Methods and Variables
#验证
#验证
#变量
#方法
UVM验证TinyALU项目第七章
ICer消食片
UVM验证TinyALU项目:8 - Parameterized Class Definitions
#验证
#UVM
#类
#参数化
UVM验证TinyALU项目第八章: 参数化的类
ICer消食片
SystemVerilog类中方法定义在类外的那些事儿
#验证
#SystemVerilog
#extern
#method
在SystemVerilog中所有类的方法都可以定义于类内,也可以定义于类外。一般将比较复杂的方法的实现放在类外,这样可以增加代码的可读性,而比较简单的方法在类内实现。本文通过示例说明外部方法使用注意事项
硅芯思见
数字IC合集(超级全面,持续更新)
#验证
#设计
#验证
#总线
#FIFO
#SV
#UVM
#软件
#工具
初学者必看的合集!
ICer消食片
【知识干货】UVM快速入门教程 | The UVM Primer +ALU项目代码
#验证
#UVM
简单的UVM项目,带你快速入门
数字IC打工人
跟着IC媛,从零基础开始征服SV
#验证
#自学sv
IC媛从零开始学SV的一系列记录
IC媛
【AMBA VIP | VC_formal | VCS】EDA docker 镜像使用指南
#FPGA
#eda
#验证
#设计
带走vcs verdi formal的docker镜像使用指南
摸鱼范式II芯片验证之路
SystemVerilog中program提前结束仿真
#验证
#SystemVerilog
#program
在SystemVerilog中,增加了program...endprogram用于将测试代码集成在其中,从而区分RTL设计代码和测试平台代码在time-slot中执行的区域,其与module...endmodule用法类似,但是还是有些差异,如果使用不当可能会出现一些不期望的问题,本文将主要针对program提前结束仿真的行为与module进行对比说明。
硅芯思见
厌倦了sv/uvm?来看看用python写验证环境
#验证
#cocotb
本文介绍了cocotb的安装、python tb文件的写法、用xrun仿真cocotb的脚本等,我们来看看体验如何。
ExASIC
FPGA原型验证-时钟门控的替换
#FPGA
#FPGA原型验证
#时钟门控的替换
FPGA原型验证-时钟门控的替换
全栈芯片工程师
【剑指offer2023】数字IC校招指南 | 设计验证通用
#FPGA
#校招
#验证
#设计
摸鱼范式
SystemVerilog中unpacked数组的assignment pattern
#验证
#SystemVerilog
#Assignment
本文示例SystemVerilog中unpacked数组的赋值方式
硅芯思见
入行数字IC验证后会做些什么?
#验证
#IC验证
#flow
#EDA
#FPGA
#Emulator
本文介绍验证在第一年内所要学习的内容
ICer消食片
SystemVerilog中的生命周期lifetime
#验证
#SystemVerilog
#lifetime
本文通过示例带着读者一并了解SystemVerilog中的生命周期到底是怎么回事,并且给出了对应的使用总结
硅芯思见
你真的了解数字验证吗?
#验证
#数字
芯片验证就是采用相应的验证语言,验证工具,验证方法,在芯片生产之前验证芯片设计是否符合芯片定义的需求规格,是否已经完全释放了风险,发现并更正了所有的缺陷,站在全流程的角度,它是一种防范于未然的措施。
知芯情报局
硅芯思见:SystemVerilog类中的静态方法和属性
#验证
#SystemVerilog
#Static Method
在SystemVerilog中关于方法有两种“static”,一种是具有静态生命周期的方法(参见《SystemVerilog中的生命周期lifetime》),另一种则是静态的方法,两种“static”方法在声明时“static”关键字所处的位置是不同的,本文将主要针对静态方法进行说明。在SystemVerilog中,类中方法的生命周期是动态的(automatic lifetime),不能将类中的方法声明为具有静态的生命周期,但是可以将类中的方法声明为静态方法(static method),那么这种静态方法有哪些特点和使用注意事项呢?本文我们将通过示例进行说明。
硅芯思见
FPGA STA(静态时序分析)
#FPGA
#静态时序分析
#时延要求
#验证
静态时序分析简称STA,它是一种穷尽的分析方法。它依照同步电路设计的要求。依据电路网表的拓扑结构,计算并检查电路中每个DFF(触发器)的建立和保持时间以及其它基于路径的时延要求是否满足。STA作为FPGA设计的主要验证手段之中的一个,不需要设计者编写测试向量,由软件自己主动完毕分析,验证时间大大缩短,测试覆盖率可达100%。
FPGA技术江湖
SystemVerilog | UVM | Sequence的仲裁和锁定,还有要避开UVM的bug
#验证
#UVM
#SystemVerilog
#Sequence
比较多的干货,也偏保姆级,介绍Sequence之间发生竞争的时候,我们需要或者说可以做些什么,包括如何配置sequence的仲裁算法和优先级、如何让sequence占用sequencer(这个地方UVM 1.2有个bug),以及如何中断sequence的执行。
芯片学堂
为什么说 CPU 是人造物的巅峰?
#前端
#验证
#IC验证
#就业
#求职
#芯片
#秋招
#薪资
#前端设计
如果把CPU和城市作类比,其中的控制及协调模块可以类比为政府及协调部门、电源模块相当于供电部门、内部的走线相当于街道,而其中一个有一个的小模块可以看做是小区、工业区、大学城等。但和城市不同的是,这些复杂的功能模块都要集成在指甲大小的芯片中.
OpenIC
什么是X态传播?
#验证
#设计
#X态
#VCS
#Xprop
X态的存在使得仿真结果要么太过于乐观,要么太过于悲观。
ICer消食片
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仿真测试。
验证芯发现
你知道get_coverage和get_inst_coverage得到的都是什么覆盖率吗
#验证
#SystemVerilog
#get_coverage
#get_inst_coverage
在SystemVerilog中提供了大量的用于获得coverage的方法,方便了用户进行功能覆盖率的收集,比较常见的主要有:$get_coverage、get_coverage和get_inst_coverage,那么这几种get coverage得到的到底是什么coverage彼此之间有什么差异呢?本文将通过示例说明。
硅芯思见
华为夏晶大神: 总结我的思路,如何在验证中发现和定位Bug
#验证
发现Bug,发现所有的Bug,或者证明没有Bug,是验证存在的唯一目的。无论任何验证语言、任何验证环境、任何验证方法学、任何Feature List,都是为了达成这一目的而使用的方法,或者所手段。偏离了这一目的任何工作和努力,都是屎、大便、Shit。
芯片设计验证
值得一看 | 细说验证中的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
验证芯发现
硅芯思见:covergroup中的weight如何有效影响覆盖率
#验证
#coverage
#weight
在衡量统计覆盖率时,经常需要根据对covergroup或者coverpoint的关注程度对其设置对应的权重(weight),从而可以影响到总体的覆盖率。而在SystemVerilog中,weight一般情况下可以通过两种方式进行设置,分别是type_option.weight和option.weight,那么这两种方式在设置时有什么差别呢?本文将通过具体示例说明这两种设置weight的方式如何影响到覆盖率的分布情况。
硅芯思见
硅芯思见:问芯吾跬(IC设计验证常见问题汇总一)
#验证
#常见问题
设计验证笔试常见问题汇总1
硅芯思见
高薪必备 | 数字IC后端项目LVS案例
#后端
#数字IC后端入门
#物理验证PV
#LVS案例
数字IC后端项目LVS案例
吾爱IC社区
Class数据封装 | macro_[private/protected/public]_property
#验证
#参数宏
#OOP
面向对象中的数据封装,通常不会直接声明为public,而是声明为private或者protected,并伴随定义public的Set和Get方法,以此限制参数的写入和读取权限。Systemverilog/C++的class中,可以使用参数宏,进行数据和配套操作方法的快速声明。
验证芯发现
晶振知识补充及Windows时间服务介绍
#验证
#晶振
#时间同步
#网络时间协议
#NTP
使用LTspice绘制晶振阻抗特性曲线;了解晶振的另一个重要参数-频差;最后通过Windows/Linux操作系统时间服务了解电子设备如何获得并保持相对准确的时间。
阿辉说
C case和UVM TB的交互,tube_print, event_sync
#验证
#tube
#soc
#UVM
C代码调用printf时,打印信息显示在哪个IO上,由pringf调用的底层代码决定;软件C中的printf默认在terminal上打印;对于嵌入式C, 运行在开发板上的code,可以借助target自己的显示IO,如LCD屏,将打印信息直接显示在LCD屏上;如果target没有显示IO,也可以retarget到host端的terminal上;simulation仿真时,运行的C代码需要借助主机host的IO,将打印信息显示在simulation terminal上;常见的方式有以下几种:
IC Verification Club
Verilog中关于文件操作的系统任务
#验证
#verilog
#文件操作
#系统任务
Verilog提供了很多对文件操作的系统任务和函数,例如打开关闭文件、向文件写入值、从文件读出值等等。
ICer消食片
SystemVerilog中关于function、task、automatic、input、output、inout和ref问题
#验证
#SV
#task
#function
几个简单的例子,加深对function和task的理解。
ICer消食片
Lite PlantUML Parser | UML类图结构解析
#验证
#PlantUML
Lite PlantUML Parser,基于ANTLR实现,编写PlantUML类图的语法解析,将已有的plantuml设计信息提取出来,以便后续开发使用。
验证芯发现
UVM harness:可复用的interface连接方法
#验证
分享一种使用bind和uvm_config进行interface连接复用的方法:UVM harness.
验证芯发现
我写过最简单的UVM验证环境
#验证
#uvm
为了向身边初学的小伙伴展示UVM最简单的工作机制,曾经写过的一个简单的令人发指的小demo,记录一下,送给初学的朋友。
芯片验证日记
VCS/XRUN如何创建一个非UVM的简单仿真环境?
#验证
#vcs
#xrun
设计码完代码后,有时候想简单调试一下基本的通路,此时还没有验证资源进来,可以仿照modesim仿真的方法,创建一个.v/.sv的顶层,里面例化DUT,里面加预期激励。下面是VCS/XRUN两种仿真工具最简单的demo,spi_slv.v是待测dut, tb_top.sv为顶层top,例化dut, 里面添加对应的激励。
芯片设计验证
Formal Verification (五) coverage、sign-off flow
#验证
#formal
formal和simulation一样,也是基于coverage-driven的验证方式;针对formal的coverage metrics,可以分为以下几种(不同工具定义略有不同,本文以Jaspergold为例):code coverage、functional coverage。以覆盖率作为sign-off的标准,各家工具略有不同,但大体一致,分为6个步骤……
IC Verification Club
【小技巧】如何解决SV进程之间的冲突?
#验证
#SystemVerilog
如何解决SV进程之间的冲突?示例代码中,如何保证在仿真时间不前进的情况下,保证c=b这句话后执行?只需要在c=b之前加一句uvm_wait_for_nba_region();
摸鱼范式II芯片验证之路
综合网表带SDF前仿真
#验证
#后仿
网表布局布线前,未进行时钟树综合,保持时间尚未修复,此时我们也可以由DC/PT写出SDF文件进行综合网表仿真,但是此时的SDF文件中的保持时间为假的,可能导致出发器违例造成X态传播,造成仿真失败。本文介绍了两种方法来解决这个问题。
全栈芯片工程师
不该被遗忘的interface class和多重继承
#验证
#SystemVerilog
#interface class
#多重继承
在面向对象的世界里,继承是一个为人所熟知的概念,也是OOP的方法论之一。继承则又可以分为单继承和多重继承。单继承是比较常用的思路,比如经典的继承例子:麻雀类继承于鸟类,鸟类继承于动物类,子类不仅具有父类的属性和方法,同时还有自己的特质。而多继承则是表明子类可以同时具有多个父类,兼具多种“角色”的属性和方法。在SV 2012标准里引入了接口类(interface class)和实现(implements),可以实现多重继承的设计。
验证芯发现
硅芯思见:【165】SystemVerilog中的关联数组那些事儿
#验证
#SystemVerilog
#关联数组
在SystemVerilog中,我们知道可以使用动态数组实现数组元素个数的动态分配,即随用随分,其中元素在数组中的索引是连续的,但是如果要实现数组元素访问时不采用连续索引的话,采用动态数组和定宽数组就不是很合适,容易造成空间的浪费,为此在SystemVerilog中引入了关联数组(Associative Array),实现了一种查找表,该查找表的索引可以根据用户需要指定,不限于整形,其内存空间直到使用时才会分配,即只针对写入的元素分配存储空间,其使用方式类似于Perl等其他语言中的哈希结构。关联数组与其他数组表面上的不同主要体现在数组的索引上,非关联数组的索引一般都是整型变量,而关联数组的索引可以是任何的数据类型。下面我们将通过示例说明关联数组是如何定义和常用的方法如何使用。
硅芯思见
【Verdi系列-1】Verdi环境配置、生成波形的“三方法”和“八奇技”
#验证
#verdi
Verdi是一个功能强大的debug工具,可以配合不同的仿真软件进行debug,很多企业常用的就是VCS+Verdi或或者Xcelium(xrun)+Verdi的方式进行代码的仿真与检查,Verdi使用情形主要是IC验证工程师(Debug),IC设计工程师(Review)。总之,Verdi很重要,作为一名ICer要是不会用Verdi,确实说不过去。
芯片扫地僧ICer
看看这个"UVM陷阱",你是不是也遇到过
#验证
#数字芯片验证
#UVM
一次uvm环境调试中的踩坑记录。
验证芯发现
【犄角旮旯的bug】UVM环境的看门狗怎么没看住超时了?
#验证
#UVM
uvm验证环境里一般通过objection机制来控制仿真的结束,不过在机制之外,有时还需要通过看门狗来watchdog避免仿真环境挂死,watchdog配合objection一起来控制仿真的进行与结束。我一直自诩为对环境watchdog这件事烂熟于心了,不过没想到这天还是被伤害到了。“@harness.dut.hand_en”和“wait harness.dut.hand_en”到底有什么区别?
芯时代青年
Verilog-AMS-基本语法
#验证
#AMS
#混仿
做数模混合验证,常打交道语言就是Verilog-A和Verilog-AMS,列举了两者的异同点,可以说Verilog-A是Verilog-AMS的子集。本文及后续文章不再区分Verilog-A和Verilog-AMS,均指Verilog-AMS,下面介绍Verilog-AMS基本的语法。
芯片设计验证
几个常见的Verilog-AMS model
#验证
#verilog-ams
#verilog-a
#ams
#验证
分享几个常见的verilog-ams model, 例如电阻,电容,电感等。
芯片设计验证
使用VCS进行代码加密的方法
#验证
#VCS
#加密
#验证
文章介绍了使用VCS加密的方法,并提供了一个简单脚本供参考
阿辉说
如何最大限度提升仿真性能???
#验证
#验证
#仿真
#性能
本文将从各个方面来探讨如何最大化仿真性能。
芯片设计验证
使用SpinalHDL和Cocotb进行敏捷数字芯片设计和验证
#验证
#spinal
#cocotb
领域特定架构已成为计算机发展的一种趋势。在提供更高效算力的同时,它也给底层硬件的开发带来了更大的挑战。传统的芯片设计和验证技术已越来越无法应对这些新的要求和挑战。在芯片设计上,本文将介绍如何使用SpinalHDL,一种基于Scala的新型硬件描述语言(HDL),或者更准确地说是硬件构造语言,提高硬件设计的效率和质量。对于SpinalHDL,本文还介绍了如何利用Scala的类型系统高效地进行复杂硬件的设计。对于验证,本文将介绍基于Python的验证环境Cocotb,以及如何利用Python简洁高效的语言特性及其繁荣的开源社区,提升芯片验证的效率。
达坦科技DatenLord
SystemVerilog,验证与AOP(一)概述
#验证
#SystemVerilog
#AOP
面向切面编程(AOP)是对面向对象编程(OOP)的补充。AOP中关键概念称之为"切面"或者切面扩展,能够改变一个或多个类的行为方法。在SystemVerilog中使用AOP可以更加有效灵活地涉及testcase,减少code lines。AOP主要用于解决,在随机约束的TB中使用OOP难以解决的一些问题:1、上下文相关的行为2、临时性或"需求"外的扩展 3、……
验证芯发现
常见数字IC验证技术介绍
#验证
#EDA
数字验证有两种技术,动态仿真和静态形式验证(动态仿真也可以实时用sva来检查)。任何一种验证技术都不能解决全部问题,需要相互补充,发挥每个验证技术的长处,才能在项目中得到最好的效果。
ExASIC
SystemVerilog Assertion精华知识
#验证
#Assertion
#断言
#SVA
SystemVerilog中引入的SVA在协议检查和协议覆盖率方面可以发挥重要的作用,它们更接近设计信号,通过将这些断言直接连接到设计,一方面便于管理,另一方面仿真性能可以得到极大的提高。SVA语言本身非常简洁,且提供了很好的时序控制能力。
专芯致志er
初识interface class
#验证
#SystemVerilog
#interfaceclass
大概2012年的时候,IEEE1800-2012中增加了一个新的特性,即interface class横空出世,通过接口类实现想要被继承的方法的声明,然后在需要使用该方法的实现类中实现这些接口类的方法,从而可以在同一个实现类中,可以同时实现多个不同接口类中的方法,但是这并不是我们理解的多重继承,应该算作一种多重实现。
硅芯思见
APB总线的读写操作与时序规范
#前端
#总线
#amba
#验证
APB总线源自AMBA2.0,即ARM总线标准的2.0版本。AMBA目前已经更新到5.0版本,APB总线的功能也得到了扩充。APB的后续版本均是对APB初代版本的简单扩展,业界最常用的仍然是APB初代版本,即APB2.0。
芯想事珹
使用Verdi的小技巧(五)
#验证
#verdi
在做芯片级或者数模混合的仿真中,经常需要调试特殊驱动的信号。比如常见的总线 I2C 中的 SCL 和 SDA,这俩都是开漏驱动类型,总线在系统级可能会有多个器件来驱动。这个时候如果能在波形上显示驱动强度,而不是简单的四值电平(0、1、X、Z),对于调试工作会有更直观的帮助。
icsoc
UVM源码计划(零)——下定决心读源码前的自测环节
#验证
#uvm
最近被某同学拉着抽空看了些UVM源码,在读源码的过程中发现了很多基础知识的不足,因此结合过程中一些提问汇总了这篇文章。简单点说就是,如果这篇文章中提到的知识点还没搞懂,那不建议着急的去看UVM源码,推荐先看SystemVerilog基础知识。
芯时代青年
【芯片验证】UVM源码计划(一)从component::type_id::create()开始看起
#验证
#UVM
众所周知在uvm环境中,uvm_component的创建需要通过component::type_id::create()而非new()方法,各种工具书都对此进行了解释,核心就是通过该方法来使用factory机制。
芯时代青年
设计模式在芯片验证中的应用——状态
#验证
#设计模式
状态模式是一种行为设计模式, 让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。
专芯致志er
优化函数传参,花里胡哨的那种
#验证
#传参
任何编程语言中,函数都是进行功能封装,模块化设计的必备手段之一。在Systemverilog中也不例外,SV中有function和task之分,都属于广义上的函数。在函数的设计和编码规范中,我们往往会尽量减少入参的个数,一方面是为了函数的简洁和可读性,另一方面也是对环境质量和仿真性能有所裨益。此前,在验证环境中看到一个对用户开放的API函数,含有多达6个传递参数。便想着,如何能减少函数传递参数的个数?下面是一些粗浅的见解和尝试,分享如下。
验证芯发现
形式化验证简介及fm_shell脚本编写指南
#验证
#formality
#lec
形式化验证是一种基于数学分析方法的验证技术,它通过算法引擎建立模型,对待测设计的状态空间进行穷尽分析的验证。在芯片设计中,形式化验证主要用于综合前后的等价性检查和RTL设计的功能验证。形式化验证的优势在于它可以提供精确、确定的结论,帮助开发人员减少迭代设计和测试的时间和成本 。
芯想事珹
浅析VERDI和VCS联合仿真流程
#验证
#VCS
#Verdi
VCS、Verdi介绍,Linux下VCS+Verdi仿真demo演示
芯想事珹