數字ic前端和後端等學習路線是什麼?
各位好,本人研二電子小碩一枚,本來是java web方向,實習了一段時間,發現不太想做。考研時的想法就是做ic方面,無奈那時師兄們都說不好就業,而且那時基本無人學習這方面的知識。實習後,內心的想法有又燃燒了起來。不過對於數字ic的學習進階還是十分迷茫,在這裡,想問下大家,數字ic前端後端如何切入?如果從事前端是需要從fpga學起嗎?後端如何學習?他們的學習路線及職業規劃是怎麼樣的?有沒入門級的書推薦下?本人數模電基礎還有些,verilog語法也是剛剛學習。希望大神們賜教!!感激
謝邀。
數字前端主要有開發和驗證。對開發來說,基本的電路知識,rtl coding是必須熟練掌握的。看看數字電路設計,最重要的是自己動手寫代碼,模擬,以及調試。
建議先從一些基本模塊入手,分頻器,非同步fifo,狀態機,找塊fpga開發版,實際調試下。fpga裡面有很多資源,各種宏模塊,熟悉下原理。然後多熟悉下常用介面和匯流排協議。比如串口,iic,spi,amba等。後面就是針對具體業務的各項標準和協議。這也是數字前端有意思的地方。雖然底層大家都一樣,到涉及到業務方向就是隔行如隔山,做通信跟做多媒體就差別很大,做通信又有有線和無線,數字前端就是把各項標準協議演算法翻譯成電路的過程。所以說從事哪方面業務,對什麼產品感興趣才是前端開發最重要的。
如果要做驗證,rtl編碼能力要求倒不是太高,但也要熟悉業務標準和協議,驗證最重要的工作是搭建一個完備的驗證平台,以及創建各種case,這個需要會uvm,system verilog,c++。趨於面向對象開發。另外一個很重要的就是調試能力。小工程可能fpga隨便跑跑,抓幾個信號就看出來了,但對於一些大工程,編譯版本都需要很久的,就需要能夠設計合適的調試節點,能夠快速的定位出問題。以上是前端,對於後端來說,我覺得最重要的就是晶元實現原理,腳本知識,以及eda工具的使用。
從邏輯綜合開始到pr,以及時序分析,功耗分析等,隨便一本書都有整個流程介紹。晶元東西還是挺多的,要講的也太多。
慢慢學吧。祝好運。推薦兩個非常有操作性,短期內能清楚知道業界都在做什麼,需要什麼技能的方法:
1. 可以找找業界公司招聘職位時寫出的job description(responsibility)和job requirement. 分別講的是這個工作平時的任務和這個工作需要的skill set。至於去哪裡找,可以多去Intel/Qualcomm/Nvidia/Marvell/AMD/Apple這樣的公司的career頁面多搜搜關鍵詞,這樣的job description讀多了(二三十個就夠了),你對業界都在幹什麼,需要什麼技能就一清二楚了
2. 去glassdoor上搜IC行業的面試題,比如前端設計關鍵字digital design/ASIC就行了,做驗證就搜DV。很多面試題真的就是實際工作中會遇到的情況,會問你了不了解這些需要經驗的東西(當然了這些是針對senior職位的,但是你也可以看呀)
再搜搜前端和後端的各個職位行業平均工資,你就知道市場行情,然後結合自己興趣看看你自己想選什麼方向了。
雖然我說的更適合美國的情況,但是國內IC發展很快,基本上看這些業界頂尖公司的技能和任務和國內差別很小。技術面試差別也越來越小
半導體行業從美國往亞洲大規模轉移這是不可逆轉的趨勢,IC在國內還是很有前途的,今年華為不是給不少應屆生都開出了很多25W/32W的offer嘛,不輸給互聯網。
PS:後端無論是implementation,PR(美國叫physical design),技術含量實際上沒有前端設計高,一個好的designer得全部都懂(不需要很精通),才能在design stage就規避那些後端有可能遇到的坑。
在全中國都在吹捧CS的情況下,還有小夥伴願意從CS的大潮中隻身退出,進入IC的小溪流,我表示還是非常開心和欣賞的一件事。此處點個贊先。關於後端不是很熟,印象一直就是一個跑工具跑flow的工作。此處為不明真相的吃瓜群眾的片面觀點,如有後端大牛指正不吝感激。前端的話可以稍微說兩句,看到前面有幾個答案說是調fpga,我想說的是前端其實並不等於fpga,也不是從fpga開始的,fpga只是前端這個支流中的另一道支流。如同其他答主所說,前端分設計和驗證。設計需要學習的是verilog的編碼,是各種常用協議,是電路的基礎知識,是邏輯的可綜合。驗證要學習的是systemverilog,systemc,c++,uvm等。調case首先要學會看波形,而不是使用fpga。在大公司裡面fpga有自己的工程師,而作為前端工程師,不管是設計還是驗證,看波形是基礎技能,能在一堆綠油油的波形里看到出問題的那段,用時長短就可以反映出你對設計的理解,對信號的抓取能力,對case的熟悉程度。所以學會看波形很重要。在有了這些基礎之後就可以隨你傲遊了,你可以去調fpga,可以去寫各種協議,可以去搭各種平台。哦,忘了說,你還要懂linux,版本控制,perl/ruby/shell等各種常用腳本語言。IC絕不是一般碼農一樣的工作,它可以非常的生動有趣,希望題主是真心喜歡這一行而不是一時湊熱鬧。
謝邀!現在做軟體的確實比硬體起薪高些,畢竟互聯網公司利潤大,創業起來也更容易些,既然你想走ic這條路,我也發表下我的微薄經驗,數字設計前端就是些基本電路的設計,複雜些的數字電路也是由這些簡單的電路通過一些技巧組合而成,畢竟現在有好多廠家生產ip核,對電路的設計更簡單些了,你可以從verilog基本語法看起,學習各種數字電路的設計技巧,像非同步信號的處理,非同步fifo,狀態機的三段式寫法等等,推薦看下深入淺出玩轉fpga,自己寫些小程序,fpga畢竟是平台,要在上面跑程序,有條件的話買個開發板,寫些串口的小代碼,跑跑flash,ddr,多進些論壇,慢慢積累經驗,還有要有項目的話學習會很快,微電子行業國家近幾年國家也投了很多錢,畢竟國家的晶元行業還發展太慢。騷年,考慮好了,就定下來,踏踏實實學吧!
我有後端學習視頻。
IC不好就業,這是個冷笑話嗎
推薦閱讀:
※就數字IC來說,驗證、前端、後端這三個方向將來哪個更好發展點呢?
※如何理解「一個always裡面只輸出一個信號,避免互相干擾」?
※如何評價復旦大學VIP實驗室范益波教授團隊發布開源H.265視頻編碼IP核?
TAG:數字IC設計 |