四位二進(jìn)制加法器和乘法器_第1頁(yè)
四位二進(jìn)制加法器和乘法器_第2頁(yè)
四位二進(jìn)制加法器和乘法器_第3頁(yè)
四位二進(jìn)制加法器和乘法器_第4頁(yè)
四位二進(jìn)制加法器和乘法器_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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、1 引言EDA (ElectronicDesign Automatic)技術(shù)的應(yīng)用引起電子產(chǎn)品及系統(tǒng)開發(fā)的革命性 變革。VHDL語(yǔ)言作為可編程邏輯器件的標(biāo)準(zhǔn)語(yǔ)言描述能力強(qiáng),覆蓋面廣,抽象能力強(qiáng), 在實(shí)際應(yīng)用中越來(lái)越廣泛。1.1 設(shè)計(jì)的目的本次設(shè)計(jì)的目的就是在掌握EDA實(shí)驗(yàn)開發(fā)系統(tǒng)的初步使用基礎(chǔ)上,了解EDA技術(shù), 了解并掌握VHDL硬件描述語(yǔ)言的設(shè)計(jì)方法和思想,通過(guò)學(xué)習(xí)的VHDL語(yǔ)言結(jié)合電子電 路的設(shè)計(jì)知識(shí)理論聯(lián)系實(shí)際,掌握所學(xué)的課程知識(shí),學(xué)習(xí)V HDL基本單元電路的綜合設(shè) 計(jì)應(yīng)用。通過(guò)對(duì)四位二進(jìn)制加法器和四位二進(jìn)制乘法器的設(shè)計(jì),鞏固和綜合運(yùn)用所學(xué)課 程,加深對(duì)數(shù)字電路和V HDL基本單元的理

2、解,理論聯(lián)系實(shí)際,提高設(shè)計(jì)能力,提高分 析、解決計(jì)算機(jī)技術(shù)實(shí)際問(wèn)題的獨(dú)立工作能力。通過(guò)課程設(shè)計(jì)深入理解V HDL語(yǔ)言的精 髓,達(dá)到課程設(shè)計(jì)的目標(biāo),加法器的設(shè)計(jì)可以加深對(duì)門電路的理解,乘法器的設(shè)計(jì)可以 使對(duì)計(jì)算機(jī)怎樣工作有了更深了解。1.2 設(shè)計(jì)的基本內(nèi)容本文是設(shè)計(jì)的一個(gè)四位二進(jìn)制加法器和四位二進(jìn)制乘法器。四位二進(jìn)制加法器使用 門電路構(gòu)成,用VHDL語(yǔ)言對(duì)其實(shí)現(xiàn)。乘法器使用VHDL語(yǔ)言里的乘法運(yùn)算符實(shí)現(xiàn),使用 數(shù)碼管動(dòng)態(tài)顯示一個(gè)三位數(shù)結(jié)果。然后用VHDL語(yǔ)言編寫相應(yīng)的程序,在計(jì)算機(jī)上實(shí)現(xiàn), 最后進(jìn)行了加法器和乘法器的仿真分析。2 EDA、VHDL 簡(jiǎn)介2.1 EDA簡(jiǎn)介EDA是電子設(shè)計(jì)自動(dòng)化(E

3、lectronic Design Automation)縮寫,是90年代初從CAD(計(jì)算機(jī)輔助設(shè)計(jì))、CAM (計(jì)算機(jī)輔助制造)、CAT (計(jì)算機(jī)輔助測(cè)試)和CAE (計(jì) 算機(jī)輔助工程)的概念發(fā)展而來(lái)的。 EDA 技術(shù)是以計(jì)算機(jī)為工具,根據(jù)硬件描述語(yǔ)言 HDL( Hardware Description language)完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡(jiǎn)、 分割、綜合及優(yōu)化、布局布線、仿真以及對(duì)于特定目標(biāo)芯片的適配編譯和編程下載等工 作。典型的 EDA 工具中必須包含兩個(gè)特殊的軟件包,即綜合器和適配器。綜合器的功 能就是將設(shè)計(jì)者在EDA平臺(tái)上完成的針對(duì)某個(gè)系統(tǒng)項(xiàng)目的HDL、原理圖或狀態(tài)

4、圖形描 述,針對(duì)給定的硬件系統(tǒng)組件,進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得我們欲實(shí)現(xiàn)功 能的描述文件。綜合器在工作前,必須給定所要實(shí)現(xiàn)的硬件結(jié)構(gòu)參數(shù),它的功能就是將 軟件描述與給定的硬件結(jié)構(gòu)用一定的方式聯(lián)系起來(lái)。也就是說(shuō),綜合器是軟件描述與硬 件實(shí)現(xiàn)的一座橋梁。綜合過(guò)程就是將電路的高級(jí)語(yǔ)言描述轉(zhuǎn)換低級(jí)的、可與目標(biāo)器件 FPGA/CPLD 相映射的網(wǎng)表文件。適配器的功能是將由綜合器產(chǎn)生的王表文件配置與指定的目標(biāo)器件中,產(chǎn)生最終的 下載文件,如JED文件。適配所選定的目標(biāo)器件(FPGA/CPLD芯片)必須屬于在綜合 器中已指定的目標(biāo)器件系列。硬件描述語(yǔ)言HDL是相對(duì)于一般的計(jì)算機(jī)軟件語(yǔ)言,如:C、P

5、ASCAL而言的。 HDL 語(yǔ)言使用與設(shè)計(jì)硬件電子系統(tǒng)的計(jì)算機(jī)語(yǔ)言,它能描述電子系統(tǒng)的邏輯功能、電 路結(jié)構(gòu)和連接方式。設(shè)計(jì)者可利用 HDL 程序來(lái)描述所希望的電路系統(tǒng),規(guī)定器件結(jié)構(gòu) 特征和電路的行為方式;然后利用綜合器和適配器將此程序編程能控制FPGA和CPLD 內(nèi)部結(jié)構(gòu),并實(shí)現(xiàn)相應(yīng)邏輯功能的的門級(jí)或更底層的結(jié)構(gòu)網(wǎng)表文件或下載文件。目前, 就FPGA/CPLD開發(fā)來(lái)說(shuō),比較常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL。2.2 硬件描述語(yǔ)言VHDL 簡(jiǎn)介VHDL語(yǔ)言是一種用于電路設(shè)計(jì)的高級(jí)語(yǔ)言。它在80年代的后期出現(xiàn)。最初是由美國(guó)國(guó)防部開發(fā)出來(lái)供美軍用來(lái)提高設(shè)計(jì)的可靠性和縮減開發(fā)

6、周期的一種使用范圍較小的設(shè)計(jì)語(yǔ)言 。但是,由于它在一定程度上滿足了當(dāng)時(shí)的設(shè)計(jì)需求,于是他在1987 年成為A I/IEEE的標(biāo)準(zhǔn)(IEEE STD 1076-1987)。1993年更進(jìn)一步修訂,變得更加完備, 成為A I/IEEE的A I/IEEE STD 1076-1993標(biāo)準(zhǔn)。目前,大多數(shù)的CAD廠商出品的EDA 軟件都兼容了這種標(biāo)準(zhǔn)。VHDL的英文全寫是:VHSIC(Very High eed Integrated Circuit) Hardware Descriptiong Language .翻譯成中文就是超高速集成電路硬件描述語(yǔ)言。因此它 的 應(yīng)用主要是 應(yīng)用在數(shù)字電路的 設(shè)計(jì)中。

7、 目 前 , 它在中國(guó)的 應(yīng)用多 數(shù) 是 用在 FPGA/CPLD/EPLD 的設(shè)計(jì)中。當(dāng)然在一些實(shí)力較為雄厚的單位,它也被用來(lái)設(shè)計(jì) ASIC。 VHDL 主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具 有硬件特征的語(yǔ)句外, VHDL 的語(yǔ)言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī) 高級(jí)語(yǔ)言。 VHDL 的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件, 一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分), 既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其 內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。

8、這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分 的概念是 VHDL 系統(tǒng)設(shè)計(jì)的基本點(diǎn)。 VHDL 比其它硬件描述語(yǔ)言相比有以下優(yōu)點(diǎn):與其他的硬件描述語(yǔ)言相比, VHDL 具有更強(qiáng)的行為描述能力,從而決定了 他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語(yǔ)言。強(qiáng)大的行為描述能力是避開具體的器件結(jié) 構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。VHDL 豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè) 計(jì)系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。VHDL 語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解 和已有設(shè)計(jì)的再利用功能。符合市場(chǎng)需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個(gè)代發(fā)組共同并行

9、工作才能實(shí)現(xiàn)。(4)對(duì)于用VHDL 完成的一個(gè)確定的設(shè)計(jì),可以利用 EDA 工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把 VHDL 描述設(shè)計(jì)轉(zhuǎn)變成門級(jí)網(wǎng)表。(5) VHDL 對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理 最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。2.2.2 VHDL 語(yǔ)言特點(diǎn)應(yīng)用 VHDL 進(jìn)行系統(tǒng)設(shè)計(jì),有以下幾方面的特點(diǎn)。功能強(qiáng)大VHDL 具有功能強(qiáng)大的語(yǔ)言結(jié)構(gòu)。它可以用明確的代碼描述復(fù)雜的控制邏輯設(shè)計(jì)。并且具有多層次的設(shè)計(jì)描述功能,支持設(shè)計(jì)庫(kù)和可重復(fù)使用的元件生成。VHDL是一種 設(shè)計(jì)、仿真和綜合的標(biāo)準(zhǔn)硬件描述語(yǔ)言。(二)可移植性VHDL 語(yǔ)言是一個(gè)標(biāo)準(zhǔn)語(yǔ)言

10、,其設(shè)計(jì)描述可以為不同的 EDA 工具支持。它可以從 一個(gè)仿真工具移植到另一個(gè)仿真工具,從一個(gè)綜合工具移植到另一個(gè)綜合工具,從一個(gè) 工作平臺(tái)移植到另一個(gè)工作平臺(tái)。此外,通過(guò)更換庫(kù)再重新綜合很容易移植為 ASIC 設(shè) 計(jì)。(三)獨(dú)立性VHDL 的硬件描述與具體的工藝技術(shù)和硬件結(jié)構(gòu)無(wú)關(guān)。設(shè)計(jì)者可以不懂硬件的結(jié) 構(gòu),也不必管最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。程序設(shè)計(jì)的硬件目 標(biāo)器件有廣闊的選擇范圍,可以是各系列的 CPLD、FPGA 及各種門陣列器件。(四)可操作性由于 VHDL 具有類屬描述語(yǔ)句和子程序調(diào)用等功能,對(duì)于已完成的設(shè)計(jì),在不改變?cè)闯绦虻臈l件下,只需改變端口類屬參量或函數(shù),

11、就能輕易地改變?cè)O(shè)計(jì)的規(guī)模和結(jié)構(gòu)。(五)靈活性VHDL 最初是作為一種仿真標(biāo)準(zhǔn)格式出現(xiàn)的,有著豐富的仿真語(yǔ)句和庫(kù)函數(shù)。使其 在任何大系統(tǒng)的設(shè)計(jì)中,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。所以,即使在遠(yuǎn)離門級(jí)的高層次 (即使設(shè)計(jì)尚未完成時(shí)),設(shè)計(jì)者就能夠?qū)φ麄€(gè)工程設(shè)計(jì)的結(jié)構(gòu)和功能的可行性進(jìn)行查 驗(yàn),并做出決策。S0s2couts3圖 3.1 加法器系統(tǒng)框圖albla2b2S0s2couts3圖 3.1 加法器系統(tǒng)框圖albla2b2a3b33 設(shè)計(jì)規(guī)劃過(guò)程加法器與乘法器的原理四位二進(jìn)制加法器的組成原理 加法器是運(yùn)算電路的核心。計(jì)算機(jī)中實(shí)現(xiàn)減法、乘法和除法都要最終轉(zhuǎn)化成加法 來(lái)運(yùn)算。本實(shí)驗(yàn)才沒有用VHDL語(yǔ)言中的

12、加法運(yùn)算符。而是用基本門電路來(lái)實(shí)現(xiàn)的。一方面可以提高運(yùn)算速度,另一方面可以使我們加深對(duì)數(shù)字電路的認(rèn)識(shí)。圖 3.1 所示是四位 二進(jìn)制加法器的原理框圖。INPUTa0b0四位二進(jìn)制乘法器的組成原理本實(shí)驗(yàn)學(xué)習(xí) VHDL 中乘法的使用。在 VHDL 語(yǔ)言中,一般有 c(7 downto 0)=a(3 downto 0)*b(3 downto 0)。所以 4 位二進(jìn)制數(shù)的乘積是 8 位二進(jìn)制數(shù),為了更符合習(xí)慣, 我們把結(jié)果轉(zhuǎn)化成了十進(jìn)制。所以結(jié)果范圍是 0225,即 015*15。本實(shí)驗(yàn)采用的三位數(shù)在數(shù)碼管上顯示的方法是:分別確定百位、十位和個(gè)位。送數(shù) 碼管動(dòng)態(tài)顯示。采用與各個(gè)數(shù)逐一比較的方法確定。如

13、百位的確定可以將結(jié)果與200和 100 比較,若比 200 大則百位為 2,在 100 到 200 之間則百位為 1,小于 100則百位為 0, 不顯示。十位的確定可以將結(jié)果去掉百位,然后與10, 20,.90比較而得。本文設(shè)計(jì)的四位二進(jìn)制乘法器系統(tǒng)框圖如圖3.2所示。multiplyelkled_data7.0a3.0seg_sel2.0b3.0圖 3.2 乘法器系統(tǒng)框圖加法器與乘法器的設(shè)計(jì)四位二進(jìn)制加法器和乘法器由VHDL實(shí)現(xiàn)后,利用EDA工具對(duì)各模塊進(jìn)行了時(shí)序仿真(Timing Simulation),其目的是通過(guò)時(shí)序可以更清楚的了解程序的工作過(guò)程。3.2.1 加法器的設(shè)計(jì)1位全加器的V

14、HDL程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity add1 is- 1 位全加器port( a,b:in std_logic;cin:in std_logic;cout:out std_logic;s:out std_logic);end add1;architecture rtl of add1 isbeginprocess(a,b,cin)-列舉所有情況對(duì)應(yīng)的輸出variable temp,temp1:std_l

15、ogic;begintemp:=a xor b;temp1:= temp xor cin;cout=(temp and cin)or (a and b);s=temp1;end process;end rtl;-以上是對(duì) add1 的定義以上是對(duì)一位全加器的定義,運(yùn)用一位全加器構(gòu)成四位全加器。其中引腳分配如下Node NameDirectio nLd匚atio仃I/O BankVreh ijroupI/O StandardaOInputPIN 993Ei3 N0LVTTL (default)alInputPIN 1003Ei3 N0LVTTL (default)a2InputPIN 1033E

16、i3 N0LVTTL (default)a3InputPIN 1043Ei3 N0LVTTL (default)boInputPIN 1053B3 N0LVTTL (default)blInputPIN 1063E:3 N0LVTTL (default)b2InputPIN 1073E:3 N0LVTTL (default)b3Input3E:3 N0LVTTL (default)cinInputLVTTL (default)妙 COIjtOutputPIN 351E:1 N2LVTTL (default)/50OutputPIN 973E:3 N0LVTTL (default)/51Outp

17、utPIN 983E:3 N0LVTTL (default)/52OutputPIN 943E:3 N1LVTTL (default)/53OutputPIN 963E:3 N1LVTTL (default)備注:cin接地。四位二進(jìn)制加法器仿真圖如下所示:Ret| * | Time: |162-山詣| Interval: 1112ris5n3Name:Value: r100 Ons 200 0ns 300 0ns 400 0nsIlli500 0ns 600 0ns1 1700.0ns 800.0nsII900cinDI?1NNHNNNNa.1NN-_Z sDr-_z cout1L仿真分析:

18、cin為輸入信號(hào),表示上一次的進(jìn)位,b, a為輸入信號(hào),表示兩個(gè)相加的數(shù),s 為輸出信號(hào),表示本次運(yùn)算的結(jié)果, cout 為進(jìn)位輸出信號(hào),表示本次運(yùn)算的進(jìn)位,如圖 所示:當(dāng) cin 為 0, a,b 為 1 時(shí),輸出為:s=0, cout=l,當(dāng) cin=l, a=l, b=0 時(shí),輸 出為:s=0, cout=1,當(dāng) cin=1, a=1, b=1 時(shí)候,輸出為:s=1, cout=1。3.2.2 乘法器的設(shè)計(jì)乘法器的設(shè)計(jì)用VHDL乘法運(yùn)算符實(shí)現(xiàn)。在 VHDL 語(yǔ)言中,一般有 c(7 downto 0)=a(3 downto 0)*b(3 downto 0) 。所以 4 位二 進(jìn)制數(shù)的乘積是

19、 8 位二進(jìn)制數(shù),為了更符合習(xí)慣,我們把結(jié)果轉(zhuǎn)化成了十進(jìn)制。所以結(jié) 果范圍是 0225,即 015*15。本實(shí)驗(yàn)采用的三位數(shù)在數(shù)碼管上顯示的方法是:分別確定百位、十位和個(gè)位。送數(shù)碼管動(dòng)態(tài)顯示。采用與各個(gè)數(shù)逐一比較的方法確定。如百位的確定可以將結(jié)果與200和100 比較,若比 200 大則百位為 2,在 100 到 200 之間則百位為 1,小于 100則百位為 0,不顯示。十位的確定可以將結(jié)果去掉百位,然后與10, 20,.90比較而得。VHDL 語(yǔ)言設(shè)計(jì)如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigne

20、d.all;entity multiply is-構(gòu)造體描述 4 位乘法器port( clk:in std_logic;a,b:in std_logic_vector(3 downto 0); led_data:out std_logic_vector(7 downto 0);seg_sel:out std_logic_vector(2 downto 0);end multiply;architecture rtl of multiply issignal led_data2,led_data1,led_data0: std_logic_vector(7 downto 0);-LED 顯示代碼

21、,寄存十位個(gè)位 的數(shù)signal displayclk: std_logic;beginprocess(a,b)variable s: std_logic_vector(7 downto 0);-乘積variable bai,shiwei,gewei: std_logic_vector(3 downto 0);-乘積的十位個(gè)位begins(7 downto 0):=a(3 downto 0)*b(3 downto 0);ifs=11001000 then bai:=0010;s:=s-11001000; -200以上elsif s=01100100 then bai:=0001;s:=s-01

22、100100; -100以上else bai:=0000;end if;if s=01011010 then shiwei:=1001;s:=s-01011010;gewei:=s(3 downto 0);-90以上elsif s=01010000 then shiwei:=1000;s:=s-01010000;gewei:=s(3 downto 0);-80以上elsif s=01000110 then shiwei:=0111;s:=s-01000110;gewei:=s(3 downto 0); -70以上elsif s=00111100 then shiwei:=0110;s:=s-0

23、0111100;gewei:=s(3 downto 0);-60以上elsif s=00110010 then shiwei:=0101;s:=s-00110010;gewei:=s(3 downto 0);-50以上elsif s=00101000 then shiwei:=0100;s:=s-00101000;gewei:=s(3 downto 0);-40以上elsif s=00011110 then shiwei:=0011;s:=s-00011110;gewei:=s(3 downto 0);-30以上elsif s=00010100 then shiwei:=0010;s:=s-0

24、0010100;gewei:=s(3 downto 0);-20以上elsif s=00001010 then shiwei:=0001;s:=s-00001010;gewei:=s(3 downto 0);-10以上 else gewei:=s(3 downto 0);shiwei:=0000;end if;case bai iswhen 0001 = led_data2 led_data2 led_data2 led_data1 led_data1 led_data1 led_data1 led_data1 led_data1 led_data1 led_data1 led_data1 l

25、ed_data1 led_data1 led_data0 led_data0 led_data0 led_data0 led_data0 led_data0 led_data0 led_data0 led_data0 led_data0 led_data0=11111111;end case;end process;process(clk)variable cnt:integer range 0 to 20000;-1KHZ 掃描顯示時(shí)鐘beginif clkevent and clk=1 then cnt:=cnt+1;if cnt10000 then displayclk=1;elsif

26、cnt20000 then displayclk=0;else cnt:=0;displayclk=0;end if;end if;end process;process (displayclk)-顯示兩位variable cnt2: std_logic_vector(1 downto 0); beginif displayclkevent and displayclk=1 then cnt2:=cnt2+1; if cnt2=01 then seg_sel=001; led_data=led_data0;elsif cnt2=010 then seg_sel=010; led_data=le

27、d_data1;elsif cnt2=11 then cnt2:=00; seg_sel=100; led_data=led_data2;end if;end if;end process;end rtl;實(shí)驗(yàn)引腳分配如下:仿真分析:elk為時(shí)鐘脈沖輸入信號(hào),a, b是輸出信號(hào)表示要參與運(yùn)算的兩個(gè)數(shù), Led_data, seg_set 為輸出信號(hào),表示計(jì)算的結(jié)果。結(jié)束語(yǔ)通過(guò)兩周的緊張工作,最后完成了我的設(shè)計(jì)任務(wù)四位二進(jìn)制加法器和乘法器的 設(shè)計(jì)。通過(guò)本次課程設(shè)計(jì)的學(xué)習(xí),我深深的體會(huì)到設(shè)計(jì)課的重要性和目的性所在。本次 設(shè)計(jì)課不僅僅培養(yǎng)了我們實(shí)際操作能力,也培養(yǎng)了我們靈活運(yùn)用課本知識(shí)完成工作的能

28、力。加法器和乘法器雖然是比較簡(jiǎn)單的設(shè)計(jì)課程,但它給了我一個(gè)鍛煉的機(jī)會(huì)和檢驗(yàn)的 機(jī)會(huì),也給我復(fù)習(xí)計(jì)算機(jī)組成原理這門課提供了方便。希望學(xué)校以后多安排一些類似的 實(shí)踐環(huán)節(jié),讓同學(xué)們學(xué)以致用。加法器和乘法器的設(shè)計(jì)讓我對(duì)門電路更有清楚了解,對(duì) VHDL 語(yǔ)言也有了一定的了解。加法器是計(jì)算機(jī)運(yùn)算中的重要組成部分,而且是其他運(yùn) 算實(shí)現(xiàn)的基礎(chǔ)。在設(shè)計(jì)中要求我要有耐心和毅力,還要細(xì)心,稍有不慎,一個(gè)小小的錯(cuò)誤就會(huì)導(dǎo)致 結(jié)果的不正確,感謝肖曉麗老師耐心的給我指出了錯(cuò)誤,讓我面對(duì)錯(cuò)誤的檢查有足夠的 耐心,通過(guò)這次設(shè)計(jì)和設(shè)計(jì)中遇到的問(wèn)題,也積累了一定的經(jīng)驗(yàn),對(duì)以后從事設(shè)計(jì)工作 會(huì)有一定的幫助。在應(yīng)用VHDL的過(guò)程中讓

29、我真正領(lǐng)會(huì)到了其并行運(yùn)行與其他軟件順序 執(zhí)行的差別及其在電路設(shè)計(jì)上的優(yōu)越性。VHDL語(yǔ)言具有多層次描述系統(tǒng)硬件功能的能 力,可以從系統(tǒng)的數(shù)學(xué)模型直到門級(jí)電路,用來(lái)進(jìn)行數(shù)字系統(tǒng)的設(shè)計(jì)方便靈活。致謝在此次課程設(shè)計(jì)中,非常感謝肖曉麗老師對(duì)我的指導(dǎo)與大力的幫助。如果沒有她嚴(yán) 謹(jǐn)細(xì)致、一絲不茍地批閱和指正,本文很難在這個(gè)短時(shí)間(兩周)內(nèi)完成。在論文即將 完成之際,我的心情無(wú)法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長(zhǎng)、 同學(xué)、朋友給了我無(wú)言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意!參考文獻(xiàn)David A.Patterson.計(jì)算機(jī)組成和設(shè)計(jì)M.清華大學(xué)出版社,2003年12月William Stal

30、lings計(jì)算機(jī)組織與結(jié)構(gòu)M.高等教育出版社,2001年8月曾繁泰,陳美金.VHDL程序設(shè)計(jì)M.清華大學(xué)出版社,20014潘松.VHDL實(shí)用教程M.電子科技大學(xué)出版社,2000王愛英計(jì)算機(jī)組成與結(jié)構(gòu)M清華大學(xué)出版社.2001年2月附件:加法器的 VHDL 語(yǔ)言設(shè)計(jì):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity add1 is- 1 位全加器port( a,b:in std_logic;cin:in std_logic;cou

31、t:out std_logic;s:out std_logic);end add1;architecture rtl of add1 isbeginprocess(a,b,cin)-列舉所有情況對(duì)應(yīng)的輸出variable temp,temp1:std_logic;begintemp:=a xor b;temp1:= temp xor cin;cout=(temp and cin)or (a and b);s=temp1;end process;end rtl;-以上是對(duì) add1 的定義library ieee;-整體組裝use ieee.std_logic_1164.all;use ieee

32、.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity adder4 is- 4 位全加器port( a0,a1,a2,a3:in std_logic; -四位二進(jìn)制輸出b0,b1,b2,b3:in std_logic;-四位二進(jìn)制輸出cin:in std_logic;-進(jìn)位輸入,本實(shí)驗(yàn)設(shè)為 0cout:out std_logic;-進(jìn)位輸出 s0,s1,s2,s3:out std_logic -和);end adder4;architecture rtl of adder4 issignal cingnd:std_logic;-

33、由于撥瑪開關(guān)只有 8 個(gè),故進(jìn)位輸入不接signal cout1,cout2,cout3:std_logic;-第一位第二為第三位向高位進(jìn)位輸出 component add1 is-元件例化語(yǔ)句,1 位全加器port( a,b:in std_logic;cin:in std_logic;s:out std_logic);end component;begincingnda0,-模塊的名稱映射b=b0, cin=cingnd, cout=cout1,s=s0);u2: add1 port map( a=a1, b=b1,cin=cout1, cout=cout2, s=s1);u3: add1

34、port map( a=a2, b=b2,cin=cout2, cout=cout3, s=s2);u4: add1 port map( a=a3, b=b3,cin=cout3,cout=cout,s=s3);end rtl;乘法器的 VHDL 語(yǔ)言設(shè)計(jì):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity multiply is-構(gòu)造體描述 4 位乘法器port( clk:in std_logic;a,b:in std_logic_vector(3 downto 0); led_dat

35、a:out std_logic_vector(7 downto 0); seg_sel:out std_logic_vector(2 downto 0) );end multiply;architecture rtl of multiply issignal led_data2,led_data1,led_data0: std_logic_vector(7 downto 0);-LED 顯示代碼,寄存十位個(gè)位 的數(shù)signal displayclk: std_logic;beginprocess(a,b)variable s: std_logic_vector(7 downto 0);-乘積v

36、ariable bai,shiwei,gewei: std_logic_vector(3 downto 0);-乘積的十位個(gè)位begins(7 downto 0):=a(3 downto 0)*b(3 downto 0);ifs=11001000 then bai:=0010;s:=s-11001000; -200以上elsif s=01100100 then bai:=0001;s:=s-01100100; -100以上else bai:=0000;end if;if s=01011010 then shiwei:=1001;s:=s-01011010;gewei:=s(3 downto 0);-90以上elsif s=01010000 then shiwei:=1000;s:=s-01010000;gewei:=s(3 downto 0);-80以上elsif s=01000110 then shiwei:=0111;s:=s-01000110;gewei:=s(3 downto 0); -70以上elsif s=00111100 then shiwei:=0110;s:=s-00111100;gewei:=s(3 downto 0);-60以上elsif s=00110010 then shiwei:=0101;s:=

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論