1、功能設(shè)計階段:設(shè)計目標(biāo)產(chǎn)品的應(yīng)用場合,設(shè)定一些諸如功能、性能、接口規(guī)格、溫度、功耗等指標(biāo),作為后續(xù)電路設(shè)計的輸入依據(jù)。根據(jù)市場和公司需求,完成芯片總體結(jié)構(gòu)、規(guī)格參數(shù)、模塊劃分、使用技術(shù)以及各個功能模塊的詳細(xì)定義??傮w設(shè)計規(guī)劃完成后,再制定各個維度的設(shè)計方案。芯片設(shè)計方案按照自頂向下方式,逐級分解設(shè)計模塊,形成各個模塊的設(shè)計方案。
2、設(shè)計描述和行為級驗證:依據(jù)芯片總體設(shè)計需求,可將SoC劃分成若干功能模塊,并決定這些功能模塊是否需要使用IP核。該過程直接影響SoC的內(nèi)部架構(gòu)及各模塊的頂層信號互連,并在后續(xù)設(shè)計過程中起到?jīng)Q定性作用,因此需要非常仔細(xì)謹(jǐn)慎地選擇產(chǎn)品和IP核。 對于不需要使用IP核的模塊,可使用VHDL/Verilog等硬件描述語言完成硬件電路各模塊的設(shè)計工作。同時定義各個模塊的功能點,按照功能點進(jìn)行功能仿真驗證和行為級驗證。行為級仿真驗證不考慮時序延時,因此無法覆蓋時序相關(guān)問題,只能保證設(shè)計的功能正確性。時序延時的正確性需要通過其他手段實現(xiàn)。
3、邏輯綜合:確定設(shè)計描述后,可使用邏輯綜合工具對代碼進(jìn)行綜合。綜合過程需要選擇適當(dāng)?shù)倪壿嬈骷旌蚐DC時序約束文件,作為合成邏輯電路的綜合參數(shù)。設(shè)計人員需要確定SDC約束文件的正確性,如果是IP核,IP核廠商會提供原版SDC約束文件,但并不適合芯片全局的SDC約束。因此,無論是使用的IP核,還是編寫的verilog代碼,均需要整理編寫SDC約束文件。同時,SDC約束文件也是CDC/RDC代碼規(guī)則檢查的輸入文件之一。
4、布局布線和后仿真:布局是指將設(shè)計好的功能模塊合理地安排在芯片上,規(guī)劃好它們的位置。布線是指完成各個模塊之間的互連連線。 后仿真是仿真帶有SDF延時參數(shù)的仿真,后仿真用于測試芯片的時序是否滿足要求,功能性仿真在前仿時已經(jīng)驗證通過,因此后仿真更關(guān)注于仿真過程中的setup、hold time情況。對于后仿真出現(xiàn)的問題,需要定位問題點,判斷是否需要后端修復(fù)、ECO修復(fù)或RTL重綜合。
SOC的設(shè)計流程,包括數(shù)字電路設(shè)計前端和后端的全流程。具體各個部分又包括:
——硬件設(shè)計定義說明(Hardware Design Specification)
——模塊設(shè)計及IP復(fù)用(Module Design & IP Reuse)
——頂層模塊集成(Top Level Integration)
——前仿真(Pre-layout Simulation)
——邏輯綜合(Logic Synthesis)
——版圖布局規(guī)劃(Floorplan)
——功耗分析(Power Analysis)
——單元布局和優(yōu)化(Placement & Optimization)
——靜態(tài)時序分析(STA,Static Timing Analysis)
——形式驗證(Formal Verification)
——可測性電路插入(DFT,Design for Test)
——時鐘樹綜合(Clock Tree Synthesis)
——布線設(shè)計(Routing)
——寄生參數(shù)提?。≒arasitic Extraction)
——后仿真(Post-layout Simulation)
——ECO修改(ECO,Engineering Change Order)
——物理驗證(Physical Verification)