影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

基于FPGA的查表式運(yùn)算器的設(shè)計(jì)與仿真 通信技術(shù)專業(yè)

上傳人:文*** 文檔編號(hào):63389068 上傳時(shí)間:2022-03-18 格式:DOC 頁數(shù):42 大小:636.76KB
收藏 版權(quán)申訴 舉報(bào) 下載
基于FPGA的查表式運(yùn)算器的設(shè)計(jì)與仿真 通信技術(shù)專業(yè)_第1頁
第1頁 / 共42頁
基于FPGA的查表式運(yùn)算器的設(shè)計(jì)與仿真 通信技術(shù)專業(yè)_第2頁
第2頁 / 共42頁
基于FPGA的查表式運(yùn)算器的設(shè)計(jì)與仿真 通信技術(shù)專業(yè)_第3頁
第3頁 / 共42頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于FPGA的查表式運(yùn)算器的設(shè)計(jì)與仿真 通信技術(shù)專業(yè)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于FPGA的查表式運(yùn)算器的設(shè)計(jì)與仿真 通信技術(shù)專業(yè)(42頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 題目: 基于FPGA的查表式運(yùn)算器的設(shè)計(jì)與仿真 摘 要 隨著我國的經(jīng)濟(jì)的發(fā)展,人們要求計(jì)算的方法更好簡單和方便,尤其是在計(jì)算這個(gè)方面,所以對(duì)于運(yùn)算器的設(shè)計(jì)是非常的重要的,所以為了更好的設(shè)計(jì)該設(shè)計(jì)采用了現(xiàn)場可編程邏輯器件FPGA設(shè)計(jì),并基于硬件描述語言VHDL在Altera公司的Quartus Ⅱ軟件上實(shí)現(xiàn)仿真。系統(tǒng)由計(jì)算部分、存儲(chǔ)部分、顯示部分和輸入部分四個(gè)部分組成,計(jì)算部分為加法器、減法器、乘法器和除法器,存儲(chǔ)部分需要3個(gè)存儲(chǔ)器來實(shí)現(xiàn):內(nèi)部累加器(acc)、輸入

2、寄存器(reg)以及結(jié)果暫存器(ans)。顯示部分由四個(gè)七段譯碼管組成,分別來顯示輸入數(shù)字,輸入部分采用外接鍵盤,由0—9十個(gè)數(shù)字按鍵,加減乘除四個(gè)運(yùn)算符按鍵,一個(gè)等號(hào)按鍵和一個(gè)清零按鍵組成的。通過外部的按鍵可以完成四位數(shù)之內(nèi)的 ‘加’、‘減’、‘乘’、‘除’四種功能運(yùn)算,其結(jié)構(gòu)簡單,易于實(shí)現(xiàn)。 關(guān)鍵詞:FPGA;VHDL;計(jì)算器 38 Abstract This article describes the design of a simple calculator, the design uses Field Programmable Gate Arra

3、y FPGA based on VHDL hardware description language to design and Altera's Quartus Ⅱ in software for emulation. This system is componentted by the calculation section, storage section, display and input section of the four parts, the computing part include adder, subtractor, multiplier and divider,St

4、orage part needs three memory to help achieved: internal accumulator (acc), input register (reg) as well as the results of registers (ans). Display part is made up three decoder of 7 sections, respectively to show the number of input. Input part has ten number keys, from 0 – 9, also has addition and

5、 subtraction and multiplication and division arithmetic operator keys, a button and of equal sign and the clear key. Buttons can be done through external within the four-digit 'add', 'subtract', 'multiple', 'divede' the four kinds of functional operations, its structure is simple and easy to impleme

6、nt. Key words:FPGA;VHDL;calclute 目 錄 第一章 引言 1 1.1 課題研究的目的與意義 1 1.2 國內(nèi)外發(fā)展現(xiàn)狀 1 1.3課題的主要技術(shù)路線 2 第二章 FPGA技術(shù)及硬件描述語言 3 2.1 FPGA技術(shù)的發(fā)展現(xiàn)狀及與CPLD的比較 3 2.2 FPGA設(shè)計(jì)方法 5 2.3 利用硬件描述語言(HDL)的硬件電路設(shè)計(jì)方法 6 2.4 VHDL語言的特點(diǎn) 7 2.5 Quartus Ⅱ概述及其設(shè)計(jì)流程 7 第三章 系統(tǒng)總體設(shè)計(jì) 10 3.1 計(jì)算器的計(jì)算部分 10 3.2 計(jì)算器的存儲(chǔ)部分 10 3.3

7、計(jì)算器的顯示部分 11 3.4 計(jì)算器的輸入部分 12 第四章 計(jì)算器的VHDL設(shè)計(jì) 14 4.1加法器的設(shè)計(jì)與仿真 14 4.2減法器的設(shè)計(jì)與仿真 15 4.3乘法器的設(shè)計(jì)與仿真 16 4.4 除法器的設(shè)計(jì)與仿真 18 第五章 結(jié)束語 20 參考文獻(xiàn) 21 附 錄 22 第一章 引言 1.1 課題研究的目的與意義 在人類學(xué)會(huì)買賣的時(shí)分,計(jì)算也隨之爆發(fā),而算盤成為計(jì)算最適用的工具存在了幾千年。算盤也叫珠算,是中國人民發(fā)明的一種計(jì)算用具,古代時(shí)有“中國的計(jì)算機(jī)”的稱號(hào)。算盤產(chǎn)生在我國漢代的前期,是由古代的“籌算”演化變成的,珠算這個(gè)詞語,最早出現(xiàn)在漢末的三國演義

8、時(shí)代的徐岳撰的《數(shù)術(shù)記遺》里,有一句敘述“珠算,控帶四時(shí),經(jīng)緯三才”是出自出本里的?!冻顺ㄗ兯銓殹肥悄纤螖?shù)學(xué)家楊輝的,里面有“九歸”的口訣,劉因是元代人,也作了一首算盤的詩句,吳敬是明代人,他的的《九章詳注比類算法大全》里寫有珠算的大部分有關(guān)算法。在明清的時(shí)候,人們對(duì)算盤的運(yùn)用就非常多,而對(duì)于算盤的制作大小,明萬歷年間的柯尚遷寫的《數(shù)學(xué)通軌》里記載了13檔算盤的圖片,上有2珠,下有5珠,樣似長方形,四周都是木框,里面有一個(gè)軸心,人們都叫作“檔”,檔的中間是用一根橫木來分隔開來,運(yùn)算的時(shí)候在確定位置后撥動(dòng)珠字來進(jìn)行計(jì)算。起初出世的每一種規(guī)格的算盤,全部在這個(gè)基礎(chǔ)上發(fā)展起來。算盤的結(jié)構(gòu)鑄造十分簡

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

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

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

12、對(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)場可編程邏輯器件FPGA來進(jìn)行設(shè)計(jì),不僅是運(yùn)用了硬件描述語言VHDL,還編程,并且在Altera公司的Quartus Ⅱ軟件上完成了仿真。我們還必須實(shí)現(xiàn)進(jìn)行計(jì)算器的一部分常用到的運(yùn)算功能,經(jīng)過外接鍵盤輸入、LED數(shù)碼顯示來達(dá)到和完成運(yùn)算目標(biāo)。

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

14、e Logic Block),輸入輸出模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)內(nèi)部局部。FPGA的基本特點(diǎn)主要有: ⅰ.采納FPGA設(shè)計(jì)ASIC電路,用戶不需要投片消費(fèi),就能獲得合用的芯片。 ⅱ.FPGA能做其它全定制或者半定制ASIC電路的測試樣片。 ⅲ.FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。 ⅳ.FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。 ⅴ.FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。 RAM中的程序是用來設(shè)置FPGA工作狀態(tài)的,它存放在片內(nèi)RAM的程序里,因而,工

15、作時(shí)就得對(duì)片內(nèi)的RAM進(jìn)行編程。用戶也能隨著不同的配置方式,使用不同的編程方法。加電時(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)用來說很有用,不過還有一些應(yīng)

16、用要求功能需要再一步提高,而且FPGA還提供了更高的功能。FPGA能夠生成一個(gè)定制硬件設(shè)計(jì),控制邏輯可以實(shí)現(xiàn)在硬件中,不用再使用精確的時(shí)鐘周期來實(shí)現(xiàn)控制功用。另外,經(jīng)過縮小硬件的框架,F(xiàn)PGA還能夠供應(yīng)額定的功能。假如,速度是最關(guān)鍵的設(shè)計(jì)思考原因,這樣一來我們能夠在FPGA中設(shè)計(jì)一個(gè)齊全并行的算法解決方法。如今,諸多系統(tǒng)都包含了一個(gè)FPGA,用于膠合邏輯和協(xié)議轉(zhuǎn)換或者一些其它系統(tǒng)功用。假如,那FPGA沒有被全部運(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ǔ)在

17、系統(tǒng)的非易失性存儲(chǔ)器中。 目前,F(xiàn)PGA設(shè)計(jì)的設(shè)計(jì)方法,通常使用的是Top-down(自頂向下)。系統(tǒng)被分成各個(gè)功能子模塊,在系統(tǒng)級(jí)層次上使用行為描述,再對(duì)這些子模塊進(jìn)一步使用行為描述。 (2)FPGA與CPLD的比較 FPGA簡要稱呼叫現(xiàn)場可編程邏輯門陣列,它是電子設(shè)計(jì)的一個(gè)里程碑。CPLD的簡要稱呼叫復(fù)雜可編程邏輯器件。雖然FPGA和CPLD一起都是可編程ASIC器件,有很多共同特性,但由于CPLD和FPGA構(gòu)造上的差異,具備各自的特性: ? 1..CPLD更合適實(shí)現(xiàn)各種算法和組合邏輯,F(xiàn)PGA更合適在完成時(shí)序邏輯。換個(gè)說法, FPGA更合適在觸發(fā)器豐富的構(gòu)造,而CPLD更合適在觸

18、發(fā)器有限且乘積項(xiàng)很豐富的構(gòu)造。 2.這種形式的集成度是非常的高的,并且它內(nèi)部的結(jié)構(gòu)和邏輯性也是非常的好的,受了廣大的電子器件兒人們的喜歡。 3.運(yùn)行的速度比現(xiàn)在業(yè)界上最快的DSP芯片還要快,是非常的快的。 4.在這種形式的使用方面,他也是非常的好的,她沒有外部的存儲(chǔ)芯片,使用著操作起來也非常的簡單。 5.這種芯片它的運(yùn)行的速度也是非常的快的。能在很多的時(shí)間真之內(nèi)運(yùn)行出來很多的程序使用度非常的高。 6.在編程方面可編程度是非常的好的,通過這些 程序員可以把自己的程序?qū)戝e(cuò)時(shí)他可以隨意的進(jìn)行改正的,并且這種部件兒在運(yùn)行的過程中中如果在斷電的時(shí)候里邊存儲(chǔ)的信息也不會(huì)丟失他能更好地去保存出來功

19、能是非常的強(qiáng)大的 2.2 FPGA設(shè)計(jì)方法 在這個(gè)軟件進(jìn)行設(shè)計(jì)是中號(hào),他有很多的規(guī)則,如果成員更好地掌握了這些規(guī)則,他能夠使用起來非常的方便,他并且是功能非常的強(qiáng)大的更好的去運(yùn)行程序。 我們知道應(yīng)下系統(tǒng)對(duì)于一個(gè)系統(tǒng)來說是非常的重要的,它可以根據(jù)重新進(jìn)行實(shí)現(xiàn)功能,它通常是欲望算法來實(shí)現(xiàn)的。又要能夠讓每個(gè)各部件都能更好地實(shí)現(xiàn)出什么工程? 2從系統(tǒng)方面分析它可以加上哥哥模塊兒進(jìn)行組合起來,讓哥哥摸罐進(jìn)行時(shí)間他索要要求的工程,并且它對(duì)要求高頻率會(huì)紅,夜宵的模塊兒更加的實(shí)用。但是對(duì)于功能比較強(qiáng)大的模塊兒它也能更好地使用,有利于程序進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)。 3這個(gè)系統(tǒng)運(yùn)行的速度是非??斓模棵腌娔軙r(shí)

20、間3000萬。非常的方便與實(shí)用它的體積是非常小的,能融合到各個(gè)單片機(jī)中旭能配合好,單片機(jī)更好的去工作。他的工作效率也是非常的高的不能和任何程序,靜靜充足,他的準(zhǔn)確性高,受到了廣大程序員的喜歡。由于它的芯片是非常的小的可以更好的切入到單片機(jī)中,去輔助單片機(jī)更好的進(jìn)行工作。 4同步說句在這方面也是非常的重要的他能跟工程同步到這個(gè)程序運(yùn)行起來,這個(gè)功能也發(fā)揮著巨大的作用,它同步的效果是非常的高的。有趣的是,在師宗方便它的經(jīng)文確定也是非常的準(zhǔn)的。老婆更好的去采集數(shù)據(jù),這樣把臺(tái)積出來的,輸液更好的分析出來,得到結(jié)果然后配合系統(tǒng)去執(zhí)行相關(guān)的木命令把幾個(gè)模塊兒更好的整合出來。 2.3 利用硬件描述語言(

21、HDL)的硬件電路設(shè)計(jì)方法 硬件兒的編程的語言是非常的重要的,可以通過這一個(gè)語言讓硬件兒和硬件進(jìn)行交流,明白這個(gè)硬件發(fā)出了是什么命令,并且配合區(qū)執(zhí)行其他相關(guān)的命令,好比也是,人和人之間的說話,它能更好的去溝通了解人所能表達(dá)出來的意思應(yīng)該是家的語言,他也是這樣的,這個(gè)軟件所采用的語言是VACdAC于二這種雨呀功能是非常的強(qiáng)大的收到了國代變成舍得,喜歡接下來我介紹這桌描述語言的幾個(gè)特點(diǎn),他們是怎么更好地輔助電路去工作的。 1他的方向二是自上向下的,這樣有利于編程語言的能夠一步一步的進(jìn)行,實(shí)現(xiàn)功能是非常的方便的。 2由于我國制作芯片的廠家是非常的多的,他們所使用的軟件都可以支持這種H直接一次語

22、言,所以這種語言在適應(yīng)很多種軟件,硬件的設(shè)計(jì)人員也非常喜歡這種語言,因?yàn)樗怯枚挤浅5拇?,并且體積小,更容易切入到單片機(jī)中去,能夠更好的企業(yè)設(shè)計(jì),并且更加的合理。店家收到了很大的設(shè)計(jì)人員的喜歡。 3這種軟件還能夠更好的進(jìn)行仿真,通過仿真能知道這些程序?qū)崿F(xiàn)的是什么功能,并且對(duì)每個(gè)功能進(jìn)行詳細(xì)的分析。更好地找到錯(cuò)誤,并且。開發(fā)出來的功能,大大的提高了工作的效率。也降低的硬線使用的頻率。難度使廣大的硬件設(shè)計(jì)人員喜歡她也大大的提高了工作的效率這種啊,軟件是非常的好的。 5他的設(shè)計(jì)文件是用這種語言編寫的源程序通過這種現(xiàn)象可以看出這種。語言要掛房子是用在哥哥方面。通過用這種程序編程出來,然后發(fā)站出來電

23、路圖,通過這些電路圖可以更好的找到解決的方法,知道什么地方是錯(cuò)誤的,并且能在很多的時(shí)間進(jìn)行改正出來,收到了過完那的營銷人員咋喜歡這種方式也更加方便。硬件設(shè)計(jì)人員去閱讀它,去了解它。一眼就能看的出來,這個(gè)程序編程有什么問題,有什么優(yōu)點(diǎn)可以方便去改正。 2.4 VHDL語言的特點(diǎn) VHDl與安生非常的厲害的,受到了廣大硬件人員的喜歡它的結(jié)構(gòu)非常的嚴(yán)謹(jǐn),操作起來也非常的簡單,所以受到了硬件人員的喜歡,接下來我解詳細(xì)的介紹它的急個(gè)特點(diǎn),他是怎么更好地輔助硬件系統(tǒng)進(jìn)行工作的,她不要和其他的硬件語言一樣。他大范圍也是非常大的功能也是非常的大的,超過了其他軟件的編程語言,他比Java更佳的簡單,比C語言

24、更加的強(qiáng)大,所以很多的硬件設(shè)計(jì)人員喜歡用它。在這個(gè)編程的語言中,他還可以創(chuàng)造出來很大的系統(tǒng),有些事在變成函數(shù)的時(shí)候我們都知道變成函數(shù)是非常復(fù)雜的,但是用這種語言進(jìn)行編程式分享的,簡單的他能夠很準(zhǔn),在很短的時(shí)間進(jìn)行月行把自己想要表達(dá)的函數(shù)進(jìn)行表達(dá)出來。不用寫這種語言能夠隨時(shí)的調(diào)用其他模塊兒的內(nèi)容,他的銜接,都是非常的好的,能與哥哥麼會(huì)進(jìn)行交通和溝流,就向人和人進(jìn)行語言交流一樣,當(dāng)一個(gè)軟件的我被發(fā)射出命令的時(shí)候,另一個(gè)軟件模塊進(jìn)行接收,他能更好地讀懂它,是什么的意思,能夠去執(zhí)行這項(xiàng)任務(wù)。所以說他的工程師非常早,強(qiáng)大的受到了很多硬件人員咋喜歡他們,非常喜歡用這種程序語言去進(jìn)行編程。這種編程語言是相互

25、獨(dú)立的,他能更好的和其他的語言進(jìn)行區(qū)分。不會(huì)受到任何變成語言的。干擾能夠更好地掌握編程的準(zhǔn)確性。這種語言的生命周期是非常的長的,她不會(huì)隨時(shí)對(duì)軟件的更新而改變錯(cuò)誤,他從開發(fā)到現(xiàn)在已經(jīng)有了80年的歷史,在這個(gè)歷史的演變的過程中,經(jīng)過不斷的開發(fā)和演變,他慢慢的成長起來,受到了廣大程序人員的喜歡。。 2.5 Quartus Ⅱ概述及其設(shè)計(jì)流程 這種軟件是非常高智能的,它能夠?qū)D形以及視頻進(jìn)行方進(jìn)行演示,并且把所有的程序。進(jìn)行仿真出來很好的發(fā)現(xiàn)出什么地方出現(xiàn)問題,并且它出它運(yùn)行的速度是非常的快的使用的街面也是非常的簡單的適用于初學(xué)者的使用。 這種軟件是由德國科學(xué)家西門子洛夫斯基研發(fā)出來的,他剛開始

26、研發(fā)這款軟件的時(shí)候,就是為了解決編程的問題,在他不斷的努力進(jìn)行研發(fā)的過程中,終于研發(fā)出來了,這款軟件這種國產(chǎn)軟件的工廠是非常的強(qiáng)大的,受到了廣大人們的喜愛。并且這種軟件的設(shè)計(jì)邏輯已設(shè)計(jì)環(huán)境都是非常簡單的,并且工程非常的強(qiáng)大,能夠使使用者一眼就能看的出來他具有什么作用,能夠讓使用者更好地進(jìn)行操作。并加他運(yùn)行的環(huán)境可以支持多種環(huán)境,避免了單一的環(huán)境給程序員帶來的煩惱。他的編程的能力也是非常的大的,通過編程,它可以運(yùn)行出來程序所要顯示的功能大大的提高了調(diào)試的能力,并且支持很多的插件兒直接插墊是用來干什么的,這些插件兒主要的增加了軟件的功能,比如畫圖仿真或者是語言或者是視頻這種功能都是非常的氣。非常的

27、強(qiáng)大的,受到了硬件兒變成語言的喜歡,所以這種軟件是越來越流行的。 2接下來我就想起咋去設(shè)計(jì)這款軟件怎么進(jìn)行設(shè)計(jì)的流程,怎么去運(yùn)營它,首先要在這個(gè)軟件上建立新的工程,你把這個(gè)工程建立好了就跟把自己要建立的項(xiàng)目進(jìn)行合理的去命運(yùn)了,給自己的項(xiàng)目起一個(gè)名字,這個(gè)名字命名的時(shí)候一定要以英文字母去開頭,因?yàn)檫@款軟件是y。是外國人進(jìn)行設(shè)計(jì)的,一定要遵循這種命名的方法,等我們建立了這個(gè)。工程之后就應(yīng)該選擇自己所需要的模塊兒,在這個(gè)軟件中他的魔罐是非常的多的,咱們使用起來也非常的簡單和方便。根據(jù)子,我們的需要進(jìn)行選擇模塊兒,并且知道每個(gè)模塊兒之家。有什么作用的充分的利用他們的作用進(jìn)行變成這樣,能夠更好的去分析

28、和發(fā)現(xiàn)變成中出現(xiàn)的錯(cuò)誤能夠更好地改正出來,當(dāng)我們運(yùn)行的過程中就進(jìn)行編譯,編譯出是不是他們有錯(cuò)誤,是不是能夠正常的進(jìn)行編程,編程也是非常的重要的,通過編程我們能知道我們所。說做創(chuàng)的程序是不是能夠正常的演示出來,如果能演示出來,我們就能夠發(fā)現(xiàn)我們做出來的程序所要表達(dá)的功能是不是和我們所要表達(dá)的功能是不是一樣及時(shí)的發(fā)現(xiàn)問題并能更好的及時(shí)的去解決問題,這樣是非常的好的。仿真的時(shí)候一定要知道網(wǎng)絡(luò)是不是正常的連接,如果網(wǎng)絡(luò)不能正常的了。了解就需要及時(shí)的改正仿真,所以說是非常的重要的,一定要記住自己文件的擴(kuò)展名要合理的運(yùn)用這種擴(kuò)展并如果擴(kuò)展名錯(cuò)誤了這種仿真也不能夠更好的防震出來,他們會(huì)出現(xiàn)很多的錯(cuò)誤。如果仿

29、真的時(shí)候出現(xiàn)了錯(cuò)誤,這個(gè)軟件會(huì)出現(xiàn)很多的代碼,他說他能夠告訴你。是什么地方出現(xiàn)錯(cuò)誤,他能方便的,告訴你什么地方出現(xiàn)了錯(cuò)誤之后你能更好地發(fā)現(xiàn)問題更好的去解決問題。 第三章 系統(tǒng)總體設(shè)計(jì) 系統(tǒng)總體設(shè)計(jì)框圖如圖3.1所示。此設(shè)計(jì)由計(jì)算部分、存儲(chǔ)部分、顯示部分和輸入部分組成。 圖3.1 計(jì)算器的系統(tǒng)組成框圖 3.1 計(jì)算器的計(jì)算部分 接下來我們就分些這個(gè)計(jì)算機(jī)也得計(jì)算的不穩(wěn),他是怎么通過計(jì)算的方式進(jìn)行計(jì)算的,他是一般是通過八杯或者四杯的20斤是進(jìn)行計(jì)算的我們都很熟悉這種語言,并

30、且用這種VHDl語言進(jìn)行把這種程序更二的解決出來更好的預(yù)算裝出來具體的算法,我們上面都跟網(wǎng)的。據(jù)介紹了,他不能進(jìn)。進(jìn)行人也數(shù)的除法,但是他能夠更好的進(jìn)行任意數(shù)的加法,減法,這都是沒有任何問題的,他能更好地進(jìn)行繼續(xù)計(jì)算,所以工程是非常的強(qiáng)大的。 3.2 計(jì)算器的存儲(chǔ)部分 我們都知道計(jì)算器的存儲(chǔ)不分是非常的重要的,他主要有三個(gè)存儲(chǔ)蓄業(yè)去實(shí)現(xiàn)它計(jì)算的工程。在做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)用起來,讓上面相加的結(jié)

31、果進(jìn)行存著,然后再進(jìn)行的加減乘除,這樣都是非常的好的,非常的快的。 3.3 計(jì)算器的顯示部分 我們都知道計(jì)算出來的結(jié)果,一定要顯示在屏幕上,我們用的屏幕是Fede的屏幕,這種屏幕功能是非常的強(qiáng)大的,能夠非常更好的顯示圖形以及聲音的制作他需要的是BCD碼,這種BCD嗎?是非常的好的,能夠把自己的編譯的程序在這兒款軟件中更好的實(shí)踐,他是通過高低電平去控制數(shù)碼管兒的陰陽兩極。能夠更好的分析數(shù)字進(jìn)行加減乘除方便,運(yùn)算編程的程序,也是非常的高的,所以受到了廣大程序人員的喜歡。七段譯碼器的基本結(jié)構(gòu)如圖3.2所示。 圖3.2 七段譯碼器的結(jié)構(gòu) 通過查閱大量的數(shù)據(jù)我

32、們可以得出以下的代碼,并且能夠更好的去實(shí)現(xiàn)功能,WITH indata SELECT outdata<="0111111"WHEN"0000", --0的顯示; "0000110"WHEN"0001", --1的顯示; "1011011"WHEN"0010", --2的顯示; "1001111"WHEN"0011", --3的顯示; "1100110"WHEN"0100", --4的顯示; "1101101"WHEN"0101",

33、--5的顯示; "1111101"WHEN"0110", --6的顯示; "0000111"WHEN"0111", --7的顯示; "1111111"WHEN"1000", --8的顯示; "1101111"WHEN"1001", --9的顯示; "0000000"WHEN OTHERS; --其它的輸入按鍵均不顯示。 計(jì)算器顯示部分的設(shè)計(jì)和實(shí)現(xiàn),實(shí)際上就是七段譯碼器的設(shè)計(jì)和實(shí)現(xiàn),三個(gè)七段譯碼器分別顯示的是個(gè)位、十位和百位。輸入第一個(gè)數(shù)字后至再一

34、次按下數(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ù)字,通過這十個(gè)數(shù)字不斷的阻隔進(jìn)行累加或者累,除了都能可以計(jì)算如何我們想要的結(jié)果通過我們?nèi)藶榈乃枷肴タ刂频?,他?yīng)該怎么去進(jìn)行計(jì)算,并延最終的。結(jié)果會(huì)顯示到我們想要的屏幕上,具體的代碼就是。 PROCESS(inclk,reset)

35、 BEGIN IF reset='1'THEN --異步復(fù)位信號(hào)為高電平的時(shí)候 outnum<="0000"; --把“0000”賦值給數(shù)字的輸出端口 ELSIF inclk'EVENT AND inclk='1'THEN CASE innum IS WHEN"0000000001"=>outnum<="0000";outflag<='1'; --按下一個(gè)鍵表示輸入為0 WHEN"000000001

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

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

38、 --按下第九個(gè)鍵表示輸入為8 WHEN"1000000000"=>outnum<="1001";outflag<='1'; --按下第十個(gè)鍵表示輸入為9 WHEN OTHERS=>outnum<=outnum;outflag<='0'; --不按鍵時(shí)保持 END CASE; END IF; END PROCESS; 我們都知道,在這次設(shè)計(jì)中,程序是非常的重要的我們就只應(yīng)該讓他怎么去判斷怎么輸入我們想要的時(shí)候最一般都是零到九這幾個(gè)數(shù)字,我們可以通過高低電平需要更好的去控制,并且怎么進(jìn)行下降,成熟后也應(yīng)該用高級(jí)電瓶騎更

39、好的控制,這樣才能更好的去實(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)該還這樣拖過好深的形式能夠更好的分析如何,這個(gè)程序是什么地方發(fā)生了錯(cuò)誤,并且能夠及時(shí)的讓程序員是及時(shí)的改正出來。本文設(shè)計(jì)的這個(gè)預(yù)算系行他就是能實(shí)現(xiàn)加法的運(yùn)籌,并且能夠讓很多時(shí)候進(jìn)行解相加,相加之后能夠更多的顯示在屏幕上,并且這個(gè)怨氣的。運(yùn)行的速度是非常的快的能夠占有很多資源,本文所涉及的環(huán)節(jié)也是非常的少的非常的簡單和職別嗯,

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

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

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

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

44、,除法運(yùn)算器的工作原理,通過這樣我們能夠更好的去分析和驗(yàn)證,反正他們并且對(duì)我們驗(yàn)證的仿真結(jié)果進(jìn)行了實(shí)力的驗(yàn)證,發(fā)現(xiàn)沒有任何的問題,他是非常的正確的,所以這次的實(shí)驗(yàn)是非常的成功的。最低的,仿真的結(jié)果如下圖所示。 圖4.8 除法器仿真 148÷13=11……5,22÷13=1……9 第5章 結(jié)束語 通過這次論文的設(shè)計(jì)和研究,我從剛開始是不知道怎么去做,我剛開始做這個(gè)題目的時(shí)候頭是暈暈的慢慢的通過我問同學(xué)問老師慢慢的有了一點(diǎn)的思路,知道自己應(yīng)該怎么去做。首先我通過在網(wǎng)絡(luò)搜索的過程中找到了我的論文設(shè)計(jì)的基本的框架,然后在一點(diǎn)一點(diǎn)的進(jìn)行摸索,再通過在網(wǎng)絡(luò)上查閱大量的資料,進(jìn)

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

46、心的為我講解。在我不懂的時(shí)候也是他在為我講解。他沒有任何的反感對(duì)我非常細(xì)心的給我講解,我應(yīng)該怎么去做。與此同時(shí),我還應(yīng)該感謝我們學(xué)院的各位領(lǐng)導(dǎo),是他們在我的大學(xué)四年對(duì)我的無微不至的關(guān)懷,我才能有今天的成就。非常的感謝他們,也是,他們給了我這一次難得的機(jī)會(huì),讓我真正的踏入了社會(huì),真正的用自己所學(xué)的理論,根據(jù)自己大學(xué)四年所學(xué)的理論知識(shí)完成了一篇具有理論意義的學(xué)術(shù)論文。在其中的過程中,我也學(xué)會(huì)了很多的事情,面對(duì)困難,我不應(yīng)該退縮,應(yīng)該勇往直前,因?yàn)橐坏┩顺?,就注定失敗,只有?jiān)持不懈的去努力,才能夠成功。 參考文獻(xiàn) [1]崔葛瑾,沈利芳,李偉民.基于FPGA

47、的數(shù)字電路系統(tǒng)設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2008年. [2]王彥.基于FPGA的工程設(shè)計(jì)與應(yīng)用[M].西安:西安電子科技大學(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年

48、. [8]陳育人.8 位計(jì)算器的指令系統(tǒng)與硬件結(jié)構(gòu)[J].微電子技術(shù),2000年,第28卷第3期. [9]王冬冬.基于FPGA的浮點(diǎn)運(yùn)算器設(shè)計(jì).萬方數(shù)據(jù), HTTP://d.g.WANGFANGDATA.com.CN/Thesis_Y1548067.ASPX. [10]王樹國.科學(xué)計(jì)算器的大規(guī)模集成電路芯片設(shè)計(jì).萬方數(shù)據(jù), HTTP://d.g.WANGFANGDATA.com.CN/Thesis_Y722644.ASPX. 附 錄 附錄A:源程序 4位二進(jìn)制并行進(jìn)位加法器的源程序ADDER4B.VHD如下: LIBRARY IEEE;

49、 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER4B IS PORT(ci:IN STD_LOGIC; a:IN STD_LOGIC_VECTOR(3 DOWNTO 0); b:IN STD_LOGIC_VECTOR(3 DOWNTO 0); s:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

50、 co:OUT STD_LOGIC ); END ADDER4B; ARCHITECTURE behave OF ADDER4B IS SIGNAL SINT:STD_LOGIC_VECTOR(4 DOWNTO 0); --類似于在芯片 --部定義的一個(gè)數(shù)據(jù) SIGNAL aa,bb:STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN aa<='0' & a; --拓展位數(shù),使其成為最高位 bb<='0' & b;

51、 SINT<=aa+bb+ci; --相加 s<=SINT(3 DOWNTO 0); co<=SINT(4); --最高位為輸出進(jìn)位位 END behave; 頂層模塊:8位二進(jìn)制并行進(jìn)位加法器的部分程序ADDER4B.VHD如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER8B IS PORT(ci:IN STD

52、_LOGIC; a:IN STD_LOGIC_VECTOR(7 DOWNTO 0); b:IN STD_LOGIC_VECTOR(7 DOWNTO 0); s:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); co:OUT STD_LOGIC ); END ADDER8B; ARCHITECTURE a OF ADDER8B IS COMPONENT A

53、DDER4B --引用4位二進(jìn)制并行進(jìn)位加法器 PORT(ci:IN STD_LOGIC; a:IN STD_LOGIC_VECTOR(3 DOWNTO 0); b:IN STD_LOGIC_VECTOR(3 DOWNTO 0); s:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); co:OUT STD_LOGIC ); END COMPONENT; SIGNAL CARRY_OUT:STD_LOGIC; BEGIN U1:ADDER

54、4B PORT MAP(ci=>ci,a=>a(3 DOWNTO 0),b=>b(3 DOWNTO 0),s=>s(3 DOWNTO 0),co=>CARRY_OUT); U2:ADDER4B PORT MAP(ci=>CARRY_OUT,a=>a(7 DOWNTO 4),b=>b(7 DOWNTO 4),s=>s(7 DOWNTO 4),co=>co); END a; 4位二進(jìn)制并行進(jìn)位減法器的源程序suber.VHD如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGI

55、C_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY suber IS PORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0); b:IN STD_LOGIC_VECTOR(3 DOWNTO 0); ci:IN STD_LOGIC; s:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

56、co:OUT STD_LOGIC ); END suber; ARCHITECTURE behave OF suber IS COMPONENT adder IS --引用加法器的模塊 PORT(a:IN STD_LOGIC; b:IN STD_LOGIC; ci:IN STD_LOGIC; s:OUT STD_LOGIC; co:OUT STD_LOGIC ); END COMPONENT; SIGNAL btem:STD_LOGIC_VECTOR(3

57、 DOWNTO 0); --減數(shù)寄存 SIGNAL ctem:STD_LOGIC_VECTOR(4 DOWNTO 0); --進(jìn)位寄存 SIGNAL stem:STD_LOGIC_VECTOR(3 DOWNTO 0); --結(jié)果寄存 BEGIN btem(3 DOWNTO 0)<=NOT b (3 DOWNTO 0); --先把減數(shù)求反 ctem(0)<=NOT ci; --輸出進(jìn)位也求反,從而對(duì)減數(shù)求補(bǔ)碼 g1:FOR i IN 0 TO 3 GENERATE --連用

58、4位全加器 add:adder PORT MAP (a(i),btem(i),ctem(i),stem(i),ctem(i+1)); END GENERATE; s(3 downto 0)<=stem(3 downto 0); --結(jié)果輸出 co<=NOT ctem(4); --求反輸出進(jìn)位 END behave; 8位二進(jìn)制并行進(jìn)位減法器的原理圖: 乘法器的源程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; U

59、SE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY mul IS PORT ( a,b : IN STD_LOGIC_VECTOR(3 DOWNTO 0); y : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END mul; ARCHITECTURE arch OF mul IS BEGIN y(7 DOWNTO 0) <= a(3 DOWNTO 0)*b(3 DOWNTO 0); END arch; 除

60、法器的源程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY diver IS PORT(a:IN STD_LOGIC_VECTOR(7 DOWNTO 0); b:IN STD_LOGIC_VECTOR(3 DOWNTO 0); clk:IN STD_LOGIC;

61、 str:IN STD_LOGIC; s:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END ; ARCHITECTURE behave OF diver IS COMPONENT suber IS --引用減法器 PORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

62、 b:IN STD_LOGIC_VECTOR(3 DOWNTO 0); ci:IN STD_LOGIC; s:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); co:OUT STD_LOGIC ); END COMPONENT; TYPE state_type IS (start,one,two,three,eror); --狀態(tài)定義 SIGNAL state:state_type; SIGNAL ain:STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL bin:STD_LOGIC_VEC

63、TOR(3 DOWNTO 0); SIGNAL atem:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL btem:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL stem:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL citem:STD_LOGIC; SIGNAL cotem:std_logic; BEGIN p2:PROCESS(clk) VARIABLE n: INTEGER range 0 to 3; --移位次數(shù)計(jì)數(shù)值 BEGIN IF clk'EVENT AND

64、clk='1' THEN CASE state IS WHEN start=> --開始狀態(tài) IF str='1' THEN state<=one; atem(3 DOWNTO 0)<=a(7 DOWNTO 4); --把高4位放到減法器被減數(shù)端 btem(3 DOWNTO 0)<=b(3 DOWNTO 0); --把除數(shù)放到減法器減數(shù)端 ain(7 DOWNTO 0)<=a(7 DOWNTO 0); --寄存被除數(shù) bin(3 DOWNTO 0

65、)<=b(3 DOWNTO 0); --寄存除數(shù) END IF; WHEN one=> --第一次移位 IF cotem='0' THEN state<=eror; ELSE ain(3 downto 1)<=ain(2 downto 0); --被除數(shù)做移位 ain(0)<=not cotem; --在最低位接受該位商值 atem(3 downto 0)<=ain(6 downto 3); --除數(shù)寄存器高4位輸

66、到減法器,作為被減數(shù) state<=two; END IF; WHEN two=> --第二次移位 IF n=2 THEN state<=three; n:=0; ELSE state<=two; n:=n+1; END IF; IF cotem='0' THEN atem(3 DOWNTO 1)<=stem(2 DOWNTO 0); ELSE atem(3 DOWNTO 1)<=atem(2 DOWNTO 0); END IF; ain(3 DOWNTO 1)<=ain(2 DOWNTO 0); ain(0)<=NOT cotem; atem(0)<=ain(3); WHEN three=> --第三次移位 s(3

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!