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

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

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

降低時(shí)序報(bào)告中邏輯延遲的方法

CHANBAEK ? 來源:FpgaHome ? 作者:太陽(yáng)井的小魚兒 ? 2023-09-26 11:31 ? 次閱讀

1. 引言

FPGA邏輯電路設(shè)計(jì)中,F(xiàn)PGA設(shè)計(jì)能達(dá)到的最高性能往往由以下因素決定:

? 工作時(shí)鐘偏移和時(shí)鐘不確定性;

? 邏輯延遲:在一個(gè)時(shí)鐘周期內(nèi)信號(hào)經(jīng)過的邏輯量;

? 網(wǎng)絡(luò)或路徑延遲:Vivado布局布線后引入的延遲量。

Vivado軟件完成布局布線后,我們可以打開時(shí)序分析報(bào)告,來查看時(shí)序沒有過的路徑是由哪些因素導(dǎo)致的時(shí)序違規(guī)。Vivado會(huì)通過列表形式展示每條時(shí)序違規(guī)路徑的信息,如下圖所示。

圖片

雙擊上面表中的其中一條路徑,會(huì)展開關(guān)于該路徑更詳細(xì)的時(shí)序報(bào)告,如下圖:

圖片

上圖這個(gè)時(shí)序違例的例子,可以看到,該路徑邏輯延遲貢獻(xiàn)了11.934%的延遲量、路徑延遲貢獻(xiàn)了88.066%延遲量。該路徑邏輯級(jí)數(shù)為5,經(jīng)過了2個(gè)CARRY4、1個(gè)LUT4和2個(gè)LUT6。

2. 降低邏輯延遲的方法

如果邏輯延遲大,我們需要查看該路徑是不是只包含CLB器件,還是說該路徑還經(jīng)過了如DSP、RAMB、URAM、FIFO或GT等器件。

2.1 路徑只包含CLB器件

常規(guī)布線路徑是在寄存器(FD*)或移位寄存器(SRL*)之間的路徑,它們經(jīng)過一些 LUT、MUXF 和 CARRY 元件。通常會(huì)遇到以下幾種情形導(dǎo)致邏輯延遲過大:

(1)較高邏輯層數(shù)(logic levels)的組合電路。用戶在兩個(gè)寄存器之間插入的組合邏輯過于復(fù)雜,級(jí)聯(lián)了過多的LUT、CARRY等元件,導(dǎo)致邏輯延遲過高時(shí)序過不了。如下圖中,兩個(gè)寄存器之間有一個(gè)logic levels為5層的組合邏輯。

圖片

建議的解決方案: 在設(shè)計(jì)的早期階段,通過TCL命令“report_qor_assessment”,早些識(shí)別出邏輯層數(shù)較高組合邏輯,通過代碼優(yōu)化手段來降低邏輯層次?;蛘撸诰C合的時(shí)候,將“-retiming”全局變量勾選上。

(2)路徑上有很多小的級(jí)聯(lián)LUT(LUT1-LUT4)。這些多個(gè)小的級(jí)聯(lián)查找表是可以被合并成數(shù)量更少的LUT的。阻止這些級(jí)聯(lián)LUT合并的原因可能如下:

  • 有些小的LUT表存在一些扇出(扇出為10,或者更高);
  • 用戶使用了一些properties語(yǔ)法,比如:KEEP、KEEP_HIERARCHY、DON’T_TOUCH或MARK_DEBUG。

建議的解決方案: 移除掉這些properties語(yǔ)法,重新編譯綜合工程。

(3)路徑上有單個(gè)CARRY(非級(jí)聯(lián))限制了LUT的優(yōu)化,導(dǎo)致vivado布局也不是最優(yōu)。

建議的解決方案: 在綜合的時(shí)候,使用“FewerCarryChains”綜合指令?;蛘邔?duì)該CELL在opt_design階段設(shè)置CARRY_REMAP屬性。(具體使用方法可以查看UG904)

2.2 路徑包含其他復(fù)雜器件(DSP、RAM等)

如果時(shí)序路徑上會(huì)經(jīng)過宏原語(yǔ)元件(macro primitives)如DSP、RAM、URAM、FIFO或GT_CHANNEL等元件,布局布線的難度會(huì)加大,也會(huì)導(dǎo)致更高的布局布線延遲。降低這些路徑的邏輯延遲方法如下:

(1)在進(jìn)出宏原語(yǔ)元件電路周圍,增加額外的流水結(jié)構(gòu)。比如:

  • 原設(shè)計(jì)是用的一個(gè)大位寬RAM緩存數(shù)據(jù),把這個(gè)大位寬RAM拆分成多個(gè)并行的小位寬RAM實(shí)現(xiàn)相同的功能。
  • 原設(shè)計(jì)乘法器為2級(jí)流水乘法器,把它改為2級(jí)以上的流水乘法器。
  • 數(shù)據(jù)進(jìn)出宏原語(yǔ)元件時(shí),都用寄存器打一拍等。

(2)在包含宏原語(yǔ)元件的路徑上減少邏輯層數(shù),這點(diǎn)對(duì)改善整個(gè)設(shè)計(jì)的性能提升很明顯。

Tips: 在修改RTL之前,可以嘗試把DSP、RAM、URAM的自帶流水寄存器使能都打開,然后重新編譯工程,看時(shí)序是否能有改善。比如將下面這條路徑:

圖片

設(shè)置如下屬性:

set_property -dict {DOA_REG 1 DOB REG 1} [get_cells xx/ramb18_inst]

注意,由于使能這些寄存器后,邏輯時(shí)序會(huì)有變動(dòng),此時(shí)的RTL功能和你原先設(shè)計(jì)是有出入的,所以不用生成bitstream,這樣操作的目的只是為了看時(shí)序能如何改善。

3. 總結(jié)

本文主要介紹了如何減少時(shí)序報(bào)告中的邏輯延遲,下期文章我們將向大家介紹如何降低路徑延遲的方法。如果覺得我們原創(chuàng)或引用的文章寫的還不錯(cuò),幫忙點(diǎn)贊和推薦吧,謝謝您的關(guān)注。

聲明:本文內(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)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21573

    瀏覽量

    600678
  • 邏輯電路
    +關(guān)注

    關(guān)注

    13

    文章

    491

    瀏覽量

    42507
  • FPGA設(shè)計(jì)
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    26452
  • 時(shí)序
    +關(guān)注

    關(guān)注

    5

    文章

    383

    瀏覽量

    37232
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    803

    瀏覽量

    66151
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA何時(shí)用組合邏輯時(shí)序邏輯

    數(shù)字邏輯電路分為組合邏輯電路和時(shí)序邏輯電路。時(shí)序邏輯電路是由組合
    發(fā)表于 03-21 09:49 ?794次閱讀

    soc的組合邏輯時(shí)序邏輯應(yīng)用說明

    芯片設(shè)計(jì)是現(xiàn)代電子設(shè)備的重要組成部分,其中組合邏輯時(shí)序邏輯是芯片設(shè)計(jì)中非常重要的概念。組合邏輯時(shí)序
    的頭像 發(fā)表于 08-30 09:32 ?1123次閱讀

    FPGA實(shí)戰(zhàn)演練邏輯篇65:CMOS攝像頭接口時(shí)序設(shè)計(jì)5時(shí)序報(bào)告

    CMOS攝像頭接口時(shí)序設(shè)計(jì)5時(shí)序報(bào)告(特權(quán)同學(xué)版權(quán)所有)本文節(jié)選自特權(quán)同學(xué)的圖書《FPGA設(shè)計(jì)實(shí)戰(zhàn)演練(邏輯篇)》(特權(quán)同學(xué)版權(quán)所有)配套例程下載鏈接:http://pan.baidu
    發(fā)表于 08-19 21:58

    在FPGA何時(shí)用組合邏輯時(shí)序邏輯

    的。話不多說,上貨。 在FPGA何時(shí)用組合邏輯時(shí)序邏輯 在設(shè)計(jì)FPGA時(shí),大多數(shù)采用Verilog HDL或者VHDL語(yǔ)言進(jìn)行設(shè)計(jì)(本文重點(diǎn)以verilog來做介紹)。設(shè)
    發(fā)表于 03-06 16:31

    同步時(shí)序邏輯電路

    同步時(shí)序邏輯電路:本章系統(tǒng)的講授同步時(shí)序邏輯電路的工作原理、分析方法和設(shè)計(jì)方法。從同步
    發(fā)表于 09-01 09:06 ?0次下載

    規(guī)模集成時(shí)序邏輯設(shè)計(jì)

    規(guī)模集成時(shí)序邏輯設(shè)計(jì):計(jì)數(shù)器:在數(shù)字邏輯系統(tǒng),使用最多的時(shí)序電路要算計(jì)數(shù)器了。它是一種對(duì)輸入
    發(fā)表于 09-01 09:09 ?13次下載

    異步時(shí)序邏輯電路

    異步時(shí)序邏輯電路:本章主要從同步時(shí)序邏輯電路與異步時(shí)序邏輯電路狀態(tài)改變方式不同的特殊性出發(fā), 系
    發(fā)表于 09-01 09:12 ?0次下載

    時(shí)序邏輯電路的分析方法

    時(shí)序邏輯電路的分析方法 1. 時(shí)序邏輯電路的特點(diǎn) 在時(shí)序
    發(fā)表于 04-07 23:18 ?8679次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路的分析<b class='flag-5'>方法</b>

    降低移動(dòng)設(shè)計(jì)功耗的邏輯技術(shù)方法

    降低移動(dòng)設(shè)計(jì)功耗的邏輯技術(shù)方法 本文將探討在混合電壓供電的移動(dòng)設(shè)計(jì),混合電壓電平如何提高ICC電源電流及邏輯門如何
    發(fā)表于 04-15 15:00 ?826次閱讀
    <b class='flag-5'>降低</b>移動(dòng)設(shè)計(jì)功耗的<b class='flag-5'>邏輯</b>技術(shù)<b class='flag-5'>方法</b>

    時(shí)序邏輯電路分析有幾個(gè)步驟(同步時(shí)序邏輯電路的分析方法

    分析時(shí)序邏輯電路也就是找出該時(shí)序邏輯電路的邏輯功能,即找出時(shí)序
    發(fā)表于 01-30 18:55 ?12.6w次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路分析有幾個(gè)步驟(同步<b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路的分析<b class='flag-5'>方法</b>)

    時(shí)序邏輯電路由什么組成_時(shí)序邏輯電路特點(diǎn)是什么

    本文開始介紹了時(shí)序邏輯電路的特點(diǎn)和時(shí)序邏輯電路的三種邏輯器件,其次介紹了時(shí)序
    發(fā)表于 03-01 10:53 ?11w次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路由什么組成_<b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路特點(diǎn)是什么

    時(shí)序邏輯電路的分析方法

      時(shí)序邏輯電路分析和設(shè)計(jì)的基礎(chǔ)是組合邏輯電路與觸發(fā)器,所以想要分析和設(shè)計(jì),前提就是必須熟練掌握各種常見的組合邏輯電路與觸發(fā)器功能,尤其是各種觸發(fā)器的特征方程與觸發(fā)模式,因此前幾文的基
    的頭像 發(fā)表于 05-22 18:24 ?3457次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路的分析<b class='flag-5'>方法</b>

    時(shí)序邏輯電路的描述方法有哪些

    時(shí)序邏輯電路是數(shù)字電路的一種重要類型,它具有存儲(chǔ)功能,能夠根據(jù)輸入信號(hào)和內(nèi)部狀態(tài)的變化來改變其輸出。時(shí)序邏輯電路廣泛應(yīng)用于計(jì)算機(jī)、通信、控
    的頭像 發(fā)表于 08-28 11:37 ?311次閱讀

    時(shí)序邏輯電路的五種描述方法

    時(shí)序邏輯電路是數(shù)字電路的一種重要類型,它具有存儲(chǔ)和處理信息的能力。時(shí)序邏輯電路的描述方法有很多
    的頭像 發(fā)表于 08-28 11:39 ?422次閱讀

    時(shí)序邏輯電路的功能表示方法有哪些

    時(shí)序邏輯電路是數(shù)字電路的一種重要類型,其特點(diǎn)是電路的輸出不僅取決于當(dāng)前的輸入,還取決于電路的狀態(tài)。時(shí)序邏輯電路廣泛應(yīng)用于計(jì)算機(jī)、通信、控制
    的頭像 發(fā)表于 08-28 11:41 ?350次閱讀