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

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

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

3天內不再提示

Vivado崩潰調試的方案和預防

Xilinx賽靈思官微 ? 來源:djl ? 作者:賽靈思 ? 2019-07-25 15:52 ? 次閱讀

要解決任何綜合崩潰問題,通常應該從了解崩潰發生在綜合的哪個階段著手,以及工具方面是否有任何跡象指向特定的模塊、賦值、聲明或推斷。

在某些情況下會出現日志不足的狀況,并且需要與賽靈思共享 RTL 設計,才能對問題進行進一步調試。

Elaboration 階段中的工具崩潰:

這意味著該工具是在對 RTL 設計進行細化時崩潰的,綜合日志看上去如下所示:

-------------------------------------------------------------------

Starting RTL Elaboration : Time (s): …

----------------------------------------------------------------

…….

Abnormal program termination (11)

Please check '..hs_err_pidxxxx.log' for details

Parent process (pid xxxxx) has died. This helper process will now exit

OR

----------------------------------------------------------------

Starting RTL Elaboration : Time (s): …

----------------------------------------------------------------

----------------------------------------------------------------

Finished RTL Elaboration : Time (s): cpu = …

----------------------------------------------------------------

RTL Elaboration failed

在綜合日志中,您應該會看到類似于“Abnormal program termination (11)”的崩潰相關消息(盡管可能是在沒有消息的情況下)。這些問題就是崩潰問題。

如果是細分崩潰問題,在大多數情況下,問題出在工具中未得到正確處理的 RTL 或 RTL 的某些部分。如果是這類情況,請與我們分享您的工程,以便我們可以在工具中添加修復程序,避免將來出現這類問題。

要在您這里調試此類問題,以下步驟可能會有用。這里的目標是將崩潰縮小到“設計模塊”,然后 -> “RTL 文件” -> “某部分 RTL” -> “Line of RTL 代碼行”。

確定發生問題的 RTL 文件是最艱巨的任務之一。要找到有問題的模塊,可以使用以下方法:

使用黑匣子的方法

賽靈思

假設設計結構及層級如下所示:

Vivado崩潰調試的方案和預防

這里的目標是使用 black_box 屬性消除其他三個模塊。我們需要假設一個模塊有問題。假設 A 有問題:對于這種情況,保持 A 模塊完好無損,并將 RTL 文件中的 B、C 和 D 都設為 black_box:

(* black_box *) module B (

…)

end module

(* black_box *) module C (

…)

end module

(* black_box *) module D (

…)

end module

運行 Synthesis 并檢查工具是否以崩潰。

如果工具已崩潰,則問題要么出在模塊 A,要么出在其子模塊 (A11、A12 ... A21、A22 ......)中。在這種情況下,通過保留 A1 并將 A2 設為 black_box 繼續調試,依此類推。

如果工具沒有崩潰,則嘗試保持 B 模塊完好無損,并將 A、C 和 D 標記為 black_box。

這里有一個簡單的示例工程:

Vivado崩潰調試的方案和預防

在綜合上述層級時,該工具崩潰并在綜合日志中出現以下錯誤:

….
….
Parameter break bound to: 8'b11110000
An unrecoverable error has occurred, synthesis canceled.
-------------------------------------------------------------------
Finished RTL Elaboration : Time (s): cpu = 0005 ; elapsed = 0007 . Memory (MB): peak = 3278.059 ; gain = 194.688 ; free physical = 20020 ; free virtual = 114523
-------------------------------------------------------------------
RTL Elaboration failed
INFO: [Common 17-83] Releasing license: Synthesis
4 Infos, 5 Warnings, 0 Critical Warnings and 1 Errors encountered.
synth_design failed
ERROR: [Common 17-69] Command failed: Synthesis failed - please see the console or run log file for details
INFO: [Common 17-206] Exiting Vivado at Thu Feb 21 2322 2019...

正如您在日志中可以清楚地看到的那樣,當工具試圖對設計進行細分時發生了崩潰。

為了調試這個問題,我們需要開始對模塊進行黑盒測試。嘗試多個組合后,當使用black_box屬性禁用ps2_to_ascii1時,綜合通過,同樣,當僅啟用pas2_to_ascii2時,該工具會崩潰,如下所示:


attribute black_box : string;
attribute black_box of Debounce : component is "yes";
attribute black_box of sinchronizer : component is "yes";
attribute black_box of SIPO : component is "yes";
attribute black_box of Driver : component is "yes";

由于我們已經確定了RTL文件/模塊,現在的目標是要找到RTL中導致崩潰的部分。這可能是因大循環迭代、長而復雜的賦值、復雜的位片操作或不正確的編碼方式或不支持的結構而導致的。在上述示例中,由于不支持編碼方式,導致工具崩潰:

process(…)
begin
case dummy is
when S1 =>
if rising_edge(clk) then
...
end if;
end if;
when S2 =>
if rising_edge(clk) then
...
end if;
end if;
when S3 =>
if rising_edge(clk) then
...
end if;
end if;
when S4 =>
...
end case;
end process;

**也可以通過使單個模塊成為綜合的“頂層模塊”來查看工具是否會崩潰來找到引起問題的模塊或RTL文件。

例如,當pas2_to_ascii2被設置為頂層模塊時,上述工程會以相同的錯誤崩潰。

跨邊界優化階段的崩潰:

什么是跨邊界優化?

該工具將基于synth_design命令嘗試在任何給定設計上執行許多優化。全局設置、塊級設置和屬性可以定義工具是否可以在層級(邊界)內或跨層級(邊界)執行優化。對于Vivado的默認設置,‘-flatten_hierarchy’ 被設置為‘rebuilt’,該工具會嘗試展平層級并執行跨邊界優化。

該工具會試圖找到跨邊界的優化可能性,并且可能會由于工具錯誤或由于設計問題而崩潰(在最壞的情況下)。在上述情況下,日志可能如下所示:

--------------------------------------------------------------------------
Start Cross Boundary Optimization
--------------------------------------------------------------------------
Abnormal program termination (6)
Please check 'hs_err_pid5649.log' for details
Parent process (pid 5649) has died. This helper process will now exit

為了防止這類崩潰,一個簡單的解決方法是通過將全局設置“flatten_hierarchy”更改為“none”來禁用跨邊界優化。使用“none”的缺點可能是一個糟糕的QoR,所以可能不適用于所有設計。

一個更好的方法是通過黑匣方法找到引起問題的層級,然后對該層級使用“KEEP_HIERARCHY/DONT_TOUCH”屬性來禁用該層級內/來自該層級的任何跨邊界優化。

也有一個可能是,工具在推斷/優化 BRAM時崩潰。

在這種情況下,您可以禁用BRAM推斷來看看這是否是真正的原因。要實現這一點,需要將-max_bram選項設置為‘0’。如果在將‘synth_design -max_bram’設置為0后工具即完成綜合,那么,崩潰與BRAM推斷有關。

由于禁用BRAM推斷不是一個可接受的方案,用戶將需要找到BRAM寄存器所在的模塊,并且基于客戶的應用情況,可以對存儲器寄存器使用“DONT_TOUCH”屬性以阻止BRAM推斷。

另一種方法是將該模塊標記為OOC、同時-max_bram標記為'0',并使用默認值(即-max_bram "-1")來運行頂層模塊的綜合。

如果您仍然遭遇崩潰,請將您的日志文件(hs_pidxxxx.log and runme.log)和詳細的設計信息發布到賽靈思官方中文論壇。

時序優化中的崩潰:

Vivado是一個時序驅動綜合引擎,對于所有設計,該工具都會嘗試查看是否有任何可能執行的優化以滿足設計的時序要求。在一些情況下,該工具可能會在時序優化階段崩潰,日志如下:

-------------------------------------------------------------------
Start Timing Optimization
-------------------------------------------------------------------
Abnormal program termination (11)
Please check 'hs_err_pid15514.log' for details

在這類情況下,首先要做的事是禁用約束(.xdc)文件并運行綜合。如果工具通過綜合操作,那么問題可能與設計加約束的方式(用戶問題)或工具處理設計約束的方式(工具問題)有關。

調試此類問題的一種方法會是找到導致崩潰的約束/約束集。這可以通過注釋約束然后逐個啟用它們來查看工具何時再次崩潰來完成。一旦您有一組引起失敗的約束,請參考UFDM驗證約束及其用法,然后對其進行相應的修改以避免這類崩潰問題。

如果您仍然看到崩潰,請將您的日志文件 (hs_pidxxxx.log and runme.log)及詳細設計信息發布到賽靈思中文論壇。

其他重要調試步驟及其分析結果:

FSM 推斷崩潰問題:

我們還看到了在綜合FSM時工具崩潰的一些問題,將全局設置-fsm_extraction設為“off”有助于解決基于FSM的崩潰問題。

堆棧溢出引起的崩潰問題:

該工具在堆棧的內存耗盡時可能會崩潰,而且可能會不報告任何情況。此外,該工具甚至可能不會在運行目錄中生成hs_pidxxxx.日志。對于與堆棧相關的崩潰,請使用以下命令調用Vivado工具:

“vivado -stack 2000”

這樣做有助于該工具獲得更多可用來執行綜合的堆棧內存,并且還可以避免與堆棧相關的崩潰問題。

Windows操作系統特定的崩潰:

有幾種原因會引起特定于Windows的崩潰,因此要確保您看到的問題不是Windows操作系統的特定問題,請在任一支持的Linux操作系統上運行一次。

OOC (Out of Context)與非OOC流程:

我們已經看了一些示例,當工程設置為完全非OOC(沒有IP、沒有RTL模塊為OOC)時,整個設計會通過綜合。在某些情況下,相反的情況也可行,可通過在OOC模式而不是“Global”模式下生成IP的輸出文件。

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

    關注

    19

    文章

    812

    瀏覽量

    66621
  • 時序優化
    +關注

    關注

    0

    文章

    4

    瀏覽量

    1458
收藏 人收藏

    評論

    相關推薦

    Vivado 2016.4-2017.2在硬件管理器中崩潰

    和2017.2中,打開硬件管理器后,它們都會100%崩潰,將比特流下載到Zedboard并打開菜單進行連接。如果您快速瀏覽菜單,實際上可以在Vivado崩潰之前對其進行編程,但在打開硬件管理器并打開連接
    發表于 11-01 16:10

    Vivado 2013.1在啟動時崩潰

    我在兩臺64位Windows機器上安裝了2013.1,并且兩者都崩潰了。 Vivado 2013.1窗口在崩潰之前會短暫出現。如果我從命令行運行,我會看到:****** Vivado
    發表于 11-27 14:30

    Vivado 2015.1崩潰并使用大量內存

    我在8位內存的Windows 7 64位機器上使用Vivado。麻煩的是,有時它似乎使用了大量的內存;有時大約6GB。有一次它說GUI已經耗盡了內存,那么計算機就崩潰了。我真的不明白為什么這應該發生
    發表于 12-11 11:14

    如何從崩潰vivado安裝中恢復或如何卸載部分安裝

    嗨,當我在Linux系統上安裝Vivado 2017.2時,由于與Vivado安裝無關的原因,系統在安裝過程中崩潰了。這給我留下了一個帶有“半安裝”vivado的系統,一些文件到位,但
    發表于 12-25 11:10

    取消硬件管理器時Vivado 2015.1崩潰

    從硬件管理器中的最后一個屏幕取消時(請參閱screen_cap.png圖像),Vivado 2015.1崩潰,沒有任何消息。日志文件表明它是Java的問題(請參閱hs_err_pid7988.log
    發表于 04-03 14:37

    運行綜合時Vivado崩潰

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

    Vivado 2015.4崩潰

    你好!我是Vivado的新用戶。我正在使用2015.4版本來為我的碩士學位創建課程。兩個星期以來,我遇到了使用它的問題,因為我可以創建程序來打開Zybo板上的外圍LED。一旦我嘗試連接外部組件,程序崩潰了。特別是當我嘗試使用精心設計時,它會
    發表于 04-21 08:49

    Vivado 2015.4隨機崩潰是為什么?

    我在Windows 7上使用Vivado 2015.4,在Intel i7上使用16 GB RAM。我在筆記本電腦上看到隨機崩潰。有時我會收到錯誤運行時錯誤R6025-純虛函數調用而其他時候Vivado只是關閉。在任務管理器/進
    發表于 04-27 07:11

    使用Vivado 2016.3中IBERT調試的好處及步驟

    了解使用Vivado 2016.3中引入的系統內IBERT進行調試的好處,以及將其添加到設計中所需的步驟。
    的頭像 發表于 11-20 06:43 ?5783次閱讀

    如何使用Vivado Logic Analyzer與邏輯調試IP進行交互

    了解Vivado中的Logic Debug功能,如何將邏輯調試IP添加到設計中,以及如何使用Vivado Logic Analyzer與邏輯調試IP進行交互。
    的頭像 發表于 11-30 06:22 ?3402次閱讀

    如何使用Vivado Design Suite IP Integrator的調試AXI接口

    了解如何使用Vivado Design Suite IP Integrator有效地調試AXI接口。 本視頻介紹了如何使用該工具的好處,所需的調試步驟和演示。
    的頭像 發表于 11-29 06:00 ?4024次閱讀

    如何使用Vivado在設備啟動時進行調試

    了解如何使用Vivado在設備啟動時及其周??圍進行調試。 你也會學習 使用Vivado 2014.1中引入的Trigger at Startup功能來配置和預先安裝a 調試核心
    的頭像 發表于 11-22 07:05 ?4456次閱讀

    Vivado Design Suite用戶指南:編程和調試

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

    Vivado設計套件用戶指南:編程和調試

    電子發燒友網站提供《Vivado設計套件用戶指南:編程和調試.pdf》資料免費下載
    發表于 09-13 11:37 ?0次下載
    <b class='flag-5'>Vivado</b>設計套件用戶指南:編程和<b class='flag-5'>調試</b>

    Vivado Design Suite 用戶指南:編程和調試

    Vivado Design Suite 用戶指南:編程和調試》 文檔涵蓋了以下設計進程: 硬件、IP 和平臺開發 : 為硬件平臺創建 PL IP 塊、創建 PL 內核、功能仿真以及評估 AMD
    的頭像 發表于 10-25 16:15 ?906次閱讀
    <b class='flag-5'>Vivado</b> Design Suite 用戶指南:編程和<b class='flag-5'>調試</b>
    主站蜘蛛池模板: 午夜精品久久久久久久99蜜桃| 成年视频xxxxxx在线| 湖南电台在线收听| 97成人在线视频| 少妇伦子伦精品无码| 欧美一第一页草草影院| 精品无码国产污污污免费网站2| WWW国产色情在线观看APP| 4484在线观看视频| 在线观看亚洲AV无码每日更新| 色播播影院| 全肉高H短篇合集| 欧美日韩亚洲第一区在线| 狠狠色噜噜狠狠狠狠米奇777| 国产看午夜精品理论片| 国产精品成人A蜜柚在线观看| 99热在线免费播放| 一级做a爰片久久毛片免费 | 色即是空 BT| 日韩精品 中文字幕 有码 | 亚洲区视频在线观看| 亚洲免费精品视频| 色宅男看片午夜大片免费看| 日韩欧美高清一区| 色欲AV精品人妻一区二区三区| 色屁屁影院| 喜马拉雅听书免费版| 亚洲 欧美 国产 综合 播放| 亚洲AV久久无码精品九号| 亚洲精品天堂自在久久77| 亚洲区欧美日韩综合| 中国女人逼| J午夜精品久久久久久毛片| 大陆极品少妇内射AAAAAA| 97视频在线播放| xxx性欧美在线| 99精品观看| OLDMAN老头456 TUBE| 东北真实仑乱| 国精产品一区二区三区 | 亚洲国产精品无码中文在线|