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
Posting Komentar