999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向應用型本科教育的FPGA課程教學探討

2016-09-06 03:41:36陳新武陳詠恩黃文霞孫秋菊
實驗技術與管理 2016年3期
關鍵詞:課程設計學生

王 鵬, 陳新武, 陳詠恩, 黃文霞, 孫秋菊

(1. 信陽師范學院 物理電子工程學院, 河南 信陽 464000;2. 同濟大學 通信軟件及專有集成電路設計中心, 上?!?00092)

?

面向應用型本科教育的FPGA課程教學探討

王鵬1,2, 陳新武1, 陳詠恩2, 黃文霞1, 孫秋菊1

(1. 信陽師范學院 物理電子工程學院, 河南 信陽464000;2. 同濟大學 通信軟件及專有集成電路設計中心, 上海200092)

結合實際的工程和教學經驗,對FPGA課程的教學改革進行了有益的探索,并對教學關鍵點進行了整理,重點介紹如何理解FPGA和HDL語言的硬件電路特質,以及阻塞和非阻塞賦值的本質區別。在FPGA課程教學中綜合采用多種措施,并特別加強對學生代碼風格的訓練,使學生在接觸課程時產生濃厚興趣,逐步建立硬件電路思維。

FPGA課程; 硬件描述語言; 并發執行; 代碼規范

FPGA是現代電子技術領域中發展最為迅猛的領域之一,自1985年Xilinx公司推出首款FPGA產品XC2064以來,它就以其固有的高度靈活性、硬件級并行執行等優勢迅速占領了諸多電子設計領域[1]。2015年6月,半導體巨頭Intel公司宣布以167億美元的價格收購FPGA主要生產商Altera公司,這次并購也使更多人認識到了FPGA的巨大價值。與FPGA產業的飛速發展相對應,目前國內幾乎所有高校也都針對電子相關專業本科生開設了FPGA設計基礎、可編程邏輯器件等專業課程[2]。然而該課程的教學普遍存在著明顯的重理論、輕實踐問題,大量課時浪費在講述FPGA內部結構原理和復雜的HDL語法上,留給學生思考、設計的時間很少,絕大部分本科生在完成課程學習后仍然不能理解FPGA的硬件電路實質,仍然采用類似C語言的思維進行HDL代碼編寫[3]。兼之一些授課教師也缺乏工程經驗,知識更新不及時,更進一步制約了授課效果,培養出來的學生基本不具備實際FPGA開發能力,這與現實中FPGA應用人才的缺乏形成了鮮明的對比。

1 深入理解FPGA的硬件理念

FPGA設計的主要手段是HDL語言,由于其開發過程與傳統的單片機、CPU比較相似,加之HDL語言在語法上也與不少軟件語言類似,使得許多學生以學習軟件編程語言的方式學習HDL,而許多授課教師也未能意識到這一點,或者即使意識到了,但強調程度仍不夠,這樣就導致了學生雖然掌握了HDL語法,但由于沒有硬件電路思維,不能深刻領會HDL語言的最終實現目標是硬件電路,設計出來的代碼常常只能用作仿真而無法綜合,或者即使可以綜合,也存在著占用資源大、代碼運行效率低等問題[4]。

曾經有不少人對FPGA究竟屬于軟件還是硬件感到困惑,其中甚至不乏具有豐富經驗的電子工程師。事實上,只需簡單了解FPGA的構造即可發現,其內部包含大量的LUT、寄存器、可編程布局布線、IO以及存儲資源等。其中LUT可實現任意組合邏輯功能,寄存器則用于實現時序功能。明白了這一點,就會清楚地意識到FPGA是一種典型的硬件級可編程數字集成電路。

2 HDL語言的選擇

目前,常用的HDL語言主要包括Verilog和VHDL,二者都有各自的優缺點,也都能較好地完成電子設計工作。事實上,從可綜合代碼角度來看,二者并沒有本質區別,相同的邏輯功能,使用Verilog和VHDL實現并無太大差別。許多EDA軟件如Synplify、ISE、ActiveHDL等都支持Verilog和VHDL混合編程,甚至還有專業軟件可以自動在Verilog和VHDL之間完成轉換[5]。

但是,Verilog和VHDL還是有各自的特點,一般地,EDA業界公認Verilog語法靈活、代碼緊湊,VHDL則結構嚴密、代碼比較冗長。而從使用現狀來看,Verilog更為流行。據統計,在美國高層次數字系統設計領域中,應用 Verilog 和 VHDL 的比率是 90%和 10%。日韓、臺灣和美國類似,歐洲 VHDL 發展稍好,但也不如Verilog。在中國,絕大多數集成電路設計公司也都采用 Verilog ,但VHDL在一些軍工研究所及高校也有一定的市場[6]。

另一方面,Verilog 的成熟資源也比 VHDL 豐富,許多半導體廠商在提供器件行為仿真模型時僅提供Verilog模型。 而且Verilog在較短的時間內即可掌握,而 VHDL 不夠直觀,一般認為至少要半年以上的專業培訓才能掌握。雖然傳統意義上認為VHDL在更大規模的系統設計中有一定優勢,但隨著Verilog-2001、Verilog-2005等新一代Verilog標準的出現,Verilog的系統級、算法級描述能力得到了很大改善,VHDL的相對優勢已經越來越少。

此外,隨著EDA技術的不斷發展,SystemVerilog、SystemC作為新型HDL語言的代表也已經出現,這些語言加入了許多面向對象語言特性[7-8],并在許多EDA公司得到了廣泛應用,但其各自的強項分別是設計驗證和算法仿真建模,在傳統的RTL級代碼領域, Verilog的生命力依然很旺盛,而且Verilog也在不斷更新自身以迎合時代發展,在可以預見的將來,Verilog仍會在EDA設計領域中占據十分重要的地位。

因此在HDL語言的選擇上不必盲目求新講述SystemVerilog/SystemC,而在Verilog和VHDL這兩種經典HDL之間,前者的發展勢頭更好,授課采用Verilog無疑是更主流、更迎合業界現狀的選擇。

3 FPGA課程教學思路

在專業轉型的大背景下,FPGA課程作為典型的應用技術專業課,其授課目的應當是讓學生理解與掌握這種與傳統CPU截然不同的設計實現方式,并順利成長為合格的FPGA開發工程師,但由于在FPGA課程學習中還會經常涉及到其他課程的專業知識,如講述FIR數字濾波、DDC數字下變頻等處理模塊時,就要求學生必須具有數字信號處理及通信原理基礎。因此,各轉型高校應當在修訂培養方案時注意專業課程的安排次序及教學進度,保證教師在講解一些FPGA實用模塊時學生具備相應的專業知識基礎。

3.1開課吸引學生興趣

目前許多FPGA教材的概述部分充斥著大量的專業詞匯,這對于此前未接觸過FPGA的學生,很容易感到困惑且難以接受。因此,授課教師在開始課堂講述時,切忌一上來就引入過多的新概念,可轉而從可編程邏輯器件的發展歷史、市場規模乃至開發人員的就業前景等著手,首先要吸引學生對該課程的興趣,讓學生真正認識到FPGA開發是一門很有用的技術。例如,可介紹可編程邏輯器件領導廠家Xilinx公司的快速發展歷程,從1984年成立時僅有3名員工,只花了10年的時間,公司收入就達到了10億美元,現在Xilinx已發展成了全球最大的FPGA生產商,年銷售額數十億美元[9],同樣地,擁有3 000名員工的Altera公司被Intel公司以167億美元高價收購也是FPGA巨大價值的絕好例子。再加上豐富的圖片、視頻向學生介紹FPGA的典型產品及應用,如火星探測計劃、航空武器等。通過這些手段,學生很快就能對FPGA器件產生濃厚的興趣,使學生主動學習相關知識,相應的授課效果也得到了改善。

3.2強調FPGA與CPU的本質區別

由于FPGA與單片機、ARM等CPU在開發過程上的相似性,許多學生難以理解FPGA與CPU的差異,這導致學生經常使用學習CPU的思路來學習FPGA,帶來許多不必要的麻煩。為了加深印象,可以從日常生活中提取許多生動實例,向學生強調FPGA的硬件電路本質。類似商品房和自建房的區別,從事CPU開發就像是購買開發商提供的商品房,其戶型、面積等類似于CPU的主頻、緩存等關鍵參數,購房者(開發人員)只能在開發房提供好的戶型圖中選擇一種比較適合自己的房子,并可對房子進行裝修(編程開發),但選擇戶型和裝修的自由度都有限,而從事FPGA開發則像是完全自行建房。FPGA為設計人員提供了大量的建筑材料,如LUT、RAM、PLL(類似于磚塊、鋼筋、水泥等),開發人員可以自行將這些底層建筑原料設計成適合的建筑物(FPGA工程),建筑的戶型、面積等均可以由設計人員自行決定。FPGA開發遠比CPU開發靈活,也更為底層,因此,FPGA設計工程質量的好壞就完全依賴于開發者自身;而CPU開發人員的主要精力則是在軟件代碼設計上,只需考慮代碼運行結果的正確與否及效率的高低,具體的代碼執行過程則由CPU自行完成,開發人員一般不必關心。通過這個生活實例的對比講解,學生可以比較透徹地理解FPGA開發與CPU開發的重大區別,并有助于消除其對FPGA的誤解。

3.3淡化原理圖設計輸入

原理圖設計方式是傳統數字電路的一種常見設計手段,該設計方式也被FPGA所繼承,Altera和Xilinx兩大FPGA廠商在其設計套件Quartus II和ISE中均提供可選的原理圖設計方式[10]。不僅如此,國內幾乎所有的EDA教材也都將基于原理圖方式的設計手段作為FPGA設計入門教程,并在學生掌握原理圖設計手段后再介紹基于HDL的設計方式,這一方面是由于原理圖方式具有可視化效果好、上手快等優點,另一方面則是因為學生在之前的數字電路課程中已經習慣于閱讀和設計各種由邏輯門電路、觸發器等元器件構建的電路原理圖。然而事實上,這種設計方式在實際的FPGA應用中早已被淘汰,其可移植性差、不適合復雜系統等先天缺陷,注定它只適合于以分離元器件為主的特定時期[11]。

自從成熟的HDL出現以后,真正有效的FPGA設計手段就一直是基于HDL可綜合代碼的設計方式。因此,講述FPGA設計時不推薦學生采用原理圖的設計方式,而是一開始就要求掌握基于HDL的設計方式。雖然這種方式不如原理圖直觀,但HDL自身就是面向硬件設計的,學生只有掌握了這種方式才能真正發揮FPGA的強大功能,而且現代FPGA內部集成LUT和寄存器越來越豐富,一些高端FPGA芯片的寄存器及LUT資源達數百萬量級。采用HDL可以很好地完成此類復雜的數字系統設計,其設計效果遠遠優于原理圖設計方式。

不推薦原理圖設計方式的另一個有力證據則來源于FPGA生產商, 目前最大的FPGA廠商Xilinx公司自2012年開始推出用于取代ISE的全新FPGA開發套件Vivado(最新版本為2015.1),該開發工具已經明確不再支持基于原理圖的開發手段,因此,FPGA授課教師應該及時吸納最新的設計理念,直接講述基于HDL的設計方式。

3.4阻塞與非阻塞賦值

阻塞與非阻塞賦值是Verilog語言中的著名難點,也是其特有的語法現象,甚至許多具有多年經驗的FPGA工程師也未能完全理清該問題。阻塞賦值的理念相對容易理解,因為它與軟件語言中的串行執行概念是大致相同的,即后一條語句執行時,前一條語句已經執行完畢了,初學者學習這種賦值一般比較自然,但學習非阻塞賦值時則有較大難度。

許多教科書上只是簡單地介紹非阻塞具有并發執行特性,且語句的先后書寫順序與執行結果無關,但對非阻塞賦值的詳細執行過程并沒有仔細介紹,初學者更是對并發執行的特性難以接受。事實上,借用信號與系統中的δ沖激函數概念,可以有效地幫助學生理解非阻塞賦值的實質。

下面以典型的阻塞與非阻塞賦值對比語句為例,從執行機理上解釋二者的區別(該實例被多個教材采用,但解釋方式各有不同):

代碼1(阻塞賦值):

module tst(q1,q2, clk_osc) ;

input clk_osc;

output [7:0] q1,q2;

reg [7:0] q1,q2;

always @(posedge clk_osc)

begin

q1=q1+8′d1;

q2=q1;

end

endmodule

上述代碼采用了阻塞賦值,在執行到q2=q1時,q1=q1+8′d1已經執行完畢,即意味著在任何時刻,q2的輸出實際上與q1完全相同,如果將上述代碼進行綜合,其電路如圖1所示,其中的q2輸出部分雖然也有一個寄存器,但它與下方q1輸出寄存器是完全等價的,如果把綜合器的代碼優化功能打開,q2輸出寄存器將會被徹底優化掉,此時q2共享q1輸出數值。

圖1 阻塞賦值綜合后RTL級電路圖

而如果是非阻塞賦值,其代碼為:

代碼2(非阻塞賦值,僅列出always塊語句,其他同代碼1):

always @(posedge clk_osc)

begin

q1<=q1+8′d1;

q2<=q1;

end

非阻塞賦值的重要特點是表達式運算與目的變量值更新分開進行,對于上述非阻塞賦值過程塊,其執行過程可以分析如下:首先執行q1<=q1+8′d1語句,即進行q1累加操作,得到新的q1值,但并不立即更新,而是需要一個極小的δ時間才能完成,同樣地,q2<=q1語句執行也是一樣,得到新的q2值后也不立即更新,而且該時刻參與運算的q1依然是老值,而不是q1<=q1+8′d1語句得到的新值,只有在δ時間過去后,全部非阻塞語句的目的變量值才能被更新。因此,整個過程塊的執行效果就是q1完成累加計數,而q2則對q1進行一級寄存處理,相應的RTL綜合視圖如圖2所示。

圖2 非阻塞賦值綜合后RTL級電路圖

需要說明的是,以上分析來源于Verilog語言的語法特性,EDA仿真器在仿真非阻塞賦值代碼時,由于其工作平臺是基于串行執行理念的CPU,所以即使是非阻塞賦值,依然需要通過串行執行的步驟實現,只是由于它具有表達式計算與賦值更新分開完成這一獨特語法現象,運行效果與實際硬件電路的并行運行特性等同。教師在講授非阻塞賦值時,務必要讓學生理解,之所以有非阻塞賦值這種特殊操作,是為了模擬硬件電路的并發運行特點,但它本身仍是通過串行執行完成的。

大量FPGA教科書為了進一步加深學生對兩種賦值的理解,常常加入大量阻塞非阻塞混合使用的實例。事實上,授課教師只需讓學生清楚這兩種賦值的本質區別及應用范圍即可,在實際EDA工程設計中,出于代碼可讀性和可維護性的考慮,阻塞和非阻塞賦值是嚴格禁止在同一過程塊語句中出現的,而許多教材花了大量篇幅講授的這些實例并沒有實用價值,反而讓學生過于追求復雜語法,得不償失。

3.5重視良好的代碼風格

由于并發執行語句的存在,HDL語言在可讀性上明顯遜色于各類軟件高級編程語言,而且代碼量普遍很大,即使是一些中小規模HDL設計,其代碼也通常都在數千行甚至上萬行,再加上后期的功能升級等要求,均對HDL代碼的可讀性、可維護性提出了更高要求。正因為如此,良好的代碼風格在HDL中顯得尤為關鍵[12]。

目前,國內的主流EDA教材對HDL代碼風格重視程度明顯不夠,多數教材甚至直接缺失該部分內容。這導致許多學生雖然學習了FPGA課程,但在工作后從事FPGA開發時代碼書寫混亂,幾乎沒有可維護性,并不能真正完成具有工程實用性的FPGA設計。事實上,幾乎所有的業界知名半導體公司及研究所均有相應的HDL代碼風格及規范要求,如華為公司、中興公司、中國航天科技集團等。Xilinx和Altera公司作為FPGA主要生產商,也在其產品手冊中給出了許多代碼設計規范要求,這些要求雖然細節不盡相同,但仍有許多共通之處,如同步化設計、合理的注釋、變量命名原則、狀態機書寫范式等。這些代碼風格上的要求恰恰是目前FPGA課堂教學最為欠缺的。許多公司及研究所在招聘應屆生從事FPGA開發時,常常還需要花大力氣對其進行代碼風格和規范書寫的專門培訓。因此,在FPGA課堂教學時就要開始重視代碼風格問題,將一些業界的通用性要求向學生講述清楚,在課堂實驗時要求學生自覺做到這些并逐步培養自身代碼書寫規范能力,以提高工程化設計能力。這一點在當下應用型教育愈發重要的背景下,尤其具有重大的現實意義。

4 總結與結論

結合FPGA技術的發展現狀,提出了面向應用型本科教育的FPGA課程改革及教學關鍵點,結合工程和教學經驗,總結了一些具有較強參考價值的教學思路,包括深入理解FPGA的硬件電路屬性、HDL語言的選擇、FPGA與CPU的本質區別,以及Verilog的教學難點、代碼規范的重要性等。只有讓學生真正理解了這些課程關鍵點,才能理清學習思路,做到有的放矢,在學習中不走彎路,最終達到學以致用,成為優秀的FPGA應用型人才。

References)

[1] 楊海鋼,孫嘉斌,王慰.FPGA器件設計技術發展綜述[J].電子與信息學報,2010, 32(3):714-727.

[2] 覃洪英. FPGA實驗教學方法改進探討[J]. 實驗室科學, 2012, 15(4):79:82.

[3] 朱磊,衛建華,邱春婷.FPGA課程實踐環節教學改革[J].高等工程教育研究,2008, 30(12):134-136.

[4] 劉寧莊.實踐教學方法在FPGA課程教學中的應用[J].高校實驗室工作研究,2013 (1):22-24.

[5] 安健,吳悅,楊洪斌,等. Verilog到VHDL翻譯器的設計與實現[J].計算機工程與設計,2005,26(10):2695-2697.

[6] 夏宇聞.Verilog數字系統設計教程 [M].3版.北京:北京航空航天大學出版社,2014.

[7] 姚愛紅,孫盟哲,張智鈞,等.基于斷言的Compact PCI總線IP核功能驗證[J].小型微型計算機系統,2014,35(3):676-680.

[8] 崔惠珊,崔海青,李淼.基于SystemVerilog的多通道ARINC429總線通訊板卡的設計[J].現代電子技術,2014,38(16):54-57.

[9] 胥京宇.Xilinx 20nm All Programmable Ultra Scale產品系列面世[J].世界電子元器件, 2014(1):34-36.

[10] 梁瑞宇,奚吉. HDL項目設計的創新實驗設計[J].中國科教創新導刊,2013,34(10):28-30.

[11] 段帥君. 基于Verilog HDL語言的CAN總線控制器設計及測試[D]. 長春:吉林大學,2009.

[12] 邸志雄. HDL代碼質量評估方法關鍵技術研究與電路性能優化[D].西安:西安電子科技大學,2013.

Exploration of FPGA course teaching for application-oriented undergraduate education

Wang Peng1,2, Chen Xinwu1, Chen Yongen2, Huang Wenxia1, Sun Qiuju1, Zhong Lijuan1

(1. College of Physics & Electronics, Xinyang Normal University, Xinyang 464000, China;2. Communication Software & ASIC Design Centre, Tongji University, Shanghai 200091, China)

Combining the long-term engineering and teaching experience, beneficial explorations on FPGA course reform were accomplished, and key points of FPGA course were listed clearly. The natures of FPGA and HDL’s hardware circuit were interpreted in detail to help students understand this knowledge point. Essential differences of blocking and non-blocking assignments of Verilog HDL were presented clearly, too. With methods depicted above, plus specialized training on HDL coding style, the students’ interests in FPGA course were enhanced clearly. Besides, the students can distinguish FPGA and CPU easily along with course studying. Hardware-circuit-oriented thinking was also established naturally.

FPGA course; hardware description language; concurrent-operation; coding norm

10.16791/j.cnki.sjg.2016.03.047

2015- 09- 17修改日期:2015- 11- 03

河南省教育廳教師教育課程改革研究項目(2013-JSJYZD-026);河南省高等學校重點科研項目(15A510011)

王鵬(1985—),男,河南周口,博士,高級工程師,主要研究方向為超大規模集成電路設計、數字通信.

E-mail:pengpwn1985@163.com

G642.4

A

1002-4956(2016)3- 0185- 04

猜你喜歡
課程設計學生
數字圖像處理課程混合式教學改革與探索
軟件設計與開發實踐課程探索與實踐
計算機教育(2020年5期)2020-07-24 08:53:38
為什么要學習HAA課程?
趕不走的學生
瞞天過?!律O計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
學生寫話
學生寫的話
聰明的學生等
主站蜘蛛池模板: 2020国产免费久久精品99| 特级aaaaaaaaa毛片免费视频| 91视频区| 精品国产女同疯狂摩擦2| 噜噜噜久久| 日韩欧美国产三级| 国产精品蜜芽在线观看| 国产欧美又粗又猛又爽老| 亚洲天堂2014| 国产成人精品视频一区视频二区| 91丨九色丨首页在线播放 | 亚洲人成网18禁| 国产aⅴ无码专区亚洲av综合网| 全部毛片免费看| 久久夜色精品国产嚕嚕亚洲av| 97在线公开视频| 欧美v在线| 人人澡人人爽欧美一区| 在线播放精品一区二区啪视频| 久久精品国产精品国产一区| 亚洲中文字幕日产无码2021| 狠狠色噜噜狠狠狠狠奇米777| 91av成人日本不卡三区| 视频一本大道香蕉久在线播放 | 日韩一区精品视频一区二区| 亚洲国产av无码综合原创国产| www中文字幕在线观看| 免费毛片网站在线观看| 亚洲免费播放| 午夜一区二区三区| 91精品国产91久久久久久三级| 国产国产人成免费视频77777 | 亚洲第一极品精品无码| 在线视频一区二区三区不卡| 为你提供最新久久精品久久综合| 日本精品视频一区二区| 欧美日韩免费| 91亚洲视频下载| 在线免费亚洲无码视频| 亚洲无码高清一区二区| 好吊色妇女免费视频免费| 色哟哟国产精品| 亚洲中文在线视频| 亚洲成a人片7777| 97久久人人超碰国产精品| 永久免费av网站可以直接看的 | 99精品这里只有精品高清视频| 国产在线啪| 亚洲中文在线看视频一区| 亚洲人成网站日本片| 国产乱人伦AV在线A| 爽爽影院十八禁在线观看| 国产一二视频| 国产精品护士| 欧美日韩午夜| 欧美日韩中文国产va另类| 国产不卡一级毛片视频| 中文字幕无码av专区久久| 亚洲一区二区成人| 亚洲第一中文字幕| 精品成人一区二区| 一级香蕉视频在线观看| 波多野结衣视频一区二区| 尤物国产在线| 青青草久久伊人| 午夜国产精品视频| 亚洲成网777777国产精品| 精品人妻一区无码视频| 精品人妻AV区| 国产日韩久久久久无码精品| 久久成人国产精品免费软件| jizz国产在线| 国产高清国内精品福利| 亚洲成aⅴ人在线观看| 欧美区一区二区三| 亚洲精品午夜无码电影网| 午夜视频免费试看| 高清免费毛片| 久久久久免费精品国产| 成年女人a毛片免费视频| 国产真实乱了在线播放| 亚洲欧美极品|