Langsung ke konten utama

Pemrograman Devais FPGA



Encoder


// Design Name : encoder_using_if
// File Name   : encoder_using_if.v
// Function    : Encoder using If
// Coder       : Deepak Kumar Tala
Digunakan untuk kolom yang berisikan komentar pada program encoder_using_if.

module encoder_using_if(
binary_out , //  4 bit binary output
encoder_in , //  16-bit input
enable       //  Enable for the encoder
);
Untuk membuat sebuah modul dengan nama encoder_using_if, dan didalamnya terdapat variable binary_out 4 bit sebagai output, encoder_in 16 bit sebagai input, dan enable sebagai input.

//-----------Output Ports---------------
output [3:0] binary_out  ;
Mendeklarasian port output dari binary_out yang keluaranya 4bit.

//-----------Input Ports---------------
input  enable ;
input [15:0] encoder_in ;
Mendeklarasian variable masukkan yaitu enable dan encoder_in dengan encoder_in 16bit masukkan.

//------------Internal Variables--------
reg [3:0] binary_out ; 
Mendeklarasian register yang terdapat pada binary_out dengan alamat 4 bit. 

//-------------Code Start-----------------
always @ (enable or encoder_in)
Mendeklarasian clock yang bekerja secara berulang karena program ini memerlukan clock secara berulang untuk memasukan nilai pin-pin keluaran. Kemudian variable enable digabungkan dengan variable 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;
 kondisi awal dimana binary_out = 0, lalu jika enable maka dia akan lenjut ke state berikutnya yaitu encoder_in == 16'h0002) dimana nilai bianry_out yang keluar adalah 1, lalu jika encoder_in == 16'h0004) maka nilai binary_out yang keluar adalah 2, program terus berjalan sampai semua kondisi terpenuhi hingga  nilai binary_out menghasilkan angka 15. ini sama saja seperti kita memainkan sebuah switch secara berurut hingga menghasilkan sebuah nyala led berurut sesuai yang kita masukan kode binernya dalam bentuk hexa. 

    end
end
end      
endmodule
Berfungsi untuk mengakhiri sebuah program yang dibuat.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MUX(Multiplekser)



//Design Name : mux_using_if
//File Name : mov_using_if.v
//Function :  2:1 mux using if
//Coder : Deepak Kumar Tala
Berfungsi sebagai komentar dalam program mux_using_if.

module mux_using_if(
din_0           ,         //  mux first input
din_1                     ,          // mux second input
sel               ,         // select input
mux_out                         // mux output
);
Untuk membuat sebuah module dengan nama file mux_using_if dan didalamnya terdapat 4 variable yaitu di_0, din_1, dan select sebagai input dan mux_out sebagai outputnya.


//---------- input ports ---------
input  din_0, din_1,  sel;
Mendeklarasian port input yaitu  din_0, din_1,  sel  pada program.

//---------- output ports ---------
Output  mux_out ;
Mendeklarasian port output yaitu mux_out.

//---------- internal variables ---------
reg  mux_out ;
Mendeklarasian sebuah register dengan variable mux_out.

//---------- Code Start Here ---------
Always  @  ( sel or din_0 or din_1)
Mendeklarasian penggunaan clock secara terus-menerus untuk menghantarkan nilai masukkan pin-pin keluaran. lalu setelah itu variable sel digabungkan dengan variable masukkan lainnya yaitu din_0 dan din_1.

Begin : mux
Untuk memulai subprogram mux.

If (sel == 1’b0) begin
          Mux_out  =  din_0);
End else begin
          Mux_out  = din_1);
Jika variable sel == 1 maka hasil keluaranua adalah mux_out  yaitu din_0 jika tidak maka dia akan ke end else yaitu keluaran din_!.

End
End
Endmodule  //End Of Module mux
Untuk mengakhir dari isi statment dan juga akhir dari sebuah program module yang dibuat.














Flip-Flop And Latches



//Design Name : dff_async_reset
//File Name : dff_async_reset.v
//Function :  D Flip Flop async reset
//Coder : Deepak Kumar Tala
Berfungsi sebagai komentar dalam pembuatan program async reset D-FF.

module dff_async_reset(
data             ,         //  data input
clk               ,          // clock input
reset            ,         // reset input
q                           // q output
);
Digunakan untuk membuat sebuah module dengan nama file dff_async_reset dan didalamnya terdapat 4 variable yaitu data, clk, dan reset sebagai input dan q sebagai output.

//---------- input ports ---------
input  data, clk,  reset;
Mendeklarasian port sebagai input yaitu  data, clock, dan reset pada program.

//---------- output ports ---------
Output  q ;
Mendeklarasian port sebagai output yaitu q.

//---------- internal variables ---------
reg  q ;
Mendeklarasian register pada variable q.

//---------- Code Start Here ---------
Always  @  (posedge clk or negedge reset)
Pada program ini memerlukan clock secara berulang untuk menghantarkan nilai masukkan pin-pin keluaran. posedge clk or nededge reset merupakan gabungan clock yang aktif pada sisi naik positif sedangkan nededge adalah sisi clock yang aktif dari sisi turun-negatif dan menghasilkan sebuah kondisi reset yang ada pada dff itu sendiri.

If (~reset) begin
          Q <= 1’b0;
End else begin
          Q <= data;
Jika negasi dari variable reset maka mulai ke program selnajutnya yaitu 1<=1'bo jika tidak atau terpenuhi maka program lanjut ke q<=data.

End
Untuk mengakhiri sebuah statment.

Endmodule  //End Of Module dff_aync_reset
Untuk mengakhiri sebuah program module. 
















COUNTER


//Design Name : up_counter
//File Name : up_counter.v
//Function : up_counter
//Coder : Deepak
Berfungsi sebagai komentar dalam membuat program up_counter.

module up_counter(
out               ,         //  output of the counter
enable          ,          // enable for counter
clk               ,         // clock input
reset                      // reset input
);
Untuk membuat module dengan nama up_counter lalu ada 4 variabel didalamnya yaitu out adalah sebuah output // output of the counter adalah sebuah komentar dari output itu sendiri enable, clock dan reset adalah sebuah input dan // clock input , // reset adalah sebuah kompnetar dari clk dan reset itu sendiri.

//---------- output ports ---------
output  [7:0]  out;
Berfungsi untuk mengatur pada bagian //--- output ports --- itu sebagai komentar pada ouput dibawahnya yaitu output [7:0] out dimana output yang keluar adalah data 8bit.


//---------- input ports ---------
input  enable, clk,  reset;
Mendeklarasian input yaitu enable, clock, dan reset.

//---------- internal varibales ---------
reg [7:0]  out;
Mendeklarasian register dalam variable output dengan alamat 8bit.

//---------- code starts here ---------
Always @ (posedge clk)
Sebuah counter juga memerlukan clock secara terus-menerus untuk menghantarkan nilai masukkan pin-pin keluaran. posedge clk adalah clock yang aktif pada sisi naik positif.
If (reset) begin
          Out <= 8’b0;
End else if (enable) begin
          Out <= out + 1;
Jika hasil output dari  reset adalah kurang dari sama dengan 8 bit maka dia enable , lalu jika outputnya kurang dari sama dengna out maka nilai otput seblumnya ditambah 1.

End
endmodule
Untuk mengakhiri statement dan mengakhiri sebuah program module yang dibuat.


















MEMORY


//Design Name : rom_using_file
//File Name : rom_using_file.v
//Function : rom_using_readmemh
//Coder : Deepak Kumar Tala
Dimana sebagai design name  adalah nama rom_using_file, serta nama filenya lalu functionya serta codernya adalah komentar.
module rom_using_file(
address , // Address input
data , // data output
read_en  // read Enable
ce          // Chip Enable
);
Berfungsi membuat module dengan nama rom_using_file, lalu didalam module tersebut terdapat 4 variable yaitu address sebagai input, data sebagai output, read_En, ce sebagai input. lalu // Address input,// data output,// read Enable,// Chip Enable sebagai komentar dari masing-masing variable yang ada atau telah dibuat.

input [7:0] addresss;
output [7:0] data;
input read_en;
input ce;
Mendeklarisan variable dimana address sebagai input dengan alamat 8 bit, data sebagai output read_en, dan ce sebagai input(masukkan). 

reg [7:0] mem [0:255] ;
===== register 
assign data = (ce&&read_en) ? mem[address] : 8'b0;
Berfungsi untuk menggabungkan tide data dari ce danread_en, mem[address] :8'b0; merupakan alamat memori 8bit yaitu b0.

initial begin
    $readmemb("memory.list".mem); //memory_list is memory file
end
initial begin untuk memulai sebuah initial , lalu setelah itu $readmemb("memory.list".mem) adalah untuk membaca sebuah list yang terdapat pada memory tersebut. end untuk mengakhiri sebuat sub program.

Endmodule
Untuk mengakhir module yang dibuat.


























PARITY AND CRC



//Design Name       : parity_using_bitwise
//File Name           : parity_using_biwise.v
//Function             : parity_using_bitwise xor
//Coder                  : Deepak Kumar Tala
Digunakan untuk kolom yang berisikan komentar.

module parity_using_bitwise(
data_in        ,         // 8 bit data in
parity_out             // 1 bit parity out
);
Digunakakn untuk membuatmodule atau file dengan nama parity_using_bitwise, lalu data_in dan parity_out adalah variable masukkan dan keluaran, lalu  ada // 8 bit data in dan // 1 bit parity out i itu sebagai komentar dari variabel masukkan dan keluaran.

output parity_out ;
Untuk keluaran dari variable parity_out .

input [7:0] data_in ;
Untuk masukkan dari variable data_in dengan 8 bit data.

assign parity_out = ^data_in;
Untuk menetapkan  atau menggabungkan sebuah varible keluaran parity_out dengan masukkan data_in mungkin bisa dibilang hasil dari parity out = data_in.

endmodule
Untuk mengakhiri sebuah module yang telah dibuat.

Komentar

Postingan populer dari blog ini

Pengenalan PWM Pada Arduino

Pengenalan PWM (Pulse Width Modulation) Pulse Width Modulation (PWM) merupakan suatu teknik untuk mendapatkan hasil output analog dengan pendekatan secara digital. Teknik PWM ini mengendalikan lebar pulsa berdasarkan modulator. Meski bapat diterapkan dalam penyandian informasi komunikasi, penerapan utamanya lebih pada kendali daya perangkat listrik, semisal motor. Kendali digital digunakan untuk membentuk sebuah gelombang kotak (square wave), sebuah gelombang signal untuk switch antara kondisi on dengan off. Pola kondisi on dan off tersebut merepresentasikan suatu nilai full on pada Arduino (5 volt) dan kondisi off (0 volt) dengan mengubah perbandingan ratio antara waktu kondisi on dengan kondisi off dalam satu periode. Durasi waktu on disebut dengan istilah lebar pulsa, pulse width. Untuk mendapatkan suatu variasi hasil output nilai analog, dapat dilakukan dengan mengubah lebar pulsa tersebut. Perbandingan antara waktu signal on dengan waktu satu periode disebut dengan duty cycle. ...

Modus – Modus Kejahatan Dalam Teknologi Informasi

Cybercrime merupakan bentuk-bentuk kejahatan yang timbul karena pemanfaatan teknologi internet. Beberapa pendapat mengindentikkan cybercrime dengan computer crime . The U.S. Department of Justice memberikan pengertien computer crime sebagai:   “… any illegal act requiring knowledge of computer technology for its perpetration, investigation, or prosecution”. ( www.usdoj.gov/criminal/cybercrimes ) Pengertian tersebut identik dengan yang diberikan Organization of European Community Development , yang mendefinisikan computer crime sebagai: “any illegal, unehtical or unauthorized behavior relating to the automatic processing and/or the transmission of data”. Adapun Andi Hamzah (1989) dalam tulisannya “Aspek-aspek Pidana di Bidang komputer”, mengartikan kejahatan komputer sebagai: ”Kejahatan di bidang komputer secara umum dapat diartikan sebagai penggunaan komputer secara illegal”. Dari beberapa pengertian di atas, secara ringkas dapat dikatakan bahwa cybercrim...

Jenis Dan Prinsip Kerja Motor Stepper

Motor stepper  adalah salah satu jenis motor dc yang dikendalikan dengan pulsa-pulsa digital.  Prinsip kerja  motor stepper  adalah bekerja dengan mengubah pulsa elektronis menjadi gerakan mekanis diskrit dimana  motor stepper  bergerak berdasarkan urutan pulsa yang diberikan kepada motor stepper tersebut. Kelebihan Motor Stepper Kelebihan motor stepper dibandingkan dengan motor DC biasa adalah : Sudut rotasi motor proporsional dengan pulsa masukan sehingga lebih mudah diatur. Motor dapat langsung memberikan torsi penuh pada saat mulai bergerak Posisi dan pergerakan repetisinya dapat ditentukan secara presisi Memiliki respon yang sangat baik terhadap mulai, stop dan berbalik (perputaran) Sangat realibel karena tidak adanya sikat yang bersentuhan dengan rotor seperti pada motor DC Dapat menghasilkan perputaran yang lambat sehingga beban dapat dikopel langsung ke porosnya Frekuensi perputaran dapat ditentuka...