王國富
摘 要:文章對基于SystemC的片上系統設計進行了介紹,并使用SystemC設計了一個交通自動控制系統。文中介紹了系統的實現并提出了改進方案。
關鍵詞:SystemC;片上系統設計;交通自動控制系統
1引言
片上系統(SoC)的興起使芯片設計過程的各個階段充滿了許多新的挑戰。工程師們正在重新考慮設計是如何進行規定、分區和驗證的。通常系統及軟件使用一種編程語言(如C/C++)而其硬件設計使用硬件描述語言(如VHDL和Verilog),問題隨著因為使用了不同的設計語言、不兼容的工具和分散的工具使用流程而產生。所有目前主要趨勢是使用SystemC語言和建模平臺來進行系統設計。其已成為功能、通信以及軟件和硬件在不同的抽象層次上實現的最佳解決方案的背后代表。原因很明顯:越來越復雜的設計要求快速的可執行的規范來驗證系統的概念,只有C/C++提供適當水平的抽象、軟硬件的集成和性能。當下的系統設計也要求使用單一的語言和建模的基礎上是互操作的系統,即設計工具、服務和知識產權,成為現實。
本文使用SystemC設計了一個自動控制的交通燈系統。系統設計的詳細信息將在接下來的章節中展示。
2 SystemC介紹
SystemC是一種系統設計語言。設計者可以使用這種語言對系統的硬件和軟件部分一起進行設計。這種方式可以使系統設計在高階的抽象層面進行。嚴格的來講,SystemC并不是一種語言,它是C++的一個庫,它包含用于對硬件組件進行建模以及硬件組件之間交互的結構。因此,SystemC也會被拿來與硬件描述語言如VHDL和Verilog做比較。這些語言重要的共同點是它們都具備了仿真內核,從而使設計人員能夠通過仿真來評估系統的表現。SystemC的高級合成工具促使行業廣泛的采用這種統一的硬件/軟件設計。
SystemC語言庫的數據類型和結構包括以下幾點:模塊語句、進程語句、端口語句、信號語句、時鐘語句,其支持豐富的數據類型、多種抽象層次、通訊協議、調試及波形跟蹤。
3 交通燈自動控制系統
本文設計的交通燈自動控制系統描述為東南西北各具有一個交通燈,分別為一個由南向北的交通燈、一個由北向南的交通燈、一個由東向西的交通燈以及一個由西向東的交通燈。四個交通燈各有一個探測器來檢測其方向的車輛。
3.1 系統具備以下的功能
所有交通燈獨立工作。例如,當由北向南的交通燈變綠時,如果沒有由南向北的車輛,由南向北的交通燈可能是紅色的。
系統需能維護交通安全。例如南北方向和東西方向的交通燈不可同時變綠。當探測器檢測到有車輛到達十字路口時,該行駛方向的交通燈最終會變綠。
3.2 系統由四部分組成
交通生成模塊,用來模擬實際交通以生成系統的輸入。
交通控制模塊,用來控制整個系統。此模塊為整個系統中最重要的部分。所有的算法和控制都在此模塊中實現。
探測器模塊,用來探測車輛以改變交通燈。
交通測試模塊,用來啟動程序。
3.3 系統設計
下面我們以北方向的交通燈為例來展示該系統設計,其它方向的交通燈與北方向的交通燈控制邏輯相同。流程圖如圖1。
流程圖中的信號代表如下面表格所示:
4 結束語
本文通過對該交通自動控制系統的設計與實現來展示基于SystemC的片上系統設計。在今后的研究中可在該設計的基礎上進行進一步的改進,以實現更加復雜的片上系統。可改進的方面有模擬交通的實時生成以使用更復雜的測試用例來測試該系統、交通控制結構的提高(如增加控制轉彎的交通燈)以及系統算法復雜度的改進等等。
參考文獻
[1]Thorsten Grtker,Stan Liao,Grant Martin,Stuart Swan. System Design with SystemC. Springer Publishing Company,Incorporated,2010.
[2]CHEN Shao-he,ZHAO Ming,WANG Jing. SystemC Based System on Chip Design. State Key Lab. on Microwave&Digital Communications,Tsinghua University,Beijing 100084.