• <source id="aguu0"></source>
  • <tt id="aguu0"><noscript id="aguu0"></noscript></tt>
    <kbd id="aguu0"></kbd>
  • <s id="aguu0"><optgroup id="aguu0"></optgroup></s>
    <tt id="aguu0"><center id="aguu0"></center></tt>
  • {$cluname}

    科偉奇論壇 » CPLD/FPGA綜合論壇 » 驗證FPGA設計:模擬,仿真,還是碰運氣?


    ‹‹上一主題 | 下一主題›› 查看 6430
    發表一個新帖子 發表回復

    標題 驗證FPGA設計:模擬,仿真,還是碰運氣? 在百度搜索本主題 [ 搜 ] [ 打印 ] [ 推薦 ] [收藏帖子] [ 收藏到新浪VIVI] [ 訂閱 ]

    yeah (附小一年級)
    樓主   [點擊復制本網址] [ 字體: ] [ 編輯 ] [ 報告 ] [評分]
    Rank:1
Rank:1
    UID 126
    帖子 7
    積分 15 點
    金幣 30 枚
    魅力 12 度
    注冊 2009年12月19日
    驗證FPGA設計:模擬,仿真,還是碰運氣?
    現在的許多FPGA用戶工作中都要用到模擬。但是,什么時候才能不用模擬,直接將設計放到芯片里?
      要點
      * 大型FPGA設計中需要采取類似于 ASIC設計的流程。
      * 在驗證流程中,有必要將模擬和基于FPGA的仿真混合使用。
      * 對于模擬和仿真的混合尚無公認的指導性方法。
      * 通過簡短的調查,提出了一種可為大家接受的驗證先進FPGA設計的建議方法。

      曾幾何時,要驗證 FPGA 的邏輯設計,可以先編譯、寫入,然后按下評估板上的復位按鈕。但是,隨著FPGA規模的增大,這種被Xilinx公司軟件產品營銷總監Hitesh Patel 稱為“blow and go”(逃生法)的驗證方式已不能滿足要求。要做出一個近乎完美的有百萬個門的設計,達到可以從封裝引腳就可以調試的地步,成功的機會非常之渺茫。因此,FPGA設計組也開始采取ASIC設計組已使用多年的方法,采用基于軟件的設計模擬。

      但是這種方法也引出了一系列重要的問題: FPGA設計中模擬的作用應該跟在ASIC設計中一樣嗎?驗證人員是否還是要在某個時刻將設計裝入產品FPGA并馬上開始測試它?如果是這樣,這個時刻是在什么時候?為了弄清設計團隊現在都在做什么,我們詢問了一些工作中與FPGA用戶關系最緊密的人。作為參考,我們還詢問了幾個在驗證過程中采用FPGA原型來進行ASIC設計團隊,以了解他們的意見。

      優點和缺點

      多數人討論驗證流程時,首先會比較模擬和在FPGA內驗證的優劣。盡管有經驗的讀者可能會覺得乏味,本文也還是采用類似的模式。

      模擬的一個很大的優點自然是它的訪問能力。該方法可以以時鐘周期分辨率觀察RTL (寄存器傳輸層)設計中任何信號。只要有必要,對設計狀態的控制可以達到任何水平。達到可觀性和可控性的唯一限制就是對RTL的了解程度和對模擬環境的掌握程度。你可以在有限的設計領域交互式地工作,也可以構建運行好幾天的大型試驗。構建的模擬項目運行相對較快,所以可以快速地對很多東西進行試驗。

      模擬的另一優點是現在的多數模擬環境都可以很好地使用OVL(開放驗證庫,Open Verification Library)或SystemVerilog斷言。經?梢哉业街苯拥姆椒▽⑦@些斷言輸入到模擬環境中。隨著基于斷言的驗證日益普遍,這點就越發重要。此外,通過模擬環境還可以將設計的激勵和測量部分與設計本身分割開。這看起來似乎不是主要問題,但是,在密集驗證工作中,這一特點對于保證設計的完整性會很重要。

      但是,模擬比較慢。“如果你在做一個有2百萬或3百萬個門的塊,模擬非常好,” 硬件仿真設備廠商Eve的營銷副總裁Lauro Rizzatti說。“但是,在有多個塊的層次,模擬會變慢,最終達到完全不可用的程度。”

      設計的復雜度并不是唯一的限制因素。Altera公司技術營銷高級經理Phil Simpson指出,如果設計本身就需要大量數據來進行驗證,即使在塊的級別模擬也會變得不實用。他以視頻編解器為例說明這個問題。在視頻編解器中內部狀態非常之多,所以可能只有在15分鐘的視頻短片中間才能表露出問題。但是,對15分鐘高清視頻壓縮和解壓的模擬會非常費勁。

      對電路內方法的討論

      FPGA 內驗證方法的優劣與模擬正好相反。首先, 顯然FPGA 很快。人們經?梢砸匀龠\行設計。不過,在某些情況下,這樣做就意味著時序收斂問題會較多,超乎設計早期預期的程度。另外,與模擬不同,將多個模塊綜合到設計中時,FPGA 并不會降速。這樣就可以測試整個設計,而非單個塊,并且可以以大量的實際數據集來運行測試,而不是采用精心編制的測試用例。

      由于FPGA速度較快,而且它的I/O部件就是實際應用所需要的I/O部件,所以也可以采用系統中測試設計:可以在裝入目標系統的FPGA開發板上測試,或者,如果目標PCB(印刷電路板)可以用的話,就在目標PCB上測試。這樣的測試可以消除測試用例是否能夠如實反映設計工作環境的疑慮。另外,在實際使用的電路板上測試設計可以暴露出I/O方面的問題——例如電氣問題、信號完整性問題,或是在高速串行協議下不兼容問題。這些問題用其他方法幾乎無法檢測,而系統內測試則會形成一個軟件測試平臺,帶來額外的好處。

      這些優點都是系統級驗證方面的。但Altera公司的Simpson指出:在芯片內測試塊也有一些有用的優點。“一旦將某個塊裝入FPGA,就可以使用嵌入式處理器核(如Nios)來輔助調試過程,” Simpson說。“例如,處理器核可以使數據進出芯片,可以控制測試時序。這樣,在塊周邊電路還沒做好的時候就可以單獨測試某個塊。”

      “在我們的自有IP(知識產權)開發部門,我們編寫了在Nios核上運行的事務處理器,以此來生成偽隨機測試,” Simpson 接著說。“據我所知,這樣的做法在用戶中還不普遍,但它非常有價值。”
     既然FPGA有這么多優點,您可能會覺得疑惑:直接將編好的核裝入FPGA、為它編寫一個試件(test fixture),然后開始測試 ,這樣做會有什么問題呢?這個問題的答案在于FPGA的一些缺點。

      FPGA的缺點

      最明顯的突出的問題是可見性。理論上說, FPGA中每個邏輯元件都可以通過芯片的調試接口觀察。但是,廠商估計只有一半的FPGA用戶在設計中加入了調試接口并將其用于驗證?紤]到內置調試口提供的功能是如此強大,這非常令人吃驚。Xilinx公司的Patel認為,隨著FPGA規模變大,人們會更普遍地使用調試接口。

      因此,在多數情況下,如果想觀測設計中的某個信號,就必須先把它引出到一個引腳,然后用邏輯分析儀分析它。由于邏輯分析儀的特點,可能還需要引出大量其他信號,如內部時鐘。這樣做就會有很多額外的工作,另外,如果要觀測的信號是一個與I/O塊相隔甚遠的快信號,可能還必須降低FPGA上的時鐘頻率。因此,一些經理認為:在原始驗證方案中包括對FPGA信號可觀性的要求是很重要的。

      訪問信號所需的附加設計工作是該方法的一個缺點。芯片內部節點的激勵和觀測還涉及另一個問題,那就是需要修改設計、重建和重新綜合測試,因此有可能導致設計和測試部分不能清楚地分割開。如果不能仔細地將調試代碼和設計代碼分開和切實做好版本控制,就可能無法跟蹤這些修改,有可能發生類似于外科醫生把手術工具留在患者體內的情況。

      另外,建立測試的時間也是個弱項。規模較大的設計中,綜合時間并不短,而插入測試設備、重建、重新綜合和重新繪圖的時間也會是個重要因素,可以影響到是否進行某個試驗。這里采用增量綜合(Incremental-synthesis)工具會有所幫助,但是對于有2千萬個門的設計,構造和合成過程可能需要一晚上的時間。

      最后,將測試平臺從模擬環境轉向FPGA環境也有問題。此時,激勵模塊需要有電路,而非一組模擬命令。觀測某個節點需要的不僅是命令,還需要有電路和物理儀器。盡管基于斷言的驗證被越來越多的人接受,但似乎還沒人開發出哪種方法可以系統性地將斷言從模擬環境移植到FPGA。 “現在還沒有可以自動將斷言移植到FPGA的解決方案,但是我們收到的對該功能的要求在不斷增加,” Simpson說。

      覆蓋尺度也是一個弱項。雖然對于模擬環境正在開發完善的工具來測評驗證覆蓋情況和來自不同類工具的熔斷測量值(fuse measurement),但在FPGA領域,幾乎就沒什么覆蓋的概念,也沒有現存的工具可用于測評測試設計的覆蓋情況并將數據報告給中心覆蓋收斂(coverage-closure)系統。

      ASIC開發組的觀察 

      因此,簡言之,每種方法都有優缺點。根據這些信息,有經驗的ASIC設計組(即經常在其驗證流程中采用FPGA者)是如何在模擬測試和基于FPGA的測試間做出平衡的呢?

      視頻處理器廠商Ambarella有一個例子來回答這個問題。執行副總裁Didier LeGall 說,“多數情況下,我們根本就不使用FPGA 仿真。根據我們的經驗,必須得有非常成熟的RTL仿真才會有用。但是,目前流程階段,將設計輸入 FPGA和建立測試平臺(的過程)是一件事倍功半的事。”

      但是,實際應用情況可能會使LeGall 的看法有所調整。Ambarella 公司的SOC (片上系統) 用于以高幀速率處理高清視頻和10M像素靜止圖像,需要采用非?斓膬炔繒r鐘和復雜的算法。但是,LeGall 在對FPGA 仿真做出評論后,又對整個驗證過程的目標提出了一個非常有趣的看法。“新推出IC成功的關鍵不在于完美的驗證工作,” LeGal說。“而在于軟件”:也就是說,要知道設計中哪部分比較容易出問題,并且在開始,而不是事后,就做好軟件解決計劃。這種策略下,驗證工程師經過廣泛的基于FPGA的測試所獲得的很多信息的確會變得比較沒用。

      LSI Corp的存儲元件部門提出了另一個觀點。該部門的副總裁和總經理Bill Wuertz敘述了他們是如何做SCSI (小型計算機系統接口)和SAS (串行連接)控制器的。

      Wuertz 說LSI采用了幾乎是并行的過程,一個驗證小組進行模擬實現一些目的,而另一組則采用FPGA實現另外一些目的。“在設計早期,我們建立一個稱為試驗RTL(trial RTL)的步驟,” Wuertz 說。“我們要知道RTL基本工作正常、各個塊互相已連接好,這是第一個點。在此階段,驗證工作分為兩個方向。模擬小組編寫他們的工具所用的設計,并繼續對單個的塊進行模擬。另一個組,即系統工程組,則通過綜合RTL得到內部開發FPGA 版——我們現在正在設計第五代板卡——然后開始在系統級進行徹底的壓力測試。”
     如Wuertz所述,這兩個組具有不同的工作目的。模擬組要努力確保電路正確。系統組通常不考慮電路,但要確保芯片在變化異常大和非常復雜的存儲網絡環境下可以工作。Wuertz 說FPGA 原型會與一屋子的磁盤和磁帶驅動器相連運行幾天的測試。“這些測試已經過了20多年的發展,”他說。“我們知道,可能需要對不同磁盤驅動器組合進行很長時間的測試后才可以產生暴露設計問題的時間匹配異常情況。”

      LSI 已開發了自有的將兩種環境聯系起來的內部工具。例如,通過這些工具,系統組可以捕捉到導致故障的跟蹤數據,并將此數據轉換為模擬組可用的激勵文件。反過來說,模擬組可以根據它在設計中所發現的危險,給系統組發出提醒。在兩個工作于不同環境的驗證組間建立聯系是LSI公司兩方向測試方法的關鍵。在整個過程中,兩個組會交換數據,而且,最后設計晶粒需要兩個組的結論。

      一種可為大家接受的方法

      根據與FPGA廠商和用戶的討論,我們可以看到對模擬和仿真(圖1)混合驗證流程大家基本達成一致意見。這種流程首先對設計開始元件塊級的模擬——不是傳統上ASIC所用的那種窮舉式的力求完美的模擬,而更像是對實際情況進行檢查。其目標是驗證元件塊可用、引腳工作基本正確、在實驗環境中可滿足FPGA 的時序需要。

    圖1將模擬和電路中調試混合在一起的三種方法體現了開發組目前所用的各種驗證流程傳統FPGA用戶a傳統ASIC設計師b以及新興的混合方法c


      在此階段,很多開發組將某個版本的塊轉入FPGA并開始更為徹底的電路中測試。如果此電路塊(如視頻編解器)需要很長的高速數據流來驗證功能或是包括高速I/O功能,則該方法尤為常見。在其他情況下,繼續對塊進行模擬工作,直到所有問題都經過驗證,可以進行集成為止。

      根據大家的一致意見,當開發組開始將塊集成時——建立試驗系統時——FPGA 才真正被更多人使用。這里,可能就是因為設計太大才無法進行快速模擬,或是對于已知可正常工作的塊,在FPGA上解決集成問題可能要比在模擬器上效率更高點。

      但是,根據大家的意見,從模擬轉到仿真并不是單步的可逆步驟。正如軟件開發中并行進行模擬一樣,模擬工作在系統仿真期間也在繼續。多數開發組利用FPGA 仿真捕捉和隔離缺陷,然后將其送回模擬組診斷。在FPGA上做詳細診斷是非常痛苦的工作。

      這里先總體敘述當前的情況,然后指出該方法的幾個嚴重缺點。首先,在兩個環境間來回傳送測試平臺數據很困難。似乎還沒有方法可以將創建測試的模擬指令自動映射到實施同一測試的 FPGA 結構。第二,各大 FPGA 廠商都可提供的嵌入式RISC核資源似乎遠沒有得到充分利用,它可以管理數據和控制測試,但是又是與模擬測試平臺分開的。理論上說,模擬組可以將其轉為嵌入式處理器核的C代碼,而不是轉為FPGA的RTL。第三,沒有簡單的途徑可以將FPGA 試驗中開發組收集的數據送回模擬平臺。最后,隨著模擬領域基于斷言的驗證工作不斷增多,FPGA 側急需一種類似的基于斷言的工具。

      基于 FPGA的仿真系統銷售廠商對這些問題提出了應對措施(見附文 《解決覆蓋空隙的一些思路》),證明了這些問題是確實存在的。這里的例子有Eve公司的系統;模擬加速器,如GateRocket;以及“big-iron”(大型的)仿真盒,如Cadence的Palladium。至于這個基礎平臺會發展為FPGA驗證領域常見的那種專用板卡級仿真平臺,還是仍然會是昂貴的加速器和仿真系統的一種變形,我們尚無法知道。
      附文 解決覆蓋空隙的一些思路

      人人都喜歡FPGA 內仿真的速度。但是在FPGA中建立系統、控制和觀測試驗的難度過大,這常常迫使人們將費力費時的測試工作轉回到模擬環境中。在實際中,有些人會搭建一個驗證平臺,結合FPGA執行速度高和模擬方法易于構造和訪問數據的優點。毫不奇怪,有些廠商已經瞄準了這個目標。

      首次這么做還是ASIC時代早期的事,這也就是 “big-iron”邏輯仿真系統。從效果上說,這些系統就是一組專用的巨型計算機,其中由定制微處理器或定制可編程元件分別模擬或仿真邏輯操作。這類系統的代表是Cadence Palladium。此系統執行速度為模擬的很多倍,同時其廠商聲稱它對被測設計的訪問能力至少與模擬相當。但是,這些系統的容量有限,不會比通常模擬的塊規模大很多——除非你有非常多的錢。這些設備是主要的耗資設備,因此多數最終設計面向FPGA的設計團隊都無力支付高昂的費用。

      近年來,有大量系統進入市場(例如Eve等公司的產品),這些系統可以在使用商業FPGA的簡單環境下進行邏輯仿真。這類系統具有不同的特點,有些是小型化巨型機仿真系統,有些基本上就是帶支持調試軟件的FPGA評估卡。在所有情況下,它們都試圖提供一個設計中邏輯開銷低于big-iron仿真系統的FPGA執行環境。由于邏輯開銷較低,通;贔PGA的系統運行速度可以比巨型機仿真系統快一到幾個數量級?偟膩碚f,運行速度越快,保留的模擬的方便性就越少。但是,當單個FPGA的設計(包括調試開銷)變得過大時,它們就會表現出局限性。將設計分區是很復雜的,而且經常涉及到FPGA間信號的多路復用,這會將所有工作都拖慢。  這些系統中,確實提供了將測試平臺和數據在FPGA 系統和模擬環境來回傳送所需的軟件支持。例如,Eve就報道說正在開展工作,以便能將斷言也導入到其環境中。

      GateRocket 的系統是一個很有趣的產品,它使當前的這個狀況發生了改變。該公司將其定位為既可以充當模擬加速器,也可以充當電路中仿真器。作為模擬加速器時,該系統會試圖插入用戶的模擬環境,加速耗時的RTL (寄存器傳輸級) 邏輯部件的模擬,而不會影響模擬環境的特性。如果假設90/10法則正確(也就是說,90%模擬時間花在10%的代碼上),通過這種加速能力,可以使驗證工程師們繼續使用模擬環境,將其用于在無加速時基本無法實現的檢驗流程中。GateRocket聲稱,該系統可以支持名為“可綜合斷言子集”的特性。



    此用戶離線!
共計在線時長20分鐘2009/12/19 9:17:44
    [ 資料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回復 ] 點擊返回頂部

    « 首頁1 »1/共1頁


    查看積分策略說明快速回復你的內容
    快捷回復標題 (選填) 快捷插入表情圖標
    驗 證 碼  點擊獲取驗證碼
    快捷回復內容

    自動復制

    Powered by TEAM 2.0.5 Release - ACC © 2005 Team5 Studio All rights reserved
    国产免费一区_国产美女不带套露脸激情视频_亚洲av无码久久_99热这里只有是精品