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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Vivado之實現(xiàn)布局布線流程介紹

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 2024-12-06 09:08 ? 次閱讀

一、前言

本文將介紹Vivado進行綜合,以及布局布線的內部流程,熟悉該流程后結合Settings中對應的配置選項,對于時序收斂調試將更具有針對性。

二、Implementation(實現(xiàn))

實現(xiàn)流程由一系列的子流程組成,包括:Design Initialization設計初始化、Opt Design設計優(yōu)化、Power Opt Design功率優(yōu)化【可選項】、Place Design布局、Post-Place Power Opt Design布局后期設計功率優(yōu)化【可選項】、Post-Place Phys Opt Design布局后期設計物理優(yōu)化【可選】、Route Design布線、Post-Route Phys Opt Design布線后期設計物理優(yōu)化【可選項】、Write Bitstream寫入比特流、Write Device Image寫入器件備份文件。

下面將重點介紹和布局布線相關的流程,其他簡略帶過。

Opt Design:對邏輯設計進行優(yōu)化,使其與器件匹配

Power Opt Design: 對設計的單元進行優(yōu)化從而降低功耗

Place Design:將設計布局到器件上

Post-Place Power Opt Design:在布局后進行進一步的優(yōu)化來降低功耗

Post-Place Phys Opt Design:對時序違例的路徑進行優(yōu)化

Route Design:對于布局后的設計進行布線

Post-Route Phys Opt Design:通過實際的布線延時值進行邏輯,布局,布線優(yōu)化

Write Bitstream :生成器件配置的比特流

Write Device Image:生成器件備份文件

三、布局布線

3.1 Placement(布局)

布局通俗理解就是布局器會將來自網表的單元布局到芯片的確定位置,可細分為7個子流程。

3.1.1 設計布局優(yōu)化

布局優(yōu)化對象主要是時序違例路徑較大的單元,線長較大的部分以及通過監(jiān)控引腳密度來提前進行布局分散從而避免后期布線擁塞

3.1.2 設計規(guī)則檢查

開始布局前,會先進行設計規(guī)則檢測DRC,DRC有兩類,一類是用戶在report_drc中設置的規(guī)則,另一類是軟件自定義的規(guī)則,如存儲器IP單元沒有進行位置約束或者是IO banks和IO標準沖突

3.1.3 布局時鐘單元和I/O

完成DRC后,布局器會優(yōu)先布局時鐘單元和I/O單元。時鐘和I/O一般是同時進行布局的,因為在指定器件中,布局規(guī)則中二者關聯(lián)性很強。對于Ultrascale/Ultrascale+系列的器件,布局器也布局時鐘軌道,對時鐘預布線。如果觸發(fā)器會合并進入到I/O邏輯單元,也在這階段進行布局,否則布局失敗時,會有嚴重告警打印。

在這一階段,布局器要完成的布局對象有I/O端口和與之關聯(lián)的邏輯,全局時鐘緩沖器,時鐘管理單元(MMCMS和PLL),GT單元。同時,布局器也要考慮設置的位置約束屬性和區(qū)域約束屬性。

當時鐘或I/O布局失敗時,布局報告會打印相關錯誤,對錯誤進行簡單描述。通常,布局失敗的原因有以下幾點

a. 因為約束沖突導致的時鐘樹問題

b.過于復雜的時鐘樹問題

c.RAMDSP 布局與其他約束沖突

d.資源不足

f.違反了I/O bank的一些規(guī)則

3.1.4全局布局,詳細布局和后期布局優(yōu)化

完成時鐘和I/O布局后,依次是全局布局,詳細布局,后期布局優(yōu)化。

3.1.4.1 全局布局

全局布局分為布局資源規(guī)劃(floorplanning)和物理綜合。布局資源在I/O和時鐘布局后被分成很多小的相關聯(lián)的邏輯,Pblock約束是需要考慮的,是硬性要求。

在布局資源規(guī)劃后是物理綜合,在基于布局資源規(guī)劃基礎上,布局器將對網表運行不同的物理優(yōu)化策略進行設計的初始化布局。例如,基于復制的扇出,復制的驅動源將和load放一起,因為初始位置是確定的。優(yōu)化也會考慮內部的參數設置以及時序相關的。只有時序有所改善,優(yōu)化才會真正進行。

在物理綜合階段,下圖是優(yōu)化概要示例。

2ebd01c2-afc3-11ef-93f3-92fbcf53809c.png

LUT的分解與重組:如果LUTs有SOFT_HLUTNM屬性并且LUT分解和重組能改善時序,布局器將進行該操作

基于屬性的重定時:用戶可以通過設置一個屬性在寄存器或LUT上實行重定時,對于時序起點和終點有足夠距離的關鍵路徑來說作用較明顯。在PSIP有兩個控制重定時的屬性:PSIP_RETIMING_BACKWARD,PSIP_RETIMING_FORWARD,值都設置為true時表示執(zhí)行后向重定時和前向重定時。

同時,在以下場景下設置重定時屬性將不會起作用

a.移動的邏輯經過了一些大塊單元,如BRAM,URAM,DSP

b. pack到了I/O上的寄存器

c.路徑的起點與終點時鐘不同

d.路徑上含有時序例化的設置

e.含有阻止優(yōu)化的屬性,如DONT_TOUCH等

高扇出優(yōu)化:高扇出通過復制寄存器來驅動高扇出nets(扇出大于1000,slack值小于2ns)

關鍵單元優(yōu)化:在失敗路徑上通過復制單元來進行優(yōu)化,如果已布局的單元的load距離太遠,該單元將會被賦值然后放置到距離load更近的位置。通常在一些塊狀RAM,URAM,大量的DSP布局較為分散時,該優(yōu)化使用較多

扇出優(yōu)化:對于設置了MAX_FANOUT的nets,當nets的實際扇出數量大于設置的MAX_FANOUT時,將會進行優(yōu)化。用戶可以通過添加FORCE_MAX_FANOUT到該nets上,從而強制對驅動該nets的寄存器或LUT進行復制,并且此處提到的load都是實際物理連接的loads,不是邏輯loads。

DSP寄存器優(yōu)化:DSP寄存器優(yōu)化是指將寄存器從DSP中移出到邏輯組中,或者從邏輯單元移入到DSP中,從而改善關鍵路徑的時延

移位寄存器流水線優(yōu)化:操作是將有固定長度的移位寄存器改成動態(tài)調整寄存器流水線,然后再布局流水線流水線來改善時序,動態(tài)的SRLs不支持該優(yōu)化

移位寄存器優(yōu)化:該優(yōu)化是針對在移位寄存器單元和其他邏輯單元間存在時序違例的路徑

塊狀RAM寄存器優(yōu)化:塊狀RAM寄存器優(yōu)化是指將寄存器從塊狀RAM中移出到邏輯組中,或者從邏輯單元移入到塊狀RAM中,從而改善關鍵路徑的時延

動態(tài)/靜態(tài)區(qū)域接口網線復制:在DFX流程中,將靜態(tài)設計復制到可重配的模塊便捷路徑上

等價驅動源重布線優(yōu)化:將邏輯上相等的驅動源進行l(wèi)oad的重新分配,減少布線的重復,也能為驅動源和負載提供更優(yōu)的位置。這個可以減少資源使用和布線擁塞

3.1.4.2 詳細布局

通過詳細布局,可以讓設計從初始化的全局布局成為全部布局。通常是先對大塊單元,如多列的URAM,塊狀RAM,DSP塊組布局,然后是LUTRAM組,用戶在XDC中定義的更小一些的大塊。邏輯單元布局時是不斷迭代,以保證線長,時序最優(yōu),不擁塞。在CLBs的LUT-FF對和CLB中的寄存器必須共用普通的控制集

3.1.4.3后期布局優(yōu)化

在所有的邏輯單元位置都確定后,后期布局優(yōu)化將進行改善時序和擁塞的最后一步,包括改善關鍵路徑的布局,BUFG復制,可選的BUFG插入。在BUFG復制階段,BUFG驅動的nets跨多個SLRs時,每個SLRs都會分配一個BUFG。在布局或布線沖突,以及有阻止復制或時鐘降級的約束時,該優(yōu)化將不會進行。

在BUFG插入階段,布局器將高扇出的net布線到全局布線路徑上,從而釋放普通布線資源,驅動控制信號的高扇出nets如果slack值大于1ns將會優(yōu)化。

3.2Routing(布線)

在完成布局后,布線器將會進行布線。布線器提供了2個布線選項,對整個設計布線或對單個的引腳或nets布線。當對整個設計布線時,流程是時序驅動的,在時序約束的基礎上,使用自動的時序計算規(guī)則。當對單個nets或引腳布線時,有迭代布線和自動延時兩種模式。

布線的子流程包括:設計規(guī)則檢查DRC,布線優(yōu)先級。

3.2.1 設計規(guī)則檢查

設計規(guī)則檢查主要有兩類檢查,第一類是用戶從report_drc中設置的規(guī)則,第二類是vivado軟件內部的檢查規(guī)則

3.2.2 布線優(yōu)先級

布線器首先布線全局資源,如時鐘,復位,I/O和其他降級的資源。在布線器內部有默認的優(yōu)先級,然后根據時序重要性對數據信號布線。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 布線
    +關注

    關注

    9

    文章

    772

    瀏覽量

    84329
  • 布局
    +關注

    關注

    5

    文章

    269

    瀏覽量

    25012
  • Vivado
    +關注

    關注

    19

    文章

    812

    瀏覽量

    66523

原文標題:Vivado之實現(xiàn)(布局布線)流程淺析

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Vivado下顯示指定路徑時序報告的流程

    Vivado下顯示指定路徑時序報告的流程?! ?.打開布局布線后的結果    2.指定到工具下的時序報告    3.選擇路徑的起點和終點    4.雙擊路徑時序結果顯示詳細的時序情況 
    發(fā)表于 01-15 16:57

    PCB的布局布線介紹

    目錄:一、簡介二、布局的方式三、布局的檢查四、PCB布線經驗1、PCB布線經驗一1)要有合理的走向2)選擇好接地點3)合理布置電源濾波/退耦電容4)線條有講究5)其它2、PCB
    發(fā)表于 07-01 07:56

    如何實現(xiàn)良好的電路板布局布線

      工程課程一般不會教授如何實現(xiàn)良好的電路板布局布線。高頻RF類課程會研究走線阻抗的重要性,但需要自行構建系統(tǒng)電源的工程師,通常不會將電源視為高頻系統(tǒng),而忽視了電路板布局
    發(fā)表于 11-15 08:27

    用 TCL 定制 Vivado 設計實現(xiàn)流程

    的過程,而后端設計則是把門級網表布局布線到芯片上最終實現(xiàn)的過程。 以下兩圖分別表示 ISE 和 Vivado 的基本設計流程: ISE 中
    發(fā)表于 06-28 19:34

    pcb布線心得(流程詳解、元件布局布線與EMC)

    pcb布線技巧,輕松搞定布線、布局,主要包括:一、元件布局基本規(guī)則;二、元件布線規(guī)則;為增加系統(tǒng)的抗電磁干擾能力采取措施;3、降低噪聲與電磁
    發(fā)表于 11-03 17:02 ?4026次閱讀

    Vivado設計之Tcl定制化的實現(xiàn)流程

    其實Tcl在Vivado中還有很多延展應用,接下來我們就來討論如何利用Tcl語言的靈活性和可擴展性,在Vivado實現(xiàn)定制化的FPGA設計流程。 基本的FPGA設計
    發(fā)表于 11-18 01:48 ?3607次閱讀
    <b class='flag-5'>Vivado</b>設計之Tcl定制化的<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>流程</b>

    Vivado使用誤區(qū)與進階——在Vivado實現(xiàn)ECO功能

    關于Tcl在Vivado中的應用文章從Tcl的基本語法和在Vivado中的應用展開,介紹了如何擴展甚至是定制FPGA設計實現(xiàn)流程后,引出了一
    發(fā)表于 11-18 18:26 ?5409次閱讀
    <b class='flag-5'>Vivado</b>使用誤區(qū)與進階——在<b class='flag-5'>Vivado</b>中<b class='flag-5'>實現(xiàn)</b>ECO功能

    用Tcl實現(xiàn)Vivado設計全流程

    設置芯片型號,設置源文件位置,設置生成文件位置,添加設計源文件,流程命令,生成網表文件,設計分析,生成bitstream文件。其中,流程命令是指綜合、優(yōu)化、布局、物理優(yōu)化和布線。
    的頭像 發(fā)表于 11-20 10:56 ?2127次閱讀

    MCM布局布線的軟件實現(xiàn)

    本設計按照圖1所示的MCM布局布線設計流程,以檢測器電路為例,詳細闡述了利用信號完整性分析工具進行MCM布局布線設計的方法。首先對封裝零件庫
    的頭像 發(fā)表于 11-20 16:37 ?3221次閱讀

    Vivado—DCP復用

    Vivado的設計流程各個階段里,采用統(tǒng)一的數據模型:DCP(design checkpoint),在Vivado的設計流程里,無論是綜合還是布局
    的頭像 發(fā)表于 07-04 09:37 ?3777次閱讀

    Xilinx FPGA Vivado開發(fā)流程介紹

    系統(tǒng)性的掌握技術開發(fā)以及相關要求,對個人就業(yè)以及職業(yè)發(fā)展都有著潛在的幫助,希望對大家有所幫助。本次帶來Vivado系列,Vivado開發(fā)軟件開發(fā)設計流程。話不多說,上貨。
    的頭像 發(fā)表于 02-21 09:16 ?3636次閱讀

    用TCL定制Vivado設計實現(xiàn)流程

    今天推出Xilinx已發(fā)布的《Vivado使用誤區(qū)與進階》系列:用TCL定制Vivado設計實現(xiàn)流程。
    的頭像 發(fā)表于 05-05 09:44 ?1080次閱讀
    用TCL定制<b class='flag-5'>Vivado</b>設計<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>流程</b>

    Vivado實現(xiàn)ECO功能

    關于 Tcl 在 Vivado中的應用文章從 Tcl 的基本語法和在 Vivado 中的 應用展開,繼上篇《用 Tcl 定制 Vivado 設計實現(xiàn)
    的頭像 發(fā)表于 05-05 15:34 ?2697次閱讀
    在<b class='flag-5'>Vivado</b>中<b class='flag-5'>實現(xiàn)</b>ECO功能

    Vivado布線和生成bit參數設置

    本文主要介紹Vivado布線參數設置,基本設置方式和vivado綜合參數設置基本一致,將詳細說明如何設置布線參數以優(yōu)化FPGA設計的性能,以
    的頭像 發(fā)表于 05-16 16:40 ?4663次閱讀
    <b class='flag-5'>Vivado</b><b class='flag-5'>布線</b>和生成bit參數設置

    vivado仿真流程

    vivado開發(fā)軟件自帶了仿真工具,下面將介紹vivado的仿真流程,方便初學者進行仿真實驗。
    的頭像 發(fā)表于 07-18 09:06 ?4485次閱讀
    <b class='flag-5'>vivado</b>仿真<b class='flag-5'>流程</b>