趙翠芹+黃星壽

摘要:從教學中存在的問題出發,提出《數字電路》課程教學改革舉措:更新教學內容,積極推進數字電路與自動化技術的有效銜接和兼容;采納以點帶面和觸類旁通的教學方法,尋找規律,提高教學質量;以項目式教學為主導,拓展和豐富課堂教學內容,做好后續課程接續工作。本著應用型人才培養的目標,優化學時安排,切實推進《數字電路》課程教學改革。
關鍵詞:《數字電路》課程;物聯網工程;課程教學改革
DOIDOI:10.11907/rjdk.171037
中圖分類號:G434
文獻標識碼:A 文章編號:1672-7800(2017)006-0214-03
0 引言
目前,數字電子技術完全遵守摩爾定律,向著低功耗、智能化和集成化方向發展。CPU從8088的幾兆核磁的頻率躍進到10Ghz的門檻;TTL電平從5V過渡到0.6V的核心電壓[1-2];74系列器件組合的“板上系統”進入到FPGA的SOPC“片上系統”,SOC系統的尺寸集成度達到10nm,并且臺積電的10nm技術將會應用在“iPhone 8”、華為Mate9等高端智能機中;2015年六一兒童節,Intel 以重金167億美元購買Alter公司,Alter是生產FPGA的第二大產商[3];2016年9月Xilinx收購Auviz Systems,Xilinx是FPGA最大的廠商[4];中資背景的基金Canyon Bridge在2016年11月4日以13億美元的價格收購FPGA第三廠商Lattice[5]。可以預見,FPGA技術將會在并行計算方面得到廣泛應用,而《數字電路》課程的內容是FPGA技術的基礎。因此,《數字電路》作為物聯網工程專業的核心課程之一,倍受重視。從《數字電路》課程教學中存在的問題和應用型人才培養的需要出發,從教學內容、教學手段、教學方法上對《數字電路》的課程教學提出一些改革舉措。
1 《數字電路》課程教學中存在的問題
數字電子技術在向智能化、集成化發展的過程中,其在物聯網中的應用也日益廣泛。“萬物互聯”時代,數字電路愈顯重要。它是嵌入式課程體系的基石,例如單片機原理及應用、計算機組成原理、STM32、A8網關嵌入式原理及應用、物聯網通信技術等,都能找到電子技術的影子。《數字電路》課程在物聯網專業領域贏獲高度重視,同時也對這門課的教學內容、教學手段和教學方法提出了史無前例的挑戰[6]。
自2008年以來,筆者一直承擔著《數字電路》課程的教學任務。基于多年專業知識系統的學習和教學經驗的積累,總結出《數字電路》課程教學中存在的一些問題:一是教材內容陳舊,其與自動化技術很難兼容、銜接;二是知識點盤根錯節,令人眼花繚亂,缺乏一種融會貫通的思路;三是在教學安排上,理論教學占比太大,實踐操作環節欠缺。如果想做好嵌入式課程體系的傳承性、延續性和奠基性工作,就必須對《數字電路》課程進行教學改革。
2 《數字電路》課程教學改革舉措
2.1 積極拓展教學內容,實現數字電路與自動化技術的有效銜接和兼容
《數字電路》課程教學中存在很多與自動化技術不能有效兼容的問題。其中,邏輯函數的化簡與自動化技術在內容兼容和銜接方面就存在許多障礙。邏輯函數的化簡所涉及的公式繁多,與普通代數公式容易混淆,化簡過程中需要一定的技巧,這些確實是一塊較難掌握的內容。事實上,化簡的工作完全可以采用自動化軟件來處理。例如Multisim仿真軟件的使用,該軟件已經提供了一個虛擬邏輯轉換器,能夠完成真值表、邏輯表達式和邏輯電路三者之間的相互轉換功能[7]。
《數字電路》課程的知識點較為瑣碎、零散,規律性不是很強,但是經過仔細研究,發現還是有規律可循的,主要包括組合邏輯電路和時序邏輯電路。組合邏輯電路的設計和分析過程中,最核心的部分就是如何構造真值表,需要明確實現一個功能需要輸入變量數和輸出變量數,并且給出什么情況取1,什么情況取0,然后根據邏輯功能給出真值表。如出一轍的還有同步時序電路的設計與分析,該部分的重點就是構造狀態圖。有了真值表和狀態圖之后,就可以通過數字系統自動化設計軟件完成對應的電路設計和測試。由此不難發現,對于組合邏輯電路,首先用Verilog HDL語言對輸入輸出端口進行申明,用wire或reg進行數據類型說明,接著在數據流描述語句中用assign語句實現相應功能,或行為級描述中用結構的過程always用case和endcase語句來描述真值表。對于時序邏輯電路,用Parameter語句定義電路的狀態,用always語句描述時鐘控制的狀態轉換以及電路的次態邏輯。借助自動化技術完全可以做到利用極少數的語句實現關鍵部件設計,解決HDL語言教學費時費力的問題,從而使學生學習的焦點聚集在真值表和狀態圖的重點知識上,更注重系統設計和能力培養。
2.2 采納以點帶面和觸類旁通的教學方法,尋找規律,提高教學質量
數字邏輯器件不計其數,不可能所有的器件都要在課堂上學習。就是教材中的少量器件,很多學生面對其功能表和邏輯圖往往也是一頭霧水,看不明白,漸漸對學習失去了信心。實際上按常理也是有規律可循的。需要了解器件端口的有效電平、優先級順序、同步還是異步等問題。以74161器件為例來進行討論,其功能表截圖如圖1所示,邏輯結構如圖2所示。
首先,研究該器件的有效電平。從圖1的功能表截圖可以看出,清零端CR和置數端PE這兩個變量是非變量,則表示低電平有效,其它輸入輸出變量為原變量,高電平有效;從邏輯圖中可以看出CR和PE端口前面加小圓圈“。”表示低電平有效。圖1的第一行表示清零有效,輸出統統為零;第二行表示清零無效,置數有效時,把輸入的數據送到輸出端;第三行和第四行表示,清零和置數無效、計數使能端CET和CEP只要其中一個無效,電路出于保持狀態;最后一行表示清零和置數都無效、CET和CEP都有效時,電路處于計數狀態。
其次,功能表中輸入端口含有無關項,必然要考慮端口的優先級順序。圖1功能表截圖的第一行表明,只要清零端CR有效,封鎖了其它的輸入端,說明清零端的優先級最高;第二行表示清零端CR無效,置數端PE有效,封鎖了其它輸入端,說明PE的優先級僅次于CR,其它情況以此類推。
最后,研究端口的同步和異步功能。從圖1中功能表截圖中第一行和第二行的對比分析可以看出,清零端不需要等待時鐘脈沖的邊沿到達,直接清零,所以清零端是異步的,可以給它起名為“異步清零端”;置數端需要等待時鐘邊沿的觸發作用到達才把輸入的數據送到輸出,置數端是同步的,可以稱之為同步置數端。
掌握74LVC161的邏輯功能之后,其它如74LS192、74LS160、74LS162、74LS163等器件也很容易做到觸類旁通,達到用最少的課時掌握盡可能多的器件知識。
2.3 豐富課堂教學內容,做好后續課程接續工作
數字電路中的一些簡單概念,在后續課程中需經常用到。格雷碼就是其中應用較為廣泛的一種編碼,其特點是相鄰碼組之間只有1位不一樣,具有循環相接特性。在卡諾圖化簡過程中,卡諾圖邊界上的碼就是格雷碼;在通信原理課程中,2PSK、QPSK、MPSK和正交幅度調制QAM的星座映射圖都是按照格雷碼的編碼規律來映射的。教材中直接給出了4位格雷碼,不容易記,“授人以漁”要比“授人以魚”重要,要教會學生如何去編寫格雷碼。格雷碼的編碼比較簡單,可以先編寫1個格雷碼,然后由1位擴展到2位。例如一位格雷碼是0和1,2位格雷碼就是在1位格雷碼的基礎上找一面鏡子,利用鏡像對稱特性,鏡子前面和后面的編碼順序逆序排列,然后再在鏡子前面編碼的最高位設置為0,鏡子后面的最高位為1,即可得到2位格雷碼是00、01、11、10,以此類推。
異或運算也是一個典型的邏輯運算,其特點是輸入不一樣時,輸出為1,否則為零,即AA=0,AA=1。為了更好地理解異或運算,可以讓學生記住一些結論性的知識,比如說遇到0保持,遇到1反轉,A0=A,A1=A。在《通信原理》課程中的2DPSK中,相對碼到絕對碼之間的變換就是簡單的異或運算。了解異或運算的特點后,就很容易根據發送碼元和參考波形畫出后續的碼元波形。
還有一個經常出現的怪異現象,在填卡諾圖時,經常出現0和1的個數相等且相互交替的情況。遇到這樣的化簡,多數學生都難以理解,找不到相鄰的最小項,很難給出一個簡潔的表達式。往往出現這類情況的不是同或就是異或,課堂上教師可以帶著學生去做這一類的推導,找出其中的規律。
異或運算的另一個運用主要是奇偶校驗,奇校驗就是輸入的編碼中有奇數個1時,輸出為1,否則為零。偶校驗剛好相反。這在《通信原理》課程中的差錯控制編碼和《計算機組成原理》課程中的存儲器校驗中應用比較廣泛。根據奇偶校驗關系,很容易找出監督位和信息位之間的線性關系,通常也叫線性分組碼,包括奇偶校驗碼、漢明碼和循環冗余校驗碼等。牢固掌握數字電路中的一些基本概念,有助于后續課程的學習。
2.4 以項目式教學為主導,延伸課堂教學內容
《數字電路》是許多后續課程的基礎課。教學內容要做好傳承性、延續性和奠基性的工作,對課程內容進行適當延伸。實驗平臺選用紅色颶風的FPGA開發板,器件選擇Altera公司的EP1C6Q240C8,硬件開發環境選用Quartus ii軟件、編程語言選擇Verilog HDL語言。階梯性地選擇一些小實驗,從點亮一個LED小燈開始,逐步實現跑馬燈、任意進制的計數器設計、按鍵動態掃描、數碼管掃描等試驗,通過這些實驗更好地掌握Quartus ii軟件和Verilog HDL語言。
此外,還可以借助Qsys、SOPC Builder插件和Nios II軟件來實現相關的綜合設計項目。Qsys系統包括Nios II 的處理器、SPI、UART等外設,Qsys系統的IP內核也是多樣的,包括PIO IP核、SDRAM IP核、EPCS IP核、DMA IP核、IP核、UART IP核等。在Nios II的軟核處理過程中,需要處理好數據總線、地址總線和控制總線,以及揣摩外設的尋址方式和讀寫時序[7]。在Nios II軟件中用學生比較熟悉的C語言編程實現相應的邏輯功能。這種跨平臺和系統化的模式有助于提升學生參與項目的積極性。并且,這些內容對單片機、計算機組成原理、FPGA嵌入式系統開發等后續課程的延續性非常有用。
3 結語
數字電子技術的內容是紛繁復雜的,它不是一門孤立的課程,而是后續嵌入式課程的根基。該課程內容的講授需要兼顧后續課程的連貫性,包括基礎知識的銜接、實驗內容的過渡、設計項目的可延伸性,以及對創新能力培養的鋪墊等,盡可能為后續嵌入式課程打下堅實基礎。
參考文獻:
[1]孫虹.數字電子技術基礎課程教學探討[J].成才之路,2012(3):72.
[2]潘松,陳龍.數字電子技術基礎[M].第2版.北京:科學出版社,2015.
[3]微媒體.歐盟無條件批準英特爾167億美元收購Altera交易[EB/OL].http://www.vmeti.com/case/125172.html.
[4]21IC中國電子網.Xilinx收購Auviz Systems進軍人工智能[EB/OL].http://www.21ic.com/news/mcu/201609/686662.htm.
[5]雷鋒網.解析:13億美元的萊迪思半導體擬收購案背后,僅僅是對FPGA技術的渴望?[EB/OL].http://www.leiphone.com/news/201611/OkcKx0oQMXgPtbR3.html.
[6]張輝杰,土登次仁.利用multisim軟件進行邏輯函數的化簡與變換[J].西藏科技,2010(10):79-80.
[7]吳厚航.勇敢的芯伴你玩轉Nios II[M].北京:清華大學出版社,2016.
(責任編輯:孫 娟)