EDA大作業(yè)_簡(jiǎn)易計(jì)算器.docx_第1頁(yè)
EDA大作業(yè)_簡(jiǎn)易計(jì)算器.docx_第2頁(yè)
EDA大作業(yè)_簡(jiǎn)易計(jì)算器.docx_第3頁(yè)
EDA大作業(yè)_簡(jiǎn)易計(jì)算器.docx_第4頁(yè)
EDA大作業(yè)_簡(jiǎn)易計(jì)算器.docx_第5頁(yè)
已閱讀5頁(yè),還剩13頁(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)介

簡(jiǎn)易計(jì)算器 簡(jiǎn)易計(jì)算器EDA大作業(yè)報(bào)告人:xx班級(jí):xx學(xué)號(hào):xxEDA大作業(yè) 簡(jiǎn)易計(jì)算器目錄EDA大作業(yè) 簡(jiǎn)易計(jì)算器1目的1任務(wù)1內(nèi)容及步驟1實(shí)驗(yàn)設(shè)計(jì)及實(shí)現(xiàn)過(guò)程2設(shè)計(jì)一個(gè)1位全加器2設(shè)計(jì)四位全加器3(1)設(shè)計(jì)四位加法器3(2)設(shè)計(jì)可進(jìn)行加減運(yùn)算的四位全加器5(3)實(shí)現(xiàn)四位全加器的原碼輸出6設(shè)計(jì)四位乘法器8(1)設(shè)計(jì)八位加法器9(2)設(shè)計(jì)四位乘法器10(3)將乘積結(jié)果轉(zhuǎn)化為十進(jìn)制數(shù)12構(gòu)成簡(jiǎn)易計(jì)算器14下載到實(shí)驗(yàn)箱上驗(yàn)證功能16小結(jié)與收獲17目的1、 學(xué)習(xí)面向可編程器件的FPGA的簡(jiǎn)單數(shù)字系統(tǒng)的設(shè)計(jì)流程;2、 掌握EDA軟件Quartus II的原理圖輸入方式,以及硬件描述語(yǔ)言描述方式;3、 熟悉實(shí)驗(yàn)裝置實(shí)驗(yàn)箱。任務(wù)在可編程邏輯器件上實(shí)現(xiàn)一個(gè)簡(jiǎn)易計(jì)算器,可以進(jìn)行4位二進(jìn)制數(shù)的加法和乘法運(yùn)算,其中被加(乘)數(shù)取值范圍015,加(乘)數(shù)取值范圍-1515。要求用原理圖的輸入方式及硬件描述語(yǔ)言的結(jié)構(gòu)描述方式完成。 用實(shí)驗(yàn)箱上的按鍵開(kāi)關(guān)模擬輸入,用數(shù)碼管顯示十進(jìn)制計(jì)算結(jié)果。內(nèi)容及步驟1、 設(shè)計(jì)一個(gè)1位全加器。運(yùn)用波形仿真檢查功能正確后,將其封裝成1位全加器模塊。 2、 以1中已封裝的1位全加器模塊為基礎(chǔ)設(shè)計(jì)一個(gè)4位全加器并將其封裝成模塊,要求: (1) 加數(shù)為正時(shí),實(shí)現(xiàn)兩個(gè)4位二進(jìn)制數(shù)與來(lái)自低位進(jìn)位的加法運(yùn)算,輸出顯示和及高位進(jìn)位。 (2) 加數(shù)為負(fù)時(shí),實(shí)現(xiàn)兩個(gè)4位二進(jìn)制數(shù)的減法運(yùn)算,輸出顯示差的原碼和正負(fù)數(shù)標(biāo)志。 3、以全加器為基礎(chǔ)設(shè)計(jì)一個(gè)4位乘法器并封裝成乘法器模塊,輸出顯示乘積和正負(fù)數(shù)標(biāo)志。4、以2、3中生成的器件模塊為基礎(chǔ)構(gòu)成一個(gè)簡(jiǎn)易計(jì)算器,實(shí)現(xiàn)如下圖功能。根據(jù)S的輸入,分別完成YA+B或YAB。 5、下載到實(shí)驗(yàn)箱上驗(yàn)證功能。實(shí)驗(yàn)設(shè)計(jì)及實(shí)現(xiàn)過(guò)程設(shè)計(jì)一個(gè)1位全加器電路圖如下:其中A1、B1分別為兩個(gè)加數(shù),C1為來(lái)自低位的進(jìn)位,S為輸出的全加和,C01為向高位的進(jìn)位。在Quartus II中構(gòu)建原理圖如下:進(jìn)行編譯后,建立波形文件,功能仿真如下圖檢查正確無(wú)誤后,進(jìn)行全編譯,然后將其封裝成一位全加器模塊,如下圖:封裝后的一位全加器模塊A1、B1分別為兩個(gè)加數(shù),C1為來(lái)自低位的進(jìn)位,S為輸出的全加和,C01為向高位的進(jìn)位。設(shè)計(jì)四位全加器要實(shí)現(xiàn)一個(gè)四位全加器,能進(jìn)行加減法且以原碼方式輸出結(jié)果,分三步進(jìn)行,流程如下。具體實(shí)現(xiàn)過(guò)程如下。(1)設(shè)計(jì)四位加法器用四個(gè)一位全加器的串行接法,即可得到四位串行加法器,實(shí)現(xiàn)四位二進(jìn)制數(shù)的加法,用原理圖的方式在Quartus II中構(gòu)建原理圖如下:圖中A3A2A1A0、B3B2B1B0為兩個(gè)加數(shù),CO1為來(lái)自低位的進(jìn)位,S3S2S1S0為全加和,CO2為向高位的進(jìn)位 。先進(jìn)行半編譯,然后建立波形文件,進(jìn)行功能仿真,結(jié)果如下檢查正確無(wú)誤后,進(jìn)行全編譯,然后將其封裝成四位加法器模塊,如下圖:封裝后的四位加法器模塊圖中A3A2A1A0、B3B2B1B0為兩個(gè)加數(shù),CO1為來(lái)自低位的進(jìn)位,S3S2S1S0為全加和,CO2為向高位的進(jìn)位 。(2)設(shè)計(jì)可進(jìn)行加減運(yùn)算的四位全加器在四位全加器電路中增設(shè)控制端k,當(dāng)k=0時(shí),對(duì)輸入的兩數(shù)進(jìn)行加法運(yùn)算,當(dāng)k=1時(shí),對(duì)輸入的兩數(shù)進(jìn)行減法運(yùn)算,并以原碼形式輸出差值。思路:將控制端k與加數(shù)和低位進(jìn)位進(jìn)行異或運(yùn)算,這樣k=1時(shí),異或后得到原加數(shù)的反碼,低位進(jìn)位為1,此時(shí)被加數(shù)和加數(shù)的補(bǔ)碼相加,得到差的補(bǔ)碼,再將補(bǔ)碼取反加1后得到差的原碼;k=0時(shí),異或后原加數(shù)不變,此時(shí)被加數(shù)和加數(shù)相加,進(jìn)行的是加法運(yùn)算。主要通過(guò)控制端k的各種異或運(yùn)算實(shí)現(xiàn),具體電路圖如下:其中A3A2A1A0為被加數(shù),B3B2B1B0為加數(shù),k為控制端,當(dāng)k=0時(shí),進(jìn)行加法運(yùn)算,CO1為來(lái)自低位的進(jìn)位,和為Y3Y2Y1Y0,CO為和向高位的進(jìn)位;當(dāng)k=1時(shí),進(jìn)行減法運(yùn)算,即A3A2A1A0- B3B2B1B0, CO為差的符號(hào),CO=0表示差為正數(shù),差值為Y3Y2Y1Y0,CO=1表示差為負(fù)數(shù),差的原碼為Y3Y2Y1Y0。通過(guò)半編譯后,建立波形文件,進(jìn)行功能仿真如下圖:檢查正確無(wú)誤后,進(jìn)行全編譯,然后將其封裝成四位全加器模塊,如下圖封裝后的四位全加器模塊其中A3A2A1A0為被加數(shù),B3B2B1B0為加數(shù),k為控制端,其功能如下:當(dāng)k=0時(shí),進(jìn)行加法運(yùn)算,CO1為來(lái)自低位的進(jìn)位,和為Y3Y2Y1Y0,CO為和向高位的進(jìn)位;當(dāng)k=1時(shí),進(jìn)行減法運(yùn)算,即A3A2A1A0- B3B2B1B0, CO為差的符號(hào),CO=0表示差為正數(shù),差值為Y3Y2Y1Y0,CO=1表示差為負(fù)數(shù),差的原碼為Y3Y2Y1Y0。(3)實(shí)現(xiàn)四位全加器的原碼輸出(2)中得到的四位全加器模塊,其輸出和是二進(jìn)制原碼,要想用數(shù)碼管顯示,需要將其轉(zhuǎn)換成對(duì)應(yīng)的十進(jìn)制數(shù)。該全加器模塊的最大和為30,需用兩個(gè)數(shù)碼管顯示結(jié)果,因此需要將(2)中結(jié)果Y3Y2Y1Y0表示成兩個(gè)十進(jìn)制的數(shù),符號(hào)位CO接到發(fā)光二極管上,用于指示和的正負(fù)。具體思路及實(shí)現(xiàn)過(guò)程如下。用Q3Q2Q1Q0、P3P2P1P0分別表示個(gè)位和十位的數(shù)碼管的輸入端,SF為符號(hào)位,現(xiàn)在需要找出Q3Q2Q1Q0、P3P2P1P0與Y3Y2Y1Y0及CO的關(guān)系。首先只考慮將二進(jìn)制數(shù)轉(zhuǎn)化成十進(jìn)制數(shù),即先不考慮正負(fù)數(shù),通過(guò)列真值表發(fā)現(xiàn),當(dāng)CO1Y3Y2Y1Y0表示的十進(jìn)制數(shù)為09時(shí),P3P2P1P0=0000,Q3Q2Q1Q0= Y3Y2Y1Y0;當(dāng)CO1Y3Y2Y1Y0表示的十進(jìn)制數(shù)為1019時(shí),P3P2P1P0=0001,Q3Q2Q1Q0= Y3Y2Y1Y0+0110;當(dāng)CO1Y3Y2Y1Y0表示的十進(jìn)制數(shù)為2029時(shí),P3P2P1P0=0010,Q3Q2Q1Q0= Y3Y2Y1Y0+1100;當(dāng)CO1Y3Y2Y1Y0表示的十進(jìn)制數(shù)為3039時(shí),P3P2P1P0=0011,Q3Q2Q1Q0= Y3Y2Y1Y0+0010。其中CO1、SF與k及CO的關(guān)系如下表:KCOCO1SF0000(正數(shù))0110(正數(shù))1000(正數(shù))1101(負(fù)數(shù))因此,CO1= K CO,SF= KCO。由上述知,可以通過(guò)一個(gè)四位加法器來(lái)實(shí)現(xiàn)CO1Y3Y2Y1Y0到Q3Q2Q1Q0的變換。四位全加器的輸入端為A3A2A1A0和B3B2B1B0。將Y3Y2Y1Y0接到B3B2B1B0端,現(xiàn)在求A3A2A1A0與CO1Y3Y2Y1Y0的關(guān)系。通過(guò)真值表、卡諾圖化簡(jiǎn)得到:A3= (Y3Y2+ Y3Y1) CO1A2= CO1(Y3Y2Y1)+ CO1 Y3 (Y2+Y1)A1= CO1 Y3 (Y2+Y1)+ CO1(Y3Y2+ Y3Y2 Y1Y0)A0=0按照此關(guān)系連接好電路后,四位加法器的輸出端S3S2S1S0即是Q3Q2Q1Q0。P3P2P1P0與CO1Y3Y2Y1Y0的關(guān)系也可類(lèi)似得到:P3=P2=0P1= CO1(Y3Y2+ Y3(Y1+Y0)P0= A1.這樣就得到了Q3Q2Q1Q0、P3P2P1P0、SF與Y3Y2Y1Y0及CO的關(guān)系。連接電路圖如下:半編譯后,建立波形文件,進(jìn)行功能仿真,波形如下檢查正確無(wú)誤后,進(jìn)行全編譯,然后將其封裝成四位譯碼全加器模塊,如下圖封裝后的四位譯碼全加器模塊其中A3A2A1A0為被加數(shù),B3B2B1B0為加數(shù),k為控制端,CO1為來(lái)自低位的進(jìn)位,k=0時(shí),進(jìn)行加法運(yùn)算,k=1時(shí),進(jìn)行減法運(yùn)算。SF為符號(hào)位,SF=0表示結(jié)果為正數(shù),SF=1表示結(jié)果為負(fù)數(shù),將Q3Q2Q1Q0、P3P2P1P0分別連到表示個(gè)位和十位的數(shù)碼管上,則數(shù)碼管既可以顯示結(jié)果。如,結(jié)果為-13時(shí),SF=1,Q3Q2Q1Q0=0011,P3P2P1P0=0001 設(shè)計(jì)四位乘法器要實(shí)現(xiàn)兩個(gè)四位二進(jìn)制數(shù)的乘法運(yùn)算,即是實(shí)現(xiàn)相乘、移位、相加的功能,為此分三步進(jìn)行,過(guò)程如下。具體實(shí)現(xiàn)過(guò)程如下。(1)設(shè)計(jì)八位加法器利用2(1)中的四位加法器實(shí)現(xiàn)一個(gè)八位的串行加法器電路,如下圖半編譯后,建立波形文件,進(jìn)行功能仿真結(jié)果如下檢查正確無(wú)誤后,進(jìn)行全編譯,然后將其封裝成八位加法器模塊,如下圖封裝后的八位加法器模塊其中A7A6A5A4A3A2A1A0、B7B6B5B4B3B2B1B0為兩個(gè)加數(shù),CO1為來(lái)自低位的進(jìn)位,S7S6S5S4S3S2S1S0為和,CO2為向高位的進(jìn)位。(2)設(shè)計(jì)四位乘法器A3A2A1A0為被乘數(shù),B3B2B1B0為乘數(shù),BSF為乘數(shù)的符號(hào)位。思路:將A3A2A1A0分別與B3、B2、B1、B0相乘,得到四個(gè)八位二進(jìn)制數(shù),將這四個(gè)八位二進(jìn)制數(shù)相加即得到乘積的結(jié)果。S7S6S5S4S3S2S1S0表示乘積,SF表示乘積的符號(hào)。原理圖如下:半編譯后,建立波形文件,進(jìn)行功能仿真,結(jié)果如下:檢查正確無(wú)誤后,進(jìn)行全編譯,然后將其封裝成四位乘法器模塊,如下圖封裝后的圖如下封裝后的四位乘法器模塊其中A3A2A1A0為被乘數(shù),B3B2B1B0為乘數(shù),BSF為乘數(shù)的符號(hào)位,S7S6S5S4S3S2S1S0表示乘積,SF表示乘積的符號(hào)。(3)將乘積結(jié)果轉(zhuǎn)化為十進(jìn)制數(shù)乘積的結(jié)果為一個(gè)八位的二進(jìn)制數(shù),為了使其能夠用三位數(shù)碼管表示出來(lái),需要將八位二進(jìn)制數(shù)轉(zhuǎn)化為三位十進(jìn)制數(shù),即完成譯碼功能。用原理圖的方式較復(fù)雜,且不易實(shí)現(xiàn),因此考慮用VHDL語(yǔ)言編寫(xiě)程序。程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY yimaqi ISPORT (A:in STD_LOGIC_VECTOR(7 DOWNTO 0); B:out STD_LOGIC_VECTOR(11 DOWNTO 0) ); END ENTITY yimaqi;ARCHITECTURE mulyima OF yimaqi ISBEGINPROCESS(A)VARIABLE a0,a1,a2,a3,a4,a5,a6,a7,SUM,b0,b1,b2:INTEGER;BEGINIF A(0)=0 THEN a0:=0;ELSE a0:=1;END IF; IF A(1)=0 THEN a1:=0;ELSE a1:=1;END IF;IF A(2)=0 THEN a2:=0;ELSE a2:=1;END IF; IF A(3)=0 THEN a3:=0;ELSE a3:=1;END IF; IF A(4)=0 THEN a4:=0;ELSE a4:=1;END IF;IF A(5)=0 THEN a5:=0;ELSE a5:=1;END IF; IF A(6)=0 THEN a6:=0;ELSE a6:=1;END IF; IF A(7)=0 THEN a7:=0;ELSE a7:=1;END IF; SUM:=a7*128+a6*64+a5*32+a4*16+a3*8+a2*4+a1*2+a0; b2:=SUM/100; b1:=SUM/10 MOD 10; b0:=SUM MOD 10;CASE b2 ISWHEN 0= B(11 DOWNTO 8) B(11 DOWNTO 8) B(11 DOWNTO 8)B(11 downto 8) B(7 DOWNTO 4) B(7 DOWNTO 4) B(7 DOWNTO 4) B(7 DOWNTO 4) B(7 DOWNTO 4) B(7 DOWNTO 4) B(7 DOWNTO 4) B(7 DOWNTO 4) B(7 DOWNTO 4) B(7 DOWNTO 4)B(7 downto 4) B(3 DOWNTO 0) B(3 DOWNTO 0) B(3 DOWNTO 0) B(3 DOWNTO 0) B(3 DOWNTO 0) B(3 DOWNTO 0) B(3 DOWNTO 0) B(3 DOWNTO 0) B(3 DOWNTO 0) B(3 DOWNTO 0)B(3 downto 0)=1111;END CASE;END PROCESS;END ARCHITECTURE;通過(guò)全編譯,將其封裝,得到譯碼器模塊,如下圖:其功能是將八位二進(jìn)制數(shù)A7A6A5A4A3A2A1A0轉(zhuǎn)換成B11B10B9B8B7B6B5B4B3B2B1B0,將B11B10B9B8、B7B6B5B4、B3B2B1B0分別接到數(shù)碼管ABC上,即可顯示十進(jìn)制數(shù)ABC。構(gòu)成簡(jiǎn)易計(jì)算器實(shí)驗(yàn)任務(wù)要求,最終的計(jì)算器具有如下功能:根據(jù)S的輸入,分別完成YA+B或YAB思路:將輸入的四位二進(jìn)制數(shù)A3A2A1A0、B3B2B1B0分別與S進(jìn)行與運(yùn)算后接到四位譯碼全加器的輸入端,將A3A2A1A0、B3B2B1B0分別與S進(jìn)行與運(yùn)算后接到四位乘法器的輸入端,最后將加法器和乘法器的對(duì)應(yīng)輸出做或運(yùn)算,作為最終的輸出。這樣,S=0時(shí),加法器輸出0,乘法器輸出兩個(gè)數(shù)的乘積,最終得到的是乘積,即進(jìn)行了乘法運(yùn)算;S=1時(shí),乘法器輸出0,加法器輸出兩個(gè)數(shù)的和,最終得到的是和,即進(jìn)行了加法運(yùn)算。原理圖如下半編譯后,建立波形文件,進(jìn)行功能仿真,結(jié)果如下:檢查正確無(wú)誤后,進(jìn)行全編譯,然后將其封裝成簡(jiǎn)易計(jì)算器模塊,如下圖封裝后的簡(jiǎn)易計(jì)算器模塊A3A2A1A0為被加數(shù)(被乘數(shù)),B3B2B1B0為加數(shù)(乘數(shù)),BSF為B3B2B1B0的符號(hào),S為控制端,將P11P10P9P8、P7P6P5P4、P3P2P1P0分別接到數(shù)碼管ABC上,SF接到發(fā)光二極管上,功能如下:S=0時(shí),ABC顯示兩個(gè)輸入的數(shù)的乘積,二極管顯示符號(hào),發(fā)光表示負(fù)數(shù),不發(fā)光表示正數(shù);S=1時(shí),ABC顯示兩個(gè)輸入的數(shù)的和,二極管顯示符號(hào),發(fā)光表示負(fù)數(shù),不發(fā)光表示正數(shù)。下載到實(shí)驗(yàn)箱上驗(yàn)證功能按照上述過(guò)程最終得到了簡(jiǎn)易計(jì)算器,在實(shí)驗(yàn)室對(duì)簡(jiǎn)易計(jì)算器進(jìn)行管腳鎖定后下載到實(shí)驗(yàn)箱上,得到了預(yù)期的結(jié)果,驗(yàn)證過(guò)程進(jìn)行得十分順利。驗(yàn)證功能完畢后,助教老師要求我在calculator工程下,新建一個(gè)波形文件,只進(jìn)行7-15的運(yùn)算(不記得當(dāng)時(shí)要求的是什么運(yùn)算了,以7-15為例),由于

溫馨提示

  • 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)論