當(dāng)前位置:首頁 > EDA > 電子設(shè)計(jì)自動化
[導(dǎo)讀]如果您的FPGA設(shè)計(jì)無法綜合或者沒能按預(yù)期在開發(fā)板上正常工作,原因往往不明,要想在數(shù)以千計(jì)的RTL和約束源文件中找出故障根源相當(dāng)困難,而且很多這些文件還可能是其他設(shè)計(jì)人員編寫的??紤]到FPGA設(shè)計(jì)迭代和運(yùn)行時間的

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

在Synplify Premier軟件中啟用門控時鐘選項(xiàng):

–選擇Project->Implementation Options

–在GCC Prototyping Tools標(biāo)簽中點(diǎn)擊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è)計(jì)在Synplify Premier時鐘樹的多路選擇器或OR門上執(zhí)行門控時鐘轉(zhuǎn)換。

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

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

端口不匹配

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

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

細(xì)節(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)以某種方式給所有模塊實(shí)例打標(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”。

約束的清除

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

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

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

Synplify Pro/Premier GUI:Run -> Constraint check

或采用TCL命令:project -run constraint_check

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

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

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

采用TCL命令:set_option -reporting_async_clock

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

縮短調(diào)試時間

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

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

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

在TCL中:set_option–continue_on_error 1

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

用TCL找到所有“故障實(shí)例”:

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

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

將每個分級模塊的錯誤進(jìn)行修復(fù)后,您可將其再集成到設(shè)計(jì)中,既可作為RTL在整個設(shè)計(jì)環(huán)境中重新綜合(自上而下的綜合流程),也可作為網(wǎng)表(自下而上的流程)進(jìn)行綜合(見圖5)。

要滿足時序要求就不可避免地要用到設(shè)計(jì)分級,這可能會帶來挑戰(zhàn)。層級界限可能會限制性能,除非為設(shè)計(jì)的每個層級分區(qū)建立時序預(yù)算。使用RTL分區(qū)(也稱為手動鎖定編譯點(diǎn))時,一些工具能自動設(shè)置時序預(yù)算。Synplify Pro/Premier軟件還能提供自動編譯點(diǎn),能創(chuàng)建自動分區(qū),比方說通過多處理加速運(yùn)行速度。預(yù)算功能為每個RTL分區(qū)建立接口邏輯模型(ILM),這樣軟件就能知道如何滿足每個分區(qū)的時序目標(biāo)。這樣,您可為每個編譯點(diǎn)指定一個約束文件,從而覆蓋手動鎖定編譯點(diǎn)自動時序預(yù)算。

Synopsy近期進(jìn)行的全球用戶調(diào)查發(fā)現(xiàn),59%的設(shè)計(jì)人員認(rèn)為“設(shè)計(jì)規(guī)范的正確性”是最重要的設(shè)計(jì)挑戰(zhàn)之一。這個挑戰(zhàn)會造成設(shè)計(jì)延期,最壞情況下可能導(dǎo)致設(shè)計(jì)失敗。設(shè)計(jì)工具必須能盡早捕捉到錯誤,并就設(shè)計(jì)工作提供更高的可視化,確保設(shè)計(jì)規(guī)范得到有效驗(yàn)證和修復(fù)。這些工具還必須就提出的設(shè)計(jì)修復(fù)方案提供反饋途徑。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉