衡阳派盒市场营销有限公司

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

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

3天內不再提示

記錄一次時序收斂的過程

FPGA開源工坊 ? 來源:FPGA開源工坊 ? 2023-11-18 16:38 ? 次閱讀

在之前的文章里面介紹了Canny算法的原理和基于Python的參考模型,之后呢在FPGA上完成了Canny算法的實現,可是遇到了時序不收斂的問題,記錄一下。

e279ebd0-85e9-11ee-939d-92fbcf53809c.png

可以看到時序的建立時間不滿足。

我們在約束的主時鐘頻率是200MHz,也就是5ns,但是建立時間是-2.12ns,也就是說這個工程只能跑到7.12ns也就是140.45MHz,遠遠不能滿足我們預先的設計。

在之前文章里面介紹過怎么在SpinalHDL里面估計一個模塊可以跑到的最大頻率,可以參見:SpinalHDL--快速評估代碼性能

怎么根據時序約束和建立保持時間裕量來分析工程能跑到的最大頻率可以參考下面:

e29259cc-85e9-11ee-939d-92fbcf53809c.png

首先來看一下PR之后是哪條路徑不收斂,究竟是同一時鐘域下的還是跨時鐘域的路徑,兩者的處理方式不一樣。

e29994e4-85e9-11ee-939d-92fbcf53809c.png

可以看到是Intra-clock paths爆紅了,也就是同一時鐘域下的路徑時序不收斂。

接下來看具體的時序路徑:

e2b32f58-85e9-11ee-939d-92fbcf53809c.png

可以看到logic delay遠遠比net delay大,那么我們就需要去降低logic delay,也就是要把我們的組合邏輯搞簡單一點。如果是net delay比較大就要考慮是不是布線擁塞的問題了,兩者的處理方式不太一樣。

e2ce0314-85e9-11ee-939d-92fbcf53809c.png

再來看一下它的電路圖,可以看到在左邊的寄存器輸出之后經過LUT,Carry等組合邏輯之后,給到DSP的輸入端。一般來說DSP的幾級pipline最好的都用上,這樣DSP可以跑到更高的頻率。

再來看一下具體的路徑報告:

e2e53124-85e9-11ee-939d-92fbcf53809c.png

可以看到logic的延時占到了82%,因此如果要解決這個時序為例,就必須要把logic delay給降低。

兩者的比例可以參考,七系列的FPGA和UltraScale系列的FPGA不太一樣:

e2fd2874-85e9-11ee-939d-92fbcf53809c.png

e312292c-85e9-11ee-939d-92fbcf53809c.png

來看一下這一個時序為例對應的代碼:

e3326a7a-85e9-11ee-939d-92fbcf53809c.png

可以看到其實挺復雜的,有減法,有乘法。其中減法是被vivado用LUT+Carry搭了起來,乘法用的DSP。

要解決這個問題,就是把這一大段代碼進行流水拆開嘛,把減法拆一級流水,乘法器拆為三級流水。

將代碼修改為以下的樣子,再來綜合一下

e3880b4c-85e9-11ee-939d-92fbcf53809c.png

e399fe6a-85e9-11ee-939d-92fbcf53809c.png

可以看到時序就收斂了。

再來看一下生成電路結構:

e3a3e664-85e9-11ee-939d-92fbcf53809c.png

可以看到FDCE之后仍然是LUT+Carry的形式,用于做減法運算,然后再接入DSP的輸入,在源碼里面做完減法之后還有這兩級寄存器,但是在電路圖里面看不到他們了,這是因為這兩級寄存器被DSP給吸收掉了,用于提高DSP的時鐘頻率,這兩級寄存器會利用DSP單元內部的寄存器來實現,并不會增加我們的資源占用,DSP核里面的資源不用也是浪費。

e3b7a4c4-85e9-11ee-939d-92fbcf53809c.png

e3ca2086-85e9-11ee-939d-92fbcf53809c.png

上圖為DSP單元里面的寄存器排布,可以看到有六級。

本篇介紹了一次時序調優的過程,就是重新計算流水線,看看哪里是時序瓶頸。這種重新計算流水線的方式代價還是比較大的,需要重新修改代碼,所以在設計初期就應該考慮到這個問題,比如DSP的流水線寄存器,BRAM的輸出寄存器這些在設計初期就考慮使用到它們,來獲取更好的時序。

審核編輯:湯梓紅

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

    關注

    1630

    文章

    21797

    瀏覽量

    606019
  • 寄存器
    +關注

    關注

    31

    文章

    5363

    瀏覽量

    121172
  • 時鐘
    +關注

    關注

    11

    文章

    1747

    瀏覽量

    131803
  • 時序收斂
    +關注

    關注

    0

    文章

    14

    瀏覽量

    7625
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    85039

原文標題:記錄一次時序收斂的過程

文章出處:【微信號:FPGA開源工坊,微信公眾號:FPGA開源工坊】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    進行RTL代碼設計需要考慮時序收斂的問題

    更快,而個壞的代碼風格則給后續時序收斂造成很大負擔。你可能要花費很長時間去優化時序,保證時序收斂
    的頭像 發表于 11-20 15:51 ?4042次閱讀
    進行RTL代碼設計需要考慮<b class='flag-5'>時序</b><b class='flag-5'>收斂</b>的問題

    UltraFast設計方法時序收斂快捷參考指南

    資源利用率、邏輯層次和時序約束。 2時序基線設定:在每個實現步驟后檢查并解決時序違例,從而幫助布線后收斂時序。 3
    的頭像 發表于 11-05 15:10 ?5066次閱讀
    UltraFast設計方法<b class='flag-5'>時序</b><b class='flag-5'>收斂</b>快捷參考指南

    FPGA時序收斂學習報告

    經過兩天的惡補,特別是學習了《第五章_FPGA時 序收斂》及其相關的視頻后,我基本上明白了時序分析的概念和用法。之后的幾天,我會根據些官方的文件對時序分析進行更系統、深入的學習。先
    發表于 09-23 10:26

    FPGA時序約束的幾種方法

    +時序例外約束+I/O約束+Post-fit Netlist 引入Post-fit Netlist的過程是從一次成功的時序收斂結果開始,把特
    發表于 06-02 15:54

    FPGA時序約束的幾種方法

    過程是從一次成功的時序收斂結果開始,把特定的組邏輯(Design Partition)在FPGA上實現的布局位置和布線結果(Netlis
    發表于 12-27 09:15

    請問如何收斂高速ADC時序

    如何收斂高速ADC時序?有哪種辦法可以最大化ADC的建立和保持時間?
    發表于 04-14 06:06

    有哪些方法可以解決時序收斂的問題?

    什么是時序收斂?如何去解決物理設計中時序收斂的問題?
    發表于 04-26 06:38

    記錄一次STM32H743 CANFD調試過程中的一次BUG

    記錄一次STM32H743 CANFD調試過程中的一次BUG
    發表于 08-13 06:30

    一次過程的等值電路

    一次過程的等值電路 圖 一次過程的等值電路 在電動機端子上安裝阻抗匹配器可
    發表于 07-18 11:24 ?1726次閱讀
    <b class='flag-5'>一次</b>波<b class='flag-5'>過程</b>的等值電路

    fpga時序收斂

    fpga時序收斂
    發表于 03-01 13:13 ?23次下載

    基于MCMM技術IC時序收斂的快速實現

    介紹了種在多工藝角多工作模式下快速實現時序收斂的技術MCMM(Multicorner-Multimode)技術,該技術將工藝角和模式進行組合,對時序同時進行分析和優化,到達快速實現
    發表于 10-20 15:21 ?3次下載
    基于MCMM技術IC<b class='flag-5'>時序</b><b class='flag-5'>收斂</b>的快速實現

    核電廠一次屏蔽深穿透計算

    DORT,對一次屏蔽混凝土墻進行詳細的計算分析。通過開發蒙特卡羅程序面源續算技術,有效地解決了蒙特卡羅程序深穿透難收斂問題,獲得可信的統計結果。結果表明,所開發的蒙特卡羅程序面源續算技術有效地解決了大規模深穿透難收斂問題;
    發表于 03-19 11:49 ?0次下載

    FPGA時序收斂讓你的產品達到最佳性能!

    FPGA時序收斂讓你的產品達到最佳性能!
    發表于 04-10 11:38 ?18次下載
    FPGA<b class='flag-5'>時序</b><b class='flag-5'>收斂</b>讓你的產品達到最佳性能!

    嘮解決FPGA約束中時序收斂的問題

    FPGA時序收斂,會出現很多隨機性問題,上板測試大概率各種跑飛,而且不好調試定位原因,所以在上板測試前,先優化時序,再上板。
    發表于 06-26 15:41 ?2785次閱讀
    嘮<b class='flag-5'>一</b>嘮解決FPGA約束中<b class='flag-5'>時序</b>不<b class='flag-5'>收斂</b>的問題

    記錄一次使用easypoi時與源碼博弈的過程

    、背景介紹 最近剛剛接手了保險線之聲平臺的開發和維護工作,第個需要修復的問題是:平臺的事件導出成excel功能在經過一次上線之后突然不可用了,于是就開始了幾輪痛苦的排查以及與源碼
    的頭像 發表于 07-03 16:33 ?402次閱讀
    <b class='flag-5'>記錄</b><b class='flag-5'>一次</b>使用easypoi時與源碼博弈的<b class='flag-5'>過程</b>
    大发888官网充值| 战神娱乐| 百家乐官网最好投| 措美县| 百家乐那里可以玩| 属猪属蛇做生意怎么样| 百家乐官网最低压多少| 大发888真人官网| 粤港澳百家乐娱乐网| 杨公风水24山分金| 大发888娱乐城破解软件| 百家乐长龙太阳城| YY百家乐官网的玩法技巧和规则 | 大发888怎么| 百家乐玩揽法大全| 百家乐缆的打法| 澳门百家乐官网怎么看小路| 海门市| 尊龙国际注册| 德州扑克在线玩| 大发888官网亚洲线上| 百家乐牌九| 博E百百家乐现金网| 游艇会百家乐官网的玩法技巧和规则| 百家乐官网双面数字筹码| 大发888游戏好吗| 百家乐高| 百家乐博娱乐网赌百家乐的玩法技巧和规则 | 中国百家乐官网技巧软件| 代理百家乐官网最多占成| 百家乐官网统计概率| 百家乐娱乐平台开户| 百家乐常用公式| 网上百家乐官网乐代理| 百家乐官网博娱乐平台| 百家乐官网北京| 怎样玩百家乐官网看路| 澳门百家乐官网文章| 百家乐官网赌场现金网平台排名 | 大发888线上投注| 大发888娱乐场开户|