TUTORIAL VERILOG RANGKAIAN ALU (ARITMATIKA LOGIC
UNIT) YANG DISIMULASIKAN MELALUI PROTEUS
Pada kali ini
saya akan beberapa cara untuk membuat dan mensimulasikan contoh verilog pada
Proteus ISIS Professional. Verilog adalah
salah satu HDL (Hardware Description Language), yaitu bahasa penulisan program
yang digunakan untuk mewakili sistem digital, misalnya mikrokontroler, decoder,
memory atau hanya flip- rangkaian digital pada level apapun, mulai dari gerbang
digital sederhana seperti AND, OR, flop dan gerbang digital sederhana.
Ringkasnya, dengan menggunakan HDL seseorang dapat menjelaskan NOT, sampai
rangkaian digital amat kompleks seperti mikrokontroler.
Tutorial kali
ini saya akan membuat suatu program verilog pada rangkaian ALU (Aritmatika
Logic Unit) yang mendeskripsikan suatu
algoritma matematika seperti Perhitungan perkalian,pembagian dll yang
disimulasikan melalui Proteus ISIS Professional.
1.
Langkah Pertama
Persiapkan 2 softwarenya :
A.
Proteus
Professional.ZIP
B.
Prover 0.1.4.ZIP
https://drive.google.com/file/d/1mXrFszcBS4r_GUD6mOANDJQsQZc5eWWZ/view?usp=sharing
https://drive.google.com/file/d/1mXrFszcBS4r_GUD6mOANDJQsQZc5eWWZ/view?usp=sharing
Download dan Ekstrak 2 software tsb ke
direktori C:// di Laptop anda.
2.
Langkah kedua
Pilihlah Salah satu rangkaian yang ada di Langkah
pertama di file Prover 0.1.4, Di sini saya memakai Rangkaian ALU
3. Langkah ketiga
Rangkailah komponen yang tadi seperti ini
Masuk
Komponen ALU (CTRL+C) untuk membuat rangkaian Prover
4.
Langkah keempat
Buatlah script HDL (verilog) menggunakan
notepad. Untuk membuat scripnya harus dicompile sehingga dapat di download ke komponen
Prover di proteus nantinya.
`timescale 1ns / 1ns
`define Proteus
// A simple 4-bit ALU
module alu(out, zero, in_a, in_b, op, clk);
output zero;
output [3:0] out;
reg [3:0] out;
input [3:0] in_a, in_b;
input [2:0] op;
input clk;
assign zero = (out==0)? 1:0;
always @(posedge clk)
begin
case (op)
3'b000: out = in_a + in_b;
3'b001: out = in_a - in_b;
3'b010: out = in_a * in_b;
3'b011: out = in_a / in_b;
3'b100: out = in_a % in_b;
3'b101: out = in_a & in_b;
3'b110: out = in_a | in_b;
3'b111: out = in_a ^ in_b;
endcase
end
endmodule
module alu_test;
reg clk;
reg [15:0] setup, hold;
reg [15:0] p2v_bits, v2p_bits;
wire [15:0] v2p_vector;
reg [15:0] p2v_vector;
wire [3:0] in_a, in_b, out;
wire [2:0] op;
wire zero;
alu U1(out, zero, in_a, in_b, op,clk);
assign in_a = p2v_vector[3:0];
assign in_b = p2v_vector[7:4];
assign op = p2v_vector[10:8];
assign out = v2p_vector[3:0];
assign zero = v2p_vector[4];
initial
begin
$init_pipe("vpi_pipe");
$read_para(setup, hold, p2v_bits, v2p_bits);
clk = 0;
forever
begin
$read_pipe(p2v_vector);
#setup;
clk = ~ clk; // Trig clk rising
#hold;
$write_pipe(v2p_vector);
clk = ~ clk; // Reset clk to low
end
end
endmodule
Script
tersebut di simpan dengan format .v yang tersimpan dalam satu folder di direktori
==>
C:\Prover0.1.4 (saya berikan nama rizky.v)
5.
Langkah kelima
Compile Script miftah tadi dengan cara :
A. Masuk ke CMD (Command Prompt)
B. Ketik "cd c:\prover0.1.4" dan ENTER untuk
masuk kedalam folder prover0.1.4
C. Compile foldernya dengan cara ketik
"Iverilog\bin\iverilog -o Rizky Rizky.v" dan ENTER
Maka hasilnya yang tadi dicompile,
format filenya rizky.v menjadi miftah file biner yang dipakai untuk didownload
dan disimulasikan untuk komponen prover diproteus
6.
Langkah keenam
Simulasikan rangkaian
ALU tapi sebelum kesitu kita masukan dulu file biner miftah ke dalam
komponen Prover dengan cara masuk kedalam komponen ALU (CTRL+C) dan klik
Prover dan ikuti dan sesuaikanlah pada
gambar berikut :
7.
Langkah ketujuh
Simulasikan rangkaian alu dengan
mengklik tombol play pada pojok kiri Proteus. Jika berhasil maka tidak ada
warning / Play buttonya warna hijau.
Sekian pemaparan dengan judul TUTORIAL VERILOG RANGKAIAN
ALU (ARITMATIKA LOGIC UNIT) YANG DISIMULASIKAN MELALUI PROTEUS yang dapat saya
paparkan dalam tulisan ini, semoga dengan pemaparan sederhana saya ini pembaca
dapat terbantu. Terimakasih.
Rizky Citra
Ramadhan (41416010010)
Komentar
Posting Komentar