侯寧?趙張飛
摘要:針對(duì)本科階段SoC系統(tǒng)教學(xué)的不足,研發(fā)了SoC系統(tǒng)平臺(tái)并成功應(yīng)用于EDA技術(shù)教學(xué)中。通過(guò)積極探索EDA技術(shù)課程教學(xué),加強(qiáng)實(shí)踐環(huán)節(jié)指導(dǎo),提升學(xué)生對(duì)SoC系統(tǒng)的理解,初步建立起軟硬件協(xié)同設(shè)計(jì)的思想。
關(guān)鍵詞:EDA;SoC;教學(xué)特色
作者簡(jiǎn)介:侯寧(1982-),男,河南鎮(zhèn)平人,河南城建學(xué)院電氣與信息工程學(xué)院,講師;趙張飛(1984-),男,安徽滁州人,河南城建學(xué)院電氣與信息工程學(xué)院,助教。(河南 平頂山 467000)
中圖分類(lèi)號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-0079(2014)08-0088-02
集成電路工藝的不斷進(jìn)步,使得整個(gè)嵌入式系統(tǒng)可以集成到單顆芯片中,稱(chēng)為系統(tǒng)芯片(System-on-a-chip,SoC)。SoC是在專(zhuān)用ASIC的基礎(chǔ)上發(fā)展起來(lái)的,其不再是功能單一的單元電路,而是一種面向某種應(yīng)用的嵌入式系統(tǒng)。[1,2]與由分立器件構(gòu)成的板級(jí)系統(tǒng)相比,SoC在成本、體積、速度、集成度、功能多樣性等方面均具有極大優(yōu)勢(shì),是各種自動(dòng)化設(shè)備、汽車(chē)電子、家電、消費(fèi)類(lèi)電子領(lǐng)域的核心部件。
由于我國(guó)在集成電路設(shè)計(jì)領(lǐng)域起步較晚,雖然歷經(jīng)十余年的奮起直追,但與國(guó)外的差距反而有逐步拉大的趨勢(shì)。2012年,國(guó)內(nèi)芯片進(jìn)口總量2197.17億個(gè),總額約1650億美元,已經(jīng)超過(guò)石油進(jìn)口總額的1200億美元。SoC芯片的進(jìn)口量更是在芯片進(jìn)口總量中占有極大比重,因此,培養(yǎng)合格的集成電路設(shè)計(jì)人才是高校面臨的一項(xiàng)極其迫切的任務(wù)。
一、EDA技術(shù)教學(xué)面臨的挑戰(zhàn)
SoC系統(tǒng)設(shè)計(jì)包含硬件設(shè)計(jì)和嵌入式軟件設(shè)計(jì)兩個(gè)方面,需要微機(jī)原理、數(shù)字電路設(shè)計(jì)、模擬/射頻電路設(shè)計(jì)、嵌入式軟件等多學(xué)科的知識(shí)與技能。同時(shí),由于SoC系統(tǒng)需要軟硬件協(xié)同實(shí)現(xiàn)系統(tǒng)功能,因此設(shè)計(jì)者必須在定義SoC功能規(guī)范時(shí),確定SoC系統(tǒng)的軟硬件劃分。隨后,按照軟件工程方法學(xué)設(shè)計(jì)嵌入式軟件,按照VLSI集成電路設(shè)計(jì)方法學(xué)設(shè)計(jì)硬件。在設(shè)計(jì)過(guò)程中也需要結(jié)合軟硬件協(xié)同設(shè)計(jì)的思想,加快SoC系統(tǒng)的設(shè)計(jì)進(jìn)度。[3,4]
現(xiàn)階段,我國(guó)高校中電子類(lèi)及通訊類(lèi)專(zhuān)業(yè)均開(kāi)設(shè)有導(dǎo)論性質(zhì)的SoC系統(tǒng)課程,但是理論性太強(qiáng),學(xué)生缺乏對(duì)SoC系統(tǒng)的直觀認(rèn)識(shí)并且出現(xiàn)重嵌入式軟件,輕體系結(jié)構(gòu)及硬件設(shè)計(jì)的問(wèn)題。學(xué)生對(duì)系統(tǒng)總線、知識(shí)產(chǎn)權(quán)核(intellectual Property,IP)、軟硬件劃分、軟硬件協(xié)同設(shè)計(jì)等概念不甚了解。
EDA技術(shù)是通訊工程、電子信息工程、電子科學(xué)與技術(shù)及相關(guān)專(zhuān)業(yè)的一門(mén)專(zhuān)業(yè)基礎(chǔ)課,也是唯一一門(mén)講述現(xiàn)代數(shù)字電路設(shè)計(jì)方法及流程的課程。[5]當(dāng)前EDA技術(shù)實(shí)驗(yàn)面臨內(nèi)容單一,實(shí)驗(yàn)項(xiàng)目常以驗(yàn)證型實(shí)驗(yàn)為主,學(xué)生的設(shè)計(jì)難以突破實(shí)驗(yàn)箱的限制。[6]此外,在該課程教學(xué)之前,學(xué)生通過(guò)微機(jī)原理、單片機(jī)原理等課程的學(xué)習(xí),已經(jīng)對(duì)嵌入式系統(tǒng)的體系結(jié)構(gòu)、指令集等概念建立起整體認(rèn)識(shí),但是由于面對(duì)的仍然是8051、8259等分立器件,學(xué)生還沒(méi)有建立系統(tǒng)的概念,特別是軟硬件協(xié)同設(shè)計(jì)的思想。因此,EDA技術(shù)教學(xué)中,在學(xué)生掌握了基本組合電路、時(shí)序電路設(shè)計(jì)方法后,利用一個(gè)真實(shí)的SoC系統(tǒng)平臺(tái)進(jìn)行實(shí)踐教學(xué),可以使學(xué)生進(jìn)一步理解SoC系統(tǒng),通過(guò)SoC系統(tǒng)實(shí)驗(yàn)使學(xué)生初步建立起軟硬件協(xié)同設(shè)計(jì)思想。
二、SoC系統(tǒng)平臺(tái)介紹
為了滿足EDA設(shè)計(jì)課程教學(xué)中SoC系統(tǒng)實(shí)驗(yàn)的需要,筆者開(kāi)發(fā)了一款嵌入式SoC系統(tǒng)平臺(tái),如圖1所示。
嵌入式SoC系統(tǒng)平臺(tái)包括一款兼容ARM指令集[7]的處理核。AHB總線掛接內(nèi)部存儲(chǔ)器,默認(rèn)從設(shè)備,中斷控制器。處理核通過(guò)APB總線橋訪問(wèn)常用的慢速外設(shè),包括通用IO、定時(shí)器、SPI接口、I2C接口以及UART接口。
嵌入式SoC系統(tǒng)平臺(tái)結(jié)構(gòu)簡(jiǎn)單,參數(shù)化設(shè)計(jì),外設(shè)豐富,除了滿足SoC系統(tǒng)實(shí)驗(yàn)要求外,還可以做為EDA課程設(shè)計(jì)的基礎(chǔ)平臺(tái)開(kāi)展一些開(kāi)放性實(shí)驗(yàn)。
筆者開(kāi)設(shè)的SoC系統(tǒng)實(shí)驗(yàn)課沒(méi)有采用Altera公司的SOPC實(shí)驗(yàn)環(huán)境。[8,9]筆者認(rèn)為對(duì)于初步接觸SoC系統(tǒng)的學(xué)生而言,該平臺(tái)涉及的自動(dòng)化工具過(guò)多,容易將學(xué)生學(xué)習(xí)的注意力轉(zhuǎn)移到工具的使用上,而忽略了對(duì)SoC系統(tǒng)本身的學(xué)習(xí)。
三、SoC系統(tǒng)實(shí)驗(yàn)介紹
已經(jīng)開(kāi)設(shè)的SoC系統(tǒng)實(shí)驗(yàn)包括系統(tǒng)總線實(shí)驗(yàn)、通用總線接口(General Purpose Input Output,GPIO)設(shè)計(jì)實(shí)驗(yàn)和開(kāi)放性實(shí)驗(yàn)三部分。通過(guò)這部分內(nèi)容的學(xué)習(xí),要求學(xué)生掌握系統(tǒng)總線、IP核的概念,初步建立軟硬件協(xié)同設(shè)計(jì)思想并理解軟硬件資源開(kāi)銷(xiāo)。
1.系統(tǒng)總線實(shí)驗(yàn)
微機(jī)原理和單片機(jī)課程通常以8051作為授課對(duì)象。8051的外部總線是一種板級(jí)三態(tài)總線,要求地址和數(shù)據(jù)總線復(fù)用,完全不同于強(qiáng)調(diào)流水操作的現(xiàn)代系統(tǒng)總線。AMBA總線是ARM公司定義的一種系統(tǒng)總線規(guī)范,用于ARM處理核與外設(shè)IP間的數(shù)據(jù)通訊,是一種典型的現(xiàn)代系統(tǒng)總線。①由于ARM處理核超高的市場(chǎng)占有率,AMBA總線標(biāo)準(zhǔn)應(yīng)用廣泛。
AMBA總線規(guī)范內(nèi)容較多,實(shí)驗(yàn)僅涉及AHB-LITE總線和APB總線的基本操作。
圖2所示為一個(gè)典型的AHB-LITE總線系統(tǒng),實(shí)驗(yàn)要求學(xué)生自己定義各個(gè)外設(shè)的總線地址區(qū)間,設(shè)計(jì)出總線的譯碼器模塊和多路選擇器模塊。
APB總線橋連接AHB總線與APB總線,這部分內(nèi)容作為開(kāi)放實(shí)驗(yàn)的一部分,供學(xué)有余力的同學(xué)學(xué)習(xí)。實(shí)驗(yàn)中僅要求學(xué)生掌握APB總線的基本讀寫(xiě)時(shí)序。
通過(guò)系統(tǒng)總線實(shí)驗(yàn),使學(xué)生理解現(xiàn)代系統(tǒng)總線的設(shè)計(jì)思路,理解板級(jí)總線與片內(nèi)系統(tǒng)總線的區(qū)別。
2.GPIO設(shè)計(jì)實(shí)驗(yàn)
GPIO是SoC系統(tǒng)最基本的外設(shè)IP,可以用作各類(lèi)總線擴(kuò)展接口,還可以提供額外的控制監(jiān)視功能。本實(shí)驗(yàn)要求學(xué)生需要依據(jù)設(shè)計(jì)規(guī)范,設(shè)計(jì)出一款基于APB總線接口的GPIO外設(shè)IP,特別要求GPIO支持硬件“讀—改—寫(xiě)”操作。通過(guò)該實(shí)驗(yàn)使學(xué)生理解IP核的設(shè)計(jì)重點(diǎn),重點(diǎn)建立軟硬件劃分的設(shè)計(jì)思想,理解軟硬件資源開(kāi)銷(xiāo)。
圖3所示為實(shí)驗(yàn)技術(shù)規(guī)范定義的GPIO框圖,主要包括數(shù)據(jù)模塊和中斷模塊。GPIO規(guī)范要求設(shè)計(jì)具有如下特征:軟件配置輸入或者輸出;支持硬件“讀-改-寫(xiě)”功能;可配置作為中斷源;可配置支持上升沿和下降沿中斷。
在實(shí)際教學(xué)中,要求學(xué)生必須完成GPIO的數(shù)據(jù)模塊的設(shè)計(jì)。中斷模塊的設(shè)計(jì)可作為開(kāi)放性實(shí)驗(yàn)。在實(shí)驗(yàn)中,要求學(xué)生用軟件實(shí)現(xiàn)“讀—改—寫(xiě)”操作,與硬件的“讀—改—寫(xiě)”操作比較,深刻理解嵌入式系統(tǒng)設(shè)計(jì)中的軟硬件開(kāi)銷(xiāo)問(wèn)題,對(duì)SoC系統(tǒng)的軟硬件劃分思想有初步的認(rèn)識(shí)。
3.開(kāi)放性實(shí)驗(yàn)
SoC系統(tǒng)的內(nèi)容豐富,由于EDA技術(shù)學(xué)時(shí)有限,筆者將一些課程教學(xué)無(wú)法涉及的內(nèi)容放在EDA課程設(shè)計(jì)的開(kāi)放性實(shí)驗(yàn)環(huán)節(jié)。學(xué)生可以在利用SoC系統(tǒng)平臺(tái)開(kāi)發(fā)外設(shè)IP,豐富平臺(tái)功能。
開(kāi)放性實(shí)驗(yàn)提供的可選實(shí)驗(yàn)包括:PWM電機(jī)控制實(shí)驗(yàn),要求學(xué)生根據(jù)規(guī)范要求設(shè)計(jì)PWM IP并控制電機(jī)運(yùn)轉(zhuǎn);UART通用串口實(shí)驗(yàn),要求學(xué)生根據(jù)規(guī)范設(shè)計(jì)UART IP并與PC 調(diào)試助手通訊;SPI FLASH編程實(shí)驗(yàn),要求學(xué)生根據(jù)規(guī)范設(shè)計(jì)SPI IP并完成SPI FLASH編程;I2C接口液晶控制實(shí)驗(yàn),要求學(xué)生根據(jù)規(guī)范設(shè)計(jì)I2C IP并控制液晶模塊;RTC實(shí)驗(yàn),要求學(xué)生根據(jù)規(guī)范設(shè)計(jì)RTC IP并編程支持實(shí)時(shí)時(shí)鐘;未來(lái)開(kāi)放性實(shí)驗(yàn)還將提供SD Card IP,USB IP,Ethernet IP等實(shí)驗(yàn)。
集成電路設(shè)計(jì)技術(shù)發(fā)展迅猛,SoC系統(tǒng)平臺(tái)的擴(kuò)展和豐富需要教師不斷學(xué)習(xí),以確保學(xué)生在校期間能接觸到最先進(jìn)的集成電路設(shè)計(jì)知識(shí),快速適應(yīng)未來(lái)工作。
四、 結(jié)束語(yǔ)
針對(duì)當(dāng)前本科教育階段SoC系統(tǒng)教學(xué)中重理論,輕實(shí)踐,重軟件,輕硬件設(shè)計(jì)的問(wèn)題,筆者利用自己研發(fā)的SoC系統(tǒng)實(shí)驗(yàn)平臺(tái),積極探索EDA技術(shù)課程教學(xué),加強(qiáng)實(shí)踐環(huán)節(jié)指導(dǎo),提升學(xué)生對(duì)SoC系統(tǒng)的理解,使學(xué)生初步建立起軟硬件協(xié)同設(shè)計(jì)的思想。利用EDA課程設(shè)計(jì)的開(kāi)放性實(shí)驗(yàn)環(huán)節(jié),指導(dǎo)學(xué)有余力的學(xué)生獨(dú)立設(shè)計(jì)一些簡(jiǎn)單的外設(shè)IP,培養(yǎng)學(xué)生興趣,進(jìn)一步增強(qiáng)學(xué)生就業(yè)競(jìng)爭(zhēng)力。
注釋?zhuān)?/p>
①參見(jiàn)www.arm.com的內(nèi)容。
參考文獻(xiàn):
[1]郭煒, 郭箏,謝憬.SoC設(shè)計(jì)方法與實(shí)現(xiàn)[M].電子工業(yè)出版社,
2007.
[2][美]羅文.復(fù)雜SoC設(shè)計(jì)[M]. 吳武臣, 侯立剛,譯.機(jī)械工業(yè)出版社,2006.
[3]趙川,徐濤,孫曉光.高性能處理系統(tǒng)的軟硬件協(xié)同設(shè)計(jì)研究[J].計(jì)算機(jī)工程與科學(xué),2009,31(1):20-23.
[4]于海,姚啟桂,虞躍,等.基于SoPC的狀態(tài)監(jiān)測(cè)裝置的嵌入式軟硬件協(xié)同設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,(22):1-4.
[5]周莉莉,周淑閣.EDA課程教學(xué)方法的研究與實(shí)踐[J].實(shí)驗(yàn)室科學(xué),2008,(5):55-57.
[6]翟文正,管功湖.將EDA 技術(shù)引入計(jì)算機(jī)組成與結(jié)構(gòu)實(shí)驗(yàn)教學(xué)的研究[J].實(shí)驗(yàn)室研究與探索,2008,(12):12-14.
[7]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2008.
[8]潘松,黃繼業(yè),曾毓.SOPC技術(shù)使用教程[M].北京:清華大學(xué)出版社,2005.
[9]薛小剛,葛毅敏.Xilinx ISE 9.X FPGA/ CPLD 設(shè)計(jì)指南[M].北京:人民郵電出版社,2008.
(責(zé)任編輯:王意琴)