rangkaian encoder & decoder menggunakan verilog

Encoder

Encoder adalah suatu perangkat & rangkaian logika yang berfungsi untuk mengkonversikan
sinyal desimal menjadi biner

Decoder

Decoder adalah suatu perangkat & rangkaian logika yang berfungsi untuk mengkonversikan
sinyal biner menjadi desimal

implementasi rangkaian encoder & decoder
dengan menggunakan Bahasa Verilog (format .v)

Encoder


module encoder(
outputbiner,
inputencoder,
en
    );

output [3:0] outputbiner; //4 output biner
input en; //enable
input [15:0] inputencoder; //4 input desimal

reg [3:0] outputbiner;

always(en or inputencoder)
begin
outputbiner = 0;
if(en)
begin
case(inputencoder)

       16'h0002 : outputbiner = 1;
       16'h0004 : outputbiner = 2; //16 bit hexa 0004
       16'h0008 : outputbiner = 3;  //16 bit hexa 0008
       16'h0010 : outputbiner = 4;
       16'h0020 : outputbiner = 5;
       16'h0040 : outputbiner = 6;
       16'h0080 : outputbiner = 7;
       16'h0100 : outputbiner = 8;
       16'h0200 : outputbiner = 9;
       16'h0400 : outputbiner = 10;
       16'h0800 : outputbiner = 11;
       16'h1000 : outputbiner = 12;
       16'h2000 : outputbiner = 13;
       16'h4000 : outputbiner = 14;
       16'h8000 : outputbiner = 15;

         endcase
end
         endmodule

         Software Ise Design bisa di download di sini 
         (install => pilih mode webpack)

         Output Encoder
   
       







klik 2 kali pada gambar
maka akan terlihat rangkaiannya















gambar di atas hanya sebagian output saja yang di tampilkan. 1 kotak berarti 1 output biner 
klik 2 kali (pada kotak) nanti akan muncul rangkaian seperti ini


Decoder 

module decoder(
inputbiner,
outputdecoder,
en
);

output[15:0] outputdecoder;

input [3:0] inputbiner;
input en;

reg[15:0] outputdecoder;

always@(en or inputbiner)
begin

outputdecoder = 0;
if(en)
begin
case(inputbiner)
4'h0 : outputdecoder = 16'h0001;
                4'h1 : outputdecoder = 16'h0002;
                4'h2 : outputdecoder = 16'h0004;
                4'h3 : outputdecoder = 16'h0008;
                4'h4 : outputdecoder = 16'h0010;
                4'h5 : outputdecoder = 16'h0020;
                4'h6 : outputdecoder = 16'h0040;
                4'h7 : outputdecoder = 16'h0080;
                4'h8 : outputdecoder = 16'h0100;
                4'h9 : outputdecoder = 16'h0200;
                4'hA : outputdecoder = 16'h0400;
                4'hB : outputdecoder = 16'h0800;
                4'hC : outputdecoder = 16'h1000;
                4'hD : outputdecoder = 16'h2000;
                4'hE : outputdecoder = 16'h4000;
                4'hF : outputdecoder = 16'h8000;
endcase
end
end

endmodule

Output