0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

談?wù)勑酒械膶哟位脑O(shè)計(jì)(hierarchy design)

sanyue7758 ? 來源:艾思后端實(shí)現(xiàn) ? 2023-10-18 16:09 ? 次閱讀

層次化設(shè)計(jì)適當(dāng)下非常流行的設(shè)計(jì)思路,隨著芯片的規(guī)模越來越大,fullchip的數(shù)據(jù)量和復(fù)雜度和過去已經(jīng)不能同日而語了,無論是工具的runtime還是QoR,直接完成full-chip的工作越來越不現(xiàn)實(shí)。所以,在這里,就需要引入 層次化的設(shè)計(jì)(hierarchy design) 的概念,

從芯片的規(guī)劃開始,層次化的理念貫穿整個(gè)設(shè)計(jì)流程,下面的各個(gè)設(shè)計(jì)方面都會(huì)受到不同程度的影響

RTL
UPF
verification
DFT
Timing constraint
synthesis
EC
layout
STA
stream-out
layout verification
Power analysis

一個(gè)項(xiàng)目的開始,需要根據(jù)實(shí)際的需要確定層次,這主要是基于模塊功能規(guī)模,一起來看下面這個(gè)實(shí)例

wKgZomUvkseAKKElAADh8YzDQ7A180.jpg

wKgaomUvkviAGMxFAACjLVunxHA960.jpg

可以看出,從整個(gè)SOC的設(shè)計(jì)當(dāng)中,主要的partition分割是兩種,top和none-top。理論上講,所有的none-top,互相之間都沒有依賴關(guān)系(dependency),除非它本身也是一個(gè)小top,具體可見下面的示例:

1fda3a0e-6d8d-11ee-939d-92fbcf53809c.jpg

這里的top和sub-top_1就是所謂的hierarchy design,在一個(gè)芯片里邊,top通常只有一個(gè),但是可能會(huì)有多個(gè)sub-top,甚至是sub-sub-top,這取決于芯片層次化的深度和芯片的復(fù)雜度??梢灶A(yù)見,層次化越多,單個(gè)partition的復(fù)雜度會(huì)降低,但是給top的partition劃分帶來了更多的工作量,譬如

UPF
SDC
physical partition boundary

還有一個(gè)影響就是dependency,所有的sub-top,都和top一樣,在后端實(shí)現(xiàn)的時(shí)候(synthesis/layout),任何的top的后端工作,都需要sub partition的支持,譬如上圖,要想開始sub-top1的synthesis,就必須先要完成 sub_par_1_1,sub_par_1_2,sub_par_1_3的綜合工作。

這就是runtime的瓶頸。實(shí)際項(xiàng)目中,為了減少這方面的影響,通常都會(huì)有一些變通的手段,來快速支持頂層設(shè)計(jì),這個(gè)小技巧的具體細(xì)節(jié),也會(huì)在本系列文章里邊提及。

業(yè)界里邊還有一種更為前衛(wèi)的partition的設(shè)計(jì),被稱為abut-partition的設(shè)計(jì),簡(jiǎn)單的講就是沒有top的概念,所有的partition都是完全貼合的,譬如下面這個(gè)floorplan的partition的框圖

1fe04d36-6d8d-11ee-939d-92fbcf53809c.png

這種架構(gòu)更為簡(jiǎn)練,所有的設(shè)計(jì)全部都推到了partition,從物理實(shí)現(xiàn)上來講,top level已經(jīng)不包含任何的leaf cell,所有的存在就是一些連線關(guān)系、PG、terminal以及co-design routing了,這種極簡(jiǎn)的abut設(shè)計(jì)有其優(yōu)越性,也有一些限制。

一個(gè)完整的層次化設(shè)計(jì),在代碼設(shè)計(jì)階段,就應(yīng)該樹立層次化的理念。這里邊主要由以下幾個(gè)考量

簡(jiǎn)化大規(guī)模設(shè)計(jì)的必經(jīng)之路
后端實(shí)現(xiàn)的真實(shí)需求
驗(yàn)證和設(shè)計(jì)的一致性
相關(guān)配套、支持文件的參照點(diǎn)(SDC、UPF等等)

從架構(gòu)入手,合理分布RTL的層次結(jié)構(gòu),讓整個(gè)設(shè)計(jì)看起來張弛有道。這個(gè)思路體現(xiàn)如下

1fee0eee-6d8d-11ee-939d-92fbcf53809c.gif

前端設(shè)計(jì)人員按照下面的思路過程來設(shè)計(jì)代碼

完成inst1的模塊代碼設(shè)計(jì)

完成inst1的內(nèi)部連線

完成inst2的模塊代碼設(shè)計(jì)

完成inst2的內(nèi)部連線

完成top-level的模塊代碼設(shè)計(jì)

完成top-level的連線

可以看到,這里邊涉及了三個(gè)部分的設(shè)計(jì)

inst1

inst2

top-level

通常來講,合理的分配各個(gè)模塊可以加速full-chip的收斂。從上面的例子可以看出,top-level的東西比較簡(jiǎn)單,只有一個(gè)控制邏輯和PAD,主要的功能都在子模塊里邊,這樣的好處是非常明顯的

子模塊的實(shí)際內(nèi)容多,但是總體規(guī)模不會(huì)很大,綜合和版圖的可控性會(huì)很好

相互關(guān)聯(lián)密切的功能IP封裝在一個(gè)模塊里,有利于時(shí)序收斂和后端工具優(yōu)化

top-level的主要用途就是穿線,以及中心控制和PAD等等,有利于整體功能布局的規(guī)劃,主要精力要放到interface的時(shí)序上,以及可繞通性。

每一個(gè)模塊都有一套自己獨(dú)立的文件結(jié)構(gòu),譬如inst1對(duì)應(yīng)的是design1,整個(gè)design1的文件架構(gòu)類似如下:

1ff7e996-6d8d-11ee-939d-92fbcf53809c.png

有了這些文件,design1的綜合就可以開始了。綜合的流程通常比較簡(jiǎn)單,這里不做過多的討論,基本流程可以參見下面的列表

HDL analysis 和 elaboration

read_sdc和read_upf 以及一些基礎(chǔ)配置

運(yùn)行compile_ultra和DFT insertion

創(chuàng)建Block Abstraction view

生成DDC和網(wǎng)表

重要的第四步時(shí)一定要執(zhí)行的,這里生成了后面層次化設(shè)計(jì)的重要信息。

對(duì)應(yīng)的,這里也列一下inst2(design2)的文件目錄結(jié)構(gòu)

1ffedd00-6d8d-11ee-939d-92fbcf53809c.jpg

使用綜合器,分別可以得到下面的文件

design1.ddc 和 design1.v

design2.ddc 和 design1.v

基于不同的DCT/DCG環(huán)境,可以開始根植于如下目錄結(jié)構(gòu)的頂層綜合

20056d32-6d8d-11ee-939d-92fbcf53809c.png

頂層綜合的思路會(huì)有一些不同,具體流程如下

配置block implementation的狀態(tài)

讀入底層帶有Block Abstraction的DDC(不要讀入子模塊netlist,會(huì)導(dǎo)致非常多的困惑),工具回顯如下例

200b4cde-6d8d-11ee-939d-92fbcf53809c.png

HDL analysis 只分析top-level的verilog,譬如:top_ctrl_design.v、PAD_design.v 、designFC.v

elaboration的時(shí)候,一定要注意一下子模塊的鏈接狀態(tài),保證模塊信息都可以被正確掛載進(jìn)來

在保證link無誤的情況下,讀入designFC.sdc和designFC.upf,運(yùn)行compile_ultra和DFT insertion

生成DDC和網(wǎng)表,完成top-level的綜合

對(duì)應(yīng)的,在做層次化的設(shè)計(jì)的時(shí)候, 需要注意下面的事項(xiàng):

調(diào)用底層模塊的時(shí)候,一定要使用帶有block Abstraction的DDC,DDC里邊包含了block的

時(shí)序約束信息

UPF信息

時(shí)鐘結(jié)構(gòu)信息

邊界時(shí)序信息

top-level的UPF只有頂層的low power需求

頂層的LS、ISOLATION的需求,如果被約束的cell在頂層

頂層和block的PG連接關(guān)系

top-level的SDC包含了整個(gè)top-level和block-level的時(shí)序約束

頂層的SDC一定要和block的SDC,在block級(jí)別呈現(xiàn)出高度的一致性,譬如純粹block 內(nèi)部的MCP、false path等等

如果時(shí)鐘的源頭在頂層,block級(jí)別的clock無需二次聲明,譬如下面示例

20118c66-6d8d-11ee-939d-92fbcf53809c.png

在design1/desing2綜合的時(shí)候,分別在各自的sdc里邊定義pclk,如果把視角放到頂層,那么畫風(fēng)是這樣的

201701b4-6d8d-11ee-939d-92fbcf53809c.png

可以看到,從toplevel來看的話,以前的design1/design2的pclk,其實(shí)都是從top-level的pll驅(qū)動(dòng)的,在top-level構(gòu)建SDC的時(shí)候,只需要生命pll的clock就可以了(Pll_clk),剩下的就交給工具自動(dòng)衍生。

寫到這里,相信讀者們對(duì)層次化設(shè)計(jì)流程有一個(gè)比較具體的了解了。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • DDR
    DDR
    +關(guān)注

    關(guān)注

    11

    文章

    697

    瀏覽量

    64936
  • 芯片設(shè)計(jì)
    +關(guān)注

    關(guān)注

    15

    文章

    980

    瀏覽量

    54620
  • SoC芯片
    +關(guān)注

    關(guān)注

    1

    文章

    584

    瀏覽量

    34758
  • PHY
    PHY
    +關(guān)注

    關(guān)注

    2

    文章

    296

    瀏覽量

    51554
  • SDC
    SDC
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    15484

原文標(biāo)題:芯片中的層次化的設(shè)計(jì)(hierarchy design)

文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用層次式電路時(shí),發(fā)現(xiàn)Descend Hierarchy是灰色的,不可選

    使用層次式電路時(shí),發(fā)現(xiàn)Descend Hierarchy是灰色的,不可選,但是我的Implementation是設(shè)置過的,Descend Hierarchy還是灰色的,這是為什么???求高手解答
    發(fā)表于 11-15 17:00

    【AD問答 11】 怎么創(chuàng)建層次的原理圖形式

    本帖最后由 cooldog123pp 于 2020-3-30 14:27 編輯 隨著電路的日益復(fù)雜,電路的設(shè)計(jì)方法也是趨向層次結(jié)構(gòu)(Hierarchy)設(shè)計(jì)者可以先分別繪制及處理還每個(gè)子電路
    發(fā)表于 03-13 11:13

    層次式電路設(shè)計(jì)與平坦式電路設(shè)計(jì)的區(qū)別

    層次式電路設(shè)計(jì)(Hierarchical Design):通常是在設(shè)計(jì)比較復(fù)雜的電路和系統(tǒng)時(shí)采用的一種自上而下的電路設(shè)計(jì)方法,即首先在一張圖紙上設(shè)計(jì)電路總體框圖,然后再在另外層次圖紙上設(shè)計(jì)每個(gè)框圖
    發(fā)表于 08-20 09:54

    “按層次結(jié)構(gòu)使用”中的LUT數(shù)量不正確

    嗨,我正在使用“-detail”選項(xiàng)進(jìn)行MAP,并在MAP結(jié)束時(shí)獲得“按層次結(jié)構(gòu)使用”報(bào)告。在本報(bào)告中,頂層模塊“ref_design_v5lxt250_x1”的LUT數(shù)量為24953!|模塊|分區(qū)
    發(fā)表于 10-09 15:29

    映射報(bào)告怎么按層次結(jié)構(gòu)使用

    。在“按層次結(jié)構(gòu)使用”一章中列出了一些功能塊,但并非全部。使用硬件的總和也與工作表頂部的摘要不同。 (例如,根據(jù)摘要,使用了8個(gè)乘數(shù),但我在詳細(xì)列表中找不到任何使用過的乘數(shù))。是否有選項(xiàng)顯示所有
    發(fā)表于 10-15 11:50

    包含層次結(jié)構(gòu)窗口完全空白

    您好,我使用MPLAB X IDE V4.15i已經(jīng)打開了一個(gè)具有相當(dāng)復(fù)雜層次的包含文件的項(xiàng)目。它沒有錯(cuò)誤地構(gòu)建。當(dāng)我查看包含層次結(jié)構(gòu)窗口時(shí),如幫助文件中所描述的,窗口打開,但它是完全空白的。這發(fā)生
    發(fā)表于 10-18 15:55

    FPGA編輯器中的塊層次結(jié)構(gòu)不正確

    親愛的大家我的設(shè)計(jì)有一個(gè)靜態(tài)部分和兩個(gè)部分可重配置模塊。在FPGA編輯器中,我找到了一個(gè)空置站點(diǎn)并在那里添加了一個(gè)組件,然后將該組件連接到部分模塊的網(wǎng)絡(luò),但是我收到了以下錯(cuò)誤: - 塊層次結(jié)構(gòu)不正確
    發(fā)表于 11-09 11:36

    在Vivado 2015.2塊設(shè)計(jì)上打開子層次結(jié)構(gòu)彈出一個(gè)新的Block Design窗口

    假設(shè)我在Vivado 2015.2的Block Design中有三層設(shè)計(jì)。此塊設(shè)計(jì)看起來像Hierarchy_0(Hierarchy_1(Hierarchy_2))。當(dāng)我雙擊
    發(fā)表于 12-25 10:58

    層次結(jié)構(gòu)設(shè)計(jì)是否意味著將一個(gè)大模塊分成幾個(gè)子模塊?

    ;hierarchy design", which makes me a little confused. I have following questions;1. Does
    發(fā)表于 03-21 12:42

    Parametric_Hierarchy

    Parametric Hierarchy,好東西,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 02-18 16:34 ?0次下載

    層次設(shè)計(jì)方法講解

      層次設(shè)計(jì)是指在一個(gè)大型設(shè)計(jì)任務(wù)中,將目標(biāo)層分解,在各個(gè)層次上進(jìn)行設(shè)計(jì)的方法。
    的頭像 發(fā)表于 11-19 07:08 ?5562次閱讀

    談?wù)?/b>汽車芯片安全(下篇)

    繼《談?wù)?/b>汽車芯片安全-上篇》之后,本文針對(duì)芯片安全存儲(chǔ)、FOTA、安全診斷、安全運(yùn)行環(huán)境做了進(jìn)一步闡述。1.安全存儲(chǔ)1.1 OTP存儲(chǔ)器一次性可編程存儲(chǔ)器(On Chip One Time
    發(fā)表于 12-09 15:06 ?13次下載
    <b class='flag-5'>談?wù)?/b>汽車<b class='flag-5'>芯片</b>安全(下篇)

    芯片中的CP測(cè)試是什么

    芯片中的CP一般指的是CP測(cè)試,也就是晶圓測(cè)試(Chip Probing)。
    的頭像 發(fā)表于 07-12 17:00 ?1.6w次閱讀
    <b class='flag-5'>芯片中</b>的CP測(cè)試是什么

    芯片設(shè)計(jì)復(fù)雜性處理之層次結(jié)構(gòu)概念分析

     考慮當(dāng)今使用的層次結(jié)構(gòu)形式的最簡(jiǎn)單方法是要求工程師從概念上設(shè)計(jì)一個(gè)系統(tǒng)。他們可能會(huì)開始繪制一個(gè)包含大塊的框圖,其中包含 CPU、編碼器、顯示子系統(tǒng)等標(biāo)簽。這不是一個(gè)功能層次結(jié)構(gòu),盡管許多劃分的塊被認(rèn)為是提供功能的。這也不是純粹的結(jié)構(gòu)分解,因?yàn)樵?/div>
    發(fā)表于 11-22 09:59 ?854次閱讀
    <b class='flag-5'>芯片</b>設(shè)計(jì)復(fù)雜性處理之<b class='flag-5'>層次</b>結(jié)構(gòu)概念分析

    芯片中的存儲(chǔ)器有哪些

    芯片中的存儲(chǔ)器是芯片功能實(shí)現(xiàn)的重要組成部分,它們負(fù)責(zé)存儲(chǔ)和處理數(shù)據(jù)。根據(jù)功能、特性及應(yīng)用場(chǎng)景的不同,芯片中的存儲(chǔ)器可以分為多種類型。以下是對(duì)芯片中主要存儲(chǔ)器的詳細(xì)介紹。
    的頭像 發(fā)表于 07-29 16:55 ?642次閱讀