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

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

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

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
匿名  發(fā)表于 2024-9-13 11:58:00 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本篇文章將進(jìn)入芯片的Physical Domain,后面的幾篇文章也都是物理設(shè)計(jì)相關(guān)的內(nèi)容,本系列文章側(cè)重于從電路的角度去思考,而不是從EDA的領(lǐng)域思考,對(duì)這方面的實(shí)現(xiàn)算法特別感興趣的可以看EDA相關(guān)的課程。本篇文章有一些圖片也來自下面這兩個(gè)知乎文章介紹的一些課程(請(qǐng)見閱讀原文),不一一說明了,在此表示感謝。接下來進(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í)序分析、功耗分析、信號(hào)完整性分析、熱分析等多個(gè)方面。后端設(shè)計(jì)工程師需要確保芯片的物理設(shè)計(jì)滿足所有性能和制造的要求。
1.1、Floorplanning我們看一下后端每一步的流程。物理設(shè)計(jì)的基石,同時(shí)也是第一步,便是Floorplanning,中文名一般叫做布局規(guī)劃。這個(gè)過程包括了對(duì)設(shè)計(jì)中較大的或重要的部分進(jìn)行空間分配和布局決策,比如數(shù)字、模擬電路的位置、面積、形狀等的規(guī)劃,更具體點(diǎn),比如各種IP核、輸入輸出、電源網(wǎng)絡(luò)、特殊的線路等的大致位置所在。

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

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

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


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

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


    2、A bit about Multiple Voltage Domains

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

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

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

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

    3、Floorplanning

    我們首先看一下Floorplanning。其將邏輯描述(netlist)映射到物理描述(floorplan)。在這個(gè)過程中,設(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è)備的連接,并考慮到信號(hào)完整性、電磁干擾(EMI)和熱管理等因素。
    Decide the location and number of the power pads:確定電源和地端口的位置和數(shù)量,以確保電源網(wǎng)絡(luò)的性能和效率,同時(shí)考慮到電源噪聲和芯片的功耗。
    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:確定時(shí)鐘信號(hào)分布網(wǎng)絡(luò)的位置和類型,包括時(shí)鐘樹的布局和時(shí)鐘緩沖器的放置,以減少時(shí)鐘偏斜和時(shí)鐘抖動(dòng),保證時(shí)鐘信號(hào)的同步性和穩(wěn)定性。
    我們最終要達(dá)到一個(gè)什么要的目標(biāo)呢?實(shí)際上和綜合比較類似,讓芯片面積盡可能小,延遲盡可能低,盡可能減少路由擁塞。

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

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

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

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

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

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

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

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

    Placement Regions 指的是在芯片設(shè)計(jì)中為邏輯單元指定特定的放置區(qū)域或集群區(qū)域。有個(gè)時(shí)候我們希望可以根據(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ò)的布局,或者用于時(shí)鐘分布網(wǎng)絡(luò),或者因?yàn)橹圃旃に嚨南拗贫贿m合放置邏輯單元。在布局過程中,這些區(qū)域會(huì)被視為不可放置的障礙,布局和布線工具會(huì)避開這些區(qū)域。
    而Halos是一種布局策略,它涉及在芯片的邊緣或特定區(qū)域內(nèi)設(shè)置一個(gè)邊界,以限制邏輯單元的放置。設(shè)置 Halos 的目的是為了保護(hù)芯片的邊緣區(qū)域,防止邏輯單元過于靠近邊緣,從而影響芯片的封裝和性能。
    更加具體的分類我們直接看下圖即可。

    我們?cè)倏匆粋(gè)示意圖加深一下概念:

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

    我們來總結(jié)一下,F(xiàn)loorplan中一些優(yōu)秀的設(shè)計(jì)思想:
    Single large core area:將邏輯核心區(qū)域(如處理器核心、內(nèi)存模塊等)設(shè)計(jì)為一個(gè)單一的大型區(qū)域,這樣可以減少互連的復(fù)雜性,提高性能;
    RAMS out of the way in the corner:將存儲(chǔ)器單元放置在芯片的角落或邊緣,這樣可以減少它們對(duì)核心邏輯區(qū)域的干擾,同時(shí)保持核心區(qū)域的連通性;
    Large routing channels:在芯片布局中保留寬大的布線通道,這樣可以減少布線擁塞,提高信號(hào)的傳輸效率;
    Avoid constrictive channels:避免在布局中創(chuàng)建狹窄的布線通道,這樣可以減少信號(hào)的延遲和干擾,提高信號(hào)質(zhì)量;
    Avoid many pins in the narrow channel:在布局中避免在狹窄的通道中放置太多的引腳,這樣可以減少布線沖突,提高信號(hào)的傳輸效率;
    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ì)太大的話,我們可以將其分成多個(gè)Block。其具體如下圖右邊所述。我們可以看看Flat和Hierarchical的優(yōu)點(diǎn)和缺點(diǎn):
    Flat Design:
    優(yōu)點(diǎn):
    簡(jiǎn)單直觀,易于理解和維護(hù)。整個(gè)設(shè)計(jì)是一個(gè)單一的實(shí)體,不需要額外的層次結(jié)構(gòu);
    缺點(diǎn):當(dāng)設(shè)計(jì)變得非常大時(shí),可能需要更長(zhǎng)的運(yùn)行時(shí)間,因?yàn)樾枰幚泶罅康臄?shù)據(jù),可能需要更多的內(nèi)存來運(yùn)行EDA工具;
    設(shè)計(jì)更改(ECO,Engineering Change Order)的周轉(zhuǎn)時(shí)間可能較長(zhǎng),因?yàn)樾枰匦路治稣麄(gè)設(shè)計(jì)
    Hierarchical Design:
    優(yōu)點(diǎn):
    設(shè)計(jì)可以被分割成更小的、易于管理的部分,這些部分可以獨(dú)立地分析和優(yōu)化;
    運(yùn)行時(shí)間更快,因?yàn)橹恍枰幚懋?dāng)前工作區(qū)域的數(shù)據(jù);
    內(nèi)存需求較低,因?yàn)椴恍枰鎯?chǔ)整個(gè)設(shè)計(jì)的數(shù)據(jù);
    設(shè)計(jì)重用更加容易,因?yàn)榭梢詥为?dú)替換或修改某個(gè)子模塊。
    缺點(diǎn):層次結(jié)構(gòu)可能使得全芯片時(shí)序收斂變得更加困難,因?yàn)樾枰_保所有子模塊的時(shí)序都能滿足要求;
    設(shè)計(jì)規(guī)劃需要更加密集,因?yàn)樾枰幚矶鄠(gè)層次的反饋和重用;
    需要生成feedthrough、repeater insertiom、timing constraint budgeting等,這些都是確保時(shí)序收斂的關(guān)鍵步驟;


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

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

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

    5、Power Planning我們?cè)賮砜匆粋(gè)重要的話題,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)建一個(gè)高效的電源和地網(wǎng)絡(luò),以確保電源和地能夠有效地分布到芯片的各個(gè)部分,同時(shí)考慮到電源噪聲和信號(hào)完整性。

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

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

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

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

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

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

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


    我們?cè)賮砜匆幌翽ower Routing中的一些經(jīng)典方法:

    我們?cè)賮砜匆幌码娫淳W(wǎng)絡(luò)中的一些權(quán)衡點(diǎn):


    最后我們做一個(gè)總結(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í)序說明
    【芯片設(shè)計(jì)】復(fù)位那些小事 —— 復(fù)位消抖
    【芯片設(shè)計(jì)】快速入門數(shù)字芯片設(shè)計(jì)UCSD ECE111(一)Introduction
    【芯片驗(yàn)證】UVM源碼計(jì)劃(零)下定決心讀源碼前的自測(cè)環(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)證】年輕人的第一個(gè)systemVerilog驗(yàn)證環(huán)境全工程與解析
    【芯片設(shè)計(jì)】verilog中有符號(hào)數(shù)和無符號(hào)數(shù)的本質(zhì)探究
    【芯片設(shè)計(jì)】論RTL中always語法的消失術(shù)
    【芯片設(shè)計(jì)】代碼即注釋,注釋即代碼
    【芯片設(shè)計(jì)】700行代碼的risc處理器你確實(shí)不能要求太多了
    入職芯片開發(fā)部門后,每天摸魚之外的時(shí)間我們要做些什么呢
    如何計(jì)算系統(tǒng)的outstanding 和 burst length?
    芯片搬磚日!け扑缽(qiáng)迫癥的關(guān)鍵詞不對(duì)齊事件
    熟人社會(huì)里,一群沒有社會(huì)價(jià)值的局外人
  • 本帖子中包含更多資源

    您需要 登錄 才可以下載或查看,沒有賬號(hào)?立即注冊(cè)

    x
    回復(fù)

    使用道具

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

    本版積分規(guī)則

    關(guān)閉

    站長(zhǎng)推薦上一條 /1 下一條


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