祝元興++粘子雄++謝藝婷
摘要:為了適應(yīng)目前學(xué)院對計(jì)算機(jī)組成原理實(shí)驗(yàn)平臺的要求,開發(fā)了一個(gè)基于FPGA的計(jì)算機(jī)運(yùn)算器,用軟件的思想來模擬硬件的功能,利用FPGA芯片模擬8位字長運(yùn)算器,可實(shí)現(xiàn)多種算術(shù)運(yùn)算和邏輯運(yùn)算并顯示。用手動開關(guān)給出控制信號來控制運(yùn)算器的運(yùn)行,通過觀察數(shù)據(jù)燈、地址燈、狀態(tài)燈來了解運(yùn)算器運(yùn)行情況。該文主要討論了系統(tǒng)的下位機(jī)硬件設(shè)計(jì)和上下位機(jī)的通訊設(shè)計(jì)。
關(guān)鍵詞:FPGA 運(yùn)算器 實(shí)驗(yàn)平臺 下位機(jī)
中圖分類號:TP301-4;TN791 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2014)08-0101-02
目前福建省內(nèi)還沒有高校自主研發(fā)的計(jì)算機(jī)專業(yè)體系實(shí)驗(yàn)平臺,所有的相關(guān)實(shí)驗(yàn)裝置都是從省外購買,購買成本高,難于維護(hù),可移動性差。再加上我們學(xué)院的計(jì)算機(jī)組成原理實(shí)驗(yàn)設(shè)備結(jié)構(gòu)比較老舊,硬件結(jié)構(gòu)和電路設(shè)計(jì)比較復(fù)雜,體積大,不夠靈活,難于擴(kuò)展和維護(hù)等不足,所以研制一種體積小、成本低、實(shí)驗(yàn)環(huán)境要求不高實(shí)驗(yàn)裝置是迫切需求的。
基于FPGA的計(jì)算機(jī)運(yùn)算器,可以滿足計(jì)算機(jī)組成原理實(shí)踐課程的部分教學(xué)需要,是組成原理實(shí)驗(yàn)平臺的一部分。該運(yùn)算器適用教師教學(xué)環(huán)節(jié),有是面向?qū)W生服務(wù)的平臺,本系統(tǒng)構(gòu)建可擴(kuò)展、易維護(hù)、靈活性強(qiáng),實(shí)驗(yàn)成本低,適用面廣??赏ㄟ^本項(xiàng)目的開發(fā),在該實(shí)驗(yàn)平臺的基礎(chǔ)上繼續(xù)開發(fā)增加其他計(jì)算機(jī)的組成模塊,滿足計(jì)算機(jī)組成原理實(shí)踐課程的教學(xué)需要,可為計(jì)算機(jī)工程系相關(guān)課程提供一個(gè)教學(xué)應(yīng)用平臺。并有利我省高校在計(jì)算機(jī)專業(yè)的硬件課程體系實(shí)驗(yàn)教學(xué)上的改革和提升。
1 系統(tǒng)簡介
系統(tǒng)最大的特點(diǎn)就是運(yùn)用了軟件的思想來模擬硬件的功能,完成運(yùn)算器的算術(shù)或邏輯運(yùn)算,系統(tǒng)設(shè)計(jì)以學(xué)生可以進(jìn)行計(jì)算機(jī)組成原理實(shí)驗(yàn)為主,讓學(xué)生從軟件和硬件都得到了很好的鍛煉。如圖1所示,本實(shí)驗(yàn)平臺包括三部分:下位機(jī)、上位機(jī)、上下位機(jī)之間的通信。
本系統(tǒng)提供脫機(jī)、PC聯(lián)機(jī)兩種操作方式,靈活方便,通過RS-232通訊接口與計(jì)算機(jī)聯(lián)機(jī)使用。上位機(jī)是基于WIN2000、WINXP等操作系統(tǒng)的聯(lián)機(jī)軟件,界面友好,可完成對程序的編輯、下載、讀出和保存,并可實(shí)時(shí)監(jiān)控實(shí)驗(yàn)系統(tǒng)的運(yùn)行情況,檢測實(shí)驗(yàn)連線的正確性。生動直觀的模擬數(shù)據(jù)流向及數(shù)據(jù)、控制線的各種信息,使學(xué)生更易理解計(jì)算機(jī)運(yùn)算器的組成結(jié)構(gòu)和工作過程。下位機(jī)是基于FPGA的開發(fā)板和自己設(shè)計(jì)的輸入和輸出信號擴(kuò)展PCB板板所組成,用來構(gòu)成實(shí)驗(yàn)平臺的硬件部分。
2 下位機(jī)的設(shè)計(jì)
整個(gè)下位機(jī)是利用FPGA的開發(fā)板Altera DEO開發(fā)板架構(gòu)運(yùn)算器的功能,利用擴(kuò)展板來實(shí)現(xiàn)數(shù)據(jù)、控制信號的輸入和結(jié)果輸出。本系統(tǒng)機(jī)器字長為8位,即該運(yùn)算器可以同時(shí)進(jìn)行2個(gè)8位二進(jìn)制數(shù)的運(yùn)算,既數(shù)據(jù)總線為8位。整個(gè)下位機(jī)采用功能模塊化設(shè)計(jì),通過對模塊進(jìn)行功能仿真,可以模擬運(yùn)算器的工作過程。各模塊的組合如圖2所示。
2.1 各模塊的功能設(shè)計(jì)
各模塊的實(shí)現(xiàn)是通過FPGA來模擬,把程序嵌入到FPGA中,用FPGA來模擬硬件功能,留出相應(yīng)的控制信號和輸入輸出信號接口,讓學(xué)生有動手的操作過程,同時(shí)又節(jié)省了ALU、鎖存器和寄存器的硬件電路,適合于應(yīng)用在教學(xué)實(shí)踐課中。
ALU是整個(gè)運(yùn)算器的核心模塊,利用FPGA來模擬實(shí)現(xiàn)八位的算術(shù)邏輯運(yùn)算單元ALU的功能。這里的ALU功能是模擬74L181的功能,它可以進(jìn)行2個(gè)8位二進(jìn)制數(shù)的算術(shù)邏輯運(yùn)算,各種工作方式可通過設(shè)置其控制信號來實(shí)現(xiàn)(S0、 S1、 S2、S3、M、CN)。Altera DEO開發(fā)板的P0.16~P0.21接擴(kuò)展板的開關(guān)電路,作為運(yùn)算器的控制信號 S0、 S1、 S2、S3、M、CN。當(dāng)實(shí)驗(yàn)者正確設(shè)置了ALU的各個(gè)控制信號,就可以把兩個(gè)操作數(shù)進(jìn)行相應(yīng)的運(yùn)算并輸出。通過QuartusⅡ編譯生成ALU功能的實(shí)現(xiàn)電路如圖3所示。
數(shù)據(jù)輸入鎖存器DR1和DR2的功能是鎖存數(shù)據(jù),用來鎖存參與運(yùn)算的兩個(gè)操作數(shù),使他們都穩(wěn)定地出現(xiàn)在ALU的輸入端,為ALU運(yùn)算做準(zhǔn)備。DR1和DR2什么時(shí)候鎖存呢,在設(shè)計(jì)的時(shí)候,用VHDL語言來編譯鎖存器功能,EDR1為低電平,并且D1CK有上升沿時(shí),把來自數(shù)據(jù)總線的數(shù)據(jù)打入鎖存器DR1。同樣使EDR2為低電平、D2CK有上升沿時(shí)把數(shù)據(jù)總線上的數(shù)據(jù)打入數(shù)據(jù)鎖存器DR2。
在實(shí)驗(yàn)中為了避免數(shù)據(jù)總線上的數(shù)據(jù)發(fā)生沖突,連接在總線上的數(shù)據(jù)只能分時(shí)傳送,數(shù)據(jù)緩沖器SDR對信息起暫存作用。ALU運(yùn)算完后沒有立即把結(jié)果輸出至總線,是通過數(shù)據(jù)緩沖寄存器根據(jù)其具體的需求來運(yùn)送到數(shù)據(jù)總線上,緩沖器是用FPGA模擬74L244的功能。輸出緩沖器SDR當(dāng)控制信號ALU-O為低電平時(shí),SDR導(dǎo)通,把ALU的運(yùn)算結(jié)果輸出到數(shù)據(jù)總線,當(dāng)ALU-O為高電平時(shí),SDR的輸出為高阻。ALU-O為SDR的輸出控制信號。
2.2 各模塊的整合設(shè)計(jì)
具體的模塊整合的實(shí)現(xiàn)是把三個(gè)可以獨(dú)立運(yùn)行的功能文件放置在同一個(gè)文件夾中,再利用QuartusⅡ新建模塊文件,導(dǎo)入涉及到的所有模塊最后進(jìn)行模塊間的連線和定義來實(shí)現(xiàn),如圖4所示。
在新建的NEW1模塊中分別導(dǎo)入DR1和DR2、ALU和SDR的功能電路圖,以及若干的INPUT和OUTPUT插件。根據(jù)插件和定義兩端的參數(shù)信息進(jìn)行連線,有需要注意的是在鎖存器的輸入中定義了相同的管腳來作為控制信號,內(nèi)部的連接不需要加單獨(dú)的插件,只需要定義下參數(shù)即可。
2.3 輸入輸出擴(kuò)展板
系統(tǒng)設(shè)計(jì)的輸入和輸出擴(kuò)展PCB板中有手動輸入單元、輸出單元。手動輸入單元主要由24個(gè)撥動開關(guān)組成,往上撥開關(guān)表示輸出高電平1,往下?lián)荛_發(fā)表示輸出低電平0,這24個(gè)開關(guān)可以為系統(tǒng)提供所需要的數(shù)據(jù)信息和控制信號信息。輸出單元主要是由LED燈組成的,作為數(shù)據(jù)線上的數(shù)據(jù)狀態(tài)的表示燈,燈亮表示數(shù)據(jù)為1,燈滅表示數(shù)據(jù)為0。
做實(shí)驗(yàn)時(shí),用杜邦線把FPGA的相應(yīng)的引腳連接到PCB板,,通過波動開關(guān)設(shè)置參與運(yùn)算的數(shù)據(jù),相應(yīng)的控制信號狀態(tài),就可以通過數(shù)據(jù)總線的LED觀察運(yùn)算器的運(yùn)算結(jié)果。
3 上下位機(jī)的通訊協(xié)議設(shè)計(jì)
上位機(jī)可以監(jiān)視下位機(jī)運(yùn)行的狀態(tài)等,這里采用的是串行通訊。在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同 的設(shè)備可以方便地連接起來進(jìn)行通訊。RS-232-C接口(又稱 EIA RS-232-C)是目前比較常用的一種串行通訊接口。RS-232是為點(diǎn)對點(diǎn)(即只用一對收、發(fā)設(shè)備)通訊而設(shè)計(jì)的,RS-232適合本地設(shè)備之間的通信。所以我們的實(shí)驗(yàn)平臺采用RS-232通訊。
上下位機(jī)通訊的實(shí)質(zhì)主要是雙方要規(guī)定好傳輸?shù)臄?shù)據(jù)格式,采用異步串行通訊格式,采用一個(gè)起始位、數(shù)據(jù)位、一位檢驗(yàn)位、一位停止位。整個(gè)通訊過程我們要確保上下位機(jī)數(shù)據(jù)同步、操作同步。
4 結(jié)語
本系統(tǒng)與現(xiàn)有的計(jì)算機(jī)組成原理運(yùn)算器模塊相比較,成本低、體積小、移動性強(qiáng)、維護(hù)方便,容易升級和擴(kuò)展等優(yōu)勢。該系統(tǒng)不僅可以滿足計(jì)算機(jī)組成原理實(shí)踐課程的部分教學(xué)需要,可以適應(yīng)提高學(xué)生的創(chuàng)新能力和動手實(shí)踐能力的教學(xué)要求。在該實(shí)驗(yàn)平臺的基礎(chǔ)上繼續(xù)開發(fā)增加其他計(jì)算機(jī)的組成模塊,滿足計(jì)算機(jī)組成原理實(shí)踐課程的教學(xué)需要,可應(yīng)用在一般高校,并有利我省高校在計(jì)算機(jī)專業(yè)的硬件課程體系實(shí)驗(yàn)教學(xué)上的改革和提升。
參考文獻(xiàn)
[1]胡科.基于FPGA的VHDL計(jì)算機(jī)組成實(shí)驗(yàn)平臺的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:華東師范大學(xué)電子信息系,2007.
[2]陳志勇.計(jì)算機(jī)組成系統(tǒng)實(shí)驗(yàn)的改革與實(shí)踐[J].電氣電子教學(xué)學(xué)報(bào),2007,29(5):74-78.
[3]徐晨,顧暉.應(yīng)用EDA技術(shù)改革計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)[J].電氣電子教學(xué)學(xué)報(bào),2004,26(5):66-69.
[4]周寧寧.基于FPGA技術(shù)的計(jì)算機(jī)組成原理實(shí)驗(yàn)系統(tǒng)[J].現(xiàn)代電子技術(shù),2005,28(1):23-25.endprint
摘要:為了適應(yīng)目前學(xué)院對計(jì)算機(jī)組成原理實(shí)驗(yàn)平臺的要求,開發(fā)了一個(gè)基于FPGA的計(jì)算機(jī)運(yùn)算器,用軟件的思想來模擬硬件的功能,利用FPGA芯片模擬8位字長運(yùn)算器,可實(shí)現(xiàn)多種算術(shù)運(yùn)算和邏輯運(yùn)算并顯示。用手動開關(guān)給出控制信號來控制運(yùn)算器的運(yùn)行,通過觀察數(shù)據(jù)燈、地址燈、狀態(tài)燈來了解運(yùn)算器運(yùn)行情況。該文主要討論了系統(tǒng)的下位機(jī)硬件設(shè)計(jì)和上下位機(jī)的通訊設(shè)計(jì)。
關(guān)鍵詞:FPGA 運(yùn)算器 實(shí)驗(yàn)平臺 下位機(jī)
中圖分類號:TP301-4;TN791 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2014)08-0101-02
目前福建省內(nèi)還沒有高校自主研發(fā)的計(jì)算機(jī)專業(yè)體系實(shí)驗(yàn)平臺,所有的相關(guān)實(shí)驗(yàn)裝置都是從省外購買,購買成本高,難于維護(hù),可移動性差。再加上我們學(xué)院的計(jì)算機(jī)組成原理實(shí)驗(yàn)設(shè)備結(jié)構(gòu)比較老舊,硬件結(jié)構(gòu)和電路設(shè)計(jì)比較復(fù)雜,體積大,不夠靈活,難于擴(kuò)展和維護(hù)等不足,所以研制一種體積小、成本低、實(shí)驗(yàn)環(huán)境要求不高實(shí)驗(yàn)裝置是迫切需求的。
基于FPGA的計(jì)算機(jī)運(yùn)算器,可以滿足計(jì)算機(jī)組成原理實(shí)踐課程的部分教學(xué)需要,是組成原理實(shí)驗(yàn)平臺的一部分。該運(yùn)算器適用教師教學(xué)環(huán)節(jié),有是面向?qū)W生服務(wù)的平臺,本系統(tǒng)構(gòu)建可擴(kuò)展、易維護(hù)、靈活性強(qiáng),實(shí)驗(yàn)成本低,適用面廣。可通過本項(xiàng)目的開發(fā),在該實(shí)驗(yàn)平臺的基礎(chǔ)上繼續(xù)開發(fā)增加其他計(jì)算機(jī)的組成模塊,滿足計(jì)算機(jī)組成原理實(shí)踐課程的教學(xué)需要,可為計(jì)算機(jī)工程系相關(guān)課程提供一個(gè)教學(xué)應(yīng)用平臺。并有利我省高校在計(jì)算機(jī)專業(yè)的硬件課程體系實(shí)驗(yàn)教學(xué)上的改革和提升。
1 系統(tǒng)簡介
系統(tǒng)最大的特點(diǎn)就是運(yùn)用了軟件的思想來模擬硬件的功能,完成運(yùn)算器的算術(shù)或邏輯運(yùn)算,系統(tǒng)設(shè)計(jì)以學(xué)生可以進(jìn)行計(jì)算機(jī)組成原理實(shí)驗(yàn)為主,讓學(xué)生從軟件和硬件都得到了很好的鍛煉。如圖1所示,本實(shí)驗(yàn)平臺包括三部分:下位機(jī)、上位機(jī)、上下位機(jī)之間的通信。
本系統(tǒng)提供脫機(jī)、PC聯(lián)機(jī)兩種操作方式,靈活方便,通過RS-232通訊接口與計(jì)算機(jī)聯(lián)機(jī)使用。上位機(jī)是基于WIN2000、WINXP等操作系統(tǒng)的聯(lián)機(jī)軟件,界面友好,可完成對程序的編輯、下載、讀出和保存,并可實(shí)時(shí)監(jiān)控實(shí)驗(yàn)系統(tǒng)的運(yùn)行情況,檢測實(shí)驗(yàn)連線的正確性。生動直觀的模擬數(shù)據(jù)流向及數(shù)據(jù)、控制線的各種信息,使學(xué)生更易理解計(jì)算機(jī)運(yùn)算器的組成結(jié)構(gòu)和工作過程。下位機(jī)是基于FPGA的開發(fā)板和自己設(shè)計(jì)的輸入和輸出信號擴(kuò)展PCB板板所組成,用來構(gòu)成實(shí)驗(yàn)平臺的硬件部分。
2 下位機(jī)的設(shè)計(jì)
整個(gè)下位機(jī)是利用FPGA的開發(fā)板Altera DEO開發(fā)板架構(gòu)運(yùn)算器的功能,利用擴(kuò)展板來實(shí)現(xiàn)數(shù)據(jù)、控制信號的輸入和結(jié)果輸出。本系統(tǒng)機(jī)器字長為8位,即該運(yùn)算器可以同時(shí)進(jìn)行2個(gè)8位二進(jìn)制數(shù)的運(yùn)算,既數(shù)據(jù)總線為8位。整個(gè)下位機(jī)采用功能模塊化設(shè)計(jì),通過對模塊進(jìn)行功能仿真,可以模擬運(yùn)算器的工作過程。各模塊的組合如圖2所示。
2.1 各模塊的功能設(shè)計(jì)
各模塊的實(shí)現(xiàn)是通過FPGA來模擬,把程序嵌入到FPGA中,用FPGA來模擬硬件功能,留出相應(yīng)的控制信號和輸入輸出信號接口,讓學(xué)生有動手的操作過程,同時(shí)又節(jié)省了ALU、鎖存器和寄存器的硬件電路,適合于應(yīng)用在教學(xué)實(shí)踐課中。
ALU是整個(gè)運(yùn)算器的核心模塊,利用FPGA來模擬實(shí)現(xiàn)八位的算術(shù)邏輯運(yùn)算單元ALU的功能。這里的ALU功能是模擬74L181的功能,它可以進(jìn)行2個(gè)8位二進(jìn)制數(shù)的算術(shù)邏輯運(yùn)算,各種工作方式可通過設(shè)置其控制信號來實(shí)現(xiàn)(S0、 S1、 S2、S3、M、CN)。Altera DEO開發(fā)板的P0.16~P0.21接擴(kuò)展板的開關(guān)電路,作為運(yùn)算器的控制信號 S0、 S1、 S2、S3、M、CN。當(dāng)實(shí)驗(yàn)者正確設(shè)置了ALU的各個(gè)控制信號,就可以把兩個(gè)操作數(shù)進(jìn)行相應(yīng)的運(yùn)算并輸出。通過QuartusⅡ編譯生成ALU功能的實(shí)現(xiàn)電路如圖3所示。
數(shù)據(jù)輸入鎖存器DR1和DR2的功能是鎖存數(shù)據(jù),用來鎖存參與運(yùn)算的兩個(gè)操作數(shù),使他們都穩(wěn)定地出現(xiàn)在ALU的輸入端,為ALU運(yùn)算做準(zhǔn)備。DR1和DR2什么時(shí)候鎖存呢,在設(shè)計(jì)的時(shí)候,用VHDL語言來編譯鎖存器功能,EDR1為低電平,并且D1CK有上升沿時(shí),把來自數(shù)據(jù)總線的數(shù)據(jù)打入鎖存器DR1。同樣使EDR2為低電平、D2CK有上升沿時(shí)把數(shù)據(jù)總線上的數(shù)據(jù)打入數(shù)據(jù)鎖存器DR2。
在實(shí)驗(yàn)中為了避免數(shù)據(jù)總線上的數(shù)據(jù)發(fā)生沖突,連接在總線上的數(shù)據(jù)只能分時(shí)傳送,數(shù)據(jù)緩沖器SDR對信息起暫存作用。ALU運(yùn)算完后沒有立即把結(jié)果輸出至總線,是通過數(shù)據(jù)緩沖寄存器根據(jù)其具體的需求來運(yùn)送到數(shù)據(jù)總線上,緩沖器是用FPGA模擬74L244的功能。輸出緩沖器SDR當(dāng)控制信號ALU-O為低電平時(shí),SDR導(dǎo)通,把ALU的運(yùn)算結(jié)果輸出到數(shù)據(jù)總線,當(dāng)ALU-O為高電平時(shí),SDR的輸出為高阻。ALU-O為SDR的輸出控制信號。
2.2 各模塊的整合設(shè)計(jì)
具體的模塊整合的實(shí)現(xiàn)是把三個(gè)可以獨(dú)立運(yùn)行的功能文件放置在同一個(gè)文件夾中,再利用QuartusⅡ新建模塊文件,導(dǎo)入涉及到的所有模塊最后進(jìn)行模塊間的連線和定義來實(shí)現(xiàn),如圖4所示。
在新建的NEW1模塊中分別導(dǎo)入DR1和DR2、ALU和SDR的功能電路圖,以及若干的INPUT和OUTPUT插件。根據(jù)插件和定義兩端的參數(shù)信息進(jìn)行連線,有需要注意的是在鎖存器的輸入中定義了相同的管腳來作為控制信號,內(nèi)部的連接不需要加單獨(dú)的插件,只需要定義下參數(shù)即可。
2.3 輸入輸出擴(kuò)展板
系統(tǒng)設(shè)計(jì)的輸入和輸出擴(kuò)展PCB板中有手動輸入單元、輸出單元。手動輸入單元主要由24個(gè)撥動開關(guān)組成,往上撥開關(guān)表示輸出高電平1,往下?lián)荛_發(fā)表示輸出低電平0,這24個(gè)開關(guān)可以為系統(tǒng)提供所需要的數(shù)據(jù)信息和控制信號信息。輸出單元主要是由LED燈組成的,作為數(shù)據(jù)線上的數(shù)據(jù)狀態(tài)的表示燈,燈亮表示數(shù)據(jù)為1,燈滅表示數(shù)據(jù)為0。
做實(shí)驗(yàn)時(shí),用杜邦線把FPGA的相應(yīng)的引腳連接到PCB板,,通過波動開關(guān)設(shè)置參與運(yùn)算的數(shù)據(jù),相應(yīng)的控制信號狀態(tài),就可以通過數(shù)據(jù)總線的LED觀察運(yùn)算器的運(yùn)算結(jié)果。
3 上下位機(jī)的通訊協(xié)議設(shè)計(jì)
上位機(jī)可以監(jiān)視下位機(jī)運(yùn)行的狀態(tài)等,這里采用的是串行通訊。在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同 的設(shè)備可以方便地連接起來進(jìn)行通訊。RS-232-C接口(又稱 EIA RS-232-C)是目前比較常用的一種串行通訊接口。RS-232是為點(diǎn)對點(diǎn)(即只用一對收、發(fā)設(shè)備)通訊而設(shè)計(jì)的,RS-232適合本地設(shè)備之間的通信。所以我們的實(shí)驗(yàn)平臺采用RS-232通訊。
上下位機(jī)通訊的實(shí)質(zhì)主要是雙方要規(guī)定好傳輸?shù)臄?shù)據(jù)格式,采用異步串行通訊格式,采用一個(gè)起始位、數(shù)據(jù)位、一位檢驗(yàn)位、一位停止位。整個(gè)通訊過程我們要確保上下位機(jī)數(shù)據(jù)同步、操作同步。
4 結(jié)語
本系統(tǒng)與現(xiàn)有的計(jì)算機(jī)組成原理運(yùn)算器模塊相比較,成本低、體積小、移動性強(qiáng)、維護(hù)方便,容易升級和擴(kuò)展等優(yōu)勢。該系統(tǒng)不僅可以滿足計(jì)算機(jī)組成原理實(shí)踐課程的部分教學(xué)需要,可以適應(yīng)提高學(xué)生的創(chuàng)新能力和動手實(shí)踐能力的教學(xué)要求。在該實(shí)驗(yàn)平臺的基礎(chǔ)上繼續(xù)開發(fā)增加其他計(jì)算機(jī)的組成模塊,滿足計(jì)算機(jī)組成原理實(shí)踐課程的教學(xué)需要,可應(yīng)用在一般高校,并有利我省高校在計(jì)算機(jī)專業(yè)的硬件課程體系實(shí)驗(yàn)教學(xué)上的改革和提升。
參考文獻(xiàn)
[1]胡科.基于FPGA的VHDL計(jì)算機(jī)組成實(shí)驗(yàn)平臺的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:華東師范大學(xué)電子信息系,2007.
[2]陳志勇.計(jì)算機(jī)組成系統(tǒng)實(shí)驗(yàn)的改革與實(shí)踐[J].電氣電子教學(xué)學(xué)報(bào),2007,29(5):74-78.
[3]徐晨,顧暉.應(yīng)用EDA技術(shù)改革計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)[J].電氣電子教學(xué)學(xué)報(bào),2004,26(5):66-69.
[4]周寧寧.基于FPGA技術(shù)的計(jì)算機(jī)組成原理實(shí)驗(yàn)系統(tǒng)[J].現(xiàn)代電子技術(shù),2005,28(1):23-25.endprint
摘要:為了適應(yīng)目前學(xué)院對計(jì)算機(jī)組成原理實(shí)驗(yàn)平臺的要求,開發(fā)了一個(gè)基于FPGA的計(jì)算機(jī)運(yùn)算器,用軟件的思想來模擬硬件的功能,利用FPGA芯片模擬8位字長運(yùn)算器,可實(shí)現(xiàn)多種算術(shù)運(yùn)算和邏輯運(yùn)算并顯示。用手動開關(guān)給出控制信號來控制運(yùn)算器的運(yùn)行,通過觀察數(shù)據(jù)燈、地址燈、狀態(tài)燈來了解運(yùn)算器運(yùn)行情況。該文主要討論了系統(tǒng)的下位機(jī)硬件設(shè)計(jì)和上下位機(jī)的通訊設(shè)計(jì)。
關(guān)鍵詞:FPGA 運(yùn)算器 實(shí)驗(yàn)平臺 下位機(jī)
中圖分類號:TP301-4;TN791 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2014)08-0101-02
目前福建省內(nèi)還沒有高校自主研發(fā)的計(jì)算機(jī)專業(yè)體系實(shí)驗(yàn)平臺,所有的相關(guān)實(shí)驗(yàn)裝置都是從省外購買,購買成本高,難于維護(hù),可移動性差。再加上我們學(xué)院的計(jì)算機(jī)組成原理實(shí)驗(yàn)設(shè)備結(jié)構(gòu)比較老舊,硬件結(jié)構(gòu)和電路設(shè)計(jì)比較復(fù)雜,體積大,不夠靈活,難于擴(kuò)展和維護(hù)等不足,所以研制一種體積小、成本低、實(shí)驗(yàn)環(huán)境要求不高實(shí)驗(yàn)裝置是迫切需求的。
基于FPGA的計(jì)算機(jī)運(yùn)算器,可以滿足計(jì)算機(jī)組成原理實(shí)踐課程的部分教學(xué)需要,是組成原理實(shí)驗(yàn)平臺的一部分。該運(yùn)算器適用教師教學(xué)環(huán)節(jié),有是面向?qū)W生服務(wù)的平臺,本系統(tǒng)構(gòu)建可擴(kuò)展、易維護(hù)、靈活性強(qiáng),實(shí)驗(yàn)成本低,適用面廣??赏ㄟ^本項(xiàng)目的開發(fā),在該實(shí)驗(yàn)平臺的基礎(chǔ)上繼續(xù)開發(fā)增加其他計(jì)算機(jī)的組成模塊,滿足計(jì)算機(jī)組成原理實(shí)踐課程的教學(xué)需要,可為計(jì)算機(jī)工程系相關(guān)課程提供一個(gè)教學(xué)應(yīng)用平臺。并有利我省高校在計(jì)算機(jī)專業(yè)的硬件課程體系實(shí)驗(yàn)教學(xué)上的改革和提升。
1 系統(tǒng)簡介
系統(tǒng)最大的特點(diǎn)就是運(yùn)用了軟件的思想來模擬硬件的功能,完成運(yùn)算器的算術(shù)或邏輯運(yùn)算,系統(tǒng)設(shè)計(jì)以學(xué)生可以進(jìn)行計(jì)算機(jī)組成原理實(shí)驗(yàn)為主,讓學(xué)生從軟件和硬件都得到了很好的鍛煉。如圖1所示,本實(shí)驗(yàn)平臺包括三部分:下位機(jī)、上位機(jī)、上下位機(jī)之間的通信。
本系統(tǒng)提供脫機(jī)、PC聯(lián)機(jī)兩種操作方式,靈活方便,通過RS-232通訊接口與計(jì)算機(jī)聯(lián)機(jī)使用。上位機(jī)是基于WIN2000、WINXP等操作系統(tǒng)的聯(lián)機(jī)軟件,界面友好,可完成對程序的編輯、下載、讀出和保存,并可實(shí)時(shí)監(jiān)控實(shí)驗(yàn)系統(tǒng)的運(yùn)行情況,檢測實(shí)驗(yàn)連線的正確性。生動直觀的模擬數(shù)據(jù)流向及數(shù)據(jù)、控制線的各種信息,使學(xué)生更易理解計(jì)算機(jī)運(yùn)算器的組成結(jié)構(gòu)和工作過程。下位機(jī)是基于FPGA的開發(fā)板和自己設(shè)計(jì)的輸入和輸出信號擴(kuò)展PCB板板所組成,用來構(gòu)成實(shí)驗(yàn)平臺的硬件部分。
2 下位機(jī)的設(shè)計(jì)
整個(gè)下位機(jī)是利用FPGA的開發(fā)板Altera DEO開發(fā)板架構(gòu)運(yùn)算器的功能,利用擴(kuò)展板來實(shí)現(xiàn)數(shù)據(jù)、控制信號的輸入和結(jié)果輸出。本系統(tǒng)機(jī)器字長為8位,即該運(yùn)算器可以同時(shí)進(jìn)行2個(gè)8位二進(jìn)制數(shù)的運(yùn)算,既數(shù)據(jù)總線為8位。整個(gè)下位機(jī)采用功能模塊化設(shè)計(jì),通過對模塊進(jìn)行功能仿真,可以模擬運(yùn)算器的工作過程。各模塊的組合如圖2所示。
2.1 各模塊的功能設(shè)計(jì)
各模塊的實(shí)現(xiàn)是通過FPGA來模擬,把程序嵌入到FPGA中,用FPGA來模擬硬件功能,留出相應(yīng)的控制信號和輸入輸出信號接口,讓學(xué)生有動手的操作過程,同時(shí)又節(jié)省了ALU、鎖存器和寄存器的硬件電路,適合于應(yīng)用在教學(xué)實(shí)踐課中。
ALU是整個(gè)運(yùn)算器的核心模塊,利用FPGA來模擬實(shí)現(xiàn)八位的算術(shù)邏輯運(yùn)算單元ALU的功能。這里的ALU功能是模擬74L181的功能,它可以進(jìn)行2個(gè)8位二進(jìn)制數(shù)的算術(shù)邏輯運(yùn)算,各種工作方式可通過設(shè)置其控制信號來實(shí)現(xiàn)(S0、 S1、 S2、S3、M、CN)。Altera DEO開發(fā)板的P0.16~P0.21接擴(kuò)展板的開關(guān)電路,作為運(yùn)算器的控制信號 S0、 S1、 S2、S3、M、CN。當(dāng)實(shí)驗(yàn)者正確設(shè)置了ALU的各個(gè)控制信號,就可以把兩個(gè)操作數(shù)進(jìn)行相應(yīng)的運(yùn)算并輸出。通過QuartusⅡ編譯生成ALU功能的實(shí)現(xiàn)電路如圖3所示。
數(shù)據(jù)輸入鎖存器DR1和DR2的功能是鎖存數(shù)據(jù),用來鎖存參與運(yùn)算的兩個(gè)操作數(shù),使他們都穩(wěn)定地出現(xiàn)在ALU的輸入端,為ALU運(yùn)算做準(zhǔn)備。DR1和DR2什么時(shí)候鎖存呢,在設(shè)計(jì)的時(shí)候,用VHDL語言來編譯鎖存器功能,EDR1為低電平,并且D1CK有上升沿時(shí),把來自數(shù)據(jù)總線的數(shù)據(jù)打入鎖存器DR1。同樣使EDR2為低電平、D2CK有上升沿時(shí)把數(shù)據(jù)總線上的數(shù)據(jù)打入數(shù)據(jù)鎖存器DR2。
在實(shí)驗(yàn)中為了避免數(shù)據(jù)總線上的數(shù)據(jù)發(fā)生沖突,連接在總線上的數(shù)據(jù)只能分時(shí)傳送,數(shù)據(jù)緩沖器SDR對信息起暫存作用。ALU運(yùn)算完后沒有立即把結(jié)果輸出至總線,是通過數(shù)據(jù)緩沖寄存器根據(jù)其具體的需求來運(yùn)送到數(shù)據(jù)總線上,緩沖器是用FPGA模擬74L244的功能。輸出緩沖器SDR當(dāng)控制信號ALU-O為低電平時(shí),SDR導(dǎo)通,把ALU的運(yùn)算結(jié)果輸出到數(shù)據(jù)總線,當(dāng)ALU-O為高電平時(shí),SDR的輸出為高阻。ALU-O為SDR的輸出控制信號。
2.2 各模塊的整合設(shè)計(jì)
具體的模塊整合的實(shí)現(xiàn)是把三個(gè)可以獨(dú)立運(yùn)行的功能文件放置在同一個(gè)文件夾中,再利用QuartusⅡ新建模塊文件,導(dǎo)入涉及到的所有模塊最后進(jìn)行模塊間的連線和定義來實(shí)現(xiàn),如圖4所示。
在新建的NEW1模塊中分別導(dǎo)入DR1和DR2、ALU和SDR的功能電路圖,以及若干的INPUT和OUTPUT插件。根據(jù)插件和定義兩端的參數(shù)信息進(jìn)行連線,有需要注意的是在鎖存器的輸入中定義了相同的管腳來作為控制信號,內(nèi)部的連接不需要加單獨(dú)的插件,只需要定義下參數(shù)即可。
2.3 輸入輸出擴(kuò)展板
系統(tǒng)設(shè)計(jì)的輸入和輸出擴(kuò)展PCB板中有手動輸入單元、輸出單元。手動輸入單元主要由24個(gè)撥動開關(guān)組成,往上撥開關(guān)表示輸出高電平1,往下?lián)荛_發(fā)表示輸出低電平0,這24個(gè)開關(guān)可以為系統(tǒng)提供所需要的數(shù)據(jù)信息和控制信號信息。輸出單元主要是由LED燈組成的,作為數(shù)據(jù)線上的數(shù)據(jù)狀態(tài)的表示燈,燈亮表示數(shù)據(jù)為1,燈滅表示數(shù)據(jù)為0。
做實(shí)驗(yàn)時(shí),用杜邦線把FPGA的相應(yīng)的引腳連接到PCB板,,通過波動開關(guān)設(shè)置參與運(yùn)算的數(shù)據(jù),相應(yīng)的控制信號狀態(tài),就可以通過數(shù)據(jù)總線的LED觀察運(yùn)算器的運(yùn)算結(jié)果。
3 上下位機(jī)的通訊協(xié)議設(shè)計(jì)
上位機(jī)可以監(jiān)視下位機(jī)運(yùn)行的狀態(tài)等,這里采用的是串行通訊。在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同 的設(shè)備可以方便地連接起來進(jìn)行通訊。RS-232-C接口(又稱 EIA RS-232-C)是目前比較常用的一種串行通訊接口。RS-232是為點(diǎn)對點(diǎn)(即只用一對收、發(fā)設(shè)備)通訊而設(shè)計(jì)的,RS-232適合本地設(shè)備之間的通信。所以我們的實(shí)驗(yàn)平臺采用RS-232通訊。
上下位機(jī)通訊的實(shí)質(zhì)主要是雙方要規(guī)定好傳輸?shù)臄?shù)據(jù)格式,采用異步串行通訊格式,采用一個(gè)起始位、數(shù)據(jù)位、一位檢驗(yàn)位、一位停止位。整個(gè)通訊過程我們要確保上下位機(jī)數(shù)據(jù)同步、操作同步。
4 結(jié)語
本系統(tǒng)與現(xiàn)有的計(jì)算機(jī)組成原理運(yùn)算器模塊相比較,成本低、體積小、移動性強(qiáng)、維護(hù)方便,容易升級和擴(kuò)展等優(yōu)勢。該系統(tǒng)不僅可以滿足計(jì)算機(jī)組成原理實(shí)踐課程的部分教學(xué)需要,可以適應(yīng)提高學(xué)生的創(chuàng)新能力和動手實(shí)踐能力的教學(xué)要求。在該實(shí)驗(yàn)平臺的基礎(chǔ)上繼續(xù)開發(fā)增加其他計(jì)算機(jī)的組成模塊,滿足計(jì)算機(jī)組成原理實(shí)踐課程的教學(xué)需要,可應(yīng)用在一般高校,并有利我省高校在計(jì)算機(jī)專業(yè)的硬件課程體系實(shí)驗(yàn)教學(xué)上的改革和提升。
參考文獻(xiàn)
[1]胡科.基于FPGA的VHDL計(jì)算機(jī)組成實(shí)驗(yàn)平臺的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:華東師范大學(xué)電子信息系,2007.
[2]陳志勇.計(jì)算機(jī)組成系統(tǒng)實(shí)驗(yàn)的改革與實(shí)踐[J].電氣電子教學(xué)學(xué)報(bào),2007,29(5):74-78.
[3]徐晨,顧暉.應(yīng)用EDA技術(shù)改革計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)[J].電氣電子教學(xué)學(xué)報(bào),2004,26(5):66-69.
[4]周寧寧.基于FPGA技術(shù)的計(jì)算機(jī)組成原理實(shí)驗(yàn)系統(tǒng)[J].現(xiàn)代電子技術(shù),2005,28(1):23-25.endprint