作者:zgezi
一、SoC設(shè)計(jì)的特點(diǎn)
一個(gè)完整的SoC設(shè)計(jì)包括系統(tǒng)結(jié)構(gòu)設(shè)計(jì)(也稱為架構(gòu)設(shè)計(jì)),軟件結(jié)構(gòu)設(shè)計(jì)和ASIC設(shè)計(jì)(硬件設(shè)計(jì))。
SoC設(shè)計(jì)與傳統(tǒng)的ASIC設(shè)計(jì)最大的不同在于以下兩方面:
SoC設(shè)計(jì)更需要了解整個(gè)系統(tǒng)的應(yīng)用,定義出合理的芯片架構(gòu),使得軟硬件配合達(dá)到系統(tǒng)最佳工作狀態(tài)。因而,軟硬件協(xié)同設(shè)計(jì)被越來越多地采用。
SoC設(shè)計(jì)是以IP復(fù)用或更大的平臺復(fù)用為基礎(chǔ)的。因而,基于IP 復(fù)用的設(shè)計(jì)是硬件實(shí)現(xiàn)的特點(diǎn)。
二、軟硬件協(xié)同設(shè)計(jì)流程
SoC(System on Chip)通常被稱作系統(tǒng)及芯片或者片上系統(tǒng),作為一個(gè)完整的系統(tǒng),其包含了硬件和軟件兩部分內(nèi)容。這里硬件指SoC芯片部分,軟件指運(yùn)行在SoC芯片上的系統(tǒng)及應(yīng)用程序。所在在進(jìn)行設(shè)計(jì)時(shí)需要同時(shí)從軟件和硬件的角度去考慮。
傳統(tǒng)的設(shè)計(jì)中,設(shè)計(jì)工程師很難對結(jié)構(gòu)在系統(tǒng)層次上進(jìn)行詳細(xì)評估,隨著設(shè)計(jì)的細(xì)節(jié)化,要改變系統(tǒng)架構(gòu)變得更加困難。此外,由于仿真速度的限制,軟件開發(fā)難以在這種詳細(xì)的硬件平臺上進(jìn)行,所以采用傳統(tǒng)的設(shè)計(jì)流程進(jìn)行SoC設(shè)計(jì)可能會(huì)存在產(chǎn)品設(shè)計(jì)周期長,芯片設(shè)計(jì)完成后發(fā)現(xiàn)系統(tǒng)架構(gòu)存在問題等。
軟硬件協(xié)同設(shè)計(jì)指的是軟硬件的設(shè)計(jì)同步進(jìn)行,如下圖所示,在系統(tǒng)定義的初始階段兩者就緊密相連,近年來,由于電子系統(tǒng)級設(shè)計(jì)(ESL Electronic System Leverl Design)工具的發(fā)展,軟硬件協(xié)同設(shè)計(jì)逐漸被采用。這種方法使得軟件設(shè)計(jì)者在硬件設(shè)計(jì)完成之前就可以獲得軟件開發(fā)的虛擬硬件平臺,在虛擬平臺上開發(fā)應(yīng)用軟件,評估系統(tǒng)架構(gòu)設(shè)計(jì)。
2.1 系統(tǒng)需求說明
系統(tǒng)設(shè)計(jì)首先從確定所需的功能開始,包含系統(tǒng)基本輸入和輸出及基本算法需求,以及系統(tǒng)要求的功能、性能、功耗、成本和開發(fā)時(shí)間等。在這一階段,通常會(huì)將用戶的需求轉(zhuǎn)換為用于設(shè)計(jì)的技術(shù)文檔,并初步確定系統(tǒng)的設(shè)計(jì)流程。
2.2 高級算法建模與仿真
設(shè)計(jì)者將使用如C和C++等高級語言創(chuàng)建整個(gè)系統(tǒng)的高級算法模型和仿真模型。目前,一些EDA工具可以幫助我們完成這一步驟。有了高級算法模型,便可以得到軟硬件協(xié)同仿真所需的可執(zhí)行的說明文檔。此類文檔會(huì)隨著設(shè)計(jì)進(jìn)程的深入而不斷地完善和細(xì)化。
2.3 軟硬件劃分過程
設(shè)計(jì)者通過軟硬件劃分來決定哪些功能應(yīng)該由硬件完成,哪些功能應(yīng)該由軟件來實(shí)現(xiàn)。這是一個(gè)需要反復(fù)評估-修改直至滿足系統(tǒng)需求的過程。
2.4 軟硬件同步設(shè)計(jì)
由于軟硬件的分工已明確,芯片的架構(gòu)及同軟件的接口也已定義,接下來便可以進(jìn)行軟硬件的同步設(shè)計(jì)了。其中硬件設(shè)計(jì)包括RTL設(shè)計(jì)和集成、綜合、布局布線及最后的流片。軟件設(shè)計(jì)則包括算法優(yōu)化、應(yīng)用開發(fā),以及操作系統(tǒng)、接口驅(qū)動(dòng)和應(yīng)用軟件的開發(fā)。
三、基于標(biāo)準(zhǔn)單元的SoC芯片設(shè)計(jì)流程
硬件設(shè)計(jì)定義說明(Hardware Design Specification)
? 硬件設(shè)計(jì)定義說明描述芯片總體結(jié)構(gòu)、規(guī)格參數(shù)、模塊劃分、使用的總線,以及各個(gè)模塊的詳細(xì)定義等。
模塊設(shè)計(jì)及IP復(fù)用(Module Design & IP Reuse)
? 對于需要重新設(shè)計(jì)的模塊進(jìn)行設(shè)計(jì);對于可復(fù)用的IP核,通常由于總線接口標(biāo)準(zhǔn)不一致需要做一定的修改。
頂層模塊集成(Top Level Integration)
? 頂層模塊集成是將各個(gè)不同的功能模塊,包括新設(shè)計(jì)的與復(fù)用的整合在一起,形成一個(gè)完整的設(shè)計(jì)。通常采用硬件描述語言對電路進(jìn)行描述,其中需要考慮系統(tǒng)時(shí)鐘/復(fù)位、I/O環(huán)等問題。
前仿真(Pre-layout Simulation)
? 前仿真也叫RTL級仿真。通過HDL仿真器驗(yàn)證電路邏輯功能是否有效。在前仿真時(shí),通常與具體的電路物理實(shí)現(xiàn)無關(guān),沒有時(shí)序信息。
邏輯綜合(Logic Synthesis)
? 邏輯綜合是指使用EDA工具把由硬件描述語言設(shè)計(jì)的電路自動(dòng)轉(zhuǎn)換成特定工藝下的網(wǎng)表,即從RTL級的HDL描述通過編譯與優(yōu)化產(chǎn)生符合約束條件的門級網(wǎng)表。
版圖布局規(guī)劃(Floorplan)
? 版圖布局規(guī)劃完成的任務(wù)是確定設(shè)計(jì)中各個(gè)模塊在版圖上的位置,主要包括:
I/O規(guī)劃,確定I/O的位置,定義電源和接地口的位置;
模塊放置,定義各種物理的組、區(qū)域或模塊,對這些大的宏單元進(jìn)行放置;
供電設(shè)計(jì),設(shè)計(jì)整個(gè)版圖的供電網(wǎng)絡(luò),基于電壓降(IR Drop)和電遷移進(jìn)行拓?fù)鋬?yōu)化。
功耗分析(Power Analysis)
? 在設(shè)計(jì)中的許多步驟都需要對芯片功耗進(jìn)行分析,從而決定是否需要對設(shè)計(jì)進(jìn)行改進(jìn)。
? 在版圖布局規(guī)劃后,需要對電源網(wǎng)絡(luò)進(jìn)行功耗分析(PNA,Power Network Analysis),確定電源引腳的位置和電源線寬度。
? 在完成布局布線后,需要對整個(gè)版圖的布局進(jìn)行動(dòng)態(tài)功耗分析和靜態(tài)功耗分析。
? 除了對版圖進(jìn)行功耗分析以外,還應(yīng)通過仿真工具快速計(jì)算動(dòng)態(tài)功耗,找出主要的功耗模塊或單元。
單元布局和優(yōu)化(Placement & Optimization)
? 單元布局和優(yōu)化主要定義每個(gè)標(biāo)準(zhǔn)單元的擺放位置并根據(jù)擺放的位置進(jìn)行優(yōu)化。
靜態(tài)時(shí)序分析(STA,Static Timing Analysis)
? STA是一種靜態(tài)驗(yàn)證方法
? 通過對提取電路中所有路徑上的延遲等信息的分析,計(jì)算出信號在時(shí)序路徑上的延遲,找出違背時(shí)序約束的錯(cuò)誤,如檢查建立時(shí)間(Setup Time)和保持時(shí)間(Hold Time)是否滿足要求。
形式驗(yàn)證(Formal Verification)
? 形式驗(yàn)證也是一種靜態(tài)驗(yàn)證方法。
? 在整個(gè)設(shè)計(jì)流程中會(huì)多次引入形式驗(yàn)證用于比較RTL代碼之間、門級網(wǎng)表與RTL代碼之間,以及門級網(wǎng)表之間在修改之前與修改之后功能的一致性。
可測性電路插入(DFT,Design for Test)
? 可測性設(shè)計(jì)是SoC設(shè)計(jì)中的重要一步。通常,對于邏輯電路采用掃描鏈的可測試結(jié)構(gòu),對于芯片的輸入/輸出端口采用邊界掃描的可測試結(jié)構(gòu)?;舅枷胧峭ㄟ^插入掃描鏈,增加電路內(nèi)部節(jié)點(diǎn)的可控性和可觀測性,以達(dá)到提高測試效率的目的。一般在邏輯綜合或物理綜合后進(jìn)行掃描電路的插入和優(yōu)化。
時(shí)鐘樹綜合(Clock Tree Synthesis)
? SoC設(shè)計(jì)方法強(qiáng)調(diào)同步電路的設(shè)計(jì),即所有的寄存器或一組寄存器是由同一個(gè)時(shí)鐘的同一個(gè)邊沿驅(qū)動(dòng)的。構(gòu)造芯片內(nèi)部全局或局部平衡的時(shí)鐘鏈的過程稱為時(shí)鐘樹綜合。分布在芯片內(nèi)部寄存器與時(shí)鐘的驅(qū)動(dòng)電路構(gòu)成了一種樹狀結(jié)構(gòu),這種結(jié)構(gòu)稱為時(shí)鐘樹。時(shí)鐘樹綜合是在布線設(shè)計(jì)之前進(jìn)行的。
布線設(shè)計(jì)(Routing)
? 這一階段完成所有節(jié)點(diǎn)的連接。
寄生參數(shù)提?。≒arasitic Extraction)
? 通過提取版圖上內(nèi)部互連所產(chǎn)生的寄生電阻和電容值,進(jìn)而得到版圖實(shí)現(xiàn)后的真實(shí)時(shí)序信息。
? 這些寄宿生電路信息將用于做靜態(tài)時(shí)序分析和后仿真。
后仿真(Post-layout Simulation)
? 后仿真也叫門級仿真、時(shí)序仿真、帶反標(biāo)的仿真,需要利用在布局布線后獲得的精確延遲參數(shù)和網(wǎng)表進(jìn)行仿真,驗(yàn)證網(wǎng)表的功能和時(shí)序是否正確。后仿真一般使用標(biāo)準(zhǔn)延時(shí)(SDF,Standard Delay Format)文件來輸入延時(shí)信息。
ECO修改(ECO,Engineering Change Order)
? ECO修改是工程修改命令的意思。
? 這一步實(shí)際上是正常設(shè)計(jì)流程的一個(gè)例外。當(dāng)在設(shè)計(jì)的最后階段發(fā)現(xiàn)個(gè)別路徑有時(shí)序問題或邏輯錯(cuò)誤時(shí),有必要通過ECO對設(shè)計(jì)的局部進(jìn)行小范圍的修改和重新布線,并不影響芯片其余部分的布局布線。在大規(guī)模的IC設(shè)計(jì)中,ECO修改是一種有效、省時(shí)的方法,通常會(huì)被采用。
物理驗(yàn)證(Physical Verification)
? 物理驗(yàn)證是對版圖的設(shè)計(jì)規(guī)則檢查(DRC,Design Rule Check)及邏輯圖網(wǎng)表和版圖網(wǎng)表比較(LVS,Layout Vs. Schematic)。
? DRC用以保證制造良率。
? LVS用以確認(rèn)電路版圖網(wǎng)表結(jié)構(gòu)是否與其原始電路原理圖(網(wǎng)表)一致。
來源:電子創(chuàng)新網(wǎng)
審核編輯黃昊宇
-
soc
+關(guān)注
關(guān)注
38文章
4305瀏覽量
221150 -
設(shè)計(jì)
+關(guān)注
關(guān)注
4文章
820瀏覽量
70269
發(fā)布評論請先 登錄
DA14531-00000FX2 超低功耗藍(lán)牙5.1 SOC芯片介紹
Vivado之實(shí)現(xiàn)布局布線流程介紹

數(shù)字設(shè)計(jì)ic芯片流程
芯片設(shè)計(jì)進(jìn)階之SOC電源管理系統(tǒng)介紹

soc與其他集成電路的比較分析
soc開發(fā)流程常見問題及解決方案
SOC芯片在汽車電子中的應(yīng)用

AMD Versal自適應(yīng)SoC CPM5 QDMA的Tandem PCIe啟動(dòng)流程介紹

密封性檢測設(shè)備的簡單操作流程

BiCMOS工藝流程介紹

評論