電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 116|回復(fù): 0
收起左側(cè)

芯片設(shè)計(jì)如何進(jìn)階

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
匿名  發(fā)表于 2024-10-17 10:58:00 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
——————————————————————————————
版權(quán)聲明:
本文作者:烓圍瑋未。主要從事ISP/MIPI/SOC/車(chē)規(guī)芯片設(shè)計(jì)/SOC架構(gòu)設(shè)計(jì)
首發(fā)于知乎專(zhuān)欄:芯片設(shè)計(jì)進(jìn)階之路
微信公眾號(hào):芯片設(shè)計(jì)進(jìn)階之路(x_chip)
轉(zhuǎn)發(fā)必須授權(quán),同時(shí)保留這段聲明,盜版必究!
——————————————————————————————
在剛開(kāi)始工作的時(shí)候,就一直在思考和尋找,作為一個(gè)芯片設(shè)計(jì)師,改如何通過(guò)選擇和學(xué)習(xí),能夠一步步的成為一名資深的設(shè)計(jì)師或者架構(gòu)師,或者成為一個(gè)設(shè)計(jì)的負(fù)責(zé)人呢?當(dāng)時(shí)也沒(méi)有找到合適的文章來(lái)具體描述,應(yīng)該怎么做才能一步步的進(jìn)階升級(jí)。后來(lái)在面試中,平時(shí)交流中,或者知乎別人的付費(fèi)咨詢(xún)中,也一次次的提到這個(gè)問(wèn)題。有沒(méi)有一條芯片設(shè)計(jì)的進(jìn)階之路呢?
當(dāng)然,這是一個(gè)很難的問(wèn)題,因?yàn)槊總(gè)人的情況和喜好都不同,實(shí)際中很多時(shí)候都是身不由己,所以也沒(méi)有什么標(biāo)準(zhǔn)答案。但是我還是希望結(jié)合我這十幾年的工作經(jīng)驗(yàn),從IP設(shè)計(jì),到SOC 子系統(tǒng)負(fù)責(zé)人,到架構(gòu)師的工作歷程,能夠給剛?cè)胄谢蛘呷胄胁痪玫囊恍┬酒O(shè)計(jì)人員一些參考。
為了防止不必要的誤解,先申明一下:完全是一家之言,如果你覺(jué)得不對(duì),那一定你是對(duì)的。另外,這篇文章主要是給剛?cè)胄械囊恍┬酒O(shè)計(jì)師作為參考,大牛們會(huì)心一笑就好了,或者在留言給出更好的建議也很歡迎。
那么下面我們開(kāi)始。
芯片設(shè)計(jì)師的分級(jí)首先,我個(gè)人喜歡那種很明確的升級(jí)體系,就像游戲里面的打怪升級(jí)一樣,能夠很明確自己所處的等級(jí),以及下一步努力的方向。所以我個(gè)人給芯片設(shè)計(jì)師做了一個(gè)分級(jí),完全非正式,暫且稱(chēng)為“芯片設(shè)計(jì)的W分級(jí)”吧:
等級(jí)1(Level1):基礎(chǔ)級(jí);
等級(jí)2(Level2):模塊級(jí);
等級(jí)3(Level3):子系統(tǒng)級(jí);
等級(jí)4(Level4):芯片級(jí);
等級(jí)5(Level5):系統(tǒng)級(jí);

等級(jí)1(Level 1):基礎(chǔ)級(jí)基礎(chǔ)級(jí),是芯片設(shè)計(jì)師職業(yè)路徑的起點(diǎn)。在這個(gè)階段,你通常是一名剛?cè)肼毜某跫?jí)工程師或者正在通過(guò)教育和培訓(xùn)來(lái)打基礎(chǔ)的學(xué)員。
以下是基礎(chǔ)級(jí)芯片設(shè)計(jì)師需要掌握的技能和知識(shí):
掌握程度說(shuō)明:了解->熟悉->精通->專(zhuān)家
每個(gè)等級(jí)要求見(jiàn)下文
技能分類(lèi)
技能詳細(xì)描述
要求
補(bǔ)充說(shuō)明和建議
電路基礎(chǔ)知識(shí)
  • 電路理論:理解基本的電路原理,包括直流和交流電路、模擬信號(hào)和數(shù)字邏輯。
  • 電子元件:熟悉常用的電子元件,如電阻、電容、電感、二極管、晶體管等。
  • 數(shù)字邏輯:掌握基本的數(shù)字邏輯概念,包括邏輯門(mén)、觸發(fā)器、計(jì)數(shù)器和寄存器。
  • 微電子基礎(chǔ):了解半導(dǎo)體物理和CMOS技術(shù)的基礎(chǔ)知識(shí)。
  • 熟悉
    精通更好
    對(duì)EE專(zhuān)業(yè)也就是科班出身的同學(xué)來(lái)說(shuō)可能讀書(shū)時(shí)代就完成了;對(duì)于非科班的,需要在平時(shí)慢慢補(bǔ)充這些知識(shí),這個(gè)是基礎(chǔ)的基礎(chǔ)
    編程和腳本
  • 硬件描述語(yǔ)言:熟悉至少一種硬件描述語(yǔ)言,如Verilog或VHDL,SV。
  • 腳本語(yǔ)言:了解至少一種編程語(yǔ)言,如Perl,Python,TCL,這有助于編寫(xiě)測(cè)試代碼和自動(dòng)化腳本。
  • 精通
    這是吃飯的技術(shù),一定要精通,推薦使用verilog或者SV; VHDL在公司用的比較少;
    可以買(mǎi)一本書(shū)或者Verilog的規(guī)范放在手邊隨時(shí)查看;
    腳本學(xué)一個(gè)就行了,其他的都類(lèi)似的,建議學(xué)python。可以學(xué)一下正則表達(dá)式,這個(gè)是所有工具都會(huì)用到的,受益無(wú)窮。
    項(xiàng)目入門(mén)
  • 時(shí)鐘和復(fù)位:熟悉時(shí)鐘和復(fù)位的基本知識(shí),異步時(shí)鐘,同步復(fù)位異步釋放等;
  • 基本模塊:多級(jí)同步,同步FIFO,異步FIFO,SRAM讀寫(xiě)等
  • 計(jì)算機(jī)體系基礎(chǔ):現(xiàn)代計(jì)算機(jī)的結(jié)構(gòu)和基本構(gòu)成要了解,基本的I2C這些需要了解
  • 熟悉
    這是做項(xiàng)目的入門(mén)知識(shí),并且貫穿整個(gè)職業(yè)生涯,必須靜噪掌握,然后在后面的項(xiàng)目中逐漸精通。復(fù)位可以看一下我之前的文章,理解了基本就差不多了。
    異步FIFO一定要掌握,從原理到能夠從0寫(xiě)一個(gè)100%沒(méi)有bug的異步fifo是優(yōu)秀的初級(jí)工程師的基本要求。
    工具使用
  • Linux環(huán)境:熟悉Linux環(huán)境和命令。
  • EDA工具:能夠使用基本的電子設(shè)計(jì)自動(dòng)化(EDA)工具進(jìn)行電路設(shè)計(jì)和仿真。VCS/VERIDI必須熟悉;
  • 版本控制:了解版本控制系統(tǒng),如Git,這對(duì)于團(tuán)隊(duì)協(xié)作和項(xiàng)目跟蹤至關(guān)重要。git/svn;
  • 熟悉
    Linux可以買(mǎi)一本經(jīng)典的書(shū)學(xué)習(xí)一下基本命令和使用;
    EDA工具先要學(xué)會(huì)自己使用VCS能建一個(gè)小環(huán)境,來(lái)驗(yàn)證自己寫(xiě)的RTL,至少能驗(yàn)證沒(méi)有語(yǔ)法錯(cuò)誤吧。
    版本控制可以跟著公司使用什么就用什么,也可以提前學(xué)習(xí)GIT,現(xiàn)在GIT使用的比較多。
    軟技能
  • 溝通能力:能夠與團(tuán)隊(duì)成員有效溝通,理解項(xiàng)目需求。
  • 文檔能力:能夠把自己工作和設(shè)計(jì),通過(guò)文檔或者PPT完整的展現(xiàn)出來(lái)。
  • 做事方式:靠譜的做事,事情閉環(huán),匯報(bào)得體。
  • 了解
    團(tuán)隊(duì)溝通是最重要的工作技能,一定要刻意的學(xué)習(xí)一些;
    文檔是工作的呈現(xiàn);
    做事是一個(gè)長(zhǎng)期習(xí)慣;
    軟技巧其實(shí)決定著你職場(chǎng)的高度,這里先不展開(kāi)。
    關(guān)于掌握程度的說(shuō)明如下:
    了解 (Awareness)
    知識(shí)水平:知道技術(shù)的存在和基本概念,可能在課堂上或通過(guò)閱讀簡(jiǎn)要了解過(guò)。
    應(yīng)用能力:能夠理解技術(shù)的基本原理,但缺乏深入的實(shí)踐經(jīng)驗(yàn)。
    實(shí)踐經(jīng)驗(yàn):可能沒(méi)有或很少有使用該技術(shù)的經(jīng)驗(yàn),對(duì)于復(fù)雜應(yīng)用可能需要指導(dǎo)。
    達(dá)成途徑:閱讀相關(guān)書(shū)籍或文章,參加入門(mén)課程或研討會(huì)。
    熟悉 (Familiar)
    知識(shí)水平:對(duì)技術(shù)有更深入的理解,了解其工作原理和常見(jiàn)用途。
    應(yīng)用能力:能夠在監(jiān)督下應(yīng)用技術(shù)解決簡(jiǎn)單的問(wèn)題。
    實(shí)踐經(jīng)驗(yàn):有使用該技術(shù)的直接經(jīng)驗(yàn),能夠處理一些基本的故障和問(wèn)題。
    達(dá)成途徑:參與項(xiàng)目工作,使用技術(shù)解決實(shí)際問(wèn)題,閱讀技術(shù)文檔。
    精通 (Proficient)
    知識(shí)水平:全面理解技術(shù)的所有方面,包括其優(yōu)勢(shì)、局限性和最佳實(shí)踐。
    應(yīng)用能力:能夠獨(dú)立使用技術(shù)解決復(fù)雜問(wèn)題,并能夠優(yōu)化和改進(jìn)工作流程。
    實(shí)踐經(jīng)驗(yàn):有豐富的實(shí)踐經(jīng)驗(yàn),能夠設(shè)計(jì)和實(shí)施技術(shù)解決方案。
    達(dá)成途徑:指導(dǎo)他人,進(jìn)行技術(shù)演示,編寫(xiě)高級(jí)教程或文檔。
    專(zhuān)家 (Expert)
    知識(shí)水平:對(duì)該技術(shù)有深入的理解和廣泛的知識(shí),包括最新的研究成果和行業(yè)趨勢(shì)。
    應(yīng)用能力:能夠創(chuàng)新地使用技術(shù)解決極其復(fù)雜的問(wèn)題,并能夠進(jìn)行技術(shù)領(lǐng)導(dǎo)和戰(zhàn)略規(guī)劃。
    實(shí)踐經(jīng)驗(yàn):在該技術(shù)領(lǐng)域有長(zhǎng)期的工作經(jīng)驗(yàn),可能是該領(lǐng)域的領(lǐng)導(dǎo)者或意見(jiàn)領(lǐng)袖。
    達(dá)成途徑:進(jìn)行高級(jí)研究,發(fā)表專(zhuān)業(yè)論文,制定行業(yè)標(biāo)準(zhǔn),提供專(zhuān)業(yè)咨詢(xún)
    在基礎(chǔ)級(jí)階段,重點(diǎn)是打好堅(jiān)實(shí)的基礎(chǔ),掌握必要的理論知識(shí)和實(shí)踐技能,為后續(xù)的職業(yè)發(fā)展奠定基礎(chǔ)。隨著經(jīng)驗(yàn)的積累和技能的提升,你可以逐漸承擔(dān)更復(fù)雜的任務(wù),并邁向下一個(gè)等級(jí)。
    這個(gè)階段根據(jù)自己的專(zhuān)業(yè)和基礎(chǔ),有些人可能一年就能完成,有些人可能需要好幾年。而且階段的劃分可能不是你能決定的,可能你還沒(méi)打好基礎(chǔ)就被趕鴨子上架的去參加項(xiàng)目。很多公司其實(shí)沒(méi)有培養(yǎng)新人的機(jī)制,直接派任務(wù)給你,可能導(dǎo)致你非常不適用,很多時(shí)候別人說(shuō)話(huà)都聽(tīng)不懂,這樣會(huì)深深的懷疑自己。有的同學(xué)工作三年了,有時(shí)候也會(huì)發(fā)現(xiàn),他們聊的東西我居然一點(diǎn)概念都沒(méi)有,深受打擊。
    為什么會(huì)這樣呢,這就是基礎(chǔ)階段沒(méi)有積累完成。公司不允許,自己基礎(chǔ)差,這些都有可能。所以基礎(chǔ)階段最重要的是快速入門(mén),先把需要掌握的集中突破,先把這個(gè)行業(yè)的基礎(chǔ)知識(shí)和“行話(huà)”內(nèi)化了,你就不會(huì)有這種感覺(jué)。比如提到復(fù)位,基本默認(rèn)是異步復(fù)位同步釋放,如果你還在糾結(jié)為什么要這么做,是沒(méi)有人有耐心給你慢慢解釋的,因?yàn)檫@是很多人的“常識(shí)”,所以快速入門(mén),把通常的做法變成自己的常識(shí)才是變成成熟工程師的必經(jīng)之路。
    另外就是很多人被項(xiàng)目推著走,沒(méi)有時(shí)間和精力去補(bǔ)基礎(chǔ),怎么辦呢?我都建議也是帶我的第一個(gè)老大的建議:每天至少花一個(gè)小時(shí),不做項(xiàng)目的事情,而是提升自己。項(xiàng)目在忙也要先把這個(gè)時(shí)間提前預(yù)留出來(lái),不然你永遠(yuǎn)是做了項(xiàng)目啥都沒(méi)落下。有意識(shí)刻意的學(xué)習(xí)才能事半功倍。
    無(wú)論你有沒(méi)有讀過(guò)基礎(chǔ)級(jí),在入職后,你經(jīng)過(guò)短暫的過(guò)渡后,都必須進(jìn)入下一級(jí),模塊級(jí),開(kāi)始負(fù)責(zé)具體的模塊。而落下的基礎(chǔ),只能靠你自己慢慢補(bǔ)充,或者永遠(yuǎn)不補(bǔ)充,然后就會(huì)被下一級(jí)一直困住。
    等級(jí)2(Level 2):模塊級(jí)不管是IP設(shè)計(jì),還是SOC設(shè)計(jì),現(xiàn)代的芯片設(shè)計(jì)都是分工合作,一旦參加項(xiàng)目,你都必須負(fù)責(zé)某個(gè)模塊甚至是某個(gè)模塊的一部分。
    既然有分工,當(dāng)然活有“好壞”,不可能每個(gè)人都能分到想要做的部分,特別是核心和關(guān)鍵模塊需要有經(jīng)驗(yàn)或者靠譜的人,或者有關(guān)系的人。這是正常情況。
    如果是IP設(shè)計(jì),比如ISP這個(gè)IP設(shè)計(jì)是你們主要的項(xiàng)目,那么像DNS, 去馬賽克,HDR這些就是核心模塊,一定是分給有經(jīng)驗(yàn)的。剛?cè)肼毜目赡芫椭荒芊忠恍〣LC這些小模塊,甚至是小模塊的一部分。
    如果是SOC設(shè)計(jì),那么CPU, DDR, 總線(xiàn)就是核心模塊,還有AI處理部分的NPU這些都是核心模塊。根據(jù)SOC性質(zhì)的不同,比如安防,車(chē)載這些方向,多媒體ISP這些也是核心模塊。
    分到核心模塊的一定要珍惜,沒(méi)分到的也別抱怨,信任是慢慢建立的。你需要先把小事做好,讓領(lǐng)導(dǎo)者覺(jué)得你靠譜,值得把核心模塊交給你。
    這個(gè)階段的技能要求其實(shí)是再繼續(xù)鞏固基礎(chǔ)知識(shí)的基礎(chǔ)上,偏向于做事方式。由于IP設(shè)計(jì)和SOC設(shè)計(jì)差別比較大,下面分開(kāi)來(lái)說(shuō)。
    IP設(shè)計(jì)技能要求:
    技能分類(lèi)
    技能詳細(xì)描述
    要求
    補(bǔ)充說(shuō)明和建議
    文檔能力
  • 文檔編寫(xiě):能夠清楚明白的把你需要設(shè)計(jì)的模塊描述清楚:模塊劃分,功能描述,時(shí)序設(shè)計(jì)
  • 精通
    做IP設(shè)計(jì)的,在進(jìn)行編寫(xiě)RTL之前一定要寫(xiě)一個(gè)設(shè)計(jì)文檔的初稿,再開(kāi)始進(jìn)行RTL coding,然后在coding過(guò)程中去完善設(shè)計(jì)文檔。
    特別注意的是時(shí)序是設(shè)計(jì)出來(lái)的,不是看波形湊出來(lái)的。
    做IP設(shè)計(jì)的,我認(rèn)為設(shè)計(jì)文檔編寫(xiě)能力比編程能力更重要,想清楚了,RTL就不會(huì)出大的偏差,請(qǐng)一定要重視。
    編程能力
  • 編程能力:編程能力其實(shí)不太好量化,除了能夠?qū)懗鰪?fù)雜的模塊和優(yōu)秀的PPA的模塊,我認(rèn)為可以分解一下:
  • 模塊拆分。把大的模塊拆分成合適的模塊是一直能力。
  • 編程習(xí)慣。良好優(yōu)美的編寫(xiě)習(xí)慣和代碼風(fēng)格其實(shí)是最重要的能力,公司都編碼規(guī)則一定要follow,這是無(wú)數(shù)人總結(jié)的經(jīng)驗(yàn)。有時(shí)間再去探究;
  • 優(yōu)化和debug能力。這個(gè)其實(shí)是建立在扎實(shí)的基礎(chǔ),對(duì)模塊的數(shù)學(xué)和分析解決問(wèn)題的基礎(chǔ)上的,如果不知道怎么培養(yǎng),先把文檔寫(xiě)清楚就是最快的方式。
  • 借鑒的能力。很多優(yōu)秀公司,比如S家的代碼寫(xiě)的最好,A家就差一點(diǎn),其他小公司就更差了,所以盡量去找S/A家的源碼研究學(xué)習(xí)一下,借鑒過(guò)來(lái)。
  • 精通
    提醒一下,借鑒不是抄,你要是能在項(xiàng)目上找一個(gè)一模一樣的模塊直接來(lái)用也是你的能力,但是基本不可能,每個(gè)項(xiàng)目需求是不一樣的。
    IP設(shè)計(jì)的精髓其實(shí)就是拆分,把復(fù)雜的IP拆分為一個(gè)簡(jiǎn)單的模塊,然后用基本邏輯和FIFO,SRAM實(shí)現(xiàn)。
    編程習(xí)慣一定要養(yǎng)成,這不僅僅是項(xiàng)目考慮,也是別人從代碼就能看出你靠不靠譜的考慮。
    優(yōu)化和debug就慢慢積累經(jīng)驗(yàn)吧。先把自己的東西完全搞明白想明白是基礎(chǔ)。
    項(xiàng)目知識(shí)
  • 項(xiàng)目整體:對(duì)項(xiàng)目要有大概了解,了解需求才能把自己的事情做好。
  • 基本模塊:基礎(chǔ)總線(xiàn)APB/AHB肯定會(huì)用到,可能會(huì)用到AXI,ACE等復(fù)雜總線(xiàn)。然后不同項(xiàng)目用到的基礎(chǔ)單元不同;
  • 后端基本庫(kù):至少要了解一下工藝,后端使用的庫(kù),為綜合做準(zhǔn)備。
  • 熟悉
    這是做項(xiàng)目的入門(mén)知識(shí),并且貫穿整個(gè)職業(yè)生涯,必須靜噪掌握,然后在后面的項(xiàng)目中逐漸精通。復(fù)位可以看一下我之前的文章,理解了基本就差不多了。
    異步FIFO一定要掌握,從原理到能夠從0寫(xiě)一個(gè)100%沒(méi)有bug的異步fifo是優(yōu)秀的初級(jí)工程師的基本要求。
    腳本和工具
  • EDA工具:VCS/VERIDI這些需要更加熟悉,從看波形到debug都離不開(kāi);還需要學(xué)習(xí)DC綜合工具。
  • 版本控制:GIT/SVN的使用要熟練。項(xiàng)目的版本控制流程要完全掌握,可以自己搞個(gè)文檔記錄一下常用命令和流程。
  • 腳本:從0開(kāi)始搭一個(gè)簡(jiǎn)單的VCS 非SVM的仿真環(huán)境是寫(xiě)RTL和debug的基本要求。你至少要保證你給出的模塊沒(méi)有語(yǔ)法錯(cuò)誤,基本功能能跑吧。
  • SDC: 這個(gè)階段需要接觸SDC了,進(jìn)行數(shù)字綜合了。這是新手和老手的分界點(diǎn)。RTL其實(shí)是軟件,RTL+SDC才是硬件。
  • 時(shí)序分析:需要能分析和解決時(shí)序問(wèn)題。
  • 熟悉
    工具和腳本的學(xué)習(xí),建議先系統(tǒng)整體的學(xué)習(xí)一下,然后在項(xiàng)目中提高。
    SDC建議找個(gè)課程系統(tǒng)學(xué)習(xí)一下,S家就有系統(tǒng)課程,不過(guò)很貴。網(wǎng)上也有。最好以S家文檔為基礎(chǔ)。
    軟技能
  • 溝通能力:和設(shè)計(jì)的溝通,和架構(gòu)的溝通和DV的溝通,做完一個(gè)項(xiàng)目可以總結(jié)一下;
  • 匯報(bào)能力:能夠把自己工作和設(shè)計(jì),通過(guò)文檔或者PPT完整的展現(xiàn)出來(lái),讓別人清楚聽(tīng)明白,讓領(lǐng)導(dǎo)知道自己的貢獻(xiàn)。
  • 項(xiàng)目流程:IP設(shè)計(jì)驗(yàn)證流程要熟悉和總結(jié),做了一次必須成為熟手。
  • 了解
    溝通是工作展開(kāi)的基礎(chǔ);
    匯報(bào)是升職的基礎(chǔ);
    SoC設(shè)計(jì)技能要求:如果是自研模塊,請(qǐng)按照IP設(shè)計(jì)能力要求,下面特指購(gòu)買(mǎi)IP的集成工作。
    技能分類(lèi)
    技能詳細(xì)描述
    要求
    補(bǔ)充說(shuō)明和建議
    閱讀能力
  • 文檔編寫(xiě):購(gòu)買(mǎi)的IP模塊,需要把IP文檔都通讀理解,然后再去編寫(xiě)集成設(shè)計(jì)文檔。
  • 精通
    首先重點(diǎn)通讀一次,把重點(diǎn)要標(biāo)注出來(lái)
    文檔能力
  • 文檔編寫(xiě):主要是時(shí)鐘頻率,和外部接口連接等等。要按照項(xiàng)目的規(guī)范文檔盡可能寫(xiě)明白。
  • 精通
    在進(jìn)行編寫(xiě)RTL之前一定要寫(xiě)一個(gè)集成文檔的初稿,再開(kāi)始進(jìn)行RTL coding,然后在coding過(guò)程中去完善設(shè)計(jì)文檔。
    這個(gè)階段需要充分和上層的負(fù)責(zé)人員溝通,確保時(shí)鐘頻率復(fù)位等不出錯(cuò)。
    專(zhuān)業(yè)能力
  • 專(zhuān)業(yè)能力:專(zhuān)業(yè)能力就是對(duì)應(yīng)的專(zhuān)業(yè)知識(shí)。比如ISP你必須知道圖像,GPU你必須知道圖形處理,PCIE/DDR你要了解協(xié)議。這些專(zhuān)業(yè)知識(shí)才是IP的內(nèi)核,而不是把代碼集成就完事了。
  • 精通
    每負(fù)責(zé)一個(gè)IP就能搞懂一個(gè)方向,以IP的專(zhuān)業(yè)知識(shí)為抓手,發(fā)散出去,才能進(jìn)階到下一個(gè)階段。不然,你做再多項(xiàng)目都是重復(fù)沒(méi)有成長(zhǎng)的工作。
    項(xiàng)目知識(shí)
  • 項(xiàng)目整體:對(duì)項(xiàng)目要有大概了解,了解需求才能把自己的事情做好。
  • 基本模塊:基礎(chǔ)總線(xiàn)APB/AHB/AXI一定要很熟悉,經(jīng)常翻閱協(xié)議。SRAM這些基本模塊要有一定了解。
  • SoC設(shè)計(jì)流程:SoC的流程要了解,lint、cdc,綜合流程需要會(huì)用。
  • 后端基本庫(kù):至少要了解一下工藝,后端使用的庫(kù),為綜合做準(zhǔn)備。
  • 熟悉
    SoC項(xiàng)目的流程到每個(gè)階段的工具使用,這些都是有比較明確的規(guī)定。寫(xiě)代碼的時(shí)間其實(shí)比較少,流程反而比較重要,一定要注意總結(jié)和記錄。
    腳本和工具
  • EDA工具:VCS/VERIDI這些需要更加熟悉,從看波形到debug都離不開(kāi);還需要學(xué)習(xí)DC綜合工具,spyglass等工具。
  • 版本控制:GIT/SVN的使用要熟練。項(xiàng)目的版本控制流程要完全掌握,可以自己搞個(gè)文檔記錄一下常用命令和流程。
  • 腳本:從0開(kāi)始搭一個(gè)簡(jiǎn)單的VCS 非SVM的仿真環(huán)境是寫(xiě)RTL和debug的基本要求。你至少要保證你給出的模塊沒(méi)有語(yǔ)法錯(cuò)誤,基本功能能跑吧。
  • SDC: 這個(gè)階段需要接觸SDC了,進(jìn)行數(shù)字綜合了。這是新手和老手的分界點(diǎn)。RTL其實(shí)是軟件,RTL+SDC才是硬件。
  • 時(shí)序分析:需要能分析和解決時(shí)序問(wèn)題。
  • 熟悉
    工具和腳本的學(xué)習(xí),建議先系統(tǒng)整體的學(xué)習(xí)一下,然后在項(xiàng)目中提高。
    SDC建議找個(gè)課程系統(tǒng)學(xué)習(xí)一下,S家就有系統(tǒng)課程,不過(guò)很貴。網(wǎng)上也有。最好以S家文檔為基礎(chǔ)。
    軟技能
  • 溝通能力:和設(shè)計(jì)的溝通,和架構(gòu)的溝通和DV的溝通,做完一個(gè)項(xiàng)目可以總結(jié)一下;
  • 匯報(bào)能力:能夠把自己工作和設(shè)計(jì),通過(guò)文檔或者PPT完整的展現(xiàn)出來(lái),讓別人清楚聽(tīng)明白,讓領(lǐng)導(dǎo)知道自己的貢獻(xiàn)。
  • 了解
    溝通是工作展開(kāi)的基礎(chǔ);
    匯報(bào)是升職的基礎(chǔ);
    芯片設(shè)計(jì)其實(shí)分為IP設(shè)計(jì)和SoC設(shè)計(jì)兩個(gè)方向。IP設(shè)計(jì)偏重于RTL設(shè)計(jì)能力,SoC設(shè)計(jì)對(duì)某個(gè)方向的專(zhuān)業(yè)知識(shí)和流程的熟悉。這也是倆個(gè)職業(yè)選擇方向,也可以互相轉(zhuǎn)換。IP設(shè)計(jì)優(yōu)點(diǎn)是編碼比較多,能夠不斷鍛煉自己的編程能力。SoC設(shè)計(jì)需要了解的知識(shí)面比較廣,可以了解芯片生產(chǎn)的整個(gè)流程,容易擴(kuò)展眼界。好的IP設(shè)計(jì)人員到后期一定是需要了解更多的SoC的知識(shí),而好的SoC設(shè)計(jì)一定需要了解到IP內(nèi)部。
    模塊級(jí)這個(gè)階段是一個(gè)非常重要的階段,也是比較難渡過(guò)的階段,很多人可能一直困在這個(gè)階段,只能一直負(fù)責(zé)一個(gè)模塊,而不能做一些非常核心的工作。
    如果你有機(jī)會(huì)負(fù)責(zé)核心模塊,那么恭喜你,你可能比別人更容易進(jìn)入下一階段。如果你只是負(fù)責(zé)非核心的模塊,也不用擔(dān)心,精通于一個(gè)方面,也能做的很好。
    這個(gè)階段你可以選擇深耕一個(gè)方面,比如一直做ISP/GPU/NPU;也可以做多方面的嘗試,然后往系統(tǒng)方向發(fā)展。無(wú)論怎么選擇,我都建議是,你至少在一個(gè)方面必須成為專(zhuān)家,然后在去做其他的。很多時(shí)候我們不是了解得不夠多,而是不夠深。而且很多方面是相通的,比如多媒體,你了解了ISP,再去學(xué)習(xí)GPU/Codec這些就很容易;比如高速接口,你學(xué)習(xí)了PCIE再去學(xué)習(xí)DDR就非常容易。
    如果你對(duì)一個(gè)模塊的了解達(dá)到了專(zhuān)家級(jí),甚至不用達(dá)到專(zhuān)家級(jí)別。你就很容易去負(fù)責(zé)一個(gè)子系統(tǒng)了。比如你說(shuō)設(shè)計(jì)GPU的,如果去做SoC,那么負(fù)責(zé)GPU子系統(tǒng)就很容易了。因?yàn)楹诵氖悄K后面的算法和專(zhuān)業(yè)知識(shí),而不是這個(gè)模塊的實(shí)現(xiàn)形式。
    等級(jí)3(Level 3):子系統(tǒng)級(jí)這個(gè)階段需要掌握的技能其實(shí)和模塊級(jí)是比較重合的,只是你需要更深入的了解和更廣泛的專(zhuān)業(yè)知識(shí)。
    技能分類(lèi)
    技能詳細(xì)描述
    要求
    補(bǔ)充說(shuō)明和建議
    閱讀能力
  • 文檔編寫(xiě):購(gòu)買(mǎi)的IP模塊,需要把IP文檔都通讀理解,然后再去編寫(xiě)集成設(shè)計(jì)文檔。
  • 精通
    首先重點(diǎn)通讀一次,把重點(diǎn)要標(biāo)注出來(lái)
    文檔能力
  • 文檔編寫(xiě):主要是時(shí)鐘頻率,和外部接口連接等等。要按照項(xiàng)目的規(guī)范文檔盡可能寫(xiě)明白。
  • 精通
    在進(jìn)行編寫(xiě)RTL之前一定要寫(xiě)一個(gè)集成文檔的初稿,再開(kāi)始進(jìn)行RTL coding,然后在coding過(guò)程中去完善設(shè)計(jì)文檔。
    這個(gè)階段你自己就必須去設(shè)計(jì)子系統(tǒng)的架構(gòu),然后和內(nèi)部模塊負(fù)責(zé)人進(jìn)行溝通。
    專(zhuān)業(yè)能力
    子系統(tǒng)架構(gòu): 理解子系統(tǒng)的架構(gòu),包括處理器、存儲(chǔ)器、外設(shè)接口等,并能夠設(shè)計(jì)子系統(tǒng)的框架。
    系統(tǒng)集成: 能夠?qū)⒉煌哪K和IP核集成為子系統(tǒng),并確保它們之間的兼容性和協(xié)同工作。
  • 專(zhuān)業(yè)知識(shí):內(nèi)部模塊了解到越多越好。
  • 總線(xiàn)知識(shí):APB/AHB/AXI達(dá)到精通級(jí)別
  • 低功耗技術(shù):對(duì)低功耗技術(shù)和UPF要熟悉
  • 精通
    這個(gè)階段系統(tǒng)方案是一個(gè)重點(diǎn),比如低功耗技術(shù),Harden的劃分等等。這個(gè)在子系統(tǒng)的架構(gòu)設(shè)計(jì)就必須考慮,并且不斷優(yōu)化和演進(jìn)。
    項(xiàng)目知識(shí)
  • 項(xiàng)目整體:對(duì)項(xiàng)目要有完整了解,非常了解子系統(tǒng)的需求才能把自己的事情做好。
  • 基本模塊:基本模塊,sram都要比較熟悉。
  • SoC設(shè)計(jì)流程:SoC的流程要熟悉,lint、cdc,綜合流程需要會(huì)用。
  • 后端基本庫(kù):后端流程和支持都要掌握,包括綜合和時(shí)序分析等。
  • 熟悉
    子系統(tǒng)的負(fù)責(zé)人對(duì)流程是直接負(fù)責(zé)的,這個(gè)階段復(fù)雜的事情會(huì)比較多,責(zé)任也比較大。所以一定要能達(dá)到你指導(dǎo)別人的程度。
    腳本和工具
  • 工具和腳本:熟悉是基本要求,越了解工作越順利。
  • 熟悉
    SDC和CDC是重點(diǎn)。
    軟技能
  • 溝通能力:和設(shè)計(jì)的溝通,和架構(gòu)的溝通和DV的溝通,還有和子系統(tǒng)內(nèi)部模塊負(fù)責(zé)人溝通;
  • 匯報(bào)能力:能夠把自己工作和設(shè)計(jì),通過(guò)文檔或者PPT完整的展現(xiàn)出來(lái),讓別人清楚聽(tīng)明白,讓領(lǐng)導(dǎo)知道自己的貢獻(xiàn)。
    團(tuán)隊(duì)領(lǐng)導(dǎo): 能夠在團(tuán)隊(duì)中擔(dān)任領(lǐng)導(dǎo)角色,指導(dǎo)其他設(shè)計(jì)師,并協(xié)調(diào)跨部門(mén)的工作。
    項(xiàng)目管理: 具備項(xiàng)目管理能力,能夠規(guī)劃項(xiàng)目時(shí)間表,跟蹤進(jìn)度,并確保按時(shí)交付。
  • 了解
    子系統(tǒng)負(fù)責(zé)人事實(shí)上是這個(gè)方向的負(fù)責(zé)人,必須對(duì)內(nèi)部一切負(fù)責(zé)。
    也是對(duì)外接口,負(fù)責(zé)和軟件,fpga,后端人員對(duì)接。
    一般需要5年以上才能負(fù)責(zé)一個(gè)子系統(tǒng),當(dāng)然也有能力很強(qiáng)或者機(jī)遇很好的2~3年就開(kāi)始負(fù)責(zé)子系統(tǒng)。這個(gè)階段你需要掌握的了解到知識(shí)就非常多,需要處理的事情也非常多。不僅僅是對(duì)技術(shù)的考驗(yàn)也是對(duì)做人做事的考驗(yàn)。
    這個(gè)階段也會(huì)擋住很多人,可能很多工作了十年二十年的人都會(huì)一直處于這個(gè)階段。同時(shí),這也是對(duì)人提升比較大的階段,你可以充分了解整個(gè)芯片流程,項(xiàng)目管理流程,了解整個(gè)芯片的各方面的知識(shí)。但是還是那句話(huà),請(qǐng)先在一個(gè)方向成為專(zhuān)家。
    如果你是負(fù)責(zé)DDR/CPU/總線(xiàn),那么恭喜你,你比較容易進(jìn)入下一個(gè)階段。如果不是,你可能需要額外花時(shí)間或者找機(jī)會(huì)去了解和負(fù)責(zé)DDR/CPU/總線(xiàn)才能進(jìn)入下一個(gè)芯片級(jí)。這是因?yàn)椋珼DR/CPU/總線(xiàn)就構(gòu)成了一個(gè)芯片的最小系統(tǒng),所有其他的子系統(tǒng)只是這個(gè)最小系統(tǒng)的延伸。
    等級(jí)4(Level 4):芯片級(jí)達(dá)到芯片級(jí)需要一點(diǎn)點(diǎn)運(yùn)氣和機(jī)會(huì)。你可能是一個(gè)芯片設(shè)計(jì)負(fù)責(zé)人或者是一個(gè)架構(gòu)師。這個(gè)階段你已經(jīng)是芯片的某個(gè)方面的專(zhuān)家,而且對(duì)DDR/CPU/總線(xiàn)都非常了解,還了解了芯片設(shè)計(jì)各個(gè)方面的知識(shí)。總之,你需要全都懂一些,然后在某些方面特別懂。
    如果是架構(gòu)師,你可以說(shuō)某些方面的架構(gòu)師,比如CPU架構(gòu)師,多媒體架構(gòu)師,這些都要求相對(duì)低一點(diǎn)。如果是整個(gè)芯片架構(gòu)師,那么比芯片負(fù)責(zé)人要求更高。架構(gòu)師主要專(zhuān)注技術(shù),同時(shí)溝通協(xié)調(diào)能力非常重要。
    如果是芯片負(fù)責(zé)人,那么你必須指導(dǎo)你所有的組員,至少能夠和他討論,解決問(wèn)題。同時(shí)主要考驗(yàn)管理能力。個(gè)人理解是技術(shù)+管理的雙面人才。
    這個(gè)階段不是只靠學(xué)習(xí)能達(dá)到的,需要靠項(xiàng)目的磨練,通過(guò)負(fù)責(zé)整個(gè)項(xiàng)目,協(xié)調(diào)整個(gè)團(tuán)隊(duì)來(lái)達(dá)成。
    如果一定要找一下方法,只能說(shuō)技術(shù)上抓住DDR/CPU/總線(xiàn),項(xiàng)目上學(xué)習(xí)團(tuán)隊(duì)管理和溝通,時(shí)刻做準(zhǔn)備,等待機(jī)會(huì)了。
    等級(jí)5(Level 5):系統(tǒng)級(jí)系統(tǒng)級(jí)一般對(duì)應(yīng)芯片的整個(gè)領(lǐng)導(dǎo)者,CTO或者總架構(gòu)師。甚至可能一個(gè)公司都沒(méi)有這種人。這個(gè)階段需要對(duì)產(chǎn)業(yè),對(duì)行業(yè)有很深的理解,同時(shí)結(jié)合自己技術(shù)和經(jīng)驗(yàn),從頂層設(shè)計(jì)芯片需求,架構(gòu)這些。我也沒(méi)達(dá)到這個(gè)級(jí)別,所以我只是見(jiàn)過(guò),也不能給出太多的經(jīng)驗(yàn)。但是我感覺(jué),做到極致都需要從美學(xué)和哲學(xué)尋找答案,結(jié)合對(duì)技術(shù)的理解,做出頂層設(shè)計(jì)。這個(gè)級(jí)別直接決定芯片的成敗。
    芯片學(xué)習(xí)的另外兩條線(xiàn)通過(guò)芯片分級(jí),可能你已經(jīng)知道自己要怎么進(jìn)階了。另外還能從芯片學(xué)習(xí)的兩條主線(xiàn)來(lái)尋找自己的短板和進(jìn)階目標(biāo):
  • 芯片設(shè)計(jì)的各個(gè)階段:從需求,架構(gòu)到芯片TO;
  • 芯片使用的各個(gè)階段:從上電到正常運(yùn)行,到各個(gè)場(chǎng)景的使用。
    [/ol]這些階段都能提煉出需要學(xué)習(xí)和了解到內(nèi)容,在迷茫的時(shí)候,不妨多了解。
    這篇文章是結(jié)合個(gè)人經(jīng)歷和思考,對(duì)芯片設(shè)計(jì)進(jìn)行一個(gè)分級(jí),目的是能讓有些剛?cè)胄泻蜕碓诰种械拿悦U吣苡幸稽c(diǎn)點(diǎn)啟發(fā),如果你能找到努力和進(jìn)階的方向,那就有意義了。時(shí)間倉(cāng)促,沒(méi)有好好完善。
    戲作一篇,希望大家不要過(guò)度解讀。如果有補(bǔ)充,大家也可以留言一起完善。
    后記技術(shù)很重要,技術(shù)背后的思想更重要!
    技術(shù)背后的某些思想就是你解決以后問(wèn)題的鑰匙。我的文章可能一篇中知識(shí)點(diǎn)不太多,但是力求讓你能深入理解,為你進(jìn)階打下基礎(chǔ)。如果有一點(diǎn)點(diǎn)收獲,也算是我對(duì)中國(guó)芯片行業(yè)的一點(diǎn)點(diǎn)貢獻(xiàn)吧。
    贈(zèng)人玫瑰,手有余香。如果你有所收獲,麻煩花一秒時(shí)間幫我點(diǎn)個(gè)贊和在看吧,謝謝!
    知乎專(zhuān)欄:芯片設(shè)計(jì)進(jìn)階之路
    微信公眾號(hào):芯片設(shè)計(jì)進(jìn)階之路 x_chip
    ——————————————————————————————
  • 本帖子中包含更多資源

    您需要 登錄 才可以下載或查看,沒(méi)有賬號(hào)?立即注冊(cè)

    x
    回復(fù)

    使用道具

    發(fā)表回復(fù)

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表