從 IC流程中探索數位工程師的風格--II

就Back-end而言:

就Back-end的工作內容,主要的負責單位是CAD部們,數位工程師只是輔助的角色。如果是輔助的角色,那麼應該要注意哪些細節呢?

1. 建立primetime環境來驗證CAD做完APR後的netlist是否是符合自己的需求。

2. 請CAD給一套和他工作環境相同的primetime環境,做為最後驗證timing的path的依據。

3. 任何因為timing不符合時,需要修改netlist時,請CAD重做一份,數位工程師不代勞。

4.任何因為bug問題,需要修改netlist時,數位工程師要做,但是再請CAD工程依修改的netlist做出一份新的post
netlist及timing model。不用數位工程師修改的版本來做primetime check。要用CAD的版本做primetime
check。

5. 數位工程師要跑post-level
simulation,驗證post-netlist是否是正確的?

6. 如果都驗證無誤時,要用CAD部門的版本當成是對外要tapeout的版本。

或許你會覺得有些地方是多餘的,像是第一點和第二點,就是要一套primetime來做timing
check,誰建的還不都一樣。曾經遇到CAD拿到錯的timing constrain,結果CAD報一大堆timing
violation,我用CAD的primetime環境查半天才發覺。所以當CAD報有timing無法收斂時,第一個要先確認是不是環境設定問題。畢竟你給出去netlist時,在DC都是timing收斂。很少有機會到primetime時,發散,除非 margin留得不夠,不然前後應該是一致的。所以為了確保CAD的環境的同步,就只好自己先建一個primetime,兩邊同步在相同的認知上,再開始工作。

另外,對於為什麼要堅持CAD部門提供tapeout的netlist?以及發現timing
violation時,數位工程師為什麼不能自己修改?我舉一個案例分享。

有人曾經遇到,project leader發現bug和timing
violation時,而為了趕上當初承諾的行程,project leader自己修正bug和timing後,自己用primetime check
static timing以及formal
check比對RTL和netlist。發現都沒有問題後,就直接tapeout。晶片回來後,發現有部份的設計,有hold-time violation的疑慮,project
leader不敢說自己有修正netlist,直說是CAD的版本有問題,CAD部門查了半天,都查不出來。重做第二版時,就用新的RTL
code合成,也真的是用CAD部門的netlist
tapeout,結果第二版的晶片出現和第一版本的錯誤完全不同。總經理就疑惑,「不是沒有改RTL code為什麼會這樣子?」工程師在第一顆晶片查到的有些問題,都無法在第二顆晶片上得到解釋。Project leader也無法在第一顆和第二顆晶片實驗中,得到他完滿的解釋。最後是誰背黑鍋,還是CAD。因為hold-time violation沒有再出現,但是新的問題又出現,而從頭到尾第一顆晶片和第二顆晶片的RTL都是一樣的,只是第一顆的RTL是在tapeout前才底定。

Back-end這個階段,數位工程師只是輔助的角色,那就做好輔助的工作,一切都是CAD說了算,project leader也沒有能力去修正netlist,數位工程師的本份就是盡力幫CAD版本的netlist做最大的驗證;發現任何問題,就是要讓大家都知道,然後再跑一次流程。每個計劃中,有很多的成員加入,尊重每個領域的專業,並讓他確實的負責,這樣子才會讓加入的工程師有參與感和使命感,才能留住工程師的心。

token的轉移和劃分的概念,不光是用在design上,還可以用在IC的流程上,實際上,它很多其他的地方。整個project的規劃也可以用這個概念,只不過當方法和規則建立後,你願意嚴格遵守並確實的執行嗎?

有的數位工程師會嚴格遵守並確實執行,有的不會。我們都知道,事實上是很難,因為project leader有schedule(行程)壓力,project
leader怕別人知道做錯的壓力等等,總是可以找到合理解釋,來縮減IC流程中的步驟。運氣好的話,沒事,運氣不好的呢?

工程師是做科學驗證的工作,希望能嚴格遵守並確實執行,提昇晶片的穩定度及品質。或許有著各式各樣的壓力,但是能堅持下去,就是知行合一實踐。不然光說不練,對於管理上也是一種很大的傷害。

從 IC流程中探索數位工程師的風格--II,布布扣,bubuko.com

时间: 2025-01-31 03:52:25

從 IC流程中探索數位工程師的風格--II的相关文章

從 IC流程中探索數位工程師的風格--III

在上述的 IC流程中,還有其他工程師也是參與其中:而你是數位工程師,你對其他工程師的責任是什麼你有清楚嗎? 案例分享: 在這個 IC流程中,數位工程師會需要類比工程師的幫忙部份,絕大部份是在synthesis LIB的參考和simulation時的模型建立.曾經遇過類比工程師需要數位工程師幫忙驗證他們建立的LIB是否正確?在這個IC流程中,確實可以幫類比工程師驗證LIB.但是當初在規劃行程時,有把這個時間算進去嗎?而且整個design在進入synthesis階段時,在很多的synthesis條件

數據分析師怎麼寫報告

隨著大數據時代的發展,人們每天在互聯網上產生大量的數據,對於企業來講這些數據都是十分寶貴的資源.企業可通過數據挖掘進行戰略調整以及營銷部署,尤其是對於互聯網公司而言,用戶行為產生的數據就是企業最寶貴的資源.數據挖掘(Datamining),又譯為資料探勘.數據挖掘.數據採礦.它是資料庫知識發現中的一個步驟.數據挖掘一般是指從大量的數據中自動搜索隱藏於其中的有著特殊關係性的信息的過程.數據挖掘通常與計算機科學有關.不過目前為止,在企業中存在著很大的數據分析問題,如何進行數據分析,數據挖掘的結果要如

matchmove流程中修改Maya相机数据的脚本

matchmove组的流程涉及到syntheyes与maya,nuke交接的问题.syntheyes会生成包含去畸变节点的nuke工程 和带跟踪信息的maya工程.在nuke工程上渲染得到去畸变的序列,这是第一步.第二步就是进入maya工程替换去畸变的序列,并修改相应相机参数. 在以往流程中,第二步需要人工完成,涉及到的参数也不少,不熟悉流程的员工时常犯错,是一个流程隐患. 要解决这个问题就需要一个脚本自动完成第二步骤,相机之前的数据可以直接获取,之后的数据可以根据去畸变序列的属性进行换算,于是

UI产品设计流程中的14个要点

http://www.sj33.cn/digital/wyll/201404/38318.html 自从我在 Dribbble 上贴了一幅我的产品设计成果,受到了大家伙热烈的反馈,对此我深受鼓励,我决定写下这篇文章,用来记录我这两年里作为产品设计师,所学到的东西.说起来有点惭愧,这几年我一直都在使用同一套产品设计的流程,但是我觉得这套流程最适合我,对我来说是最理想的,所以就很少去更换.我的这套工作流程我觉得有 4 个地方可以和大家分享一下--前期工作.具体设计.后期工作以及一些提高效率的小细节

Java前辈:学习J2EE流程中的经验和教训

Java前辈:学习J2EE流程中的经验和教训 在这里我谈谈我在学习j2ee流程,并谈到在此过程中领会的经验和教训.以便后来者少走弯路. Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE.这三块相互补充,应用范围不同. J2SE就是Java2的标准版,主要用于桌面应用软件的编程: J2ME主要应用于嵌入是系统开发,如手机和PDA的编程: J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统. 先学习j2se 要学习j2ee就要先学习j2

Perl在IC设计中的应用

Perl和Tcl是ic设计中最常用的两种脚本语言,在我学习perl之前完全的不知道他们到底是干什么的.在这里先总结一下Perl的作用: 1.用于生成Verilog代码 在写verilog时,经常遇到一些规律性强,编写又比较麻烦的代码,而这些恰恰又是可重用性比较强的.比如总线模块.FIR滤波器.IIR滤波器,只要 滤波器阶数和参数定了编码都大致相似的模块,就比较适合用来自动生成实现他们功能的verilog代码.Perl的强项在于文本处理,对于verilog 代码的生成,perl的代码会比较简洁易写

非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同

非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同 1.非接触式IC卡的国际规范ISO/IEC14443的由来? 在非接触式IC卡的发展过程中,这些问题逐渐被解决并形成通用的标准,体现在现在的射频IC卡的设计上,国际标准化组织(ISO)和国际电子技术委员会(IEC)为期制定了相应的非接触式IC卡的国际标准--ISO/IEC14443. 2.ISO/IEC14443中的主要内容及typeA,typeB卡的由来 ISO/IEC14443标准包括四个部分: 第一部分I

软件开发流程中的问题解析

软件开发流程是每个技术开发公司经常需要面对的问题,它在很大程度上决定了一个软件开发公司能不能做出好产品 ,并且是不是一种高效率的状态.下面就来简单对软件开发流程中的问题做些简单解析,方便开发者能够更加清晰开发中需要注意的事项,并找到符合自身的开发流程. 确定需要软件开发的思想来源是丰富的.这些想法可以来自市场研究,包括潜在新客户的人口统计,现有客户,产品的销售前景,其他内部软件开发人员或创意第三方.软件产品的想法通常首先由营销人员评估经济可行性,以适应现有渠道分布,对现有产品线可能产生的影响,所

得到一个数字中每一位的数字

学习编程也有一段时间了,随着学习的不断深入,我越来越体会到了算法的重要性,最近遇到了一些非常有意思的算法,比如打印水仙花数.将数字逆置,在这两个算法中会用到一个数字钟每一位的值 如:判断数字123是否是水仙花数需要得到每一位的数字 通常计算每一位的数字的算法是: 个位:a = 123 % 10 = 3 十位:b  = 123 %100 / 10 = 2 百位::c = 123 % 100 = 2 随着位数的越来越大,这种方法满足不了程序的需求 比如计算:123445677777777777777