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

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

Postingan Populer