芯片設計工程師的技能是通過多年的經驗學習的。在您開始作為芯片設計工程師工作之前,很難給出一個需要的全面的單一列表,也不可能學習所有內容。話雖如此,以下是您開始芯片設計師職業生涯時必須知道的一些事情。
1.數字邏輯設計基礎。
這些必須讓您思考作為芯片設計師,能夠根據邏輯塊、互連和綜合到正確的結構等方面對設計進行微架構。
2.模擬電路設計基礎
PLL、CDR(時鐘和數據恢復電路)、ADC/DAC、高速信號和信號完整性概念(串擾、抖動、振鈴等)
如果您正在從事純數字設計,這些可能不是那么重要,但當前的設計總是有幾個復雜的時鐘方案和高速接口,這使得理解這些很重要。
3.設計方法和流程
對設計流程和方法有很好的理解——RTL設計、物理設計、STA(靜態時序分析)等。
4.使用至少一種 HDL 語言
大多數芯片設計都使用像 SystemVerilog 或 VHDL 這樣的 HDL,并且對語言有充分的了解可以幫助您將設計轉換為高效的 HDL 模型。根據您是使用 HDL 進行 RTL 開發還是設計驗證,技能也會有所不同。
5.功耗、性能、面積估計和權衡
當前大多數芯片設計的目標是在最佳面積內以最低功耗滿足最高性能——由市場需求和成本決定。芯片設計師需要權衡幾種設計特性/技術來滿足這一點。
6.其他一些推薦的技能 (雖然可能不是所有人都必須知道的)
a.腳本語言 ——每一項工作都關注效率,了解至少一種腳本語言(如 python/perl)會有所幫助。在 RTL 設計中,這些對于生成重復代碼、針對不同需求對設計進行參數化等很有用。在設計驗證中,這些在模擬設置、測試、回歸和調試等方面更有用。
b.晶體管工藝技術—— 了解芯片設計中使用的各種工藝技術的細節有時會是一個額外的優勢。
c.隨著設計趨向于更多的 SOC(片上系統),如今大多數設計都將嵌入至少一個或多個處理器內核。 了解微處理器和編程的基礎知識,硬件-軟件接口將有助于芯片設計的高效硬件/軟件架構。
d.領域知識—— 基于所設計芯片的應用和市場,對特定應用/市場有充分的了解將非常有用。看到很多芯片設計的一些領域包括——網絡(以太網、存儲等)、無線、物聯網(物聯網)、使用 AMBA 協議互連的基于 ARM 的 SOC 等。