技能分類
| 技能詳細(xì)描述
| 要求
| 補(bǔ)充說明和建議
|
電路基礎(chǔ)知識(shí)
| 電路理論:理解基本的電路原理,包括直流和交流電路、模擬信號(hào)和數(shù)字邏輯。電子元件:熟悉常用的電子元件,如電阻、電容、電感、二極管、晶體管等。數(shù)字邏輯:掌握基本的數(shù)字邏輯概念,包括邏輯門、觸發(fā)器、計(jì)數(shù)器和寄存器。微電子基礎(chǔ):了解半導(dǎo)體物理和CMOS技術(shù)的基礎(chǔ)知識(shí)。
| 熟悉
精通更好
| 對(duì)EE專業(yè)也就是科班出身的同學(xué)來說可能讀書時(shí)代就完成了;對(duì)于非科班的,需要在平時(shí)慢慢補(bǔ)充這些知識(shí),這個(gè)是基礎(chǔ)的基礎(chǔ)
|
編程和腳本
| 硬件描述語言:熟悉至少一種硬件描述語言,如Verilog或VHDL,SV。腳本語言:了解至少一種編程語言,如Perl,Python,TCL,這有助于編寫測(cè)試代碼和自動(dòng)化腳本。
| 精通
| 這是吃飯的技術(shù),一定要精通,推薦使用verilog或者SV; VHDL在公司用的比較少;
可以買一本書或者Verilog的規(guī)范放在手邊隨時(shí)查看;
腳本學(xué)一個(gè)就行了,其他的都類似的,建議學(xué)python。可以學(xué)一下正則表達(dá)式,這個(gè)是所有工具都會(huì)用到的,受益無窮。
|
項(xiàng)目入門
| 時(shí)鐘和復(fù)位:熟悉時(shí)鐘和復(fù)位的基本知識(shí),異步時(shí)鐘,同步復(fù)位異步釋放等;基本模塊:多級(jí)同步,同步FIFO,異步FIFO,SRAM讀寫等計(jì)算機(jī)體系基礎(chǔ):現(xiàn)代計(jì)算機(jī)的結(jié)構(gòu)和基本構(gòu)成要了解,基本的I2C這些需要了解
| 熟悉
| 這是做項(xiàng)目的入門知識(shí),并且貫穿整個(gè)職業(yè)生涯,必須靜噪掌握,然后在后面的項(xiàng)目中逐漸精通。復(fù)位可以看一下我之前的文章,理解了基本就差不多了。
異步FIFO一定要掌握,從原理到能夠從0寫一個(gè)100%沒有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可以買一本經(jīng)典的書學(xué)習(xí)一下基本命令和使用;
EDA工具先要學(xué)會(huì)自己使用VCS能建一個(gè)小環(huán)境,來驗(yàn)證自己寫的RTL,至少能驗(yàn)證沒有語法錯(cuò)誤吧。
版本控制可以跟著公司使用什么就用什么,也可以提前學(xué)習(xí)GIT,現(xiàn)在GIT使用的比較多。
|
軟技能
| 溝通能力:能夠與團(tuán)隊(duì)成員有效溝通,理解項(xiàng)目需求。文檔能力:能夠把自己工作和設(shè)計(jì),通過文檔或者PPT完整的展現(xiàn)出來。做事方式:靠譜的做事,事情閉環(huán),匯報(bào)得體。
| 了解
| 團(tuán)隊(duì)溝通是最重要的工作技能,一定要刻意的學(xué)習(xí)一些;
文檔是工作的呈現(xiàn);
做事是一個(gè)長(zhǎng)期習(xí)慣;
軟技巧其實(shí)決定著你職場(chǎng)的高度,這里先不展開。
|
關(guān)于掌握程度的說明如下:技能分類
| 技能詳細(xì)描述
| 要求
| 補(bǔ)充說明和建議
|
文檔能力
| 文檔編寫:能夠清楚明白的把你需要設(shè)計(jì)的模塊描述清楚:模塊劃分,功能描述,時(shí)序設(shè)計(jì)
| 精通
| 做IP設(shè)計(jì)的,在進(jìn)行編寫RTL之前一定要寫一個(gè)設(shè)計(jì)文檔的初稿,再開始進(jìn)行RTL coding,然后在coding過程中去完善設(shè)計(jì)文檔。
特別注意的是時(shí)序是設(shè)計(jì)出來的,不是看波形湊出來的。
做IP設(shè)計(jì)的,我認(rèn)為設(shè)計(jì)文檔編寫能力比編程能力更重要,想清楚了,RTL就不會(huì)出大的偏差,請(qǐng)一定要重視。
|
編程能力
| 編程能力:編程能力其實(shí)不太好量化,除了能夠?qū)懗鰪?fù)雜的模塊和優(yōu)秀的PPA的模塊,我認(rèn)為可以分解一下:
模塊拆分。把大的模塊拆分成合適的模塊是一直能力。編程習(xí)慣。良好優(yōu)美的編寫習(xí)慣和代碼風(fēng)格其實(shí)是最重要的能力,公司都編碼規(guī)則一定要follow,這是無數(shù)人總結(jié)的經(jīng)驗(yàn)。有時(shí)間再去探究;優(yōu)化和debug能力。這個(gè)其實(shí)是建立在扎實(shí)的基礎(chǔ),對(duì)模塊的數(shù)學(xué)和分析解決問題的基礎(chǔ)上的,如果不知道怎么培養(yǎng),先把文檔寫清楚就是最快的方式。借鑒的能力。很多優(yōu)秀公司,比如S家的代碼寫的最好,A家就差一點(diǎn),其他小公司就更差了,所以盡量去找S/A家的源碼研究學(xué)習(xí)一下,借鑒過來。
| 精通
| 提醒一下,借鑒不是抄,你要是能在項(xiàng)目上找一個(gè)一模一樣的模塊直接來用也是你的能力,但是基本不可能,每個(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ǔ)總線APB/AHB肯定會(huì)用到,可能會(huì)用到AXI,ACE等復(fù)雜總線。然后不同項(xiàng)目用到的基礎(chǔ)單元不同;后端基本庫(kù):至少要了解一下工藝,后端使用的庫(kù),為綜合做準(zhǔn)備。
| 熟悉
| 這是做項(xiàng)目的入門知識(shí),并且貫穿整個(gè)職業(yè)生涯,必須靜噪掌握,然后在后面的項(xiàng)目中逐漸精通。復(fù)位可以看一下我之前的文章,理解了基本就差不多了。
異步FIFO一定要掌握,從原理到能夠從0寫一個(gè)100%沒有bug的異步fifo是優(yōu)秀的初級(jí)工程師的基本要求。
|
腳本和工具
| EDA工具:VCS/VERIDI這些需要更加熟悉,從看波形到debug都離不開;還需要學(xué)習(xí)DC綜合工具。版本控制:GIT/SVN的使用要熟練。項(xiàng)目的版本控制流程要完全掌握,可以自己搞個(gè)文檔記錄一下常用命令和流程。腳本:從0開始搭一個(gè)簡(jiǎn)單的VCS 非SVM的仿真環(huán)境是寫RTL和debug的基本要求。你至少要保證你給出的模塊沒有語法錯(cuò)誤,基本功能能跑吧。SDC: 這個(gè)階段需要接觸SDC了,進(jìn)行數(shù)字綜合了。這是新手和老手的分界點(diǎn)。RTL其實(shí)是軟件,RTL+SDC才是硬件。時(shí)序分析:需要能分析和解決時(shí)序問題。
| 熟悉
| 工具和腳本的學(xué)習(xí),建議先系統(tǒng)整體的學(xué)習(xí)一下,然后在項(xiàng)目中提高。
SDC建議找個(gè)課程系統(tǒng)學(xué)習(xí)一下,S家就有系統(tǒng)課程,不過很貴。網(wǎng)上也有。最好以S家文檔為基礎(chǔ)。
|
軟技能
| 溝通能力:和設(shè)計(jì)的溝通,和架構(gòu)的溝通和DV的溝通,做完一個(gè)項(xiàng)目可以總結(jié)一下;匯報(bào)能力:能夠把自己工作和設(shè)計(jì),通過文檔或者PPT完整的展現(xiàn)出來,讓別人清楚聽明白,讓領(lǐng)導(dǎo)知道自己的貢獻(xiàn)。項(xiàng)目流程:IP設(shè)計(jì)驗(yàn)證流程要熟悉和總結(jié),做了一次必須成為熟手。
| 了解
| 溝通是工作展開的基礎(chǔ);
匯報(bào)是升職的基礎(chǔ);
|
SoC設(shè)計(jì)技能要求:如果是自研模塊,請(qǐng)按照IP設(shè)計(jì)能力要求,下面特指購(gòu)買IP的集成工作。技能分類
| 技能詳細(xì)描述
| 要求
| 補(bǔ)充說明和建議
|
閱讀能力
| 文檔編寫:購(gòu)買的IP模塊,需要把IP文檔都通讀理解,然后再去編寫集成設(shè)計(jì)文檔。
| 精通
| 首先重點(diǎn)通讀一次,把重點(diǎn)要標(biāo)注出來
|
文檔能力
| 文檔編寫:主要是時(shí)鐘頻率,和外部接口連接等等。要按照項(xiàng)目的規(guī)范文檔盡可能寫明白。
| 精通
| 在進(jìn)行編寫RTL之前一定要寫一個(gè)集成文檔的初稿,再開始進(jìn)行RTL coding,然后在coding過程中去完善設(shè)計(jì)文檔。
這個(gè)階段需要充分和上層的負(fù)責(zé)人員溝通,確保時(shí)鐘頻率復(fù)位等不出錯(cuò)。
|
專業(yè)能力
| 專業(yè)能力:專業(yè)能力就是對(duì)應(yīng)的專業(yè)知識(shí)。比如ISP你必須知道圖像,GPU你必須知道圖形處理,PCIE/DDR你要了解協(xié)議。這些專業(yè)知識(shí)才是IP的內(nèi)核,而不是把代碼集成就完事了。
| 精通
| 每負(fù)責(zé)一個(gè)IP就能搞懂一個(gè)方向,以IP的專業(yè)知識(shí)為抓手,發(fā)散出去,才能進(jìn)階到下一個(gè)階段。不然,你做再多項(xiàng)目都是重復(fù)沒有成長(zhǎng)的工作。
|
項(xiàng)目知識(shí)
| 項(xiàng)目整體:對(duì)項(xiàng)目要有大概了解,了解需求才能把自己的事情做好。基本模塊:基礎(chǔ)總線APB/AHB/AXI一定要很熟悉,經(jīng)常翻閱協(xié)議。SRAM這些基本模塊要有一定了解。SoC設(shè)計(jì)流程:SoC的流程要了解,lint、cdc,綜合流程需要會(huì)用。后端基本庫(kù):至少要了解一下工藝,后端使用的庫(kù),為綜合做準(zhǔn)備。
| 熟悉
| SoC項(xiàng)目的流程到每個(gè)階段的工具使用,這些都是有比較明確的規(guī)定。寫代碼的時(shí)間其實(shí)比較少,流程反而比較重要,一定要注意總結(jié)和記錄。
|
腳本和工具
| EDA工具:VCS/VERIDI這些需要更加熟悉,從看波形到debug都離不開;還需要學(xué)習(xí)DC綜合工具,spyglass等工具。版本控制:GIT/SVN的使用要熟練。項(xiàng)目的版本控制流程要完全掌握,可以自己搞個(gè)文檔記錄一下常用命令和流程。腳本:從0開始搭一個(gè)簡(jiǎn)單的VCS 非SVM的仿真環(huán)境是寫RTL和debug的基本要求。你至少要保證你給出的模塊沒有語法錯(cuò)誤,基本功能能跑吧。SDC: 這個(gè)階段需要接觸SDC了,進(jìn)行數(shù)字綜合了。這是新手和老手的分界點(diǎn)。RTL其實(shí)是軟件,RTL+SDC才是硬件。時(shí)序分析:需要能分析和解決時(shí)序問題。
| 熟悉
| 工具和腳本的學(xué)習(xí),建議先系統(tǒng)整體的學(xué)習(xí)一下,然后在項(xiàng)目中提高。
SDC建議找個(gè)課程系統(tǒng)學(xué)習(xí)一下,S家就有系統(tǒng)課程,不過很貴。網(wǎng)上也有。最好以S家文檔為基礎(chǔ)。
|
軟技能
| 溝通能力:和設(shè)計(jì)的溝通,和架構(gòu)的溝通和DV的溝通,做完一個(gè)項(xiàng)目可以總結(jié)一下;匯報(bào)能力:能夠把自己工作和設(shè)計(jì),通過文檔或者PPT完整的展現(xiàn)出來,讓別人清楚聽明白,讓領(lǐng)導(dǎo)知道自己的貢獻(xiàn)。
| 了解
| 溝通是工作展開的基礎(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è)方向的專業(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)部。技能分類
| 技能詳細(xì)描述
| 要求
| 補(bǔ)充說明和建議
|
閱讀能力
| 文檔編寫:購(gòu)買的IP模塊,需要把IP文檔都通讀理解,然后再去編寫集成設(shè)計(jì)文檔。
| 精通
| 首先重點(diǎn)通讀一次,把重點(diǎn)要標(biāo)注出來
|
文檔能力
| 文檔編寫:主要是時(shí)鐘頻率,和外部接口連接等等。要按照項(xiàng)目的規(guī)范文檔盡可能寫明白。
| 精通
| 在進(jìn)行編寫RTL之前一定要寫一個(gè)集成文檔的初稿,再開始進(jìn)行RTL coding,然后在coding過程中去完善設(shè)計(jì)文檔。
這個(gè)階段你自己就必須去設(shè)計(jì)子系統(tǒng)的架構(gòu),然后和內(nèi)部模塊負(fù)責(zé)人進(jìn)行溝通。
|
專業(yè)能力
| 子系統(tǒng)架構(gòu): 理解子系統(tǒng)的架構(gòu),包括處理器、存儲(chǔ)器、外設(shè)接口等,并能夠設(shè)計(jì)子系統(tǒng)的框架。
系統(tǒng)集成: 能夠?qū)⒉煌哪K和IP核集成為子系統(tǒng),并確保它們之間的兼容性和協(xié)同工作。專業(yè)知識(shí):內(nèi)部模塊了解到越多越好。總線知識(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ì),通過文檔或者PPT完整的展現(xiàn)出來,讓別人清楚聽明白,讓領(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)跨部門的工作。
項(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年就開始負(fù)責(zé)子系統(tǒng)。這個(gè)階段你需要掌握的了解到知識(shí)就非常多,需要處理的事情也非常多。不僅僅是對(duì)技術(shù)的考驗(yàn)也是對(duì)做人做事的考驗(yàn)。