晶片設計 數字晶片設計如何入門?

晶片設計 數字晶片設計如何入門?

1、實現

2、驗證

3、綜合

4、輸出

方法/步驟

晶片設計 數字晶片設計如何入門? 第2張
1

實現。首先是要實現功能,方式一般採用HDL描述,如verilog,VHDL。當然對於小規模電路也可以採用電路圖輸入的方式。

2

驗證。得保證電路功能的正確性,也叫驗證,可以通過軟體模擬,硬體模擬等方式實現。軟體模擬一般比較直觀,方便除錯,因為每一時刻的狀態都可以看到,這好比除錯軟體程式。硬體模擬一般就是指FPGA驗證,就是把電路用FPGA實現,然後去跑,這個的好處就是速度很快,譬如一個視訊解碼核,解一幀影象出來,軟體模擬就算用最好的伺服器,也得跑上多少秒,但是在FPGA中實現的話,基本就是多少毫秒了。這對於一個需要大規模驗證的電路來說,是必不可少的。 前面兩步對於數字IP來說,ASIC和FPGA基本一致,除非一些實現技巧的差別。

3

綜合。在你描述的電路正確性得到確保之後,你就要實現它,就是要把你寫的那些程式碼變成實實在在的電路,如暫存器還是與非門,這個過程就叫綜合。由於電路規模日益複雜,一般最基本的電路就被做成了cell,如暫存器,與非門,就不會再細化到用三極體怎麼去搭的問題了。這一步對於FPGA和ASIC來說就是最小的那個單元不一樣。FPGA是做好的電路,一般顧及通用性和效能,基本電路單元就做得比較大,如LUT,就是由暫存器和與非門構成,你可能只用了其中一個與門,但是還會佔用這麼一個單元。對於ASIC來說,兩輸入的與非門,就是一個簡單的閘電路,甚至為了區分驅動能力和時序特性差異,還分了好幾個等級,有的面積小,有的驅動能力強。總的來說這一步就是工具把你的描述變成基於庫的電路描述。

4

擺放。你得到基於庫的電路描述之後,就要考慮這些單元怎麼擺放的問題,這叫佈局佈線。FPGA的話連線資源有限,所以需要不斷地調整,在保證時序要求的情況下,把你的電路對映到其固定的資源分佈圖中間。ASIC的話一般是根據周邊電路需求,時序要求,把你的電路放到晶片的某個位置。在擺好之後還得考慮連線是否能通,各級延時是否能滿足電路的建立和保持時間要求等等。

5

輸出。FPGA就是輸出一個配置檔案,告訴FPGA晶片該怎麼樣去配置其電路,使其實現預期功能。該檔案可以在FPGA上電之後再由PC下載進去,也可以儲存在Flash裡,電路上電之後自動配置。ASIC就是輸出一個版圖檔案,告訴代工廠該怎麼去腐蝕矽片,該怎麼連金屬等等。 當然在這過程中間會有各種各樣的輔助步驟。總的來說都是為了確保你設計的電路正確及正確實現你的電路。