王國富
摘 要:文章對(duì)基于SystemC的片上系統(tǒng)設(shè)計(jì)進(jìn)行了介紹,并使用SystemC設(shè)計(jì)了一個(gè)交通自動(dòng)控制系統(tǒng)。文中介紹了系統(tǒng)的實(shí)現(xiàn)并提出了改進(jìn)方案。
關(guān)鍵詞:SystemC;片上系統(tǒng)設(shè)計(jì);交通自動(dòng)控制系統(tǒng)
1引言
片上系統(tǒng)(SoC)的興起使芯片設(shè)計(jì)過程的各個(gè)階段充滿了許多新的挑戰(zhàn)。工程師們正在重新考慮設(shè)計(jì)是如何進(jìn)行規(guī)定、分區(qū)和驗(yàn)證的。通常系統(tǒng)及軟件使用一種編程語言(如C/C++)而其硬件設(shè)計(jì)使用硬件描述語言(如VHDL和Verilog),問題隨著因?yàn)槭褂昧瞬煌脑O(shè)計(jì)語言、不兼容的工具和分散的工具使用流程而產(chǎn)生。所有目前主要趨勢是使用SystemC語言和建模平臺(tái)來進(jìn)行系統(tǒng)設(shè)計(jì)。其已成為功能、通信以及軟件和硬件在不同的抽象層次上實(shí)現(xiàn)的最佳解決方案的背后代表。原因很明顯:越來越復(fù)雜的設(shè)計(jì)要求快速的可執(zhí)行的規(guī)范來驗(yàn)證系統(tǒng)的概念,只有C/C++提供適當(dāng)水平的抽象、軟硬件的集成和性能。當(dāng)下的系統(tǒng)設(shè)計(jì)也要求使用單一的語言和建模的基礎(chǔ)上是互操作的系統(tǒng),即設(shè)計(jì)工具、服務(wù)和知識(shí)產(chǎn)權(quán),成為現(xiàn)實(shí)。
本文使用SystemC設(shè)計(jì)了一個(gè)自動(dòng)控制的交通燈系統(tǒng)。系統(tǒng)設(shè)計(jì)的詳細(xì)信息將在接下來的章節(jié)中展示。
2 SystemC介紹
SystemC是一種系統(tǒng)設(shè)計(jì)語言。設(shè)計(jì)者可以使用這種語言對(duì)系統(tǒng)的硬件和軟件部分一起進(jìn)行設(shè)計(jì)。這種方式可以使系統(tǒng)設(shè)計(jì)在高階的抽象層面進(jìn)行。嚴(yán)格的來講,SystemC并不是一種語言,它是C++的一個(gè)庫,它包含用于對(duì)硬件組件進(jìn)行建模以及硬件組件之間交互的結(jié)構(gòu)。因此,SystemC也會(huì)被拿來與硬件描述語言如VHDL和Verilog做比較。這些語言重要的共同點(diǎn)是它們都具備了仿真內(nèi)核,從而使設(shè)計(jì)人員能夠通過仿真來評(píng)估系統(tǒng)的表現(xiàn)。SystemC的高級(jí)合成工具促使行業(yè)廣泛的采用這種統(tǒng)一的硬件/軟件設(shè)計(jì)。
SystemC語言庫的數(shù)據(jù)類型和結(jié)構(gòu)包括以下幾點(diǎn):模塊語句、進(jìn)程語句、端口語句、信號(hào)語句、時(shí)鐘語句,其支持豐富的數(shù)據(jù)類型、多種抽象層次、通訊協(xié)議、調(diào)試及波形跟蹤。
3 交通燈自動(dòng)控制系統(tǒng)
本文設(shè)計(jì)的交通燈自動(dòng)控制系統(tǒng)描述為東南西北各具有一個(gè)交通燈,分別為一個(gè)由南向北的交通燈、一個(gè)由北向南的交通燈、一個(gè)由東向西的交通燈以及一個(gè)由西向東的交通燈。四個(gè)交通燈各有一個(gè)探測器來檢測其方向的車輛。
3.1 系統(tǒng)具備以下的功能
所有交通燈獨(dú)立工作。例如,當(dāng)由北向南的交通燈變綠時(shí),如果沒有由南向北的車輛,由南向北的交通燈可能是紅色的。
系統(tǒng)需能維護(hù)交通安全。例如南北方向和東西方向的交通燈不可同時(shí)變綠。當(dāng)探測器檢測到有車輛到達(dá)十字路口時(shí),該行駛方向的交通燈最終會(huì)變綠。
3.2 系統(tǒng)由四部分組成
交通生成模塊,用來模擬實(shí)際交通以生成系統(tǒng)的輸入。
交通控制模塊,用來控制整個(gè)系統(tǒng)。此模塊為整個(gè)系統(tǒng)中最重要的部分。所有的算法和控制都在此模塊中實(shí)現(xiàn)。
探測器模塊,用來探測車輛以改變交通燈。
交通測試模塊,用來啟動(dòng)程序。
3.3 系統(tǒng)設(shè)計(jì)
下面我們以北方向的交通燈為例來展示該系統(tǒng)設(shè)計(jì),其它方向的交通燈與北方向的交通燈控制邏輯相同。流程圖如圖1。
流程圖中的信號(hào)代表如下面表格所示:
4 結(jié)束語
本文通過對(duì)該交通自動(dòng)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)來展示基于SystemC的片上系統(tǒng)設(shè)計(jì)。在今后的研究中可在該設(shè)計(jì)的基礎(chǔ)上進(jìn)行進(jìn)一步的改進(jìn),以實(shí)現(xiàn)更加復(fù)雜的片上系統(tǒng)??筛倪M(jìn)的方面有模擬交通的實(shí)時(shí)生成以使用更復(fù)雜的測試用例來測試該系統(tǒng)、交通控制結(jié)構(gòu)的提高(如增加控制轉(zhuǎn)彎的交通燈)以及系統(tǒng)算法復(fù)雜度的改進(jìn)等等。
參考文獻(xiàn)
[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.