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.

Tugas VClass 1 Elektronika Dasar

TUGAS V-Class 1 1. Jelaskan tentang semikonduktor ,  berikan juga contohnya !      a. Jelaskan tentang Rangkaian Diskrit      b. Jelaskan tentang Rangkaian Terintegrasi      c. Sebutkan macam-macam jenis, fungsi dan simbol dioda 2. Jelaskan cara kerja dioda sebagai penyearah setengah gelombang dan penyearah gelombang penuh Jawab : 1. Semikonduktor adalah sebuah bahan dengan konduktivitas listrik yang berada di antara insulator (isolator) dan konduktor. Semikonduktor disebut juga sebagai bahan setengah penghantar listrik. Suatu semikonduktor bersifat sebagai insulator jika tidak diberi arus listrik dengan cara dan besaran arus tertentu, namun pada temperatur, arus tertentu, tata cara tertentu dan persyaratan kerja semikonduktor berfungsi sebagai konduktor, misal sebagai penguat arus, penguat tegangan dan penguat daya. Kata “Semikonduktor” sangat identik dengan peralatan Elektronika yang kita pakai saat ini. Hampir setiap peralatan Eletronika canggih seperti Handphone,

Wet Market BMX, Komunitas BMX Di Utara Bekasi

Sekumpulan anak muda terlihat tengah asyik dengan sepeda bmx nya masing - masing. Dengan tidak mengenal batasan usia, dan latar belakang mereka berkumpul menjadi satu dengan hobby yang sama. Dengan satu impian yang sama dapat menguasai berbagai trick freesyle di bmx.  “Ini cara kita untuk mengisi waktu muda disaat kita masih memiliki tenaga yang melimpah kita ekpresikan dengan berolahraga diatas sepeda bmx” kata salah satu anggota komunitas, Robby Ashari di sela-sela waktu berlatihnya. Menurut pria yang akrab disapa Obby itu, awalnya komunitas ini terbentuk karena kita bersekolah di tempat yang sama dan memilki ketertrikan yang sama terhadap sepeda bmx. “Awal terbentuknya komunitas ini kita beri nama BMX Doe-Sat diambil dari nama sekolah kita, seiring berjalannya waktu kita sudah lulus dari sekolah tersebut. Kita memutuskan untuk berganti nama menjadi Wet Market BMX diambil dari nama tempat kita sering berlatih yaitu di pasar basah marakash square” Di