




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、n數(shù)字電路數(shù)字電路n組合電路組合電路n與非門等與非門等n時(shí)序電路時(shí)序電路nD觸發(fā)器觸發(fā)器電路輸出完全依賴電路輸入電路輸出在一定程度不依賴電路輸入運(yùn)算運(yùn)算記憶記憶第第3 3章章 組合邏輯電路設(shè)計(jì)組合邏輯電路設(shè)計(jì)1組合電路時(shí)序時(shí)序電路實(shí)現(xiàn)功能使功能有序23.3 Verilog 過程及譯碼電路過程及譯碼電路nAlways 過程語句過程語句nalways定義的過程塊是一個(gè)電路,定義的過程塊是一個(gè)電路,電路電路從上電開始就會(huì)一直執(zhí)行;從上電開始就會(huì)一直執(zhí)行;n (從代碼一開始就執(zhí)行,執(zhí)行完了再回(從代碼一開始就執(zhí)行,執(zhí)行完了再回到過程塊的最初來執(zhí)行,周而復(fù)始,不到過程塊的最初來執(zhí)行,周而復(fù)始,不會(huì)停止,
2、直到代碼執(zhí)行完畢)會(huì)停止,直到代碼執(zhí)行完畢) 3.3 常用過程語句常用過程語句 if else/ “begin” 和和 “end”就好比就好比C語言中的語言中的“”和和“”.if (enable = = 1b1) begin data = 10; / 十進(jìn)制賦值十進(jìn)制賦值 address = 16hDEAD; /十六進(jìn)制十六進(jìn)制 wr_enable = 1b1; /二進(jìn)制二進(jìn)制 end else begin data = 32b0; wr_enable = 1b0; address = address + 1; end3.3 過程語句過程語句casecase(address) 0 : $dis
3、play (It is 11:40PM); 1 : $display (I am feeling sleepy); 2 : $display (Let me skip this tutorial); default : $display (Need to complete); endcase3.3 過程語句過程語句while module counter (clock,rst,enable,count); input clock, rst, enable; output 3:0 count; reg 3:0 count; always (posedge clock or posedge rst
4、) if (rst) count = 0;else begin : COUNT while (enable) begin count = count + 1; disable COUNT; end end endmodule3.3 過程中的阻塞賦值與過程中的阻塞賦值與 非阻塞賦值非阻塞賦值 n阻塞式阻塞式 (blocking) 的操作符為的操作符為 “ = ”n 非阻塞式非阻塞式 (non-blocking)的操作符)的操作符為為 “ = ”n 阻塞賦值和非阻塞賦值的基本區(qū)別是:阻塞賦值和非阻塞賦值的基本區(qū)別是:阻塞賦值是順序執(zhí)行語句,而非阻塞賦阻塞賦值是順序執(zhí)行語句,而非阻塞賦值是并行執(zhí)行語
5、句。兩種語句的含義不值是并行執(zhí)行語句。兩種語句的含義不同,建模的應(yīng)用也就不同。同,建模的應(yīng)用也就不同。 3.3 對(duì)比對(duì)比module top(clk,a, c);input a,clk;output c;reg c,b;always ( posedge clk )beginb=a;C=b;endendmodulemodule top(clk,a,c);input a,clk;output c;reg c,b;always ( posedge clk )beginb=a;c=b;endendmodule3.3譯碼器電路譯碼器電路輸入輸入輸出輸出A BY0 Y1 Y2 Y30 01 0 0 00
6、10 1 0 01 00 0 1 01 10 0 0 12 2線線4 4線譯碼器真值表線譯碼器真值表00mBAY 33mABY 22mBAY 11mBAY 邏輯函數(shù):邏輯函數(shù):2線線4線譯碼器電路線譯碼器電路3-8譯碼器電路譯碼器電路重溫設(shè)計(jì)過程重溫設(shè)計(jì)過程n1. 文本編輯文本編輯n2. 設(shè)定器件設(shè)定器件n3. 輸入管腳輸入管腳n4. 綜合、布局布線綜合、布局布線n5. 設(shè)定下載端口設(shè)定下載端口n6. 下載下載n能不能自己實(shí)現(xiàn)能不能自己實(shí)現(xiàn)3-8譯碼器電路?譯碼器電路?3.3實(shí)訓(xùn)實(shí)訓(xùn) 3-8譯碼器譯碼器1、建立工程、建立工程2、使用、使用Verilog語言設(shè)計(jì)語言設(shè)計(jì)module 3_8yim
7、aqi (data_in,data_out); input2:0 data_in; output7:0 data_out; reg 7:0 data_out;always(data_in)begin case(data_in) 3b000:data_out=8b0000_0001; 3b001:data_out=8b0000_0010; 3b010:data_out=8b0000_0100; 3b011:data_out=8b0000_1000; 3b100:data_out=8b0001_0000; 3b101:data_out=8b0010_0000; 3b110:data_out=8b0
8、100_0000; 3b111:data_out=8b1000_0000; endcase endendmodule3.4 三態(tài)門電路三態(tài)門電路輸入信號(hào)雙向信號(hào)輸出信號(hào)rwco_dataout_datain_data1co_dataxco_data0out_dataout_dataout_data三態(tài)門電路結(jié)構(gòu)單元三態(tài)門電路結(jié)構(gòu)單元 如果使能端G為低電平,取值為0時(shí),三態(tài)門電路與B點(diǎn)之間連接的兩個(gè)MOS管都關(guān)斷,B在芯片內(nèi)部的連接處于高阻態(tài),也就是為Z,此時(shí)外部信號(hào)可以通過B送到C,作為輸入狀態(tài)。當(dāng)G為低高平,取值為1時(shí),三態(tài)門電路與B連接的兩個(gè)MOS管中可以有一個(gè)管子導(dǎo)通,B的取值和A一致,
9、而此時(shí)外部對(duì)B不能進(jìn)行信號(hào)驅(qū)動(dòng),否則就會(huì)出現(xiàn)短路。 CMOS傳輸門三態(tài)門電路傳輸門三態(tài)門電路 3.5 數(shù)碼管顯示數(shù)碼管顯示3.5 例:在數(shù)碼管上顯示例:在數(shù)碼管上顯示2module seg7(data_out); output6:0 data_out; assign data_out=7b 1011011endmodule 3.5 七段譯碼器結(jié)構(gòu)七段譯碼器結(jié)構(gòu)七段LED數(shù)碼管顯示電路in0ag3.5 BCD數(shù)段碼對(duì)應(yīng)表數(shù)段碼對(duì)應(yīng)表七段數(shù)碼管顯示電路輸入七段數(shù)碼管顯示電路輸入七段數(shù)碼管顯示電七段數(shù)碼管顯示電路輸出路輸出LED顯示顯示字形字形in3 in2 in1 in0gfedcba 0 0 0
10、 001111110 0 0 0 100001101 0 0 1 010110112 0 0 1 110011113 0 1 0 011001104 0 1 0 111011015 0 1 1 011111006 0 1 1 100001117 1 0 0 011111118 1 0 0 1110011193.5 代碼代碼module qiduan(data_in;/七段數(shù)碼管顯示電路的輸入,對(duì)應(yīng)圖的七段數(shù)碼管顯示電路的輸入,對(duì)應(yīng)圖的in3-in0,in3對(duì)應(yīng)高位對(duì)應(yīng)高位data_out);/七段數(shù)碼管顯示電路的輸出,對(duì)應(yīng)圖中的七段數(shù)碼管顯示電路的輸出,對(duì)應(yīng)圖中的g-a,g對(duì)應(yīng)高位對(duì)應(yīng)高位in
11、put3:0 data_in;/輸入輸出端口定義輸入輸出端口定義output6:0 data_out;reg6:0 data_out;/使用使用always建模組合邏輯需要定義輸出為寄存器建模組合邏輯需要定義輸出為寄存器always(data_in) /輸入為輸入為data_inbegin case(data_in)/輸入的不同情況輸入的不同情況 4b0000: data_out = 7b0111111; / 0 4b0001: data_out = 7b0000110; / 1 4b0010: data_out = 7b1011011; / 2 4b0011: data_out = 7b10
12、01111; / 3 4b0100: data_out = 7b1100110; / 4 4b0101: data_out = 7b1101101; / 5 4b0110: data_out = 7b1111100; / 6 4b0111: data_out = 7b0000111; / 7 4b1000: data_out = 7b1111111; / 8 4b1001: data_out = 7b1100111; / 9 default: data_out = 7b0000000; /default,當(dāng)輸入為其他值時(shí),當(dāng)輸入為其他值時(shí),輸出有效,為全輸出有效,為全0 endcaseende
13、ndmodule3.5 實(shí)例實(shí)例2:用數(shù)碼管顯示:用數(shù)碼管顯示9527需要輪流打開4個(gè)數(shù)碼管,每個(gè)數(shù)碼管顯示1/4的時(shí)間,由于視覺暫留效應(yīng),就好像顯示4個(gè)不同的數(shù)字設(shè)計(jì)思路:設(shè)計(jì)思路:1.打開scan0的時(shí)候,在abcdefg線上賦值“9”2.打開scan1的時(shí)候,在abcdefg線上賦值“5”3.打開scan2的時(shí)候,在abcdefg線上賦值“2”4.打開scan3的時(shí)候,在abcdefg線上賦值“7”首先:設(shè)計(jì)首先:設(shè)計(jì)SCAN信號(hào)信號(hào)n首先要降低掃描速度,生成一個(gè)大約為首先要降低掃描速度,生成一個(gè)大約為0.01s-0.1s的時(shí)鐘的時(shí)鐘n利用這個(gè)時(shí)鐘信號(hào)產(chǎn)生一個(gè)利用這個(gè)時(shí)鐘信號(hào)產(chǎn)生一個(gè)sc
14、an信號(hào)如信號(hào)如下:下:reg1:0 state; reg3:0 scan;/注意要用注意要用always就必就必須是須是regalways(posedge clk_div)state=state+1b1;always (state)case (state)2b00 : scan=4b0001;2b01 : scan =4b0010;2b10 : scan =4b0100;2b11 : scan =4b1000;default: scan =4b0000;endcase分不同的時(shí)間把分不同的時(shí)間把9、5、2、7放到放到bin上面去上面去reg3:0 bin;/不在不在always里面賦值就用里
15、面賦值就用wire,否則用,否則用regalways(state)case (state)2b00 : bin=4d9;2b01 : bin=4d5;2b10 : bin=4d2;2b11 : bin=4d7;default: bin=4d0;endcase再對(duì)再對(duì)9527從二進(jìn)制到從二進(jìn)制到abdcdefg譯碼譯碼reg6:0 abcdefg;always(bin) begin case(bin) 4b0000: abcdefg= 7b0111111; . . default: abcdefg= 7b0000000; endcase3.5 實(shí)例實(shí)例3:計(jì)數(shù)牌子:計(jì)數(shù)牌子n任務(wù)分析:任務(wù)分析:
16、 設(shè)計(jì)一個(gè)計(jì)數(shù)牌子,能從設(shè)計(jì)一個(gè)計(jì)數(shù)牌子,能從0000計(jì)數(shù)計(jì)數(shù)到到9999,每隔,每隔1秒鐘跳動(dòng)一下。通過復(fù)秒鐘跳動(dòng)一下。通過復(fù)位可以把系統(tǒng)清零為位可以把系統(tǒng)清零為0000【涉及涉及】動(dòng)態(tài)數(shù)碼管顯示,復(fù)位,分頻電路等動(dòng)態(tài)數(shù)碼管顯示,復(fù)位,分頻電路等設(shè)計(jì)思路:設(shè)計(jì)思路:1.內(nèi)部所有數(shù)據(jù)都是內(nèi)部所有數(shù)據(jù)都是2進(jìn)制的,所以需要設(shè)進(jìn)制的,所以需要設(shè)計(jì)計(jì)4個(gè)個(gè)4位位2進(jìn)制的進(jìn)制的reg,分別對(duì)應(yīng)顯示的,分別對(duì)應(yīng)顯示的4個(gè)數(shù)字,再通過動(dòng)態(tài)掃描電路送到個(gè)數(shù)字,再通過動(dòng)態(tài)掃描電路送到LED上面去顯示。上面去顯示。2.利用利用1秒的時(shí)鐘,構(gòu)建秒的時(shí)鐘,構(gòu)建“個(gè)、十、百、千個(gè)、十、百、千”位的變換規(guī)律位的變換規(guī)律
17、 設(shè)計(jì)模塊設(shè)計(jì)模塊1:分頻電路:分頻電路n代碼:略代碼:略1.產(chǎn)生一個(gè)產(chǎn)生一個(gè)1秒的時(shí)鐘秒的時(shí)鐘:clk_1s2.產(chǎn)生一個(gè)產(chǎn)生一個(gè)0.01秒的時(shí)鐘(為了動(dòng)態(tài)顯示秒的時(shí)鐘(為了動(dòng)態(tài)顯示使用)使用):clk_div設(shè)計(jì)模塊設(shè)計(jì)模塊2:計(jì)數(shù)器:計(jì)數(shù)器reg3:0 gewei; /各位數(shù)各位數(shù)always(posedge clk_1s)if(reset=1b1) gewei=4b0;else if(gewei=4d9) gewei=4b0; else gewei=gewei+1b1; reg3:0 shiwei; /十位數(shù)十位數(shù)always(posedge clk_1s)if(reset=1b1) s
18、hiwei=4b0;else if(gewei=4d9) begin if(shiwei=4d9); shiwei=4b0; else shiwei=shiwei+1b1;endreg3:0 baiwei; /百位數(shù)百位數(shù)always(posedge clk_1s)if(reset=1b1) baiwei=4b0;else if(gewei=4d9)&(shiwei=4d9) begin if(baiwei=4d9); baiwei=4b0; else baiwei=baiwei+1b1;endreg3:0 qianwei; /千位數(shù)千位數(shù)always(posedge clk_1s)if(re
19、set=1b1) qianwei=4b0;else if(gewei=4d9)&(shiwei=4d9)&(baiwei=4d9) begin if(qianwei=4d9); qianwei=4b0; else qianwei=shiwei+1b1;end3.5實(shí)例實(shí)例4:動(dòng)態(tài)譯碼顯示:動(dòng)態(tài)譯碼顯示n回想一下:回想一下:我們是如何把我們是如何把9527顯示出來的?顯示出來的?設(shè)計(jì)設(shè)計(jì)SCAN信號(hào)信號(hào)n首先要降低掃描速度,生成一個(gè)大約為首先要降低掃描速度,生成一個(gè)大約為0.01s-0.1s的時(shí)鐘的時(shí)鐘n利用這個(gè)時(shí)鐘信號(hào)產(chǎn)生一個(gè)利用這個(gè)時(shí)鐘信號(hào)產(chǎn)生一個(gè)scan信號(hào)如信號(hào)如下:下:reg1:0 state; reg3:0 scan;/注意要用注意要用always就必就必須是須是regalways(posedge clk_div)state=stats+
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高速鐵路設(shè)備采購合同終止及運(yùn)營維護(hù)協(xié)議
- 餐飲業(yè)專用商業(yè)房產(chǎn)租賃協(xié)議書
- 老人兒童護(hù)理課件
- 美術(shù)課件彩虹模板
- 公司獎(jiǎng)勵(lì)規(guī)章制度
- 生產(chǎn)車間10s管理制度
- 企業(yè)金融安全
- 建筑施工vr安全體驗(yàn)館
- 安全防范系統(tǒng)報(bào)告
- 2025年上半年征兵工作總結(jié)
- 燃?xì)獍踩嘤?xùn)課件
- 酒店安全風(fēng)險(xiǎn)辨識(shí)與預(yù)防制度
- 企業(yè)員工心理危機(jī)干預(yù)
- 330kV變電站運(yùn)營維護(hù)管理方案
- 拋石擠淤及基礎(chǔ)大開挖施工方案
- 路燈拆裝合同范文
- 《動(dòng)火作業(yè)安全培訓(xùn)》課件
- 2025年中考語文備考之12部名著閱讀習(xí)題及參考答案
- 1998-2017年中科院植物學(xué)考研真題及答案匯編
- 兒童相機(jī)市場(chǎng)的發(fā)展趨勢(shì)分析
- 血液凈化護(hù)理知識(shí)競(jìng)賽考試題庫500題(含答案)
評(píng)論
0/150
提交評(píng)論