亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的單周期MIPS處理器設(shè)計(jì)與實(shí)現(xiàn)

        2019-08-10 06:36:17王雨桐劉威李林瑛
        電腦知識與技術(shù) 2019年17期

        王雨桐 劉威 李林瑛

        摘要: FPGA技術(shù)的迅速發(fā)展,其使的應(yīng)用領(lǐng)域從最初的通訊擴(kuò)展到諸多航空,醫(yī)療等諸多領(lǐng)域。Logisim作為一個(gè)數(shù)字邏輯電路的設(shè)計(jì)與仿真軟件,具有開源免費(fèi)、可二次開發(fā)、免安裝、使用簡單、結(jié)果直觀等優(yōu)點(diǎn)。國外已有院校利用Logisim軟件完成了CPU的設(shè)計(jì),但國內(nèi)缺乏此方面的實(shí)踐經(jīng)驗(yàn)。本文將闡述如何利用Logisim設(shè)計(jì)數(shù)據(jù)通路并與Verilog結(jié)合對單周期CPU進(jìn)行FPGA設(shè)計(jì)。

        關(guān)鍵詞: FPGA;MIPS CPU;單周期CPU;Verilog;計(jì)算機(jī)組成原理

        中圖分類號:TP332? ? ? ? 文獻(xiàn)標(biāo)識碼:A

        文章編號:1009-3044(2019)17-0278-04

        開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):

        Abstract: With its rapid development, the use of the FPGA technology has been extended from the communication industry to many other fields such as aviation and medical treatment. As a design and simulation software, Logisim has the advantages in secondary development, needless to installation, open source, most importantly, easy to use for a beginner. Compared to that of the foreign developed countries, the experience of designing a single CPU on Logisim in China is limited. This project will demonstrate how to use Logisim to design the data path of a single MIPS CPU and realize it via Verilog on Vivado.

        Key words: FPGA; MIPS CPU; single MIPS CPU; Verilog; principles of computer composition

        1 引言

        本項(xiàng)目采用Logisim仿真平臺對單周期MipsCPU進(jìn)行設(shè)計(jì)并整合形成MIPS CPU數(shù)據(jù)通路圖,構(gòu)建數(shù)字電路系統(tǒng),通過Vivado平臺利用Verilog硬件描述語言對CPU進(jìn)行實(shí)現(xiàn),最后進(jìn)行仿真。

        2 Logisim實(shí)現(xiàn)數(shù)據(jù)通路設(shè)計(jì)

        2.1 Logisim簡介

        LogiSim是一款開源的數(shù)字電路仿真軟件。通過該軟件,用戶可以使用其提供的多種元件圖仿真設(shè)計(jì)電路,并通過輸入真值表自動(dòng)生成電路,利用隧道對電路進(jìn)行簡化,同時(shí)可以對元件進(jìn)行參數(shù)設(shè)定,并將電路進(jìn)行封裝,方便多個(gè)模塊之間的聯(lián)合。該軟件還提供數(shù)據(jù)通路的錯(cuò)誤檢測,將出現(xiàn)的錯(cuò)誤顯示為設(shè)定的顏色。

        2.2 基于Logisim的ALU設(shè)計(jì)

        2.2.1? 32位加法器

        利用logisim構(gòu)建加法器,需在構(gòu)建數(shù)據(jù)通路之前,首先確定該加法器所實(shí)現(xiàn)的功能。本項(xiàng)目所構(gòu)建的32位加法器的功能為:算術(shù)加、減、乘、除,邏輯與、或、非、異或運(yùn)算,邏輯左移、邏輯右移,算術(shù)右移運(yùn)算,支持常用程序狀態(tài)標(biāo)志(有符號溢出OF、無符號溢出CF,結(jié)果相等Equal)。

        對于不同功能碼,ALU將實(shí)現(xiàn)不同功能,功能碼通過引腳ALU_OP傳輸。

        ALU內(nèi)的基本加法單元是:一位全加器,實(shí)現(xiàn)對3個(gè)一位的二進(jìn)制數(shù)相加(操作數(shù)1,操作數(shù)2及進(jìn)位),取得輸出值和進(jìn)位。

        在Logisim輸入真值表得到一位全加器進(jìn)位模塊。數(shù)據(jù)通路如圖1。

        加法模塊符號位溢出的判斷,分為有符號情況OF及無符號情況UOF。在UOF情況下,只需對兩個(gè)輸入值與結(jié)果值的分別進(jìn)行比較。如果有至少一個(gè)輸入值大于結(jié)果則必然存在溢出,因此可以用兩個(gè)比較器將輸出結(jié)果連接到一個(gè)與門上,輸出的UOF 信號即為是否存在無符號溢出。在OF情況下,需單獨(dú)設(shè)計(jì)一個(gè)“加法有符號溢出判斷”單元。輸入端X,Y表示兩個(gè)輸入值的最高位,S表示結(jié)果的最高位(此處利用分離器提前將三個(gè)值的最高位分離出再輸入進(jìn)判斷模塊)。

        在Logisim輸入邏輯真值表得到加法有符號溢出判斷單元,進(jìn)行封裝后即可設(shè)計(jì)整體的加法模塊。

        整體的ADD加法模塊數(shù)據(jù)通路如圖5。

        2.2.2 邏輯左移、邏輯右移和算術(shù)右移模塊

        Logisim自帶的三種模塊可實(shí)現(xiàn)ALU的邏輯左移、邏輯右移和算術(shù)右移功能。

        三種位移模塊的數(shù)據(jù)通路基本相同。以邏輯左移模塊為例,該模塊包含兩個(gè)位寬為32位的輸入端,其中X輸入端為數(shù)據(jù)輸入端,Y輸入端為移位輸入端。決定X引腳輸入數(shù)據(jù)的移動(dòng)位數(shù)時(shí),由于X,Y輸入引腳的數(shù)據(jù)位寬均為32位,因此通過分離器取Y引腳的低五位即可。

        右移模塊設(shè)計(jì)時(shí),要注意將移位器的移位類型選擇為所需的邏輯型或算術(shù)型。

        2.2.3 SUB減法模塊

        本模塊利用之前設(shè)計(jì)好的32位加法器,對減數(shù)進(jìn)行取補(bǔ)碼操作,取補(bǔ)之后的減數(shù)與被減數(shù)相加得到結(jié)果。該模塊同樣需要判斷有符號溢出和無符號溢出情況,原理和加法模塊的溢出判斷基本相同,在無符號溢出的判斷直接比較被減數(shù)和結(jié)果大小即可判斷是否溢出,有符號的判斷需要利用之前設(shè)計(jì)的“加法器有符號溢出判斷”模塊。數(shù)據(jù)通路如圖6。

        ALU運(yùn)算器包含12個(gè)功能模塊,數(shù)據(jù)通路功能碼定為四位二進(jìn)制。ALU的輸出除了結(jié)果外還有OF和UOF的溢位判斷和相等判斷。在溢位判斷中,分別建立加法溢位模塊和減法溢位模塊,通過檢測ALU的操作碼是加法還是減法的操作碼后輸出一個(gè)真值,與相應(yīng)的加法模塊或減法模塊的溢出信號取與后輸出,保證溢出信號的準(zhǔn)確。

        加法溢位判斷模塊和減法溢位判斷模塊的數(shù)據(jù)通路僅針對特定的操作碼,不同的ALU加減法功能碼不同,連接方式也不同。利用logisim的真值表可自動(dòng)建立對應(yīng)模塊的電路。

        ALU 整體數(shù)據(jù)通路圖如圖7所示:

        2.3 寄存器組設(shè)計(jì)

        考慮到MIPS CPU的指令結(jié)構(gòu)中目的寄存器地址僅為5位,一組由32個(gè)32位寄存器單元組成的寄存器組(零號寄存器值要始終為零)即可滿足功能要求。寄存器組中的每個(gè)寄存器單元(Logisim提供)包括五個(gè)引腳:數(shù)據(jù)輸入端(當(dāng)時(shí)鐘觸發(fā)時(shí)更新寄存器數(shù)據(jù)0),時(shí)鐘端,使能端(當(dāng)為0時(shí)忽略時(shí)鐘輸入),清空端(當(dāng)為1時(shí)異步清空寄存器單元的值),輸出端(輸出寄存器單元的值)。各寄存器單元通過一個(gè)解復(fù)用器和兩個(gè)數(shù)據(jù)選擇器組合成寄存器組。解復(fù)用器的輸入端輸入常量1,并在使能端接入寫使能WE信號,在選擇引腳接入5位二進(jìn)制用于選擇寄存器單元。最后用兩個(gè)數(shù)據(jù)選擇器對輸出數(shù)據(jù)的寄存器單元進(jìn)行選擇并輸出數(shù)據(jù)。

        寄存器組的數(shù)據(jù)通路圖如圖8所示。

        2.4 單周期CPU數(shù)據(jù)通路整體設(shè)計(jì)

        單周期MIPSCPU的指令類型分為R, I, J,三種指令,OP操作碼字段為零的是R型指令,通過最后6個(gè)bit的功能碼可以確定指令功能,其余指令直接通過OP的值可以唯一確定指令功能,因此MIPS的指令解析非常簡潔。

        在取指令的過程中,以PC為地址訪問內(nèi)存,將取出的指令字放入內(nèi)存,由于要在一個(gè)時(shí)鐘周期內(nèi)完成整個(gè)指令的取值取操作數(shù)執(zhí)行的過程,所以不能設(shè)置地址緩沖寄存器、數(shù)據(jù)緩沖寄存器以及指令寄存器,而是直接用PC訪問指令存儲器。而指令進(jìn)行執(zhí)行的過程中,取操作數(shù)和取指令都需要訪問存儲器,因此將指令存儲器和數(shù)據(jù)存儲器分開設(shè)計(jì)以防止器件的征用。同理為防止運(yùn)算器的征用,還需要將PC的地址接入一個(gè)單獨(dú)的加法器進(jìn)行PC的累加運(yùn)算。

        當(dāng)PC的指令地址輸出后,通過一個(gè)分析模塊(分離器即可)將32為的地址分離出RS,RT,RD,OP,F(xiàn)UNT,IMMEDIATE等字段,傳輸至寄存器堆及控制器的相應(yīng)各個(gè)引腳,16位立即數(shù)通過位擴(kuò)展模塊進(jìn)行擴(kuò)展并輸入至ALU,寄存器堆的數(shù)據(jù)輸出后傳輸至ALU, ALU根據(jù)控制器輸出的ALUop引腳的相應(yīng)操作碼進(jìn)行計(jì)算并輸出至數(shù)據(jù)存儲器。

        3 基于Verilog的單周期CPU設(shè)計(jì)

        利用logisim設(shè)計(jì)單周期CPU的通路圖可更直觀了解CPU各個(gè)部件引腳之間的關(guān)系及信號的傳遞,完成數(shù)據(jù)通路設(shè)計(jì)后,即可進(jìn)行基于Verilog的處理器設(shè)計(jì)。本實(shí)驗(yàn)利用VIVADO進(jìn)行設(shè)計(jì)與modelsim仿真。

        根據(jù)數(shù)據(jù)通路,分別設(shè)計(jì)各個(gè)子模塊及CPU頂層模塊。最后編寫testbench文件進(jìn)行單條指令仿真。

        在進(jìn)行FPGA下板時(shí),由于自行編輯的指令存儲器中的initial指令不可綜合,因此需使用coe文件進(jìn)行內(nèi)存初始化。本實(shí)驗(yàn)用到開發(fā)板上的16個(gè)開關(guān),并用16位LED進(jìn)行輸出顯示,下載比特流文件至開發(fā)板后就可以進(jìn)行CPU運(yùn)算操作了。

        4 結(jié)語

        本項(xiàng)目利用FPGA設(shè)計(jì)了單周期MIPS處理器,采用Logisim仿真平臺對處理器設(shè)計(jì)方案進(jìn)行驗(yàn)證,并擴(kuò)展構(gòu)建了相應(yīng)的數(shù)字電路系統(tǒng)。該處理器支持自動(dòng)和單步運(yùn)行方式,能正確地執(zhí)行存放在主存的程序功能,對主要的數(shù)據(jù)流和控制流通過LED和數(shù)碼管進(jìn)行實(shí)時(shí)顯示,方便監(jiān)控和調(diào)試。

        本課題除電路設(shè)計(jì)方面的創(chuàng)新外,還是一項(xiàng)包含教學(xué)、科研和項(xiàng)目開發(fā)一體化的能力培訓(xùn)過程。教學(xué)方面體現(xiàn)能夠綜合應(yīng)用《計(jì)算機(jī)組成原理》和《數(shù)字邏輯》中門電路、處理器、存儲器、指令系統(tǒng)和CPU的知識,同時(shí)能培養(yǎng)學(xué)生對科研及項(xiàng)目研發(fā)過程的了解及熟悉。

        參考文獻(xiàn):

        [1] 王志英,周興社,袁春風(fēng),等. 計(jì)算機(jī)專業(yè)學(xué)生系統(tǒng)能力培養(yǎng)和系統(tǒng)課程體系設(shè)置研究[J]. 計(jì)算機(jī)教育,2013(9):1-6.

        [2] 吳繼明,曾碧卿.一種高效的CPU設(shè)計(jì)方法及其在計(jì)算機(jī)組成原理課程中應(yīng)用[J]. 實(shí)驗(yàn)室研究與探索,2018(9):147-153.

        [3] 楊楊.基于FPGA的單周期CPU設(shè)計(jì)與實(shí)現(xiàn)[J].軟件開發(fā)與設(shè)計(jì),2011(22):25-28.

        [4] 武杰,喬密,張俊杰. MIPS系統(tǒng)中北橋的FPGA設(shè)計(jì)[J].小型微型計(jì)算機(jī)系統(tǒng),2004,25(11):2028-2031.

        [5] 鄒志斌.基于MIPS指令集的RISC微處理器控制模塊的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2008.

        [6] 胡世昌.用logisim改革數(shù)字電路實(shí)驗(yàn)[J] 沈陽師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2015,33(2):3010-304.

        [7] 吳容海.Logisim在“計(jì)算機(jī)組成原理”教學(xué)中的應(yīng)用實(shí)踐[J] 大理學(xué)院學(xué)報(bào),2016,1(12):96-100.

        [8] Burch C.Logisim: a graphical system for logic circuit design and simulation[J].Journal on Educational Resources in Computing( JERIC) ,2002,2(1):5-16.

        【通聯(lián)編輯:王力】

        日韩精品极品在线观看视频| 欧美一区二区三区久久综| 精品日韩欧美一区二区在线播放| 国产一区二区精品尤物| 日韩高清av一区二区| 国产实拍日韩精品av在线| 亚洲人成无码区在线观看| 免费无码成人av在线播| 免费人人av看| 亚洲精品98中文字幕| 无码人妻精品一区二区三区9厂| 最近免费中文字幕| 国产激情久久久久久熟女老人| 成人国产一区二区三区av| 亚洲性久久久影院| 人人妻人人澡av天堂香蕉| 一本色道久久综合中文字幕| 精品人妻av一区二区三区麻豆| 国模无码一区二区三区不卡| 欧美成人小视频| 极品少妇在线观看视频| 亚洲中文无码av永久| 精品无码中文字幕在线| 国产精品久久婷婷婷婷| 国产高清在线精品一区二区三区| 亚洲熟妇av一区| 麻豆精产国品| 日本在线中文字幕一区| 亚洲天堂av三区四区不卡| 国产成人免费一区二区三区| 亚洲人成网站久久久综合| 日本综合视频一区二区| 国产午夜福利在线观看红一片| 91福利国产在线观看一区二区| 在线一区二区三区免费视频观看| 女优av一区二区三区| 天堂一区人妻无码| 完整在线视频免费黄片| 亚洲一区二区国产一区| 99精品人妻少妇一区二区| 国产精品无码专区综合网|