自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 【IC验证】怎么在sequence中调用agent中的函数以及如何快速实验你的想法?

最近略忙,今天就给大家表演个胸口碎……码一段代码。通过本篇文章主要想送给广大验证初学者和爱好者2件礼物:“一条鱼”和“一只鱼竿”。希望大家连吃带拿,开开心心地。“一条鱼”就是题目中的那个问题本身:“UVM中怎么在sequence中调用agent中的函数”。这个问题很多同学猛的听到可能还是会有一些懵,反应不出一个优雅的解决方法。“一只鱼竿”就是当你遇到这样一个问题的时候,怎么快速写一段代码验证你的想法是不是可以实现,也就是Jerry今天带你解决这个问题的过程。好了,我们开车~众所周知,在UVM中

2021-11-21 19:37:55 974

原创 IC验证-浅谈中断验证(一)

在工程项目中,不管是小到模块级验证,还是大到系统级验证,都有一项不可缺少的feature,那就是中断。中断是一种硬件与软件间、cpu与外设间的交互手段,中断一旦出问题,芯片很可能会因此缺失某些特性,甚至于毁了整颗芯片,中断验证由此显得极为关键。本期,黄鸭哥将给大家带来工程项目中常常碰到的中断的验证。1、何为中断我们先来了解下什么是中断?中断是指:芯片在执行程序指令流的过程中,突然出现某些意外情况而需要中止执行当前程序,并转入处理新的程序指令流,处理完毕后又返回原被暂停的程序指令流继续运行的机制。

2021-10-24 19:55:41 2149 1

原创 IC验证【管中窥豹集】你真的了解“随机”这两个字意味着什么吗?

“举管而望,观一斑可思全豹” --管中窥豹集· 杰瑞IC验证今日聊“随机”。有哥们儿说:“这东西太熟悉了不用聊!我们跑仿真的时候,每天都在随机测试嘛”。好的,Jerry给你讲一个小明的验证故事,看看如果给随机“换了一身衣服”,你还是不是真的认识它。小明有一天接到了这样一个验证需求:他的待验证对象是一个公共的RTL模块,且这个公共RTL模块带了很多parameter,正因为是公共...

2021-10-24 18:43:11 597

原创 IC验证【管中窥豹集】听到“对齐”这两个字你能想到什么?

我们在做项目过程中,常常听到“对齐”这个词,“对齐”简单理解就是某个量值可以被某个颗粒度整除。例如:“把首地址按照32byte对齐”,意思就是首地址的值需要能被32byte整除。“把图像宽度按照16byte对齐”,意思就是图像宽度的值需要能被16byte整除。但是我们常遇到各种“对齐”,诸如地址怎么样对齐、图像尺寸怎么样对齐等等。这些都是什么意思?为什么要对齐,对齐有什么好处?验证者应该怎么对待对齐这个事情?对齐的约束可以怎么写?今天我们就一起聊聊~1、和ddr打交道的地址对齐大量的IP

2021-10-24 18:38:12 1201 1

原创 IC验证工程师高效战斗手册---开篇

大家好,从本文开始,杰瑞IC验证将以专辑的形式,为大家陆续发布一个文章系列,主题叫《IC验证工程师高效战斗手册》。“手册”,工具者也。首先本专辑是一个工具。“高效”,为本专辑谈论的核心,即提高验证效率。“战斗”,是对工作的比喻,本专辑特指IC验证工作。往往战斗的工作状态才离不开高效。所以综上,本专辑见名知义:是IC验证工程师,在高效率工作的时候使用的指导工具。1、为什么要写这个主题?“怎么提高验证效率?”这个问题,是IC验证工程师成长过程中一定绕不开的问题。我们常在书籍或论文中看到类似的语言

2021-10-17 20:16:38 686

原创 IC验证工程师高效战斗手册---提问之道(下篇)

在上篇中我们围绕提问之道展开了讨论,内容例如:有哪些问题可以问或必须问?问问题的小习惯和节奏感?提问最佳姿势和时机?什么叫好问题?怎么问出好问题?追问和确认方法等?今天我们接着上篇的序号进行讨论。(没有看过上篇的朋友建议可以先回顾上篇内容哦~)点击直达上篇4、问谁?除了问问题的姿势和手段,问对人也很重要,是提高解决问题的效率的一个关键。先问自己没错,不要忘记你自己,先做一个自救者。有时候,你也许缺的不是问题的答案,只是缺一个小黄鸭。你也许是知道答案或者如何获取答案的,只是懒得网络搜索

2021-10-17 20:13:16 356

原创 IC验证工程师高效战斗手册---提问之道(上篇)

1、为什么先谈这个主题?如果有人问:“你觉得什么技能是工程师最重要的技能?”杰瑞IC验证认为,不是你的代码能力或某项具体的技术,而是“提问”的能力。《当幸福来敲门》中有一句很棒的台词:“主啊,请别移走前面的高山,请赐我攀越的力量!”IC验证之路上有高山无数,而攀越之力则为提问之力。提问贯穿整个工作始终,提问能力一方面会影响一个IC验证工程师的工作效率,同时更影响着你的成长效率。没有问题则说明没有思考,没有解决问题则会减缓成长的脚步、为未来埋下隐患。今天我们就结合实际一起来具体探讨下这个能力。

2021-10-17 20:09:52 333

原创 IC验证工程师高效战斗手册--接到验证任务与前期高效学习

前面我们讲了贯穿整个工作始终的提问之道,今天我们一起探讨接到验证任务、以及验证前期如何高效的学习。1、接到验证任务验证工作开始的第一个环节是什么?有人说是学习spec,有人说是提取feature。这些其实也都没有错,但其实在这之前还有一个关键环节你没有意识到,那就是“接到验证任务”。“兵马未动,粮草先行”,杰瑞IC验证认为,接到任务时候就应该带上一些“小”行动和反应,为后续验证工作高效展开打上基础。即从你接到任务的那一刻,这场仗就已经开始了~(1)确定验证对象状态和各个环节负责人你需要确定清

2021-10-17 20:00:35 633

原创 IC验证工程师高效战斗手册--验证feature文档梳理

前面我们探讨了接到验证任务后的行动以及前期如何进行高效的学习,当有了对验证对象的充分理解和学习之后,我们就可以进行验证feature(即验证的测试点)的提取了。凡事预则立,不预则废,众所周知,验证feature文档决定验证的内容、侧重点、质量,是验证工程师最重要的文档和指导工具。本文的侧重点不在于大而全的探讨诸如”不同类型的验证对象哪些点可以作为验证feature”等内容(以后在别的文章中有机会再讨论),而是继续遵循“高效”的主题,一起探讨如何又快又好的梳理验证测试点这个文档?怎样在验证过程中充分使用这

2021-10-17 19:57:19 1093

原创 IC验证工程师高效战斗手册--如何制定高效的验证方案

在《IC验证工程师高效战斗手册》专辑前面的文章中,我们一起探讨了“提问之道”、“接到验证任务后的高效行动”、“前期如何高效学习”、“如何高效提取测试点”等等话题。很多新入行的粉丝表示这些话题对他们的工作很有帮助,也有向Jerry催更的,今天我们就接着这个主题继续展开讨论。当我们完成了前期的充分学习,对验证对象有所理解、有了初步验证思路、提取出了验证feature,就到了制定完善具体的验证方案了,验证方案如同作战方案,是行动高效的保证,从作战意识到作战策略,都很重要。如何才能制定出高效的验证方案呢?1、

2021-10-17 19:49:24 1025

原创 IC验证工程师高效战斗手册--高效验证平台搭建和冒烟测试要注意什么?

前面我们一起探讨了“如何制定高效的验证方案”,方案和战略有了,便到了具体执行。执行的第一步,即是验证平台的搭建和冒烟测试,本篇我们就一起聊聊,高效的搭建验证平台和冒烟过程中需要注意什么?**1.高效搭建验证平台**根据验证方案的规划,我们将在某个合适的时间节点,焚香沐浴更衣,开始动手搭建验证,高效的平台搭建需要注意什么呢?1.开局怎么开?一般有2种思路:一种是从复杂的核心的组件的编写和调用为起始,然后逐步建立完善文件结构,扩展成完整平台;另一种是先把整个平台的框架和文件结构建立起来,然后再逐个组

2021-10-17 19:41:10 8747

原创 $test$plusargs(),$value$plusargs()怎么用?有什么坑?

各位朋友,在SystemVerilog中有两个函数作用很大,他们是:$test$plusargs ( string )$value$plusargs ( user_string, variable )如果验证平台是人类的宠物,他们就是人与宠物之间沟通的钥匙。如果验证平台是一座雄伟的城堡,他们就是城堡内部与外界联系的电话。如果验证平台是一杯奶茶,他们就是喝奶茶的那根吸管!!太感动了,这首诗太美了!01、怎么用?相信从这首诗中大家已经很清楚的知道这两个函数什么作用了!没错!我们在仿真运行

2021-07-18 17:16:50 748 1

原创 a[0+:8] 、b [15-:8] 什么意思?怎么用?

之前jerry讲过怎么最方便的把一个128bit位宽的数,拆成字节使用的技巧(不知道的可以复习下前面的文章哦~)。今天反过来讲讲怎么把字节为单位的数拼成128bit?这个问题其实也是很简单的,相信关注Jerry的同学都会,比如最容易想到的移位来解决这个问题:可以这样写:bit [7:0] jerry_byte[16];bit [127:0] data;for(int i=0; i<15 ; i++)begindata[127:0] ={data_mid[119:0],jerry_byte

2021-07-18 17:10:39 5286 1

原创 妙用合并数组

今天开门见山,不做前戏。请问:bit [127:0] data;把如上定义的128bit的data数据给我拆成以字节(8bit)为单位的数,后面要以字节为单位使用,怎么写?有人说了,怎么能问我们这么低级的问题?这个可以直接用啊?拆什么拆?比如我要最低一个字节,那就是直接用data[7:0],再上去一个字节用data[15:8],这样啊?有道理啊,Jerry如果有这样一个需求“给我把这个数的第3个字节加上第5个字节,然后与第8个字节做亦或、再加上第13个字节与第7个字节……“(有种鲁智深戏弄镇关

2021-07-18 17:07:33 158

原创 约束里“:=”和“:/”傻傻分不清楚?今天彻底弄清!

在SystemVerilog约束之中,有两个点常常让初学者混淆搞不清楚,或者当时记住了后面不用又忘了。今天jerry就专门来侃侃这两个点,让初学者们想忘也忘不了,全部拿下!这两个点就是权重分布的两种写法“:=”和“:/”。如下面这段代码,这jerry_face_score和tom_face_score两个变量约束都应该是多少呢?对于初学者是不是有点晕?这两个“:=”“:/”什么区别呢?到底左边是权重还是右边是权重呢?大家思考一会,可以看下如下解释这段代码什么含义,我们的思考流程是这样的:首先大家一

2021-01-17 19:03:10 14053 2

原创 fork-join挺好用的了,fork-join_any、fork-join_none有什么用?

我们早在学习Verilog语言时就学过:相对于begin-end顺序执行的语句块,还存在fork-join并行执行的语句块。这些知识用起来已经很顺手了,但是当学习到SystemVerilog语言的时候,突然告诉你:其实fork-join还有两个失散多年的亲兄弟活着!那就是fork-join_any和fork-join_none!!!这三个兄弟虽然长的比较像,但是其实性格是不一样的!他们的主要性格区别是他们对待称为“线程”的小朋友的态度上。“线程”小朋友是轻量级的“进程”,是程序调度的基本单位。假如某一时段

2021-01-17 19:01:02 1756

原创 水果与盘子的随机问题?怎么搞

Jerry今天去超市买水果了,买了四种水果,分别是苹果、橙子、香蕉、梨。为什么这四种?可能是因为刚好促销吧,盛情难却(与插图不符哦)。回来以后打算每种水果吃一个,为了增强仪式感以搭配Jerry高贵的气质,于是决定用四个盘子分别盛放一个水果,沐浴更衣焚香,准备刀叉筷子红酒,仔细品尝其中滋味。在沐浴之时突然想到一个验证初学者可能不会的问题,于是感慨万千。Jerry把这个问题就命名为“水果与盘子问题”。Jerry所谓的“水果与盘子问题”其实指的是这样一个约束问题:我们把这四种水果看成四组数据、或者简单点就是四

2021-01-17 18:57:50 426 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除