基于FPGA的查表式運(yùn)算器的設(shè)計(jì)與仿真_第1頁(yè)
基于FPGA的查表式運(yùn)算器的設(shè)計(jì)與仿真_第2頁(yè)
基于FPGA的查表式運(yùn)算器的設(shè)計(jì)與仿真_第3頁(yè)
基于FPGA的查表式運(yùn)算器的設(shè)計(jì)與仿真_第4頁(yè)
基于FPGA的查表式運(yùn)算器的設(shè)計(jì)與仿真_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、北方民族大學(xué)本科畢業(yè)論文(設(shè)計(jì))題目:基于FPGA勺查表式運(yùn)算器的設(shè)計(jì)與仿真院(系)名稱:電氣信息工程學(xué)院學(xué)生姓名:黃斯洲學(xué)號(hào):20130575專業(yè):電子信息工程指導(dǎo)教師姓名:張廣忠論文提交時(shí)間:北方民族大學(xué)教務(wù)處制隨著我國(guó)的經(jīng)濟(jì)的發(fā)展,人們要求計(jì)算的方法更好簡(jiǎn)單和方便,尤其是在計(jì)算這個(gè)方面,所以對(duì)于運(yùn)算器的設(shè)計(jì)是非常的重要的,所以為了更好的設(shè)計(jì)該設(shè)計(jì)采用了現(xiàn)場(chǎng)可編程邏輯器件FPG破計(jì),并基于硬件描述語(yǔ)言VHD故Altera公司的QuartusII軟件上實(shí)現(xiàn)仿真。系統(tǒng)由計(jì)算部分、存儲(chǔ)部分、顯示部分和輸入部分四個(gè)部分組成,計(jì)算部分為加法器、減法器、乘法器和除法器,存儲(chǔ)部分需要3個(gè)存儲(chǔ)器來(lái)實(shí)現(xiàn):內(nèi)

2、部累加器(acc)、輸入寄存器(reg)以及結(jié)果暫存器(ans)。顯示部分由四個(gè)七段譯碼管組成,分別來(lái)顯示輸入數(shù)字,輸入部分采用外接鍵盤,由09十個(gè)數(shù)字按鍵,加減乘除四個(gè)運(yùn)算符按鍵,一個(gè)等號(hào)按鍵和一個(gè)清零按鍵組成的。通過(guò)外部的按鍵可以完成四位數(shù)之內(nèi)的加、減、乘、除四種功能運(yùn)算,其結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn)。關(guān)鍵詞:FPGAVHDL計(jì)算器AbstractThisarticledescribesthedesignofasimplecalculator,thedesignusesFieldProgrammableGateArrayFPGAbasedonVHDLhardwaredescriptionlangu

3、agetodesignandAltera'sQuartusninsoftwareforemulation.Thissystemiscomponenttedbythecalculationsection,storagesection,displayandinputsectionofthefourparts,thecomputingpartincludeadder,subtractor,multiplieranddivider,Storagepartneedsthreememorytohelpachieved:internalaccumulator(acc),inputregister(r

4、eg)aswellastheresultsofregisters(ans).Displaypartismadeupthreedecoderof7sections,respectivelytoshowthenumberofinput.Inputparthastennumberkeys,from0-9,alsohasadditionandsubtractionandmultiplicationanddivisionarithmeticoperatorkeys,abuttonandofequalsignandtheclearkey.Buttonscanbedonethroughexternalwit

5、hinthefour-digit'add','subtract','multiple','divede'thefourkindsoffunctionaloperations,itsstructureissimpleandeasytoimplement.Keywords:FPGA;VHDL;calclute第一章引言11.1 課題研究的目的與意義11.2 國(guó)內(nèi)外發(fā)展現(xiàn)狀11.3 課題的主要技術(shù)路線2第二章FPGA技術(shù)及硬件描述語(yǔ)言32.1 FPGA技術(shù)的發(fā)展現(xiàn)狀及與CPLD勺比較32.2 FPGA設(shè)計(jì)方法42.3 利用硬件描述語(yǔ)言(

6、HDL的硬件電路設(shè)計(jì)方法52.4 VHDL語(yǔ)言的特點(diǎn)62.5 QuartusR概述及其設(shè)計(jì)流程6第三章系統(tǒng)總體設(shè)計(jì)83.1 計(jì)算器的計(jì)算部分83.2 計(jì)算器的存儲(chǔ)部分83.3 計(jì)算器的顯示部分93.4 計(jì)算器的輸入部分10第四章計(jì)算器的VHD毆計(jì)114.1 加法器的設(shè)計(jì)與仿真114.2 減法器的設(shè)計(jì)與仿真134.3 乘法器的設(shè)計(jì)與仿真144.4 除法器的設(shè)計(jì)與仿真15第五章結(jié)束語(yǔ)16參考文獻(xiàn)17附錄18II第一章引言1.1 課題研究的目的與意義在人類學(xué)會(huì)買賣的時(shí)分,計(jì)算也隨之爆發(fā),而算盤成為計(jì)算最適用的工具存在了幾千年。算盤也叫珠算,是中國(guó)人民發(fā)明的一種計(jì)算用具,古代時(shí)有中國(guó)的計(jì)算機(jī)”的稱號(hào)。

7、算盤產(chǎn)生在我國(guó)漢代的前期,是由古代的籌算”演化變成的,珠算這個(gè)詞語(yǔ),最早出現(xiàn)在漢末的三國(guó)演義時(shí)代的徐岳撰的數(shù)術(shù)記遺里,有一句敘述珠算,控帶四時(shí),經(jīng)緯三才”是出自出本里的。乘除通變算寶是南宋數(shù)學(xué)家楊輝的,里面有九歸”的口訣,劉因是元代人,也作了一首算盤的詩(shī)句,吳敬是明代人,他的的九章詳注比類算法大全里寫有珠算的大部分有關(guān)算法。在明清的時(shí)候,人們對(duì)算盤的運(yùn)用就非常多,而對(duì)于算盤的制作大小,明萬(wàn)歷年間的柯尚遷寫的數(shù)學(xué)通軌里記載了13檔算盤的圖片,上有2珠,下有5珠,樣似長(zhǎng)方形,四周都是木框,里面有一個(gè)軸心,人們都叫作檔”,檔的中間是用一根橫木來(lái)分隔開來(lái),運(yùn)算的時(shí)候在確定位置后撥動(dòng)珠字來(lái)進(jìn)行計(jì)算。起初

8、出世的每一種規(guī)格的算盤,全部在這個(gè)基礎(chǔ)上發(fā)展起來(lái)。算盤的結(jié)構(gòu)鑄造十分簡(jiǎn)單,不僅便于掌握,而且使用的時(shí)候也很便利,它變成了計(jì)算和理財(cái)不能缺少的其中一種工具。算盤的傳入是從明代開始,它來(lái)自朝鮮和日本等一些國(guó)家。清代的時(shí)候算盤根據(jù)經(jīng)濟(jì)和文化的交流被傳進(jìn)東南亞每個(gè)國(guó)家,在第二次世界大戰(zhàn)結(jié)束后,美國(guó)在日本引入了一些算盤,看得出來(lái)算盤在現(xiàn)代人的生活里擁有非常重要的作用,無(wú)論是大商人或者是小商人都會(huì)通過(guò)運(yùn)用小算盤來(lái)計(jì)算。不過(guò)根據(jù)人類文明的發(fā)展與現(xiàn)代科學(xué)技術(shù)的一直進(jìn)步。算盤慢慢變成越來(lái)越不能滿足一部分高強(qiáng)度和高難度與高速度的非常復(fù)雜的一種計(jì)算。就在這時(shí),一種新型的電子類產(chǎn)品出世了,我們都叫它電子計(jì)算器。電子計(jì)

9、算器是一種跨越了一個(gè)時(shí)代的偉大發(fā)明,比其算盤來(lái),它的計(jì)算速度要快幾百甚至幾千倍,電子計(jì)算器的計(jì)算的結(jié)果也要比算盤更具精確度,它操作得非常方便,容易學(xué)會(huì),它的計(jì)算的范圍非常廣泛,而且很靈巧,便于攜帶出門。電子計(jì)算器已經(jīng)變成現(xiàn)代人生活中不可減少的計(jì)算用器,它給我們的生活帶來(lái)了很大的便利。并且根據(jù)計(jì)算機(jī)的流行,更多的人在運(yùn)用計(jì)算機(jī),更多的工作都和計(jì)算機(jī)密不可分,也就是說(shuō)計(jì)算機(jī)慢慢變成現(xiàn)代社會(huì)中不可缺少的計(jì)算用具,并且電子計(jì)算器擁有的功能也通過(guò)軟件的形式使用到計(jì)算機(jī)里的軟件世界里,它不僅給人們帶來(lái)了很大的便利,還為現(xiàn)代人提供了更迅捷的計(jì)算速度,縮短了計(jì)算時(shí)間,和具有非常強(qiáng)大的運(yùn)算功能。1.2 國(guó)內(nèi)外發(fā)

10、展現(xiàn)狀(1)國(guó)外情況如今在國(guó)外,集成電路出世后,電子計(jì)算器只用僅僅幾年功夫就達(dá)成了一種技術(shù)發(fā)展,通過(guò)猛烈的市場(chǎng)競(jìng)爭(zhēng),如今的計(jì)算器技術(shù)就非常成熟。計(jì)算器已漸漸地脫離原本的輔佐計(jì)算工具”的功用定位,正往著多功能化和可編程化的目的發(fā)展,在各個(gè)范圍都得到了普遍的使用。計(jì)算器不但能夠完成各種各樣復(fù)雜的數(shù)學(xué)計(jì)算還能夠來(lái)編制和運(yùn)行程序,方程組也可以用來(lái)解決,圖形計(jì)算器也能用圖形解決。計(jì)算器的一些內(nèi)置軟件也容許用戶使用一些類似于對(duì)計(jì)算機(jī)的文件與目錄管理等操縱,同意用戶自行定制圖形界面,此時(shí)每一種新的技術(shù)也被使用到計(jì)算器里讓計(jì)算器功能更加強(qiáng)大。也就是說(shuō),電子計(jì)算器也能被稱為微微型”的計(jì)算機(jī)。(2)國(guó)內(nèi)情況在國(guó)內(nèi)

11、,有廠商也使用計(jì)算器芯片來(lái)發(fā)明新的產(chǎn)品,不過(guò)針對(duì)計(jì)算器技術(shù)的鉆研和計(jì)算器的芯片的設(shè)計(jì)現(xiàn)在還是起步的階段。計(jì)算”是計(jì)算機(jī)的最主要公用,我們可以把它叫做低檔計(jì)算器就算是關(guān)于這種計(jì)算器,大部分廠家和商人也僅僅工作在組裝計(jì)算器和銷售的業(yè)務(wù)。一部分IC設(shè)計(jì)公司和芯片的供應(yīng)商人也開始慢慢鉆研和學(xué)習(xí)計(jì)算器技術(shù)。1.3 課題的主要技術(shù)路線這次實(shí)驗(yàn)是做基于現(xiàn)場(chǎng)可編程邏輯器件FPGA來(lái)進(jìn)行設(shè)計(jì),不僅是運(yùn)用了硬件描述語(yǔ)言VHDL,還編程,并且在Altera公司的QuartusII軟件上完成了仿真。我們還必須實(shí)現(xiàn)進(jìn)行計(jì)算器的一部分常用到的運(yùn)算功能,經(jīng)過(guò)外接鍵盤輸入、LED數(shù)碼顯示來(lái)達(dá)到和完成運(yùn)算目標(biāo)。第二章FPGA技

12、術(shù)及硬件描述語(yǔ)言2.1FPGA技術(shù)的發(fā)展現(xiàn)狀及與CPLD的比較(1) FPGA技術(shù)的發(fā)展現(xiàn)狀FPGA是把英文FieldProgrammableGateArray的縮寫,也就是現(xiàn)場(chǎng)可編程門陣列,它是在CPLD和GAL與PAL等可編程器件的根本上更深入發(fā)展的產(chǎn)物。FPGA是作為專用集成電路(ASIC)領(lǐng)域中出現(xiàn)的的一種半定制電路,不但處理了定制電路的缺乏,還克服了原本存在的可編程器件門電路數(shù)有限的幾個(gè)缺點(diǎn)。FPGA使用了邏輯單元陣列LCA(LogicCellArray)這個(gè)概念,它還包含可配置邏輯模塊CLB(ConfigurableLogicBlock),輸入輸出模塊IOB(InputOutput

13、Block)和內(nèi)部連線(Interconnect:)三個(gè)內(nèi)部局部。FPGA的基本特點(diǎn)主要有:i .采納FPGA設(shè)計(jì)ASIC電路,用戶不需要投片消費(fèi),就能獲得合用的芯片。ii .FPGA能做其它全定制或者半定制ASIC電路的測(cè)試樣片。iii .FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。iv.FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。v.FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。RAM中的程序是用來(lái)設(shè)置FPGA工作狀態(tài)的,它存放在片內(nèi)RAM的程序里,因而,工作時(shí)就得對(duì)片內(nèi)的RAM進(jìn)行編程。用戶也能隨著不同的配置方式,使用不同的編程方法。加電

14、時(shí),片內(nèi)編程RAM被FPGA芯片讀入一些EPROM中的一些數(shù)據(jù),在配置完成后,F(xiàn)PGA就進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因而,F(xiàn)PGA能使用很多次。FPGA的編程不需要專用的FPGA編程器,只要通用的EPROM、PROM編程器就可以。當(dāng)必要改正FPGA性能的時(shí)候,只要換一片EPROM就可以了。同一片F(xiàn)PGA,不同的編程數(shù)據(jù),能夠發(fā)生差別的電路性能。因而,F(xiàn)PGA的運(yùn)用十分靈便。FPGA和DSP處理器還相對(duì)應(yīng),盡管DSP處理器速度非常快,還對(duì)許多DSP運(yùn)用來(lái)說(shuō)很有用,不過(guò)還有一些應(yīng)用要求功能需要再一步提高,而且FPGA還提供了更高的功能。FPGA能夠生成一個(gè)定制硬件設(shè)

15、計(jì),控制邏輯可以實(shí)現(xiàn)在硬件中,不用再使用精確的時(shí)鐘周期來(lái)實(shí)現(xiàn)控制功用。另外,經(jīng)過(guò)縮小硬件的框架,F(xiàn)PGA還能夠供應(yīng)額定的3功能。假如,速度是最關(guān)鍵的設(shè)計(jì)思考原因,這樣一來(lái)我們能夠在FPGA中設(shè)計(jì)一個(gè)齊全并行的算法解決方法。如今,諸多系統(tǒng)都包含了一個(gè)FPGA,用于膠合邏輯和協(xié)議轉(zhuǎn)換或者一些其它系統(tǒng)功用。假如,那FPGA沒(méi)有被全部運(yùn)用,那可以把DSP功能加入里面,能夠?yàn)橄到y(tǒng)節(jié)省一部分成本。并且假如標(biāo)準(zhǔn)產(chǎn)生了一些變化,F(xiàn)PGA的運(yùn)用就不會(huì)有一切風(fēng)險(xiǎn)。FPGA的配置文件可以升級(jí),就像一個(gè)軟件一樣,雖然它們必需被存儲(chǔ)在系統(tǒng)的非易失性存儲(chǔ)器中。目前,F(xiàn)PGA設(shè)計(jì)的設(shè)計(jì)方法,通常使用的是Top-down(自

16、頂向下)。系統(tǒng)被分成各個(gè)功能子模塊,在系統(tǒng)級(jí)層次上使用行為描述,再對(duì)這些子模塊進(jìn)一步使用行為描述。(2) FPGA與CPLD的比較FPGA簡(jiǎn)要稱呼叫現(xiàn)場(chǎng)可編程邏輯門陣列,它是電子設(shè)計(jì)的一個(gè)里程碑。CPLD的簡(jiǎn)要稱呼叫復(fù)雜可編程邏輯器件。雖然FPGA和CPLD一起都是可編程ASIC器件,有很多共同特性,但由于CPLD和FPGA構(gòu)造上的差異,具備各自的特性:1.CPLD更合適實(shí)現(xiàn)各種算法和組合邏輯,F(xiàn)PGA更合適在完成時(shí)序邏輯。換個(gè)說(shuō)法,F(xiàn)PGA更合適在觸發(fā)器豐富的構(gòu)造,而CPLD更合適在觸發(fā)器有限且乘積項(xiàng)很豐富的構(gòu)造。2 .這種形式的集成度是非常的高的,并且它內(nèi)部的結(jié)構(gòu)和邏輯性也是非常的好的,受

17、了廣大的電子器件兒人們的喜歡。3 .運(yùn)行的速度比現(xiàn)在業(yè)界上最快的DSP芯片還要快,是非常的快的。4 .在這種形式的使用方面,他也是非常的好的,她沒(méi)有外部的存儲(chǔ)芯片,使用著操作起來(lái)也非常的簡(jiǎn)單。5 .這種芯片它的運(yùn)行的速度也是非常的快的。能在很多的時(shí)間真之內(nèi)運(yùn)行出來(lái)很多的程序使用度非常的高。6 .在編程方面可編程度是非常的好的,通過(guò)這些程序員可以把自己的程序?qū)戝e(cuò)時(shí)他可以隨意的進(jìn)行改正的,并且這種部件兒在運(yùn)行的過(guò)程中中如果在斷電的時(shí)候里邊存儲(chǔ)的信息也不會(huì)丟失他能更好地去保存出來(lái)功能是非常的強(qiáng)大的7 .2FPGA設(shè)計(jì)方法在這個(gè)軟件進(jìn)行設(shè)計(jì)是中號(hào),他有很多的規(guī)則,如果成員更好地掌握了這些規(guī)則,他能夠使

18、用起來(lái)非常的方便,他并且是功能非常的強(qiáng)大的更好的去運(yùn)行程序。我們知道應(yīng)下系統(tǒng)對(duì)于一個(gè)系統(tǒng)來(lái)說(shuō)是非常的重要的,它可以根據(jù)重新進(jìn)行實(shí)現(xiàn)功能,它通常是欲望算法來(lái)實(shí)現(xiàn)的。又要能夠讓每個(gè)各部件都能更好地實(shí)現(xiàn)出什么工程?2從系統(tǒng)方面分析它可以加上哥哥模塊兒進(jìn)行組合起來(lái),讓哥哥摸罐進(jìn)行時(shí)間他索要要求的工程,并且它對(duì)要求高頻率會(huì)紅,夜宵的模塊兒更加的實(shí)用。但是對(duì)于功能比較強(qiáng)大的模塊兒它也能更好地使用,有利于程序進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)。3這個(gè)系統(tǒng)運(yùn)行的速度是非??斓?,他每秒鐘能時(shí)間3000萬(wàn)。非常的方便與實(shí)用它的體積是非常小的,能融合到各個(gè)單片機(jī)中旭能配合好,單片機(jī)更好的去工作。他的工作效率也是非常的高的不能和任何程序

19、,靜靜充足,他的準(zhǔn)確性高,受到了廣大程序員的喜歡。由于它的芯片是非常的小的可以更好的切入到單片機(jī)中,去輔助單片機(jī)更好的進(jìn)行工作。4同步說(shuō)句在這方面也是非常的重要的他能跟工程同步到這個(gè)程序運(yùn)行起來(lái),這個(gè)功能也發(fā)揮著巨大的作用,它同步的效果是非常的高的。有趣的是,在師宗方便它的經(jīng)文確定也是非常的準(zhǔn)的。老婆更好的去采集數(shù)據(jù),這樣把臺(tái)積出來(lái)的,輸液更好的分析出來(lái),得到結(jié)果然后配合系統(tǒng)去執(zhí)行相關(guān)的木命令把幾個(gè)模塊兒更好的整合出來(lái)。8 .3利用硬件描述語(yǔ)言(HDL)的硬件電路設(shè)計(jì)方法硬件兒的編程的語(yǔ)言是非常的重要的,可以通過(guò)這一個(gè)語(yǔ)言讓硬件兒和硬件進(jìn)行交流,明白這個(gè)硬件發(fā)出了是什么命令,并且配合區(qū)執(zhí)行其他

20、相關(guān)的命令,好比也是,人和人之間的說(shuō)話,它能更好的去溝通了解人所能表達(dá)出來(lái)的意思應(yīng)該是家的語(yǔ)言,他也是這樣的,這個(gè)軟件所采用的語(yǔ)言是VACdAC于二這種雨呀功能是非常的強(qiáng)大的收到了國(guó)代變成舍得,喜歡接下來(lái)我介紹這桌描述語(yǔ)言的幾個(gè)特點(diǎn),他們是怎么更好地輔助電路去工作的。1他的方向二是自上向下的,這樣有利于編程語(yǔ)言的能夠一步一步的進(jìn)行,實(shí)現(xiàn)功能是非常的方便的。2由于我國(guó)制作芯片的廠家是非常的多的,他們所使用的軟件都可以支持這種H直接一次語(yǔ)言,所以這種語(yǔ)言在適應(yīng)很多種軟件,硬件的設(shè)計(jì)人員也非常喜歡這種語(yǔ)言,因?yàn)樗怯枚挤浅5拇?,并且體積小,更容易切入到單片機(jī)中去,能夠更好的企業(yè)設(shè)計(jì),并且更加的合理。

21、店家收到了很大的設(shè)計(jì)人員的喜歡。3這種軟件還能夠更好的進(jìn)行仿真,通過(guò)仿真能知道這些程序?qū)崿F(xiàn)的是什么功能,并且對(duì)每個(gè)功能進(jìn)行詳細(xì)的分析。更好地找到錯(cuò)誤,并且。開發(fā)出來(lái)的功能,大大的提高了工作的效率。也降低的硬線使用的頻率。難度使廣大的硬件設(shè)計(jì)人員喜歡她也大大的提高了工作的效率這種啊,軟件是非常的好的。5他的設(shè)計(jì)文件是用這種語(yǔ)言編寫的源程序通過(guò)這種現(xiàn)象可以看出這種。語(yǔ)言要掛房子是用在哥哥方面。通過(guò)用這種程序編程出來(lái),然后發(fā)站出來(lái)電路圖,通過(guò)這些電路圖可以更好的找到解決的方法,知道什么地方是錯(cuò)誤的,并且能在很多的時(shí)間進(jìn)行改正出來(lái),收到了過(guò)完那的營(yíng)銷人員咋喜歡這種方式也更加方便。硬件設(shè)計(jì)人員去閱讀它,

22、去了解它。一眼就能看的出來(lái),這個(gè)程序編程有什么問(wèn)題,有什么優(yōu)點(diǎn)可以方便去改正。9 .4VHDL語(yǔ)言的特點(diǎn)VHDl與安生非常的厲害的,受到了廣大硬件人員的喜歡它的結(jié)構(gòu)非常的嚴(yán)謹(jǐn),操作起來(lái)也非常的簡(jiǎn)單,所以受到了硬件人員的喜歡,接下來(lái)我解詳細(xì)的介紹它的急個(gè)特點(diǎn),他是怎么更好地輔助硬件系統(tǒng)進(jìn)行工作的,她不要和其他的硬件語(yǔ)言一樣。他大范圍也是非常大的功能也是非常的大的,超過(guò)了其他軟件的編程語(yǔ)言,他比Java更佳的簡(jiǎn)單,比C語(yǔ)言更加的強(qiáng)大,所以很多的硬件設(shè)計(jì)人員喜歡用它。在這個(gè)編程的語(yǔ)言中,他還可以創(chuàng)造出來(lái)很大的系統(tǒng),有些事在變成函數(shù)的時(shí)候我們都知道變成函數(shù)是非常復(fù)雜的,但是用這種語(yǔ)言進(jìn)行編程式分享的,

23、簡(jiǎn)單的他能夠很準(zhǔn),在很短的時(shí)間進(jìn)行月行把自己想要表達(dá)的函數(shù)進(jìn)行表達(dá)出來(lái)。不用寫這種語(yǔ)言能夠隨時(shí)的調(diào)用其他模塊兒的內(nèi)容,他的銜接,都是非常的好的,能與哥哥麼會(huì)進(jìn)行交通和溝流,就向人和人進(jìn)行語(yǔ)言交流一樣,當(dāng)一個(gè)軟件的我被發(fā)射出命令的時(shí)候,另一個(gè)軟件模塊進(jìn)行接收,他能更好地讀懂它,是什么的意思,能夠去執(zhí)行這項(xiàng)任務(wù)。所以說(shuō)他的工程師非常早,強(qiáng)大的受到了很多硬件人員咋喜歡他們,非常喜歡用這種程序語(yǔ)言去進(jìn)行編程。這種編程語(yǔ)言是相互獨(dú)立的,他能更好的和其他的語(yǔ)言進(jìn)行區(qū)分。不會(huì)受到任何變成語(yǔ)言的。干擾能夠更好地掌握編程的準(zhǔn)確性。這種語(yǔ)言的生命周期是非常的長(zhǎng)的,她不會(huì)隨時(shí)對(duì)軟件的更新而改變錯(cuò)誤,他從開發(fā)到現(xiàn)在已

24、經(jīng)有了80年的歷史,在這個(gè)歷史的演變的過(guò)程中,經(jīng)過(guò)不斷的開發(fā)和演變,他慢慢的成長(zhǎng)起來(lái),受到了廣大程序人員的喜歡。10 5QuartusH概述及其設(shè)計(jì)流程這種軟件是非常高智能的,它能夠?qū)D形以及視頻進(jìn)行方進(jìn)行演示,并且把所有的程序。進(jìn)行仿真出來(lái)很好的發(fā)現(xiàn)出什么地方出現(xiàn)問(wèn)題,并且它出它運(yùn)行的速度是非常的快的使用的街面也是非常的簡(jiǎn)單的適用于初學(xué)者的使用。這種軟件是由德國(guó)科學(xué)家西門子洛夫斯基研發(fā)出來(lái)的,他剛開始研發(fā)這款軟件的時(shí)候,就是為了解決編程的問(wèn)題,在他不斷的努力進(jìn)行研發(fā)的過(guò)程中,終于研發(fā)出來(lái)了,這款軟件這種國(guó)產(chǎn)軟件的工廠是非常的強(qiáng)大的,受到了廣大人們的喜愛。并且這種軟件的設(shè)計(jì)邏輯已設(shè)計(jì)環(huán)境都是非

25、常簡(jiǎn)單的,并且工程非常的強(qiáng)大,能夠使使用者一眼就能看的出來(lái)他具有什么作用,能夠讓使用者更好地進(jìn)行操作。并加他運(yùn)行的環(huán)境可以支持多種環(huán)境,避免了單一的環(huán)境給程序員帶來(lái)的煩惱。他的編程的能力也是非常的大的,通過(guò)編程,它可以運(yùn)行出來(lái)程序所要顯示的功能大大的提高了調(diào)試的能力,并且支持很多的插件兒直接插墊是用來(lái)干什么的,這些插件兒主要的增加了軟件的功能,比如畫圖仿真或者是語(yǔ)言或者是視頻這種功能都是非常的氣。非常的強(qiáng)大的,受到了硬件兒變成語(yǔ)言的喜歡,所以這種軟件是越來(lái)越流行的。2接下來(lái)我就想起咋去設(shè)計(jì)這款軟件怎么進(jìn)行設(shè)計(jì)的流程,怎么去運(yùn)營(yíng)它,首先要在這個(gè)軟件上建立新的工程,你把這個(gè)工程建立好了就跟把自己要

26、建立的項(xiàng)目進(jìn)行合理的去命運(yùn)了,給自己的項(xiàng)目起一個(gè)名字,這個(gè)名字命名的時(shí)候一定要以英文字母去開頭,因?yàn)檫@款軟件是y。是外國(guó)人進(jìn)行設(shè)計(jì)的,一定要遵循這種命名的方法,等我們建立了這個(gè)。工程之后就應(yīng)該選擇自己所需要的模塊兒,在這個(gè)軟件中他的魔罐是非常的多的,咱們使用起來(lái)也非常的簡(jiǎn)單和方便。根據(jù)子,我們的需要進(jìn)行選擇模塊兒,并且知道每個(gè)模塊兒之家。有什么作用的充分的利用他們的作用進(jìn)行變成這樣,能夠更好的去分析和發(fā)現(xiàn)變成中出現(xiàn)的錯(cuò)誤能夠更好地改正出來(lái),當(dāng)我們運(yùn)行的過(guò)程中就進(jìn)行編譯,編譯出是不是他們有錯(cuò)誤,是不是能夠正常的進(jìn)行編程,編程也是非常的重要的,通過(guò)編程我們能知道我們所。說(shuō)做創(chuàng)的程序是不是能夠正常的

27、演示出來(lái),如果能演示出來(lái),我們就能夠發(fā)現(xiàn)我們做出來(lái)的程序所要表達(dá)的功能是不是和我們所要表達(dá)的功能是不是一樣及時(shí)的發(fā)現(xiàn)問(wèn)題并能更好的及時(shí)的去解決問(wèn)題,這樣是非常的好的。仿真的時(shí)候一定要知道網(wǎng)絡(luò)是不是正常的連接,如果網(wǎng)絡(luò)不能正常的了。了解就需要及時(shí)的改正仿真,所以說(shuō)是非常的重要的,一定要記住自己文件的擴(kuò)展名要合理的運(yùn)用這種擴(kuò)展并如果擴(kuò)展名錯(cuò)誤了這種仿真也不能夠更好的防震出來(lái),他們會(huì)出現(xiàn)很多的錯(cuò)誤。如果仿真的時(shí)候出現(xiàn)了錯(cuò)誤,這個(gè)軟件會(huì)出現(xiàn)很多的代碼,他說(shuō)他能夠告訴你。是什么地方出現(xiàn)錯(cuò)誤,他能方便的,告訴你什么地方出現(xiàn)了錯(cuò)誤之后你能更好地發(fā)現(xiàn)問(wèn)題更好的去解決問(wèn)題。第三章系統(tǒng)總體設(shè)計(jì)系統(tǒng)總體設(shè)計(jì)框圖如圖

28、3,1所示。此設(shè)計(jì)由計(jì)算部分、存儲(chǔ)部分、顯示部分和輸入部分組成。圖3.1計(jì)算器的系統(tǒng)組成框圖3.1 計(jì)算器的計(jì)算部分接下來(lái)我們就分些這個(gè)計(jì)算機(jī)也得計(jì)算的不穩(wěn),他是怎么通過(guò)計(jì)算的方式進(jìn)行計(jì)算的,他是一般是通過(guò)八杯或者四杯的20斤是進(jìn)行計(jì)算的我們都很熟悉這種語(yǔ)言,并且用這種VHDI語(yǔ)言進(jìn)行把這種程序更二的解決出來(lái)更好的預(yù)算裝出來(lái)具體的算法,我們上面都跟網(wǎng)的。據(jù)介紹了,他不能進(jìn)。進(jìn)行人也數(shù)的除法,但是他能夠更好的進(jìn)行任意數(shù)的加法,減法,這都是沒(méi)有任何問(wèn)題的,他能更好地進(jìn)行繼續(xù)計(jì)算,所以工程是非常的強(qiáng)大的。3.2 計(jì)算器的存儲(chǔ)部分我們都知道計(jì)算器的存儲(chǔ)不分是非常的重要的,他主要有三個(gè)存儲(chǔ)蓄業(yè)去實(shí)現(xiàn)它計(jì)

29、算的工程。在做Java的時(shí)候,他使用的是內(nèi)部累加器侄兒個(gè)累加器能夠更好的進(jìn)行加法的運(yùn)算,輸出寄存器也是能夠更好地去存儲(chǔ)相關(guān)的敘述句,將這些數(shù)據(jù)進(jìn)行更好的及存儲(chǔ)能夠更好的進(jìn)行運(yùn)算。結(jié)果在實(shí)際也是非常的重要的可以把結(jié)果暫存器進(jìn)行合理的運(yùn)用起來(lái),讓上面相加的結(jié)果進(jìn)行存著,然后再進(jìn)行的加減乘除,這樣都是非常的好的,非常的快的。3.3 計(jì)算器的顯示部分我們都知道計(jì)算出來(lái)的結(jié)果,一定要顯示在屏幕上,我們用的屏幕是Fede的屏幕,這種屏幕功能是非常的強(qiáng)大的,能夠非常更好的顯示圖形以及聲音的制作他需要的是BCD碼,這種BCD嗎?是非常的好的,能夠把自己的編譯的程序在這兒款軟件中更好的實(shí)踐,他是通過(guò)高低電平去控

30、制數(shù)碼管兒的陰陽(yáng)兩極。能夠更好的分析數(shù)字進(jìn)行加減乘除方便,運(yùn)算編程的程序,也是非常的高的,所以受到了廣大程序人員的喜歡。七段譯碼器的基本結(jié)構(gòu)如圖3,2所示。afbgecd圖3,2七段譯碼器的結(jié)構(gòu)通過(guò)查閱大量的數(shù)據(jù)我們可以得出以下的代碼,并且能夠更好的去實(shí)現(xiàn)功能,WITHindataSELECToutdata<="0111111"WHEN"0000”,-0的顯示;“0000110"WHEN"0001”,-1的顯示;“1011011"WHEN"0010”,-2的顯示;“1001111"WHEN"0011

31、”,-3的顯示;“1100110"WHEN"0100”,-4的顯示;“1101101"WHEN"0101”,-5的顯示;“1111101"WHEN"0110”,-6的顯示;“0000111"WHEN"0111”,-7的顯示;“1111111"WHEN"1000”,-8的顯示;“1101111"WHEN"1001”,-9的顯示;“0000000"WHENOTHERS;-其它的輸入按鍵均不顯示。計(jì)算器顯示部分的設(shè)計(jì)和實(shí)現(xiàn),實(shí)際上就是七段譯碼器的設(shè)計(jì)和實(shí)現(xiàn),三個(gè)七段譯碼器

32、分別顯示的是個(gè)位、十位和百位。輸入第一個(gè)數(shù)字后至再一次按下數(shù)字按鍵輸入第二個(gè)數(shù)字前,三個(gè)七段譯碼器顯示的都是第一個(gè)數(shù)字。當(dāng)開始輸入第二個(gè)數(shù)字的時(shí)候顯示第二個(gè)數(shù)字,再次按下運(yùn)算按鍵到輸入第三個(gè)數(shù)字前,顯示的是前兩個(gè)數(shù)字的運(yùn)算結(jié)果,以此類推,當(dāng)最后按下等號(hào)鍵的時(shí)候,顯示最終的運(yùn)算結(jié)果。3.4 計(jì)算器的輸入部分在我們很小的時(shí)候就已經(jīng)接觸了計(jì)算器了,我們都知道計(jì)算器上的數(shù)字的一般都是都是10個(gè)數(shù)字,通過(guò)這十個(gè)數(shù)字不斷的阻隔進(jìn)行累加或者累,除了都能可以計(jì)算如何我們想要的結(jié)果通過(guò)我們?nèi)藶榈乃枷肴タ刂频?,他?yīng)該怎么去進(jìn)行計(jì)算,并延最終的。結(jié)果會(huì)顯示到我們想要的屏幕上,具體的代碼就是。PROCESS(incl

33、k,reset)BEGINIFreset='1'THEN-異步復(fù)位信號(hào)為高電平的時(shí)候outnum<="0000”;-把"0000®值給數(shù)字的輸出端口ELSIFinclk'EVENTANDinclk='1'THENCASEinnumISWHEN"0000000001"=>outnum<="0000"outflag<='T;- -按下一個(gè)鍵表示輸入為0WHEN"0000000010"=>outnum<="0001&q

34、uot;outflag<='T;- -按下第二個(gè)鍵表示輸入為1WHEN"0000000100"=>outnum<="0010"outflag<='T;- -按下第三個(gè)鍵表示輸入為2WHEN"0000001000"=>outnum<="0011"outflag<='T;- -按下第四個(gè)鍵表示輸入為3WHEN"0000010000"=>outnum<="0100"outflag<='T;-

35、 -按下第五個(gè)鍵表示輸入為4WHEN"0000100000"=>outnum<="0101"outflag<='T;- -按下第六個(gè)鍵表示輸入為5WHEN"0001000000"=>outnum<="0110"outflag<='T;- -按下第七個(gè)鍵表示輸入為610WHEN"0010000000"=>outnum<="0111"outflag<='T;-按下第八個(gè)鍵表示輸入為7WHEN"

36、0100000000"=>outnum<="1000"outflag<='T;-按下第九個(gè)鍵表示輸入為8WHEN"1000000000"=>outnum<="1001"outflag<='T;-按下第十個(gè)鍵表示輸入為9WHENOTHERS=>outnum<=outnum;outflag<='0'-不按鍵時(shí)保持ENDCASE;ENDIF;ENDPROCESS;我們都知道,在這次設(shè)計(jì)中,程序是非常的重要的我們就只應(yīng)該讓他怎么去判斷怎么輸入我們想

37、要的時(shí)候最一般都是零到九這幾個(gè)數(shù)字,我們可以通過(guò)高低電平需要更好的去控制,并且怎么進(jìn)行下降,成熟后也應(yīng)該用高級(jí)電瓶騎更好的控制,這樣才能更好的去實(shí)現(xiàn)這個(gè)電路這個(gè)程序的功能的實(shí)現(xiàn),所以。這個(gè)任務(wù)是非常的艱巨的我們應(yīng)該詳細(xì)的去分析和了解。輸入和輸出之間的關(guān)系。第四章計(jì)算器的VHDL設(shè)計(jì)4.1 加法器的設(shè)計(jì)與仿真我們都知道,同學(xué)已經(jīng)設(shè)計(jì)好了,就應(yīng)該還這樣拖過(guò)好深的形式能夠更好的分析如何,這個(gè)程序是什么地方發(fā)生了錯(cuò)誤,并且能夠及時(shí)的讓程序員是及時(shí)的改正出來(lái)。本文設(shè)計(jì)的這個(gè)預(yù)算系行他就是能實(shí)現(xiàn)加法的運(yùn)籌,并且能夠讓很多時(shí)候進(jìn)行解相加,相加之后能夠更多的顯示在屏幕上,并且這個(gè)怨氣的。運(yùn)行的速度是非常的快的

38、能夠占有11很多資源,本文所涉及的環(huán)節(jié)也是非常的少的非常的簡(jiǎn)單和職別嗯,能讓很多的人能夠看明白這件事情是怎么運(yùn)行的。我通過(guò)了改革,還和改正啊,提高了運(yùn)算速率的效率,并且占有的資源是非常的少的,能夠更好的提高運(yùn)輸運(yùn)算的速度能夠很快的讓程序運(yùn)行起來(lái)。這個(gè)效果是非常的好的,所以這個(gè)設(shè)計(jì)是非常的成功的。接下來(lái)我就要詳細(xì)地介紹這個(gè)家法機(jī)械的原理是什么原理,他就是加數(shù)和被加數(shù)啊,要相加,然后并且顯示出來(lái)的結(jié)果,運(yùn)算到我們所需要的屏幕上能夠讓使用過(guò)的客戶更好地知道他的加法的結(jié)果是多少,只要更好的去分析了加法的運(yùn)算的過(guò)程能夠更好的讓我們把基礎(chǔ)。如果報(bào)道時(shí)加的應(yīng)用過(guò)程中用去非常的好。加法器的原理框圖如圖4.1所

39、示。圖4.1加法器的原理框圖接下來(lái),讓我詳細(xì)的去分析這個(gè)程序運(yùn)行的過(guò)程,他是加數(shù)和被加數(shù)進(jìn)行相加,并且個(gè)位和十位,百位,千位都是相對(duì)應(yīng)的他們進(jìn)行相加之后嗯進(jìn)行四舍五入的方法進(jìn)行總結(jié)出來(lái)的結(jié)果,并且把結(jié)果。想知道我們所要需要看到的顯示的屏幕上去,這樣更加的直觀而和現(xiàn)實(shí)的讓我們了解加法的結(jié)果。詳細(xì)的預(yù)算的程序假,我們論文的目錄。巨體的法陣的效果如何?下圖所示他能夠更好的讓我們分析十六進(jìn)制和八進(jìn)制的區(qū)別,他們是金怎么進(jìn)行運(yùn)算出來(lái)的,通過(guò)這種形式能夠讓我們通過(guò)仿真的方式進(jìn)行分析和驗(yàn)證最重要,我們可以得出仿真的結(jié)果是正確的,我們終于成功的設(shè)計(jì)出了加法運(yùn)算器非常的成功。圖4.2加法器仿真16+176=19

40、24.2 減法器的設(shè)計(jì)與仿真上文我們已經(jīng)介紹了加法的運(yùn)算器的運(yùn)行的原理。接下來(lái)我們就介紹減法的運(yùn)算器的原理,其實(shí)加法的運(yùn)算器的原理和減法運(yùn)算器的原理都是相通的,它們都是一樣的,都是通過(guò)數(shù)字與數(shù)字進(jìn)行相減個(gè)位和個(gè)位小姐十位和十位小姐,千位和千位相間,直接將運(yùn)算的結(jié)構(gòu)顯示到我們想要。這是非常的簡(jiǎn)單的也是非常的靠譜的,具體的流程圖,原理圖,如下圖所示。圖4.3四位全減器的原理框圖134.3 乘法器的設(shè)計(jì)與仿真乘法的運(yùn)算器是非常的難以解決的他所需要的步驟也是非常的多的,他需要左移一位右移一位通過(guò)移位的方式去實(shí)現(xiàn)相關(guān)的單位的運(yùn)算這種原理是非常高度,并而且在我我設(shè)計(jì)的時(shí)候出現(xiàn)而來(lái)很多的問(wèn)題,在我設(shè)計(jì)的過(guò)程

41、中遇到了很多的問(wèn)題,并且進(jìn)行對(duì)問(wèn)題的總結(jié),最終得出了乘法運(yùn)算器的原理的框圖如圖所示。圖4.5乘法器的原理框圖圖4.6乘法器仿真13*10=130144.4 除法器的設(shè)計(jì)與仿真除法的運(yùn)算器是非常的難以解決的他所需要的步驟也是非常的多的,他需要左移一位右移一位通過(guò)移位的方式去實(shí)現(xiàn)相關(guān)的單位的運(yùn)算這種原理是非常高度,并而且在我我設(shè)計(jì)的時(shí)候出現(xiàn)而來(lái)很多的問(wèn)題,在我設(shè)計(jì)的過(guò)程中遇到了很多的問(wèn)題,并且進(jìn)行對(duì)問(wèn)題的總結(jié),最終得出了乘法運(yùn)算器的原理的框圖如圖所示。圖4.7除法器的原理框圖通過(guò)我上我們上面知道了,除法運(yùn)算器的工作原理,通過(guò)這樣我們能夠更好的去分析和驗(yàn)證,反正他們并且對(duì)我們驗(yàn)證的仿真結(jié)果進(jìn)行了實(shí)力

42、的驗(yàn)證,發(fā)現(xiàn)沒(méi)有任何的問(wèn)題,他是非常的正確的,所以這次的實(shí)驗(yàn)是非常的成功的。最低的,仿真的結(jié)果如下圖所示。15g.t.jgihi小AI日$,U1山hQyH神叩必需叫叫比叫at.叫叫叫叫叫叔m圖4.8除法器仿真148+13=115,22+131第五章結(jié)束語(yǔ)通過(guò)這次論文的設(shè)計(jì)和研究,我從剛開始是不知道怎么去做,我剛開始做這個(gè)題目的時(shí)候頭是暈暈的慢慢的通過(guò)我問(wèn)同學(xué)問(wèn)老師慢慢的有了一點(diǎn)的思路,知道自己應(yīng)該怎么去做。首先我通過(guò)在網(wǎng)絡(luò)搜索的過(guò)程中找到了我的論文設(shè)計(jì)的基本的框架,然后在一點(diǎn)一點(diǎn)的進(jìn)行摸索,再通過(guò)在網(wǎng)絡(luò)上查閱大量的資料,進(jìn)行豐富框架里邊的內(nèi)容,有不懂得再進(jìn)行通過(guò)問(wèn)同學(xué)和老師的方式進(jìn)行找到解決的

43、方案,最終我成功的完成了我的論文的設(shè)計(jì),當(dāng)我真正的完成這個(gè)論文我真正感覺到了人生中什么是成功,我只能對(duì)我的老師和同學(xué)說(shuō)一句話,真的很感謝你們,我也非常感謝我的導(dǎo)師是他在我的背后默默的支持,再給我打進(jìn)鼓勵(lì)我才能把這個(gè)論文設(shè)計(jì)做了出來(lái)。從做這個(gè)論文設(shè)計(jì)的過(guò)程中我經(jīng)歷了很多的困難。我真正的認(rèn)識(shí)的基礎(chǔ)知識(shí)是非常的重要的,我們必須應(yīng)該把自己的理論融合到實(shí)踐的過(guò)程中去,這樣才能使實(shí)現(xiàn)和理論更好的去結(jié)合,才能更好的把自己的基礎(chǔ)知識(shí)打牢。通過(guò)我這一次能夠順利地完成論文,我非常要感謝的一個(gè)人,是我的導(dǎo)師。在這個(gè)論文的設(shè)計(jì)的過(guò)程中,是他耐心的為我講解。在我不懂的時(shí)候也是他在為我講解。他沒(méi)有任何的反感對(duì)我非常細(xì)心的

44、給我講解,我應(yīng)該怎么去做。與此同時(shí),我還應(yīng)該感謝我們學(xué)院的各位領(lǐng)導(dǎo),是他們?cè)谖业拇髮W(xué)四年對(duì)我的無(wú)微不至的關(guān)懷,我才能有今天的成16就。非常的感謝他們,也是,他們給了我這一次難得的機(jī)會(huì),讓我真正的踏入了社會(huì),真正的用自己所學(xué)的理論,根據(jù)自己大學(xué)四年所學(xué)的理論知識(shí)完成了一篇具有理論意義的學(xué)術(shù)論文。在其中的過(guò)程中,我也學(xué)會(huì)了很多的事情,面對(duì)困難,我不應(yīng)該退縮,應(yīng)該勇往直前,因?yàn)橐坏┩顺觯妥⒍ㄊ?,只有?jiān)持不懈的去努力,才能夠成功。參考文獻(xiàn)1崔葛瑾,沈利芳,李偉民.基于FPGA的數(shù)字電路系統(tǒng)設(shè)計(jì)M.西安:西安電子科技大學(xué)出版社,2008年.2王彥.基于FPGA的工程設(shè)計(jì)與應(yīng)用M.西安:西安電子科技大

45、學(xué)出版社,2007年.3黃智偉.FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐M.北京:電子工業(yè)出版社,2005年.3江思敏.VHDL數(shù)字電路及系統(tǒng)設(shè)計(jì)M.北京:機(jī)械工業(yè)出版社,2006年.5盧毅,賴杰.VHDL與數(shù)字電路設(shè)計(jì)M.北京:北京科學(xué)出版社,2001年.6潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程M.第二版.北京:科學(xué)出版社,2005年.7徐志軍,徐光輝.CPLD/FPGA的開發(fā)與應(yīng)用M.北京:電子工業(yè)出版社,2002年.8陳育人.8位計(jì)算器的指令系統(tǒng)與硬件結(jié)構(gòu)J.微電子技術(shù),2000年,第28卷第3期.9王冬冬.基于FPGA的浮點(diǎn)運(yùn)算器設(shè)計(jì).萬(wàn)方數(shù)據(jù),17HTTP:d.g.WANGFANGDATA.com.CN/T

46、hesis_Y1548067.ASPX.10王在t國(guó).科學(xué)計(jì)算器的大規(guī)模集成電路芯片設(shè)計(jì).萬(wàn)方數(shù)據(jù),HTTP:d.g.WANGFANGDATA.com.CN/Thesis_Y722644.ASPX.附錄附錄A:源程序4位二進(jìn)制并行進(jìn)位加法器的源程序ADDER4B.VHD如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYADDER4BISPORT(ci:INSTD_LOGIC;a:INSTD_LOGIC_VECTOR(3DOWNTO0);b:INSTD_LOGIC_VECTOR(3DOWN

47、TO0);s:OUTSTD_LOGIC_VECTOR(3DOWNTO0);co:OUTSTD_LOGIC);ENDADDER4B;ARCHITECTUREbehaveOFADDER4BIS18SIGNALSINT:STD_LOGIC_VECTOR(4DOWNTO0);-類似于在芯片-部定義的一個(gè)數(shù)據(jù)SIGNALaa,bb:STD_LOGIC_VECTOR(4DOWNTO0);BEGINaa<='0'&a;-拓展位數(shù),使其成為最高位bb<='0'&b;SINT<=aa+bb+ci;-相加s<=SINT(3DOWNTO0);c

48、o<=SINT(4);-最高位為輸出進(jìn)位位ENDbehave;頂層模塊:8位二進(jìn)制并行進(jìn)位加法器的部分程序ADDER4B.VHD如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYADDER8BISPORT(ci:INSTD_LOGIC;a:INSTD_LOGIC_VECTOR(7DOWNTO0);b:INSTD_LOGIC_VECTOR(7DOWNTO0);s:OUTSTD_LOGIC_VECTOR(7DOWNTO0);co:OUTSTD_LOGIC);ENDADDER8B;ARC

49、HITECTUREaOFADDER8BISCOMPONENTADDER4B-引用4位二進(jìn)制并行進(jìn)位力口法器PORT(ci:INSTD_LOGIC;a:INSTD_LOGIC_VECTOR(3DOWNTO0);b:INSTD_LOGIC_VECTOR(3DOWNTO0);s:OUTSTD_LOGIC_VECTOR(3DOWNTO0);co:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALCARRY_OUT:STD_LOGIC;BEGINU1:ADDER4BPORTMAP(ci=>ci,a=>a(3DOWNTO0),b=>b(3DOWNTO0),s=>s(

50、3DOWNTO0),co=>CARRY_OUT);19U2:ADDER4BPORTMAP(ci=>CARRY_OUT,a=>a(7DOWNTO4),b=>b(7DOWNTO4),s=>s(7DOWNTO4),co=>co);ENDa;4位二進(jìn)制并行進(jìn)位減法器的源程序suber.VHD如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYsuberISPORT(a:INSTD_LOGIC_VECTOR(

51、3DOWNTO0);b:INSTD_LOGIC_VECTOR(3DOWNTO0);ci:INSTD_LOGIC;s:OUTSTD_LOGIC_VECTOR(3DOWNTO0);co:OUTSTD_LOGIC);ENDsuber;ARCHITECTUREbehaveOFsuberISCOMPONENTadderIS引用加法器的模塊PORT(a:INSTD_LOGIC;b:INSTD_LOGIC;ci:INSTD_LOGIC;s:OUTSTD_LOGIC;co:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALbtem:STD_LOGIC_VECTOR(3DOWNTO0);減數(shù)寄存

52、SIGNALctem:STD_LOGIC_VECTOR(4DOWNTO0);進(jìn)位寄存SIGNALstem:STD_LOGIC_VECTOR(3DOWNTO0);結(jié)果寄存BEGINbtem(3DOWNTO0)<=NOTb(3DOWNTO0);-先把減數(shù)求反ctem(0)<=NOTci;-輸出進(jìn)位也求反,從而對(duì)減數(shù)求補(bǔ)碼g1:FORiIN0TO3GENERATE連用4位全力口器add:adderPORTMAP(a(i),btem(i),ctem(i),stem(i),ctem(i+1);ENDGENERATE;s(3downto0)<=stem(3downto0);-結(jié)果輸出20

53、co<=NOTctem(4);-求反輸出進(jìn)位ENDbehave;8位二進(jìn)制并行進(jìn)位減法器的原理圖:乘法器的源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYmulISPORT(a,b:INSTD_LOGIC_VECTOR(3DOWNTO0);y:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ENDmul;ARCHITECTUREarchOFmulISBEGINy(7DOWNTO0)<=a(3DOWNTO0

54、)*b(3DOWNTO0);ENDarch;除法器的源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdiverISPORT(a:INSTD_LOGIC_VECTOR(7DOWNTO0);b:INSTD_LOGIC_VECTOR(3DOWNTO0);clk:INSTD_LOGIC;str:INSTD_LOGIC;s:OUTSTD_LOGIC_VECTOR(3DOWNTO0);y:OUTSTD_LOGIC_VECTOR(3DOWNT

55、O0);END;ARCHITECTUREbehaveOFdiverISCOMPONENTsuberIS-引用減法器PORT(a:INSTD_LOGIC_VECTOR(3DOWNTO0);b:INSTD_LOGIC_VECTOR(3DOWNTO0);21ci:INSTD_LOGIC;s:OUTSTD_LOGIC_VECTOR(3DOWNTO0);co:OUTSTD_LOGIC);ENDCOMPONENT;TYPEstate_typeIS(start,one,two,three,eror);-狀態(tài)定義SIGNALstate:state_type;SIGNALain:STD_LOGIC_VECTOR

56、(7DOWNTO0);SIGNALbin:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALatem:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALbtem:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALstem:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALcitem:STD_LOGIC;SIGNALcotem:std_logic;BEGINp2:PROCESS(clk)VARIABLEn:INTEGERrange0to3;移位次數(shù)計(jì)數(shù)值BEGINIFclk'EVENTANDclk='1'TH

57、ENCASEstateISWHENstart=>開始狀態(tài)IFstr='1'THENstate<=one;atem(3DOWNTO0)<=a(7DOWNTO4);把高4位放到減法器被減數(shù)端btem(3DOWNTO0)<=b(3DOWNTO0);把除數(shù)放到減法器減數(shù)端ain(7DOWNTO0)<=a(7DOWNTO0);寄存被除數(shù)bin(3DOWNTO0)<=b(3DOWNTO0);寄存除數(shù)ENDIF;WHENone=>第一次移位IFcotem='0'THENstate<=eror;ELSEain(3downto1)&

58、lt;=ain(2downto0);-被除數(shù)做移位ain(0)<=notcotem;-在最低位接受該位商值atem(3downto0)<=ain(6downto3);-除數(shù)寄存器高4位輸?shù)綔p法器,作為被減數(shù)state<=two;22ENDIF;-第二次移位WHENtwo=>IFn=2THENstate<=three;n:=0;ELSEstate<=two;n:=n+1;ENDIF;IFcotem='0'THENatem(3DOWNTO1)<=stem(2DOWNTO0);ELSEatem(3DOWNTO1)<=atem(2DOWN

59、TO0);ENDIF;ain(3DOWNTO1)<=ain(2DOWNTO0);ain(0)<=NOTcotem;atem(0)<=ain(3);WHENthree=>-第三次移位s(3DOWNTO1)<=ain(2DOWNTO0);s(0)<=NOTcotem;IFcotem='0'THENy(3DOWNTO0)<=atem(3DOWNTO0);ELSEy(3DOWNTO0)<=atem(3DOWNTO0);ENDIF;atem(3DOWNTO0)<="0"btem(3DOWNTO0)<=&quo

60、t;0"state<=start;WHENeror=>-溢出狀態(tài)state<=start;-回到開始狀態(tài)atem(3DOWNTO0)<="0"btem(3DOWNTO0)<="0"ENDCASE;ENDIF;ENDPROCESSp2;citem<='0'U1:suberPORTMAP(atem,btem,citem,stem,cotem);ENDbehave;23數(shù)字按鍵譯碼電路VHDL語(yǔ)言描述:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.ST

61、D_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYnumdecoderISPORT(reset:INSTD_LOGIC;inclk:INSTD_LOGIC;innum:STD_LOGIC_VECTOR(9DOWNTO0);outnum:BUFFERSTD_LOGIC_VECTOR(3DOWNTO0);outflag:OUTSTD_LOGIC);END;ARCHITECTUREbehaveOFnumdecoderISBEGINPROCESS(inclk,reset)BEGINIFreset='1'THENoutnum<="0000"ELSIFinclk'EVENTANDinclk=&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論