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

在上述的 IC流程中,還有其他工程師也是參與其中;而你是數位工程師,你對其他工程師的責任是什麼你有清楚嗎?

案例分享:

在這個 IC流程中,數位工程師會需要類比工程師的幫忙部份,絕大部份是在synthesis LIB的參考和simulation時的模型建立。曾經遇過類比工程師需要數位工程師幫忙驗證他們建立的LIB是否正確?在這個IC流程中,確實可以幫類比工程師驗證LIB。但是當初在規劃行程時,有把這個時間算進去嗎?而且整個design在進入synthesis階段時,在很多的synthesis條件都沒有穩定的情況下,拿去幫類比工程師驗證 LIB是否是正確的選擇?所得到的結果是否會是正確?不正確的話,又需要多少時間收斂?所以類比工程師的LIB
驗證,應該是要在他自己的環境下去完成,而不應該在整合的環境中去做驗證。

IC流程裏,它不是幫類比工程師驗證LIB,它是依據類比工程師提供正確的LIB來做合成的工作。所以在synthesis之前,數位工程師就應要求類比工程師提供正確的LIB,不然就無法合出最合適的netlist。

為什麼synthesis時,要有正確的LIB?

DC-compiler依據LIB上的資訊,利用它的演算法,計算出哪一個gate是最合適的,計算出所有path的timing,告訴你哪一個是很緊的。依據這種概念,合出來的netlist才會是最接近真實的情況。

以下是案例的分享:

類比工程師進度落後,告訴數位工程師,你用設delay方法來收斂 timing,類比工程師會按規格要求,處理好 interface
timing,之後就可以tape-out。LIB部份,類比工程師會用手動的方式建立,讓整個 synthesis 流程順暢。 結果晶片回來後,在某些頻率下,會容易出錯。問題查了很多,原因是data出錯;所以數位工程師不可避免的成為主要的負責人。從design到synthesis,然後再到primetime
check,之後還check
floor-plan。結果發現,是類比工程師在設計介面時,使用推力不足的cell,所以在頻率快的情形下,setup-time violation。但這完全查不出來,因為LIB是非常完美的LIB,它不是擷取類比電路所計算出來的。它是人工的,所以在這個流程中,數位工程師當然查不到setup-time violation的報告。

合成時為什麼需要LIB?當然是想要在最接近真實的情況下,合出適合的netlist。因為LIB太過理想,所以合出來的netlist當然也是太過理想。

為什麼國外大廠的晶片穩定度高?技術好是一個原因。另外一個是他們嚴格要求IC流程的模擬要符合真實情況。所以他們一定用軟體來擷取類比電路,計算出正確timing後,才會公佈 LIB給數位工程師使用。儘量讓所有的數據都是最接近真實情況。

說完IC流程後。我大約分類一下風格,大家或許就可以知道我所說的是什麼意思。希望藉由這些分類,可以更了解你的工程師伙伴在想什麼?

1. Front-end
RTL level數位工程師:遇到問題時,想盡辦法在RTL-level解決,並在RTL-simulation確保function的正確性。其寫出來的RTL code都是synthesizable,了解RTL
code限制,也知道如何在DC環境下,寫出適合的constrain,也知道怎麼看懂的所有的timing
report。其程式風格像前面RTL
code的解決方式一.

2.Front-end
post-level數位工程師:程式的風格像前面的RTL
code的解決方式二,需要CAD的工程師幫忙保證 timing,無法在RTL-level就保證其timing和正確性。

3.Front-end
artificial數位工程師,程式的風格像前面的 RTL code的 interrupt
machine的原始範例,用人腦推論;對於DC-compiler提出來的 timing
violation時,人工確認是否為假錯( false-error )。

4. cell-base數位工程師:使用verilog語法並參照standard cell/customized
cell,畫出電路,不是用寫程式的觀念來寫程式的。

5. Back-end數位工程師: 熟悉DC的指令、primetime指令。對做ATPG, IO
scan非常清楚,但是對RTL-coding觀念比較薄弱,因為對DC和
primetime指令熟悉,所以較適合做IP整合工作。

其實還有其他種類的數位工程師,在此就不一
一敘述,我就針對以後我的分享風格做一個說明,讓大家知道我為什麼這樣做,我的原因有在哪裏?我的要求在哪裏?

做為一個數位工程師,你會遇到的問題和困難一定會很多,有時候你無法保證一定可以在RTL
level就把它解決,這其中包括 timing。 而
timing的部份,你可能需要別人的協助,才能把問題解決。但是我希望所有的問題盡量在RTL-level就解決完,除非不能解決時,才會請CAD幫忙保證
timing。之後如果我有分享程式時,你會看到我程式都會在RTL-level解決問題。每個程式也都一定會知道怎麼寫 timing
constrain和看它的 timing
report。

时间: 2024-08-04 10:09:57

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

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

就Back-end而言: 就Back-end的工作內容,主要的負責單位是CAD部們,數位工程師只是輔助的角色.如果是輔助的角色,那麼應該要注意哪些細節呢? 1. 建立primetime環境來驗證CAD做完APR後的netlist是否是符合自己的需求. 2. 請CAD給一套和他工作環境相同的primetime環境,做為最後驗證timing的path的依據. 3. 任何因為timing不符合時,需要修改netlist時,請CAD重做一份,數位工程師不代勞. 4.任何因為bug問題,需要修改netli

數據分析師怎麼寫報告

隨著大數據時代的發展,人們每天在互聯網上產生大量的數據,對於企業來講這些數據都是十分寶貴的資源.企業可通過數據挖掘進行戰略調整以及營銷部署,尤其是對於互聯網公司而言,用戶行為產生的數據就是企業最寶貴的資源.數據挖掘(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