引言
在近代戰(zhàn)爭中,軍事信息傳遞,例如通過發(fā)電報的方式,電報信息難免被敵方截獲,而我們又不得不通過發(fā)電報傳輸信息(喲,都近代了,就別飛鴿傳書了),所以發(fā)送方需要對信息進(jìn)行加密,也就是編碼,然后以一種雙方事先溝通好的編碼方式(密碼本就是這樣來的),在接收方再進(jìn)行反編碼,也就是解碼,這樣,即使信息被截獲了,短時間內(nèi)也難以被破解;這就是編碼器的重要性。
編碼器的邏輯功能就是將多輸入的每一個高、低電平信號轉(zhuǎn)為一個對應(yīng)的二進(jìn)制代碼,它分為普通編碼器和優(yōu)先編碼器。對于普通編碼器,任何時刻只允許輸入一個編碼信號,否則輸出將發(fā)生混亂。
一、普通編碼器的 Verilog 代碼實現(xiàn)和 RTL 電路實現(xiàn)
module Encoders(
input wire [7:0] d, // 輸入信號_未編碼
output reg [2:0] b = 3'b000 // 輸出信號_已編碼
);
always @ ( d ) begin
case ( d )
8'b0000_0001 : b <= 3'b000;
8'b0000_0010 : b <= 3'b001;
8'b0000_0100 : b <= 3'b010;
8'b0000_1000 : b <= 3'b011;
8'b0001_0000 : b <= 3'b100;
8'b0010_0000 : b <= 3'b101;
8'b0100_0000 : b <= 3'b110;
8'b1000_0000 : b <= 3'b111;
default : b <= 3'b000;
endcase
end
endmodule
這是一個 8 線 ? 3 線普通編碼器,基于查找表 LUT(Look Up Table)的方式實現(xiàn)的一個電路,其 RTL 電路圖如下所示:
普通編碼器的 RTL 電路圖
優(yōu)先編碼器其實就是允許同時在幾個輸入端有輸入信號,編碼器按輸入信號排定的優(yōu)先順序,只對同時輸入的幾個信號中優(yōu)先權(quán)最高的一個進(jìn)行編碼,即已經(jīng)排好了隊,從高位向低位遞減。比如,8 線 - 3 線優(yōu)先編碼器的輸入有 “0、1、2、3、4、5、6、7” 八位輸入,而輸出只有 “Y0、Y1、Y2” 三位輸出,在這里,就是當(dāng) “7” 為 “1” 的時候,即 “7” 為有效值的時候,無論 “0” 到 “6” 之間為何值,都只對 “7” 進(jìn)行編碼,高位優(yōu)先判斷是否有效,以此類推。
二、優(yōu)先編碼器的 Verilog 代碼實現(xiàn)和 RTL 電路實現(xiàn)
module Encoders(
input wire [7:0] d, // 輸入信號_未編碼
output reg [2:0] b = 3'b000 // 輸出信號_已編碼
);
always @ ( d ) begin
casex ( d )
8'b0000_0001 : b <= 3'b000;
8'b0000_001x : b <= 3'b001;
8'b0000_01xx : b <= 3'b010;
8'b0000_1xxx : b <= 3'b011;
8'b0001_xxxx : b <= 3'b100;
8'b001x_xxxx : b <= 3'b101;
8'b01xx_xxxx : b <= 3'b110;
8'b1xxx_xxxx : b <= 3'b111;
default : b <= 3'bxxx;
endcase
end
endmodule
這是一個 8 線 ? 3 線優(yōu)先編碼器,基于查找表 LUT(Look Up Table)的方式實現(xiàn)的一個電路,其 RTL 電路圖如下所示:
優(yōu)先編碼器的 RTL 電路圖
附加說明,其實,Verilog 中的 if - else 語句便隱含了優(yōu)先特性,可以進(jìn)行優(yōu)先編碼器的設(shè)計。中級及以上的 FPGA 玩家應(yīng)該能懂的。
總結(jié)
編碼器是非常重要的一個數(shù)字電路組合邏輯模塊,不僅可以大大減少傳輸數(shù)據(jù)的信號線的數(shù)量,還是密碼學(xué)的一部分,基于某種協(xié)議的編碼能夠讓雙方之間的通訊較為安全。
-
編碼器
+關(guān)注
關(guān)注
45文章
3574瀏覽量
133982 -
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59666 -
LUT
+關(guān)注
關(guān)注
0文章
49瀏覽量
12475 -
Verilog設(shè)計
+關(guān)注
關(guān)注
0文章
20瀏覽量
6509
發(fā)布評論請先 登錄
相關(guān)推薦
評論