999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

王雨桐 劉威 李林瑛

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

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

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

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

開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(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仿真平臺(tái)對(duì)單周期MipsCPU進(jìn)行設(shè)計(jì)并整合形成MIPS CPU數(shù)據(jù)通路圖,構(gòu)建數(shù)字電路系統(tǒng),通過Vivado平臺(tái)利用Verilog硬件描述語言對(duì)CPU進(jìn)行實(shí)現(xiàn),最后進(jìn)行仿真。

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

2.1 Logisim簡(jiǎn)介

LogiSim是一款開源的數(shù)字電路仿真軟件。通過該軟件,用戶可以使用其提供的多種元件圖仿真設(shè)計(jì)電路,并通過輸入真值表自動(dòng)生成電路,利用隧道對(duì)電路進(jìn)行簡(jiǎn)化,同時(shí)可以對(duì)元件進(jìn)行參數(shù)設(shè)定,并將電路進(jìn)行封裝,方便多個(gè)模塊之間的聯(lián)合。該軟件還提供數(shù)據(jù)通路的錯(cuò)誤檢測(cè),將出現(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)志(有符號(hào)溢出OF、無符號(hào)溢出CF,結(jié)果相等Equal)。

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

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

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

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

在Logisim輸入邏輯真值表得到加法有符號(hào)溢出判斷單元,進(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位加法器,對(duì)減數(shù)進(jìn)行取補(bǔ)碼操作,取補(bǔ)之后的減數(shù)與被減數(shù)相加得到結(jié)果。該模塊同樣需要判斷有符號(hào)溢出和無符號(hào)溢出情況,原理和加法模塊的溢出判斷基本相同,在無符號(hào)溢出的判斷直接比較被減數(shù)和結(jié)果大小即可判斷是否溢出,有符號(hào)的判斷需要利用之前設(shè)計(jì)的“加法器有符號(hào)溢出判斷”模塊。數(shù)據(jù)通路如圖6。

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

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

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

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

考慮到MIPS CPU的指令結(jié)構(gòu)中目的寄存器地址僅為5位,一組由32個(gè)32位寄存器單元組成的寄存器組(零號(hào)寄存器值要始終為零)即可滿足功能要求。寄存器組中的每個(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信號(hào),在選擇引腳接入5位二進(jìn)制用于選擇寄存器單元。最后用兩個(gè)數(shù)據(jù)選擇器對(duì)輸出數(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的指令解析非常簡(jiǎn)潔。

在取指令的過程中,以PC為地址訪問內(nèi)存,將取出的指令字放入內(nèi)存,由于要在一個(gè)時(shí)鐘周期內(nèi)完成整個(gè)指令的取值取操作數(shù)執(zhí)行的過程,所以不能設(shè)置地址緩沖寄存器、數(shù)據(jù)緩沖寄存器以及指令寄存器,而是直接用PC訪問指令存儲(chǔ)器。而指令進(jìn)行執(zhí)行的過程中,取操作數(shù)和取指令都需要訪問存儲(chǔ)器,因此將指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開設(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ù)存儲(chǔ)器。

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

利用logisim設(shè)計(jì)單周期CPU的通路圖可更直觀了解CPU各個(gè)部件引腳之間的關(guān)系及信號(hào)的傳遞,完成數(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í),由于自行編輯的指令存儲(chǔ)器中的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仿真平臺(tái)對(duì)處理器設(shè)計(jì)方案進(jìn)行驗(yàn)證,并擴(kuò)展構(gòu)建了相應(yīng)的數(shù)字電路系統(tǒng)。該處理器支持自動(dòng)和單步運(yùn)行方式,能正確地執(zhí)行存放在主存的程序功能,對(duì)主要的數(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ù)字邏輯》中門電路、處理器、存儲(chǔ)器、指令系統(tǒng)和CPU的知識(shí),同時(shí)能培養(yǎng)學(xué)生對(duì)科研及項(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)編輯:王力】

主站蜘蛛池模板: 72种姿势欧美久久久大黄蕉| 男女性色大片免费网站| 制服丝袜一区二区三区在线| 国产SUV精品一区二区| 久久国产精品夜色| 日韩国产亚洲一区二区在线观看| 国产人免费人成免费视频| 好吊色妇女免费视频免费| 少妇精品网站| 91亚洲视频下载| 91精品视频在线播放| 亚洲Va中文字幕久久一区 | 亚洲日韩国产精品综合在线观看| 91在线激情在线观看| 国产精品香蕉在线观看不卡| 国产后式a一视频| 成年人福利视频| 性69交片免费看| 日本尹人综合香蕉在线观看 | 日韩在线影院| 91精品啪在线观看国产| 欧美人与牲动交a欧美精品 | 黄色网站不卡无码| 亚洲人成在线免费观看| 九九热视频在线免费观看| 亚洲最大在线观看| 青青操国产视频| 国产毛片一区| 成人在线亚洲| 久久男人资源站| 成年午夜精品久久精品| a色毛片免费视频| 丝袜国产一区| 色综合狠狠操| 亚洲第一av网站| 精品国产成人国产在线| 无码日韩视频| 亚洲日本韩在线观看| 亚洲一级毛片免费观看| 91视频99| 久久狠狠色噜噜狠狠狠狠97视色| 国产网站黄| 亚洲无码电影| 亚洲Aⅴ无码专区在线观看q| 亚洲天堂精品视频| 国产网友愉拍精品| 伊人欧美在线| 丁香婷婷久久| 超清人妻系列无码专区| 精品少妇人妻av无码久久| 国产你懂得| 亚洲一区毛片| 天堂亚洲网| 精品精品国产高清A毛片| 成人午夜福利视频| 无码区日韩专区免费系列 | 一级毛片免费不卡在线视频| 欧美激情福利| 国产91视频免费观看| 亚洲精品自拍区在线观看| 亚洲欧美日韩天堂| 日韩欧美高清视频| 毛片在线播放a| 一级香蕉视频在线观看| 高清欧美性猛交XXXX黑人猛交 | 国产精品不卡永久免费| 久久综合色视频| 无码不卡的中文字幕视频| 欧美性猛交一区二区三区| 日本国产在线| 国产亚洲精品97在线观看| 亚洲无码精品在线播放| 成人免费午夜视频| 亚洲精品中文字幕无乱码| 天天干伊人| 欧美亚洲欧美| 另类欧美日韩| 久草中文网| 97se亚洲综合不卡| 亚洲国产欧洲精品路线久久| 亚洲精品麻豆| 久久精品视频亚洲|