黃金鳳



摘要:該文通過本科教學應用型人才培養目標,針對FPGA這門課程,將理論和實踐結合起來,從軟件平臺和硬件內部結構相結合的方式對課程進行了教學探索。
關鍵詞:應用型人才培養;FPGA;教學探索
中圖分類號:TP311? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2019)01-0138-03
對于普通高校電子與通信專業的學生,FPGA課程是實踐應用性非常強的一門課程,不但涉及數字邏輯電路的相關知識,還涉及現代電子系統設計的相關知識,需要掌握軟件平臺的設計、硬件內部結構和外圍電路的設計,理論教學和實踐教學的偏重性,使教學施用于學生產生的結果有所不同,如何使學生既能掌握理論知識,又能將理論知識應用到實踐中去,通過實踐應用又能更好地鞏固理論知識,這個問題關乎到了FPGA課程的教學模式。傳統的教學是側重軟件的使用和硬件描述語言的編寫這兩方面,這種教學模式使學生加強了軟件算法編程思維,而忽視了硬件電路設計思維。學生即使很好地掌握了硬件描述語言編寫,但對于硬件電路需要考慮的延遲、功耗、電氣連接等方面知之甚少,編寫的代碼有的綜合優化過程出問題,有的適配、布局布線過程出問題,有的時序約束不可測,有的電氣連接不標準等。所以在很好掌握硬件描述語言編程的同時,學生要結合可編程邏輯器件內部結構來看綜合優化過程,適配、布局布線過程是否合理。本論文針對傳統教學方式的不足,從軟件平臺和硬件內部結構相結合的方式對課程進行了教學改革方面的探索。
2 軟件平臺和硬件內部結構相結合
2.1 軟件平臺介紹
目前,可編程邏輯器件CPLD/FPGA的供應廠商主要有四家,Altera、Xilinx、Lattice和Actel公司,每一個供應廠商都有各自的軟件開發工具,如Altera公司的Quartus II,Xilinx公司的ISE,Actel公司的libero。針對各所學校采購的CPLD/FPGA型號不一樣,可以選用相應的軟件開發工具進行設計。由于我院采購的是Altera公司的FPGA芯片,所以學生應利用Quartus II軟件進行電子系統設計。
Quartus II是進行電子系統設計的集成開發軟件,里面集成了設計輸入所需的編輯器,設計處理所需的綜合器、適配器、布局布線優化器、時序分析器、仿真器、編程下載器等多種軟件,通過這些軟件相互結合使用,可以實現電子系統設計的自動化。 圖1所示的是利用Quartus II軟件對PLD進行設計開發的流程圖。
第一步,分析當前的設計任務要求,針對電路系統的功能、復雜程度及一些性能參數,選擇合適的設計方法,器件資源等準備工作。
第二步,選擇適合的設計輸入方式,如畫電路原理圖的方式,用HDL描述電路方式,或者各種方式相互結合。
第三步,對設計的電路系統進行處理,如綜合、適配、布局布線優化等操作。
第四步,可以對設計的電路系統進行功能仿真和時序仿真。
第五步,對設計的電路系統進行編程下載及硬件測試。
在設計過程中,如果出現錯誤,則需要重新回到設計輸入階段,在改正錯誤或調整電路后重復上述過程。
2.2 FPGA硬件內部結構
FPGA的內部結構如圖2所示,都包含以下3個部分,芯片四周引腳端的可編程I/O單元,內部主體區域的可編程LE,每個單元間的局部可編程連線,有些芯片內部還可嵌入專用存儲塊RAM,內嵌功能單元和專用硬核等,可編程LE內部結構如圖3所示,主要由一個有四個輸入端的SRAM 加上D觸發器構成。
2.3 采用軟件平臺和硬件內部結構相結合的方式進行教學
關于通過軟件平臺進行PLD設計開發過程在前面已經闡述過,第一步通過任務分析進行設計輸入,輸入方式通常有原理圖和HDL文本輸入兩種,原理圖輸入方式比較直觀,電路內部結構一目了然,然而HDL文本輸入方式就比較抽象,和軟件編程語言類似,也有語法規則、編程格式等需要注意的,如何正確地編寫成可綜合、適配的硬件電路結構,需要教師在課堂教學上改進教學模式,以幫助學生更好的理解HDL語言。對于組合邏輯電路,輸出信號的變化隨著輸入信號的改變而改變,且不具有值存儲功能,在編寫時各種信號相互之間的邏輯關系運算符可以看成是各種邏輯門互相連接,例如賦值語句y = ~s & a | s & b,其中的運算符“~、&、|”可以理解為“非門、與門、或門”。對于時序邏輯電路,輸出信號具有值存儲功能,在HDL描述時需要加入時鐘信號,清零或置位信號,硬件電路結構里需要用到觸發器,而觸發器需要時鐘信號來控制。
第二步,對設計輸入文件進行編譯,包括綜合和適配、布局布線優化,在講解綜合器的作用時,可以通過Quartus II軟件中的Netlist Viewers觀看綜合得到的硬件電路結構。例如三人投票表決器設計實驗,用HDL描述電路如下所示:
module bj3(a,b,c,l1,l2); //a,b,表示投票的三人,l1表示通過,l2表示不通過(少于2人投票)
input a,b,c;
output? l1,l2;
assign l1=(a&b)|(b&c)|(c&a)|(a&b&c);
assign l2=~l1;
endmodule
HDL描述的電路比較抽象,將抽象的描述語言轉化成具有內部結構的電路就是綜合器的主要作用,通過Netlist Viewers查看電路內部結構如圖2所示:
從圖2中可以看出,HDL中的位運算符綜合成了電路的各個邏輯門,在軟件學習過程中,教師可以通過這種舉例的方式直觀地讓學生感受到,綜合器的作用。
第三步,對綜合得到的網表文件進行適配,適配器的主要作用是將電路與目標器件FPGA中的可編程單元進行映射,通過FPGA 生成實際的硬件電路。在實際講授過程中,我們可以通過Quartus II軟件中的Chip planner觀看適配結果,仍以三人投票表決器設計為例,在Chip planner觀察窗口,可以看到實際的FPGA內部硬件結構,如圖3所示,FPGA型號選用Cyclone系列的EP1C12Q240C8,圖3和圖1所示的FPGA 內部結構劃分類似,其中該例子中的輸入、輸出管腳在可編程I/O單元區域用深棕色標出,三人投票表決器邏輯值用邏輯單元中的查找表存儲,占用的LE單元用深藍色標出。通過放大按鈕,可以清楚地看到電路資源分配情況,如圖4和圖5 所示。
從適配后電路資源分配情況,可以更清楚地掌握FPGA內部結構,從而更好地理解可編程邏輯器件的編程原理。
通過軟件平臺和硬件內部結構相結合的方式進行教學,學生更容易理解硬件描述語言的本質,綜合器和適配器真正的作用,他們都是為了配合可編程邏輯器件內部結構而使用的工具。
3 結語
FPGA課程是實踐應用性非常強的一門課程,雖然大部分工作都是在軟件開發設計這塊,但是如果對可編程邏輯器件內部結構不了解,數字電路基本原理不清楚,軟件開發設計這塊就會遇到很多問題。如何有效地將軟件平臺和硬件電路結構結合起來,使學生高屋建瓴地進行電子系統設計,需要教師對于這門課程的教學不斷的探索、改進。
參考文獻
[1] 李兆光.數字電子技術課程中FPGA技術教學內容的改革[J].山西電子技術,2015(2):23-24,31
[2] 高一沅.應用型本科專業FPGA相關課程教學模式的探討[J].湖北科技學院學報.2016(4):84-86
[3]龐前娟.應用型本科EDA技術教學改革的研究[J].大學教育,2015(7):125-126
[4] 鄭利浩,王荃,等. FPGA數字邏輯設計教程[M].電子工業出版社,2010.
[5] 吳厚航.深入淺出玩轉FPGA[M],北京航空航天大學出版社,2010.