Senin, 30 Oktober 2017

logika pemograman verilog

Encoder
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnx20iJHFdNK7Dm-dA30Od3OEJGgf1XKDmzClgzTpwUB3J7EtU9xNHzpwiy_tlB7mG_pnaTes7x8QHy6v0H2GWkGgWcMHXUPPyoBImFXdE7zcHe1Ij-9CGIQawPetc7E3XJ3cooq4sW-Qa/s640/IMG_20171026_104013.jpg
// Design Name : encoder_using_if
// File Name   : encoder_using_if.v
// Function    : Encoder using If
// Coder       : Deepak Kumar Tala

 mempunyai fungsi sebagai  kolom komentar  pada sebuah program encoder_using_if.
module encoder_using_if(
binary_out , //  4 bit binary output
encoder_in , //  16-bit input
enable       //  Enable for the encoder
);
 berfungsi sebagai membuat module dengan format  nama encoder_using_if, dan  terdapat variable binary_out 4 bit untuk hasil outputnya ,fungsi  encoder_in 16 bit sebagai input, dan enable sebagai input.

output [3:0] binary_out  ;
 mendeklarasi  sebuah port output dari binary_out yang outputnya 4bit.

input  enable ;
input [15:0] encoder_in ;
 menerjemahkan   variable masukkan yaitu enable dan encoder_in dengan encoder_in 16bit masukkan.

reg [3:0] binary_out ;
 pendeklarasian sebuah register yang terdapat pada binary_out dengan alamat 4 bit.
(enable or encoder_in)
fungsinya adalah dimana sebuah program ini memerlukan clock secara terus-menerus untuk menghantarkan nilai masukkan pin-pin keluaran.lalu 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;
===== fungsi script ini adalah ada  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, begitu pun seterusnya hinga 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 binnernya dalam bentuk hexa.
end
end
end
endmodule
 fungsinya  untuk menyelesaikan sebuah statement yang dibuat dan endmodule adalah untuk mengakhiri sebuah program module yang dibuat.
 
MUX(Multiplekser)

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCke8y2oCpwYZMjodC4Bzs2Xl9Iww5xxZdM8V7ZpC2jnKm0RvoumiW018PNz_yX75KjPi76mYQukFBsIdVTRbhpnv9epYuDRfAMv21SaipJXnFB4yyxDvW7XZW5iorLvGf2QjD_dcgn3CQ/s320/IMG_20171026_104202.jpg

//Design Name : mux_using_if
//File Name : mov_using_if.v
//Function :  2:1 mux using if
//Coder : Deepak Kumar Tala
 Fungsi nya hanya sebagai komentar saja dalam membuat 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
);
 fungsinya adalah 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  din_0, din_1,  sel;

sebagai pendeklarasian sebuah port input yaitu  din_0, din_1,  sel  pada program.
Output  mux_out ;
sebagai pendeklarasian sebuah port output yaitu mux_out.

reg  mux_out ;
sebagai pendeklarasian sebuah register dengan variable mux_out.

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

Begin : mux
===== untuk memlai subprogram mux.
If (sel == 1’b0) begin
Mux_out  =  din_0);
End else begin

Mux_out  = din_1);
fungsinya adalah jia 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
sebagai akhir dari isi statment






Flip-Flop And Latches

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglWnvrTwo_FaxTwsV56DQferMnxy7NPJHuiOL7J6bnzClf0VclKC6KiB2O6HyYddg285q3WQbOjUw8T6MJj2MvY8LF59rTp0lxmZMTiOi2Q9wQb0KmnZR4R4GYCzSwlt4DZYkQHeDQBxC9/s320/IMG_20171026_104232.jpg

//Design Name : dff_async_reset
//File Name : dff_async_reset.v
//Function :  D Flip Flop async reset
//Coder : Deepak Kumar Tala
==== Fungsi nya adalah hanya sebagai komentar saja dalam membuat program async reset D-FF.
module dff_async_reset(
data             ,         //  data input
clk               ,          // clock input
reset            ,         // reset input
q                           // q output
);
==== fungsinya adalah membuat sebuah module dengan nama file dff_async_reset dan didalamnya terdapat 4 variable yaitu data,clk,dan reset sebagai input dan q sebagai outputnya.

input  data, clk,  reset;
 sebagai pendeklarasian sebuah port input yaitu  data, clock, dan reset pada program.

Output  q ;
 sebagai pendeklarasian sebuah port output yaitu q.




reg  q ;
pendeklarasian sebuah register pada variable q.
 fungsinya adalah dff ini memerlukan clock secara terus-menerus 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;
==== fungsinya adalah 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

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB7Dlnw3hYhRKbi5WluxFPyJkXiCYTepD5XhG9fJFBlBSz6Qey_1TwdGTo6LEgG9u1ub6mFZyK8LXo2kzEfgwpAA4c5hqKk2YwKnbEJw1DMni2cpl4HTryUsih65p0zAeivW-ZuRwhNSzo/s320/IMG_20171026_104256.jpg

//Design Name : up_counter
//File Name : up_counter.v
//Function : up_counter
//Coder : Deepak
 Fungsi nya adalah hanya sebagai komentar saja dalam membuat program up_counter.
module up_counter(
out               ,         //  output of the counter
enable          ,          // enable for counter
clk               ,         // clock input
reset                      // reset input
);
 membuat module dengan nama up_counter lalu ada 4 variale didalamnya yatu 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  [7:0]  out;
fungsinya dalah pada bagian //--- output ports --- itu sebagai komentar pada ouput dibawahnya yaitu output [7:0] out dimana output yang keluar adalah data 8bit.

input  enable, clk,  reset;
 sebagai pendeklarasian sebuah input yaitu enable, clock, dan reset.

reg [7:0]  out;
 sebagai pendeklarasian sebuah register dalam variable output dengan alamat 8bit.

Always @ (posedge clk)
 jadi disini 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 statmentdan mengakhiri sebuah program module yang dibuat.










MEMORY

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidNWvIGLDIG-XjEO8Dvl87qR-GDLuhenc5malspENMKoPlNpJt4ngyiEedCl2PkJXmK_-XG-xOF8occUislTzFGCDGnJQ-XhTg_2AR90g4FszO3GT_acEvOVdXO8FFj8YGKg0l4jpviQSa/s320/IMG_20171026_104408.jpg

//Design Name : rom_using_file
//File Name : rom_using_file.v
//Function : rom_using_readmemh
//Coder : Deepak Kumar Tala
===== dimana 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
);
 fungsinya adalah 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;
 sebagai pendeklarisan sebuah 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;
 fungsinya 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 memual 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
sebagai akhir module yang dibuat.

PARITY AND CRC

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr80gNzxHq3OCq59xh_bugHLq5NgYlO1liJoKN-hNsgbMF4uc1ayMu1p27BPKoA3y4ktYd0Rj_FeDVL9ObH6EzYQvNrqm0cE6N2KPexsDDztMzqMHc4G9qBYkVuVW33sFqR5vDZ6e5D_nS/s320/IMG_20171026_104326.jpg

//Design Name       : parity_using_bitwise
//File Name           : parity_using_biwise.v
//Function             : parity_using_bitwise xor
//Coder                  : Deepak Kumar Tala
 Fungsi dari script diatas adalah dia hanya sebagai komentar saja.
module parity_using_bitwise(
data_in        ,         // 8 bit data in
parity_out             // 1 bit parity out
);
fungsi dari script diatas adalah dimana membuat module 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 ;
 fungsi dari script diatas adalah sebagai keluaran dari variable parity_out .

input [7:0] data_in ;
 fungsi dari script diatas adalah  sebagai masukkan dari variable data_in dengan 8 bit data.

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

endmodule
 fungsinya untuk mengakhiri sebuah module yang telah dibuat.