田淑珍, 楊士強(qiáng), 董代潔
(清華大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系, 北京 100084)
?
創(chuàng)意型數(shù)字邏輯設(shè)計(jì)實(shí)驗(yàn)
田淑珍, 楊士強(qiáng), 董代潔
(清華大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系, 北京 100084)
介紹數(shù)字邏輯實(shí)驗(yàn)教學(xué)中探索理論與實(shí)踐如何更好的結(jié)合,并將新的CPLD技術(shù)溶于教學(xué)中,結(jié)合開(kāi)放、半開(kāi)放設(shè)計(jì)方式,充分發(fā)揮學(xué)生的無(wú)限想象力,在近年的數(shù)字邏輯實(shí)驗(yàn)中取得了新的創(chuàng)新成果。該文介紹了創(chuàng)意型數(shù)字邏輯實(shí)驗(yàn)的總體思路、列舉了一些案例以及教學(xué)的總體效果。
數(shù)字邏輯設(shè)計(jì); 數(shù)字邏輯實(shí)驗(yàn); 創(chuàng)意型; 創(chuàng)新性; CPLD
“數(shù)字邏輯”是大學(xué)計(jì)算機(jī)及電類(lèi)專(zhuān)業(yè)的專(zhuān)業(yè)基礎(chǔ)課程,它是其他硬件課程先修課,是硬件設(shè)計(jì)的基礎(chǔ),理論與實(shí)踐的容量都較大。數(shù)字邏輯實(shí)驗(yàn)早期使用分立元件實(shí)現(xiàn)簡(jiǎn)單的邏輯電路,如用74系列的器件實(shí)現(xiàn)各種組合邏輯和時(shí)序邏輯電路,器件之間使用面包板連線(xiàn)連接,后來(lái)采用了簡(jiǎn)單的可編程邏輯器件PAL和GAL來(lái)實(shí)現(xiàn)邏輯電路的部分功能,但還是采用面包板連接的方式[1]。隨著半導(dǎo)體及可編程技術(shù)的發(fā)展,出現(xiàn)了CPLD、FPGA等規(guī)模較大的可編程器件,在這種情況下,數(shù)字邏輯設(shè)計(jì)引用了EDA技術(shù),整體的邏輯電路可以集成在一個(gè)器件內(nèi)實(shí)現(xiàn),使數(shù)字邏輯電路設(shè)計(jì)上了一個(gè)新的臺(tái)階。但是設(shè)計(jì)大體是局限在同一種實(shí)驗(yàn)平臺(tái)上,對(duì)于一些極富創(chuàng)意的設(shè)計(jì)還不能完全滿(mǎn)足。在這種情況下我們引入了全開(kāi)放式數(shù)字邏輯實(shí)驗(yàn)或半開(kāi)放式實(shí)驗(yàn),在此我們統(tǒng)稱(chēng)為創(chuàng)意型實(shí)驗(yàn)[2-3]。
創(chuàng)意型數(shù)字邏輯實(shí)驗(yàn)概念的引入是為了滿(mǎn)足學(xué)生的創(chuàng)新愿望,鼓勵(lì)學(xué)生將奇思妙想付諸實(shí)踐,同時(shí)在有限的課程時(shí)間段內(nèi)達(dá)到預(yù)期的教學(xué)目標(biāo)。為此,我們進(jìn)行了幾年的摸索和實(shí)踐。一開(kāi)始是吸納課程中的一小部分學(xué)生做一些全開(kāi)放式的實(shí)驗(yàn),完全脫離于實(shí)驗(yàn)室提供的實(shí)驗(yàn)平臺(tái),從設(shè)計(jì)電路到PCB的制作都由學(xué)生獨(dú)立完成,達(dá)到了非常好的效果。但這種做法不能夠在所有學(xué)生中實(shí)施,只適合一部分動(dòng)手能力較強(qiáng)的學(xué)生。為了讓所有的學(xué)生都有機(jī)會(huì)進(jìn)行一些創(chuàng)意型的工作,除保留一小部分學(xué)生選擇全開(kāi)放設(shè)計(jì)方式外,大部分學(xué)生可以選擇半開(kāi)放設(shè)計(jì)方式,它是用實(shí)驗(yàn)室提供的實(shí)驗(yàn)平臺(tái)和學(xué)生自己設(shè)計(jì)的部分內(nèi)容相結(jié)合來(lái)完成設(shè)計(jì)的[4]。實(shí)驗(yàn)平臺(tái)包括可編程器件CPLD、基本的供電、時(shí)鐘以及簡(jiǎn)單的接口,同時(shí)可編程器件還提供開(kāi)放的IO端口,這些IO端口可以通過(guò)延長(zhǎng)線(xiàn)、接插件等擴(kuò)展為不同的接口功能。學(xué)生主要的邏輯設(shè)計(jì)在CPLD內(nèi)完成,被控接口由學(xué)生自己設(shè)計(jì)。這種做法既節(jié)省了一定的設(shè)計(jì)工作量,又讓學(xué)生有發(fā)揮想象力的余地,達(dá)到好的教學(xué)效果[5-7]。
實(shí)驗(yàn)平臺(tái)采用Altera公司的型號(hào)為EPM240T100C5的CPLD作為主芯片 ,還包括供電電源、系統(tǒng)時(shí)鐘、通用邏輯器件區(qū)、DIP開(kāi)關(guān)、PUSH按鈕、彩燈陣列和數(shù)碼管等,同時(shí)預(yù)留了16位的IO端口作為擴(kuò)展端口。彩燈陣列的管腳已直接連接到EPM240上,數(shù)碼管、發(fā)光二極管、DIP開(kāi)關(guān)、PUSH按鈕直接與CPLD的IO相連,通用邏輯器件陣列是由10個(gè)接插件組成,支持實(shí)驗(yàn)中的通用邏輯器件(主要是74系列的器件)的安裝,每個(gè)管座的管腳都被引出到一個(gè)臺(tái)階插座上,可以通過(guò)連接線(xiàn)將管腳連接起來(lái)形成所需電路,學(xué)生自設(shè)計(jì)部分通過(guò)擴(kuò)展的IO端口與CPLD連接,通過(guò)CPLD內(nèi)部設(shè)計(jì)對(duì)外部的自設(shè)計(jì)接口進(jìn)行控制。圖1為實(shí)驗(yàn)平臺(tái)的結(jié)構(gòu)圖[8]。
圖1 實(shí)驗(yàn)平臺(tái)結(jié)構(gòu)圖
3.1 數(shù)字調(diào)音器的設(shè)計(jì)(半開(kāi)放式設(shè)計(jì)舉例)
3.1.1 數(shù)字調(diào)音器的功能
調(diào)音器是一種幫助樂(lè)器校準(zhǔn)音高的工具,它的主體功能是聽(tīng)到一個(gè)音后顯示出該音的音高以及該音與它最接近的標(biāo)準(zhǔn)音高的差距。其設(shè)計(jì)主要功能是:
(1) 接收到一個(gè)音,燈陣將顯示出一個(gè)字母和一個(gè)顯示條.字母為C、D、E、F、G、A、B,對(duì)應(yīng)音樂(lè)標(biāo)準(zhǔn)音中的do、re、mi等音。顯示條長(zhǎng)短表示實(shí)際音與顯示的標(biāo)準(zhǔn)音的差值。
(2) 當(dāng)燈陣上顯示某個(gè)音高時(shí)(如C),按開(kāi)關(guān)1后蜂鳴器開(kāi)始發(fā)聲,聲音的頻率為顯示出的標(biāo)準(zhǔn)音高(如C對(duì)應(yīng)440 Hz),按遙控器上的鍵或開(kāi)關(guān)2,可以提高蜂鳴器發(fā)出聲音的音高,共分7級(jí),分別對(duì)應(yīng)CDEFGAB 7個(gè)音高。
(3) 按開(kāi)關(guān)3改變調(diào)節(jié)狀態(tài),調(diào)節(jié)狀態(tài)改變后再按遙控器上的鍵或開(kāi)關(guān)2則降低蜂鳴器發(fā)出的聲音音高,共分7級(jí),分別對(duì)應(yīng)CDEFGAB 7個(gè)音高[9]。
3.1.2 功能模塊
如圖2所示,數(shù)字調(diào)音器的功能,在結(jié)構(gòu)上分為主體部分(在實(shí)驗(yàn)平臺(tái)上完成)和擴(kuò)展部分:
圖2 數(shù)字調(diào)音器的功能模塊
(1) 擴(kuò)展部分為聲音輸入傳感器和蜂鳴器,以及紅外遙控接收,這部分的模塊負(fù)責(zé)聲音的讀入和輸出,接收遙控指示,在硬件上采用購(gòu)置的蜂鳴器和聲音讀入器,通過(guò)接插件與主體實(shí)驗(yàn)板連接。
(2) 主體功能在實(shí)驗(yàn)平臺(tái)上的CPLD片內(nèi)設(shè)計(jì),并由實(shí)驗(yàn)平臺(tái)上的輸入輸出控制開(kāi)關(guān)以及燈陣顯示配合完成。CPLD內(nèi)部設(shè)計(jì)有以下幾個(gè)功能組成:
① 聲音采集及音高判斷模塊。設(shè)定0.1 s的采樣周期,通過(guò)檢驗(yàn)采樣周期內(nèi)聲音傳感器模擬量輸出信號(hào)的正跳變次數(shù)計(jì)算聲音的頻率。通過(guò)頻率大小,產(chǎn)生不同的輸出信號(hào)。
② 顯示模塊。根據(jù)聲音傳感模塊的輸出信號(hào),設(shè)置12×8的顯示矩陣。通過(guò)掃描方式,每次向8×8LED燈陣輸入顯示矩陣的一行作為顯示碼,八個(gè)時(shí)間脈沖為一個(gè)周期(5 MHz)進(jìn)行掃描,顯示出相應(yīng)圖案。
③ 發(fā)聲模塊。將聲音模塊輸出信號(hào)作為初始頻率信號(hào),由遙控模塊和開(kāi)關(guān)控制頻率信號(hào)的上升或下降。根據(jù)頻率信號(hào)和音高-頻率表,調(diào)整輸出序列周期,以改變蜂鳴器聲音頻率。
④ 遙控模塊。接受紅外接收器信號(hào),當(dāng)信號(hào)出現(xiàn)一次正跳變后輸出一個(gè)信號(hào)。每次輸出信號(hào)后有0.25 s的延遲,延遲后接受第二次紅外接收器信號(hào)。
⑤ 主體控制。集成4個(gè)模塊,將相應(yīng)信號(hào)進(jìn)行連接。由開(kāi)關(guān)控制發(fā)聲模塊使能端。
3.2 運(yùn)動(dòng)三維顯示設(shè)備的設(shè)計(jì)(全開(kāi)放式設(shè)計(jì)舉例)
3.2.1 運(yùn)動(dòng)三維顯示設(shè)備的功能
運(yùn)動(dòng)三維顯示設(shè)備是通過(guò)電機(jī)驅(qū)動(dòng)PCB 板高速旋轉(zhuǎn),在特定角度點(diǎn)亮板上的特定彩燈,實(shí)現(xiàn)三維顯示的效果。
3.2.2 功能模塊
運(yùn)動(dòng)三維顯示設(shè)備的設(shè)計(jì)采用完全自制的方式設(shè)計(jì),總體設(shè)計(jì)框架包括帶有CPLD和彩燈陣列的PCB板、與PCB板接口的電機(jī),如圖3所示。PCB板與電機(jī)連接,電機(jī)轉(zhuǎn)動(dòng)時(shí)帶動(dòng)PCB板旋轉(zhuǎn),在旋轉(zhuǎn)的PCB 板上設(shè)置了一個(gè)紅外接收器,接收下方固定位置紅外發(fā)射器的信號(hào),通過(guò)兩次信號(hào)的時(shí)間差計(jì)算速度,從而計(jì)算當(dāng)前旋轉(zhuǎn)的角度。針對(duì)每一個(gè)特定角度,從CPLD內(nèi)的UFM 中讀取預(yù)先由軟件計(jì)算出的各幀圖形數(shù)據(jù),顯示在燈陣上。彩燈陣列上不同的燈的顯示狀況導(dǎo)致不同的三維顯示效果。控制代碼在CPLD內(nèi)實(shí)現(xiàn),采用Verilog語(yǔ)言設(shè)計(jì)。
圖3 運(yùn)動(dòng)三維顯示設(shè)備設(shè)計(jì)框架
創(chuàng)意型實(shí)驗(yàn)概括起來(lái),有如下幾個(gè)方面的效果:
(1) 加深了對(duì)課本知識(shí)的理解和掌握。
(2) 通過(guò)查閱資料,大大提高了學(xué)生自主學(xué)習(xí)能力。
(3) 很好地實(shí)現(xiàn)了學(xué)生興趣與課程內(nèi)容的結(jié)合,將知識(shí)與實(shí)踐相結(jié)合的能力,使學(xué)生擺脫了對(duì)硬件的恐懼。
(4) 在激發(fā)學(xué)生創(chuàng)新潛質(zhì)方面,起到了非常好的作用,為以后進(jìn)一步在學(xué)術(shù)和工程領(lǐng)域的研究打下了基礎(chǔ)。
(5) 這是進(jìn)入大學(xué)以來(lái)由學(xué)生自己創(chuàng)意、自己設(shè)計(jì)實(shí)現(xiàn)的第一個(gè)作品,當(dāng)成果出來(lái)后,學(xué)生充滿(mǎn)了成就感。在這個(gè)過(guò)程中也使學(xué)生了解到,真正的科技魅力在于它的應(yīng)用,而所有應(yīng)用的實(shí)現(xiàn)并不總是來(lái)自于思考,還來(lái)自于真正的動(dòng)手和融入實(shí)際[10-12]。
圖4、圖5為學(xué)生制作的運(yùn)動(dòng)三維顯示設(shè)備顯示成果和成品。
圖4 運(yùn)動(dòng)三維顯示設(shè)備顯示效果
圖5 運(yùn)動(dòng)三維顯示設(shè)備成品
數(shù)字邏輯實(shí)驗(yàn)以實(shí)踐教學(xué)的理念和任務(wù)為指導(dǎo),為達(dá)到最好的教學(xué)效果,多年來(lái)一直在探索創(chuàng)新之路。創(chuàng)意型實(shí)驗(yàn)是將理論知識(shí)應(yīng)用到實(shí)踐中的最好渠道,同時(shí)也是檢驗(yàn)學(xué)生學(xué)習(xí)能力、應(yīng)用能力的最好方法,給學(xué)生提供了創(chuàng)意的空間、展示的平臺(tái),增進(jìn)了師生之間的溝通、學(xué)生之間的交流,鍛煉了學(xué)生分析和解決問(wèn)題的能力、宏觀(guān)把握微觀(guān)分析的能力,以及把想法付諸實(shí)現(xiàn)的能力。
References)
[1] 唐志強(qiáng). 計(jì)算機(jī)專(zhuān)業(yè)數(shù)字邏輯實(shí)驗(yàn)的改革與創(chuàng)新[J].實(shí)驗(yàn)室研究與探索, 2013, 32(10):182-184.
[2] 徐瓊燕. 數(shù)字電路及EDA實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)及其應(yīng)用[D].南昌:南昌大學(xué),2008.
[3] 馬曉虹,尹向雷. 數(shù)字電子技術(shù)實(shí)驗(yàn)教學(xué)的改革與探索[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(10):172-174.
[4] 趙成,李莉,冼立勤,等. 關(guān)于數(shù)字電路實(shí)驗(yàn)教學(xué)改革的思考[C]//北京高教學(xué)會(huì)實(shí)驗(yàn)室工作研究會(huì)2010年學(xué)術(shù)研討會(huì)論文集(上冊(cè)).2010.
[5] 劉勝. 基于Proteus的數(shù)字電路虛擬實(shí)驗(yàn)室建設(shè)[J].電氣電子教學(xué)學(xué)報(bào),2012(6):85-87.
[6] 熊娟,張曉伏. 談數(shù)字電路實(shí)驗(yàn)教學(xué)的改革[J].天中學(xué)刊, 2008(4):113-114.
[7] 張?jiān)伱? 基于EDA技術(shù)的數(shù)字邏輯電路層次化實(shí)驗(yàn)教學(xué)的研究[J].實(shí)驗(yàn)技術(shù)與管理,2005,22(7):74-76.
[8] 全成斌.數(shù)字邏輯彩燈實(shí)驗(yàn)[EB/OL].百度文庫(kù), http://wenku.baidu.com/view/dea3cf3783c4bb4cf7ecd114.html.
[9] 張漫. 基于FPGA的吉他調(diào)音器的設(shè)計(jì)與實(shí)現(xiàn)[J].邢臺(tái)職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2013(6):87-91.
[10] 盧明智,劉晉峰.數(shù)字電路創(chuàng)意實(shí)驗(yàn)[M].北京:科學(xué)出版社,2012.
[11] 寧彬. 基于“211”模式的計(jì)算機(jī)專(zhuān)業(yè)應(yīng)用型實(shí)踐教學(xué)體系構(gòu)建[J].計(jì)算機(jī)教育,2013(6):101-103.
[12] 薛延俠. “數(shù)字電路”實(shí)驗(yàn)教學(xué)的創(chuàng)新與研究[J].實(shí)驗(yàn)室研究與探索,2007,26(2):84-86.
Creative digital logic design experiment
Tian Shuzhen, Yang Shiqiang, Dong Daijie
(Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China)
This article in the long-term digital logic experiment teaching theory and practice introduces how to better combine and dissolve the teaching of new technologies, to give full play to the infinite imagination of young students in digital logic recent experiments, and to obtain the fruit of countless innovations. This article describes the general idea of creative digital logic experiments, and cites a number of cases and the overall effect of teaching.
digital logic design; digital logic experiment; creation; innovation; CPLD
2014- 06- 18
田淑珍(1966—),女,北京,學(xué)士,工程師,主要研究方向?yàn)橛?jì)算機(jī)和電子技術(shù).
E-mail:tiansz@tsinghua.edu.cn
G642.423
B
1002-4956(2015)2- 0036- 03