版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第9章章 Verilog數(shù)字電路設(shè)計(jì)數(shù)字電路設(shè)計(jì) 級連加法器級連加法器 并行加法器并行加法器 超前進(jìn)位加法器超前進(jìn)位加法器 流水線加法器流水線加法器(1)8位級連加法器位級連加法器module add_jl(sum,cout,a,b,cin);input7:0 a,b;input cin;output7:0 sum;output cout;full_add1 f0(a0,b0,cin,sum0,cin1); full_add1 f1(a1,b1,cin1,sum1,cin2);full_add1 f2(a2,b2,cin2,sum2,cin3);full_add1 f3(a3,b3,cin3
2、,sum3,cin4);full_add1 f4(a4,b4,cin4,sum4,cin5);full_add1 f5(a5,b5,cin5,sum5,cin6);full_add1 f6(a6,b6,cin6,sum6,cin7);full_add1 f7(a7,b7,cin7,sum7,cout);endmodule8 8位級連加法器代碼位級連加法器代碼(2 2)并行加法器)并行加法器 module add_bx(cout,sum,a,b,cin);input7:0 a,b; input cin;output7:0 sum; output cout;assign cout,sum=a+b+
3、cin;endmodule全部由邏輯門實(shí)現(xiàn)全部由邏輯門實(shí)現(xiàn)(3 3) 8 8位超前進(jìn)位加法器位超前進(jìn)位加法器 module add_ahead(sum,cout,a,b,cin);input7:0 a,b;input cin;output7:0 sum;output cout;wire7:0 G,P;wire7:0 C,sum;assign G0=a0&b0; assign P0=a0|b0;assign C0=cin;assign sum0=G0P0C0;assign G1=a1&b1; assign P1=a1|b1;assign C1=G0|(P0&cin);as
4、sign sum1=G1P1C1;assign G2=a2&b2; assign P2=a2|b2;assign C2=G1|(P1&C1);assign sum2=G2P2C2;assign G3=a3&b3;assign P3=a3|b3;assign C3=G2|(P2&C2);assign sum3=G3P3C3;assign G4=a4&b4;assign P4=a4|b4;assign C4=G3|(P3&C3);assign sum4=G2P2C2;assign G5=a5&b5; assign P5=a5|b5;assig
5、n C5=G4|(P4&C4);assign sum5=G5P5C5;assign G6=a6&b6;assign P6=a6|b6;assign C6=G5|(P5&C5);assign sum6=G6P6C6;assign G7=a7&b7; assign P7=a7|b7;assign C7=G6|(P6&C6);assign sum7=G7P7C7;assign cout=G7|(P7&C7); endmodule(4 4)流水線加法器)流水線加法器 module adder8(cout,sum,a,b,cin,enable);input
6、7:0 a,b;input cin,enable;output7:0 sum;output cout;reg cout;reg7:0 sum;reg3:0 tempa,tempb,firsts;reg firstc;always (posedge enable)beginfirstc,firsts=a3:0+b3:0+cin;tempa=a7:4; tempb=b7:4;endalways (posedge enable)begincout,sum7:4=tempa+tempb+firstc;sum3:0=firsts;endendmodule 并行乘法器并行乘法器 移位相加移位相加 查找表查
7、找表 加法樹加法樹module mult(outcome,a,b);parameter size=8;inputsize:1 a,b;output2*size:1 outcome;assign outcome=a*b;endmodule(1 1)并行乘法器)并行乘法器利用利用Verilog語言的乘法操作符,可很容語言的乘法操作符,可很容易地實(shí)現(xiàn)并行乘法器,并可由易地實(shí)現(xiàn)并行乘法器,并可由EDA綜合軟綜合軟件自動(dòng)轉(zhuǎn)化為電路網(wǎng)表結(jié)構(gòu)件自動(dòng)轉(zhuǎn)化為電路網(wǎng)表結(jié)構(gòu)n88并行乘法器的門級綜合原理圖 (2)移位相加乘法器)移位相加乘法器n移位相加乘法器將乘移位相加乘法器將乘法變?yōu)榧臃▽?shí)現(xiàn),其法變?yōu)榧臃▽?shí)現(xiàn),其
8、設(shè)計(jì)思路是:乘法通設(shè)計(jì)思路是:乘法通過逐次移位相加實(shí)現(xiàn),過逐次移位相加實(shí)現(xiàn),每次判斷乘數(shù)的最低每次判斷乘數(shù)的最低位,若為位,若為1則將被乘數(shù)則將被乘數(shù)移位相加。移位相加。44移位相加乘法操作示意圖移位相加乘法操作示意圖(3)加法樹乘法器 加法樹乘法器示意圖加法樹乘法器示意圖 (4)查找表乘法器)查找表乘法器n查找表乘法器將乘積直接存放在存儲器中,將操作查找表乘法器將乘積直接存放在存儲器中,將操作數(shù)(乘數(shù)和被乘數(shù))作為地址訪問存儲器,得到的數(shù)(乘數(shù)和被乘數(shù))作為地址訪問存儲器,得到的輸出數(shù)據(jù)就是乘法運(yùn)算的結(jié)果。輸出數(shù)據(jù)就是乘法運(yùn)算的結(jié)果。n查找表方式的乘法器速度只局限于所使用存儲器的查找表方式的
9、乘法器速度只局限于所使用存儲器的存取速度。但由于查找表規(guī)模隨操作數(shù)位數(shù)增加而存取速度。但由于查找表規(guī)模隨操作數(shù)位數(shù)增加而迅速增大,因此如用于實(shí)現(xiàn)位數(shù)寬的乘法操作,需迅速增大,因此如用于實(shí)現(xiàn)位數(shù)寬的乘法操作,需要要FPGA器件具有較大的片內(nèi)存儲器模塊。比如,器件具有較大的片內(nèi)存儲器模塊。比如,要實(shí)現(xiàn)要實(shí)現(xiàn)88乘法,要求存儲器的地址位寬為乘法,要求存儲器的地址位寬為16位,位,字長為字長為16位,即存儲器大小為位,即存儲器大小為1M比特。比特。n乘累加器的結(jié)構(gòu)框圖 乘累加器(乘累加器(MAC)module MAC(out,opa,opb,clk,clr);output15:0 out;input7
10、:0 opa,opb;input clk,clr; wire15:0 sum; reg15:0 out; function15:0 mult; /函數(shù)定義,函數(shù)定義,mult函數(shù)完成乘法操作函數(shù)完成乘法操作input7:0 opa,opb; reg 15:0 result; integer i;beginresult=opa0? opb : 0;for(i=1; i=7; i=i+1)begin if(opai=1) result=result+(opb(i-1);endmult=result;endendfunction assign sum=mult(opa,opb)+out;always
11、 (posedge clk or posedge clr)begin if(clr) out=0; else out=sum; end endmodulen在實(shí)際中我們經(jīng)常會(huì)遇到這樣的問題,在實(shí)際中我們經(jīng)常會(huì)遇到這樣的問題,需要進(jìn)行奇數(shù)次分頻,同時(shí)又要得到占需要進(jìn)行奇數(shù)次分頻,同時(shí)又要得到占空比是空比是50%的方波波形。的方波波形。n可采用如下方法:用兩個(gè)計(jì)數(shù)器,一個(gè)可采用如下方法:用兩個(gè)計(jì)數(shù)器,一個(gè)由輸入時(shí)鐘上升沿觸發(fā),一個(gè)由輸入時(shí)由輸入時(shí)鐘上升沿觸發(fā),一個(gè)由輸入時(shí)鐘下降沿觸發(fā),最后將兩個(gè)計(jì)數(shù)器的輸鐘下降沿觸發(fā),最后將兩個(gè)計(jì)數(shù)器的輸出相或,即可得到占空比為出相或,即可得到占空比為50%的方波
12、的方波波形。波形。 9.4 奇數(shù)分頻與小數(shù)分頻奇數(shù)分頻與小數(shù)分頻 (1)奇數(shù)分頻)奇數(shù)分頻占空比占空比50%的奇數(shù)分頻(模的奇數(shù)分頻(模7) module count7(RESET,CLK,COUT);input CLK,RESET; output COUT;reg2:0 m,n;wire COUT; reg COUT1,COUT2;assign COUT=COUT1|COUT2;always (posedge CLK)beginif(!RESET) begin COUT1=0; m=0; endelse if(RESET)begin if(m=6) begin m=0; endelse m=
13、m+1;if(m=2) COUT1=COUT1;else if(m=5) COUT1=COUT1;endend占空比占空比50%的奇數(shù)分頻(模的奇數(shù)分頻(模7)always (negedge CLK)beginif(!RESET) begin COUT2=0; n=0; endelse if(RESET)begin if(n=6) begin n=0; endelse n=n+1;if(n=2) COUT2=COUT2; else if(n=5) COUT2=COUT2;endendendmodule功能仿真波形功能仿真波形模模7奇數(shù)分頻器功能仿真波形圖奇數(shù)分頻器功能仿真波形圖 (2)小數(shù)分頻
14、)小數(shù)分頻 n可用下面的方法大致實(shí)現(xiàn)小數(shù)分頻,即可用下面的方法大致實(shí)現(xiàn)小數(shù)分頻,即先設(shè)計(jì)兩個(gè)不同分頻比的整數(shù)分頻器,先設(shè)計(jì)兩個(gè)不同分頻比的整數(shù)分頻器,然后通過控制兩種分頻比出現(xiàn)的不同次然后通過控制兩種分頻比出現(xiàn)的不同次數(shù)來獲得所需要的小數(shù)分頻值,從而實(shí)數(shù)來獲得所需要的小數(shù)分頻值,從而實(shí)現(xiàn)平均意義上的小數(shù)分頻?,F(xiàn)平均意義上的小數(shù)分頻。 8.1小數(shù)分頻器小數(shù)分頻器module fdiv8_1(clk_in,rst,clk_out);input clk_in,rst;output clk_out;reg clk_out;reg3:0 cnt1;/cnt1計(jì)分頻的次數(shù)計(jì)分頻的次數(shù)reg3:0 cnt2
15、;always(posedge clk_in or posedge rst)begin if(rst) begin cnt1=0; cnt2=0; clk_out=0; end else if(cnt19)/9次次8分頻分頻 begin if(cnt27) begin cnt2=cnt2+1; clk_out=0; end else begin cnt2=0; cnt1=cnt1+1; clk_out=1; end end else begin/1次9分頻 if(cnt28) begin cnt2=cnt2+1; clk_out=0; end else begin cnt2=0; cnt1=0
16、; clk_out=1; end endendendmodule8.1小數(shù)分頻功能仿真波形小數(shù)分頻功能仿真波形 功能仿真波形功能仿真波形 9.5 數(shù)字跑表數(shù)字跑表 n設(shè)計(jì)一個(gè)數(shù)字跑表,設(shè)計(jì)一個(gè)數(shù)字跑表,該跑表具有復(fù)位、該跑表具有復(fù)位、暫停、秒表計(jì)時(shí)等暫停、秒表計(jì)時(shí)等功能。功能。n 跑表設(shè)三個(gè)輸入端,分別為時(shí)鐘輸入跑表設(shè)三個(gè)輸入端,分別為時(shí)鐘輸入(CLK)、復(fù)位()、復(fù)位(CLR)和啟動(dòng))和啟動(dòng)/暫停暫停(PAUSE)按鍵。復(fù)位信號高電平有效,可對)按鍵。復(fù)位信號高電平有效,可對跑表異步清零;當(dāng)啟動(dòng)跑表異步清零;當(dāng)啟動(dòng)/暫停鍵為低電平時(shí)跑暫停鍵為低電平時(shí)跑表開始計(jì)時(shí),為高電平時(shí)暫停,變低后在原來
17、表開始計(jì)時(shí),為高電平時(shí)暫停,變低后在原來的數(shù)值基礎(chǔ)上繼續(xù)計(jì)數(shù)。的數(shù)值基礎(chǔ)上繼續(xù)計(jì)數(shù)。 9.6 數(shù)字頻率計(jì)數(shù)字頻率計(jì) n設(shè)計(jì)一個(gè)設(shè)計(jì)一個(gè)4位頻率計(jì),可測量從位頻率計(jì),可測量從1Hz到到9,999Hz的信號頻率,并將被測信號的頻的信號頻率,并將被測信號的頻率在率在4個(gè)數(shù)碼管上顯示出來。個(gè)數(shù)碼管上顯示出來。n采用一個(gè)標(biāo)準(zhǔn)的基準(zhǔn)時(shí)鐘,在單位時(shí)間采用一個(gè)標(biāo)準(zhǔn)的基準(zhǔn)時(shí)鐘,在單位時(shí)間(如(如1秒)里對被測信號的脈沖數(shù)進(jìn)行計(jì)數(shù),秒)里對被測信號的脈沖數(shù)進(jìn)行計(jì)數(shù),即為信號的頻率。即為信號的頻率。4位數(shù)字頻率計(jì)的框圖位數(shù)字頻率計(jì)的框圖 9.7 交通燈控制器交通燈控制器 n設(shè)計(jì)一個(gè)十字路口交通燈控制器,其示設(shè)計(jì)一個(gè)
18、十字路口交通燈控制器,其示意圖如圖所示,意圖如圖所示,A方向和方向和B方向各設(shè)紅方向各設(shè)紅(R)、黃()、黃(Y)、綠()、綠(G)和左拐()和左拐(L)四盞燈,四種燈按合理的順序亮滅,并四盞燈,四種燈按合理的順序亮滅,并能將燈亮的時(shí)間以倒計(jì)時(shí)的形式顯示出能將燈亮的時(shí)間以倒計(jì)時(shí)的形式顯示出來。來。A方向B方向R1 Y1 G1 L1R2Y2G2L2 9.8 樂曲演奏電路樂曲演奏電路n采用FPGA器件驅(qū)動(dòng)小揚(yáng)聲器構(gòu)成一個(gè)樂曲演奏電路,演奏的樂曲選擇“梁?!逼危淝V如下。 3562155216 13 56 523651326516 16 57 樂曲演奏的原理n組成樂曲的每個(gè)音符的頻率值(音調(diào))及
19、其組成樂曲的每個(gè)音符的頻率值(音調(diào))及其持續(xù)的時(shí)間(音長)是樂曲能連續(xù)演奏所需持續(xù)的時(shí)間(音長)是樂曲能連續(xù)演奏所需的兩個(gè)基本數(shù)據(jù),因此只要控制輸出到揚(yáng)聲的兩個(gè)基本數(shù)據(jù),因此只要控制輸出到揚(yáng)聲器的激勵(lì)信號的頻率的高低和持續(xù)的時(shí)間,器的激勵(lì)信號的頻率的高低和持續(xù)的時(shí)間,就可以使揚(yáng)聲器發(fā)出連續(xù)的樂曲聲。就可以使揚(yáng)聲器發(fā)出連續(xù)的樂曲聲。 樂曲演奏電路原理框圖樂曲演奏電路原理框圖 9.10 實(shí)用多功能數(shù)字鐘實(shí)用多功能數(shù)字鐘 n用用Verilog語言設(shè)計(jì)一個(gè)多功能數(shù)字鐘,數(shù)字鐘具語言設(shè)計(jì)一個(gè)多功能數(shù)字鐘,數(shù)字鐘具有下述功能有下述功能(1)計(jì)時(shí)功能:包括時(shí)、分、秒的計(jì)時(shí)。)計(jì)時(shí)功能:包括時(shí)、分、秒的計(jì)時(shí)。(2)定時(shí)與鬧鐘功能:能在設(shè)定的時(shí)間發(fā)出鬧鈴音。)定時(shí)與鬧鐘功能:能在設(shè)定的時(shí)間發(fā)出鬧鈴音。(3)校時(shí)功能:對小時(shí)、分鐘和秒能手動(dòng)調(diào)整以校)校時(shí)功能:對小時(shí)、分鐘和秒能手動(dòng)調(diào)整以校準(zhǔn)時(shí)間。準(zhǔn)時(shí)間。(4)整點(diǎn)報(bào)時(shí)功能:每逢整點(diǎn),產(chǎn)生)整點(diǎn)報(bào)時(shí)功能:每逢整點(diǎn),產(chǎn)生“嘀嘀嘀嘀嘀嘀嘀嘀嘟嘟”,四短一長的報(bào)時(shí)音。,四短一長的報(bào)時(shí)音。9-1 用狀態(tài)機(jī)設(shè)計(jì)一個(gè)帶同步復(fù)位的十進(jìn)制計(jì)數(shù)器,用狀態(tài)機(jī)設(shè)計(jì)一個(gè)帶同步復(fù)位的十進(jìn)制計(jì)數(shù)器
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《立秋健康養(yǎng)生》課件
- 2021學(xué)年天津市楊村一中、寶坻一中等四校高一下學(xué)期期末聯(lián)考地理試題
- 小學(xué)一年級20以內(nèi)數(shù)學(xué)口算練習(xí)題大全
- 國際貿(mào)易試卷答案解讀
- 幼兒園傳染病預(yù)防工作領(lǐng)導(dǎo)小組
- 年度第一學(xué)期歷史科期末考試試卷
- 高考語文分鐘專題突破(2):字形
- 北京市大興區(qū)2022-2023學(xué)年高三上學(xué)期期末試卷英語試題
- 餐飲娛樂場所保安工作經(jīng)驗(yàn)
- 能源行業(yè)話務(wù)員工作心得
- 相關(guān)方人員入場安全告知書
- 蘇教版譯林三年級上下冊單詞表
- 腫瘤病例隨訪調(diào)查表
- 游樂園、滑雪場、冰雪樂園建設(shè)合作協(xié)議
- 粉末涂料有限公司檢維修作業(yè)安全風(fēng)險(xiǎn)分級清單
- 【蘇教版】2022-2023學(xué)年六年級數(shù)學(xué)上冊期末試卷(及答案)
- 2023-2024學(xué)年連云港市灌云縣四年級數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)水平測試模擬試題含答案
- 湖南省懷化市鶴城區(qū)2023年數(shù)學(xué)三下期末監(jiān)測試題含解析
- 項(xiàng)目工程安全管理責(zé)任區(qū)域劃分表
- 2023年學(xué)校食堂審計(jì)發(fā)現(xiàn)問題整改報(bào)告3篇
- 教育培訓(xùn)學(xué)校(機(jī)構(gòu))課堂教學(xué)反饋表
評論
0/150
提交評論