馮國(guó)富,馬玉奇,易叢琴,董立夫
(上海海洋大學(xué) 信息學(xué)院,上海 201306)
面向數(shù)字邏輯與計(jì)算機(jī)組成原理銜接的實(shí)踐環(huán)節(jié)
馮國(guó)富,馬玉奇,易叢琴,董立夫
(上海海洋大學(xué) 信息學(xué)院,上海 201306)
針對(duì)計(jì)算機(jī)專業(yè)教學(xué)中數(shù)字邏輯與計(jì)算機(jī)組成原理課程教學(xué)內(nèi)容無(wú)顯式銜接、傳統(tǒng)實(shí)驗(yàn)手段滯后等問(wèn)題,提出一種面向數(shù)字邏輯與計(jì)算機(jī)組成原理有效銜接的實(shí)踐環(huán)節(jié)。實(shí)踐環(huán)節(jié)以EDA原理圖設(shè)計(jì)為實(shí)驗(yàn)方法,充分結(jié)合數(shù)字邏輯課程的核心知識(shí),實(shí)現(xiàn)具備計(jì)算機(jī)處理器特征的原型設(shè)計(jì),并將實(shí)驗(yàn)環(huán)節(jié)顯式地劃分為手動(dòng)時(shí)序控制與自動(dòng)時(shí)序控制兩個(gè)實(shí)驗(yàn)階段,使學(xué)生在數(shù)字邏輯課程的基礎(chǔ)上理解與感受計(jì)算機(jī)的運(yùn)行機(jī)制。教學(xué)實(shí)踐表明,該實(shí)踐環(huán)節(jié)不僅使學(xué)生有效地掌握數(shù)字邏輯電路基礎(chǔ)知識(shí),并為進(jìn)一步學(xué)習(xí)計(jì)算機(jī)組成原理打下良好基礎(chǔ)。
數(shù)字邏輯;處理器;計(jì)算機(jī)組成原理;EDA原理圖
目前國(guó)內(nèi)高校計(jì)算機(jī)專業(yè)硬件類主干課程從低到高依次為數(shù)字邏輯、計(jì)算機(jī)組成原理和計(jì)算機(jī)體系結(jié)構(gòu)[1],而數(shù)字邏輯作為此系列課程的先導(dǎo)課程[2],在整個(gè)計(jì)算機(jī)專業(yè)知識(shí)體系中具有重要作用,與計(jì)算機(jī)組成原理課程有很強(qiáng)的銜接性。計(jì)算機(jī)組成原理課程著眼于計(jì)算機(jī)的邏輯結(jié)構(gòu),數(shù)字邏輯課程側(cè)重于電子實(shí)現(xiàn),此兩門課程間有必然的聯(lián)系,尤其是在數(shù)據(jù)通路和時(shí)序控制的概念上[3]。
對(duì)于計(jì)算機(jī)專業(yè)學(xué)生,數(shù)字邏輯實(shí)驗(yàn)內(nèi)容的設(shè)計(jì)不僅要以數(shù)字邏輯理論教學(xué)內(nèi)容為基礎(chǔ)[4],更應(yīng)該充分考慮與計(jì)算機(jī)硬件結(jié)構(gòu)的銜接[56]。目前,雖然這兩門課程在計(jì)算機(jī)專業(yè)知識(shí)體系中相輔相成,但在實(shí)際的理論教學(xué)上銜接度很低,甚至許多計(jì)算機(jī)專業(yè)學(xué)生認(rèn)識(shí)不到兩門課程間的關(guān)系。傳統(tǒng)數(shù)字邏輯實(shí)踐環(huán)節(jié)僅作為理論課的簡(jiǎn)單擴(kuò)展,實(shí)踐內(nèi)容多為計(jì)數(shù)器、加法器等孤立知識(shí)點(diǎn),缺乏對(duì)計(jì)算機(jī)組成原理內(nèi)容與思想的體現(xiàn),且在教學(xué)中得不到足夠重視,在成績(jī)中只占10%~20%的比例[7],加之傳統(tǒng)手工實(shí)驗(yàn)方式使用效率較低[8],使這兩門課程在實(shí)驗(yàn)教學(xué)上很難取得實(shí)質(zhì)性的銜接。
作為數(shù)字邏輯課程向計(jì)算機(jī)組成原理過(guò)渡的實(shí)踐環(huán)節(jié),實(shí)踐內(nèi)容應(yīng)以計(jì)算機(jī)硬件結(jié)構(gòu)為框架,即包括輸入/輸出設(shè)備、運(yùn)算器、存儲(chǔ)器、控制器及總線結(jié)構(gòu)[9]。筆者提出的實(shí)踐環(huán)節(jié)分10個(gè)實(shí)驗(yàn),覆蓋數(shù)字邏輯課程中的核心教學(xué)內(nèi)容,包括編碼器、譯碼器、加法器、寄存器、分頻器、計(jì)數(shù)器等,實(shí)現(xiàn)具有計(jì)算機(jī)硬件結(jié)構(gòu)五大部件特征的原型設(shè)計(jì),從而實(shí)現(xiàn)具有計(jì)算機(jī)處理器特征的原型系統(tǒng)設(shè)計(jì)。該系統(tǒng)可以手動(dòng)控制,也可由控制器自動(dòng)控制。實(shí)踐環(huán)節(jié)總體圖見(jiàn)圖1。
實(shí)踐內(nèi)容完全基于數(shù)字邏輯課程的核心知識(shí),通過(guò)顯式引入數(shù)據(jù)總線、自定義組合控制電路及控制總線,融合各個(gè)核心知識(shí),最終構(gòu)建一個(gè)具有處理器特征的原型系統(tǒng)。同時(shí),借以數(shù)據(jù)總線與自定義組合控制電路分別強(qiáng)調(diào)數(shù)據(jù)通路與時(shí)序控制這兩個(gè)重要概念。該原型系統(tǒng)采用模塊化[10]設(shè)計(jì)方法,其中,輸入模塊包括二路輸入裝置(八位撥碼開(kāi)關(guān)和八位按鍵),輸出顯示模塊包括數(shù)碼管顯示和LED燈;加法器對(duì)寄存器1與寄存器2的數(shù)據(jù)進(jìn)行加法運(yùn)算,并將相加的結(jié)果存入寄存器3;控制器由分頻器、計(jì)數(shù)器及譯碼器組成,并通過(guò)組合控制電路為系統(tǒng)提供時(shí)序控制。
圖1 實(shí)踐環(huán)節(jié)總體圖
在模塊化設(shè)計(jì)的同時(shí),實(shí)踐環(huán)節(jié)著重引入手動(dòng)時(shí)序控制和自動(dòng)時(shí)序控制兩個(gè)核心環(huán)節(jié),幫助學(xué)生有效理解計(jì)算機(jī)的工作原理。
2.1 手動(dòng)時(shí)序控制環(huán)節(jié)
所謂手動(dòng)時(shí)序控制,即學(xué)生借助鍵盤或其他設(shè)備等,手動(dòng)操控實(shí)現(xiàn)系統(tǒng)運(yùn)行,使學(xué)生能夠清晰地看到系統(tǒng)的運(yùn)行過(guò)程。
由實(shí)踐環(huán)節(jié)總體圖可知,要實(shí)現(xiàn)手動(dòng)時(shí)序控制,需引入三態(tài)緩沖門控制各模塊與四位數(shù)據(jù)總線的通斷狀態(tài)。在此采用矩陣鍵盤按鍵1、按鍵2、按鍵3及按鍵Enter,分別產(chǎn)生控制信號(hào)OE0~OE6,控制三態(tài)緩沖門的通斷及寄存器。其中OE0為第一路輸入的三態(tài)緩沖門控制信號(hào),OE1為第二路輸入的三態(tài)緩沖門控制信號(hào),OE2為寄存器1的三態(tài)緩沖門控制信號(hào),OE3為寄存器2的三態(tài)緩沖門控制信號(hào),OE4為寄存器1控制信號(hào),OE5為寄存器2控制信號(hào),OE6為控制輸出運(yùn)算器結(jié)果的三態(tài)緩沖門控制信號(hào)。為了方便手動(dòng)操作,在此環(huán)節(jié)不對(duì)運(yùn)算器的結(jié)果進(jìn)行寄存。具體操作見(jiàn)表1。
表1 手動(dòng)時(shí)序控制的具體操作
2.2 自動(dòng)時(shí)序控制環(huán)節(jié)
控制器是實(shí)現(xiàn)系統(tǒng)自動(dòng)運(yùn)行的主要機(jī)制[11],自動(dòng)時(shí)序控制環(huán)節(jié)也是本次實(shí)踐的重點(diǎn)和難點(diǎn)。自動(dòng)時(shí)序控制器具體分為4個(gè)子模塊:一是分頻器;二是3位二進(jìn)制加法計(jì)數(shù)器;三是3線—8線譯碼器;四是自定義組合控制電路。控制器功能圖如圖2所示。
圖2 控制器功能圖
首先,使用分頻器實(shí)現(xiàn)對(duì)時(shí)鐘信號(hào)的分頻(使用HDL語(yǔ)言設(shè)計(jì)),產(chǎn)生低頻信號(hào);其次,基于D觸發(fā)器設(shè)計(jì)3位二進(jìn)制加法計(jì)數(shù)器,實(shí)現(xiàn)對(duì)分頻信號(hào)的計(jì)數(shù);譯碼器對(duì)計(jì)數(shù)器的3位數(shù)據(jù)進(jìn)行譯碼輸出I0~I(xiàn)7,產(chǎn)生8個(gè)時(shí)鐘狀態(tài);最后,通過(guò)自定義組合控制電路,對(duì)這8個(gè)時(shí)鐘狀態(tài)進(jìn)行分配,產(chǎn)生控制信號(hào)OE0~OE7,其中OE7為寄存器3的控制信號(hào)。自定義組合控制電路的真值表見(jiàn)表2。
通常在傳統(tǒng)數(shù)字邏輯實(shí)驗(yàn)教學(xué)中,學(xué)生使用標(biāo)準(zhǔn)IC,利用自底向上的設(shè)計(jì)思路,在面包板上接線操作。學(xué)生通過(guò)實(shí)驗(yàn)掌握典型芯片的基本特性和主要應(yīng)用,同時(shí)一定程度上鍛煉動(dòng)手能力和邏輯分析能力。但由于各器件之間需要許多連線,一旦改變?cè)O(shè)計(jì)方案,不但需要更換器件,還需要重新進(jìn)行大量的連線操作,學(xué)生在實(shí)驗(yàn)過(guò)程中有相當(dāng)一部分精力花費(fèi)在連線、查錯(cuò)等瑣事上[12],導(dǎo)致實(shí)驗(yàn)枯燥、乏味,降低學(xué)生的學(xué)習(xí)興趣。
基于HDL語(yǔ)言(硬件描述語(yǔ)言)設(shè)計(jì)的數(shù)字邏輯實(shí)驗(yàn)教學(xué),利用自頂向下的設(shè)計(jì)思路[13],實(shí)驗(yàn)內(nèi)容以編程為主。直接利用HDL語(yǔ)言實(shí)現(xiàn)功能模塊的描述與連接,提高了實(shí)驗(yàn)成功率。然而計(jì)算機(jī)專業(yè)的學(xué)生往往重視軟件忽略硬件,把HDL語(yǔ)言看成普通的計(jì)算機(jī)高級(jí)語(yǔ)言,不能建立起對(duì)硬件電路的直觀認(rèn)識(shí),同時(shí)基于HDL語(yǔ)言的實(shí)驗(yàn)方式也不能很好地體現(xiàn)時(shí)序等概念。
此外,傳統(tǒng)實(shí)驗(yàn)教學(xué)由于接線錯(cuò)綜復(fù)雜,很難實(shí)現(xiàn)數(shù)據(jù)通路的設(shè)計(jì),而基于硬件描述語(yǔ)言的實(shí)驗(yàn)教學(xué)通過(guò)語(yǔ)言描述線路連接,也不能顯式地體現(xiàn)數(shù)據(jù)通路。
表2 自定義組合控制電路真值表
鑒于此,筆者提出以基于QuartusⅡ的邏輯電路原理圖設(shè)計(jì)為實(shí)驗(yàn)方法,采用原理圖設(shè)計(jì)代替語(yǔ)言描述,意在讓學(xué)生深刻理解計(jì)算機(jī)硬件的概念,同時(shí)鍛煉學(xué)生的動(dòng)手能力。
以輸入模塊的設(shè)計(jì)為例,先介紹采用原理圖設(shè)計(jì)方法的具體過(guò)程。本系統(tǒng)采用二路輸入,第一路輸入為8位撥碼開(kāi)關(guān);第二路輸入為8位按鍵。輸入分別經(jīng)8線—3線優(yōu)先編碼器生成3位二進(jìn)制編碼。8線—3線優(yōu)先編碼電路原理圖見(jiàn)圖3,仿真波形見(jiàn)圖4。
圖3 8線—3線優(yōu)先編碼電路原理圖
圖4 8線—3線優(yōu)先編碼電路波形仿真圖
在實(shí)現(xiàn)原理圖輸入、波形仿真后,需要進(jìn)一步實(shí)現(xiàn)模塊符號(hào)文件的生成,以便在上層設(shè)計(jì)中直接調(diào)用。此外,系統(tǒng)還包括數(shù)碼管輸出顯示模塊、實(shí)現(xiàn)3位二進(jìn)制數(shù)加法運(yùn)算的運(yùn)算器、帶三態(tài)緩沖門的4位并行寄存器等,在此不一一贅述。
此實(shí)驗(yàn)方法不僅使學(xué)生對(duì)硬件電路有直觀的認(rèn)識(shí),而且可以很好地鍛煉學(xué)生的動(dòng)手能力,提高設(shè)計(jì)效率及實(shí)驗(yàn)成功率。
(1)加深了學(xué)生對(duì)數(shù)字邏輯課程核心知識(shí)的理解與掌握。
(2)形成了學(xué)生對(duì)計(jì)算機(jī)硬件組成結(jié)構(gòu)的初步認(rèn)識(shí)。
(3)通過(guò)原理圖設(shè)計(jì)的實(shí)驗(yàn)方法,鍛煉了學(xué)生的動(dòng)手能力。
(4)實(shí)現(xiàn)了理論教學(xué)與實(shí)踐操作的結(jié)合,大大增加了學(xué)生對(duì)計(jì)算機(jī)硬件的學(xué)習(xí)興趣。
(5)由于實(shí)踐環(huán)節(jié)以自主性實(shí)驗(yàn)為主,所以學(xué)生對(duì)其中各個(gè)環(huán)節(jié)的實(shí)現(xiàn)提出各自的設(shè)計(jì)思路,很好地激發(fā)了學(xué)生的創(chuàng)新能力。
此教學(xué)實(shí)踐環(huán)節(jié)的內(nèi)容不僅涵蓋了數(shù)字邏輯課程的重要知識(shí),包括編碼器、譯碼器、運(yùn)算器、寄存器、計(jì)數(shù)器等,與計(jì)算機(jī)組成原理中核心教學(xué)內(nèi)容形成顯式銜接,同時(shí)劃分為手動(dòng)時(shí)序控制和自動(dòng)時(shí)序控制兩個(gè)實(shí)踐階段,并以原理圖設(shè)計(jì)為實(shí)驗(yàn)手段,使學(xué)生有效地建立起對(duì)計(jì)算機(jī)硬件及其運(yùn)行機(jī)制的直觀認(rèn)識(shí)。
該實(shí)踐環(huán)節(jié)運(yùn)用于上海海洋大學(xué)計(jì)算機(jī)專業(yè)實(shí)踐教學(xué),是計(jì)算機(jī)專業(yè)大一學(xué)生的必修課程,設(shè)置于數(shù)字邏輯課程之后的短學(xué)期,先于第二學(xué)年的計(jì)算機(jī)組成原理課程,并獨(dú)立設(shè)課、有獨(dú)立學(xué)分,課程實(shí)施后,取得了較好的教學(xué)效果。
[1] 唐志強(qiáng), 朱子聰. 計(jì)算機(jī)專業(yè)硬件課程體系的改革[J].計(jì)算機(jī)工程與科學(xué), 2014 (12): 159-161.
[2] 田淑珍, 楊士強(qiáng), 董代潔. 創(chuàng)意型數(shù)字邏輯設(shè)計(jì)實(shí)驗(yàn)[J].實(shí)驗(yàn)技術(shù)與管理, 2015, 32(2): 36-38.
[3] 盛建倫, 鞏玉璽, 劉淑霞. 計(jì)算機(jī)專業(yè)硬件基礎(chǔ)課程實(shí)驗(yàn)教學(xué)體系的研究[J]. 實(shí)驗(yàn)室研究與探索, 2013(10): 387-391.
[4] 季偉東, 張軍. 數(shù)字邏輯課程的探究性教學(xué)研究與實(shí)踐[J]. 計(jì)算機(jī)教育, 2010(20):76-82.
[5] 肖娟, 龔德良, 陸武魁.計(jì)算機(jī)硬件基礎(chǔ)課程實(shí)驗(yàn)改革與實(shí)踐[J]. 計(jì)算機(jī)教育, 2014(5): 43-50.
[6] 艾明晶. 基于自動(dòng)設(shè)計(jì)方法的數(shù)字邏輯課程改革研究與實(shí)踐[J]. 實(shí)驗(yàn)技術(shù)與管理, 2012(9): 151-155.
[7] 盛建倫, 劉淑霞, 王勇. 數(shù)字邏輯實(shí)驗(yàn)技術(shù)改革的研究[J]. 實(shí)驗(yàn)技術(shù)與管理, 2015(4): 216-219.
[8] 袁春風(fēng), 張澤生, 蔡曉燕. 計(jì)算機(jī)組成原理課程實(shí)踐教學(xué)探索[J]. 計(jì)算機(jī)教育, 2011(17): 110-114.
[9] 田淑珍, 全成斌, 李山山. 數(shù)字邏輯電路實(shí)驗(yàn)課的教學(xué)改革探索[J]. 實(shí)驗(yàn)技術(shù)與管理, 2010, 27(11): 169-171.
[10] 張磊, 鄭榕, 田軍峰. 計(jì)算機(jī)組成原理理論實(shí)驗(yàn)教學(xué)無(wú)縫結(jié)合的新方法[J]. 實(shí)驗(yàn)室研究與探索, 2013(5): 168-172.
[11] 田淑珍, 全成斌, 李山山. 基于實(shí)驗(yàn)平臺(tái)的數(shù)字邏輯實(shí)驗(yàn)教學(xué)[J]. 實(shí)驗(yàn)室研究與探索, 2015(5): 195-198.
[12] 張洪杰, 方愷晴, 徐成. 數(shù)字邏輯與系統(tǒng)設(shè)計(jì)類自主實(shí)驗(yàn)教學(xué)模式研究[J]. 計(jì)算機(jī)教育, 2015(12): 61-64.
[13] 唐志強(qiáng). 計(jì)算機(jī)專業(yè)數(shù)字邏輯實(shí)驗(yàn)的改革與創(chuàng)新[J]. 實(shí)驗(yàn)室研究與探索, 2013(10): 182-184.
(編輯:孫怡銘)
1672-5913(2017)02-0141-05
G642
上海海洋大學(xué)教改項(xiàng)目“嵌入式操作系統(tǒng)上海海洋大學(xué)重點(diǎn)課程建設(shè)”(A1-0201-00-1050)。
馮國(guó)富,男,副教授,研究方向?yàn)楦咝阅苡?jì)算機(jī)系統(tǒng)結(jié)構(gòu)、嵌入式物聯(lián)網(wǎng)技術(shù),jt_f@163.com。