Encoder
// Design Name : encoder_using_if
// File Name
: encoder_using_if.v
// Function
: Encoder using If
// Coder
: Deepak Kumar Tala
===== fungsinya sbagai
sebuah kolom komentar saja 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
);
===== membuat module 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 ;
===== pendeklarasian sebuah port output dari binary_out yang
keluaranya 4bit.
//-----------Input Ports---------------
input enable ;
input
[15:0] encoder_in ;
===== pendeklarasian sebuah variable masukkan yaitu enable
dan encoder_in dengan encoder_in 16bit masukkan.
//------------Internal Variables--------
reg
[3:0] binary_out ;
===== pendeklarasian sebuah register yang terdapat pada binary_out dengan alamat 4 bit.
===== pendeklarasian sebuah register yang terdapat pada binary_out dengan alamat 4 bit.
//-------------Code Start-----------------
always
@ (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.
===== 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;
===== pada fungsi script diatas adalah terdapat 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.
===== pada fungsi script diatas adalah terdapat 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 adlah untuk mengahiri sebuah statement yang dibuat dan endmodule adalah untuk mengakhiri sebuah program module 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
==== Fungsi nya adalah 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 ports ---------
input din_0, din_1, sel;
===== sebagai pendeklarasian sebuah port
input yaitu din_0, din_1, sel pada program.
//---------- output ports ---------
Output mux_out ;
===== sebagai pendeklarasian sebuah port output
yaitu mux_out.
//---------- internal variables ---------
reg mux_out ;
===== sebagai pendeklarasian sebuah register dengan variable mux_out.
//---------- Code Start Here ---------
Always @ ( sel or din_0 or din_1)
===== dimana memerlukan 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 memlai subprogram mux.
If (sel == 1’b0) begin
Mux_out = din_0);
End else begin
Mux_out
= din_1);
===== dimana 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 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
==== 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 ports ---------
input data, clk, reset;
===== sebagai pendeklarasian sebuah port
input yaitu data, clock, dan reset pada
program.
//---------- output ports ---------
Output q ;
===== sebagai pendeklarasian sebuah port output
yaitu q.
//---------- internal variables ---------
reg q ;
===== pendeklarasian sebuah register pada variable q.
//---------- Code Start Here ---------
Always @ (posedge clk or
negedge reset)
===== 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
//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 ports ---------
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 ports ---------
input enable, clk, reset;
===== sebagai pendeklarasian sebuah input
yaitu enable, clock, dan reset.
//---------- internal varibales ---------
reg [7:0] out;
===== sebagai pendeklarasian sebuah register dalam variable output dengan alamat 8bit.
//---------- code starts here ---------
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
//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
//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.