


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、位二進(jìn)制乘法電路該乘法器是有由8位加法器構(gòu)成的以時(shí)序方式設(shè)計(jì)的8位乘法器,采用逐項(xiàng)移位相加的方法來實(shí)現(xiàn)相乘。用乘數(shù)的各位數(shù)碼,從低位開始依次與被乘數(shù)相乘,每相乘一次得到的積稱為部分積,將第一次(由乘數(shù)最低位與被乘數(shù)相乘)得到的部分積右移一位并與第二次得到的部分積相加,將加得的和右移一位再與第三次得到的部分積相加,再將相加的結(jié)果右移一位與第四次得到的部分積相加。直到所有的部分積都被加過一次。例如:被乘數(shù) (M7M6M5M4M3M2M1M0 )和乘數(shù)(N7N6N5N4N3N2N1N0 )分別為 11010101 和10010011,其計(jì)算過程如下:11010101X 100100111101010
2、1NO與被乘數(shù)相乘的部分積,部分積右移一位11010101N1與被乘數(shù)相乘的部分積十 1101010110011111111001111111兩個(gè)部分積之和,部分積之和右移一位:前簡單流程圖)0 0 00N2與被乘數(shù)相乘的部分積與前面部分積之和相加,部分積之和右移一- 0 00 0 00 0 0N4與被乘數(shù)相乘的部分積 N7與被乘數(shù)相乘的部分積-110 10 10 1與前面部分積之和相加 右移一位得到最后的積下面分解8位乘法器的層次結(jié)構(gòu),分為以下 右移寄存器模塊:這是 行乘法運(yùn)算的移位操作。 加法器模塊:這是一個(gè) 1位乘法器模塊:完成 鎖存器模塊:這是一個(gè) 輸入數(shù)值的鎖存與移位。按照上4個(gè)模塊
3、:個(gè)8位右移寄存器,可將乘法運(yùn)算中的被乘數(shù)加載于其中,同時(shí)進(jìn)8位加法器,進(jìn)行操作數(shù)的加法運(yùn)算。8位與1位的乘法運(yùn)算。16位鎖存器,同時(shí)也是一個(gè)右移寄存器,在時(shí)鐘信號(hào)的控制下完成圖中8位移位寄存器reg_8存放 數(shù)送至1 8位乘法器 multi_1中,同時(shí) 送至 8位加法器adder_8中,同時(shí)取reg_16 中,進(jìn)述算法流程圖??趇ll時(shí) 制信號(hào)乘數(shù)加 清出零或鎖存移位寄存送至reg_16右移后并進(jìn)行鎖進(jìn)行相加,Z再詁加后結(jié)果即部分積存入行移位后并保存。這樣經(jīng)過8次對(duì)乘數(shù)a的移位操作,所以的部分積已全加至reg_16中,此時(shí)鎖存器reg_16存放的值即所要求的積。(1) 8位移位寄存器reg_
4、8的設(shè)計(jì)) 信號(hào)作用下,當(dāng)1時(shí),將 8 位r8_load=0時(shí),對(duì)數(shù)據(jù)進(jìn)行移位操作8-同時(shí)定義一個(gè)信號(hào)氐位oadr8_eu8(0)傳送給r8r8_i n7.Oreg_8reg8用來裝載 out輸出。8位移位寄存器是在時(shí)鐘(r8_clkeve nt and r8_clk=1 乘數(shù)加載進(jìn)入;而當(dāng)新數(shù)據(jù)及移位后的操作數(shù),完成這些操作后,寄存器的最低 元件實(shí)體原理圖如右圖:該模塊元件的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_ un sig ned.all;use ieee.std_logic_arith.all;
5、en tity reg_8 is-實(shí)體描述port(r8_clk,r8_load:i n std_logic;r8_in:in stdo gic_vector(7 dow nto 0);r8_out:out std_logic);end reg_8;architecture arc_reg_8 of reg_8 is-結(jié)構(gòu)體描述sig nal reg8:std_logic_vector(7 dow nto 0);-定義信號(hào)變量beginprocess(r8_clk,r8_load)beginif r8_clkeve nt and r8_clk=1 the n-時(shí)鐘上升沿到來if r8_load
6、=1 the n-鎖存新數(shù)據(jù)reg8=r8_i n;elsereg8(6 dow nto 0)=reg8(7 dow nto 1);-數(shù)據(jù)右移end if;end if;end process;r8_out=reg8(0);-輸出最低位end arc_reg_8;仿真波形圖如下:NapeD ps20.0 m40.0 m60.080.0 ns1D0. D in120.0 m140.iiiiiiD 20 ps0 PJ比0:r0_clkA 0TL rL TL nL_r_rL_n_rL_r_r-L_rL_rL_TLL_rLAlIH T8_inH 47F4F11r8_flutA 0Liii i(2) 8
7、位加法器adder_8的設(shè)計(jì)I)該加法器由兩個(gè)四位二進(jìn)制加法器組成。其中設(shè)計(jì)四位二進(jìn)制加法器時(shí),為了避免加法運(yùn) 算時(shí)產(chǎn)生溢出,故定義了三個(gè)信號(hào)量ss,aa,bb將加數(shù)a4_a, a4_b分別與0連接后賦值給aa,bb,形成5位二進(jìn)制數(shù),然后 aa,bb與進(jìn)位位a4_in相加賦值給ss,最后將ss的低四位賦值給和a4_s,同時(shí)將ss的最高位送給a4_out輸出。 元件實(shí)體原理圖如右圖:a4_i na4_s3.0 a4_a3.0 a4_b3.0a4_outadder 4其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic
8、_ un sig ned.all;use ieee.std_logic_arith.all;en tity adder_4 is-實(shí)體描述port(a4_in :in std_logic;a4_a,a4_b:i n std_logic_vector(3 dow nto 0); a4_s:out std_logic_vector(3 dow nto 0); a4_out:out std_logic);end adder_4;architecture arc_adder_4 of adder_4 is-結(jié)構(gòu)體描述sig nal ss:std_logic_vector(4 downto 0);-定義
9、信號(hào)變量sig nal aa,bb:std_logic_vector(4 dow nto 0);beginaa=0&a4_a;-為避免溢出,將 0與a4_a連接bb=0&a4_b;-將 0 與 a4_b 連接ss=aa+bb+a4_i n;-執(zhí)行加法運(yùn)算a4_s=ss(3 dow nto 0);-輸出結(jié)果a4_out28a8_tnilk D(3) 1位乘法器40. xis80.甲 he100.0 M1 j 10 X 11 jriFX 131516 jri)riaH 11 X 12】4 X 15 廠仃 X 18 廠帀 I: 1IT JCgOmulti_1的設(shè)計(jì)利用循環(huán)語句FOR-LOOP完成8位
10、二進(jìn)制數(shù)與1位二進(jìn)制的乘法運(yùn)算,將8位二進(jìn)制數(shù) m1_y從最低位到最高位與 1位二進(jìn)制m1_x分別做與運(yùn)算,最后將結(jié)果依次送到 m1_out輸出。 即當(dāng)m1_x為1時(shí),m1_out輸出為 m1_y ;當(dāng)m1_x為0時(shí),m1_out輸出全為零。元件實(shí)體原理圖如右圖:其程序如下:ml xlibrary ieee;use ieee.stdo gic_1164.all;use ieee.std_logic_ un sig ned.all;use ieee.std_logic_arith.all;en tity multi_1 is-實(shí)體描述port(m1_x:in std_logic;m1_y:in
11、std_logic_vector(7 dow nto 0);m1_out:out std_logic_vector(7 dow nto 0);end multi_1;architecture arc multi 1 of multi 1 is -結(jié)構(gòu)體描述beginprocess(m1_x,m1_y)m1_out7.0m1 y7m0ilti 1beginfor i in 0 to 7 loop-循環(huán)完成8位與1位的乘法運(yùn)算m1_out(i)=m1_y(i)a nd m1_x;end loop;end process;end arc_multi_1;其仿真電路圖如下:口當(dāng)清零信號(hào)(r16_clr
12、=1)到來時(shí),定義信號(hào)變 一reg16清零;否則在時(shí)鐘信號(hào)r16_clrr16_out15.0r16_i n8.Oreg_16r16 elk上升沿到來時(shí),將reg16的低8位進(jìn)行移位操作,同時(shí)將16_位的數(shù)據(jù)輸入r16_in鎖存到reg16的高 8位,最后賦值給r16_out輸出。元件實(shí)體原理圖如右圖:其程序如下:use ieee.std _lo gic_1164.all;use ieee.std_logic_ un sig ned.all;use ieee.std_logic_arith.all;en tity reg_16 is-實(shí)體描述port(r16_clk,r16_clr:in st
13、d_logic;r16_in:in std_logic_vector(8 dow nto 0); r16_out:out stdo gic_vector(15 dow nto 0);end reg_16;architecture arc_reg_16 of reg_16 is-結(jié)構(gòu)體描述sig nal reg16:stdo gic_vector(15 dow nto 0);-定義信號(hào)變量beginprocess(r16_clk,r16_clr)beginif r16_clr=1 then-clr 為高電平,清零reg16=0000000000000000;elsif r16_clkeve nt
14、 and r16_clk=1 the n-時(shí)鐘上升沿到來reg16(6 dow nto 0)=reg16(7 dow nto 1);-右移,并鎖存低八位reg16(15 dow nto 7)=r16_i n;-將輸入鎖存到高 8 位end if;end process;r16_out=reg16;-數(shù)據(jù)輸出end arc_reg_16;仿真電路圖如圖所示:(5) 8位乘法器的頂層設(shè)計(jì)元件實(shí)體原理圖如圖:RJLTI_8CLK 其頂層電路如圖:如上圖所示,當(dāng) STAR上升沿到來,將乘數(shù) a鎖存到REG_8中,同時(shí)將16位的移位寄 存器REG_16清零,然后隨著時(shí)鐘 CLK上升沿的到來,對(duì)REG_8
15、中的乘數(shù)進(jìn)行移位操作,最低位在前,由低到高逐位輸出。1位乘法器中進(jìn)行與 8位被乘數(shù)的相乘運(yùn)算,并與鎖存在16位寄存器reg_16中的高8位進(jìn)行相加,其和(包含進(jìn)位)在下一個(gè)時(shí)鐘的上升沿到來時(shí)鎖存 到16位寄存器中。如此進(jìn)行直到第八個(gè)時(shí)鐘上升沿到來時(shí),reg_16的輸出即為所求的乘積。其頂層程序如下:use ieee.std _lo gic_1164.all; use ieee.std_logic_ un sig ned.all;use ieee.std_logic_arith.all;en tity multi_8 is-實(shí)體描述port(clk,start:in std_logic;a,b:
16、i n std_logic_vector(7 dow nto 0);result:out std_logic_vector(15 dow nto 0); end multi_8;architecture arc_multi_8 of multi_8 is-結(jié)構(gòu)體描述compo nent multi_1-調(diào)用1位乘法器聲明port(m1_x:i n std_logic;m1_y:in std_logic_vector(7 dow nto 0);m1_out:out std_logic_vector(7 dow nto 0);end comp onent;component adder_8-調(diào)用8
17、位加法器聲明port(a8_ in :in std_logic;a8_a,a8_b:i n std_logic_vector(7 dow nto 0);a8_s:out std_logic_vector(7 dow nto 0); a8_out:out std_logic);end comp onent;component reg_8 -調(diào)用8位寄存器聲明 port(r8_clk,r8_load:i n std_logic;r8n:in std_logic_vector(7 dow nto 0);r8_out:out std_logic);end comp onent;component re
18、g_16 -調(diào)用16位寄存器聲明 port(r16_clk,r16_clr:in std_logic;r16_in:in std_logic_vector(8 dow nto 0); r16_out:out stdo gic_vector(15 dow nto 0);end comp onent;sig nal gndin t, newstart,qb:std_logic;-定義信號(hào)變量sig nal an dsd:std_logic_vector(7 dow nto 0);sig nal dtb in: std_logic_vector(8 dow nto 0);sig nal dtbout
19、:std_logic_vector(15 dow nto 0);beginresult=dtbout;gndin t=0;process(clk,start)beginif start=1 the n n ewstart=1;elsif clk=0 the n n ewstartincfime 呂 an:Q p$*J Poihler42 irtslinflervat42 西 nsJ pv20. f m40 f nxg m 9gp n0 P5 PS JelkA 01 1J 11 1 1 1 1 11 1 1 1_1_1 _L* 11 - :El *H 93r!93 bM B5rD5PH re-sultK 0000Loooo6ASD狀號(hào)FCT敝7E7S WfcX 3J3C
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 模壓培訓(xùn)活動(dòng)方案
- 漢服投壺活動(dòng)方案
- 母嬰產(chǎn)業(yè)活動(dòng)方案
- 水磨芳華活動(dòng)方案
- 植被保護(hù)活動(dòng)方案
- 格力活動(dòng)策劃方案
- 沙龍客戶活動(dòng)方案
- 江西品牌推廣活動(dòng)方案
- 毛里求斯活動(dòng)方案
- 水庫整治活動(dòng)方案
- DB45∕T 1098-2024 橡膠瀝青路面施工技術(shù)規(guī)范
- 《蠶絲》教學(xué)課件
- 中央軍校面試題庫及答案
- 2025年廣東省高考地理試卷真題(含答案)
- 2025年湖北省中考英語試題(附答案)
- 2024年河南省豫地科技集團(tuán)有限公司招聘真題
- 2024山西杏花村汾酒集團(tuán)有限責(zé)任公司人才招聘筆試參考題庫附帶答案詳解
- 2023年深靜脈血栓形成的診斷和治療的指南
- GA 1809-2022城市供水系統(tǒng)反恐怖防范要求
- UPVC雙壁波紋管
- 型直線振動(dòng)篩使用說明書中文
評(píng)論
0/150
提交評(píng)論