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