電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 266|回復(fù): 0
收起左側(cè)

【芯片設(shè)計(jì)】從RTL到GDS(六):芯片物理設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
匿名  發(fā)表于 2024-9-13 11:58:00 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
本篇文章將進(jìn)入芯片的Physical Domain,后面的幾篇文章也都是物理設(shè)計(jì)相關(guān)的內(nèi)容,本系列文章側(cè)重于從電路的角度去思考,而不是從EDA的領(lǐng)域思考,對這方面的實(shí)現(xiàn)算法特別感興趣的可以看EDA相關(guān)的課程。本篇文章有一些圖片也來自下面這兩個知乎文章介紹的一些課程(請見閱讀原文),不一一說明了,在此表示感謝。接下來進(jìn)入課程內(nèi)容:

本節(jié)課的課程大綱如下所示:

1、Moving to physical domain在之前的文章中,我們已經(jīng)講解了芯片的前端設(shè)計(jì)流程,現(xiàn)在我們將正式進(jìn)入芯片后端的學(xué)習(xí)。芯片后端設(shè)計(jì),也稱為物理設(shè)計(jì),是在前端設(shè)計(jì)完成后進(jìn)行的。它涉及到將前端設(shè)計(jì)得到的網(wǎng)表轉(zhuǎn)換為實(shí)際的幾何形狀,即進(jìn)行布局和布線(Place and Route, P&R)。后端設(shè)計(jì)還包括芯片的時序分析、功耗分析、信號完整性分析、熱分析等多個方面。后端設(shè)計(jì)工程師需要確保芯片的物理設(shè)計(jì)滿足所有性能和制造的要求。
1.1、Floorplanning我們看一下后端每一步的流程。物理設(shè)計(jì)的基石,同時也是第一步,便是Floorplanning,中文名一般叫做布局規(guī)劃。這個過程包括了對設(shè)計(jì)中較大的或重要的部分進(jìn)行空間分配和布局決策,比如數(shù)字、模擬電路的位置、面積、形狀等的規(guī)劃,更具體點(diǎn),比如各種IP核、輸入輸出、電源網(wǎng)絡(luò)、特殊的線路等的大致位置所在。

1.2、Placement在完成floorplan以后,下一步是Placement即布局過程,其實(shí)就是解決邏輯Cell怎么放的問題。這個階段的任務(wù)是將設(shè)計(jì)的各個邏輯門和模塊放置到芯片上的具體位置。
其主要包括:
全局布局:進(jìn)行粗略的布局優(yōu)化。詳細(xì)布局:進(jìn)一步優(yōu)化每個標(biāo)準(zhǔn)單元和宏單元的位置。優(yōu)化:針對時序、功耗等進(jìn)行局部優(yōu)化。驗(yàn)證:設(shè)計(jì)規(guī)則檢查(DRC):確保布局滿足所有工藝和設(shè)計(jì)規(guī)則,電氣規(guī)則檢查(ERC):確保布局不會導(dǎo)致電氣問題(例如,電流密度過高)。在Placement過程中,需要重點(diǎn)考慮以下幾個關(guān)鍵因素:
擁塞(Congestion):擁塞是指在芯片布局中某些區(qū)域可能會出現(xiàn)過多的邏輯門和連接線,導(dǎo)致布線困難。在放置過程中,需要盡量減少擁塞,確保布線通道的暢通,避免在后續(xù)的布線階段出現(xiàn)嚴(yán)重的問題;
時序(Timing):時序是指信號在芯片中傳播的時間。在放置過程中,需要確保所有的時序要求都能得到滿足,以保證芯片能以預(yù)定的速度運(yùn)行。通常涉及到對關(guān)鍵路徑優(yōu)化。很多時候我們說讓后端修時序,就是指這個。但實(shí)際上后端能做的有限,前端設(shè)計(jì)盡可能不要出現(xiàn)時序違例。
1.3、Clock Tree Synthesis在完成place以后,下一步是時鐘樹綜合過程。時鐘樹綜合(Clock Tree Synthesis, CTS)是芯片物理設(shè)計(jì)中的一個重要環(huán)節(jié),它的目的是確保時鐘信號能夠均勻且同步地到達(dá)芯片上的所有觸發(fā)器。時鐘樹的目的是減少時鐘偏斜(clock skew),即時鐘信號到達(dá)不同觸發(fā)器的時間差異,因?yàn)闀r鐘偏斜會限制芯片的最大工作頻率,影響性能。時鐘樹設(shè)計(jì)的主要步驟包括:
時鐘樹綜合:使用電子設(shè)計(jì)自動化(EDA)工具對時鐘網(wǎng)絡(luò)進(jìn)行分析和設(shè)計(jì),以確定如何將時鐘源分配到所有的觸發(fā)器。工具會嘗試最小化時鐘偏斜,同時考慮到時鐘網(wǎng)絡(luò)的功耗和插入延遲(insertion delay);
時鐘樹插入:在時鐘源和觸發(fā)器之間插入緩沖器(buffers)和驅(qū)動器(drivers),以構(gòu)建時鐘樹。這些緩沖器和驅(qū)動器會幫助均衡時鐘信號,確保信號能夠以最小的偏斜到達(dá)每個觸發(fā)器。此外還包括一些后續(xù)的優(yōu)化。大家這里可以簡單理解時鐘樹綜合,其實(shí)際上就是插各種各樣的buffer,以避免不希望的clock skew。
1.4、Routing在完成時鐘樹綜合以后,下一步是布線即routing過程。也就是應(yīng)該如何連。布線的目的是將所有放置好的邏輯門和模塊之間的連接線(nets)連接起來,確保信號可以正確地在芯片上傳播。在布線過程中,需要遵循一定的規(guī)則和約束,主要包括:
  • 設(shè)計(jì)規(guī)則檢查(Design Rule Checks, DRC):DRC是一系列制造工藝相關(guān)的規(guī)則,它們確保芯片設(shè)計(jì)可以在這個工藝下正確制造。布線時必須遵守這些規(guī)則,比如線寬、線間距、金屬層的垂直交叉規(guī)則等,以避免制造過程中的問題;
    時序(Timing):布線時需要考慮信號的傳播延遲,確保所有信號的時序滿足設(shè)計(jì)要求。時序分析工具會幫助設(shè)計(jì)者識別并解決可能導(dǎo)致時序問題的問題,如過長的布線或擁塞區(qū)域;
    噪聲(Noise):布線過程中還需要考慮信號完整性問題,包括電磁干擾(EMI)和功率噪聲。合理的布線策略可以減少信號之間的干擾,避免信號失真和性能下降。
    我們通過一個圖總結(jié)一下上述的幾個概念:

    后面的文章會重點(diǎn)再講解Placement、時鐘樹綜合以及Routing。
    在tapeout之前,我們必須完成上述的任務(wù),確保沒有不可控的error和warning。

    下圖是上述流程的一個具體示意圖?梢钥吹狡鋵訉舆f進(jìn),從網(wǎng)表一直到最后的版圖。


    1.5、物理設(shè)計(jì)前的一些準(zhǔn)備工作在完成邏輯設(shè)計(jì)以后,我們進(jìn)入芯片的物理設(shè)計(jì)。Floorplanning是是物理設(shè)計(jì)的第一步,它定義了芯片的大致布局。在這個階段,設(shè)計(jì)者會決定哪些組件放在哪里,如何安排電源和時鐘網(wǎng)絡(luò),以及如何優(yōu)化信號流。這些決策將直接影響芯片的性能和制造難度。
    在Floorplan之前,我們還可以認(rèn)為有導(dǎo)入設(shè)計(jì)這一步,這一步其實(shí)就可以理解為準(zhǔn)備原材料,我們簡單過一下這一部分PPT即可。

    在邏輯設(shè)計(jì)階段的綜合部份,我們認(rèn)為芯片面對的世界是相對理想的。如下所示,我們很多東西都沒有考慮。我們通常不會過多考慮電源網(wǎng)絡(luò)的設(shè)計(jì)和分布,如電源線、地線的布局,以及電源噪聲對電路性能的影響。也不涉及具體的物理連線,如金屬層的布線、通孔(vias)的使用,以及信號在芯片上的實(shí)際路徑。
    但是既然已經(jīng)進(jìn)入物理設(shè)計(jì)了,那自然而然需要考慮很多物理特性,這也是一些更底層的東西。
    首先需要定義“全局網(wǎng)絡(luò)”及其如何連接到物理實(shí)例:全局網(wǎng)絡(luò)通常指的是那些需要在整個芯片上傳播的信號,如時鐘信號和復(fù)位信號。需要定義這些信號如何連接到芯片上的各個物理實(shí)例,例如邏輯單元和宏單元。
    提供技術(shù)規(guī)則和單元抽象(LEF文件):LEF(Library Exchange Format)文件包含了工藝庫中標(biāo)準(zhǔn)單元、宏單元等物理信息,如尺寸、布局和電氣特性。這些信息對于物理設(shè)計(jì)至關(guān)重要,因?yàn)樗鼈儧Q定了設(shè)計(jì)中的各個組件如何在物理層面上實(shí)現(xiàn)。
    提供物理單元,這些單元對邏輯功能不是必需的,綜合的時候往往會禁用這些單元:這些單元包括:Tie cells: 用于提供邏輯上的高電平或低電平。P/G pads: 用于芯片與外部電源的連接。Decaps: 用于電源和地之間的噪聲過濾。Filler cells: 用于填充芯片上的空白區(qū)域,以提高制造良率。
    定義保持約束以及所有操作模式和條件(MMMC):在理想的時鐘模型中,保持約束很容易滿足,因此通常不會進(jìn)行檢查。但在物理實(shí)現(xiàn)中,需要考慮時鐘的非理想性,如時鐘偏斜和抖動,并定義相應(yīng)的約束。
    設(shè)置“低功耗”定義,例如電壓域、電源門控等:為了實(shí)現(xiàn)低功耗設(shè)計(jì),需要定義電壓域,即芯片中不同部分可以獨(dú)立操作的不同電壓級別。此外還包括power gates,body taps等。


    2、A bit about Multiple Voltage Domains

    為了節(jié)省能耗,目前芯片設(shè)計(jì)普遍采用多Power Domain。對于每個電源域,需要確定連接到該域的電源(如VDD1, VDD2)和地(如GND1)的單元列表。這些單元在電源域中共同開啟或關(guān)閉。然后需要繪制電壓域,在芯片的布局中,需要明確地標(biāo)識出每個電源域的范圍。這通常涉及到在芯片布局圖上繪制電源域的邊界,以及確定電源和地網(wǎng)絡(luò)的連接方式。
    接著需要放置宏單元(macros)。宏單元通常指的是較大的設(shè)計(jì)模塊,如處理器核心、內(nèi)存塊、模擬電路等。以下是在放置宏單元時需要考慮的因素:
    路由擁塞(Routing Congestion):在放置宏單元時,需要考慮芯片上的路由通道,避免在某些區(qū)域放置過多的宏單元,導(dǎo)致路由通道擁塞,影響后續(xù)的布線。
    方向(Orientation):宏單元可以有不同的放置方向。在放置時,需要根據(jù)宏單元的連接需求和芯片的整體布局來選擇最佳的方向,以減少信號線的長度和交叉,優(yōu)化布線。
    手動放置通常優(yōu)于自動放置(Manual usually better than Auto):雖然現(xiàn)代EDA工具可以自動放置宏單元,但在某些情況下,手動放置可以提供更好的布局和布線結(jié)果。手動放置允許設(shè)計(jì)者根據(jù)經(jīng)驗(yàn)和設(shè)計(jì)特定要求來進(jìn)行優(yōu)化。
    然后需要放置開關(guān):對于需要電源管理的電源域,需要放置電源開關(guān)(power switches),這些開關(guān)用于控制電源域的開啟和關(guān)閉。放置時需要考慮開關(guān)的位置,以便于與電源域中的單元連接,并確保開關(guān)的動作不會影響其他電源域。

    接下來是多電壓域用到的模塊:Level Shifters,上篇文章我們已經(jīng)簡單介紹過,具體的內(nèi)容大家可能需要學(xué)習(xí)一些模擬IC的東西才能掌握清楚,這里簡單看一下即可。

    為了提高能效比,設(shè)計(jì)師通常會將芯片劃分為多個電源域,每個電源域可以在不需要時關(guān)閉電源,從而降低整體功耗。這也就是Power Gating。

    到目前為止,我們已經(jīng)大概了解了多電壓域的一些東西。我們?nèi)绾味x它們?用的比較多的是UPF文件格式。這一部分大家可以自行搜索相關(guān)資料(B站直接搜UPF就有一些視頻),本門課程本質(zhì)還是一門通識課程,所以不會所有內(nèi)容都具體深入講解。

    3、Floorplanning

    我們首先看一下Floorplanning。其將邏輯描述(netlist)映射到物理描述(floorplan)。在這個過程中,設(shè)計(jì)師需要將抽象的邏輯設(shè)計(jì)轉(zhuǎn)換為具體的物理布局,確保設(shè)計(jì)的可行性、性能和可制造性。
    我們直接看Floorplan做了些什么內(nèi)容:
    Arrange the blocks on a chip:將芯片上的各種功能模塊(如處理器核心、內(nèi)存、模擬電路等)合理地放置在芯片上,以優(yōu)化性能和減少互連的復(fù)雜性。
    Decide the location of the I/O pads:確定芯片與外部通信的輸入/輸出端口(I/O pads)的位置,以便于與外部設(shè)備的連接,并考慮到信號完整性、電磁干擾(EMI)和熱管理等因素。
    Decide the location and number of the power pads:確定電源和地端口的位置和數(shù)量,以確保電源網(wǎng)絡(luò)的性能和效率,同時考慮到電源噪聲和芯片的功耗。
    Decide the type of power distribution:選擇合適的電源分配網(wǎng)絡(luò)類型,如全局電源網(wǎng)格、局部電源網(wǎng)格或電源島(power islands),以支持不同電源域的需求和低功耗設(shè)計(jì)。
    Decide the location and type of clock distribution:確定時鐘信號分布網(wǎng)絡(luò)的位置和類型,包括時鐘樹的布局和時鐘緩沖器的放置,以減少時鐘偏斜和時鐘抖動,保證時鐘信號的同步性和穩(wěn)定性。
    我們最終要達(dá)到一個什么要的目標(biāo)呢?實(shí)際上和綜合比較類似,讓芯片面積盡可能小,延遲盡可能低,盡可能減少路由擁塞。

    我們來看一個實(shí)際的例子:通過這個圖我們可以看到芯片的大小,金屬層的數(shù)量,接口信息,各種各樣的IP在哪個位置等等。Floorplan的周圍是芯片PAD。PAD實(shí)際上指的是芯片引腳的一塊金屬,通過它可以將芯片焊接在電路板上。

    我們接著看Floorplanning的輸入和輸出。這一部分我就不一一解釋了,相信大家能夠看懂。我重點(diǎn)講一下什么是Design ready for standard cell placement。
    在完成Floorplan以后,芯片的整體布局已經(jīng)確定,包括宏單元(如處理器核心、內(nèi)存塊等)的位置、I/O端口的位置、電源和時鐘分布網(wǎng)絡(luò)等。此時我們的標(biāo)準(zhǔn)Cell怎么放還沒確定下來,所以Floorplan的下一步將會是Place。
    其實(shí)Floorplan已經(jīng)完成了一定的Place工作,通俗來講,F(xiàn)loorplanning 關(guān)注的是芯片的宏觀布局,而 Placement 關(guān)注的是邏輯單元的微觀布局。Floorplanning 為 Placement 提供了一個基本的設(shè)計(jì)框架,而 Placement 則在這個框架內(nèi)進(jìn)行詳細(xì)的設(shè)計(jì)優(yōu)化

    我們鞏固一下概念,通過下面這個圖,結(jié)合上面的講解,相信大家可以理解Floorplanning和Placement的區(qū)別?梢哉f二者確實(shí)有很多共同之處,Placement是在Floorplanning的基礎(chǔ)之下進(jìn)行的。

    我們再來看一下什么是IO RING。I/O RING(I/O 環(huán))是指芯片封裝邊緣上的一個環(huán)形區(qū)域,其中包含了芯片與外部世界通信的輸入/輸出(I/O)引腳。這些引腳可以是數(shù)據(jù)信號、電源信號、接地信號或其他類型的信號。
    芯片的引腳分配通常由前端設(shè)計(jì)師決定,他們會根據(jù)芯片的邏輯功能和系統(tǒng)要求來規(guī)劃引腳。同時,物理設(shè)計(jì)工程師和封裝工程師也會參與進(jìn)來,因?yàn)樾枰紤]到引腳的物理實(shí)現(xiàn)、封裝的限制、信號完整性、電源和地分配、熱管理等因素。
    IO并不像摩爾定律一樣,呈現(xiàn)指數(shù)級別增長,IO的成本是很高的,非常占據(jù)面積。在floorplanning階段,對I/O引腳的規(guī)劃是一個非常關(guān)鍵和核心的步驟,需要考慮到信號連接、電源供應(yīng)以及整體系統(tǒng)設(shè)計(jì)的兼容性。
    有關(guān)IO RING我們先簡單看到這里,我們先看別的內(nèi)容。

    我們應(yīng)該如何選擇芯片的大小呢?下面這張圖告訴我們,我們的芯片不可避免的會出現(xiàn)“Core limited"和”Pad Limited"的情況。(左邊那個中心區(qū)域不夠用,右邊PAD不夠用)

    所以為了量化這一點(diǎn),我們要引入一個指標(biāo),利用率Utilization。通俗來講就是盡可能把能用的面積都利用上,避免浪費(fèi)。當(dāng)然利用率特別高的時候,會存在一些路由阻塞的問題。尤其是對于pin-dense的Cell,比如一個4選1的mux,它有6個pin,由于引腳數(shù)量較多,可能會在布局時占據(jù)較大的空間,從而導(dǎo)致其他邏輯單元的利用效率并不完全能反映芯片的實(shí)際面積需求。
    所以在考慮芯片面積時,僅僅通過邏輯單元的利用率來確定是不夠的。設(shè)計(jì)者需要考慮到多路復(fù)用器等具有密集引腳的單元可能會占據(jù)更多的空間,從而影響芯片的整體布局和面積。在設(shè)計(jì)時需要綜合考慮這些因素,以確保芯片的布局既高效又滿足性能要求。

    此外在物理設(shè)計(jì)中,還應(yīng)該保證網(wǎng)表是唯一的。網(wǎng)表是唯一的意味著每個子模塊在網(wǎng)表中只能夠被引用一次,我們看下面這個例子。左邊那個圖,m1和m2因?yàn)槎际莂mod,其下面的例化都是u1。此時認(rèn)為amod子模塊被引用了兩次,也就是non-unique。因此在物理設(shè)計(jì)階段,會將兩個同時優(yōu)化,而不可以優(yōu)化其中一個固定另外一個。比如我們讓m1/u1變大一點(diǎn),此時m2/u1也會變大。因?yàn)閙1和m2調(diào)用的是一個sub-module,也就是amod。
    為了解決這個問題,將其中一個模塊叫做amod1,另外一個模塊叫做amod2,這樣sub-module的對應(yīng)就是唯一的了。這個過程叫做uniquifying the Netlist,實(shí)際上綜合工具會為我們做這一點(diǎn),因此大家只要了解即可。

    我們看一下如何擺Hard Macros。我們一般將其放在一側(cè),這樣剩下的形狀有利于后續(xù)的Placement進(jìn)行,就比如下圖的左側(cè)紅色線條包裹區(qū)域,這么一大片區(qū)域有助于后續(xù)的Placement。就好比蓋房子,最好是留下來一整塊的地方,而不是這里一點(diǎn),那里一點(diǎn)。
    擺好以后認(rèn)為它們已經(jīng)固定好了,后續(xù)不要再去改動這一部分Hard Macros。

    Placement Regions 指的是在芯片設(shè)計(jì)中為邏輯單元指定特定的放置區(qū)域或集群區(qū)域。有個時候我們希望可以根據(jù)具體的設(shè)計(jì)要求和目標(biāo)來指定 Placement Regions,以幫助布局和布線工具更好地實(shí)現(xiàn)設(shè)計(jì)目標(biāo)。P&R工具一般提供了下面的指導(dǎo)方式,具體看圖即可。

    還有一些地方我們不能放邏輯單元。Placement Blockages是芯片設(shè)計(jì)中需要特別注意的區(qū)域,這些區(qū)域不允許邏輯單元放置。例如,某些區(qū)域可能被用于電源和地網(wǎng)絡(luò)的布局,或者用于時鐘分布網(wǎng)絡(luò),或者因?yàn)橹圃旃に嚨南拗贫贿m合放置邏輯單元。在布局過程中,這些區(qū)域會被視為不可放置的障礙,布局和布線工具會避開這些區(qū)域。
    而Halos是一種布局策略,它涉及在芯片的邊緣或特定區(qū)域內(nèi)設(shè)置一個邊界,以限制邏輯單元的放置。設(shè)置 Halos 的目的是為了保護(hù)芯片的邊緣區(qū)域,防止邏輯單元過于靠近邊緣,從而影響芯片的封裝和性能。
    更加具體的分類我們直接看下圖即可。

    我們再看一個示意圖加深一下概念:

    類似的,還可以將這個概念引入到Routing。

    我們來總結(jié)一下,F(xiàn)loorplan中一些優(yōu)秀的設(shè)計(jì)思想:
    Single large core area:將邏輯核心區(qū)域(如處理器核心、內(nèi)存模塊等)設(shè)計(jì)為一個單一的大型區(qū)域,這樣可以減少互連的復(fù)雜性,提高性能;
    RAMS out of the way in the corner:將存儲器單元放置在芯片的角落或邊緣,這樣可以減少它們對核心邏輯區(qū)域的干擾,同時保持核心區(qū)域的連通性;
    Large routing channels:在芯片布局中保留寬大的布線通道,這樣可以減少布線擁塞,提高信號的傳輸效率;
    Avoid constrictive channels:避免在布局中創(chuàng)建狹窄的布線通道,這樣可以減少信號的延遲和干擾,提高信號質(zhì)量;
    Avoid many pins in the narrow channel:在布局中避免在狹窄的通道中放置太多的引腳,這樣可以減少布線沖突,提高信號的傳輸效率;
    Rotate for pin accessibility:根據(jù)引腳的訪問需求,考慮旋轉(zhuǎn)芯片的布局,以便于引腳的布局和布線;
    Pins away from corners:將引腳遠(yuǎn)離在芯片的邊緣或角落,這樣可以減少引腳與芯片邊緣的干擾,提高引腳的布局和布線效率;
    Use blockage to improve pin accessibility:在布局中使用blockage來改善引腳的訪問性,例如,將引腳放置在障礙物附近,以便于引腳的布局和布線;


    4、Hierarchical Design

    如果設(shè)計(jì)太大的話,我們可以將其分成多個Block。其具體如下圖右邊所述。我們可以看看Flat和Hierarchical的優(yōu)點(diǎn)和缺點(diǎn):
    Flat Design:
    優(yōu)點(diǎn):
    簡單直觀,易于理解和維護(hù)。整個設(shè)計(jì)是一個單一的實(shí)體,不需要額外的層次結(jié)構(gòu);
    缺點(diǎn):當(dāng)設(shè)計(jì)變得非常大時,可能需要更長的運(yùn)行時間,因?yàn)樾枰幚泶罅康臄?shù)據(jù),可能需要更多的內(nèi)存來運(yùn)行EDA工具;
    設(shè)計(jì)更改(ECO,Engineering Change Order)的周轉(zhuǎn)時間可能較長,因?yàn)樾枰匦路治稣麄設(shè)計(jì)
    Hierarchical Design:
    優(yōu)點(diǎn):
    設(shè)計(jì)可以被分割成更小的、易于管理的部分,這些部分可以獨(dú)立地分析和優(yōu)化;
    運(yùn)行時間更快,因?yàn)橹恍枰幚懋?dāng)前工作區(qū)域的數(shù)據(jù);
    內(nèi)存需求較低,因?yàn)椴恍枰鎯φ麄設(shè)計(jì)的數(shù)據(jù);
    設(shè)計(jì)重用更加容易,因?yàn)榭梢詥为?dú)替換或修改某個子模塊。
    缺點(diǎn):層次結(jié)構(gòu)可能使得全芯片時序收斂變得更加困難,因?yàn)樾枰_保所有子模塊的時序都能滿足要求;
    設(shè)計(jì)規(guī)劃需要更加密集,因?yàn)樾枰幚矶鄠層次的反饋和重用;
    需要生成feedthrough、repeater insertiom、timing constraint budgeting等,這些都是確保時序收斂的關(guān)鍵步驟;


    我們來看一下層次化設(shè)計(jì)中的時間預(yù)算問題。如果采用整體設(shè)計(jì)的話,所有的設(shè)計(jì)都是一個整體,只需要確定一組input delay和output delay即可。但如果采用層次化設(shè)計(jì)的話,要注意這些問題。
    芯片級約束映射到塊級約束:在層次化設(shè)計(jì)中,芯片級的時序約束需要正確地映射到各個塊級約束。例如,如果芯片級時序要求某個關(guān)鍵路徑的時延不超過某個值,那么這個約束需要被分解并分配給相關(guān)的塊級時序約束。同樣,I/O約束也需要被正確地映射到塊級約束,以確保芯片的I/O端口能夠滿足設(shè)計(jì)要求。
    接口邏輯模型(Interface Logic Models, ILMs):ILMs 是一種簡化設(shè)計(jì)時間和資源的方法,它允許設(shè)計(jì)者使用簡化的模型來表示復(fù)雜的接口邏輯。它可以快速地評估接口邏輯對時序的影響,而不需要詳細(xì)地分析整個設(shè)計(jì)。使用 ILMs 可以顯著加快設(shè)計(jì)時間。我們直接看下面這個圖,原本的網(wǎng)表是比較復(fù)雜的,這里將中間的邏輯都簡化了,僅僅剩下入口和出口,還有直通邏輯。

    我們再來看一看Pin的規(guī)劃。對于Pin,我們要使用相應(yīng)的約束,這些約束包括以下參數(shù):層(Layers):指定引腳所在的層,如信號層、電源層、接地層等。間距(Spacing):指定引腳之間的最小間距,以確保電氣隔離和防止短路。大。⊿ize):指定引腳的物理尺寸,如寬度、長度等。重疊(Overlap):指定引腳與其他元素(如布線、電源和地線等)的重疊要求,以避免電氣沖突。
    Pin constraints 還包括以下內(nèi)容:網(wǎng)絡(luò)組(Net groups):將具有相似特性或連接需求的引腳分組,以便于布局和布線工具進(jìn)行處理。引腳指南(Pin guides):指定引腳的放置方向和位置,以指導(dǎo)自動布局工具的放置。
    Pin可使用以下兩種優(yōu)先級的約束:基于放置的約束(Placement based):使用飛線(flightlines)來指導(dǎo)引腳的放置,確保它們在芯片上的布局符合特定的規(guī)則;诓季的約束(Route based):指定嘗試布線(trial route)和邊界交叉(boundary crossings),以指導(dǎo)引腳的布線路徑。

    Feedthrough路徑定義從頂層I/O引腳進(jìn)入和穿過Block,以減少長路由和擁塞。中繼器需要被添加到這些路徑中,以保持信號強(qiáng)度并避免max slew和扇出違規(guī)。

    5、Power Planning我們再來看一個重要的話題,Power Planning,中文名一般叫做電源規(guī)劃。其基本可以認(rèn)為是Floorplanning的一部分。(大部分電源規(guī)劃可能已在Floorplanning階段完成,但在Placement階段也可能需要進(jìn)行一些細(xì)致的調(diào)整。例如,為了滿足特定模塊或邏輯塊的電流需求,可能需要添加額外的電源或地連接。)
    初步Power Planning主要包括:
    電源網(wǎng)格設(shè)計(jì)(Power Grids):創(chuàng)建電源和地網(wǎng)格來提供電流和參考電壓。
    電源環(huán)(Power Rings):在芯片外圍設(shè)計(jì)電源環(huán),用于電源和地的分發(fā)。
  • 電源鋪墊(Power Pads):確定用于外部電源連接的電源和地鋪墊的位置。


    Power planning 的目標(biāo)是在芯片上創(chuàng)建一個高效的電源和地網(wǎng)絡(luò),以確保電源和地能夠有效地分布到芯片的各個部分,同時考慮到電源噪聲和信號完整性。

    我們來具體看一下什么是IR-Drop。IR Drop 是指在電源線(power line)長度上,由于電源線電阻導(dǎo)致的電源電壓(supply voltage)下降。IR Drop 是電源規(guī)劃和設(shè)計(jì)中需要考慮的一個重要因素,因?yàn)樗鼤绊懙叫酒男阅芎涂煽啃浴?br /> 我們應(yīng)該怎么分析這個問題呢?通常采用矩陣的方式進(jìn)行求解。
    電阻矩陣的構(gòu)建:在電源網(wǎng)絡(luò)中,電源線和電源層之間存在電阻,這些電阻會導(dǎo)致電壓下降。設(shè)計(jì)者需要構(gòu)建一個電阻矩陣,其中包含電源網(wǎng)絡(luò)中每個節(jié)點(diǎn)的電阻值。
    平均電流的考慮:每個邏輯門的平均電流是計(jì)算 IR Drop 的重要參數(shù)。設(shè)計(jì)者需要考慮每個邏輯門的平均電流,以計(jì)算在電源線上的電壓下降。
    矩陣求解:一旦構(gòu)建了電阻矩陣并考慮了平均電流,設(shè)計(jì)者可以使用矩陣求解的方法來計(jì)算每個節(jié)點(diǎn)上的電流。通過矩陣求解,設(shè)計(jì)者可以確定電源線上的電壓下降,即 IR Drop。

    我們再來看一個概念,電遷移。在集成電路后段會部署大量金屬連線結(jié)構(gòu),本來這些金屬連線的作用就是讓電子遷移,實(shí)現(xiàn)導(dǎo)電。但反過來,電子的流動會造成金屬材料遷移,最終導(dǎo)線被“掐斷”:

    這種現(xiàn)象就叫做電遷移,其可通過形成空隙或小丘來改變導(dǎo)體的物理結(jié)構(gòu),從而導(dǎo)致短路、開路、性能劣化或設(shè)備故障。隨著流經(jīng)互連器件的電流密度增大,電遷移率也隨之增加,這使得電遷移成為一個失控過程。事實(shí)上,電遷移是電路故障的主要原因。
    為了避免電子組件中金屬遷移所帶來的失敗和危險,芯片設(shè)計(jì)人員可以采用以下幾種方法:
    增加互連寬度,以降低電流密度。
    使用具有高電遷移耐力的材料,如金和銅。
    使用冗余通孔來分流電流強(qiáng)度。
    減少互連器件之間的間距。
    設(shè)計(jì)低電壓水平的電路。
    [/ol]

    Power Distribution Network(PDN)是芯片設(shè)計(jì)中的一個關(guān)鍵組成部分,其功能包括:
    從焊盤(pads)向芯片上的晶體管傳輸電流:PDN負(fù)責(zé)將電流從芯片的輸入/輸出(I/O)端口傳輸?shù)叫酒瑑?nèi)部的邏輯單元。
    保持電壓穩(wěn)定并降低噪聲:PDN設(shè)計(jì)需要確保芯片的電壓穩(wěn)定,以支持邏輯單元的正常工作。同時,它還需要降低電源噪聲,以避免對芯片性能的影響。
    提供平均和峰值功率需求:PDN需要能夠滿足芯片在正常操作和峰值負(fù)載下的功率需求。
    為信號提供電流返回路徑:PDN設(shè)計(jì)需要確保芯片上的信號可以有效地返回電源和地,以支持信號的正確傳輸和處理。
    避免電遷移(electromigration)和自加熱導(dǎo)致的磨損:PDN設(shè)計(jì)需要考慮電源線和地線的布局,以減少電遷移和自加熱導(dǎo)致的材料損壞和壽命縮短。
    占用芯片面積和線寬最。篜DN設(shè)計(jì)需要優(yōu)化電源線和地線的布局,以最小化對芯片面積和線寬的占用。
    易于布局:PDN設(shè)計(jì)需要考慮到布線的便利性,以便于后續(xù)的布局和布線工作。
    我們還可以看到,更寬的Power Lines,可以降低IR DROP,可以減少電遷移。但同時會導(dǎo)致routing變得困難。

    我們來看一個實(shí)際的例子。假設(shè)在金屬層1有一個1毫米長的電源軌,我們根據(jù)給出的條件可以算出其電阻為1000歐姆。進(jìn)而求出對應(yīng)的IR DROP。由于電遷移會導(dǎo)致電源軌的電阻增加,從而引起IR Drop,因此需要采取措施來減少這種影響。
    一種方法是增加電源軌的寬度,這樣可以降低電流密度,從而減少電遷移的影響。另一種方法是增加電源軌的厚度,因?yàn)楦竦碾娫窜壙梢猿惺芨叩碾娏髅芏取>C合考慮,設(shè)計(jì)者通常會盡可能地使電源軌寬和厚,以減少電遷移和IR Drop的影響。

    下圖是一個實(shí)際的圖片,在增加寬度以后,IR DROP效應(yīng)變小了。

    我們再來看一下電源和地網(wǎng)絡(luò)的一些設(shè)計(jì)規(guī)則。
    電源和地信號的連接:
    每個標(biāo)準(zhǔn)單元或宏單元都需要與電源和地信號連接,以確保它們能夠從電源源(如電源分配網(wǎng)絡(luò))接收所需的電壓。
    電源/地網(wǎng)格(Power/Ground mesh):
    電源/地網(wǎng)格允許電源和地信號通過多個路徑從源到達(dá)目的地,這樣可以減少串聯(lián)電阻,提高電源和地網(wǎng)絡(luò)的性能。
    電源/地網(wǎng)格從高層金屬層到低層金屬層,形成一個層次化的網(wǎng)絡(luò),以提供有效的電源和地分布。
    在不同層之間需要多個通孔(vias)來連接電源和地網(wǎng)絡(luò)。
    電源和地布線的規(guī)則性:
    電源和地布線通常是比較規(guī)則的,因?yàn)樗鼈冃枰谡麄芯片上均勻分布,以提供穩(wěn)定的電源和地參考。
    電源和地布線資源的預(yù)留:
    由于電源和地布線是芯片設(shè)計(jì)中的基礎(chǔ),因此通常會預(yù)留足夠的布線資源來確保電源和地網(wǎng)絡(luò)的性能。


    我們再來看一下Power Routing中的一些經(jīng)典方法:

    我們再來看一下電源網(wǎng)絡(luò)中的一些權(quán)衡點(diǎn):


    最后我們做一個總結(jié),如何在Cadence的EDA工具Innovus中做FLoorplanning:



    系列文章入口——
    【芯片設(shè)計(jì)】SoC 101(一):緒論
    【芯片設(shè)計(jì)】FIFO漫談(零)從無處不在的FIFO開始說起
    【芯片設(shè)計(jì)】計(jì)算機(jī)體系結(jié)構(gòu)(一)虛擬內(nèi)存
    【芯片設(shè)計(jì)】深入理解AMBA總線(零)緒論
    【芯片設(shè)計(jì)】握手協(xié)議的介紹與時序說明
    【芯片設(shè)計(jì)】復(fù)位那些小事 —— 復(fù)位消抖
    【芯片設(shè)計(jì)】快速入門數(shù)字芯片設(shè)計(jì)UCSD ECE111(一)Introduction
    【芯片驗(yàn)證】UVM源碼計(jì)劃(零)下定決心讀源碼前的自測環(huán)節(jié)
    【芯片設(shè)計(jì)】異步電路碎碎念(一) 到底什么是異步電路
    【芯片設(shè)計(jì)】從RTL到GDS(一):Introduction
    其他文章鏈接——
    【芯片驗(yàn)證】sva_assertion: 15道助力飛升的斷言練習(xí)
    【芯片驗(yàn)證】可能是RTL定向驗(yàn)證的巔峰之作
    【芯片驗(yàn)證】RTL仿真中X態(tài)行為的傳播 —— 從xprop說起
    【芯片驗(yàn)證】年輕人的第一個systemVerilog驗(yàn)證環(huán)境全工程與解析
    【芯片設(shè)計(jì)】verilog中有符號數(shù)和無符號數(shù)的本質(zhì)探究
    【芯片設(shè)計(jì)】論RTL中always語法的消失術(shù)
    【芯片設(shè)計(jì)】代碼即注釋,注釋即代碼
    【芯片設(shè)計(jì)】700行代碼的risc處理器你確實(shí)不能要求太多了
    入職芯片開發(fā)部門后,每天摸魚之外的時間我們要做些什么呢
    如何計(jì)算系統(tǒng)的outstanding 和 burst length?
    芯片搬磚日!け扑缽(qiáng)迫癥的關(guān)鍵詞不對齊事件
    熟人社會里,一群沒有社會價值的局外人
  • 本帖子中包含更多資源

    您需要 登錄 才可以下載或查看,沒有賬號?立即注冊

    x
    回復(fù)

    使用道具

    發(fā)表回復(fù)

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表