Senin, 30 Oktober 2017

Encoder - Using if-else Statement

//-----------------------------------------------------

// Design Name : encoder_using_if

// File Name   : encoder_using_if.v

// Function    : Encoder using If

// Coder       : Deepak Kumar Tala

//-----------------------------------------------------

module encoder_using_if(

binary_out , //  4 bit binary output

encoder_in , //  16-bit input

enable       //  Enable for the encoder

);

//-----------Output Ports---------------

output [3:0] binary_out  ;

//-----------Input Ports---------------

input  enable ;

input [15:0] encoder_in ;

//------------Internal Variables--------

reg [3:0] binary_out ;

//-------------Code Start-----------------

always @ (enable or encoder_in)

 begin

   binary_out = 0;

   if (enable) begin

     if (encoder_in == 16'h0002) begin

      binary_out = 1;

     end  if (encoder_in == 16'h0004) begin

      binary_out = 2;

     end  if (encoder_in == 16'h0008) begin

      binary_out = 3;

     end  if (encoder_in == 16'h0010) begin

      binary_out = 4;

     end  if (encoder_in == 16'h0020) begin

      binary_out = 5;

     end  if (encoder_in == 16'h0040) begin

      binary_out = 6;

     end  if (encoder_in == 16'h0080) begin

      binary_out = 7;

     end  if (encoder_in == 16'h0100) begin

      binary_out = 8;

     end  if (encoder_in == 16'h0200) begin

      binary_out = 9;

     end if (encoder_in == 16'h0400) begin

      binary_out = 10;

     end  if (encoder_in == 16'h0800) begin

      binary_out = 11;

     end  if (encoder_in == 16'h1000) begin

      binary_out = 12;

     end  if (encoder_in == 16'h2000) begin

      binary_out = 13;

     end  if (encoder_in == 16'h4000) begin

      binary_out = 14;

     end if (encoder_in == 16'h8000) begin

      binary_out = 15;

     end

  end

end

   

endmodule



----Penjelasan----

Seperti biasa blok pertama berisi keterangan nama file dll, selanjutnya kita menyertakan module lalu nama file nya, selanjutnya menentukan untuk biner out diberi 4 bit dan in 16 bit lalu ada enable yang artinya aktif untuk perhitungan encoder (desimal to biner). Masuk ke blok output disitu [3:0] untuk keluaran nya. dan menentukan terus sampai blok internal variabel setelah itu masuk ke pendeklarasian code nya. disitu, jika enable atau aktif dia sudah ditentukan input nya berapa dan hasil yang dikeluarkan berapa sampai terus ke logika akhir dan di tutup dengan perintah end serta end module.


Source : http://www.asic-world.com/examples/verilog/encoder.html#Encoder_-_Using_if-else_Statement

0 komentar:

Posting Komentar