验证工程师养成笔记
文章平均质量分 55
记录自己的成长之路,分享数字验证经验。
元直数字电路验证
天地本無心,生民自有命,往聖無絕學,萬世不太平。硅農,因bug而生,與bug為伴,以debug為生。
展开
-
[Verilog]格雷码与二进制码的相互转换
格雷码是一种相邻数值仅有一个数位发生变化的编码。格雷码被广泛应用于异步FIFO的数据传输中。当数值从一个时钟域传递到另一个时钟域时,仅有一个比特位的翻转十分重要。原创 2022-10-30 22:50:44 · 792 阅读 · 0 评论 -
周期与频率速算表
摘要:在数字电路设计验证中,我们经常需要换算clock的周期与频率,下图给出了一个速算表,可以很快完成转换。原创 2022-10-26 19:13:22 · 549 阅读 · 0 评论 -
[VCS]后仿真中的几个基本概念
后仿真中的几个基本概念原创 2022-09-09 09:56:27 · 2231 阅读 · 0 评论 -
SV/UVM学习资料
These are some of the best books to learn System Verilog, Fundamentals of Verification, Assertions as well as Functional Coverage.Writing Testbenches using SystemVerilog by Janick Bergeron – https://amzn.to/3ndnXopSystemVerilog for Verification by C.原创 2022-06-24 07:28:29 · 632 阅读 · 0 评论 -
[VCS][UVM]UVM HDL Backdoor Access Setting
在SoC验证中,为了提高编译及仿真速度,我们通常会去掉debug_access+all这个选项。但是这样做会造成一个严重的问题:uvm backdoor Access会失效。那么怎么做才能保证二者兼顾呢?本文将介绍一种方法。.........原创 2022-06-16 14:14:26 · 934 阅读 · 1 评论 -
[SoC]SoC中地址翻译的一个案例
现在有这样一个案例,在single die中,寄存器总线的地址空间是4GB,而multi-die的地址总线位宽是40bit,现在某个IP内部AXI的地址范围是0x3000_0000 ~ 0x3FFF_FFFF,共256MB,怎么和寄存器总线做映射呢?原创 2022-03-12 12:16:48 · 851 阅读 · 0 评论 -
[VCS]VCS Debug option对仿真效率的影响
VCS Debug option对仿真效率的影响一、VCS Debug Option二、对仿真速度的影响原创 2022-02-12 17:28:42 · 1099 阅读 · 1 评论 -
[SoC]SoC验证中bootcode与firmware相关验证经验总结
SoC验证中bootcode与firmware相关验证经验总结一、backdoor load memory1.1 将bootcode写入ROM 在Verilog语法中,可以使用系统函数$readmemh()将bootcode写入ROM:(1)$readmemb("<数据文件名>", <存储器名>);(2)$readmemb("<数据文件名>", <存储器名>, <起始地址>);(3)$readmemb("<数据文...原创 2021-12-28 16:02:47 · 1849 阅读 · 0 评论 -
IC验证面试常问题88道
IC验证面试常问题88道转载 2021-12-01 14:14:23 · 7619 阅读 · 4 评论 -
[VCS]提高与 X 态相关的仿真和调试的效率
提高与 X 态相关的仿真和调试的效率Verilog 和 VHDL 通常用于对数字设计进行建模。设计人员使用 RTL 构造来描述硬件行为。但是,某些 RTL 仿真语义不足以准确模拟硬件行为。因此,与实际的硬件行为相比,仿真结果要么过于乐观,要么过于悲观。由于这些语义限制,Verilog 和 VHDL RTL 模拟器忽略了 X 值控制信号的不确定性,并分配了可预测的输出值。因此,RTL仿真通常无法检测到与缺乏X传播相关的设计问题。然而,这些相同的设计问题可以在门级仿真中检测到,并且通常必须运行许多栅翻译 2021-11-26 12:25:56 · 1673 阅读 · 0 评论 -
[OOP]C++与SystemVerilog几个概念的比较
一、C++1.1 Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。Override(覆盖):是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。Overwrite(重写...原创 2021-11-24 17:19:47 · 300 阅读 · 0 评论 -
[VCS]Simulation log parse
Debug Tip:You have 10s or 100s of errors in your 1000s of simulations. Ideally, you would work on the error that is most critical for the project first. Resolving this error will move the project furthest along and deliver the most value to the company. K原创 2021-11-19 09:54:45 · 193 阅读 · 0 评论 -
[DMA]AXI VIP中Memory的实现方法
AXI VIP中Memory的实现方法 摘要:在DMA验证过程中,需要对比read data与write data,但是araddr与awaddr未必是aligned address,那么我们怎么去对比DMA搬运的数据是否正确呢?为此我们需要造一个memory来存放数据,然后再对比DMA搬运的数据是否正确。一、用SystemVerilog实现Memory。 下面介绍一种用关联数组来模拟Memory的例子:class dma_scb extends uvm_s...原创 2021-10-26 17:06:07 · 1887 阅读 · 2 评论 -
数字电路验证之DV工作流程(SOP)
数字电路验证之DV工作流程(SOP)原创 2021-10-05 15:47:21 · 2484 阅读 · 0 评论 -
数字电路设计之register描述模板
数字电路设计之register描述模板 前言:在数字电路验证中,会大量的读写寄存器,如果没有寄存器模型,这个过程会异常艰难,或者说操作很不容易。本文将介绍一种寄存器描述的Excel模板,DV可以通过脚本把Excel转化为ralf,并进一步生成寄存器模型。一、Register Description Excel1.1 sheet[1] --- ModuleModule Baseaddress C Model hdl path Owner ...原创 2021-10-05 13:10:22 · 651 阅读 · 0 评论 -
[SoC][DV]关于加快验证收敛的一些方法
关于加快验证收敛的一些方法一、自动生成uvm验证环境二、自动生成agent(UVC/VIP)三、模块化设计Clock以及reset的产生四、后台磁盘管理并且定期清理log五、仿真信息记入数据库testname changelist(tag/label) seed date run time status六、自动建立fail case的testlist Regression之后自动re-run fail case dump fsdb原创 2021-10-04 23:35:22 · 641 阅读 · 0 评论 -
[SoC]地址总线位宽与存储空间的关系
地址总线位宽与存储空间的关系 前言:在SoC验证中,我们经常会遇到不同位宽的地址总线,那么地址位宽是有什么决定的呢?32位的地址总线可以访问多大的地址空间呢?一、地址总线位宽的意义首先从二进制说起,每一bit都有2种取值的情况,也就是说可以表示2个存储区间 那么n位2进制数可以表示的存储区间数位2^n种 每个存储单元是8bit = 1B 所以n位地址总线可以表示的存储区间位:2^n Byte二、常用的换算关系...原创 2021-08-05 20:47:00 · 4132 阅读 · 0 评论 -
【GPGPU】新秀 --- 沐曦集成电路(上海)有限公司
沐曦集成电路(上海)有限公司 沐曦集成电路(上海)有限公司是一家致力于提供完全自主知识产权,针对异构计算等各类应用的高性能GPU芯片和解决方案研发及销售的高科技公司。公司于2020年9月成立于上海市浦东临港新片区,自成立之日起即保持了高速的成长性,展示出强大的人才号召力,产业资本的聚集力,产品研发的执行力和产业生态上下游的布局能力。 沐曦集成电路核心团队成员平均具有近20年此产品方向深耕的实际经验,曾主导过十多款世界主流高性能GPU产品研发,包括核心IP设计和G...原创 2021-07-23 21:41:44 · 1585 阅读 · 3 评论 -
[VCS]使用VCS/QUESTA/NCSIM Run小程序、try SystemVerilog語法
一、第一個例子,使用工具為VCS 1、使用如下腳本來設置VCS環境#!/bin/csh -fsetenv VCS_HOME /tooltop/VCSMX/1703SP2-4setenv UVM_HOME /libtop/soft/verif/Methodology/UVM/uvm/uvm-1.1csetenv WORK_HOME `p...原创 2019-08-16 19:25:55 · 1311 阅读 · 0 评论 -
[GPGPU]图形处理单元上的通用计算
图形处理单元上的通用计算(GPGPU) 图形处理单元上的通用计算(英语:General-purpose computing on graphics processing units,简称GPGPU或GP²U),是利用处理图形任务的图形处理器来计算原本由中央处理器处理的通用计算任务。这些通用计算任务通常与图形处理没有任何关系。由于现代图形处理器有强大的并行处理能力和可编程流水线,令图形处理器也可以处理非图形数据。特别是在面对单指令流多数据流(SIMD...原创 2021-04-20 15:19:32 · 1037 阅读 · 0 评论 -
[VCS]在Verdi中找出Glitch
VCSDebug simulation hang 前言:在验证RTL过程中,我们可能会遇到仿真Hang住的情况,那么怎么去定位到RTL中呢?一、Zero delay loop导致的Simulation Hang需要加VCS Option:+vcs+loopreport +vcs+loopdetect +fsdb+glitch=0 +fsdb+region二、找出Glitch对仿真结果的影响 添加VCS Option...原创 2021-04-17 15:09:39 · 8989 阅读 · 1 评论 -
[SV]UVM验证环境中define的应用
UVM验证环境中`ifdef的应用 前言:在环境管理中,我们经常用`ifdef来选择需要编译那些代码,避免吧大量的代码再复制一份。但是define也是一把双刃剑,使用的define过多会造成环境混乱,有些define会造成编译错误。一、预编译指令的基本语法`ifdef T2R_LOOPBACK`elsif UL_DIR`else`endif为了避免其他同仁没有加define造成的编...原创 2021-03-18 20:52:30 · 2939 阅读 · 0 评论 -
[SVA]SystemVerilog Assertion中的重复
SystemVerilog Assertion中的重复 前言:如何在Assertion中实现计数功能呢?本文将给出一个常见的用法。一、用局部变量实现计数器property check_counter; int L_cnt; @(posedge clk) ( ($rose(start),L_cnt = 0) ##1 (1, L_cnt = L_cnt+1)[*0:$] ##1 (L_...原创 2021-03-18 19:43:16 · 860 阅读 · 0 评论 -
平头哥数字电路验证(DV)专家面试题收录
平头哥数字电路验证(DV)专家面试题收录#平头哥芯片设计##一面(视频面试)1、SystemVerilog基础,constraint问题 一个64位的起始地址和一个8位的长度,需要随机这两个变量,让每次随机出来的地址空间都和之前的任意一次都没有重叠。例如第一次地址是3,长度是5,第二次地址是20,长度是10,这样就可以,但是第三次如果随机出来地址是15,长度是10就不行。因为和第二次有一部分是重叠的。请问这样的class该怎么设计?...原创 2021-01-31 15:54:53 · 3568 阅读 · 0 评论 -
平头哥芯片设计面试题收录
平头哥面试题收录#平头哥芯片设计##一面(视频面试)1、SV基础2、桶形移位法(项目相关) 桶型移位器是一个多输入、单输出电路。对于输入a[31:0],移位器首先会根据b[4:0]的值来确定移多少位,最后将结果c[31:0]输出。3、跨时钟域的问题,包括单bit、多bit、详细说明握手协议等,为什么gray码不会产生毛刺? 单bit信号打拍的时候需要考虑时钟频率,当时钟周期大于亚稳态的恢复时间...转载 2021-01-31 15:40:20 · 2903 阅读 · 0 评论 -
[DV]在长burst中漏采样的问题
在长burst中漏采样的问题一、背景 最近在验SerDes的过长中,发现了一个在长burst中漏采样的问题。本来lane上的data应该是均匀的,但是在data传送一段时间之后,就会出现valid信号少了一个,本来是2T clock来一个valid,但是某时刻4T才来了一个burst。二、问题探索 开始,怀疑是使用clock blocking造成的,可能是setup_time和hole_ti...原创 2021-01-19 11:15:05 · 341 阅读 · 0 评论 -
[DV]中断(IRQ)验证的思考
中断(IRQ)验证的思考一、如何确保功能验全?基本思路:normal function:不会有IRQ Assert Error Case:仅有指定的IRQ举起 如果IRQ(A)可以带起IRQ(B),是否需要防守?...原创 2021-01-01 09:41:55 · 972 阅读 · 0 评论 -
[DV]如何找出击中某个cover bins的testcase?
如何找出击中某个Cover bins的Testcase 前言:在数字电路验证中,我们通常是通过coverage分析来评价验证工作是否完备(相对完备)。在验证工作进行的过程中,我们也需要在Wavefrom上面确认某个coverpoint或者cover property是否真的击中了。那么我们怎么通过已经击中的cover bins来找到对应的Wavefrom呢?本文将介绍一种方法。一、需要再merge vdb的时候添加Option在me...原创 2020-12-29 18:24:04 · 1591 阅读 · 2 评论 -
[DV]闪存主控芯片验证全流程
闪存主控芯片验证全流程 设计验证是芯片产业链中关系到芯片质量的重要环节,随着芯片规模扩大及片上系统(SoC)设计复杂度提升,验证目标从功能正确、性能达标向满足业务应用快速适配部署的需求发展,其难度和重要性不断提高。 闪存主控验证由于其业务应用的特点,需要关注前端接口协议处理、后端闪存吞吐以及针对不同业务读写均衡和异常处理的需求。其导向随着“软件定义存储”的发展,更加强调与业务系统实际应用中的配合;其复...转载 2020-12-17 17:42:46 · 2300 阅读 · 0 评论 -
时序图绘制工具 --- TimeGen使用方法总结
TimeGen使用方法总结 前言:TimeGen是一款专门用于绘制时序图的软件,绘图后可直接选中复制到WORD文档中就是矢量图,能够快速生成时序图,再也不用使用visio或者word画时序图了。一、TimeGen功能介绍具有矩形或圆形边缘的轮廓文本框 要选择多个文本框的能力(按住Ctrl键),或按Ctrl + A TimeGen官方版支持更改所有选定的文本框的字体或大小与一个命令 按Alt键的同时使用箭头键精细控...原创 2020-12-07 19:55:21 · 18863 阅读 · 3 评论 -
高斯分布与正态分布
高斯分布(Gaussian distribution) 正态分布(Normal distribution),也称“常态分布”,又名高斯分布(Gaussian distribution),最早由棣莫弗(Abraham de Moivre)在求二项分布的渐近公式中得到。C.F.高斯在研究测量误差时从另一个角度导出了它。P.S.拉普拉斯和高斯研究了它的性质。是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影...转载 2020-12-04 15:16:56 · 18292 阅读 · 0 评论 -
[DV]验证工程师的自我修养
验证工程师的自我修养作者:路桑 链接:https://www.zhihu.com/question/26109157/answer/445562251 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1.1 验证师的培养 我们之前针对验证师的“自我修养”提出了与技术和项目有关的要素,也明白了验证师需要得到多方面的锻炼。在这些因素背后,通过日常的观察,我们可以发现优秀验证...转载 2020-11-25 15:29:38 · 1817 阅读 · 0 评论 -
2020中国AI芯片50强
原创 2020-11-03 11:32:30 · 645 阅读 · 0 评论 -
[SoC]SOC基本验证Flow总结
SOC基本验证Flow总结一、ISO Clamp Value CheckFlow1.1 Why do we need ISO clamp ?When design power down , the output signal is unknown. To avoid the other’s power on design get this unknown value. 1.2iso clamp value ...原创 2020-10-24 10:27:35 · 1642 阅读 · 0 评论 -
香港和内地重疾险25种常见重疾定义对比全解析
香港和内地重疾险25种常见重疾定义对比全解析在和客户交流的过程中,我常被问及香港重疾险和内地产品在疾病保障方面究竟哪个更好。首先,我想说三个原则:1、羊毛出在羊身上保险公司不是做慈善的,他们所提供的每一个保障条款,背后都有精算师核算它的成本,最终会由消费者买单。所以不能单纯认为保障的病种越多就越好,或是保障越是全就越好,还要考虑价格因素,最终考虑的是性价比。所以,关键是:花合适的钱,买自己需要的东西;同样价格,我们挑保障更好的。2、相信...转载 2020-08-26 09:00:10 · 1053 阅读 · 3 评论 -
香港中文大学推荐大学期间书单 87本你读过哪些?
香港中文大学推荐大学期间书单 87本你读过哪些? 1 《一百分妈妈》 马以工 2 《一路走来一路读 》 林达 3 《二胡》 陈若曦 4 《人在欧洲》 龙应台 7 《小王子》 圣·修伯理 9 《大汗之国:西方眼中的中国》(The Chan's Great Continent) Jonathan D. Spence 10 《大学之理念》 金耀基 11 《大学道上:教育理想与实践的反思》 郭少棠 12 《文华集》...转载 2020-08-25 15:54:30 · 910 阅读 · 0 评论 -
衰减3dB是什么意思
衰减3dB是什么意思一、基本定义 dB(Decibel,分贝) 是一个纯计数单位,本意是表示两个量的比值大小比较,没有单位。 在工程应用中经常看到貌似不同的定义方式(仅仅是看上去不同)。其实可以分为两类:对于功率,dB = 10*lg(A/B)。 对于电压或电流,dB = 20*lg(A/B)。此处A,B代表参与比较的功率值或者电流、电压值。 天线增益显然可以描述成输出电压与输入感应电压...转载 2020-08-20 09:13:50 · 19620 阅读 · 0 评论 -
[DV]Debug simulation hang的一些技巧
Debug simulation hang的一些技巧 前言:作为DV,经常碰到各种simulation hang住的情况,比如使用wait忘了加delay、forever下面的blocking语句放在了if()语句里面,但是if()表达式不成立等等,有时候很难通过打log来定位导致Simulation Hung住的代码段。本文将分享一些Debug Simulation Hung住的技巧一、基本方法 在初次起环境的时候...原创 2020-07-08 16:48:31 · 3209 阅读 · 0 评论 -
[DV]多通道DSB模块验证经验总结及对CRV思想的理解
DMA验证经验总结(一) 前言:在Chip中,我们经常会插入一些Debug module,例如DSB(Data Send Back);在通信系统中,用于把A-Die的数据回传到D-Die。但是需要回传的数据会有很多路,因此我们的DSB会有很多Channel。因此这类模块会有如下的信号组合:sw_trg[192:0];req[192:0];work[192:0];idle[192:0]; ...原创 2020-06-22 17:35:14 · 1028 阅读 · 0 评论 -
国内芯片60个细分领域知名代表企业
国内芯片60个细分领域知名代表企业一、本文来源:全球半导体论坛转载 2020-06-04 21:26:49 · 629 阅读 · 0 评论