傅翠嬌,曹慶華
(北京航空航天大學(xué) 計(jì)算機(jī)學(xué)院,北京 100191)
隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,EDA設(shè)計(jì)已經(jīng)成為硬件設(shè)計(jì)的主要方式,新型的計(jì)算機(jī)實(shí)驗(yàn)教學(xué)模式是利用硬件描述語言和EDA工具[1],先在計(jì)算機(jī)上進(jìn)行設(shè)計(jì)、修改和仿真,通過仿真波形可以直接觀察到電路內(nèi)部的各個(gè)信號(hào)的變化情況,然后將設(shè)計(jì)下載到實(shí)驗(yàn)臺(tái)上的FPGA芯片中,進(jìn)一步驗(yàn)證設(shè)計(jì)的正確性。通過一系列綜合性的實(shí)驗(yàn),不僅可以加深學(xué)生對(duì)計(jì)算機(jī)硬件基本知識(shí)的理解,而且有助于學(xué)生貫通這些知識(shí)點(diǎn)。通過在實(shí)驗(yàn)臺(tái)上的驗(yàn)證與調(diào)試,鍛煉了學(xué)生的實(shí)際動(dòng)手能力、分析問題和解決問題能力[2-4]。
計(jì)算機(jī)組成原理實(shí)驗(yàn)是計(jì)算機(jī)專業(yè)重點(diǎn)的專業(yè)基礎(chǔ)課程之一,通過這門課程的學(xué)習(xí)和實(shí)踐,使學(xué)生了解計(jì)算機(jī)各個(gè)子系統(tǒng)的工作原理,建立起計(jì)算機(jī)整機(jī)系統(tǒng)的概念。該實(shí)驗(yàn)課程起著承上啟下的作用,是讓學(xué)生建立起整機(jī)概念的關(guān)鍵,其他的計(jì)算機(jī)專業(yè)的硬件實(shí)驗(yàn)課程可以圍繞計(jì)算機(jī)組成原理實(shí)驗(yàn)展開,可以通過向下融合和向上擴(kuò)展的方式使計(jì)算機(jī)硬件類的實(shí)驗(yàn)課程成為一個(gè)有機(jī)的整體。本文通過一個(gè)基于MIPS處理器的實(shí)驗(yàn)設(shè)計(jì)實(shí)例進(jìn)行了詳細(xì)的說明[5-10]。
本實(shí)驗(yàn)利用MIPS CPU、并行接口8255A以及定時(shí)器/計(jì)數(shù)器8253設(shè)計(jì)一個(gè)可循環(huán)運(yùn)行的程序,要求對(duì)8255A和8253進(jìn)行初始化后,使用8253進(jìn)行定時(shí)運(yùn)行CPU中的循環(huán)程序,并向8255A輸出數(shù)據(jù),然后再把運(yùn)行結(jié)果通過數(shù)碼管上顯示出來。
本文使用的MIPS處理器——MIPS-C主要定位于實(shí)驗(yàn)教學(xué),是一個(gè)僅執(zhí)行定點(diǎn)指令的功能型處理器,與絕大多數(shù) MIPS處理器不同,MIPS-C采用單發(fā)射多周期體系結(jié)構(gòu)。MIPS-C具有中斷機(jī)制,不支持流水線、Cache、MMU、浮點(diǎn)運(yùn)算等。MIPS-C的設(shè)計(jì)主要參考了《計(jì)算機(jī)組成與設(shè)計(jì)-軟件/硬件接口》一書[11]。
8255A是一個(gè)可編程的并行輸入、輸出接口電路,具有24個(gè)可編程設(shè)置的I/O口,包括3組8位的I/O為PA口、PB口、PC口,又可分為2組12位的I/O口:A組包括A口及C口高4位,B組包括B口及C組的低4位。8255A共有3種工作方式,其中A口可以設(shè)置為方式0、方式1、方式2,B口與C口只能設(shè)置為方式0或方式1。
8253是一種可編程定時(shí)/計(jì)數(shù)器,它有2個(gè)功能:一是作為計(jì)數(shù)器,另一是作為定時(shí)器。8253具有以下主要特點(diǎn):(1)具有3個(gè)獨(dú)立的16位減一計(jì)數(shù)器;(2)可按二進(jìn)制或十進(jìn)制(BCD)計(jì)數(shù);(3)具有6種不同的工作方式,這些方式可由軟件來設(shè)定[12]。
為了實(shí)現(xiàn)MIPS CPU與外圍接口的互連,需要對(duì)已設(shè)計(jì)的MIPS CPU做一些調(diào)整,例如原來的內(nèi)存和CPU混合在一起,不易控制,也不易和外圍接口相連,因此需要先把內(nèi)存移至CPU外;原來CPU與外界交換數(shù)據(jù)使用的是一條輸入數(shù)據(jù)線和一條輸出數(shù)據(jù)線,而8255等外圍接口使用的是即可作輸入又可作輸出的總線結(jié)構(gòu),因此需要將數(shù)據(jù)線修改為總線結(jié)構(gòu)。怎樣控制定時(shí)器8253,比如門控信號(hào),一種方法是使用8255A的C口輸出到8253,另一種方法是直接將其連接到一個(gè)輸入信號(hào),手動(dòng)控制門控信號(hào)。相比較而言,手動(dòng)控制的方法比較好控制觀察現(xiàn)象,在這里選擇第2種方法。8253的輸出信號(hào)等作中斷信號(hào)使用,與CPU的外部中斷INT信號(hào)相連,一旦計(jì)時(shí)到就開始循環(huán)執(zhí)行程序,程序運(yùn)行的結(jié)果通過8255A的B口輸出。
該實(shí)驗(yàn)在QuartusⅡ7.2中進(jìn)行設(shè)計(jì)和仿真,并在Altera公司的FPGA芯片EP2C35F672C6和DE2教學(xué)開發(fā)板上進(jìn)行下載驗(yàn)證。
MIPS CPU是一個(gè)實(shí)現(xiàn)了MIPS指令集的32位精簡(jiǎn)指令集CPU。原來的內(nèi)存是與CPU混合在一起的,不易控制,也不易與接口相連,因此需要先將內(nèi)存移至CPU外部,然后生成CPU的頂層文件,為下一步與接口的連接做好準(zhǔn)備,其符號(hào)文件如圖1所示。
圖1 MIPS CPU的符號(hào)模塊
MIPS CPU文件的時(shí)序仿真如圖2所示。
圖2 MIPS CPU的仿真波形文件
在本實(shí)驗(yàn)中,8255A芯片工作在0方式,即A口、B口、C口的高低四位可以自行指定作為輸入輸出端口使用,可以根據(jù)自己的約定把一些端口作為控制位使用,8255A的符號(hào)模塊如圖3所示。對(duì)8255A可編程并行接口進(jìn)行時(shí)序仿真,其仿真文件如圖4所示。
在本次實(shí)驗(yàn)中,采用8253的0通道和方式0,其符號(hào)模塊如圖5所示[13]。
圖3 8255A的符號(hào)模塊
圖4 8255AA口輸入B口輸出的仿真波形文件
圖5 8253的符號(hào)模塊圖
對(duì)8253的0通道和方式0進(jìn)行仿真,仿真波形文件如圖6所示。
原來的CPU與外界交換數(shù)據(jù)使用的是一個(gè)輸出數(shù)據(jù)線和一個(gè)輸入數(shù)據(jù)線,而8255A等接口使用的是既可以輸入,又可以輸出的總線結(jié)構(gòu),因此需要先將數(shù)據(jù)線改為總線結(jié)構(gòu)。如圖7所示,將輸入數(shù)據(jù)與輸出數(shù)據(jù)合并為一條線,并且在輸入輸出端加入tri器件作為總線控制器,即可完成總線結(jié)構(gòu)的改造。
圖6 82530通道、方式0的時(shí)序仿真
圖7 系統(tǒng)的總線結(jié)構(gòu)圖
圖7中標(biāo)記處為控制CPU輸入輸出的總線控制器,控制信號(hào)為讀取信號(hào)RW,當(dāng)讀有效時(shí),總線方向?yàn)镃PU輸入方向,當(dāng)寫有效時(shí),總線方向?yàn)镃PU輸出方向。
(1)內(nèi)存譯碼電路。內(nèi)存的譯碼電路比較簡(jiǎn)單,因?yàn)橹恍枰袛郃[7]是不是0即可,如圖8所示。
圖8 內(nèi)存譯碼電路
(2)8255A的譯碼電路。只需要判斷 A[7:2]是否是100000,譯碼電路如圖9所示。
圖9 8255A的譯碼電路
(3)8253的譯碼電路。需要判斷A[7:2]是否是100001,譯碼電路如圖10所示。
圖10 8253譯碼電路
將各個(gè)元件連好后,就開始編寫MIPS匯編程序,本實(shí)驗(yàn)中使用將程序硬編碼在內(nèi)存中的做法。控制過程為:手動(dòng)開啟gate信號(hào),之后內(nèi)存中的循環(huán)程序會(huì)一直將一個(gè)變量加1,定時(shí)器每定時(shí)1次,做1次加1運(yùn)算。
控制邏輯如下所示:
(1)初始化8253:控制字為8’b00010100,計(jì)數(shù)初值為8’b00010000;
(2)初始化8255A:控制字為8’b10010000;
(3)然后8253每定時(shí)一次,程序把內(nèi)存中的一個(gè)數(shù)加1,計(jì)算結(jié)果回送內(nèi)存,并通過8255輸出。
初始化8253和8255A的時(shí)序仿真圖如圖11所示。開始執(zhí)行循環(huán)程序的時(shí)序仿真如圖12所示。
圖11 初始化8253和8255A的時(shí)序仿真圖
圖12 開始執(zhí)行循環(huán)程序的時(shí)序仿真圖
按照CPU的輸入輸出引腳定義以及8255A輸入輸出的引腳定義,把CPU和8255A進(jìn)行連接。為了不讓內(nèi)存和8255A輸出信號(hào)相沖突,在tri器件的選擇信號(hào)上需要加入本器件的CS使能信號(hào),如圖13所示。
圖13 8255A輸出電路
在連接8253時(shí),除了與CPU相對(duì)應(yīng)的各種信號(hào)需要連接以外,還有2個(gè)信號(hào)需要注意,一個(gè)是啟動(dòng)8253開始計(jì)時(shí)的gate信號(hào),還有一個(gè)是8253的輸出信號(hào)。gate信號(hào)可直接將其連入一個(gè)輸入,手動(dòng)開啟gate信號(hào),這樣做的目的是比較好控制觀察現(xiàn)象。8253的輸出可以當(dāng)做中斷信號(hào)來使用,與CPU的外部中斷INT信號(hào)相連,具體的連接方法如圖14所示。
再次對(duì)工程進(jìn)行全編譯,然后將生成的目標(biāo)文件下載到實(shí)驗(yàn)箱上,進(jìn)行在線測(cè)試。測(cè)試結(jié)果驗(yàn)證了系統(tǒng)功能的正確性。
本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于MIPS處理器的并行接口的計(jì)數(shù)器應(yīng)用實(shí)驗(yàn),功能仿真和下載測(cè)試表明:該系統(tǒng)功能正確,性能穩(wěn)定。通過增加外圍芯片,加深了學(xué)生對(duì)處理器的理解和認(rèn)識(shí);通過實(shí)現(xiàn)處理器對(duì)外圍接口的控制,使學(xué)生更好地理解了接口的工作過程。該設(shè)計(jì)綜合了多種計(jì)算機(jī)硬件設(shè)計(jì)知識(shí),對(duì)學(xué)生更好地掌握這方面的非常有幫助。
圖14 CPU與8255A、8253的連接圖
(References)
[1]任春明,劉軍.計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)的思考與改進(jìn)[J].實(shí)驗(yàn)技術(shù)與管理,2006,23(10):110-111.
[2]袁春風(fēng),黃宜華,武港山,等.“計(jì)算機(jī)組成與體系結(jié)構(gòu)”課程群建設(shè)實(shí)踐[J].計(jì)算機(jī)教育,2010(13):80-83.
[3]王帥,袁春風(fēng).美國(guó)一流大學(xué)計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)課程研究[J].計(jì)算機(jī)教育,2011(17):115-118.
[4]顧兵,彭文藝,歐陽星明.計(jì)算機(jī)專業(yè)硬件課程實(shí)踐教學(xué)改革思考[J].計(jì)算機(jī)教育,2011(12):19-21.
[5]董再秀,溫衛(wèi)敏,趙亮.“計(jì)算機(jī)組成原理”課程教學(xué)改革與實(shí)踐[J].滁州學(xué)院學(xué)報(bào),2011,13(2):94-96.
[6]袁春風(fēng),陳貴海,黃宜華,等.“計(jì)算機(jī)組織與系統(tǒng)結(jié)構(gòu)”課程的教學(xué)現(xiàn)狀和改革思路[J].計(jì)算機(jī)教育,2009(4):153-156.
[7]王誠(chéng),宋佳興.教學(xué)計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2005(12):213-216.
[8]陳智勇.計(jì)算機(jī)組成系統(tǒng)實(shí)驗(yàn)的改革與實(shí)踐[J].電氣電子教學(xué)學(xué)報(bào),2007,29(5):73-78.
[9]李山山,全成斌.計(jì)算機(jī)組成原理課程實(shí)驗(yàn)教學(xué)的調(diào)查與研究[J].計(jì)算機(jī)教育,2010(22):127-129.
[10]袁春風(fēng),張澤生,楊若瑜,等.“計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu)”課程建設(shè)思路與教學(xué)實(shí)踐[J].計(jì)算機(jī)教育,2012(2):62-66.
[11]David A Patterson,John L.Hennessy.計(jì)算機(jī)組成與設(shè)計(jì)硬件/軟件接口[M].北京:機(jī)械工業(yè)出版社,2007.
[12]劉樂善,歐陽星明,劉學(xué)清.微型計(jì)算機(jī)接口技術(shù)及應(yīng)用[M].武漢:華中科技大學(xué)出版社,2000.
[13]傅翠嬌,曹慶華.計(jì)算機(jī)接口與通信實(shí)驗(yàn)教程[M].北京:清華大學(xué)出版社,2011.