国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的查表式運(yùn)算器的設(shè)計(jì)

2020-02-02 03:37金天星閔嘯
電子技術(shù)與軟件工程 2020年16期
關(guān)鍵詞:加法器計(jì)算器二進(jìn)制

金天星 閔嘯

(中國(guó)船舶重工集團(tuán)公司第七二三研究所 江蘇省揚(yáng)州市 225011)

電子計(jì)算器已經(jīng)變成現(xiàn)代人生活中不可缺少的工具,給人們的工作和生活帶來諸多便利。隨著人們對(duì)計(jì)算功能的要求越來越高,各種新型的技術(shù)也逐漸運(yùn)用到計(jì)算器運(yùn)算領(lǐng)域,當(dāng)前,基于FPGA的運(yùn)算系統(tǒng)應(yīng)用較為廣泛,在傳統(tǒng)的運(yùn)算技術(shù)上進(jìn)行了優(yōu)化,其計(jì)算時(shí)間更快,并且能處理更大量級(jí)的運(yùn)算,它不僅給人們帶來了很大的便利,還為現(xiàn)代人提供了更迅捷的計(jì)算速度,具有非常強(qiáng)大的運(yùn)算功能。

1 計(jì)算器運(yùn)算系統(tǒng)的總體設(shè)計(jì)

系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。此設(shè)計(jì)由計(jì)算部分、存儲(chǔ)部分、顯示部分和輸入部分組成。

1.1 計(jì)算器的計(jì)算部分

首先,該系統(tǒng)計(jì)算部分所采用是8 位或4 位二進(jìn)制的計(jì)算方式,這也是目前應(yīng)用較為廣泛的一種計(jì)算方式,其計(jì)算語言為VHDl 語言,通過VHDl 語言中的運(yùn)算符就能將各個(gè)數(shù)字之間的運(yùn)算銜接起來。然而,在計(jì)算器的顯示過程中,百位、十位、個(gè)位等必須都是分開顯示的,這就需要用到比較的方法去實(shí)現(xiàn)。當(dāng)然,采用VHDl語言進(jìn)行計(jì)算時(shí)只能處理以2 位除數(shù)的冪的除法,而不能處理除數(shù)是其它數(shù)字的運(yùn)算,此時(shí)就要求另外設(shè)計(jì)一個(gè)除法器來完成除法運(yùn)算,這個(gè)除法器所采用的是左移運(yùn)算和減法運(yùn)算等程序。

1.2 計(jì)算器的存儲(chǔ)部分

我們都知道計(jì)算器的存儲(chǔ)部分是非常的重要的,它主要有三個(gè)存儲(chǔ)器去實(shí)現(xiàn)它的計(jì)算的功能,包括:結(jié)果暫存器(ans)、輸入寄存器(reg)和內(nèi)部累加器(acc)等。通常,將輸在存放在輸入寄存器或內(nèi)部累加器中,第一次按下數(shù)字按鍵就能直接顯示個(gè)位,第二次按下數(shù)字按鍵時(shí)就表示此時(shí)輸入的是個(gè)位,而上一次輸入的十位,因此,第一次輸入的數(shù)字就必須乘以10,并與第二次輸入的數(shù)字進(jìn)行相加,得到的就是計(jì)算結(jié)果。同理,第三次按下數(shù)字按鍵時(shí),就要將第一次輸入的數(shù)字要乘以100,并與第二次輸入的數(shù)字乘以10 以及第一次輸入的數(shù)字進(jìn)行相加,得到最后的計(jì)算結(jié)果。

1.3 計(jì)算器的顯示部分

我們都知道計(jì)算出來的結(jié)果,一定要顯示在屏幕上,我們用的屏幕是Fede 的屏幕,這種屏幕功能是非常的強(qiáng)大的,能夠更好的顯示圖形和數(shù)字符號(hào)。該運(yùn)算系統(tǒng)采用的是二進(jìn)制運(yùn)算方式,用BCD 碼來詮釋輸出表達(dá)方式,因此,可以在FPGA 中運(yùn)用譯碼程序來實(shí)現(xiàn)。該系統(tǒng)選用共陽極七段譯碼管,當(dāng)需要顯示數(shù)字時(shí)對(duì)應(yīng)的管腳將切換到低電平,在輸出的過程中,按照從左到右、從高到低的順序,依次為g、f、e、d、c、b、a,其結(jié)構(gòu)圖如圖2。

通過查閱大量的數(shù)據(jù)我們編寫出相關(guān)的代碼,并且能夠更好的去實(shí)現(xiàn)功能。為了設(shè)計(jì)出計(jì)算器中的顯示功能,所采用的的七段譯碼器,同時(shí)運(yùn)用3 個(gè)七段譯碼器,依次顯示出百位、十位、個(gè)位。當(dāng)把第1 個(gè)數(shù)字輸進(jìn)去后,在按下第2 個(gè)數(shù)字之前,此時(shí)三個(gè)七段譯碼器都直接將第1 個(gè)數(shù)字顯示出來。當(dāng)輸入完第2 個(gè)數(shù)字后,則會(huì)直接將第2 個(gè)數(shù)字顯示出,然后,在按下第3 個(gè)數(shù)字之前,直接將前面兩個(gè)數(shù)字的運(yùn)算結(jié)果顯示出來,以此類推,最后按下等號(hào)鍵,其最終的運(yùn)算結(jié)果就快速顯示。

圖1:計(jì)算器的系統(tǒng)組成框圖

圖2:七段譯碼器的結(jié)構(gòu)

1.4 計(jì)算器的輸入部分

在生活中接觸計(jì)算器的次數(shù)較多,都知道計(jì)算器上的數(shù)字的一般都是都是10 個(gè)數(shù)字,通過這十個(gè)數(shù)字不斷的加減乘除,都可以計(jì)算出想要的結(jié)果,并顯示到計(jì)算器的顯示屏上。

在這次設(shè)計(jì)中,程序是非常的重要的,而設(shè)計(jì)科學(xué)的、合理的按鍵譯碼電路是計(jì)算器輸入部分的關(guān)鍵流程。其中,計(jì)算器的輸入部分包括0-9 等10 個(gè)數(shù)字符號(hào)、加減乘除等4 個(gè)運(yùn)算符號(hào)、1 個(gè)清零鍵、1 個(gè)等號(hào)鍵等。因此,就要求對(duì)每個(gè)按鍵進(jìn)行不同譯碼,保證按鍵數(shù)字的準(zhǔn)確性。

圖3:加法器仿真16+176=192

圖4:四位全減器的原理框圖

圖5:乘法器的原理框圖

2 計(jì)算器的VHDL設(shè)計(jì)

2.1 加法器的設(shè)計(jì)

本文設(shè)計(jì)的加法器運(yùn)算程序是多位加法器,能夠根據(jù)不同的進(jìn)位方式劃分成兩種類型,即并行進(jìn)位加法器和串行進(jìn)位加法器。其中,串行進(jìn)位加法器運(yùn)行原理為把多個(gè)一位全加器級(jí)聯(lián),低位全加器的進(jìn)位輸出送給相鄰高位全加器作為進(jìn)位輸入。顯而易見,該設(shè)計(jì)方式所需要的資源更少,并且思路非常簡(jiǎn)明,然而運(yùn)算的速度并不快。并行進(jìn)位方式的運(yùn)行原理為基于各位的加法程序的基礎(chǔ)上,添加進(jìn)位發(fā)生的邏輯電路,各位的進(jìn)位輸入信號(hào)都是同時(shí)出現(xiàn),這就可以保證各位能一起進(jìn)行全加加算,并顯示出計(jì)算結(jié)果。這種運(yùn)算方式需要的資源較多,運(yùn)算速度是非??斓?。特別在處理運(yùn)算位數(shù)增加的過程中,相比于串行進(jìn)位加法器,并行進(jìn)位加法器占用的資源更大。所以,在設(shè)計(jì)加法器時(shí),必要要全面對(duì)比資源占用量和運(yùn)算速度,盡可能地實(shí)現(xiàn)設(shè)計(jì)平衡。根據(jù)相關(guān)資料可知,在采用4位二進(jìn)制的方式進(jìn)行運(yùn)算時(shí),二者資源占用量基本一致。所以,就能夠?qū)蓚€(gè)4 位二進(jìn)制并行加法器級(jí)聯(lián)從而從此一個(gè)8 位二進(jìn)制加法器。

接下來,需要去詳細(xì)的分析這個(gè)程序的運(yùn)行過程,并通過仿真評(píng)定其準(zhǔn)確性和合理性。加數(shù)和被加數(shù)進(jìn)行相加,并且個(gè)位和十位、百位都是相對(duì)應(yīng)的,相加之后進(jìn)行四舍五入的方法總結(jié)出來的結(jié)果,并且把結(jié)果顯示到屏幕上去,這樣更加的直觀而和真實(shí)的地了解加法的計(jì)算結(jié)果。如圖3所示,能夠更好的讓我們分析十六進(jìn)制和八進(jìn)制的區(qū)別,能輕易分辨出二者是如何進(jìn)行運(yùn)算的,通過這種形式能夠讓我們通過仿真的方式進(jìn)行分析和驗(yàn)證,最重要的是可以得出正確的仿真結(jié)果,也就表明設(shè)計(jì)出的加法運(yùn)算器非常的成功。

2.2 減法器的設(shè)計(jì)

上文我們已經(jīng)介紹了加法的運(yùn)算器的運(yùn)行的原理。接下來我們就介紹減法的運(yùn)算器的原理,其實(shí)加法的運(yùn)算器的原理和減法運(yùn)算器的原理都是相通的,它們都是一樣的,都是通過數(shù)字與數(shù)字進(jìn)行相減,個(gè)位和個(gè)位相減、十位和十位相減、千位和千位相減,直接將運(yùn)算的結(jié)果顯示出來,具體的流程圖、原理圖,如圖4所示。

2.3 乘法器的設(shè)計(jì)

乘法的運(yùn)算器是非常難以解決的,所需要的步驟也是非常多的,通過移位的方式去實(shí)現(xiàn)相關(guān)的運(yùn)算。在數(shù)字系統(tǒng)中,乘法器屬于基本的邏輯器件,并且在應(yīng)用過程中會(huì)發(fā)生不同類型的濾波器的設(shè)計(jì)、矩陣的運(yùn)算等。本文所設(shè)計(jì)的乘法器程序是4×4,最終得出了乘法運(yùn)算器的原理的框圖如5 所示。

2.4 除法器的設(shè)計(jì)與仿真

除法運(yùn)算器實(shí)在移位和連減的基礎(chǔ)上完成的,而連減實(shí)際上也是基于數(shù)學(xué)上除法的基本原理。由于運(yùn)算方式采用的是二進(jìn)制,就能夠進(jìn)行移位操作。該計(jì)算器所采用的除法器運(yùn)用了一個(gè)可以控制移位的控制器,再加上由全加器組成的4 位減法器。當(dāng)做完減法,需要再次判斷是否夠減,也就是判斷有沒有發(fā)生錯(cuò)位,如果不夠減,需要將被減數(shù)進(jìn)行恢復(fù),移一位再減。

3 總結(jié)

本次研究是采用FPGA(現(xiàn)場(chǎng)可編程邏輯器件)來設(shè)計(jì)查表式運(yùn)算器的,所采用的的語言包括VHDL,并進(jìn)行編程程序,最后也運(yùn)用Quartus Ⅱ軟件進(jìn)行仿真。雖然運(yùn)算器的功能不強(qiáng),只是簡(jiǎn)單的運(yùn)算功能,但采用諸多編程技術(shù),經(jīng)過經(jīng)過外接鍵盤輸入、LED數(shù)碼顯示來達(dá)到和完成運(yùn)算目標(biāo)。

猜你喜歡
加法器計(jì)算器二進(jìn)制
分段式高性能近似加法器設(shè)計(jì)
用二進(jìn)制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
有趣的進(jìn)度
[計(jì)算器不是萬能的]
二進(jìn)制在競(jìng)賽題中的應(yīng)用
一種混合結(jié)構(gòu)的新型近似加法器
通用加法器的邏輯實(shí)現(xiàn)與分析
三旋光結(jié)構(gòu)一步無進(jìn)位加法器的設(shè)計(jì)
一個(gè)損壞的計(jì)算器
一個(gè)損壞的計(jì)算器
嘉峪关市| 海淀区| 开原市| 嘉祥县| 崇州市| 沭阳县| 印江| 荣昌县| 荣成市| 普安县| 方城县| 西畴县| 清苑县| 阜阳市| 兴宁市| 巴中市| 楚雄市| 永靖县| 永仁县| 大埔县| 灵山县| 花垣县| 阳东县| 玉山县| 二连浩特市| 东乡县| 河北省| 弥勒县| 松滋市| 石家庄市| 成都市| 五寨县| 廉江市| 北宁市| 元谋县| 武清区| 鄂托克旗| 临安市| 多伦县| 忻州市| 杂多县|