




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
組合邏輯電路片上微控制系統(tǒng)原理與項目設(shè)計第四講內(nèi)容回顧布爾邏輯量布爾邏輯運算布爾邏輯函數(shù)數(shù)字邏輯電路邏輯門邏輯電路邏輯符號真值表波形圖電路功能信號代數(shù)式數(shù)學(xué)HDL硬件結(jié)構(gòu)授課內(nèi)容組合電路信息處理系統(tǒng)信息獲取信息加工信息顯示信息存儲信息傳輸信息加工和處理算法中的數(shù)學(xué)計算、比較、選擇、分配、編碼和譯碼等重要操作電路都屬于組合電路。組合電路是無反饋電路,即當(dāng)前輸出只與當(dāng)前輸入有關(guān),相同的輸入產(chǎn)生相同的輸出。組合電路的分析分析方法從輸入端開始,逐級推導(dǎo)出輸出端的邏輯函數(shù)表達(dá)式根據(jù)邏輯函數(shù)表達(dá)式列出真值表根據(jù)真值表的內(nèi)容概括出電路的功能組合電路的分析某設(shè)備的控制電路圖3-1所示,分析該組合電路的邏輯功能。從輸入量A、B和C開始逐級推導(dǎo)
ABCFABCF00001000001010110100110101111111從表中可以看出,只要有兩個或兩個以上的輸入為1,輸出就為1。因此,該電路可以視為是一種“少數(shù)服從多數(shù)”的表決器。組合電路的分析硬件描述語句,有時分析語句即可知道功能,有時要列出真值表通過觀察得到功能,有時需要語句分析與列真值表相結(jié)合?!纠糠治鱿旅鎂erilog語言描述的邏輯電路的功能。moduletest(A,B,C,F); inputA,B,C; outputregF; wire[1:0]x; assignx=A+B+C; always@(*) if(x<2'd2) F<=1'b0; else F<=1'b1;endmodule組合電路設(shè)計設(shè)計某種功能的電路時,首先進(jìn)行邏輯抽象,即將文字描述的邏輯命題轉(zhuǎn)換為真值表;然后根據(jù)真值表和選用的邏輯器件類型寫出相應(yīng)的邏輯函數(shù)表達(dá)式。在邏輯抽象中,先分析邏輯命題,確定輸入和輸出變量;再采用二值邏輯的0和1分別對輸入和輸出進(jìn)行值描述(即0和1的含義),并列出輸出和輸入之間的邏輯真值表。組合電路設(shè)計【例】某產(chǎn)品重量檢測單元電路有四個輸入D3D2D1D0(其組合值為輸入的產(chǎn)品重量值)和3個輸出信號FL(不足)、FM(合格)和FH(超重)。輸入輸出關(guān)系為:(1)僅當(dāng)質(zhì)量值小于5時FL=1,其它情況FL=0;(2)僅當(dāng)質(zhì)量值大于10時FH=1,其它情況FH=0;(3)僅當(dāng)質(zhì)量值不小于5且不大于10時FM=1,其它情況FM=0。設(shè)計該單元電路。組合電路設(shè)計①輸入變量為D3、D2、D1和D0,輸出變量為FL、FH和FM。②邏輯真值表組合電路設(shè)計
組合電路設(shè)計
組合電路設(shè)計moduletest(D,FL,FM,FH); input[3:0]D; outputregFL,FM,FH; always@(*) if(D<4'd5) {FL,FM,FH}<=3'b100; elseif(D<=4’d10) {FL,FM,FH}<=3'b010; else {FL,FM,FH}<=3'b001;endmodule【例】某比賽項目有三個裁判,每個裁判有一個表決按鈕,按下按鈕表明“通過”。運動員最終成績通過是否亮燈來表示,燈亮表示“通過”,燈滅表示“未通過”。僅當(dāng)兩個或兩個以上裁判按下按鈕時,燈才亮。①輸入輸出定義有三個表決按鈕,分別采用三個輸入A、B和C來表示按鈕狀態(tài),當(dāng)按鈕按下時,相應(yīng)的變量值為0,否則為1。燈控信號采用輸出F表示,F(xiàn)為1時燈亮,為0時燈滅
logisimmoduletest(A,B,C,F); inputA,B,C; outputregF; always@(*) case({A,B,C}) 0,1,2,4:F<=1'b0; 3,5,6,7:F<=1'b1; endcaseendmodule加/減法器1.全加器
最基本的加法器是兩個比特相加的一位二進(jìn)制數(shù)加法,其數(shù)學(xué)公式為(CO,S)=A+B+CI,其中A和B是兩個本位加數(shù),CI為低位向本位的進(jìn)位,S為本位和,CO為本位向高位的進(jìn)位。該加法器也稱為全加器。問題:算術(shù)邏輯單元ALU如何設(shè)計?支持加、減、乘、除、與、或、非運算,由控制線控制全加器S=A
B
CICO=A
B+A
CI+B
CImoduleadd1(A,B,CI,S,CO); inputA,B,CI; outputS,CO; assign{CO,S}=A+B+CI;endmodule半加器沒有低位進(jìn)位的加法器稱為半加器,即(CO,S)=A+B2.全減器全減器包括三個輸入,即本位的被減數(shù)A、減數(shù)B和低位向本位的借位CI,兩個輸出,即本位差D和本位向高位的借位CO。減法運算式為:(CO,D)=A-B-CImodulesub1(CI,A,B,CO,D);inputCI,A,B;outputCO,D; assign{CO,D}=A–B-CI;endmodule多位加/減法器多位加/減法器通常由全加器級聯(lián)構(gòu)成。2位加法器在數(shù)學(xué)運算中,兩位數(shù)加是從最低位開始,逐位相加。最低位的A0、B0和CI相加,結(jié)果為CO0和S0,將CO0作為CI1,參加高位的加運算,A1、B1和CI1相加結(jié)果為CO和S1。以此類推,n位加法器由一個n-1位加法器和一個全加器級聯(lián)而成,n-1位加法器的進(jìn)位作為一個全加器的低位進(jìn)位CI,全加器輸出和的第n位和進(jìn)位CO。moduleaddn(CI,A,B,S,CO);parametern=;inputCI;input[n-1:0]A,B;output[n-1:0]S;outputCO;assign{CO,S}=A+B+CI;endmodule應(yīng)用示例【例】有符號數(shù)加法器:輸入8位有符號數(shù)A和B,輸出8位本位和S和1位進(jìn)位標(biāo)志CF,有符號數(shù)的加法還會出現(xiàn)溢出現(xiàn)象,因此同時也輸出1位溢出標(biāo)志OF。moduleSAdd8(A,B,S,CF,OF); input[7:0]A,B; output[7:0]S; outputCF,OF; wireCp; assign{Cp,S[6:0]}=A[6:0]+B[6:0];//產(chǎn)生本位和的低6位和次高位進(jìn)位標(biāo)志 assign{CF,S[7]}=A[7]+B[7]+Cp;//產(chǎn)生本位和的最高位和最高位進(jìn)位標(biāo)志 assignOF=Cp^CF;//產(chǎn)生溢出標(biāo)志endmodulemoduletest;reg[7:0]A,B;wire[7:0]S;wireCF,OF;
SAdd8sadd8_0(.A(A),.B(B),.S(S),.CF(CF),.OF(OF));initialbeginA=100;B=27;#100;B=28;#100;A=-100;B=-28;#100;B=-29;#100;$stop;endendmodulemoduleaddn(CI,A,B,S,CO);parametern=;inputCI;input[n-1:0]A,B;output[n-1:0]S;outputCO;assign{CO,S}=A+B+CI;endmodule數(shù)據(jù)選擇/分配器1.數(shù)據(jù)選擇器從多路輸入中選擇一個作為輸出,也稱為多路選擇器(MUX)。它有n個地址輸入An-1,…,A0、N=2n個數(shù)據(jù)輸入DN-1,…,D0和1個數(shù)據(jù)輸出Y。n個地址構(gòu)成的二進(jìn)制值i,輸出Y就等于輸入Di,其數(shù)學(xué)描述為:Y=Di,i=(An-1…A0)2。moduleMux4(A,D,Y); input[1:0]A; input[3:0]D; outputregY; integeri; always@(*) for(i=0;i<4;i=i+1) if(A==i) Y<=D[i];endmodule
本節(jié)內(nèi)容moduletop_module(input[15:0]a,b,c,d,e,f,g,h,i,input[3:0]sel,output[15:0]out);always@(*)begincase(sel)4'b0:out<=a;4'b1:out<=b;4'd2:out<=c;4'd3:out<=d;4'd4:out<=e;4'd5:out<=f;4'd6:out<=g;4'd7:out<=h;4'd8:out<=i;default:out<=16'b1111_1111_1111_1111;endcaseendendmodule
moduleDemux4(A,D,Y); input[1:0]A; inputD; outputreg[3:0]Y; integeri;//循環(huán)結(jié)構(gòu)中的計數(shù)量,不是信號 always@(*) for(i=0;i<4;i=i+1)//生成4個if語句 if(A==i) Y[i]<=D; else Y[i]<=1;endmodule應(yīng)用實例-ALU算術(shù)邏輯運算器運算器支持8種兩個8位數(shù)X和Y的數(shù)據(jù)運算,即加、減、位與、位或、位異或、左移1位、右移1位、賦值,但每次只能進(jìn)行1種運算,通過3位控制信號OP改變運算類型,同時給出進(jìn)/借位標(biāo)志CF、溢出標(biāo)志OF、符號標(biāo)志SF和結(jié)果為零標(biāo)志ZF。設(shè)計此運算器的電路結(jié)構(gòu)圖及相應(yīng)的HDL代碼。 always@(*) case(OP) 0:{OF,CF,Z}<={oa,ca,sa}; 1:{OF,CF,Z}<={os,cs,ds}; 2:{OF,CF,Z}<={2'b0,X&Y}; 3:{OF,CF,Z}<={2'b0,X|Y}; 4:{OF,CF,Z}<={2'b0,X^Y}; 5:{OF,CF,Z}<={2'b00,X[6:0],1'b0}; 6:{OF,CF,Z}<={2'b00,1'b0,X[7:1]}; 7:{OF,CF,Z}<={2'b0,Y}; endcase assignSF=Z[7]; assignZF=~|Z;endmodulemoduleALU(OP,X,Y,Z,CF,OF,SF,ZF); input[2:0]OP; input[7:0]X,Y; outputreg[7:0]Z; outputregCF,OF; outputSF,ZF; wire[7:0]sa; wire[7:0]ds; wireca,oa,cs,os; SAdd8sadd8_0(.A(X),.B(Y),.S(sa),.CF(ca),.OF(oa)); SSub8ssub8_0(.A(X),.B(Y),.D(ds),.CF(cs),.OF(os));moduletest;reg[2:0]OP;reg[7:0]X,Y;wire[7:0]Z;wireCF,OF,SF,ZF;integeri;
ALUalu_0(.OP(OP),.X(X),.Y(Y),.Z(Z),.CF(CF),.OF(OF),.SF(SF),.ZF(ZF));initialbeginX=8'b01010101;Y=8'b10101010;for(i=0;i<8;i=i+1)beginOP=i;#100;end$finish;endendmodule作業(yè)實現(xiàn)“算術(shù)邏輯運算器”例子,并給出仿真結(jié)果。要求X、Y分別為本人學(xué)號的前兩位和后兩位。例如,學(xué)號為“12345678”,則X=00001100(12),Y=01001110(78)組合邏輯電路2片上微控制系統(tǒng)原理與項目設(shè)計第五講授課內(nèi)容組合電路分析與設(shè)計基本組合電路模塊加/減法器數(shù)據(jù)選擇器/分配器數(shù)值比較器編/譯碼器競爭與冒險應(yīng)用實例【例】雙通道數(shù)據(jù)選擇器:備選數(shù)據(jù)有六個8位數(shù)D0、D1、D2、D3、D4和D5,兩個通道輸出8位數(shù)Y0和Y1,在通道數(shù)據(jù)選擇信號S0和S1控制下,每個通道獨立地從六個數(shù)中選擇其中之一輸出。試給出雙通道選擇控制邏輯電路及相應(yīng)的HDL代碼?!痉治觥繌墓δ苌峡梢钥闯觯撨壿嬰娐酚蓛蓚€選擇器構(gòu)成,兩個選擇器的數(shù)據(jù)源是相同的,由兩個不同的選擇控制信號來決定每個源操作數(shù)的輸出。moduleSrcSel(D0,D1,D2,D3,D4,D5,S0,S1,Y0,Y1); input[7:0]D0,D1,D2,D3,D4,D5; input[2:0]S0,S1; outputreg[7:0]Y0,Y1; always@(*) begin case(S0) 0:Y0<=D0; 1:Y0<=D1; 2:Y0<=D2; 3:Y0<=D3; 4:Y0<=D4; 5:Y0<=D5; default:Y0<=0; endcase case(S1) 0:Y1<=D0; 1:Y1<=D1; 2:Y1<=D2; 3:Y1<=D3; 4:Y1<=D4; 5:Y1<=D5; default:Y1<=0; endcase end endmodulemoduletest;reg[47:0]D;reg[2:0]S1,S0;wire[7:0]Y1,Y0;integeri,j;
SrcSelsrcsel_0(.D0(D[7:0]),.D1(D[15:8]),.D2(D[23:16]),.D3(D[31:24]),.D4(D[39:32]),.D5(D[47:40]),.S0(S0),.S1(S1),.Y0(Y0),.Y1(Y1));initialbeginD={8'd5,8'd4,8'd3,8'd2,8'd1,8'd0};for(i=0;i<6;i=i+1)for(j=0;j<6;j=j+1)beginS1=i;S0=j;#100;end$finish;endendmodule【作業(yè)】數(shù)據(jù)傳輸分配器:外部產(chǎn)生待傳8位數(shù)據(jù)DI和一位數(shù)據(jù)有效信號DE,分配器根據(jù)3位通道選擇信號S將待傳數(shù)據(jù)及數(shù)據(jù)有效信號傳輸?shù)轿鍌€通道中之一,五個通道輸出分別為DO0~DO4和E0~E4。試給出分配器控制邏輯電路及相應(yīng)的HDL代碼。數(shù)值比較器數(shù)值比較器是對兩個位數(shù)相同的二進(jìn)制數(shù)進(jìn)行數(shù)值比較,輸出兩個數(shù)的比較結(jié)果:大于、等于或小于。比較可以從最高位向最低位開始也可以從最低位向最高位開始前位是高位SA>BSA=BSA<BABFA>BFA=BFA<B001
00101000010010010010101010001011010100
100前位是低位,如何設(shè)計?多位數(shù)值比較器moduleCmp(A,B,FL,FE,FH);//FL表示FA<B,F(xiàn)L表示FA=B,F(xiàn)L表示FA>B。 parametern=;//數(shù)據(jù)數(shù)位值 input[n-1:0]A,B; outputregFL,FE,FH; always@(*) if(A<B) {FL,FE,FH}<=3’b100; elseif(A==B) {FL,FE,FH}<=3’b010; else {FL,FE,FH}<=3’b001;endmodule應(yīng)用示例【例】某電路輸入為4位的x,其輸出為4位的y,y和x之間的關(guān)系如圖所示,試設(shè)計一組合邏輯電路來實現(xiàn)該功能,給出電路結(jié)構(gòu)圖和相應(yīng)的HDL代碼。
modulefunc(x,y); input[3:0]x; outputreg[3:0]y; always@(*) if(x<4'd5) y<=x; elseif(x>4'd10) y<=~x; else y<=5;endmodulemoduletest;reg[3:0]x;wire[3:0]y;integeri;funcfunc_0(.x(x),.y(y));initialbeginfor(i=0;i<16;i=i+1)beginx=i;#100;end$finish;endendmodule編/譯碼器編碼器是采用m位比特來表示n條信號線中的有效信號線。n位輸入線,理論上共有2n種組合m位輸出編碼,M?2n。使能信號nE編碼有效信號nYs功能表nEnI7nI6nI5nI4nI3nI2nI1nI0nYsY2Y1Y00xxxxxxx000000xxxxxx0100010xxxxx01100100xxxx011100110xxx0111101000xx01111101010x01111110110001111111011101111111111111xxxxxxxx1111moduleEncoder8(nE,nI,Y,nYs); inputnE; input[0:7]nI; outputreg[2:0]Y; outputregnYs; always@(*) if(nE) casex(nI) 8'b0xxxxxxx:{nYs,Y}<=4'b0000; 8'b10xxxxxx:{nYs,Y}<=4'b0001; 8'b110xxxxx:{nYs,Y}<=4'b0010; 8'b1110xxxx:{nYs,Y}<=4'b0011; 8'b11110xxx:{nYs,Y}<=4'b0100; 8'b111110xx:{nYs,Y}<=4'b0101; 8'b1111110x:{nYs,Y}<=4'b0110; 8'b11111110:{nYs,Y}<=4'b0111; default:{nYs,Y}<=4'b1111; endcase else {nYs,Y}<=4'b1111;endmodule二進(jìn)制譯碼器譯碼器n個輸入線,有N條輸出線,N>n。不同輸入值代表N條輸出線上的不同的特定電平組合,相當(dāng)于電平翻譯工作。二進(jìn)制譯碼器nEA1A0nY0nY1nY2nY31
11110000111001101101011010111110if(nE) nY<=4'b1111;else case(A) 0:nY<=4'b1110; 1:nY<=4'b1101; 2:nY<=4'b1011; 3:nY<=4'b0111; endcase應(yīng)用示例【例】某快遞自動快件分撿系統(tǒng)可以自動根據(jù)寄件地址碼自動分檢出A區(qū)、B區(qū)、C區(qū)和D區(qū)的郵件,將其它地區(qū)郵件送至人工分檢處。系統(tǒng)通過控制擋板A、擋板B、擋板C和擋板D的轉(zhuǎn)動來選擇區(qū)域?!痉治觥空麄€系統(tǒng)由掃碼器、控制器和擋板組成。掃碼器產(chǎn)生七位地址碼A6A5A4A3A2A1A0,控制器根據(jù)地址碼產(chǎn)生擋板控制信號nK0、nK1、nK2和nK3來分別控制擋板A、B、C和D是否轉(zhuǎn)動??旒刂反a為7位二進(jìn)制數(shù)A區(qū)地址碼范圍為0x00~0x0FB區(qū)地址碼范圍為0x10~0x1FC區(qū)地址碼范圍為0x20~0x2FD區(qū)地址碼范圍為0x30~0x3F當(dāng)快件的地址碼處于某區(qū)范圍內(nèi),該區(qū)的擋板自動打開引導(dǎo)快件進(jìn)入該區(qū)
從表中可以看出,恰是一個2線-4線譯碼器的功能,采用譯碼器的電路結(jié)構(gòu)如圖。moduletest;reg[6:0]A;wire[3:0]nK;reg[2:0]i;
AutoSortingCtrlautoinst(.A(A),.nK(nK));initialbeginfor(i=0;i<8;i=i+1)begin A={i,4’b0000}; #100;end$finish;endendmodulemoduleAutoSortingCtrl(A,nK);input[6:0]A;output[3:0]nK;
Decoder4decoder4_0(.nE(A[6]),.A(A[5:4]),.nY(nK));endmodule顯示譯碼器在數(shù)字系統(tǒng)中,經(jīng)常采用發(fā)光二極管來顯示數(shù)字或字符信息。最為常用的是7段顯示數(shù)碼管,它采用七個矩形發(fā)光二極管圍成8字型。它含有7個輸入a~g分別控制一個發(fā)光二極管。發(fā)光二極管是特殊的二極管,導(dǎo)通時發(fā)光。數(shù)碼管有共陽、共陰之分?!纠吭O(shè)計一共陽7段顯示數(shù)碼管的譯碼器電路,使其可以實現(xiàn)數(shù)字0~9的顯示。always@(*) case(D) 4'h0:F<=7'h01; 4'h1:F<=7'h4f; 4'h2:F<=7'h12; 4'h3:F<=7'h06; 4'h4:F<=7'h4c; 4'h5:F<=7'h24; 4'h6:F<=7'h20; 4'h7:F<=7'h0f; 4'h8:F<=7'h00; 4'h9:F<=7'h04; default:F<=7'h7f; endcase【實驗】護(hù)士呼叫顯示控制系統(tǒng)系統(tǒng)負(fù)責(zé)8個病床,每個病床上安有呼叫開關(guān)。當(dāng)病人按下開關(guān)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣西賀州市桂梧高級中學(xué)2025屆高一化學(xué)第二學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 甘肅省慶陽市長慶中學(xué)2025年高二下化學(xué)期末調(diào)研模擬試題含解析
- 北京集體資產(chǎn)管理辦法
- 公司出國證件管理辦法
- 智慧手環(huán)使用管理辦法
- 晉中市健康碼管理辦法
- 內(nèi)貿(mào)船舶衛(wèi)生管理辦法
- 農(nóng)業(yè)智能化生產(chǎn)系統(tǒng)
- 醫(yī)療產(chǎn)品售賣管理辦法
- 除害滅蟲施工方案:全面指南與實施建議
- 設(shè)備部管理制度范文(2篇)
- 《機械員培訓(xùn)資料》課件
- 裝配式圍擋施工方案
- 風(fēng)電項目安全專業(yè)監(jiān)理實施細(xì)則
- 01J925-1壓型鋼板、夾芯板屋面及墻體建筑構(gòu)造
- 高一化學(xué)會考知識點
- 醫(yī)院信息機房運維服務(wù)項目需求
- 有趣的漢字甲骨文演變完整模板
- (完整版)曲臂式高空作業(yè)車安全技術(shù)交底
- 2024年民族宗教政策法規(guī)宣傳月知識競賽考試題庫(含答案)
- 《3-6歲兒童學(xué)習(xí)與發(fā)展指南》考試參考題庫120題(含答案)
評論
0/150
提交評論