国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

電子發燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

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

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

3天內不再提示
電子發燒友網>電子資料下載>可編程邏輯>如何讀FPGA工程的編譯報告?(轉載)

如何讀FPGA工程的編譯報告?(轉載)

2021-02-23 | pdf | 129.46KB | 次下載 | 2積分

資料介紹

1.一定要逐條閱讀編譯報告
規模稍微大一點的FPGA工程的警告和criticalwarning動輒兩三千條,雖然其中包含大量的“無威脅”警告和重復警告,但是我覺得至少95%的程序隱患和設計問題都可以從這些報告中找到蛛絲馬跡。

工作中有不少人問過我這些問題:這么多警告怎么看的過來呀?這個警告、還有那個到底是什么意思?。窟@個警告我該怎么去掉?........我能夠理解問出這些問題的人的心情,因為我當初也被這些警告嚇懵了,也退縮了一段時間。但是我不能夠理解的是,為什么春天問過我,到了秋天還問我?后來我明白了,因為一點長進都沒有?。?/p>

逐條閱讀編譯報告是合格設計者的必須做到的!他能幫助我們在仿真或在線調試前:

  • 發現絕大多數由于疏忽大意造成的低級錯誤,如位寬不匹配、信號名稱拼錯、未連接的端口等等;
  • 發現較明顯的設計錯誤,如無驅動源的信號、被移除的信號、被隱式聲明的信號等等;
  • 輔助我們復查代碼,讀報告的過程可以幫助或者督促我們在腦子里重新過一遍代碼,有時候會不經意的發現一些問題。
  • 熟悉工程的編譯報告并形成一個輪廓,這樣后面閱讀報告的速度會越來越快,具體在下文講。
  • 2.閱讀編譯報告的兩個階段
    我把閱讀工程的編譯報告分為兩個階段:細嚼慢咽階段和一目十行階段。

    2.1細嚼慢咽
    這個階段一般和工程的前幾次(兩三次就夠了)迭代對應。在工程的前幾次迭代過程中,建議每一次都認真的讀每一條警告。這樣做的主要目的包括修正設計中明顯的問題和在大腦中形成本工程編譯報告的輪廓。

    在這個階段,很多問題修正后警告就會消失,減少了警告的總數;腦中形成了本工程編譯報告的輪廓后,再閱讀編譯報告時就可以快速略過熟悉的“無威脅”警告了,同時還會對新出現的警告更加敏感。因為當新警告出現后,你會更容易的發現編譯報告的“長相”和你印象中的那個“她”不一樣了。

    需要格外注意的是,如果是初學者,不要遇到看不懂的就問。而是先嘗試自己定位和修改,如果解決不了就去閱讀相關的技術文檔,然后使用搜索引擎。經過這些嘗試,即使不能解決問題,相信你也會收獲頗豐。這時候再去問別人才會有平等對話的機會。

    2.2一目十行
    度過了細嚼慢咽階段后,自然就可以一目十行了。現在我一般第一次閱讀編譯報告會用30分鐘到1個小時(前提是不出現難以定位和比較詭異的警告),大概兩次后,閱讀報告并確定修改是否引入新問題就只需要30秒到2分鐘了。

    3.分析警告并判斷其“威脅”程度
    本章節將列出自己遇到的警告,以及分析定位警告的過程,供大家參考。

    3.1Literalvaluetrunctated
    如下圖所示。這個警告我應該是最近才遇到的。

    可以看到這個警告非常有規律,都集中在vfg_cmp文件中,而且是很集中的幾行,下圖是代碼部分。

    出現警告的前幾行分別是261、262、269、270、277....直到最后的302行,初看以下代碼我其實挺懵的,感覺沒什么問題。

    但是我發現,同樣的寫法,為什么警告只提示到第302行,302行以后反而沒有?下面是最后兩個case的條件。

    同樣是在給cmpl_in_d1_r1_and賦值時出現了固定值,為什么309和310沒有警告呢?這時通過仔細觀察和對比發現,由于疏忽,前面賦值時居然使用了6'h111111、7'h1111111等等這種寫法。7'h1111111理所當然被trunctated到了7bits,這將導致cmpl_in_d1_r1_and在很多條件下的固定值部分出現錯誤,比如7'b1111111變成了7'b0010001。而cmpl_in_d1_r1_or雖然也犯了同樣的錯誤,但是由于寫法是6'h000000,所以沒有給出警告。

    永遠不要忽視任何警告,因為設計錯誤或者功能異常很可能隱藏在這些警告中。

    3.2Unusedsequentialelementremoved
    這個警告是指特定的寄存器被移除。個人人為這是一個威脅度很低,而且很難找到具體位置的警告。比如下面的警告,第一次遇到的時候,我仔細的檢查了每一個被移除的sequential單元,但是一無所獲。經過多次驗證和實踐,絕大多數這個警告都沒有問題。我估計其主要原因有以下:

  • 一些用戶為了降低fanout而人為復制的信號被移除,這主要是因為編譯器發現不需要這些復制也能實現時序收斂。
  • 一些是編譯器對用戶電路進行優化過程中去掉了不需要的寄存器。
  • 該寄存器對應的信號被其他單個信號替代,或者被多個信號的組合替代。
  • 3.3Widthdoesnotmatch
    下圖所示的警告也很常見,這種警告最好逐條閱讀并排除其威脅。位寬不匹配會導致該警告,比如32bits位寬的信號,在端口處連接到一個10bits的信號。下圖的警告則是因為一個32bits的端口,其所在模塊被例化的時候該端口被連接,但是連接該端口的信號沒有被定義。沒有定義的wire型信號被默認為1bit位寬。

    3.4分析警告的步驟
    前面列舉了幾個例子,本章節簡單介紹以下自己分析警告的步驟。

    1.認真閱讀警告。對于警告內容清晰易懂的自然沒有問題,有些警告會寫的晦澀、很難定位,這時候需要細扣每一個句式、每一個單詞和每一個術語。
    2.與程序相互對照。警告一般都會給出文件的位置,這是需要認真對照警告和源碼。有時候警告給出的位置不一定準,有可能是附近或者其他關聯位置。
    3.查詢文檔。有些警告中可能會涉及一些FPGA內部的一些特殊電路,這時候可能需要下載和閱讀相關的文檔。
    4.在官方論壇查詢。這是非常有效的手段,大部分少見和特殊的錯誤都能在這里找到。
    5.在官方論壇提問。極少數問題在論壇上也找不到對應的回答,這時候需要在論壇上提問。運氣不好的話,你發的貼子可能幾天、幾個星期沒人理。這時候建議把帖子挪個論壇分區再發。
    6.找技術支持。為什么把這個列在最后一步呢?因為通過前面的步驟,個人水平會有很大的進步,不要養成所有問題都依賴技術支持的習慣。

    3.5用不同的編譯器編譯

    這是我最近才發現的解決疑難問題的方法之一。

    我使用Vivado2019.2版本時,總是會產生一個莫名的錯誤。我核對了不下10次,檢查了相關的文件,都沒能定位該問題,耽誤了大概兩天時間。后來經朋友提醒:多換幾個編譯器版本試試,甚至包括一些第三方編譯器。

    我使用Vivado2019.1版本重新編譯,果然給出了另一個錯誤,這個錯誤與2019.2給出的錯誤沒有任何聯系。我把2019.1給出的錯誤修改后,再回到2019.2編譯,竟然再也沒有任何錯誤產生了。

    FPGA的編譯器是非常復雜的EDA工具,不同版本之間存在差異或者個別版本有bug都是很正常的,所以換版本,甚至換不同EDA工具都是可行的方法。


    來源:電子創新網

    加入交流群
    微信小助手二維碼

    掃碼添加小助手

    加入工程師交流群

    下載該資料的人也在下載 下載該資料的人還在閱讀
    更多 >

    評論

    查看更多

    下載排行

    本周

    1. 1電子電路原理第七版PDF電子教材免費下載
    2. 0.00 MB  |  1491次下載  |  免費
    3. 2單片機典型實例介紹
    4. 18.19 MB  |  95次下載  |  1 積分
    5. 3S7-200PLC編程實例詳細資料
    6. 1.17 MB  |  27次下載  |  1 積分
    7. 4筆記本電腦主板的元件識別和講解說明
    8. 4.28 MB  |  18次下載  |  4 積分
    9. 5開關電源原理及各功能電路詳解
    10. 0.38 MB  |  11次下載  |  免費
    11. 6100W短波放大電路圖
    12. 0.05 MB  |  4次下載  |  3 積分
    13. 7基于單片機和 SG3525的程控開關電源設計
    14. 0.23 MB  |  4次下載  |  免費
    15. 8基于AT89C2051/4051單片機編程器的實驗
    16. 0.11 MB  |  4次下載  |  免費

    本月

    1. 1OrCAD10.5下載OrCAD10.5中文版軟件
    2. 0.00 MB  |  234313次下載  |  免費
    3. 2PADS 9.0 2009最新版 -下載
    4. 0.00 MB  |  66304次下載  |  免費
    5. 3protel99下載protel99軟件下載(中文版)
    6. 0.00 MB  |  51209次下載  |  免費
    7. 4LabView 8.0 專業版下載 (3CD完整版)
    8. 0.00 MB  |  51043次下載  |  免費
    9. 5555集成電路應用800例(新編版)
    10. 0.00 MB  |  33562次下載  |  免費
    11. 6接口電路圖大全
    12. 未知  |  30320次下載  |  免費
    13. 7Multisim 10下載Multisim 10 中文版
    14. 0.00 MB  |  28588次下載  |  免費
    15. 8開關電源設計實例指南
    16. 未知  |  21539次下載  |  免費

    總榜

    1. 1matlab軟件下載入口
    2. 未知  |  935053次下載  |  免費
    3. 2protel99se軟件下載(可英文版轉中文版)
    4. 78.1 MB  |  537793次下載  |  免費
    5. 3MATLAB 7.1 下載 (含軟件介紹)
    6. 未知  |  420026次下載  |  免費
    7. 4OrCAD10.5下載OrCAD10.5中文版軟件
    8. 0.00 MB  |  234313次下載  |  免費
    9. 5Altium DXP2002下載入口
    10. 未知  |  233046次下載  |  免費
    11. 6電路仿真軟件multisim 10.0免費下載
    12. 340992  |  191183次下載  |  免費
    13. 7十天學會AVR單片機與C語言視頻教程 下載
    14. 158M  |  183277次下載  |  免費
    15. 8proe5.0野火版下載(中文版免費下載)
    16. 未知  |  138039次下載  |  免費