色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

Vivado綜合操作中的重定時(Retiming)

YCqV_FPGA_EETre ? 來源:lp ? 2019-03-14 16:26 ? 次閱讀

重定時(Retiming)是一種時序優化技術,用在不影響電路輸入/輸出行為的情況下跨組合邏輯寄存器從而提高設計性能。圖1所示的電路是六輸入加法器,其中有一條關鍵路徑,紅色推出顯示的路徑是限制整個電路性能的關鍵路徑。

圖1:六輸入加法器寄存器到寄存器之間的信號路徑示例

通過對加法器輸出路徑上寄存器進行重定時設計,調整電路的組合邏輯,可以改變整個電路的性能。

整個電路的延遲是4,圖2展示的是一種寄存器組合方法可以將邏輯最小化,將輸出寄存器融合到邏輯寄存器中稱為向后重定時設計,這一步完成后關鍵路徑被壓縮為二輸入加法器。

圖2:采用向后重定時方案二輸入加法器寄存器到寄存器路徑設計的一個示例

關于上述 示例需要注意的另一點是寄存器數量的變化。

圖1采用9個不同寄存器總線,圖2使用了12個不同寄存器總線,產生這樣結果的原因是當采用向后重定時設計時,當寄存器從輸出移動到輸入時,邏輯門的兩個輸入都必須增加一個寄存器。

有兩種不同的重定時方法,向后重定時和向前重定時。向后重定時從門的輸出中刪除寄存器,并在同一邏輯門的輸入出創建新的寄存器。向前重定時的作用正好相反,它從邏輯門的輸入中刪除寄存器,并在輸出中創建新的寄存器。

若要向后重定時,組合邏輯必須僅用來驅動寄存器,而不能向其他邏輯寄存器展開,為了使前向重定時正常工作,邏輯門的每個輸入必須有具有相同控制邏輯的寄存器來驅動。

圖3:邏輯與門(AND)采用前向重定時和后向重定時的效果

全局重定時vs 局部重定時

在Vivado 綜合操作中有兩種方法實現自動重定時:全局重定時和局部重定時。

全局重定時是對整個設計而言的,基于設計時的時序要求優化大型組合邏輯結構中的寄存器設計。

這種方式需要分析設計中的所有邏輯,優化最壞路徑情況下的寄存器從而使整體設計反應速度更快。為了實現這一點設計時必須在.xdc文件中規定準確的時間限制。在synth_design或Vivado GUI綜合設置下通過-retiming命令啟用全局重定時,此外該特性還可以與合成中的BLOCK_SYNTH特性一起用于設計中的特定模塊。

局部重定時是指用戶明確告訴工具使用retiming_forward、retiming_bbackward RTL屬性時需要執行的重定時邏輯。

執行局部重定時操作是應該要小心,因為它不是計時器驅動的,而是工具將完全按照用戶要求去執行。

有關重定時使用的更多信息,請參閱(UG901)Vivado設計工具用戶指南:Synthesis(綜合)。

分析日志文件中的信息

圖4是通過重定時提升邏輯水平的一個例子,該電路結構中有一個關鍵的路徑分為三個邏輯層,組成的是一個37位的邏輯與門(AND),源寄存器命名為din1_dly_reg,目標寄存器命名為tmp1_reg,在邏輯級別為0的tmp1_reg后面增加一個額外的寄存器。

這是一個理想的重定時邏輯路徑設計,因為我們可以切換為三個邏輯級別的路徑,由0、1、2三個局部邏輯電路模塊組成。

圖4:采用后向重定時設計的電路

綜合操作日志文件包含的信息大致如下:

從這個日志文件中你可以看到重定時操作前后的邏輯門信息對比,以及創建的新寄存器名稱,當synthesis通過重定時創建新寄存器時,它將對后向重定時的寄存器使用后綴“bret”,對前向重定時寄存器使用后綴“fret”。

圖5展示的電路中一些不兼容的寄存器將無法進行重定時操作,這個結構中同樣有一個名為din1_dly_reg的源寄存器,它經過37位邏輯與門生成三級邏輯電路結構,然后在din1_dly_reg寄存器前結束。此外邏輯與門還有一路連接到另外一個寄存器,如下圖粉色高亮顯示的部分。

圖5:不能進行重定時操作電路的示例

這是示例不能進行重定時操作是因為粉紅色高亮顯示的部分,這個寄存器需要一部重置,而tmp1_reg沒有這個功能,因為這兩個寄存器沒有相同的控制集,所以它們不能向后重定時到新的邏輯與門電路中,本例的日志文件信息如下:

這個日志文件包含的信息是關于 不兼容的FIFO寄存器的,前后的電路的邏輯層級不變。

以下情況下不能進行重定時操作:1. 寄存器時序異常(多循環路徑、錯誤的路徑、最大延遲路徑)2. 寄存器的類型屬性不能改變(DONT_TOUCH, MARK_DEBUG)3. 采用不同控制級的寄存器

驅動輸出的寄存器或者被輸入驅動的寄存器(除非這部分是與前后電路不相關的)

重定時無法改善反饋循環回路中關鍵路徑的性能的一個例子:

當路徑中具有相同的源寄存器和目標寄存器時,重定時優化操作可能無法改進整個邏輯電路的結構。

舉個例子:

寄存器“dout_reg”的關鍵路徑如下圖中紅色所示,要經過一個邏輯與運算,然后連接到同一寄存器的復位管腳上才算結束。

根據數位寬度(16比特)邏輯與門電路要占用兩個邏輯操作。

下面的屏幕截圖顯示了綜合操作如何描述關鍵路徑的

其中還提到了關鍵路徑中一部分模塊或寄存器的名字。

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

    關注

    31

    文章

    5363

    瀏覽量

    120925
  • 總線
    +關注

    關注

    10

    文章

    2900

    瀏覽量

    88277
  • Vivado
    +關注

    關注

    19

    文章

    815

    瀏覽量

    66786

原文標題:Vivado綜合操作中的重定時(Retiming)

文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發圈】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Vivado 高層次綜合

    感謝你對Vivado HLS也就是XILINX’s 高層次綜合解決方案有興趣,這個解決方案綜合c,c++和系統c代碼成Verilog和VHDL RTL結構。
    發表于 04-25 08:59 ?2898次閱讀

    探索Vivado HLS設計流,Vivado HLS高層次綜合設計

    作者:Mculover666 1.實驗目的 通過例程探索Vivado HLS設計流 用圖形用戶界面和TCL腳本兩種方式創建Vivado HLS項目 用各種HLS指令綜合接口 優化Vivado
    的頭像 發表于 12-21 16:27 ?3652次閱讀

    vivado 2015.3 綜合報錯

    菜鳥求指教,最近在用vivado 2015.3 做個小項目,遇到問題:代碼綜合后會報錯:'get_property' expects at least one object.錯誤地址在IP的 clocks.xdc文件。
    發表于 08-31 10:42

    Vivado 2015.4許可證與Windows 10操作系統工作出現綜合錯誤

    我正在使用Vivado 2015.4與Windows 10操作系統一起工作。直到今天早上,這工作還算不錯?,F在我得到以下綜合錯誤:[Common 17-345]找不到功能'Synthesis'和/或
    發表于 01-08 10:08

    Vivado綜合操作定時Retiming

    synth_design或Vivado GUI綜合設置下通過-retiming命令啟用全局定時,此外該特性還可以與合成
    發表于 03-14 12:32

    運行綜合Vivado崩潰

    親愛的大家,我現在正在使用Vivado 2013.3。我試圖將PL結構時鐘從1 MHZ更改為500KHZ。 (1 MHZ下沒問題)但是,Vivado在運行綜合時崩潰了。對我來說減少PL結構時鐘非常重要,因為我打算在一個時鐘周期內
    發表于 03-25 08:40

    vivado綜合Soc設計時發現的錯誤,請問如何解決?

    嗨, 我們正在嘗試將自定義IP連接到vivado的IP集成商的可用IP。但我們在綜合設計時發現了一些問題。請查看附帶的截圖以獲取詳細視圖。謝謝。
    發表于 04-09 06:28

    如何為管道設計插入寄存器并進行定時

    大家好,我需要為管道設計插入寄存器并進行定時以改善負面松弛。在vivado是否有內置的方法來執行此操作。我嘗試了phys_opt_des
    發表于 05-01 14:51

    Vivado 全局定時vs 局部定時

    限制。在synth_design或Vivado GUI綜合設置下通過-retiming命令啟用全局定時,此外該特性還可以與合成
    發表于 11-24 07:00

    使用Vivado高層次綜合 (HLS)進行FPGA設計的簡介

    Introduction to FPGA Design with Vivado High-Level Synthesis,使用 Vivado 高層次綜合 (HLS) 進行 FPGA 設計的簡介
    發表于 01-06 11:32 ?65次下載

    Vivado綜合引擎的增量綜合流程

    Vivado 2019.1 版本開始,Vivado 綜合引擎就已經可以支持增量流程了。這使用戶能夠在設計變化較小時減少總的綜合運行時間。
    發表于 07-21 11:02 ?1720次閱讀

    Vivado綜合參數設置

    如果你正在使用Vivado開發套件進行設計,你會發現綜合設置中提供了許多綜合選項。這些選項對綜合結果有著潛在的影響,而且能夠提升設計效率。為了更好地利用這些資源,需要仔細研究每一個選項
    的頭像 發表于 05-16 16:45 ?3768次閱讀
    <b class='flag-5'>Vivado</b><b class='flag-5'>綜合</b>參數設置

    Vivado綜合階段什么約束生效?

    Vivado綜合默認是timing driven模式,除了IO管腳等物理約束,建議添加必要的時序約束,有利于綜合邏輯的優化,同時綜合后的design里面可以評估時序。
    的頭像 發表于 07-03 09:03 ?734次閱讀

    Vivado Design Suite用戶指南:綜合

    電子發燒友網站提供《Vivado Design Suite用戶指南:綜合.pdf》資料免費下載
    發表于 09-13 15:47 ?0次下載
    <b class='flag-5'>Vivado</b> Design Suite用戶指南:<b class='flag-5'>綜合</b>

    如何運用Retiming優化Block RAM的使用

    對于邏輯級數較大的路徑,常用的時序收斂的方法之一就是采用Retiming(中文翻譯為重定時)。Retiming到底是怎么回事呢?
    的頭像 發表于 04-18 10:05 ?1141次閱讀
    如何運用<b class='flag-5'>Retiming</b>優化Block RAM的使用
    主站蜘蛛池模板: 成人中文字幕在线观看| 色狼亚洲色图| 久久精品国产亚洲AV蜜臀 | 岛国片免费看| 红番阁免费观看| 欧美性暴力变态xxxx| 微福利92合集| 在线看片av以及毛片| 成人无码国产AV免费看| 国产自产第一区c国产| 免费国产黄线在线播放| 三级电影免费看| 在线播放毛片| 国产91网站在线观看免费| 老湿机一区午夜精品免费福利| 日美欧韩一区二去三区| 伊人久久大香线蕉综合亚洲| 成人毛片免费播放| 精品无码日本蜜桃麻豆| 日韩 国产 欧美视频二区| 一区二区三区内射美女毛片 | 跪趴式啪啪GIF动态图27报| 久久久久综合| 午夜影院一区二区三区| av免费网站不卡观看| 精品视频中文字幕| 少妇精品无码一区二区三区 | 亚洲欧美国产综合在线| 夫妻性姿势真人做视频| 龙腾亚洲人成电影网站| 亚洲AV色香蕉一区二区三区| av老司机色爱区综合| 久久久高清国产999尤物| 午夜福利电影网站鲁片大全| A级超碰视频在线观看| 久久精品国产欧美成人| 午夜伦4480yy妇女久久| 成人高清网站| 欧美高清videossexo| 在线看片成人免费视频| 好嗨哟在线看片免费|