4238 8131 1 SM
4238 8131 1 SM
Oleh:
Arie S. M. Lumenta
Jurusan Teknik Elektro Fakultas Teknik UNSRAT
Abstrak
Pada tulisan ini akan dipaparkan desain processor sederhana menggunakan VHDL.
Disebut processor sederhana karena processor tersebut hanya terdiri dari beberapa set
instruksi yang telah ditentukan. Inti dari tulisan ini adalah ingin menunjukkan bahwa
mendesain suatu prosessor itu relatif mudah, apalagi dengan alat bantu VHDL untuk
melakukan simulasi dan verifikasi. Pada tulisan ini digunakan perangkat lunak Quartus II
versi 2 untuk melakukan simulasi dan implementasi serta Synopsis untuk melakukan
sintesis. Dengan menggunakan perangkat lunak yang ada terbukti bahwa desain arsitektur
dan set instruksi yang ada dapat disimulasikan, disintesis dan diimplementasikan.
Kata kunci: prosessor sederhana, asm, vhdl
1. Pendahuluan
Tabel 1. Set instruksi simple processor
Processor atau dikenal juga dengan Instruksi Deskripsi Operasi (C Style Coding)
load Load to rs rs = extend(immediate)
central processing unit adalah suatu mov Move rs to rd rd = rs
perangkat pengolah data dalam suatu add Add rd = rs + extend(immediate)
subi Sub immediate rd = rs - extend(immediate)
sistem komputer. Pada prinsipnya suatu sw Store word MEM[rs + extend(immediate)] = rd
prosessor terdiri dari ALU (Aritmethic
Logic Unit) dan register-register. Sedangkan format instruksinya adalah
Sebagai pengontrol operasinya sendiri sebagai berikut, sesuai tabel 2. Opcode
dilakukan oleh sebuah control unit. instruksi adalah bit 8 sampai bit 15 ( 8
Pada tulisan ini akan didesain suatu bit). Sisanya bit 7 sampai bit 0 (8 bit)
processor sederhana dengan beberapa set adalah immediate/unused
instruksi menggunakan pendekatan top-
down. Sebagai alat bantu digunakan Tabel 2. Format instruksi simple
CAD tool yakni Quartus II versi 2 untuk processor
mendeskripsikan hardware. Dalam Bits
Instruksi
mendeskripsikan hardware digunakan 15 8 7 0
VHDL (VHSIC Hardware Description load 00000001 immediate
Language). mov 10000000 unused
Set instruksi yang akan add 00000100 unused
subi 00000011 immediate
diimplementasikan adalah seperti pada sw 00011001 immediate
tabel 1
e-journal Teknik Elektro dan Komputer (2013) ISSN: 2301-8402 2
s2_bus
16
Tabel 4. Deklarasi Alu
dest_bus
16 input input ctrl_alu dest_bus
ALU
16
s1_bus s2_bus
Don’t Don’t “001”
s1_bus
ctrl_alu
s1_bus
care care
rs_reg
1
Don’t Don’t “010” s2_bus
rs_enable
care care
MUX_OUT rd_reg Don’t Don’t “101” dest_bus = s1_bus + s2_bus
pc_s
rd_enable
1
care care
pc_reg
Don’t Don’t “110” dest_bus = s1_bus - s2_bus
pc_inc, pc_load
2
care care
muxout_sel
control
mar
mar_enable
2. register (rs reg dan rd reg)
mdr
mdr_in MUX_IN
Sinyal input : d_in (16 bit), reset,
mdr_enable
muxin_sel enable (1 bit), clk
imr_enable
Sinyal output : q_out (16 bit)
imr sign_ext
ir_bus
dmem_bus
ir_add
ir_mem
Tabel 5. Deklarasi register
mem_add
data_mem
d_in reset clk enable q_out
mem_wr
16
Don’t ‘1’ Don’t Don’t “0000000000000000
care care care ”
Gambar 1. Arsitektur processor Don’t ‘0’ Rising ‘1’ d_in
care
sederhana Don’t ‘0’ Rising Don’t q_out
care care
Arsitektur processor sederhana diatas
dikelompokkan menjadi 3 bagian besar 3. pc reg
yaitu: Sinyal input : pc_reg_in(16bit),clk,
1. Unit processor reset,enable(1bit),
2. Unit memory dan pc_reg_load (1bit)
3. Unit controller. Sinyal output : pc_reg_out (16 bit)
Komponen-komponen di unit processor
adalah: Table 6. Deklarasi pc reg
1. Alu pc_reg_ clk rst enable pc_reg pc_reg_out
2. Register-register (rs_reg, rd_reg, in _load
Don’t Don’t ‘1’ Don’t Don’t “0000000000000000”
pc_reg, mar, mdr dan imr) care care care care
3. Multiplexer. Don’t Rising ‘0’ ‘1’ Don’t pc_reg_out + 1
4. Memory (ir_mem dan data_mem). care care
Don’t Rising ‘0’ Don’t ‘1’ pc_reg_in
Alu memilki 2 operand dan operasi- care care
operasi yang diolah alu adalah :
1. add (rd = rs + immediate)
2. subi (rd = rs - extend)
3. sw (rd = mem[rs + extend(imm)]
e-journal Teknik Elektro dan Komputer (2013) ISSN: 2301-8402 3
control MEMORY
INC PC ENA MAR
READED
default
STATE CLOCK
MACHINE
INC PC
PC
sidle
machine:
Instruction fetch
1. Latency 1 clock dari PC sel bus
pcinc,
pc load
0 0
data 8 bit sehingga sebuah instruksi add
1
1
source=
lengkap disimpan dalam 2 alamat 0 1
0
rd_reg
sel rd_reg
subi
memory. Fetch sebuah instruksi 0 sel imr
INC PC
Set instruksi simple processor dibagi
ENA MAR
menjadi 3 bagian yaitu:
PC
1. Fetch.
MAR
2. Decode dan
MEM 3. Execute.
ADDR
MEM Urutan langkah ini sesuai dengan disain
DATA
kontrol unit diatas.
Gambar 3. Siklus Fetch 6 clock
e-journal Teknik Elektro dan Komputer (2013) ISSN: 2301-8402 5
Ada kesalahan
ya Gambar 8. Sistem Processor Sederhana
tidak
Control unit alu Pc reg mar imr irmem Sedangkan hasil sintesi terhadap koding
muxout Rs reg Rd reg mdr muxin Sign ext Data mem
VHDL prosessor sederhana
menggunakan CAD Tool Synopsis
adalah sebagai berikut seperti tampak
Gambar 7. struktur file .VHD
pada gambar 10 berikut.
Top level pada disain processor
sederhana adalah risc.vhd, sedangkan
komponen-komponen lainnya berada
dibawah top level. File top level inilah
yang menghubungkan semua komponen
yang ada pada processor sederhana.
File testvector.vhd adalah sebagai test
untuk menguji processor setelah di
download atau diimplementasikan. File
ini diperlukan untuk keperluan pengujian
processor setelah proses download.
Gambar 10. Hasil sintesis prosessor
sederhana
e-journal Teknik Elektro dan Komputer (2013) ISSN: 2301-8402 6
Pada gambar 10 hasil sintesis tersebut Posisi idle hanya pada saat pertama saja.
diatas ada satu pin yang tidak terhubung Selanjutnya setelah posisi execute posisi
ke rangkaian. Pin tersebut adalah pin state kembali pada state 2 yakni fetch.
yang menghubungkan prosessor dengan Setiap perpindahan state dibutuhkan 1
memori. Pin tersebut lepas dari clock.
rangkaian, karena rangkaian memori Sedangkan untuk masing-masing
tidak ikut disintesis. instruksi jumlah clock yang dibutuhkan
adalah sebagai berikut seperti pada tabel
9. Simulasi Sebelum dan Setelah 5 dibawah ini.
Download (Implementasi)
Tabel 14. Jumlah clock tiap instruksi
Hasil simulasi keseluruhan sistem Instruksi Jumlah clock
sederhana sebelum download atau load 2
implementasi adalah sebagai berikut: mov 1
add 3
subi 3
sw 2
Daftar Pustaka.