日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>可編程邏輯>如何讀FPGA工程的編譯報(bào)告?(轉(zhuǎn)載)

如何讀FPGA工程的編譯報(bào)告?(轉(zhuǎn)載)

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

資料介紹

1.一定要逐條閱讀編譯報(bào)告
規(guī)模稍微大一點(diǎn)的FPGA工程的警告和criticalwarning動(dòng)輒兩三千條,雖然其中包含大量的“無威脅”警告和重復(fù)警告,但是我覺得至少95%的程序隱患和設(shè)計(jì)問題都可以從這些報(bào)告中找到蛛絲馬跡。

工作中有不少人問過我這些問題:這么多警告怎么看的過來呀?這個(gè)警告、還有那個(gè)到底是什么意思啊?這個(gè)警告我該怎么去掉?........我能夠理解問出這些問題的人的心情,因?yàn)槲耶?dāng)初也被這些警告嚇懵了,也退縮了一段時(shí)間。但是我不能夠理解的是,為什么春天問過我,到了秋天還問我?后來我明白了,因?yàn)橐稽c(diǎn)長進(jìn)都沒有??!

逐條閱讀編譯報(bào)告是合格設(shè)計(jì)者的必須做到的!他能幫助我們在仿真或在線調(diào)試前:

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

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

    在這個(gè)階段,很多問題修正后警告就會(huì)消失,減少了警告的總數(shù);腦中形成了本工程編譯報(bào)告的輪廓后,再閱讀編譯報(bào)告時(shí)就可以快速略過熟悉的“無威脅”警告了,同時(shí)還會(huì)對新出現(xiàn)的警告更加敏感。因?yàn)楫?dāng)新警告出現(xiàn)后,你會(huì)更容易的發(fā)現(xiàn)編譯報(bào)告的“長相”和你印象中的那個(gè)“她”不一樣了。

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

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

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

    3.1Literalvaluetrunctated
    如下圖所示。這個(gè)警告我應(yīng)該是最近才遇到的。

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

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

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

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

    永遠(yuǎn)不要忽視任何警告,因?yàn)樵O(shè)計(jì)錯(cuò)誤或者功能異常很可能隱藏在這些警告中。

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

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

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

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

    3.5用不同的編譯器編譯

    這是我最近才發(fā)現(xiàn)的解決疑難問題的方法之一。

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

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

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


    來源:電子創(chuàng)新網(wǎng)

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

    掃碼添加小助手

    加入工程師交流群

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

    評論

    查看更多

    下載排行

    本周

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

    本月

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

    總榜

    1. 1matlab軟件下載入口
    2. 未知  |  935053次下載  |  免費(fèi)
    3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
    4. 78.1 MB  |  537793次下載  |  免費(fèi)
    5. 3MATLAB 7.1 下載 (含軟件介紹)
    6. 未知  |  420026次下載  |  免費(fèi)
    7. 4OrCAD10.5下載OrCAD10.5中文版軟件
    8. 0.00 MB  |  234313次下載  |  免費(fèi)
    9. 5Altium DXP2002下載入口
    10. 未知  |  233046次下載  |  免費(fèi)
    11. 6電路仿真軟件multisim 10.0免費(fèi)下載
    12. 340992  |  191183次下載  |  免費(fèi)
    13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
    14. 158M  |  183277次下載  |  免費(fèi)
    15. 8proe5.0野火版下載(中文版免費(fèi)下載)
    16. 未知  |  138039次下載  |  免費(fèi)
    抚顺市| 宣威市| 雷波县| 金阳县| 那曲县| 五原县| 屏山县| 玛纳斯县| 凉山| 浦城县| 张家界市| 金乡县| 本溪| 门头沟区| 年辖:市辖区| 武陟县| 古丈县| 仁化县| 开鲁县| 湘西| 卢龙县| 亚东县| 泰顺县| 麻阳| 始兴县| 成安县| 大英县| 平远县| 清丰县| 咸阳市| 疏附县| 木里| 秦安县| 托克逊县| 克什克腾旗| 虎林市| 高尔夫| 鄂温| 葫芦岛市| 荆门市| 铁岭市|