在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 運(yùn)用智能的調(diào)試和綜合技術(shù)隔離FPGA設(shè)計(jì)中的錯(cuò)誤

            運(yùn)用智能的調(diào)試和綜合技術(shù)隔離FPGA設(shè)計(jì)中的錯(cuò)誤

            作者: 時(shí)間:2013-08-09 來源:網(wǎng)絡(luò) 收藏

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

            用智能的調(diào)試與綜合技術(shù)隔離FPGA設(shè)計(jì)中的錯(cuò)誤

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

            端口不匹配

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

            視圖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]

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

            約束的清除

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

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

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

            Synplify Pro/Premier GUI: Run -> Constraint check

            或采用TCL命令:project -run constraint_check

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

            在Synplify Pro/Premier 軟件中生成時(shí)鐘同步報(bào)告projectName_async_clk.rpt.csv:

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

            采用TCL命令: set_option -reporting_async_clock

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

            縮短時(shí)間

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

            為縮短運(yùn)行時(shí)間,模塊化流程必不可少。這種流程支持設(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ì),甚至還能綜合利用自上而下和自下而上兩種流程。

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

            在TCL中:set_option –continue_on_error 1

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

            用智能的調(diào)試與綜合技術(shù)隔離FPGA設(shè)計(jì)中的錯(cuò)誤

            用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,請(qǐng)查找HDLAnalyst RTL視圖中的紅色塊(圖3)。



            關(guān)鍵詞: FPGA 調(diào)試 隔離

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉