在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: rhythm1988

[原创] 验证漫谈

[复制链接]
 楼主| 发表于 2011-8-6 00:48:54 | 显示全部楼层
本帖最后由 rhythm1988 于 2011-8-6 01:53 编辑

写点东西讨论讨论前面的几个问题:
1)关于验证的目的的问题,迄今为止只有一个目的“设计是否满足了spec”,既不是可靠性,也不是bug,从《writing testbenches》第一个版本迄今,没有任何一本书修改了这个概念。
如果哪位知道这个目的修改了,记得通知我学习学习。
关于这个目的可以稍微多讲一点,可靠性就有点不着边际了,找bug呢有点靠谱,但要分清楚bug是手段,不是目的,手段和目的混淆了,团队容易舍本逐末,这个应该不难理解。
2)36#的spec修改问题
首先,理论上spec的修改应该有版本的概念,当然实际上没有那么严格,spec的修改的确是常事,这是现实情况,不扩展讲团队怎么解决这个问题,但也不能忘了写spec是一个有艺术的活,做个类比吧,基本上就是孙悟空给唐僧画的圈圈。
其次,我们聚焦在验证团队如何应对spec的修改,spec都修改了,testbench没有道理不修改(modify),其实我很想从讲各种书上看到说不用modify这样的字眼,不过很遗憾,暂时没有!
再次,既然testbench的修改是不可以避免的,那也不是随心所欲,业界引入OOP等等,有一个目的是使修改量最少,当然不是单纯针对spec的演进问题。
最后,如何使修改量最少呢?使用方法学是个很好的手段,但更基本的是OOP的五大原则,特别是OCP原则(请各位有兴趣去看《敏捷软件开发》的相关章节,有详细的解释),具体的方法在《设计模式》这本书里面。
结论:针对多变的spec的验证场景,基于OOP的原则,合理搭配设计模式,把修改合理开放出来。
没有更多的东西!进一步的内容在你自己的实践中。
3)关于callback的问题(最后一次谈关于方法学先进与否的问题)
单纯地说callback不好或者好,不先进或者先进,那是藐视业界专家们的智慧,可以设想在是否使用callback的问题上,一定有个非常激烈的讨论,这是可以想象的。
callback破坏了类的内聚性,把修改交给了一个函数去实现(请不要和重写等等混淆了),可以说是OOP的大忌,但带来了灵活性,鱼和熊掌,怎么办?
这时候就有“专家”的作用,依据软件的规模,应用场景,包括其它限制条件,来决定是否使用。即使我用VMM的方法学,也可以绕过callback不使用,而达到callback的所有目的,这个权衡就需要“专家”,不是EDA的专家,而是验证团队中的专家。
而“专家”不能说拍脑袋说用就用,而是指定一个完整的使用策略,制定使用规则,把相关的不利因素限制在最小范围之内。
4)关于学习路线问题
依据业界的惯例,前十年都是基础工程师阶段,十年级别的出来做presentation,都基本不够格,二十年的都要好好地介绍一下自己的简历才可以。
所以,像我们这种人还要什么路线,什么都可以,找一个团队,随便什么语言都先好好吃个三五年,比如SV的communication机制,你学了三种,再想想为什么是这三种,其他的进程和线程通讯机制为什么不放进来,由点及面,这东西多了去了。
技术这条道路没有“九还丹”什么的,吃了就直接打通任督二脉,百毒不侵什么的。当然这么说并不是没有什么加速的手段,比如:良好的团队氛围,专家型领导的指导等等,但这些都是次要的,辅助的,这些只是让人少走弯路,为了做事情的方便(一般而言,走了弯路也不是坏事!)
关键还是在于自己,“知行合一”!

总而言之:
我和各位不在同一个环境中,我对各位的自身条件,团队情况,历史条件等等等等客观因素无从了解,说句实话也没有条件和义务去了解,所以我没有办法就具体问题来讨论,只能虚头八脑地讲喽!希望大家能理解!
 楼主| 发表于 2011-8-6 01:58:38 | 显示全部楼层
由于时间的因素,我不再参加本帖的技术讨论,请大家见谅!
不反对大家继续讨论!!!
发表于 2011-8-6 10:02:35 | 显示全部楼层
先占座。。。。
发表于 2011-8-7 17:34:48 | 显示全部楼层
我不算啥兼修, 我最感兴趣的是我们的产品相关的知识, 不过工作的主要内容是做验证, 也想先把这个技能掌握了.

完全同意验证的目的是“设计是否满足了spec”,我们验证的第一步是做验证计划, 理解设计并列出要测的场景, 不会出现的场景也不会测. 所以我说是抓bug,,,,没想那么全面.

又看了一遍你52#的回复, 觉得对验证的这些方法学又有了一点点的理解, 以前没想过一些问题现在明白了一点点, 这两天正在看"SV for verification", 看来还得仔细的读几本书才行, 不过有了你们这些高手的指路, 去看书觉得明白多了, 不像以前, 只关心怎么用, 从来没多想想为什么啊.....

最后还是希望你能继续贴出你的心得, 你可以一点一点的贴, 不需要一次全抖出来, 也不需要讨论, 然后让我们慢慢的理解, 谢谢.
发表于 2011-8-7 17:39:35 | 显示全部楼层
为什么我关心速度呢, 因为我以前那个公司用verilog+PLI+C做验证, 用C实现random, 仿真速度很慢(07年, 几百万门吧), module level还挺好, 但是到了chip level, 就有点吃不消了, 但是用VMM或者specman, 我们现在的芯片都是几千万门, 仿真速度还可以, 起码specman的速度可以, 只是load RTL可能要花点时间.

看到你用C的, 所以想了解一下仿真速度的问题.
发表于 2011-8-7 18:46:04 | 显示全部楼层
谢谢lz分享经验
发表于 2011-8-7 22:40:47 | 显示全部楼层
谢谢lz分享经验,受教育了
发表于 2011-8-8 17:27:12 | 显示全部楼层
关注前辈~
发表于 2011-8-8 17:35:36 | 显示全部楼层
都是牛人啊
发表于 2011-10-4 17:35:05 | 显示全部楼层
这种帖子还是要顶的,后续还需各位多多支持
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 11:50 , Processed in 0.033012 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表