


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、位二進制乘法電路該乘法器是有由8位加法器構(gòu)成的以時序方式設(shè)計的8位乘法器,采用逐項移位相加的方法來實現(xiàn)相乘。用乘數(shù)的各位數(shù)碼,從低位開始依次與被乘數(shù)相乘,每相乘一次得到的積稱為部分積,將第一次(由乘數(shù)最低位與被乘數(shù)相乘)得到的部分積右移一位并與第二次得到的部分積相加,將加得的和右移一位再與第三次得到的部分積相加,再將相加的結(jié)果右移一位與第四次得到的部分積相加。直到所有的部分積都被加過一次。例如:被乘數(shù) (M7M6M5M4M3M2M1M0 )和乘數(shù)(N7N6N5N4N3N2N1N0 )分別為 11010101 和10010011,其計算過程如下:11010101X 100100111101010
2、1NO與被乘數(shù)相乘的部分積,部分積右移一位11010101N1與被乘數(shù)相乘的部分積十 1101010110011111111001111111兩個部分積之和,部分積之和右移一位:前簡單流程圖)0 0 00N2與被乘數(shù)相乘的部分積與前面部分積之和相加,部分積之和右移一- 0 00 0 00 0 0N4與被乘數(shù)相乘的部分積 N7與被乘數(shù)相乘的部分積-110 10 10 1與前面部分積之和相加 右移一位得到最后的積下面分解8位乘法器的層次結(jié)構(gòu),分為以下 右移寄存器模塊:這是 行乘法運算的移位操作。 加法器模塊:這是一個 1位乘法器模塊:完成 鎖存器模塊:這是一個 輸入數(shù)值的鎖存與移位。按照上4個模塊
3、:個8位右移寄存器,可將乘法運算中的被乘數(shù)加載于其中,同時進8位加法器,進行操作數(shù)的加法運算。8位與1位的乘法運算。16位鎖存器,同時也是一個右移寄存器,在時鐘信號的控制下完成圖中8位移位寄存器reg_8存放 數(shù)送至1 8位乘法器 multi_1中,同時 送至 8位加法器adder_8中,同時取reg_16 中,進述算法流程圖??趇ll時 制信號乘數(shù)加 清出零或鎖存移位寄存送至reg_16右移后并進行鎖進行相加,Z再詁加后結(jié)果即部分積存入行移位后并保存。這樣經(jīng)過8次對乘數(shù)a的移位操作,所以的部分積已全加至reg_16中,此時鎖存器reg_16存放的值即所要求的積。(1) 8位移位寄存器reg_
4、8的設(shè)計) 信號作用下,當(dāng)1時,將 8 位r8_load=0時,對數(shù)據(jù)進行移位操作8-同時定義一個信號氐位oadr8_eu8(0)傳送給r8r8_i n7.Oreg_8reg8用來裝載 out輸出。8位移位寄存器是在時鐘(r8_clkeve nt and r8_clk=1 乘數(shù)加載進入;而當(dāng)新數(shù)據(jù)及移位后的操作數(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-實體描述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);-定義信號變量beginprocess(r8_clk,r8_load)beginif r8_clkeve nt and r8_clk=1 the n-時鐘上升沿到來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è)計I)該加法器由兩個四位二進制加法器組成。其中設(shè)計四位二進制加法器時,為了避免加法運 算時產(chǎn)生溢出,故定義了三個信號量ss,aa,bb將加數(shù)a4_a, a4_b分別與0連接后賦值給aa,bb,形成5位二進制數(shù),然后 aa,bb與進位位a4_in相加賦值給ss,最后將ss的低四位賦值給和a4_s,同時將ss的最高位送給a4_out輸出。 元件實體原理圖如右圖: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-實體描述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、信號變量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í)行加法運算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è)計利用循環(huán)語句FOR-LOOP完成8位
10、二進制數(shù)與1位二進制的乘法運算,將8位二進制數(shù) m1_y從最低位到最高位與 1位二進制m1_x分別做與運算,最后將結(jié)果依次送到 m1_out輸出。 即當(dāng)m1_x為1時,m1_out輸出為 m1_y ;當(dāng)m1_x為0時,m1_out輸出全為零。元件實體原理圖如右圖:其程序如下: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-實體描述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位的乘法運算m1_out(i)=m1_y(i)a nd m1_x;end loop;end process;end arc_multi_1;其仿真電路圖如下:口當(dāng)清零信號(r16_clr
12、=1)到來時,定義信號變 一reg16清零;否則在時鐘信號r16_clrr16_out15.0r16_i n8.Oreg_16r16 elk上升沿到來時,將reg16的低8位進行移位操作,同時將16_位的數(shù)據(jù)輸入r16_in鎖存到reg16的高 8位,最后賦值給r16_out輸出。元件實體原理圖如右圖:其程序如下: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-實體描述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);-定義信號變量beginprocess(r16_clk,r16_clr)beginif r16_clr=1 then-clr 為高電平,清零reg16=0000000000000000;elsif r16_clkeve nt
14、 and r16_clk=1 the n-時鐘上升沿到來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è)計元件實體原理圖如圖:RJLTI_8CLK 其頂層電路如圖:如上圖所示,當(dāng) STAR上升沿到來,將乘數(shù) a鎖存到REG_8中,同時將16位的移位寄 存器REG_16清零,然后隨著時鐘 CLK上升沿的到來,對REG_8
15、中的乘數(shù)進行移位操作,最低位在前,由低到高逐位輸出。1位乘法器中進行與 8位被乘數(shù)的相乘運算,并與鎖存在16位寄存器reg_16中的高8位進行相加,其和(包含進位)在下一個時鐘的上升沿到來時鎖存 到16位寄存器中。如此進行直到第八個時鐘上升沿到來時,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-實體描述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;-定義信號變量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狀號FCT敝7E7S WfcX 3J3C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 順鉑化療護理要點
- 胃造瘺病人護理
- 引產(chǎn)后的護理
- 項目部三級教育體系實施規(guī)范
- 少年宮項目立項報告
- 護理安全質(zhì)量評價標(biāo)準(zhǔn)
- 2025年銅仁駕駛教練員從業(yè)資格考試題庫
- 培訓(xùn)講師線上分享
- 援助體積教學(xué) 課件
- 培訓(xùn)機構(gòu)助教述職
- 2025年廣東省高考地理試卷真題(含答案)
- 2025年湖北省中考英語試題(附答案)
- Unit 1 Happy Holiday 第4課時(Section B 1a-1d) 2025-2026學(xué)年人教版英語八年級下冊
- 新生兒吞咽吸吮功能訓(xùn)練
- 2025年連云港市中考語文試卷真題(含標(biāo)準(zhǔn)答案及解析)
- 2025-2030年中國期貨行業(yè)市場深度調(diào)研及競爭格局與投資策略研究報告
- 2025-2030年中國農(nóng)業(yè)科技行業(yè)市場深度調(diào)研及前景趨勢與投資研究報告
- 成人重癥患者顱內(nèi)壓增高防控護理專家共識
- 2025至2030年中國腫瘤治療行業(yè)市場發(fā)展?jié)摿扒熬皯?zhàn)略分析報告
- 危險化學(xué)品-經(jīng)營安全管理制度與崗位操作流程
- 2024年河南省豫地科技集團有限公司招聘真題
評論
0/150
提交評論