电子产业一站式赋能平台

PCB联盟网

搜索
查看: 17|回复: 0
收起左侧

【犄角旮旯的bug】沟通交流也不是多多益善

[复制链接]
匿名  发表于 昨天 12:38 |阅读模式
这次记录的是之前一个bug,其实来讲应该是比较严重的RTL问题。往大了说,这个bug几乎就是使得交付的某子系统的一种配置模式近乎瘫痪,输出结果会比预期偏差大(直接判定为FAIL)。但幸运的是,问题是出现在预研版本而非正式的流片版本,这意味着错误还可以在下一代流片版本的交付中修正,因此没有造成严重的后果。事后诸葛亮的看,这个问题的核心点不在于这个bug的对或错,而在于另外一点:验证和设计关于方案的交流太细节了。类似的一个bug在前司时也发生过一次,当然后面在环境review时被验证及时的纠正了回来,没有把疏漏留到产品中,即使这样一顿回溯是跑不掉的。而这次就很尴尬,直到重构这一代系统时我才意识到上一代的方案出错了,所以一次自己进行一下回溯就很有必要。话说在刚刚步入工作岗位开始验模块时,在业务和技术之外师傅和我强调了在项目交付和配合上的三件事:
  • 在项目方案期和编码验证期,不要和设计有太多关于方案细节的交流;
  • 优先和架构师基于feature/architecture spec去交流,不到质量活动需要补充验证点和覆盖内部corner情况时,最好不要去看设计的design文档;
  • 无论和谁有关于本模块的交流讨论,如果形成了结论,那么必须要文档上有出处,没有的话让架构师去补;[/ol]这三点颇有“甩锅”的嫌疑,但是其内核倒是挺对的,就是为了避免设计和验证关于某个问题出现“一拍即合”的事情。

    在之前的工作环境下,这些规则是比较容易达成的,因为之前的组织架构是这样的:

    说白了就是在设计验证这个搭档体系里,有一个理性客观独立的第三方:架构师,同时(通常来说)这个架构师他的经验是比负责模块“实现”的设计和验证要丰富很多的。所以说,有分歧或者不明确的地方,可以直接找架构师交流或者提文档单要就补充,剩下的事情就是根据feature/architecture spec,设计出自己的设计方案,验证出自己的验证方案和测试点文档。而后面发生了一些变化,越来越多的出现身兼数职的情况。比如在很多地方设计需要担负从算法硬化到RTL编码完整的流程(等效于设计=架构+设计),而验证很多时候是需要根据设计的方案去完善环境的。这也不可怕,因为在这种情况下通常还会有另外一个事务来充当中立第三方的golden result角色,比如经典数据集和结果、某些库、软件、算法模型的输出等(如opency)。

    当然饶是如此,个人仍然觉得在方案确定阶段,验证和设计不要有关于方案细节太多的交流,如果可以,尽可能的从原始算法或论文中提取“该如何做”。如前同事所说,做芯片是件需要“战战兢兢如履薄冰”的事,该谨慎就要谨慎,当然该大胆也要大胆(如把所有寄存器都大随机起来罒ω罒)。也因此之前在做验证环境时,推荐我们在一步一步循规蹈矩的reference model之外,再有一个c2c check就是直接通过输入得到最终输出(可能是粗粒度的输出),也要和RTL的结果进行比对。最近在写ESL模型时,我也采用了这种比对思路。好,回到这个bug,这个bug之所以“遗留”到了下一代才发现,恰好就是同时命中了两件事:
  • 验证和设计一起讨论的方案,并且觉得这方案真不错,又简洁又合理直接定下了,同时后续反追文档时发现这里只写了该模式的要求,而没有任何一处说明了不同模式的处理方案;
  • 方案处于“预处理”阶段,而golden模型的输入是预处理之后的数据,导致这一部分有golden比对的缺失;[/ol]而自己一直反对自写自验也是基于这方面的教训,业务和工作原因也不方便说更多的细节就到此为止好了。总之记录并分享下这次的事情,在目前越来越多的设计和验证身兼数职的情况下,抛出对这个问题的反思供大家引以为戒。

    系列文章入口【芯片设计】SoC 101(一):绪论【芯片设计】FIFO漫谈(零)从无处不在的FIFO开始说起【芯片设计】计算机体系结构(一)虚拟内存【芯片设计】深入理解AMBA总线(零)绪论
    【芯片设计】握手协议的介绍与时序说明【芯片设计】复位那些小事 —— 复位消抖【芯片设计】快速入门数字芯片设计(一)Introduction【芯片验证】UVM源码计划(零)下定决心读源码前的自测环节
    【芯片设计】异步电路碎碎念(一) 到底什么是异步电路
    【芯片设计】从RTL到GDS(一):Introduction
    【芯片设计】系统中的可维可测状态记录寄存器设计
    【芯片设计】偶遇编码建议(一)为什么RTL中避免使用task

    其他文章链接【芯片验证】sva_assertion: 15道助力飞升的断言练习【芯片验证】可能是RTL定向验证的巅峰之作【芯片验证】RTL仿真中X态行为的传播 —— 从xprop说起【芯片验证】年轻人的第一个systemVerilog验证环境全工程与解析
    【芯片设计】verilog中有符号数和无符号数的本质探究
    【芯片设计】论RTL中always语法的消失术
    【芯片设计】代码即注释,注释即代码
    【芯片设计】700行代码的risc处理器你确实不能要求太多了
    入职芯片开发部门后,每天摸鱼之外的时间我们要做些什么呢
    如何计算系统的outstanding 和 burst length?
    芯片搬砖日常·逼死强迫症的关键词不对齐事件
    熟人社会里,一群没有社会价值的局外人


  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表