摘要:以哈爾濱理工大學(xué)2010年計算機(jī)科學(xué)與技術(shù)專業(yè)培養(yǎng)方案修訂為背景,針對FPGA技術(shù)在嵌入式系統(tǒng)中日益廣泛的應(yīng)用,提出嵌入式技術(shù)與應(yīng)用專業(yè)方向基于FPGA設(shè)計技術(shù)的嵌入式應(yīng)用型人才培養(yǎng)的課程體系,結(jié)合學(xué)?,F(xiàn)有的教學(xué)條件,詳細(xì)介紹基于Xilinx FPGA實驗平臺的課程體系設(shè)置、課程的理論和實驗教學(xué)內(nèi)容等。該課程體系圍繞FPGA技術(shù)由淺入深展開教學(xué),在培養(yǎng)學(xué)生全面掌握FPGA 器件開發(fā)技術(shù)的同時,也培養(yǎng)其基于FPGA的嵌入式系統(tǒng)設(shè)計與應(yīng)用的能力。
關(guān)鍵詞:嵌入式人才培養(yǎng);教學(xué)體系;FPGA技術(shù)
1研究背景
目前,嵌入式系統(tǒng)人才需求與人才培養(yǎng)的矛盾突出,嵌入式系統(tǒng)人才培養(yǎng)是個系統(tǒng)工程,包括教學(xué)體系的完善,教學(xué)內(nèi)容的改革,教材建設(shè),配套實驗設(shè)備的開發(fā),教師團(tuán)隊的培養(yǎng)等。嵌入式系統(tǒng)人才培養(yǎng)門檻較高,實踐性很強(qiáng),涉及操作系統(tǒng)、接口技術(shù)、匯編語言程序設(shè)計、C語言、硬件描述語言、數(shù)字電路及邏輯、網(wǎng)絡(luò)編程、數(shù)據(jù)庫等,對師資水平、實驗設(shè)備要求較高。
現(xiàn)場可編程門陣列(FPGA) 是1985年由美國Xilinx公司首先推出的一種新型的PLD,其規(guī)模大、集成度高、靈活性強(qiáng)、實現(xiàn)的邏輯功能更廣,因此已逐步成為復(fù)雜數(shù)字硬件電路設(shè)計的首選。
隨著科學(xué)技術(shù)的飛速發(fā)展,系統(tǒng)向著高速度、低功耗、低電壓和網(wǎng)絡(luò)化、移動化方向發(fā)展,人們對電路的要求越來越高,傳統(tǒng)單一功能的集成電路很難滿足發(fā)展的需求,而CPLD/FPGA可以方便地通過對邏輯結(jié)構(gòu)的修改和配置,完成對系統(tǒng)和設(shè)備的升級。掌握FPGA技術(shù)有利于電子設(shè)備的更新?lián)Q代,增加其技術(shù)含量,提高產(chǎn)品的競爭力。FPGA的應(yīng)用領(lǐng)域不斷擴(kuò)大,已成為現(xiàn)代電子系統(tǒng)設(shè)計工程師們需要掌握的重要器件之一,社會對熟練掌握FPGA器件開發(fā)的高素質(zhì)大學(xué)畢業(yè)生需求量每年都在增加。正是由于以上背景,很多院校都在加強(qiáng)FPGA課程的建設(shè),從而提高學(xué)生利用FPGA 器件進(jìn)行應(yīng)用和開發(fā)的熟練程度和實踐能力[1]。
嵌入式系統(tǒng)的實現(xiàn)從硬件的角度分類主要有以下幾種形式:嵌入式處理器、微控制器(又稱單片機(jī))、DSP處理器和嵌入式片上系統(tǒng)(SOC)/片上可編程系統(tǒng)(SOPC)。對于較復(fù)雜的系統(tǒng),往往采用微控制器+FPGA(可編程邏輯器件),或微控制器+DSP+ FPGA等方案,同時FPGA設(shè)計技術(shù)又是SOC/SOPC的基礎(chǔ),而SOC/SOPC代表嵌入式系統(tǒng)發(fā)展的方向,因此,培養(yǎng)熟練掌握FPGA技術(shù)的嵌入式系統(tǒng)應(yīng)用型人才意義重大,是學(xué)校緊跟社會發(fā)展趨勢、培養(yǎng)滿足社會需求的嵌入式人才的重要途徑。
目前,不少高校都開設(shè)了FPGA相關(guān)的課程。由于起步較晚,課程還不夠成熟,從基于FPGA技術(shù)的嵌入式系統(tǒng)人才培養(yǎng)的角度,也存在許多問題。課程設(shè)置缺乏系統(tǒng)性,相應(yīng)課程沒有開設(shè)或開設(shè)學(xué)時太少,先后的課程內(nèi)容銜接不上,嚴(yán)重影響教學(xué)效果。以我校為例,2006版培養(yǎng)方案中,與FPGA技術(shù)相關(guān)的課程只開設(shè)Verilog語言設(shè)計和SOPC原理及應(yīng)用兩門課,而FPGA器件的結(jié)構(gòu)和原理,數(shù)字系統(tǒng)設(shè)計,SOC/SOPC的硬件系統(tǒng)結(jié)構(gòu)及設(shè)計等內(nèi)容課堂上無法講授,學(xué)生對FPGA技術(shù)和SOPC 設(shè)計的掌握不系統(tǒng)也無法深入。
另外通過FPGA的靈活應(yīng)用,學(xué)生能夠感知到學(xué)習(xí)理論基礎(chǔ)知識的必要性,讓他們在學(xué)到知識的同時,體會知識的實用性,增強(qiáng)學(xué)習(xí)的成就感,以便激發(fā)他們進(jìn)一步對知識探索的渴望和追求。
基于FPGA技術(shù)的嵌入式應(yīng)用型人才培養(yǎng)任重而道遠(yuǎn),包括教師隊伍的建設(shè),相關(guān)課程的教學(xué)內(nèi)容和實驗手段的改革,新開設(shè)課程的教材建設(shè)和性價比較高的配套實驗平臺的開發(fā),相應(yīng)實驗的開發(fā)和設(shè)計等。
2FPGA課程體系設(shè)置和學(xué)時分配
在我校2010版計算機(jī)科學(xué)與技術(shù)專業(yè)的B培養(yǎng)方案修訂中,對A:數(shù)據(jù)庫軟件開發(fā); B:數(shù)字媒體技術(shù);C:嵌入式技術(shù)與應(yīng)用等3個專業(yè)方向的課程體系進(jìn)行了修訂。尤其是對嵌入式技術(shù)與應(yīng)用專業(yè)方向,修訂的目標(biāo)是突顯應(yīng)用特色,努力培養(yǎng)適應(yīng)社會需求的應(yīng)用型和創(chuàng)新型的嵌入式人才。
Xilinx公司是全球最大的可編程邏輯器件制造商,也是FPGA器件的發(fā)明者,很多高校、研究所、公司都采用Xilinx的方案與芯片進(jìn)行開發(fā)與研究。2007年學(xué)校與Xilinx公司合作成立了FPGA聯(lián)合實驗室,學(xué)校購買了SEED_XDTK實驗平臺多套。
本實驗平臺由Xilinx 公司設(shè)計的XUP Virtex-II Pro 開發(fā)系統(tǒng)構(gòu)成,主要器件是Xilinx推出的Virtex-II Pro 系列器件,嵌入了PowerPC 405 處理器硬核。SEED-XDTK 教學(xué)實驗平臺是一套既可以滿足大學(xué)本科、研究生和教師科研工作,又可用于復(fù)雜算法評估、項目預(yù)研的FPGA綜合實驗設(shè)備。
鑒于FPGA技術(shù)在嵌入式人才培養(yǎng)中的重要性,結(jié)合學(xué)校現(xiàn)有的教學(xué)條件,新的培養(yǎng)方案制定了相關(guān)的課程體系、相關(guān)課程的理論教學(xué)大綱和實驗教學(xué)大綱,編寫了實驗指導(dǎo)書等。在該課程體系的建設(shè)中,充分考慮FPGA技術(shù)教學(xué)內(nèi)容的系統(tǒng)性,注意課程體系授課學(xué)期和先后內(nèi)容的銜接,避免出現(xiàn)內(nèi)容上的脫節(jié)、重復(fù)等問題。在學(xué)時分配上,加大實踐環(huán)節(jié)的學(xué)時。FPGA課程體系包含5門課程,其課程設(shè)置和學(xué)時分配如表1所示。
表1的課程體系按照由淺入深的原則,使學(xué)生在掌握EDA軟件、FPGA結(jié)構(gòu)和工作原理,SOPC硬件組成的同時,利用Verilog HDL語言,掌握從門級電路、各種數(shù)字電路和系統(tǒng)、接口電路到SOPC的FPGA設(shè)計和應(yīng)用技術(shù)。
另外,許多高校也在探討基于FPGA的計算機(jī)專業(yè)基礎(chǔ)課計算機(jī)組成原理的課程體系和內(nèi)容的改革,相應(yīng)教材也已出版,該課程除了講述計算機(jī)系統(tǒng)中的CPU、存儲器和接口等部件的工作原理外,還使學(xué)生學(xué)習(xí)和掌握如何利用Verilog HDL語言在FPGA上實現(xiàn)CPU、存儲器和接口等部件的功能。這將進(jìn)一步完善FPGA課程體系。
3FPGA課程體系的理論和實踐教學(xué)內(nèi)容
3.1數(shù)字電路及邏輯(含Verilog HDL語言設(shè)計)
該課程是專業(yè)基礎(chǔ)課,理論學(xué)時48,實驗學(xué)時為12,主要講述Verilog HDL語言、門電路、時序電路和組合電路的概念、原理;講述采用Verilog HDL語言在FPGA上實現(xiàn)各種門電路、時序電路和組合電路功能的方法。
實驗內(nèi)容包括:
1) Max+Plus II的使用流程實驗。
2) 4位全加器實驗:用Verilog HDL設(shè)計4位全加器,進(jìn)行功能仿真驗證。
3) 觸發(fā)器的實驗:用Verilog HDL設(shè)計D才觸發(fā)器、J-K觸發(fā)器,進(jìn)行功能仿真驗證。
4) 計數(shù)器實驗:用Verilog HDL設(shè)計8位計數(shù)器,進(jìn)行功能仿真驗證。
5) 鎖存器實驗:用Verilog HDL設(shè)計RS鎖存器和D鎖存器,進(jìn)行功能仿真驗證。
6) 數(shù)碼管顯示綜合設(shè)計與實現(xiàn):用Verilog HDL設(shè)計7段數(shù)碼管顯示譯碼器,進(jìn)行功能仿真驗證。
7)7人投票表決器實驗:了解投票表決器數(shù)字電路的設(shè)計原理,用Verilog HDL設(shè)計七人投票表決器,進(jìn)行功能仿真驗證。
3.2數(shù)字系統(tǒng)設(shè)計
該課程是專業(yè)方向課。理論學(xué)時32,實驗學(xué)時16,課程從實用角度出發(fā),系統(tǒng)地講述大規(guī)??删幊踢壿嬈骷?、EDA設(shè)計工具和數(shù)字系統(tǒng)設(shè)計方法。理論教學(xué)主要內(nèi)容包括:數(shù)字系統(tǒng)的概念、設(shè)計思想、設(shè)計過程,以及基本模塊電路設(shè)計和系統(tǒng)設(shè)計的概念、方法和原則;CPLD和FPGA器件的結(jié)構(gòu)和原理;仿真與設(shè)計軟件工具ISE的功能和使用;通過實例全面系統(tǒng)地講述數(shù)字電路設(shè)計方法;通過大量實例深人淺出地展示Verilog HDL語言的設(shè)計方法和技巧,并進(jìn)一步介紹用Verilog HDL進(jìn)行數(shù)字系統(tǒng)設(shè)計的方法。
實驗內(nèi)容包括:
1) ISE8.2 工具軟件使用流程實驗,編寫簡單的實驗例程。
2) Architecture Wizard與PACE 實驗:掌握使用Architecture Wizard 與PACE。
3) 全局時序約束實驗:掌握使用Constraints Editor 設(shè)置全局時序約束。
4) 綜合技術(shù)實驗:了解綜合技術(shù)。
5) IP 核生成工具使用實驗:掌握使用CORE Generator的方法。
6) ISE8.2 環(huán)境下Chipscope 使用實驗:掌握使用Chipscope-Pro的方法。
7) 數(shù)字鐘的層次化設(shè)計。
8) 智能洗衣機(jī)控制器的設(shè)計。
9) 智能電梯控制器的設(shè)計。
3.3SEED_XDTK實驗系統(tǒng)分析
該課程是專業(yè)方向課。理論學(xué)時32,實驗學(xué)時16,內(nèi)容包括實驗平臺的硬件組成分析、實驗箱基礎(chǔ)實驗等[2]。通過對SEED_XDTK實驗系統(tǒng)硬件結(jié)構(gòu)的詳細(xì)分析,使學(xué)生學(xué)習(xí)和熟悉SOC/SOPC的硬件系統(tǒng)組成及設(shè)計方法,熟悉實驗平臺的各種接口和外設(shè)的引腳分配和其工作原理,對SOC/SOPC的硬件結(jié)構(gòu)有全面的了解,不僅培養(yǎng)學(xué)生的硬件設(shè)計能力,為SOPC原理及應(yīng)用課程打好基礎(chǔ),同時使學(xué)生加深對FPGA接口設(shè)計實驗的理解。
實驗內(nèi)容包括:
1) LED點陣實驗:了解和掌握定時器的Verilog HDL 實現(xiàn)。
2) 鍵盤實驗:本實驗由鍵盤掃描、去抖,以及數(shù)碼管點亮和蜂鳴器驅(qū)動等功能構(gòu)成。學(xué)習(xí)使用Architecture Wizard 生成DCM模塊單元;掌握例化DCM 模塊單元的方法。
3) AD/DA實驗:了解和掌握A/D、D/A操作的Verilog HDL實現(xiàn)。
4)RTC讀取實驗:了解和掌握I2C時序的Verilog HDL實現(xiàn)以及RTC操作的Verilog HDL實現(xiàn)。
5) LCD顯示實驗:了解和掌握LCD的Verilog HDL實現(xiàn),了解Memory模塊的使用。
3.4SOPC原理及應(yīng)用
該課程是專業(yè)方向課。理論學(xué)時32,實驗學(xué)時8。SOPC是一門涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科,涉及EDA軟件、硬件描述語言、FPGA器件、計算機(jī)組成與接口、匯編語言和C語言、DSP算法、嵌入式系統(tǒng)開發(fā)、嵌入式操作系統(tǒng)等內(nèi)容。
本課程重點講述SOPC系統(tǒng)開發(fā)的設(shè)計理念和方法[3],使學(xué)生熟悉嵌入式開發(fā)環(huán)境(EDK),包括硬件設(shè)計開發(fā)環(huán)境(XPS)和軟件設(shè)計平臺(SDK),并能夠熟練進(jìn)行SOPC的軟硬件系統(tǒng)設(shè)計,包括仿真驗證和調(diào)試。
通過本課程的學(xué)習(xí),學(xué)生能夠牢固掌握基于Xilinx FPGA內(nèi)嵌CPU核Microblaze和PowerPC405的SOPC的基本概念和組成,掌握SOPC的設(shè)計環(huán)境、原理、方法及應(yīng)用技術(shù),能夠具備使用開發(fā)實際SOPC應(yīng)用系統(tǒng)的能力,培養(yǎng)學(xué)生嵌入式系統(tǒng)軟硬件開發(fā)及應(yīng)用能力,為他們今后從事通訊、計算機(jī)和控制等領(lǐng)域的科研和產(chǎn)品開發(fā)打下堅實的基礎(chǔ)。
SOPC實驗包括:
1) 硬件設(shè)計實驗:熟悉XPS硬件開發(fā)環(huán)境,掌握使用Base System Builder(BSB)生成一個系統(tǒng)。
2) 添加IP核實驗:掌握在硬件設(shè)計中添加IP 并學(xué)會使用Xflow來實現(xiàn)設(shè)計。
3) 定制IP Core設(shè)計實驗:掌握使用Create/Import
Peripheral Wizard生成IP。
4) 建立軟件應(yīng)用程序?qū)嶒灒赫莆沼肅語言編寫基本應(yīng)用程序來訪問IP外設(shè)并學(xué)習(xí)利用XPS 生成MSS 文件。
5) SDK 使用實驗:掌握使用SDK 來生成和調(diào)試程序。
6) 硬件/軟件系統(tǒng)調(diào)試實驗:掌握使用Chipscope
Analayzer 和SDK debugger 進(jìn)行調(diào)試的方法。
3.5嵌入式系統(tǒng)設(shè)計案例
該課程是專業(yè)方向課。理論學(xué)時16,實驗學(xué)時8。該課程采用案例教學(xué)方法,通過頻率計[1]、全彩LED音樂景觀燈控制系統(tǒng)[4]案例的講解和實驗,講述采用微控制器,微控制器+FPGA形式的嵌入式系統(tǒng)設(shè)計方法以及SOPC系統(tǒng)的設(shè)計方法,使學(xué)生進(jìn)一步提高嵌入式系統(tǒng)設(shè)計與應(yīng)用能力。
SEED-XDTK教學(xué)實驗平臺可滿足課程群中大部分課程的實驗教學(xué)要求,在此基礎(chǔ)上,充分利用科研項目、校開放式、創(chuàng)新型實驗等的研究成果,進(jìn)一步增加和完善課程體系中的實驗系統(tǒng)。另外,為使學(xué)校投資效益最大化,還可在現(xiàn)有的實驗平臺上,設(shè)計其他專業(yè)方向課的綜合性實驗,例如計算機(jī)控制技術(shù)課程中的數(shù)字插補器的IP核實現(xiàn),信號與系統(tǒng)課程中的濾波器、FFT算法的IP核實現(xiàn),操作系統(tǒng)課程中的內(nèi)核的IP核實現(xiàn)等。
掌握了FPGA設(shè)計技術(shù),通過綜合性和創(chuàng)新性實驗,使學(xué)生將多門課程及概念融