1 系統級設計與驗證簡介
片上電子系統的速度和復雜度的不斷提高不僅使得底層的設計實現易于出問題,而且頂層的系統架構、通訊機制、軟硬件劃分等都可能使系統的功能、性能或成本、開發周期等指標不滿足要求。一旦在底層的實現階段發現了這種頂層的設計問題,會有大量的設計工作重新進行;此外,工程師對設計規格的理解偏差,或設計規格本身的不完整及二義性也是造成設計錯誤的原因之一;底層硬件的設計在驗證時需要大量的輸入激勵和檢驗響應,在信號級完成這樣的工作不但速度很慢而且容易遺漏。
由于電子系統中相當部分的工作是由軟件完成,所以必須確保在應用環境下軟硬件能夠正確地協同工作。以前軟件中依賴于硬件的部分通常要等到樣機加工好后才能調試,使得嵌入式軟件的完整驗證只能在系統設計周期的后端進行,此時發現的設計錯誤通常要花費較高的修改代價,特別是那些牽涉到軟硬件劃分等系統層次的問題。
所有這些都要求我們用跟以往大不相同的方式看待電子系統的設計流程:設計規格必須用形式化的、語法嚴格且語義明確的高級語言描述;從系統的頂層到底層的每一適當的抽象層次都采用合適的高級語言建立相應的模型;每一層次的模型都要進行驗證,并可作為下一層次系統模型的參考模型和子模塊的測試平臺。如此,便可形成一系列可執行的設計規格( Executable Specification ),并將驗證工作左移到系統設計的早期階段,從而達到消除設計規格的歧義性和及早發現較高層次的設計錯誤的目的。
目前國際上已普遍做到用高級語言來進行系統的規格描述和底層實現,從而形成從系統頂層到底層的一系列可驗證的模型;軟件與硬件的相互驗證不必等到實物樣機加工好再進行,而是與硬件的RTL模型聯合仿真。其存在的主要問題有:頂層設計如算法等用的是傳統的軟件高級語言C++、Fortran等,而底層的硬件設計用的是硬件描述語言VHDL、Verilog,這樣造成整個設計和驗證流程不夠順暢,各層次之間難以做到無縫連接;對于更復雜或運算量非常大的系統,驗證的速度尤其是軟硬件聯合仿真的速度太慢,難以進行有效的驗證。上述問題的解決方法是:規定軟硬件設計和驗證統一的高級描述語言;規范抽象方式和級別,特別是在RTL之上規范硬件平臺的建模方法。
國際上EDA界經過幾年的發展與討論,公認最有前途成為電子系統設計與驗證統一語言的就是SystemC,它是在C++的基礎上加上一套適合于硬件描述的模板庫和仿真內核構成,并不斷地擴充進有望成為標準的附加庫,如驗證庫SCV、事務級建模庫TLM API等。
在基于SystemC的系統級建模和驗證流程中,首先在頂層建立較高抽象級的模型,主要用于完成系統控制與算法的設計分析,進行物理架構的功能性能的設計分析。通過建立系統級的抽象模型,執行仿真分析和評估給出量化的指標,從而對系統級的功能性能作出正確的設計,并在此基礎上進行軟硬件模塊劃分。
2 模型層次
為便于后面敘述的方便,這里先簡要介紹一下系統建模的幾種抽象方式和應用類型。
抽象方式可分為:
非定時功能UTF(UnTimed Functional):可用于模型的接口和內部功能,進程的執行和數據傳輸都不耗費時間, 時間只可能作為定序機制而使用。
定時功能TF(Timed Functional):可用于模型的接口和內部功能,進程的執行和數據傳輸都都分配了有限的時間。
總線周期精確BCA(Bus Cycle Accurate):僅用于模型的接口,而非內部功能,定時精確到時鐘周期,通常與系統時鐘相關,不引入管腳級的細節,信息傳輸通常以事務的方式建模。
管腳周期精確PCA(Pin Cycle Accurate):僅用于模型的接口,而非內部功能,定時精確到時鐘周期,通常與系統時鐘相關,描述精確到管腳級。
寄存器傳輸精確RT(Register Transfer accurate):同時用于模型的接口和內部功能,所有的事情都被安排了時間,時鐘用于同步,需要做完整的詳細的功能說明,每個寄存器、每條總線、每一位在每個周期的行為都有描述,能夠直接被邏輯綜合器綜合成硬件實現,等同于RTL模型。
應用類型可分為:
系統架構模型SAM(System Architectural Model):是系統的一份不含時間信息的可執行規格,描述系統的硬件和軟件成分。模型接口用不含管腳細節的UTF方式,通常描述通訊協議;模型功能也用UTF方式,行為用算法來建模,且主要以順序方式描述。此種模型主要用于架構探索和算法驗證。
系統性能模型SPM(System Performance Model):是系統的一份含時間信息的可執行規格,描述系統的硬件和軟件成分。模型接口用不含管腳細節的UTF或TF方式,通常描述通訊協議,通訊行為可以是定時的但不一定達到周期精確;模型功能可用TF或UTF方式,行為用算法來建模,順序或并發方式都可以采用,定時不是周期精確的。此種模型主要用于高層次性能建模和時間預算。
事務級模型TLM(Transaction Level Model):用于建模可執行的平臺,通常只描述硬件。模型接口用不含管腳細節的TF方式,可以是也可以不是周期精確的,數據傳輸用事務方式建模;模型功能用TF方式,但不必是周期精確的。
功能模型(Functional Model):指抽象級別在TLM之上的模型,包括SAM和SPM。
系統級模型(System Level Model):指抽象級別在RTL之上的模型,包括SAM、SPM和TLM。
3 事務級建模方法TLM
事務級建模方法TLM(Transaction Level Modeling)是為了解決以下問題而發展起來的,這些問題包括提供軟件開發的早期平臺;系統架構探索與驗證;系統級模型在模塊級驗證中的應用。它用于建模可執行的平臺,通常只描述硬件。
所謂事務,一方面指把低層次的信息傳輸組合成的較高級別的傳輸,比如把讀寫一大塊數據作為一個事務,它包含總線上的若干次突發傳輸,每個突發傳輸又會包含地址連續的多個數據傳輸;另一方面指不牽涉具體的信號,而是把傳輸中涉及到的信息分類作為整體表示。事務級建模方法把模塊的功能和模塊間的通訊分開建模,模塊間通訊用事務來表示,接口用不含管腳細節的TF方式,功能也用TF方式,是否周期精確根據需要而定。通過提高抽象級別,并把分散在各模塊中的通訊協議處理功能集成在專門的通訊模塊中完成,極大地加快了系統仿真的速度。
軟件工程師可以使用處理器指令集仿真器ISS(Instruction Set Simulator)來測試程序,ISS使用總線事務訪問外部設備,總線事務通過總線功能模型連接到硬件模型,從而使軟硬件測試過程無縫連接。以前的總線功能模型是PCA,相應的硬件模型是RTL,導致仿真速度很慢, 現在通過使用事務作為內部模塊間通信的方式,總線功能模型是BCA,相應的硬件模型是TLM,軟件模型、硬件模型和測試平臺可以在較高的抽象級連接成整體,仿真速度快100倍以上,并可在設計周期中更早的階段與ISS一起作為軟件運行的平臺。具體可見示意圖1。
在TLM級實現可執行的規格有助于進行系統架構的性能分析,探索不同的架構方案;為RTL設計提供參考模型和驗證平臺;可以作為軟件開發的平臺,優化軟硬件劃分方案。所以事務級的系統硬件可執行規格又稱為可執行平臺EP( Executable Platform )。它是架構精確的,為軟件開發和模塊級的驗證提供一個快速全功能的環境。當EP作為底層RTL模塊的測試平臺時,需要將相應的TLM模塊替換為目標RTL模塊與transactor的組合,transactor是SystemC的術語,作用是將一種抽象級的接口轉換為另一種抽象級的接口。
圖1 由TLM構成的可執行平臺
由于高層模型(如算法模型)的仿真速度通常要比低一層的模型快10倍或更多,同時高層模型可重用為低層次設計的參考模型,高層的可執行規格可作為低層設計模塊的驗證平臺,因此經常需要將不同層次的模型混合仿真。把高層模型的對外接口用transactor形式轉換成低層模型的接口,就可以連接到整個系統上。
4 總結
系統級設計和驗證包括從系統規格開始的設計輸入、架構評估、功能驗證、多層次多語言混合驗證、軟硬件協同開發及驗證等高抽象度的描述方法和驗證技術。
SystemC作為一種適用于多層次建模和仿真的高級語言,已被廣泛應用于系統級設計和驗證的多個領域,為研究不同的系統結構、進行算法評估、軟硬件任務劃分和軟件開發提供了有效的方法。它能使整個團隊使用一種語言來靈活地組合不同的抽象層次,使設計者優化系統的設計和驗證流程。
事務級模型(TLM)與寄存器傳輸級(RTL)模型相比較,是在更高抽象級別上對系統硬件建模,在結構級的組件上交換數據或執行事件。事務級描述抽象度較高,比RTL容易開發,這樣在設計早期就可得到系統的硬件模型;TLM比相應的RTL模型仿真速度快100倍以上,在TLM級的平臺上可以很快地運行軟件,非常適合于架構和性能分析、早期的軟硬件協同驗證。
責任編輯:gt
-
接口
+關注
關注
33文章
8677瀏覽量
151574 -
eda
+關注
關注
71文章
2776瀏覽量
173527
發布評論請先 登錄
相關推薦
評論