IC验证学习-从小白到放弃

第一天-69岁的验证老同志


诶,朋友们好啊,我是混子随意验证门掌门人马宝宝。
刚才有一个朋友问我:‘马老师发生肾摸事了?’
然后给我发来了几张截图,
我一看,
哦!原来是佐田,有两个年轻人,一个近视800多度,一个近视900多度。
塔门说,我读研在实验室搞材料,秋招找不到工作了,马老师能不能用混子功法帮我治疗一下,找一份IC验证的工作


我说可以。
我说,你们在实验室搞材料,不好用,他不服气。
我说小朋友:你两篇SCI来找我一个IC验证offer,
他找不到,
他说你这个没用,
我说我这个有用,我这个是风口儿,传统就业是讲究风口的,站在风口上,猪都能上天
他非要和我试试,我说可以。
我一说,啪的一下就站起来了,很快啊!
然后上来就是,
一个数电,吭,一个SV,一个Verilog
他全部都不会啊,不会以后,按照传统秋招,自然是点到为止,我把简历放在垃圾桶里,笑了笑,准备丢了。


我收拾时间不面了,他突然拿出一份offer来打我脸,
我捂着脸,我说,婷婷,
他说,马老师对不起对不起,我是乱投的。
他可不是乱投的啊,视频,书籍,项目,训练有素,
他说他报过路科验证,看来是
有bear来!
这两个年轻人不讲wood,
来,骗!
来,偷袭!
我69岁的老验证,这样好吗?
这样很好!
我劝,这位年轻人,耗子尾汁,好好自学,
以后还要来搞,
窝里斗~
谢谢朋友们!


第二天-学路科,快入门

在这里插入图片描述
放弃,发现基础的都不懂,我大E了啊,赶紧闪


第三天-转战数电

第一章,进制转换,这个不用看。
十进制换成二进制,除二取余就好啦,
二进制化为十进制,乘十的幂数,
然后什么反码,补码的,
以后碰上了再看。


第四天 数电/芯片验证齐头并进

明确了验证人的工作内容:找BUG,看设计的行不行。
写几个看不懂的词:

  1. RTL级
  2. 边界情况(Corner case)
  3. 错误情况(error response)
  4. 门级网表(gate netlist)
  5. 时钟频率
  6. 标准延时格式(SDF,Standard Delay Format)
  7. 反向标注(back annotation)
  8. 随机约束激励
  9. 效能验证流程
  10. 总线协议
  11. 存储大小,时钟快慢,动态电源开关,总线宽度,缓存深度

好了,先回宿舍,明天再学。


第五天-Linux的安装,突发头痛

天下苦视窗久矣!!!

14年购入的老电脑重获新生,快的飞起

有如此好系统,夫复何求!!!

6年高龄笔记本,一度由于太卡被我长期抛弃,今日借linux重获新生,相比windows那卡的要死的操作体验,Linux用起来真的比Dove还要丝滑。

在这里插入图片描述

oh,瞧瞧这简洁的界面,一步到位的命令操作符,简直太tm适合我了。

第六天-突破结界,验证平台的搭建与学习

直接从实例入手,更能快速理解这些抽象的概念

从经典实例MCDF结构,功能,时序描述开始。

有几个名词一下卡住我了,

  1. 时序,翻到数电目录,找到时序电路,开始阅读,这是一个与逻辑电路相对应的电路,讲究个先来后到。

逻辑电路中,输出的结构只与输入变量有关,而时序电路中,输出的结果不仅与输入有关,而且与之前的电路状况相关。

联想到之前学过的微薄的计算机组成原理,逻辑电路就像半加法,而时序电路就像全加法,不仅与相加的两个数a,b有关,还需要加上进位的c,同时输出结果Y和下一个进位c2.

  1. 波形图,顺带复习了一下逻辑函数,真值图,波形图,函数表达式之间的切换。

由真值图写出逻辑函数式的方法:找到使Y=1的所有变量取值组合,列出来相加即可。

由逻辑图写出函数表达式的方法:把每个门的表达式标出来就行啦!

第七天-重新开始,数据类型

利用要点搭建模块

数据类型

内建数据类型

第一个问题就是内建数据本身是什么意思?原来是Built-in data type,即自带的数据类型。
逻辑(logic)类型
主要用于描述硬件的语言,与之相对的概念就是bit。

  • logic在硬件设计中比较多,是一个四值逻辑,即可以表示0,1,x,Z。
  • bit为二值逻辑,0,1。
    那么我们在描述组件的时候就通常能用到了,常见的四值逻辑和二值逻辑如下:
    四值逻辑:integer、logic、reg、net-type。
    二值逻辑:byte、shortint、int、longint、bit
    尽量避免两种不一致的变量操作,注意符号类型

第八天 转行很大,你要忍一下~

一些无关的话

  • 嘿嘿,各位父老乡亲,我又又又回来了!(虽然没什么人看)。
  • 目前校招进入一家芯片公司搞验证,不去不知道,一去吓一跳,我滴鬼鬼,全是生化环材转行的呀!
  • 关键是,他们都是有备而来啊,就我一个铁混子,Verilog,SV,UVM全不会,可不能光耍了,得支棱起来,xdm,这就开冲!三个月速成SV和UVM, 立贴为证,大伙儿这不得学起来
  • 初步知道验证是干嘛的了,就是设计写好的RTL代码丢给你,让你搭个环境,跑跑仿真,看这个东西到底能不能实现功能。
  • 那么这个东西内部具体是啥,其实可以不用太关心,就把这个东西当做一个黑盒,那么我们主要关心的不是这个芯片设计怎么来的,我们只关心怎么不让它没。
  • 这不就是面对黑盒这个对象编程吗?既然知道了这一核心目标,那就用学软件的思路学验证

数据结构

书接上文,对于不同类型的数据,应注意三点:

逻辑数值类型

有四值逻辑和二值逻辑两种。因为二值逻辑的内存较小,因此SV中二值逻辑是最常用的逻辑类型,自然需知由四值逻辑向二值逻辑转换。

logic [7:0] logic_vec = 8'b1000_0000;
bit [7:0] bit_vec = 8'b1000_0000;
byte signed_vec = 8'b1000_0000;
initial begin:
	$display("logic_vec = %d", logic_vec);
	$display("bit_vec = %d", bit_vec);
	$display("signed_vec = %d", signed_vec);
end

由于logic,bit分别是无符号四值,二值数据,那么最高位不代表符号类型,故为128,128,而byte属于有符号二值逻辑,最高位为1,代表有符号,故为-128.

第九天 学学学,学个P

风格转化

当然,得学的,转换一下思路,不写知识点记录贴了,一是太琐碎,内容懒得敲,二是纯技术博客咱也写不好,不如说说人话,谈谈一些直观的学习感受,等我稍微有底气一点,再写点技术博客吧。

第十天 一分钟速成IC验证(骗)

背景:如今秋招正在如火如荼的进行,半导体行业借东风扶摇直上,在今年上半年中国大部分IC设计公司财报比往年赢利暴涨的背景下,普遍都在招兵买马扩充队伍,尤其是22届的IC设计/验证岗位更是给到前所未有的薪资待遇。
相比于科班要求更高的设计,偏软件的IC验证往往是天坑人尤其是材料人转行的第一选择。
入职以后不禁感叹,在验证部门,你甚至可以和小伙伴们探讨锂电池,钙钛矿和铁电(材料人狂喜)。

问题与冲突:然而对于很多第一次接触验证的小伙伴来说,甚至连IC验证是什么这个问题都还没解决。当然,这也是我一度满头问号,看了很多答案依然不得其解,直到走上这个岗位,完成了自己第一个小项目后,突然想再用自己的形象化思维回答一下这个问题。

形象化思维:首先设计和验证是亲密的好朋友,简单来说就是设计人员写出方程y=f(x),而验证人员要证明方程y=f(x)是否成立。
假如方程为y=3*x,那么我们最简单的解法是什么呢?当然是举例子带入啦,比如说带入了x=0,得y=0;带入了x=1,得y=3,当然,要有足够多的例子才能证明这个方程的正确性,那就要不断的提出新的例子,我们希望这些例子都是足够随机且多的,这种简单的数的产生的工作完全可以由软件来完成,也就是验证中的随机测试。
同时对于一些特别的值我们很难随机出来,即边界条件,但又很有意义的,比如说3.1415926,那我们就要单独写进去,这就是验证中的定向测试了。
当然这种简单的数的产生的工作完全可以由软件来完成,而完成这部分工作的软件就是测试平台,我们这种产生一个一个带入数的方式就是验证中所谓的激励,而这代入的数就是我们要处理的事务了。
当然这种一次代入一次的效率是很低的,我们如果可以随机的代入足够多的数,而只对一些很边界的条件进行输入的话,这样是不是就省事多了呢?

  • 21
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值