鄧小鶯 陳全威 鄭能恒


摘要:“數字電路設計”是本科電子信息類對邏輯分析和動手實踐能力要求較高的工科實訓課程。現有的教學方式無論從吸引力或者學生接受程度而言,均不能獲得令人滿意的結果。大部分學生普遍存在“重代碼輕電路”的思想觀念,缺少進一步學習的熱情和動力,造成新一代合格實踐性人才的培養不足和嚴重流失。因此,一種“先電路后代碼”、“口袋實驗室”和“課后項目”有機結合的教學方法被提出。學生不僅能理解數字電路和數字系統的設計技巧,而且提高自主實驗、解決問題的能力,這有效地促進了“數字系統設計”的教學改革。
關鍵詞: 數字電路設計; 數字邏輯電路; 教學改革;“口袋實驗室”;FPGA
中圖分類號:G642? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)21-0130-02
開放科學(資源服務)標識碼(OSID):
1? 引 言
“數字系統設計”作為電子信息類的一門工科實訓課程,向前鞏固“數字電子計數基礎”并加以實踐,向后為選讀“數字集成電路設計”和“現場集成電路技術”儲備豐富的邏輯電路基礎,其研讀質量直接影響到數字集成電路或電路架構等高層次領域人才的培養。數字集成電路領域一直是我國科技領域的短板,人才缺口巨大,學校、研究所等機構培養出來的實用型人才供不應求[1-2]。“數字系統設計”充當“跳板”角色,其教學風格需要具備吸引力,匯聚更多學子前來研讀。然而現有的課程內容和模式不能達成上述目的,很難培養出能夠自主解決問題的實踐型人才,使得選讀學生數量越來越少,或者僅僅使得已選讀學生“為學分為績點上課”,如此一來造成了嚴重的人才流失[3]。如何改革課程內容和教學方法以培養合格的數字系統相關的實踐型人才,不僅僅與高校的課程教學質量息息相關,而且對相關產業發展前景具有很強的現實意義。
2? 現有教學模式存在的問題
“數字系統設計”課程所涉及的領域之多,教學內容相當豐富,實踐方式數不勝數,但是這些繁多而未系統化的信息會讓教師失去教學重心。以下問題是現有教學模式的通病:(1)Verilog HDL或VHDL等硬件描述語言是這門課最常用的兩門語言,許多教學模式僅僅對硬件描述語言的語法進行講解,卻沒有教授其本質電路,讓學生誤以為“數字系統設計”其實就是學習一門與C語言類似的Verilog HDL,丟失了最基本的電路設計知識,與之前研讀的“數字電子計數基礎”割裂,出現斷層[4]。學生即使使用Verilog HDL實現了預定功能,對其描述的邏輯電路也非常模糊。(2)研讀“數字系統設計”的時間恰好就在學生課程最繁重的學期,加上理論學習和實踐過程分離,即理論分析和實驗指導分開授課,這導致學生不僅疲于兩者的銜接,并且不能向指導老師及時反饋,以便做出適當的調整[5]。認真研讀的興趣和熱情會因為“僅能在課室學理論”和“僅能在實驗室做實驗”消退。(3)學生所接受的理論知識或者所實踐的課程實驗尚未能“落地”,未能及時應用在具有實際意義的項目中。這會導致一個嚴重的教學弊病,即學生僅僅在課堂上或者某個學期修讀“數字系統設計”,深入學習研究和探索的熱情未能持久[6]。通過課程考核后,不少學生直接進入“空白期”或者“遺忘期”,甚至從那以后絲毫不接觸數字系統的知識。除此之外,現有的教學模式缺少課后時間的方向引導和適當監督,導致學生未能參與相對應的實際項目或比賽等必要環節。
對此,筆者所在的教學團隊采用了理論、實驗、項目三者環環相扣的教學模式。在理論課堂中,對學生必須重點強調“數字邏輯電路設計”的重要性,堅持“以電路設計為主,以代碼描述為輔”,讓學生認識到本課程的核心知識;在實驗環節,采用“口袋實驗室”教學法,即讓學生攜帶小型FPGA開發板,個人電腦中安裝開發環境。如此,學生不僅可以在實驗室、宿舍等地方學習ISE、VIVADO等開發工具,而且能夠隨時隨地驗證所設計的電路設想。在課后項目中,組織、鼓勵學生早進實驗室,早接觸應用型的項目,培養更加自主研究、解決問題的能力。
3 教學方法
3.1 “先電路后代碼”的理論教學模式
由于大部分學生學習“數字系統設計”之前,已經選學了C或者C++等代碼語言,但是C語言與Verilog HDL語言存在本質上的差異。前者的設計與CPU的指令集架構和串行性相關,后者卻是邏輯電路的一種簡便的描述方法。在一些傳統的教學風格沿襲下,選讀本課程的學生普遍存在一種先入為主的觀念,即“這門課的內容和C語言課程類似,重點在于語法學習”。這種觀念是片面的,帶有很強的誤導性,學生稍不留神就會誤入歧途。對此,首先需要對學生強調“數字系統設計”是“數字電子計數基礎”的集成和進階,如何設計一個合理的數字邏輯電路是極其重要,Verilog HDL或VHDL等硬件描述語言僅作為一個輔助的工具,幫助更簡單地描述所設計的電路。
讓學生把重心轉移到電路設計以及技巧積累需要循序漸進、慢步指引。首先應當鞏固學生的數字電路基礎,如熟練使用真值表、邏輯表達式和卡諾圖,掌握基本邏輯模塊包括加法器、編碼器、選擇器等組合邏輯電路和狀態機等時序邏輯電路[7]。沒有如此的積淀,學生不可能設計出合理的數字系統,因為數字系統其實就是將基本模塊連接集成,實現特定功能。離開了電路基礎,直接教授Verilog等語言,會使得學生摸索不到重點知識。一種比較有效且值得推廣的教學方式是由原理圖向硬件描述語言過渡。大部分學生在“數字電子計數基礎”實驗課上,使用過面包板、分立芯片實現過計數器、譯碼器等簡單模塊。為了讓學生自然地過渡到本課程實驗,筆者讓學生熟悉ISE開發工具的原理圖輸入方式,即將先前的數字電路實驗搬移到PC端,熟悉ISE 軟件原理圖輸入、仿真流程。在這個過程中,筆者發現可以先避開Verilog HDL等語法的教學,學生可以更好地理解和接受。接下來,可以布置一些相對復雜的模塊,但需要使用原理圖實現,如多位寬計數器,讓學生體會到原理圖方式輸入電路的煩瑣性。此時再引入Verilog HDL簡化電路的輸入方式,可謂水到渠成,也讓學生認識到,先設計電路,再描述輸入。反過來,學生也知道自己所寫的代碼在硬件底層代表著什么電路。
3.2 數字系統設計方法
大部分學生能夠相對較好理解單一的數字電路模塊,但是對于比較復雜的數字系統卻無從下手,對于系統框架設計和子模塊的應用與互聯感到無力。如何利用簡單模塊搭建一個能實現特定功能的系統,不僅需要扎實的數字電路基礎,還要有設計系統的技巧和經驗。
筆者團隊著重兩點,一是從功能簡單的、學生普遍掌握的基礎模塊開始,添加若干個邏輯器件,能夠實現功能豐富的、較為復雜的應用模塊。例如,簡單的計數器由加法器和D觸發器構成,在D觸發器的D端加入選擇器為主的組合邏輯,就可以實現擁有向上計數、向下計數、暫停、置位、清零等等功能的秒表,其邏輯電路和Verilog HDL描述如圖1所示。另一個是模塊信號互連的技巧,不同的子模塊當中經常會出現互連信號的時序不匹配,需要對這些信號做調整。常用的轉換電路有上升、下降邊沿檢測,電平與脈沖之間的轉換等等,如圖2所示。
3.3 “口袋實驗室”與 “課后項目”鞏固法
在“數字系統設計”這門工訓課程中,理論分析是必備基礎,實驗實踐更是重中之重。教師在授課過程只是進行邏輯設計,學生容易感到枯燥和抽象。課程的最終目的是讓學生自主設計并實現驗證數字系統,所以充足的實驗時間對于學生是必不可少的。回到本課程的教學立足點,注重數字邏輯的設計與實現,而后序的時序分析尚未提及,所以大部分實驗可以通過小型的FPGA開發板以及其配套的開發環境完成。筆者讓學生借用實驗室中的Xilinx Basys3開發板,并在個人電腦中安裝VIVADO等開發環境,讓學生不必局限于實驗室,可以隨時隨地設計、驗證自己設計的電路 [8]。因為Basys3開發板足夠小型便攜,甚至可以放在口袋里,所以也稱為“口袋實驗室”。
為了進一步培養學生對“數字電路設計”的課程興趣以及加強自主解決問題的能力,筆者積極組織學生參與課后線上和線下技術交流,做到“有困難必深究”,多接觸和積累其他數字系統的設計技巧。除此之外,發布一些有挑戰性的課后實驗,如秒表、VGA電子相冊等。不僅讓學生將理論知識驗證在實踐當中,而且與自身生活息息相關。
4 結束語
筆者團隊提出的“數字系統設計”教學方法,引導學生注重課程的真正核心,真正掌握數字電路與數字系統設計的方法。理論分析離不開實驗實踐,“口袋實驗室”和“課后項目”能夠幫助學生自主動手實踐、解決問題的能力。該教學方法有效地啟蒙學生對數字系統的理解,為將來遇到項目、科研中的更復雜實際問題,奠基堅實基礎,對培養新一代合格的實踐型人才有重大意義。
參考文獻:
[1] 王小強,鄧傳錦,范劍峰.集成電路發展歷程、現狀和建議[J].電子產品可靠性與環境試驗,2021,39(S1):106-111.
[2] 方欣.集成電路產業發展:現狀、制約因素與促進政策[J].中國集體經濟,2021(11):161-162.
[3] 李宇波,葉德信,卓成,等.“數字系統設計”課程的實踐教學改革初探[J].工業和信息化教育,2020(3):39-42,48.
[4] 李冠霖,張寶玲.Verilog HDL數字鐘電路的設計研究[J].無線互聯科技,2021,18(4):67-68.
[5] 張磊.口袋實驗室的設計創建與應用[J].科學技術創新,2019(30):147-148.
[6] 牛小燕,楊柳,鄭雪峰.基于競賽驅動的《數字系統課程設計》課程教學改革研究[J].科技風,2020(36):64-65.
[7] 艾偉清,陳景波,王偉,等.基于FPGA的“數字電路”教學改革探索[J].電氣電子教學學報,2021,43(2):49-51.
[8] 嚴海洲.基于Xilinx口袋實驗室的組合邏輯電路設計實驗[J].電腦知識與技術,2016,12(28):268-270,275.
【通聯編輯:王力】