《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 一種基于SystemC的系統級軟硬件協同設計新模型
一種基于SystemC的系統級軟硬件協同設計新模型
王 泉1, 史維峰1, 田 澤2
1. 西北大學 信息科學與技術學院, 陜西 西安 710127;2. 中國航空計算技術研究所, 陜西
摘要: 分析了SystemC的建模特性,提出了一種基于SystemC的系統級設計新模型,即從系統功能描述開始逐步細化,建立模型間通信抽象的事務模型,對抽象通信具體化,最后形成通信模型。以此為基礎進行RTL級綜合,完成軟硬件協同設計。本方法應用于一款導航芯片的設計,有效地縮短了研制周期,降低了開發成本,提高了系統設計質量。
Abstract:
Key words :

摘   要: 分析了SystemC的建模特性,提出了一種基于SystemC的系統級設計新模型,即從系統功能描述開始逐步細化,建立模型間通信抽象的事務模型,對抽象通信具體化,最后形成通信模型。以此為基礎進行RTL級綜合,完成軟硬件協同設計。本方法應用于一款導航芯片的設計,有效地縮短了研制周期,降低了開發成本,提高了系統設計質量。
關鍵詞: 嵌入式系統; 軟硬件協同設計; SystemC語言

  隨著嵌入式技術的迅速發展和嵌入式系統在眾多領域中的廣泛應用,特別是系統級芯片SoC 的誕生,嵌入式系統設計面臨許多新的問題。軟硬件協同設計是目前嵌入式系統設計的新方法,其方法依據系統目標要求,通過綜合分析系統軟硬件功能及現有資源,最大限度地挖掘系統軟硬件之間的并發性,協同設計軟硬件體系結構,使得系統能工作在最佳狀態。因此,建立系統級模型對系統功能進行抽象描述是實現軟硬件協同設計的關鍵。目前存在多種建模方法,但是都有其局限性,如采用UML語言建模,可以方便地進行需求分析、系統功能描述,但UML不能對系統硬件進行描述,無法精確和嚴格地描述模型的行為;采用C/C++等描述語言時,在設計細化階段,原始的C/C++描述必須手工轉換為VHDL或Verilog,容易產生不一致性,使系統綜合變得復雜。
  SystemC建模語言是在C++的基礎上增加硬件擴展庫和仿真內核[1],不僅有支持硬件操作的信號、時序和接口,在不同抽象層次上對設計進行建模,而且還可以通過仿真內核搭建仿真平臺,對設計各階段進行驗證。SystemC已經成為事實上的系統級設計語言的標準。本文將討論SystemC的建模特性,并且提出一種基于SystemC的系統級軟硬件協同設計模型。
1  軟硬件協同設計方法
  軟硬件協同設計是將軟件設計和硬件設計作為一個有機的整體進行并行設計,是在系統目標要求的指導下,通過綜合分析系統軟硬件功能及現有資源,最大限度地挖掘系統軟硬件之間的并發性,協同設計軟硬件體系結構,以便系統能夠工作在最佳狀態。其核心問題是在設計過程中如何協調軟件系統和硬件系統[2]。協同設計技術強調軟件和硬件設計開發是一個并行和相互反饋的過程,也就是使軟件設計和硬件設計作為一個整體并行設計,找到軟硬件的最佳結合點,使它們能夠以最有效的方式相互作用、相互結合,從而獲得滿足綜合性能指標的最佳解決方案[3]。這種相互作用體現在設計過程中的各個階段和各個層次,設計過程充分實現了軟硬件的協同性。在軟硬件功能劃分時就考慮了現有的軟硬件資源,在軟硬件功能設計和仿真評價過程中,軟件和硬件是互相支持的,這就使得軟硬件功能模塊能夠在設計開發的早期互相結合,從而及早發現和解決系統設計中的問題,避免了在設計開發后期反復修改所帶來的一系列問題,有利于充分挖掘系統潛能、縮小體積、降低成本、提高整體性能。
  軟硬件協同設計的基本思路如圖1所示。

  軟硬件協同設計過程可以分為系統描述、系統設計、仿真驗證和綜合實現4個階段[4-5]。首先應用獨立于任何硬件和軟件的功能性規格方法對系統進行整體描述;然后對系統進行軟硬件功能劃分,將系統行為劃分為簡單的行為模塊,并確定每個模塊的軟硬件實現方式;最后從抽象描述級進行細化,直至每個模塊最終由基本虛元件組成,形成系統原型,接著在系統原型層與廠商提供的虛元件相匯合,完成設計的實現[2]。各個階段需要完成的工作如下[3,5]:
  (1)系統描述:是用1種或多種描述語言對所要設計系統的功能和性能進行全面描述,是建立系統軟硬件模型的過程。采用的方法包括有限態自動機、統一化規格語言或其他基于圖形表示工具,其作用是對系統需求統一表示,方便功能劃分和綜合。
  (2)系統設計:可以分為軟硬件功能劃分和系統映射2個階段。軟硬件功能劃分就是要確定軟/硬件模塊分別要實現的系統功能。硬件能提供較好的性能,軟件則易于開發和修改,成本也較低。由于硬件模塊的可配置性、可編程性以及某些軟件功能的硬件化、固件化,導致軟硬件的界限已經不是很明顯。此外,在進行軟硬件功能劃分時,還要考慮市場可以提供的資源狀況、現有軟硬件資源、系統成本、開發時間等諸多因素。因此,軟硬件功能劃分是一個復雜的過程。系統映射是根據系統描述和軟硬件任務劃分的結果,分別選擇系統軟硬件模塊以及其接口的具體實現方法,并將其集成,最終確定系統的體系結構。在整個細化過程中,應多次進行軟硬件協同驗證和協同仿真,及時發現細化中的錯誤。在完成軟硬件劃分后,要對系統的性能、靈活性等參數進行預測,以評估軟硬件劃分,甚至功能劃分的合理性。如果劃分不合理,就需要重新進行軟硬件劃分。劃分的目的主要是滿足系統速度、延遲、體積、成本等方面的要求,使整個系統獲得最好的功能和性能。劃分策略既可以采用人為劃分,也可以使用EDA工具自動劃分。
  (3)仿真驗證:是檢驗系統設計正確性的過程,對設計結果的正確性進行評估,以達到避免在系統實現過程中發現問題時再進行反復修改的目的。
  (4)綜合實現:其過程是軟件、硬件系統的具體設計過程。設計結果經過仿真驗證后,可按系統設計的要求進行系統研制生產,即按照前述工作的要求設計硬件軟件,并使其能夠協調一致地工作,而后再進行各種試驗。
2 基于SystemC系統級新模型
  SystemC作為系統級建模語言,提供了通道、接口和事件[6-7]的概念,用以描述通信和同步。同時SystemC也提供了動態事件敏感方法,滿足對消息傳遞響應等系統級行為的建模要求。接口和通道的概念將通信和計算分開,提高了設計的重用性。
  通道用來表示設計中的通信機制。在系統級設計中,模塊互連通常采用較復雜的總線機制,系統初始設計時,可以僅仿真總線功能而不描述具體實現細節,此時可以用通道方便地描述通信機制。
  接口定義了通道的訪問方法,如read( )、write( ),這些方法的實現由通道來完成。模塊及其進程需要通過端口來訪問一個通道的接口,不同模塊的信號端口必須與通道接口綁定。
事件是一種基本的同步對象,主要用于模塊內進程間的同步。
  系統級模型主要用于描述系統要實現的功能,系統級模型設計流程如圖2所示。首先對系統進行純功能性結構描述,然后建立描述抽象通信通道的事務模型,最后細化抽象通信通道形成通信模型。整個系統由一系列的模塊組成, 每個模塊包括許多并發的進程, 進程定義了模塊的功能, 進程間通過通道進行通信。

  各模型介紹如下:
  (1)功能模型:是系統純功能的抽象模型,是設計流程的入口,主要目的是為了描述、驗證系統功能。在功能模型中,sc_module的層次性只是反映了系統的功能,不涉及時間概念。功能模型由SystemC的Event和Wait來進行同步。
  (2)事務模型:事務建模的主要任務是利用SystemC進行功能模型相應的通信抽象,實現通信機制。事務模型是SystemC系統級模型中的重要概念。一個系統的事務模型一般具有如下基本特征:
  ①功能模塊通過抽象通信通道進行通信。
  ②所有的通信都是事務(數據交換)。
  ③通過功能調用而不是對信號賦值來執行事務。
  SystemC中,通道、接口和事件可方便地進行系統事務級的建模。事務級模型是有時間的模型(Timed Model),對于各個功能模塊可以賦予運行時間,以便進行系統的仿真反饋、驗證和進一步的綜合。
  (3)通信模型:通信模型中,抽象的通信事務被實際的通信通道所代替。通信模型定義了系統的結構框架,包括各功能模塊及其之間的連接。系統計算被映射到功能模塊上,系統通信被映射到各通信通道上。SystemC擁有接口和通道等,支持基于接口的設計方法,可以方便地進行通信細化過程。從事務模型到通信模型的細化過程可分為如下步驟:
  ①通道細化(Channel Refinement):抽象的通信通道被實際的通信協議所代替,通過協議通道的接口,協議通道對外提供最基本的由協議所支持事務的方法。
  ②適配器插入(Adapter Insert):因為通道插入通信協議后接口已經改變了,必須在模塊和協議通道間插入適配器來完成接口之間的轉換。適配器相當于協議層上的應用層,利用協議通道提供的協議接口來實現模塊間的數據通信。
  ③協議內連(Protocol Inline):通信最終被內連到功能模塊中。用來包含應用層和協議層方法的適配器通道被內連進模塊內部,使抽象端口消失,模塊通過相應端口連接到總線線路上。
  在設計一種導航芯片的過程中,采用軟硬件協同設計方法進行設計,有效地降低了設計成本,提高了設計成功率。該芯片主要功能是接收衛星信號后完成數據提取,將有用的數據信息傳至處理器,由處理器進行導航處理。
  設計采用SystemC為整個系統建模,其模型如圖3所示。系統主要分為4個部分:數字變頻器、維特比譯碼器、數據提取和數據處理。衛星信號進入導航芯片后首先完成數字變頻,成為可處理的數字信號,然后對信號進行維特比譯碼,根據處理器指定要求提取相關數據并完成數據處理,形成有效的導航數據。

  下面給出系統模型的部分SystemC代碼。
 

  sc_main函數作為主函數在頂層例化整個系統的每一個硬件模塊并綁定。sc_signal定義頂層的各種信號線,用來連接各模塊的輸入輸出信號線并用來跟蹤各模塊輸入輸出端口信號變化。sc_clock定義并生成系統的時鐘信號,用來同步仿真時每一個模塊內觸發的事件,sc_trace用來跟蹤信號的變化,并以標準的格式輸出到跟蹤文件。
  在相應的SystemC文件中可以使用sc_module定義各個模塊。以數字變頻器模塊為例,下面是該模塊的部分SystemC代碼。
  

  sc_module用于聲明模塊,然后定義端口數據類型。sc_method方法使得對每一個敏感信號的觸發都進行處理,其作用相當于Verilog中的always方法,sensitive_pos聲明敏感信號觸發方式。
  系統設計時根據系統級模型描述功能,同時為模型建立Testbench(仿真測試文件)驗證系統方案是否可行,然后使用VC ++6.0和Modelsim進行功能仿真,接著按照系統工作原理進行軟硬件劃分。軟件實現部分采用C++語言描述,同時為硬件部分建立SystemC行為級模型,具體過程:(1)在系統級模型基礎上對計算單元進行詳細描述和通信組件細化;(2)在SystemC可綜合子集的范圍內對代碼進行約束,形成RTL級模型;(3)將RTL級電路進行綜合,生成Verilog文件,將此文件導入ISE中,對代碼進行約束,包括時間約束、引腳約束、時鐘頻率約束等;(4)進行邏輯綜合、優化和布局布線,得到二進制配置文件(bit); (5)將配置文件加載到測試板的FPGA(Xilinx公司Virtex4系列FPGA XC4VLX40-10FFG668C)中,驗證是否可以實現導航芯片的功能。如果性能不滿足要求可以重新建模,進行軟硬件劃分調整,直至滿足系統要求。在整個設計過程中,Testbench始終未改變,這樣可以保證系統在被不斷完善的過程中不會引入新的錯誤,使系統始終符合設計要求。經測試,采用基于SystemC的軟硬件協同設計模型進行導航芯片設計比傳統設計方案節省了30%的時間。
  軟硬件協同設計方法是一種新的嵌入式系統設計方法,它消除了傳統的嵌入式系統開發方法——“先硬件后軟件”的弊端,使得嵌入式系統設計質量得以提高,能夠提前進行系統性能評估,驗證系統設計方案,大大縮短了系統的研制周期。
  SystemC語言是一種系統級描述語言,它的產生促進了軟硬件協同設計技術的發展。本文描述了SystemC語言在系統開發各個階段的建模特性,提出系統級設計新模型。該模型采用逐步細化流程描述系統功能,為系統軟硬件協同設計提供了系統級模型,相對于傳統設計方案更加靈活、有效,縮短了開發周期,降低了開發成本,提高了系統設計質量。
參考文獻
[1]  張志杰. 林濤.基于SystemC的軟硬件協同驗證[J].今日電子,20079(2):49-52.
[2]  熊光澤,詹瑾瑜.嵌入式系統軟/硬件協同設計技術綜述 [J].計算機應用,2006,26(4):757-760.
[3]  徐思剛,桑楠.基于SystemC的軟硬件協同設計[J].湖北民族學院學報(自然科學版),2004,22(1):65-68.
[4]  潘新祥,胡習霜,韓立宏.軟硬件協同設計分析[J].指揮控制與仿真,2008,30(3):117-119.
[5]  王少平,王京謙,錢瑋.嵌入式系統的軟硬件協同設計[J].嵌入式與單片機,2005,193(2):83-84.
[6]  劉強.基于SystemC的系統級芯片設計方法研究[EB/OL].  http://www.eepw.com.cn/article/83115.htm. 2008-05-27.
[7]  SystemC介紹[EB/0L].http://www.chinaitpower.com/2005September/201800.html. 2005-09-13.
 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 韩国二级毛片免费播放| √天堂8资源中文在线| 波多野结衣免费视频观看| 国产亚洲精品无码专区| 91天堂素人精品系列全集亚洲| 我要打飞华人永久免费| 亚洲乱码中文字幕综合| 男女免费观看在线爽爽爽视频| 国产免费av片在线观看播放| 24小时免费看片| 好男人日本社区www| 久久久无码精品国产一区| 欧美又大粗又爽又黄大片视频| 免费国产怡红院在线观看| 西西人体免费视频| 国产粗话肉麻对白在线播放| a级毛片免费网站| 成年男女男精品免费视频网站| 乱亲玉米地初尝云雨| 欧美精品黑人粗大视频| 免费爱爱的视频太爽了| 荡乱妇3p疯狂伦交下载阅读| 国产真实女人一级毛片| 97久人人做人人妻人人玩精品| 小12箩利洗澡无码视频网站 | 黄色三级电影免费观看| 国产韩国精品一区二区三区 | 欧美性狂丰满性猛交| 人妻内射一区二区在线视频| 美女黄频视频大全免费的| 国产大片51精品免费观看| 永久免费视频网站在线观看| 大陆一级毛片免费视频观看i | 中文字幕无码乱人伦| 日韩特黄特色大片免费视频| 亚洲国产精品成人综合久久久 | 亚洲第一永久色| 国产麻豆综合视频在线观看| wwwfuqercom| 成年黄网站色大免费全看| 久久国产精品-国产精品|