路科验证的个人空间 https://blog.eetop.cn/1561828 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

验证的管理篇之六:验证师的培养

已有 1754 次阅读| 2016-10-26 23:19 |个人分类:验证系统思想|系统分类:芯片设计

我们在之前的《芯片验证全视篇》中针对验证师的“自我修养”提出了包括技术和项目在内的要素分析,从《一名验证师的自我修养》一文可以发现验证师需要得到各方面的锻炼。在这些因素背后,通过日常的观察,我们可以发现优秀验证师之间的共同能力。这些能力不完全是与生俱来,如果你愿意下功夫,也可以在下面总结出的出色验证师的六大能力上面通过平时的积累来养成。

全硅能力(full-silicon ability)
目前软件开发领域最炙手可热的人才之一就是全栈工程师(full-stack engineer),他们往往通晓前台后台数据库的垂直开发,对于系统构建的理解也更开阔。我们验证领域也急需要这样的人才,称之为全硅工程师。类似于软件领域全栈工程师的要求,对于芯片验证的全硅能力我们也着眼在技能和视野两方面。

在技能层面,他需要掌握主流的验证方法、工具,并且能够结合实际来构建合理的验证环境,同时他在硬件、软件两方面都需要精通,可以随时切换来服务硬件调试和软件开发。伴随着硅前验证的完成,他也需要能够在硅后测试过程中配合测试人员给出可调试的方法或者创建测试用例。目前的验证方法和理念都在不断更新,工具的特性也逐渐复杂,在技能这一侧需要的是不断学习的习惯。

在视野上面,全硅验证师在日常工作中,由于可以看到更远更广的可能,无论是团队技术积累还是项目的整体收益,他都能够提前做出部署,早一步展开准备工作。团队里面有这样的人,往往如同定海神针,指引整个团队的项目工作和未来的技术储备。

不做假设(no assumption)
这一能力往往与日常工作的习惯是相违背的,因为工程师们往往喜欢做假设。他们在奇怪的现象面前容易做假设,或者在暂时解决不了的问题上也习惯做假设。而这些假设在相当多的时候不是最根本的原因,工程师们只是通过观察问题体现的各个方面来猜测问题的根源,而在更多的时候由于时间、精力的缘故一旦当时无法深究原因,同时做的假设看起来能够暂时解决问题的时候,这些假设逐渐地可能就被忘记它们是一种假设,而且被堂而皇之地发布在正式的环境或者产品当中去了。

这种有意无意的行为,很有可能会接到陌生来客的造访,那就是新的问题。因为所以没有弄清楚原因的解决办法都只是暂时的替代办法,而无法得到永久修复问题的保证。在这了,我们将常见的一些日常工作场景和建议改善的地方列举出来,希望有心者可以完善自己的习惯:
  • 在进入新项目时,假设该项目继承于之前的项目,于是所有的工作都参照以前的项目。这种做法背后隐藏的风险是,可能老的项目自身也不是百分百的完善,也有需要修改的地方。这里我们建议做更多的背景了解,从从事过老项目的人员口中得到更一手的资料。
  • 在搭建验证环境时,会假设硬件的行为、时钟、复位、数据输入的方式。这种做法背后的风险在于一方面限制了激励的种类形式,同时也可能跟设计思想有出入。这里我们建议跟设计师多沟通,了解设计的行为,同时也应该讲更多的激励组合方式考虑到验证环境当中去。
  • 在验证过程中,由于设计、环境、集成等各方面的因素,暂时需要对设计中的信号或者功能通过强行置位信号的方式,或者需要对验证环境做出零时的改变才可以让验证继续进行。这里隐藏的风险在于,一旦这些临时的做法忘记被擦除,那么对于功能验证结果的可信度就会下降。我们建议将所有临时的做法在一些项目节点上做集体回顾检查,消除这方面的隐患。

专注力(concentration)
人们会比较容易地在一件事情上专注一天、一周或者一个月,而如果他们需要专注很多年,对什么行业、什么职位来讲都是一个挑战。由于我们对验证师的综合能力越来越高,要培养一名验证师需要的时间和精力不允许公司或者验证师自己轻易地换岗,所以我们对验证师长期深耕验证技术领域的建议是:
  • 验证过程中会遇到各种困难,需要专注力去克服它们。
  • 验证完备性要求高覆盖率,这需要专注力来不断完善环境,有足够的耐心来创建多样的测试。
  • 验证技术变化很快,要求验证师也关注验证领域最新的动态,将新技术新想法结合到实际项目中去,提高效率。

逻辑性(logic)
逻辑性可以被运用到工作的各个角落,无论是解决问题的思路、安排任务的先后还是沟通对话都需要有良好的逻辑性,同时这一能力也直接决定了工作效率的高低。我们将逻辑性进一步划分为以下几点:
  • 环扣思维:无论在日常思考还是与人交流,工程技术问题都强调严谨的逻辑,需要环环相扣的证明,请尽量避免跳跃式的沟通方式,这一点在开展头脑风暴会议中可以忽略。
  • 优先级划分:在处理很多事情时,有的人往往会乱了方寸,也可能对整体的进度没有准确估计所以会影响到别人。这里优先级划分可以让人在一段时间内优先解决更迫切的问题,同时这种专注的方法也不会让人由于不断切换问题而丧失注意力。
  • 分工协作:验证师之间在芯片级验证阶段需要更多的合作,如果整个团队的协作良好,那么大家都会清楚自己和其它模块验证师之间的验证依赖路径,朝着整体验证目标迈进。
  • 结构化复用:这是针对环境的一项具体要求。验证师只有清楚模块自身和集成的细节,才能设计出可以更容易复用的验证结构。

战鼓光环(war-drum aura)
优秀的验证师除了自身的高效且富有经验,也需要将自己的经验财富尽可能多地输出。在一个验证团队中,我们需要几位身经百战的大牛可以一方面指导工作,另外也能够鼓励大家,提高整体的士气,及时帮助团队解决难题,这种积极的能力辐射我们称之为“战鼓光环”。这些大牛除了技术精进之外,也可以兼具以下的能力:
  • 激励(driver):在团队完成一项任务的时候可以及时鼓励,凝聚人心。
  • 督导(monitor):关注团队的项目进度,一旦有问题可以及时发现帮助解决,或者及时调整工作重心和方向。
  • 评估(scoreboard):对团队中的个人表现作出公正客观评价,为优秀验证师提供更多的机会。

降低复杂度(complexity reduction)
这是一种特殊的能力,但也有规律可循,最场景运用这种能力的场景就是去调试古怪的问题。在人们遇到了一种超出自己已有能力和经验范畴的问题时,人们往往需要作出不同的尝试来解决问题,没有人在爱迪生发明灯泡之前知道钨丝这种材料。在一个前所未见的问题面前,我们首先要考虑的就是通过降低问题的复杂度,来逐一突破,如果试图一步到位去解决它,恐怕要走的弯路不见得比一步一步解决来得少。降低复杂度的技巧一般包括:
  • 拆分问题:将问题尽可能拆分为多个子问题,找到依赖关系和难点,去逐步攻克。
  • 引入最少变量:在问题面前做各种尝试之前,将需要调节问题的变量数目降低到最少,最快的方式反而是逐个调节变量,而不是对各种变量的组合作出尝试。
  • 搜索资料:无论是通过同事间的谈话、查阅文档还是通过网络资源,正确地提出问题,将问题拆分为别人听得懂最好是可能遇见过的形式,有利于让你找到有价值的建议。



看到上面这些优秀验证师的能力,再结合自身,你不妨看看还有哪些地方需要日常修炼的。无论在什么岗位,不进则退。如果你不想在验证多年以后已经对所从事的工作产生厌倦的话,趁着你现在心态还年轻,还在关注这样一份垂直技术领域订阅号的同时,也开始进行上面六项验证能力的修炼吧!

下一次我们将进入《验证的管理篇》最后一节,同大家论述如何做到验证的专业化,该从哪些方向努力。

谢谢你对路科验证的关注,也欢迎你分享和转发真正的技术价值,你的支持是我们保持前行的动力。


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 253

    粉丝
  • 25

    好友
  • 33

    获赞
  • 45

    评论
  • 访问数
关闭

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

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

GMT+8, 2024-4-27 01:01 , Processed in 0.017796 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部