《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > EDA與制造 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的32位ALU軟核設(shè)計(jì)
基于FPGA的32位ALU軟核設(shè)計(jì)
電子科技
周殿鳳
摘要: 介紹了一種基于可編程邏輯器件FPGA和硬件描述語言VHDL的32位ALU的設(shè)計(jì)方法。該ALU采取層次化設(shè)計(jì)方法,由控制模塊、邏輯模塊、加減法模塊、乘法模塊和除法模塊組成,能實(shí)現(xiàn)32位有符號(hào)數(shù)和無符號(hào)數(shù)的加減乘除運(yùn)算,另外還能實(shí)現(xiàn)9種邏輯運(yùn)算、6種移位運(yùn)算以及高低字節(jié)內(nèi)容互換。該ALU在QuartuslI軟件環(huán)境下進(jìn)行了功能仿真,通過驗(yàn)證表明,所設(shè)計(jì)的ALU完全正確,可供直接調(diào)用。
關(guān)鍵詞: SoPC FPGA ALU
Abstract:
Key words :

目前許多FPGA" title="FPGA">FPGA的邏輯資源(LE)都已超過1萬門,使得片上可編程系統(tǒng)SOPC" title="SOPC">SOPC已經(jīng)成為可能。算術(shù)邏輯單元ALU" title="ALU">ALU應(yīng)用廣泛,是片上可編程系統(tǒng)不可或缺的一部分。利用VHDL語言在FPGA芯片上設(shè)計(jì)ALU的研究較少,文中選用FPGA來設(shè)計(jì)32位算術(shù)邏輯單元ALU,通過VHDL語言實(shí)現(xiàn)ALU的功能。

1 電路總體設(shè)計(jì)思想
   
算術(shù)邏輯單元ALU采用模塊化設(shè)計(jì),可以完成32位有符號(hào)數(shù)和無符號(hào)數(shù)的加減乘除,還可以實(shí)現(xiàn)9種邏輯運(yùn)算、6種移位操作以及高低字節(jié)內(nèi)容互換等操作。
    總體設(shè)計(jì)圖,如圖1所示。當(dāng)you_wu=1時(shí)實(shí)現(xiàn)有符號(hào)數(shù)加減乘除運(yùn)算,否則為無符號(hào)數(shù)運(yùn)算。進(jìn)行有符號(hào)數(shù)加減運(yùn)算時(shí)c為符號(hào)位,無符號(hào)數(shù)加減運(yùn)算時(shí)c表示進(jìn)位或借位。加減法運(yùn)算和邏輯運(yùn)算結(jié)果存于y1。乘運(yùn)算時(shí),y1放高32位,y2放低32位。除法運(yùn)算時(shí)y1放商,y2放余數(shù)。a,b表示兩路32位輸入數(shù)據(jù)。



2 主要模塊功能分析
   
算術(shù)邏輯單元ALU包含5個(gè)模塊:控制模塊、邏輯模塊、加減法模塊、乘法模塊和除法模塊。控制模塊比較簡單,即1個(gè)2線~4線譯碼器,完成其他模塊的控制與選擇。當(dāng)ctr=00時(shí)完成邏輯運(yùn)算,ctr=01時(shí)完成加減法運(yùn)算,ctr=10時(shí)完成乘法運(yùn)算,ctr=11時(shí)完成除法運(yùn)算。
2.1 邏輯運(yùn)算模塊
   
本模塊實(shí)現(xiàn)與、或、非、與非、或非、異或、同或、邏輯左移、邏輯右移、算術(shù)左移、算術(shù)右移、邏輯循環(huán)左移、邏輯循環(huán)右移以及高低半字(16位)分別取反和高低字內(nèi)容互換等操作。用1個(gè)case語句即可實(shí)現(xiàn)上述全部功能。
2.2 加減法模塊
   
加減法模塊可根據(jù)需要完成32位有符號(hào)數(shù)和無符號(hào)數(shù)的加減運(yùn)算,在程序開始時(shí)先判斷所要進(jìn)行的運(yùn)算有無符號(hào)數(shù),對于有符號(hào)數(shù),用符號(hào)位將兩組數(shù)擴(kuò)展為33位二進(jìn)制數(shù),否則用0擴(kuò)展為33位二進(jìn)制數(shù),其中減法運(yùn)算采用補(bǔ)碼實(shí)現(xiàn),所以整個(gè)程序只有加法運(yùn)算。程序只占用68個(gè)邏輯資源(LE),非常節(jié)省資源,而且速度很快,是一種優(yōu)化設(shè)計(jì)。仿真圖如圖2所示。


2.3 乘法模塊
   
比較好的帶符號(hào)數(shù)的乘法是布斯(Booth)算法。但是本模塊既要實(shí)現(xiàn)有符號(hào)數(shù)運(yùn)算,也要實(shí)現(xiàn)無符號(hào)數(shù)運(yùn)算,用Booth算法反而復(fù)雜。綜合考慮邏輯資源的使用和速度兩個(gè)方面的因素,本設(shè)計(jì)采用下面的算法:不管是有符號(hào)數(shù)還是無符號(hào)數(shù)乘法,都轉(zhuǎn)換成無符號(hào)數(shù)相乘,最后根據(jù)需要對計(jì)算結(jié)果進(jìn)行轉(zhuǎn)換。如果是無符號(hào)數(shù)相乘,乘積不作變化。如果是有符號(hào)數(shù)相乘,只有兩位乘數(shù)符號(hào)不一樣時(shí)才對乘的結(jié)果做處理,否則結(jié)果不變。乘積處理的方法是將乘積取反加1。假設(shè)乘數(shù)是32位數(shù)a,b,乘法主要通過移位和加法組成,設(shè)a=a31,a30…a0,如果ai=1則b向左移i位且右邊添i個(gè)0,否則b不作變化,a中有多少個(gè)1就要進(jìn)行多少次移位操作,最后將所有移位值相加既得a×b的值。乘法的仿真圖如圖3所示。仿真結(jié)果表示設(shè)計(jì)完全正確。32位有符號(hào)和無符號(hào)數(shù)乘法模塊占用邏輯資源不到800 LE,且由于各種移位并發(fā)進(jìn)行,故速度較快。


2.4 除法模塊
   
目前運(yùn)用VHDL進(jìn)行乘法運(yùn)算的研究較多,而除法只有少數(shù)學(xué)者研究。文中綜合考慮速度和資源的占用,采取下列算法實(shí)現(xiàn):對于32位無符號(hào)被除數(shù)a,先將a轉(zhuǎn)換成高32位是0低32位是a的數(shù)temp_a。在每個(gè)周期開始時(shí)temp_a向左移動(dòng)一位,最后一位補(bǔ)0,然后判斷temp_a的高32位是否≥除數(shù)b,如是則temp_a的高32位減去b并且低32位加1,得到的新值仍賦給temp_a。如不是直接進(jìn)入下一步。上面的移位、比較、減法要進(jìn)行32次,經(jīng)過32個(gè)周期后,運(yùn)算結(jié)束,所得到的temp_a的高32位為余數(shù),低32位為商。
    對于32位有符號(hào)數(shù)的除法,采用的算法是將被除數(shù)與除數(shù)均變成無符號(hào)的32位數(shù),緊接著的計(jì)算過程與無符號(hào)數(shù)除法一樣,只是需要判斷商和余數(shù)是正數(shù)還是負(fù)數(shù)。令,如果d=0則被除數(shù)與除數(shù)同為正數(shù)或者負(fù)數(shù),最終商為正數(shù)。如果d=1說明被除數(shù)與除數(shù)符號(hào)相反,最終商為負(fù)數(shù)。被除數(shù)是負(fù)數(shù)時(shí)余數(shù)為負(fù),否則為正。最后根據(jù)d的值對商作處理;如果d=0商不需任何處理,如果d=1則將商取反加1才是正確的結(jié)果。余數(shù)的調(diào)整則根據(jù)被除數(shù)的符號(hào)位進(jìn)行。



3 結(jié)束語
   
文中在FPGA芯片上,利用VHDL語言設(shè)計(jì)了功能強(qiáng)大的32位ALU。由于ALU是CPU的重要組成部分,各類系統(tǒng)中都不可避免地需要ALU,因此本設(shè)計(jì)的應(yīng)用泛圍較廣。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲婷婷免费| 久久久人成影片一区二区三区 | 欧美亚洲网站| a4yy欧美一区二区三区| 亚洲国产激情| 久久精品道一区二区三区| 午夜精品亚洲| 亚洲女ⅴideoshd黑人| 亚洲午夜精品久久久久久app| 99精品视频免费观看| 亚洲裸体视频| 日韩视频永久免费| 日韩亚洲欧美成人| 日韩视频在线观看| 亚洲视频精品在线| 亚洲一区二区在线免费观看视频| 亚洲视频每日更新| 亚洲男人的天堂在线观看| 亚洲欧美日本另类| 欧美伊人久久久久久久久影院 | 久久精品国产亚洲精品| 久久久久国产精品一区三寸| 麻豆成人小视频| 欧美成人情趣视频| 欧美激情第三页| 欧美日韩国产在线播放| 欧美性大战久久久久| 国产精品成人aaaaa网站| 国产精品毛片高清在线完整版| 国产精品区二区三区日本| 国产精品无人区| 国产综合网站| 在线观看av不卡| 亚洲精品久久久久久久久| 日韩一本二本av| 亚洲校园激情| 欧美一区二区三区在线| 亚洲第一精品久久忘忧草社区| 亚洲黑丝一区二区| 一本色道**综合亚洲精品蜜桃冫 | 欧美日韩精品久久久| 欧美亚洲成人精品| 久久久精彩视频| 欧美成人午夜激情在线| 欧美日本一道本| 国产精品嫩草99a| 狠狠噜噜久久| 亚洲开发第一视频在线播放| 中文精品视频一区二区在线观看| 亚洲欧美日韩久久精品| 亚洲高清一二三区| 一区二区三区你懂的| 亚洲欧美日韩精品久久奇米色影视 | 亚洲一区二区三区在线| 久久99伊人| 欧美精品免费视频| 国产精品社区| 亚洲成在人线av| 亚洲视频精选在线| 91久久国产精品91久久性色| 亚洲一区国产精品| 久久一区二区三区超碰国产精品| 欧美伦理91| 国产亚洲综合精品| 亚洲乱码精品一二三四区日韩在线| 午夜精品亚洲| 妖精成人www高清在线观看| 欧美诱惑福利视频| 欧美韩国一区| 国产日韩在线看| 日韩视频中文| 亚洲国产99| 午夜亚洲激情| 欧美久久电影| 国产在线观看91精品一区| 99综合精品| 亚洲国产欧美在线人成| 欧美一区二区三区四区夜夜大片| 欧美激情成人在线| 很黄很黄激情成人| 亚洲欧美视频在线观看视频| 日韩一级片网址| 久久人人爽人人爽| 国产精品欧美在线| 日韩午夜在线观看视频| 91久久夜色精品国产网站| 欧美一级夜夜爽| 欧美日韩视频专区在线播放 | 欧美在线日韩在线| 欧美日韩性视频在线| 在线观看不卡av| 欧美在线免费| 欧美一区二粉嫩精品国产一线天| 欧美日韩视频在线第一区| 亚洲福利久久| 亚洲高清电影| 久久精品欧美日韩精品| 国产精品久久久久久久久婷婷 | 久久久中精品2020中文| 国产精品拍天天在线| 一本色道久久综合亚洲精品不| 亚洲精品欧美日韩| 免费观看国产成人| 伊人精品在线| 久久精品国产欧美激情| 欧美一区二区三区视频在线 | 欧美成年网站| 影音先锋亚洲视频| 亚洲二区视频在线| 久久伊伊香蕉| 激情成人亚洲| 亚洲福利视频专区| 久久亚洲综合| 伊人久久婷婷色综合98网| 亚洲成人自拍视频| 久久在线免费观看| 在线观看亚洲视频| 亚洲国产精品久久人人爱蜜臀| 久久亚洲私人国产精品va| 国产中文一区二区| 亚洲电影免费观看高清| 麻豆精品传媒视频| 亚洲高清不卡在线观看| 亚洲精品国产精品国自产观看| 麻豆成人小视频| 亚洲国产精品福利| 99精品欧美一区二区蜜桃免费| 欧美日本精品一区二区三区| 亚洲精品一区在线| 亚洲四色影视在线观看| 欧美三级不卡| 亚洲淫性视频| 久久av红桃一区二区小说| 国产亚洲一区精品| 亚洲国产精品久久久久秋霞蜜臀| 欧美 日韩 国产一区二区在线视频| 亚洲高清视频在线| aa级大片欧美| 国产精品久久久99| 香港成人在线视频| 久久午夜色播影院免费高清| 亚洲福利视频一区| 亚洲午夜女主播在线直播| 国产精品久久久久一区二区| 香蕉久久国产| 欧美.com| 宅男噜噜噜66国产日韩在线观看| 香蕉久久夜色| 黄色成人片子| 一区二区三区国产在线| 国产乱码精品一区二区三区不卡| 久久大香伊蕉在人线观看热2| 欧美成人精品高清在线播放| 9人人澡人人爽人人精品| 性欧美8khd高清极品| 激情五月综合色婷婷一区二区| 日韩视频永久免费| 国产精品网红福利| 91久久精品美女高潮| 欧美视频网站| 欧美与黑人午夜性猛交久久久| 欧美成人免费网站| 亚洲午夜一区二区| 麻豆精品在线视频| 国产精品99久久久久久久女警| 久久精品日韩一区二区三区| 亚洲精品1234| 久久9热精品视频| 亚洲精品在线三区| 欧美中文字幕在线播放| 亚洲黄色在线| 欧美综合第一页| 亚洲精品网站在线播放gif| 欧美一级二级三级蜜桃| 亚洲第一福利视频| 午夜精品福利在线观看| 亚洲大胆av| 久久福利毛片| 日韩午夜激情| 老司机一区二区三区| 亚洲图片欧美一区| 欧美电影专区| 久久成人综合视频| 国产精品激情电影| 91久久夜色精品国产九色| 国产女主播一区二区三区| 99日韩精品| 黄色成人精品网站| 性久久久久久| 亚洲日韩第九十九页| 久久久久综合网| 亚洲午夜一区| 欧美日韩第一区| 亚洲电影下载| 国产日韩精品在线| 一区二区不卡在线视频 午夜欧美不卡在| 国产亚洲观看| 午夜精品一区二区三区电影天堂| 亚洲国产精品www| 久久综合色天天久久综合图片|