做數字前端和FPGA需要掌握哪些知識工具,前景如何?

做數字前端和FPGA需要掌握哪些知識工具,前景如何?

【大同學吧,是全國100+重點高校IT電子類等理工科大學生都在關注的校招、內推、實習的求職服務平臺,提供海量互聯網及半導體行業實習、校招等招聘信息,免費分享面經筆經、求職內推、行業乾貨,助力學子順利拿下理想offer!】

隨著技術的發展,企業對人才的要求也在不斷提高,需要大家掌握越來越多的技術和知識。同時,學的越多,就會發展的越好。

雖然很多企業設置了FPGA崗位,但是FPGA其實只是一種工具。運用好工具,才能有好的發展。這款工具具體有哪些內容,又能夠帶來怎樣的收益呢?

Julius老師的直播,告訴你答案

Julius老師高級工程師,曾任職上海貝嶺、通用芯片研究中心、華大國奇科技。擁有10+年多行業的軟硬件系統研發,FPGA系統研發和原型驗證,數字前端設計和ASIC集成開發經驗。在FPGA系統設計和數字前端設計方面有著豐富的項目經驗。

做數字前端和FPGA需要掌握哪些知識工具,前景如何?

經驗分享

1.集成電路崗位

集成電路方面的崗位包括兩個大方向:設計和Fab。其中設計又分為模擬和數字,模擬的專業性更強。數字分為前端和後端,前端之前還有算法。

2.IC設計的整體工作流程

首先是對需求進行分析,定出設計的speck,制定一些實現的方法。在MATLAB上做一些仿真,搭一些模型。做好之後,把算法轉化成RTL,寫好以後會做一些仿真,根據設計的規模大小,用system Verilog搭一些簡單的模型,對算法進行仿真和功能測試,看是否可以實現。

然後再做一些可綜合設計。做完功能仿真後,基本上可以做一些綜合,綜合就是把RTL轉化成門級網表。到這裡,數字前端基本就結束了。有些公司會把綜合交給數字後端處理。

數字後端主要是版圖,Pr操作,Timing等。數字版圖和Pr做好之後,會出一個帶時序的網表,給數字前端做後仿,沒有Timing violation,就可以交給DFT測試,然後進行tapeout。

做仿真和驗證是非常重要的。小公司的小模塊,設計者自己搭建一個testbench就可以了。針對大公司裡面大的模塊,會有驗證部門,由部門來驗證設計。驗證方法除了UVM驗證方法學,還有FPGA原型驗證。

3.數字前端

學習數字前端,對於微電的同學,要更側重算法。做RTL這一塊的工作,把算法轉化成可綜合的語言,這個的技術性要求高,不可替代性相對較強。

轉專業的同學,可以把側重點放在代碼的能力方面。

數字前端要學Verilog,要熟悉linux操作環境和腳本,要了解Tcl、Makfile、Python,C。一般會用C來建模型,C的基礎需要鞏固。

System Verilog也需要一定地學習。自己做設計,做testbench,現在System Verilog也是主流。後面如果要做驗證,UVM,System Verilog是必須要具備的。

寫Verilog時,要注重coding style。如果面試時coding寫的很工整,符合企業標準,會是很大的一個加分項。要避免一行裡面寫好幾句,區分大小寫。

大家可以網上搜索華為、AMD等大廠外放出來的coding style要求,借鑑一下。平時需要積累,養成好的習慣對將來的工作比較有幫助。

平時要養成寫可綜合語句的習慣。可以利用lint等工具來檢查coding,根據error進行修改,確定語句的可綜合性。

現在以同步時序電路為主,即基於某一個clock的上升沿進行時序邏輯設計。所以一定要掌握一些關鍵詞,例如:always,always at時鐘的上升沿。做設計要將某個時鐘確定好。

小設計一個clock就夠了。大設計需要幾個clock,要注意對跨時鐘域的處理,CDC等問題。平時要養成良好的習慣。

4.工具的使用

邏輯電路編輯完以後做仿真,業界大都是用VCS或者NC Verilog。這些都是在linux裡面跑的,有機會多用VCS跑一下仿真。

還有綜合工具,DC綜合;查coding用lint;看波形用vivado;看CDC有沒有跨時鐘域問題用spyglass。時序分析用PT,即靜態時序分析。

有機會微電專業的同學要跑跑後端。

5.FPGA

FPGA在數字前端裡面基本只用於原型驗證。為什麼要做原型仿真:一般做仿真,仿真效率較低,特別是後仿。用FPGA來做仿真能夠大幅度提高效率。

目前社會上對驗證的需求比對設計的需求更大。做驗證需要掌握Verilog,C,要會寫腳本。System Verilog是必備的,UVM方法學也要會。還要會驗證方法和工具。

FPGA本身只是一個工具。

學FPGA可以去研究所、通訊行業、醫療器械行業、金融行業,人工智能領域對FPGA的需求量也很大。做雲服務器的企業,FPGA的應用非常廣泛。

現在做FPGA,對綜合要求越來越高。要會做RTL設計和仿真;要懂硬件電路,硬件電路上面的原理圖要會看;會用示波器和萬用表去量一些信號;懂arm,懂arm的C代碼開發;懂linux操作系統。如果能懂二次開發是更好的。

如果是做電路設計,還要會看原理圖,看PCB,對基本的器件和外圍的二維電路都要有所瞭解。電子方面的綜合性要求較高。

問題解答

1.跨專業如何學習FPGA?

跨專業學習FPGA可以看書,或者參加一些培訓。自學FPGA,可以自己買一塊開發板,自學時間成本會比較高。

學習FPGA主要還是以Xilinx 7系列以後的器件開發板為主。

2.在跑pt的時候,把setup和hold violation都修復了,後仿也會還有問題嗎?是因為參數不準嗎?

可能是CDC的一些問題,或者異步的一些信號處理掉了。還有SDC設置是不是正確,如果設置不夠,約束條件設置不足,也會出現一些問題。

3.FPGA和單片機、DSP的差異在哪裡?

FPGA是可編程邏輯陣列,是可編程的邏輯。MCU是可編程的程序,邏輯是定死的。FPGA的並行計算和並行處理的功能單片機和DSP是不具備的。

價格上MCU是最便宜的,一般是幾十塊到幾百塊。DSP會稍微貴一些,一般是幾百塊到2000左右。FPGA的開發板較貴。

4.碩士微電子材料方向,怎麼轉到ic前端的工作呢?

Foundry內部也會有一些做design service的部門,也會有一些做設計和驗證的需求。學材料進Fab的比較多,如果平時寫C的功底比較好,懂一些FPGA,可以在公司內部進行一些轉崗。

5.數字前端和IP開發有什麼差異?

沒有大的區別,做數字前端開始也是從小的模塊的IP開發為主。

6.處理器核做原型驗證,哪些重點問題需要考慮?

一般做原型驗證不用考慮模擬這一塊。需要考慮時鐘,復位,存儲單元的總線,外圍的總線,寄存器怎麼處理,異常怎麼處理等問題。

7.系統裡面時鐘域劃分有什麼經驗依據嗎?比如說按運算單元和存儲部分來劃分這種,還有什麼其他的經驗依據嗎?

做架構或者集成的時候,每個時鐘都會有自己的時鐘域要求,,根據它的時鐘要求設置時鐘。如果可以是同時鐘的,或者時序要求是一致的,可以放在同時鍾域。如果時序要求是不一樣的,時鐘的頻段是不一樣的,只能通過總線,進行跨時鐘域,所以要根據不同的要求來劃分。


分享到:


相關文章: