Altera MAX10: 3-8譯碼器
在這個(gè)實(shí)驗(yàn)里我們將學(xué)習(xí)如何用Verilog來實(shí)現(xiàn)組合邏輯。
====硬件說明====
組合邏輯電路是數(shù)字電路的重要部分,電路的輸出只與輸入的當(dāng)前狀態(tài)相關(guān)的邏輯電路,常見的有選擇器、比較器、譯碼器、編碼器、編碼轉(zhuǎn)換等等。在本實(shí)驗(yàn)里以最常見的3-8譯碼器為例說明如何用Verilog實(shí)現(xiàn)。3-8譯碼器的真值表如下:
從前面的實(shí)驗(yàn)可以知道,當(dāng)FPGA輸出信號(hào)到LED為高電平時(shí)LED熄滅,反之LED變亮。同時(shí)我們可以以開關(guān)的信號(hào)模擬3-8譯碼器的輸入,這樣控制開關(guān)我們就能控制特定的LED變亮。
====Verilog代碼====
// ******************************************************************** // >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<< // ******************************************************************** // File name : decode38.v // Module name : decode38// Author : STEP // Description : 3-8decode control LED// Web : www.stepfpga.com // // -------------------------------------------------------------------- // Code Revision History : // -------------------------------------------------------------------- // Version: |Mod. Date: |Changes Made: // V1.0 |2017/03/02 |Initial ver // -------------------------------------------------------------------- // Module Function:利用3路開關(guān)的狀態(tài)作為輸出,通過3-8譯碼實(shí)現(xiàn)控制LED燈的顯示。 module decode38 (sw,led); input [2:0] sw; //開關(guān)輸入信號(hào),利用了其中3個(gè)開關(guān)作為3-8譯碼器的輸入 output [7:0] led; //輸出信號(hào)控制特定LED reg [7:0] led; //定義led為reg型變量,在always過程塊中只能對reg型變量賦值 //always過程塊,括號(hào)中sw為敏感變量,當(dāng)sw變化一次執(zhí)行一次always中所有語句,否則保持不變 always @ (sw) begin case(sw) //case語句,一定要跟default語句 3'b000: led=8'b0111_1111; //條件跳轉(zhuǎn),其中“_”下劃線只是為了閱讀方便,無實(shí)際意義 3'b001: led=8'b1011_1111; //位寬'進(jìn)制+數(shù)值是Verilog里常數(shù)的表達(dá)方法,進(jìn)制可以是b、o、d、h(二、八、十、十六進(jìn)制) 3'b010: led=8'b1101_1111; 3'b011: led=8'b1110_1111; 3'b100: led=8'b1111_0111; 3'b101: led=8'b1111_1011; 3'b110: led=8'b1111_1101; 3'b111: led=8'b1111_1110; default: ; endcase end endmodule
引腳分配
綜合(synthesize)完成之后一定要配置FPGA的引腳到相應(yīng)的外設(shè)。
信號(hào)名稱 | 分配管腳 | 信號(hào)名稱 | 分配管腳 |
---|---|---|---|
LED[0] | N15 | SW[0] | J12 |
LED[1] | N14 | SW[1] | H11 |
LED[2] | M14 | SW[2] | H12 |
LED[3] | M12 | SW[3] | H13 |
LED[4] | L15 | ||
LED[5] | K12 | ||
LED[6] | L11 | ||
LED[7] | K11 |
下載完程序后就可以實(shí)現(xiàn)3個(gè)開關(guān)控制不同LED燈的顯示,3-8譯碼器完成。
====小結(jié)====
實(shí)現(xiàn)了一個(gè)簡單的組合邏輯3-8譯碼器,在下一個(gè)數(shù)碼管顯示實(shí)驗(yàn)我們將學(xué)習(xí)如何通過譯碼實(shí)現(xiàn)控制數(shù)碼管的顯示。
評論