![有符號(hào)5位整數(shù)乘法器設(shè)計(jì)與制作_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/eae705fd-a782-40b2-bd60-d7a7e0963dd5/eae705fd-a782-40b2-bd60-d7a7e0963dd51.gif)
![有符號(hào)5位整數(shù)乘法器設(shè)計(jì)與制作_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/eae705fd-a782-40b2-bd60-d7a7e0963dd5/eae705fd-a782-40b2-bd60-d7a7e0963dd52.gif)
![有符號(hào)5位整數(shù)乘法器設(shè)計(jì)與制作_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/eae705fd-a782-40b2-bd60-d7a7e0963dd5/eae705fd-a782-40b2-bd60-d7a7e0963dd53.gif)
![有符號(hào)5位整數(shù)乘法器設(shè)計(jì)與制作_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/eae705fd-a782-40b2-bd60-d7a7e0963dd5/eae705fd-a782-40b2-bd60-d7a7e0963dd54.gif)
![有符號(hào)5位整數(shù)乘法器設(shè)計(jì)與制作_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/eae705fd-a782-40b2-bd60-d7a7e0963dd5/eae705fd-a782-40b2-bd60-d7a7e0963dd55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、有符號(hào)5位整數(shù)乘法器設(shè)計(jì)與制作論文 指導(dǎo)老師 專業(yè):姓名: 學(xué)號(hào):目錄摘要 3一設(shè)計(jì)方案與比較 3二系統(tǒng)整體設(shè)計(jì) 5(一)整體設(shè)計(jì) 5(二)模塊設(shè)計(jì) 61. 輸入模塊 62. 乘法模塊 73. 選擇模塊 74. 符號(hào)顯示模塊 95. 進(jìn)制轉(zhuǎn)換模塊 106. 顯示模塊 11三設(shè)計(jì)中遇到的問題及解決方法 14四設(shè)計(jì)心得及建議 14五參考文獻(xiàn) 14摘要本設(shè)計(jì)以altera公司開發(fā)的max+plus2軟件為平臺(tái),以vhdl語言混合部分verilog hdl語言為開發(fā)語言,利用max+plus2軟件進(jìn)行可編程邏輯器件設(shè)計(jì),運(yùn)用移位相加的原理,完成有符號(hào)5位整數(shù)乘法器的邏輯仿真功能,并下載到實(shí)驗(yàn)箱進(jìn)行調(diào)試
2、和驗(yàn)證所設(shè)計(jì)的乘法器的功能。關(guān)鍵詞:有符號(hào)5位整數(shù)乘法器 移位相加 max+plus2 vhdl語言 一、方案設(shè)計(jì)與比較1. 開發(fā)語言的選擇 方案一:采用vhdl語言。vhdl語言具有較強(qiáng)的行為描述能力,對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。但vhdl在描述門電路的能力上卻不如veriologhdl語言。 方案二:采用veriloghdl語言 veriloghdl語言是一種廣泛的硬件描述語言,可用于從算法,門級(jí)到開關(guān)的多種抽象層次的數(shù)字系統(tǒng)設(shè)計(jì)。veriloghdl語言在高級(jí)描述方面不如vhdl。由于一直準(zhǔn)備的是vhdl語
3、言,所以主要選擇vhdl,但在設(shè)計(jì)數(shù)據(jù)轉(zhuǎn)換模塊的設(shè)計(jì)時(shí),選擇了veriloghdl語言,節(jié)省了空間。2. 乘法器實(shí)現(xiàn)方法的設(shè)計(jì)移位相加法 兩個(gè)二進(jìn)制數(shù)相乘如十進(jìn)制數(shù)相乘一樣。如圖1為四位數(shù)做徒手乘法運(yùn)算圖。首先由右至左一次檢查乘數(shù)位是否為1,如為1,將被乘數(shù)做適當(dāng)?shù)囊莆恢吝m當(dāng)?shù)奈恢?;如?,將0放置適當(dāng)位置。其次將所有移位被乘數(shù)求和就為所求子積。圖2為乘法器采用相似方法進(jìn)行計(jì)算時(shí)的情形,利用累加器來完成,即每一步中一個(gè)4位加法器可用來計(jì)算其新的部分乘積。 圖1 徒手乘法 圖2 乘法器三、系統(tǒng)整體設(shè)計(jì)基本要求:設(shè)計(jì)一個(gè)兩個(gè)5位數(shù)相乘的乘法器。用發(fā)光二極管顯示輸入數(shù)值,用7段顯示器顯示十進(jìn)制結(jié)果。
4、乘數(shù)和被乘數(shù)分兩次輸入。擴(kuò)展部分:在輸入乘數(shù)和被乘數(shù)時(shí),要求顯示十進(jìn)制輸入數(shù)據(jù)。輸入顯示和計(jì)算結(jié)果顯示,采用分時(shí)顯示方式進(jìn)行,可參見計(jì)算器的顯示功能。(一)整體設(shè)計(jì)首先通過實(shí)驗(yàn)箱輸入5為二進(jìn)制數(shù),首位為符號(hào)位,通過輸入端使符號(hào)位與數(shù)值位分開,將數(shù)值輸入乘法器,并在脈沖上升沿進(jìn)行操作控制,設(shè)乘數(shù)為a(不包括符號(hào)位)由右至左依次檢查數(shù)位是否為1,如為1,將被乘數(shù)輸入乘法模塊進(jìn)行選擇輸出,并將乘數(shù)低位舍去;如為0,輸入choose模塊為0占位,每次輸入乘法塊的數(shù)結(jié)果都向左移一位。其次將所有移位數(shù)求和就為所求積,利用累加器來完成,通過二進(jìn)制轉(zhuǎn)化十進(jìn)制進(jìn)行輸出,輸入到顯示數(shù)碼管顯示。符號(hào)位利用一個(gè)或非門
5、實(shí)現(xiàn)兩數(shù)相乘時(shí)符號(hào)的變化并用數(shù)碼管顯示在輸出的高位。設(shè)計(jì)的思路框圖如下:整體模塊如下:仿真整體波形如下:(二)模塊設(shè)計(jì)1. 輸入模塊輸入模塊選擇了有八位d觸發(fā)器構(gòu)成的8dff,輸入模塊圖形及功能表如下: 2. 乘法模塊接收由輸入模塊傳進(jìn)來的數(shù)據(jù),定義5個(gè)變量r,t,h,s,q分別從低到高判斷乘數(shù)b每位是否為零,若不為零,將被乘數(shù)a賦值給變量r,t,h,s,若為零則賦值0,并且每位的首位遞增一位0,最后實(shí)現(xiàn)累加,由變量r輸出。乘法模塊圖形如下:仿真波形如下:乘法模塊源代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_
6、unsigned.all;entity chengfa is port(a: in std_logic_vector(4 downto 1); b: in std_logic_vector(4 downto 1); q: out std_logic_vector(8 downto 1);end chengfa;architecture a of chengfa issignal r:std_logic_vector (4 downto 1);signal t:std_logic_vector (5 downto 1);signal h:std_logic_vector (6 downto 1)
7、;signal s:std_logic_vector (7 downto 1);beginr<=a when b(1)='1' else "0000"t<=a&'0' when b(2)='1' else "00000"h<=a&"00" when b(3)='1' else "000000"s<=a&"000" when b(4)='1' else "000
8、0000"q<=r+t+h+s;end a;3. 選擇模塊設(shè)計(jì)此模塊是用來對(duì)顯示數(shù)碼管上所顯示的數(shù)據(jù)進(jìn)行選擇顯示的,若當(dāng)前輸入端的端口控制變量s1和s2時(shí)顯示第一個(gè)數(shù)據(jù)前四位用0占位,若當(dāng)前輸入端的端口控制變量s1和s2為00時(shí)顯示第二個(gè)數(shù)據(jù)前四位用0占位,若當(dāng)前輸入端的端口控制變量s1和s2為01時(shí)顯示最終結(jié)果,qout為輸出端口。符號(hào)位用fin端口接收,fuhao端口輸出。選擇模塊圖形如下:仿真波形如下:選擇模塊源代碼如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
9、entity chooser isport(loada,loadb,clk:in std_logic; rain:in std_logic_vector(4 downto 1); rbin:in std_logic_vector(4 downto 1); din:in std_logic_vector(8 downto 1); fa,fb,fin:in std_logic; qout:out std_logic_vector(8 downto 1); fu:out std_logic);end chooser;architecture art of chooser isbeginprocess
10、(loada,loadb,clk)beginif clk'event and clk='1' then if loada='1' and loadb='0' then qout<="0000"&rain;fu<=fa; elsif loada='0' and loadb='0' then qout<="0000"&rbin;fu<=fb; else qout<=din;fu<=fin; end if;end if;e
11、nd process;end art;4. 符號(hào)顯示模塊此模塊是對(duì)輸出符號(hào)進(jìn)行輸出判斷的,符號(hào)位對(duì)應(yīng)一數(shù)碼顯示管直接作為輸出端口輸出,當(dāng)其符號(hào)位為正時(shí)數(shù)碼顯示管全滅“11111111”,當(dāng)其符號(hào)位為負(fù)時(shí)數(shù)碼顯示管g亮“10111111”。為使小數(shù)點(diǎn)去除,使最高位dot位也為1。符號(hào)模塊圖形如下:仿真波形如下:符號(hào)模塊源代碼如下:library ieee; use ieee.std_logic_1164.all; entity fu is port(f:in std_logic; q4:out std_logic_vector(8 downto 1);end fu; architecture a
12、rt of fu is begin-process(f)-beginq4<="11111111" when f='0' else "10111111"-if(f='0') then q4<="11111111"-else q4<="10111111"-end if;-end process;end art;5. 進(jìn)制轉(zhuǎn)換進(jìn)制轉(zhuǎn)換模塊是用來對(duì)結(jié)果進(jìn)行二進(jìn)制到十進(jìn)制轉(zhuǎn)換的,便于在顯示數(shù)碼管上顯示。定義3個(gè)變量a1,a2,a3,并賦初值為0,從高到低判斷輸入的數(shù)據(jù)ldb的
13、個(gè)個(gè)位,首先是百位,若大于一百,則a3加1,ldb減去100;然后是十位,若大于十,則a2加1,ldb減去10;最后是個(gè)位,直接將ldb剩余值賦值給a1。依次將a1,a2,a3賦值給q1,q2,q3輸出。進(jìn)制轉(zhuǎn)換模塊圖形如下: 仿真波形如下:進(jìn)制轉(zhuǎn)換源代碼(veriloghdl語言)如下:module from2to10(db,clk,q1,q2,q3); input7:0 db;input clk;output 3:0 q1,q2,q3;reg 3:0 a1,a2,a3,q1,q2,q3;reg 8:0 ldb;reg 2:0 step;always(posedge clk)begincas
14、e(step) 0: begin ldb7:0<=db7:0; a1<=0; a2<=0; a3<=0; step<=1; end 1: begin if(ldb>=100) begin a3<=a3+1; ldb<=ldb-100; end else if(ldb>=10)&&(ldb<100) begin a2<=a2+1; ldb<=ldb-10; end else if(ldb>=1)&&(ldb<10) begin a1<=ldb; ldb<=0; end
15、else begin step<=2; end end2:beginq1<=a1;q2<=a2;q3<=a3;step<=0;enddefault:step<=0;endcaseendendmodule6. 顯示模塊此模塊是用來對(duì)最終結(jié)果對(duì)應(yīng)數(shù)碼顯示管進(jìn)行顯示操作的,其輸入端口若為0,1,2,3,4,5,6,7,8,9,對(duì)應(yīng)的輸出端q1,q2,q3"11000000" "11111001" "10100100" "10110000" "10011001" &q
16、uot;10010010" "10000010" "11011000" "10000000" "10010000" "11111111"并且此顯示管加入了去零功能,若百位為零且十位也為零,則不顯示十位和百位,若只有百位為零則只有百位不顯示,若都為零則只有個(gè)位顯示0。顯示模塊圖形如下:仿真波形如下:顯示模塊源代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jixian
17、shi is port(q1,q2,q3:in std_logic_vector(4 downto 1); d1,d2,d3:out std_logic_vector(8 downto 1);end jixianshi; architecture art of jixianshi is beginprocess(q1,q2,q3)variable t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,tt:std_logic_vector(8 downto 1);begint0:="11000000"t1:="11111001"t2:="
18、10100100"t3:="10110000" t4:="10011001" t5:="10010010"t6:="10000010"t7:="11011000"t8:="10000000"t9:="10010000"tt:="11111111"case q1 is when"0000"=>d1<=t0; when"0001"=>d1<=t1; when"
19、;0010"=>d1<=t2; when"0011"=>d1<=t3; when"0100"=>d1<=t4; when"0101"=>d1<=t5; when"0110"=>d1<=t6; when"0111"=>d1<=t7; when"1000"=>d1<=t8; when"1001"=>d1<=t9; when others=>d1<
20、;=t0;end case;if (q3/="0000") thencase q2 is when"0000"=>d2<=t0; when"0001"=>d2<=t1; when"0010"=>d2<=t2; when"0011"=>d2<=t3; when"0100"=>d2<=t4; when"0101"=>d2<=t5; when"0110"=>d2&l
21、t;=t6; when"0111"=>d2<=t7; when"1000"=>d2<=t8; when"1001"=>d2<=t9; when others=>d2<=t0;end case;else case q2 is when"0000"=>d2<=tt; when"0001"=>d2<=t1; when"0010"=>d2<=t2; when"0011"=>d2<=t3; when"0100"=>d2<=t4; when"0101"=>d2<=t5; when"0110"=>d2<=t6; when"0111"=>d2<=t7; when"1000"=>d2<=t8; when"1001"=>d2<=t9; when others=>d2<=t0;
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/TS 20428:2024 EN Genomics Informatics - Data elements and their metadata for describing structured clinical genomic sequence information in electronic health records
- 【正版授權(quán)】 ISO 6900:2025 EN Dried red jujubes - Specification and test methods
- 2025年度大型企事業(yè)單位公務(wù)車輛租賃服務(wù)協(xié)議合同范本
- 2025年變配電保護(hù)自動(dòng)化項(xiàng)目合作計(jì)劃書
- 離職管理與退出面談流程計(jì)劃
- 秋季信息化教學(xué)推進(jìn)計(jì)劃
- 2025年酸堿平衡調(diào)節(jié)藥合作協(xié)議書
- 智研咨詢發(fā)布-2025年中國(guó)智慧環(huán)保行業(yè)產(chǎn)業(yè)鏈全景分析及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025年特異性植物源農(nóng)藥項(xiàng)目合作計(jì)劃書
- 2025年醫(yī)用氧化亞氮系統(tǒng)合作協(xié)議書
- 真需求-打開商業(yè)世界的萬能鑰匙
- 暑假假期安全教育(課件)-小學(xué)生主題班會(huì)
- 《礦山隱蔽致災(zāi)因素普查規(guī)范》解讀培訓(xùn)
- 第1課 立足時(shí)代 志存高遠(yuǎn) (課件+視頻)- 【中職專用】高一思想政治《心理健康與職業(yè)生涯》(高教版2023·基礎(chǔ)模塊)
- 2024年濰坊護(hù)理職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫(kù)含答案解析
- 費(fèi)曼學(xué)習(xí)法費(fèi)曼學(xué)習(xí)法
- 中國(guó)數(shù)學(xué)發(fā)展歷史(課堂PPT)
- 黃金太陽漆黑的黎明金手指
- 車間、設(shè)備改造項(xiàng)目建議書范文
- 化學(xué)成份及性能對(duì)照表新
- 辦公大樓加固裝修工程安全施工管理措施
評(píng)論
0/150
提交評(píng)論