嗨,屏幕前的你还好吗?我是不二鱼,一个不喜欢写技术博客的IC验证工程师,写这个系列,是需要很大的勇气的,因为,写得人很多,但写得好的不多,我也是如此。我一个菜鸡,敢写UVM(应该也不止UVM,我尽量把其他知识杂糅进去),我是疯了吗?至今能有比张强老师写得好的估计也没有,我之所以写,是为了促进自己进步,换了一个新的环境,使用UVM也是日常必备,所以,以写促学,写一写我眼中的UVM,也希望能和大家一起学习,相互成就,如有错误,欢迎私信我批评指正。
一个技术帖为什么选这么个小清新的模板,是因为,想让你看完如沐春风,没有压力感,哈哈哈。
更新频率:暂定一周一更。
01
UVM小剧场
大家好,我是一个漂洋过海来到中国的外国萌妹子,我叫UVM,我的职业是灵魂注入师,是不是有一点玄幻?我给自己取了个中文名字,叫做爱新觉罗·幽梦,大家可以叫我幽梦。
我来中国很多年了,但是,有很多年,我都没有饭吃,总是吃了上顿没下顿,饥肠辘辘,骨瘦如柴,我曾在天桥底下卖过艺,现在,我发迹了,我靠着一身过硬的本领,强大的灵魂注入能力,终于进入了高楼大厦里面,然后继续卖艺,这次的卖艺对象是IC验证工程师,我负责让他们觉醒,让这一群IC验证工程师,努力给老板干活。偶尔,钱给的够的话,他们想怎么用我,就可以怎么用我,可以尽情的蹂躏我,但大多数情况还是我蹂躏他们。
来中国这么些年,我发现,中国人里头懂我的,真的不多,我常常因为长的复杂,而且抽象,幽梦的心,海底针。我经常因为不被理解,而被人所嫌弃,从幽梦变成了噩梦,可是,我祖传的手艺真的很好,这群男人,不懂我。我时常出现IC验证工程师的梦里,把他们给吓的,夜不能寐。
直到有一天,我遇见了一个叫做张强的男人,他说他可以做我的经纪人。他苦心孤诣,和我朝夕相处,他有饭吃的时候,我就有饭吃。他对我很了解,把我介绍给中国人,更确切的说,是中国IC验证工程师,为了更好的推广我,我的经纪人张强,还特地写了一本使用指南-《洋妹子使用指南》。我说,这听起来带颜色呀,他又说《如何优雅的和幽梦实战》怎么样,我让他滚。
最后,这本使用指南,我们敲定叫做《UVM实战》,一听起来,这就是一本纯洁无瑕、老少皆宜、技术满满的使用指南。是我的经纪人,让他们知我,懂我,愿意给我发通告,接广告,做代言,我才吃上饱饭,我也遇上了很多知音,懂我的人越来越多。其实,我是一个很善良的洋妹子,我乐于助人,别看我是个妹子,但我手劲大,力气足,我能干活的,我出活的效率贼啦高,咔咔给你整好,灵魂注入师,我是顶尖的。(不好意思,我曾经流浪东北,所以带了点东北口音),我是吃百家饭的,我谁都愿意帮。If you have any trouble, please let me know!
02
初识UVM
我眼中的UVM
好了,可以从幽梦的世界出来了。这一篇,是第一篇,谈一谈什么是UVM。
这个问题,在我之前的面试中 ,出现得频率也很高,面试官经常问,“什么是UVM,为什么要用UVM,和SV相比有什么优点”。不知道你心中是否有答案。如果没有,希望你看完这篇文章,能有所了解。
估计大家在被问到的时候,都能脱口而出,UVM,验证方法学。它不是一门语言,它是一门方法学,但是一门建立在systemverilog这门语言上的一门方法学,是不是有一点绕,专业一点的解释就是“UVM 是建立在 systemverilog 平台上的一个库,它提供了一系列的接口,让我们能够更方便的进行验证”,是的,UVM为验证而生。很多看我文章的朋友,可能并没有多少语言基础,很有可能verilog就是你们的第一门语言。
在此之前,为了学好SV和UVM,我个人的建议是,要了解一下什么是面向对象编程,与之对应的就是面向过程,否则你学起来还是很费经的,下次也可以专门开一篇,一起探讨一下什么是面向对象。如果你了解了这个,其实就能回答上面的问题。
UVM最大的好处就是,复用性高。为什么复用性高,是因为,它有一个库。在这个库里,有很丰富的资源,你可以直接拿来就用。作为炒菜专业户,就好比你要做一道菜,如果没有菜市场,那你就要自己种菜,从种子开始发芽,浇水施肥,等着它长大。但是,如果有菜市场,你就可以直接买过来,开始做菜,开始颠勺,是不是又快又好呢?这其实和很多语言都是一样的。UVM作为验证方法学,在库里有很多基类,也就是父类,你如果要用,可以直接用,还可以扩展。
在公司,很多项目都是不断的迭代,改进,所以在最初搭建好验证平台之后(验证平台可能又是盲区,别着急,下回分解),在以后的反复迭代的过程当中,我们就可以进行复用、优化、拓展、改写,而不需要从零开始搭建验证平台,越是成熟的公司,它的验证平台会越完善,这样虽然省事,但是对于初学者老说,并没有很友好。很多新人有误解,觉得做验证就是搭平台,其实,用不着你,等你搭出平台来,公司都能黄两次了。但是,如果是初学者,我还是建议尝试着自己搭建一个验证平台,即使是一个简单的,也是挺锻炼人的。
我们为什么要用UVM呢,当然是为了省事,省时间。要是每做一次项目,都要推倒重来,从零开始,那该是多么费劲。
好了,这篇科普技术文就到这里,希望我讲清楚了,你懂了。持续更新,欢迎关注。觉得有帮助的朋友,希望能够点个赞鼓励一下(你点赞幽梦不让你走)!!你的每个鼓励都是我持续创作的动力!