久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡

你的位置:首頁 > 測試測量 > 正文

實例分析:如何快速找到并解決隔離FPGA設(shè)計中的問題

發(fā)布時間:2013-10-26 責(zé)任編輯:sherryyu

【導(dǎo)讀】如果您的FPGA設(shè)計無法綜合或者沒能按預(yù)期在開發(fā)板上正常工作,原因往往不明,要想在數(shù)以千計的RTL和約束源文件中找出故障根源相當(dāng)困難,而且很多這些文件還可能是其他設(shè)計人員編寫的。這里將結(jié)合實例來分析,如何快速找到并解決FPGA中的設(shè)計錯誤。

如果您的FPGA設(shè)計無法綜合或者沒能按預(yù)期在開發(fā)板上正常工作,原因往往不明,要想在數(shù)以千計的RTL和約束源文件中找出故障根源相當(dāng)困難,而且很多這些文件還可能是其他設(shè)計人員編寫的。考慮到FPGA設(shè)計迭代和運行時間的延長,設(shè)計人員應(yīng)該在設(shè)計流程的早期階段就找出可能存在的諸多錯誤,并想方設(shè)法重點對設(shè)計在開發(fā)板上進行驗證。

在特定條件下采用更智能的技術(shù)來隔離特定錯誤,找到問題電路的源頭并漸進式修復(fù)錯誤,這很重要。為了節(jié)省時間,您可以對時鐘、約束和模塊級接口進行初步設(shè)置檢查以確保符合設(shè)計規(guī)范,這樣就不必在綜合與布局布線(P&R)時浪費大量時間。

Synopsys 公司的Synplify Premier 和Synplify Pro FPGA設(shè)計工具以及Identify RTLDebugger 等產(chǎn)品能幫助設(shè)計人員完成上述工作。這些工具的特性使得設(shè)計人員能快速隔離錯誤,有效縮短運行時間,并減少開發(fā)板啟動所需的迭代次數(shù)。

精確找到開發(fā)板上的問題

如果開發(fā)板出現(xiàn)明顯的功能性錯誤,要縮小查找問題根源的范圍可能會相當(dāng)困難。為了進行設(shè)計調(diào)試,我們應(yīng)當(dāng)創(chuàng)建附加電路并保留某些節(jié)點,以便我們對設(shè)計運行時得到的數(shù)據(jù)進行探測、檢查和分析。下面我們就看看如何用板級調(diào)試軟件來查找錯誤。

按下列四步法并利用RTL調(diào)試器,您能精確查找問題,并對信號和關(guān)注的條件采樣,然后將觀察結(jié)果關(guān)聯(lián)至原始RTL,從而將問題鎖定在RTL規(guī)范或約束設(shè)置范圍內(nèi)。

第一步:指定探測。在RTL中明確要監(jiān)控哪些信號和條件。在此要聲明您所感興趣的觀察點(要觀察的信號或節(jié)點)和斷點(RTL控制流程聲明,如IF、THEN 和CASE 等)。

第二步:通過探測構(gòu)建設(shè)計。利用附加的監(jiān)控電路——即用于根據(jù)您的監(jiān)控要求捕捉并導(dǎo)出調(diào)試數(shù)據(jù)的智能內(nèi)部電路仿真器(IICE)——對FPGA設(shè)計進行綜合。

第三步:分析和調(diào)試。設(shè)計綜合完成之后,運行設(shè)計并用RTL調(diào)試器觀察數(shù)據(jù)。在開發(fā)板上運行測試時,觀察點和斷點共同觸發(fā)數(shù)據(jù)采樣,使您能在您所關(guān)注的非常明確的條件下觀察并調(diào)試特定節(jié)點的電路的行為。您可將觀察到的采樣數(shù)據(jù)寫入VCD 文件并將其關(guān)聯(lián)到RTL。

第四步:漸進性修復(fù)錯誤(incrementaLfix)。一旦找到了錯誤所在,就可以通過分級、漸進式流程在RTL或約束中漸進地進行修復(fù)。

時序和功能性錯誤的可視檢查

FPGA設(shè)計和調(diào)試工具還有一大優(yōu)點,就是能顯示RTL和網(wǎng)表級原理圖。舉例來說,具有互動調(diào)試功能的原理圖查看器能夠顯示設(shè)計的RTL和網(wǎng)表原理圖,便于您進行觀察并將時序報告和VCD 數(shù)據(jù)(設(shè)計在開發(fā)板上運行時產(chǎn)生)關(guān)聯(lián)至RTL源文件。查看器包含一個RTL視圖,用來以圖示的方式描述設(shè)計。該視圖在綜合RTL編譯階段后提供,由技術(shù)獨立的加法器、寄存器、大型多路選擇器和狀態(tài)機等組件構(gòu)成。通過RTL原理圖,您可以交叉探測原始RTL,對不符合預(yù)定規(guī)范的設(shè)計進行調(diào)整,同時也可以探測到約束編輯器,從而更簡便地更新和指定約束(圖1)。

FPGA設(shè)計和調(diào)試

要將錯誤操作的源頭追溯到RTL,您可以利用RTL調(diào)試器在RTL原理圖上方實時插入觀察到的操作數(shù)據(jù)。

原理圖查看器包括一個網(wǎng)表級技術(shù)視圖,用于顯示綜合后的實際設(shè)計實現(xiàn)情況。在HDLAnalyst 原理圖查看器中,該視圖基于查找表、寄存器和DSP slice 等基本的賽靈思器件原語。您可在原理圖中對路徑進行交叉探測,追溯到原始的RTL以及綜合后和布局布線后的最終時序報告,以便分析和提高整體性能。

在FPGA中原型設(shè)計的ASIC 門控時鐘結(jié)構(gòu)并非FPGA實現(xiàn)中的必要環(huán)節(jié),這會導(dǎo)致FPGA資源使用效率低下。解決該問題的有效辦法就是用FPGA綜合軟件轉(zhuǎn)換時鐘。

大型設(shè)計的調(diào)試

在大型設(shè)計中探測所有信號是不可能,因為生成的數(shù)據(jù)量極為龐大,而且探測數(shù)據(jù)所需的額外調(diào)試邏輯也太大。片上調(diào)試方法的一個常見弊病是難以提前預(yù)測需要對哪些信號進行探測和監(jiān)控。

一些調(diào)試軟件通過分治法能夠在一定程度上解決這個問題。利用多路復(fù)用的采樣組,設(shè)計人員可以有選擇性地進行采樣并通過多路復(fù)用的路徑和共享的IICE 在信號組之間切換。這種方法增加了可觀察的信號和條件,而且不會增加數(shù)據(jù)存儲要求。您可以即時切換感興趣的信號組,不必花時間進行重新調(diào)整或重新綜合新的設(shè)計。

不幸的是,在探測和采樣數(shù)據(jù)時用使的調(diào)試IICE 邏輯會占用包括存儲器BRAM 在內(nèi)的芯片資源。您可在SRAM 存儲卡中對IICE 采樣數(shù)據(jù)進行片外存儲,以減少片上BRAM 的使用。這種方法的另一個好處是能增加采樣數(shù)據(jù)的深度。

[page]

我的設(shè)計無法綜合

設(shè)計錯誤的出現(xiàn)可能導(dǎo)致無法實現(xiàn)有效綜合或布局布線。由于存在成千上萬的RTL和約束源文件,因此可能需要幾個星期才能完成首次綜合與布局布線。進行FPGA原型設(shè)計時,應(yīng)讓ASIC 設(shè)計源文件處于“FPGA就緒”狀態(tài)。舉例來說,就是要進行門時鐘轉(zhuǎn)換。

在 FPGA中原型設(shè)計的ASIC門控時鐘結(jié)構(gòu)并非FPGA實現(xiàn)中的必要環(huán)節(jié),這會導(dǎo)致FPGA資源使用效率低下。解決該問題的有效辦法就是用FPGA綜合軟件轉(zhuǎn)換時鐘。例如,門控或生成時鐘轉(zhuǎn)換功能可將生成時鐘和門控時鐘邏輯從順序組件的時鐘引腳轉(zhuǎn)移到使能引腳,這樣您就能將順序組件直接綁定到源時鐘,消除偏移問題,并減少設(shè)計中所需的時鐘源數(shù)量,進而節(jié)約資源。

在Synplify Premier 軟件中啟用門控時鐘選項:

– 選擇Project->Implementation Options

– 在GCC & Prototyping Tools 標(biāo)簽中點擊Clock Conversion checkbox

或在TCL中使用以下命令

set_option -fix_gated_and_generated_ clocks 1

在Synplify Pro/Premier 中執(zhí)行門控和生成時鐘轉(zhuǎn)換,而set_option -conv_mux_xor_gated_clocks 1則針對基于Synopsys HAPS 的設(shè)計在Synplify Premier 時鐘樹的多路選擇器或OR 門上執(zhí)行門控時鐘轉(zhuǎn)換。

“完整”的系列時鐘約束包括在所有正確位置定義時鐘并在生成的時鐘之間定義關(guān)系。有時候,時鐘會出于某種原因與真正的源斷開關(guān)聯(lián),例如時鐘源和時鐘目標(biāo)端間產(chǎn)生了黑盒,這樣會造成順序組件的時鐘缺失或時鐘約束放置錯誤,導(dǎo)致首次時鐘轉(zhuǎn)換因為缺少時鐘約束而失敗。在許多情況下,轉(zhuǎn)換失敗是由約束不完整造成的。舉例來說,門控邏輯中可能存在一個組合回路,應(yīng)在時鐘轉(zhuǎn)換之前利用異常處理約束將其打破。綜合編譯階段之后會提供一個門控時鐘報告,告訴您有哪些門控和生成時鐘已被轉(zhuǎn)換以及被轉(zhuǎn)換時鐘的名稱、類型、分組和相關(guān)約束。另一個時鐘列表則顯示的是未轉(zhuǎn)換的時鐘,并包含故障信息,用于說明原因。圖2 給出了報告實例。

實例分析:如何快速找到并解決FPGA設(shè)計錯誤

舉例來說,如果設(shè)計中有黑盒子,您可以在RTL中指定具體的軟件命令,用于為自動化門控時鐘轉(zhuǎn)換提供輔助。比方說,采用 syn_gatedclk_clock_en 指令在黑盒子中指定啟用引腳的名稱,用syn_gatedclk_clock_en_polarity 指令指出黑盒子上時鐘使能端口的極性。每個轉(zhuǎn)換實例和驅(qū)動實例的時鐘引腳都被賦予一個可搜索的屬性,從而能在設(shè)計數(shù)據(jù)庫中識別,并提取到定制 TLC/Find 腳本生成報告中。

端口不匹配

設(shè)計包含公司內(nèi)外部提供的文件。在設(shè)計中進行IP 實例化或預(yù)驗證分級模塊時,經(jīng)常會出現(xiàn)“端口不匹配”錯誤,而且難以檢測,特別是出現(xiàn)在混合語言設(shè)計中更是如此。舉例來說,如果頂層VHDL實體 “Top”實例化Verilog 模塊“sub”,那么頂層VHDL聲明sub 有4 位端口,而實際Verilog 模塊只有3 位端口。就Synplify Premier 軟件而言,會立即將其標(biāo)記為不匹配,并在單獨的日志報告中通過超級鏈接引用該錯誤。

視圖work.sub.syn_black_box 和視圖work.sub.verilog 之間的接口不匹配

細節(jié):

  ========

  源視圖work.sub.syn_black_box 中的以下位端口在目標(biāo)視圖work.sub.verilog 中不存在。

  =======================================

  Bit Port in1[4]

  Bit Port in2[4]

  Bit Port dout[4]
多級層次中,如何將不匹配問題追蹤到問題模塊的RTL定義呢?工具應(yīng)以某種方式給所有模塊實例打標(biāo)簽,比方說采用orig_inst_of 屬性。屬性的值包括模塊的原始RTL名稱,可方便地檢索至RTL。例如,假設(shè)sub_3s 導(dǎo)致端口不匹配錯誤,那么我們就能用以下TCL命令找回RTL模塊的原始名稱“sub”:get_prop -prop orig_inst_of {v:sub_3s} 返回值為“sub”。

[page]

約束的清除

指定充足且正確的約束將影響到結(jié)果質(zhì)量和功能。約束聲明通常應(yīng)包括三個元素:主時鐘和時鐘組定義、異步時鐘聲明、錯誤和多循環(huán)路徑聲明。

進行綜合之前檢查約束是一個很好的方法。提供約束查看器的工具能發(fā)現(xiàn)語法錯誤并分析時序約束和實例名稱是否適用,警示問題所在。比方說,它會報告通配符擴展后約束如何應(yīng)用以及在定義時鐘約束后產(chǎn)生的時鐘關(guān)系。它會標(biāo)出那些由于參數(shù)或?qū)ο箢愋蜔o效或不存在而未被應(yīng)用的時序約束。

進行綜合之前,在Synplify Pro/Premier 軟件中生成名為projectName_cck.rpt 的約束檢查器報告:

Synplify Pro/Premier GUI: Run -> Constraint check

或采用TCL命令:project -run constraint_check

注意,要避免潛在的MetA不穩(wěn)定性,應(yīng)運行“異步時鐘報告”,提醒您注意那些在一個時鐘域啟動而在另一個時鐘域中結(jié)束的路徑。

在Synplify Pro/Premier 軟件中生成時鐘同步報告projectName_async_clk.rpt.csv:

Synplify Pro/Premier GUI:Analysis->Timing Analyst并選擇Generate Asynchronous Clock Report 選項。

采用TCL命令: set_option -reporting_async_clock

正確的方法是確保您充分且全面地對設(shè)計進行約束,而且不會過度約束(過度會導(dǎo)致運行時間延長,生成關(guān)鍵路徑錯誤報告)。確保您已完全指定多周期和錯誤路徑,并且已為得到的時鐘設(shè)置了約束(set_multicycle_path,set_false_path)。

縮短調(diào)試時間

實施潛在的RTL或約束故障解決方案可能需要好幾個小時才能看出結(jié)果。我們來看看如何利用分級“分治法”設(shè)計方法和“錯誤繼續(xù)”功能在單次綜合迭代中發(fā)現(xiàn)多個錯誤,從而減少迭代次數(shù)。

為縮短運行時間,模塊化流程必不可少。這種流程支持設(shè)計保存,能鎖定已經(jīng)證明有效的設(shè)計部分。支持模塊化流程的工具能幫助您在進行綜合前創(chuàng)建RTL分區(qū),也就是編譯點。一些軟件還能幫助設(shè)計人員將有故障的設(shè)計部分變成黑盒子,徹底將該部分導(dǎo)出并作為獨立的設(shè)計子項目進行再加工。一旦解決問題,子項目還能夠以網(wǎng)表形式通過自下而上的流程或用作為RTL通過自上而下的流程整合回原設(shè)計,甚至還能綜合利用自上而下和自下而上兩種流程。

要集成和調(diào)試大型設(shè)計,應(yīng)盡早在設(shè)計進程中發(fā)現(xiàn)錯誤的說明。舉例來說,“錯誤繼續(xù)”功能可提供涉及每個綜合通過信息的組合錯誤報告。“錯誤繼續(xù)”能容許非致命的非語法HDL編譯問題和某些映射錯誤,因此設(shè)計人員可在每次綜合迭代中分析并完成盡可能多的設(shè)計內(nèi)容。為了在帶有 SynplifyPro/Premier GUI 的Synplify Premier 軟件中調(diào)用“錯誤繼續(xù)”功能,應(yīng)啟用項目視圖左側(cè)的Continue-on-Error 選項。

在TCL中:set_option –continue_on_error 1

用屬性is_error_blackbox=1 標(biāo)記故障模塊和帶接口錯誤的實例父模塊,如圖3 所示

標(biāo)記故障模塊和帶接口錯誤的實例父模塊

用TCL找到所有“故障實例”:

  c_list [find -hier -inst * -filter

  @is_error_blackbox==1]

  用TCL列出所有“故障模塊”:

  get_prop -prop inst_of [find -hier -inst

  * -filter @is_error_blackbox==1]

要查看將被關(guān)入黑盒子或?qū)С龅墓收夏K,請查找HDLAnalyst RTL視圖中的紅色塊(圖3)。

通過導(dǎo)出模塊隔離問題

您可將故障模塊作為完全獨立的綜合項目導(dǎo)出,以便專門對該模塊進行調(diào)試。導(dǎo)出過程會產(chǎn)生隔離的綜合項目,其中包含所有該模塊的源文件、語言標(biāo)準(zhǔn)和編譯庫,以及所含文件的目錄路徑和路徑順序,以達到對該模塊進行單獨綜合與調(diào)試的目的。如前一節(jié)所示,出現(xiàn)錯誤的模塊會自動在設(shè)計數(shù)據(jù)庫中標(biāo)出錯誤屬性,并在設(shè)計原理圖中突出顯示,便于對該模塊進行查找和提取。

為了導(dǎo)出模塊及其所有相關(guān)源文件進行隔離調(diào)試,應(yīng)首先在Synplify Pro/Premier 軟件GUI 中(圖4)的設(shè)計分級視圖或RTL視圖中選擇設(shè)計模塊或?qū)嵗缓簏c擊右鍵并在彈出菜單中選擇“Generate Dependent File List”。

相關(guān)閱讀:

 菜鳥必看!學(xué)習(xí)FPGA常見的四大誤區(qū)
http://www.lvepin.com/gptech-art/80021601

要采購開發(fā)板么,點這里了解一下價格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索

關(guān)閉

?

關(guān)閉

久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡
成人一区不卡| 青青久久av| 亚洲三级欧美| 久久国产乱子精品免费女| 欧美午夜不卡| 激情综合自拍| 神马午夜久久| 男人的天堂久久精品| 亚洲无线一线二线三线区别av| 日韩福利视频网| 日韩激情综合| 日本亚洲最大的色成网站www | 日韩视频一区| 亚洲深夜影院| 精品一区欧美| 亚洲五月婷婷| 视频一区欧美日韩| 99国产精品| 六月丁香综合| 国产精品视区| 精品中文在线| 日韩一区三区| 日韩在线欧美| 91久久在线| 人人爽香蕉精品| 国产福利电影在线播放| 亲子伦视频一区二区三区| 国产高潮在线| 久久久久久久久久久妇女| 亚洲精品网址| 丝袜诱惑制服诱惑色一区在线观看| 综合五月婷婷| 欧美精品影院| 国产精品日本一区二区三区在线| 另类小说一区二区三区| 成人午夜网址| 亚洲国产日韩欧美在线| 老司机精品久久| 亚洲激情欧美| 日韩av黄色在线| 欧美激情福利| 久久青草久久| 日韩一区二区免费看| 中文字幕成人| 成午夜精品一区二区三区软件| 日韩在线高清| 婷婷综合国产| 牛牛精品成人免费视频| 日韩精品dvd| 一区二区亚洲精品| 综合视频一区| 国产在线观看91一区二区三区| 精品72久久久久中文字幕| 日韩伦理一区| 婷婷综合成人| 精品三级av| 午夜一级久久| 欧美专区一区| 国产欧美一区二区色老头| 高潮一区二区| 久久国产精品久久久久久电车| 国产精品美女在线观看直播| se01亚洲视频| 中文字幕成人| 麻豆国产一区| 激情综合网址| 日韩成人精品一区二区三区| 日韩在线欧美| 日本一区二区中文字幕| 麻豆视频一区二区| 欧美成人久久| 久久精品超碰| 伊人久久婷婷| 国产精品xxx| 久久xxxx| 日韩高清电影免费| 欧美aa在线观看| 欧美日一区二区三区在线观看国产免 | 麻豆精品视频在线观看视频| 欧美成人久久| 国产精品一区高清| 亚洲一卡久久| 精品久久福利| 中文字幕日韩高清在线 | 亚洲精品在线二区| 一本大道色婷婷在线| 亚洲婷婷免费| 免费在线成人| 欧美一区自拍| 日韩在线观看不卡| 免费亚洲婷婷| 四虎精品一区二区免费| 色婷婷狠狠五月综合天色拍| 日本欧美一区二区在线观看| 久久亚洲成人| 精品日韩在线| 麻豆亚洲精品| 狠狠爱成人网| 日本一区二区免费高清| 日本强好片久久久久久aaa| 国产精品99一区二区| 欧美视频一区| 日本一不卡视频| 欧美日韩国产综合网| 97久久超碰| 久久亚洲影院| 久久国产日本精品| 日韩影院二区| 久久字幕精品一区| 国产精品久久久久久久免费软件| 天堂va蜜桃一区二区三区| 欧美日韩免费看片| 在线天堂资源www在线污| 视频一区日韩精品| 中文字幕av一区二区三区人| 亚洲一级二级| 久久的色偷偷| 蜜臀国产一区二区三区在线播放| 日韩综合精品| 国产一区二区三区亚洲综合| 日韩在线观看中文字幕| 精品91久久久久| 激情综合网五月| 日本久久黄色| 日韩久久精品| 国产精品99在线观看| 久久精品五月| 国产精品尤物| 日本欧美韩国一区三区| 日本国产欧美| 中文字幕日韩高清在线| 亚洲综合色婷婷在线观看| 在线视频日韩| 美女亚洲一区| 色爱综合av| 日韩一区欧美| 欧美日韩在线观看首页| 三级精品视频| 久久久久亚洲| 国产在线视频欧美一区| 日本黄色精品| 久久久久免费| 亚洲欧美综合| 一本一道久久a久久精品蜜桃| 亚洲欧洲午夜| 欧美中文字幕| 五月天久久777| 国产精品婷婷| 久久高清一区| 99久久激情| 成人精品亚洲| 国产成人1区| 国产在线不卡一区二区三区| 蜜桃久久久久| 福利视频一区| 亚洲电影有码| 欧美 日韩 国产一区二区在线视频| 日韩免费福利视频| 欧美片第1页| 99国产成+人+综合+亚洲欧美| 一区三区视频| av资源亚洲| 欧美不卡高清| 亚洲一区二区av| 日韩国产欧美一区二区三区| 91精品在线免费视频| 久久伊人国产| 国产不卡人人| av成人国产| 亚欧成人精品| 97视频热人人精品免费| 日韩国产网站| 日韩有码av| 欧美成人aaa| 亚洲黄色免费av| 视频在线观看一区| 日韩精品视频中文字幕| 91亚洲一区| 婷婷激情图片久久| 日本不卡在线视频| 国产精品最新| 日本久久成人网| 午夜在线一区二区| 国产精品巨作av| 精品在线91| 日本不卡在线视频| 九九精品调教| 免费日韩一区二区| 久久精品国产久精国产| 久久精品国语| 91欧美极品| 国内揄拍国内精品久久| 日韩电影免费在线观看| 美女久久一区| 久久精品一本| 亚洲国产日韩欧美在线| 日本色综合中文字幕| 91精品一区二区三区综合| 少妇精品在线| 久久亚洲国产|