Pask 3 14S17047
Pask 3 14S17047
Ronaldo (14S17047)
Tanggal Percobaan : 06/11/2019
[14S3102] [Praktikum Arsitektur Sistem Komputer]
[Lab Sistem Digital] – Teknik Elektro
Institut Teknologi Del
`
Abstract- In this module 3, an experiment will be 4. Praktikan dapat membuat instruction memory, data
conducted on "Synthesizable MIPS32® Microprocessor memory dan register dari MIPS32® dalam kode
Part I: Instruction Set, Register, and Memory. The VHDL yang synthesizable dan dapat disimulasikan
language used is VHDL. VHDL (Very High Speed dengan Altera® Quartus® II v9.1sp2.
Integrated Circuit Hardware Description Languege) is a
language to describe the hardware used in digital and
mixed-signal electronic design, for example FPGA and
Integrated Circuit. In VHDL, there is a signal definition II. LANDASAN TEORETIS
named std_logic. In this practicum too, practition are
know how to use or compare the timing simulation with A. Bahasa VHDL
functional simulation. With the result of comparing, VHDL (Very High Speed Integrated Circuit Hardware Descri-
practition can analyse it with their knowledge. Practican ption Language) atau VHSIC Hardware Description Language
know to what is the function of .imf merupakan bahasa untuk mendeskripsikan perangkat keras ya-
ng digunakan dalam desain elektronik digital dan mixed-sign-
Keywords — VHDL,FPGA,Microprocessor al, contohnya Field-Programmable Gate Array (FPGA) atau
Integrated Circuit (IC). Sistem digital sangat erat kaitannya
dengan sinyal. Sinyal dapat dianalogikan sebagai wire dan da-
I. PENDAHULUAN pat berubah ketika input berubah. Dalam VHDL, terdapat def-
inisi sinyal bernama std_logic yang sesuai dengan standar
Pada praktikum kali ini dilakukan 4 percobaan yang akan
IEEE 1164. Terdapat sembilan jenis nilai sinyal yang didefin-
mempelajari perancangan pada Mikroprosessor MIPS32® .
isikan dalam std_logic. Untuk menggunakan nilai sinyal
Perancangan yang dilakukan yaitu dengan membuat standar std_logic, kita dapat menggunakan library yang telah
instruction memory, data memory, dan register, dengan tersedia yaitu ieee.std_logic_1164.all.
arsitektur MIPS32®. Penguasaan bahasa VHDL diperlukan
pada praktikum modul 3 ini dikarenakan dalam Simbol Arti
pendekalrasian komponen hingga pembuatan kode
U Unknown
program dilakukan dalam bahasa VHDL baik secara
X Forcing Unknown
behavioral maupun structural. Setelah dikompilasi,
0 Forcing 0
selanjutnya diverifikasi dengan simulasi functional dan
1 Forcing 1
timing Altera Quartus.
Z High Impedance
W Weak Unknown
Tujuan dilakukannya praktikum ini adalah :
L Weak 0
1. Praktikan memahami arsitektur mikroprosesor H Weak 1
MIPS32® beserta datapath eksekusinya. - Don’t Care
2. Praktikan memahami instruction set dari MIPS32® Tidak seperti bahasa Verilog HDL, VHDL merupakan bahasa
dan dapat membuat program sederhana dalam bahasa yang case insensitive. Abstraksi utama dalam bahasa VHDL
assembly yang dapat dieksekusi pada MIPS32®. disebut entitas desain (design entity) yang terdiri atas input,
output, dan fungsi yang didefinisikan secara benar. Entitas
3. Praktikan dapat melakukan simulasi eksekusi desain dalam VHDL terdiri atas dua bagian.
program MIPS32® pada program simulasi SPIM dan
memahami cara setiap instruksi dieksekusi.
1. Deklarasi Entitas (entity declaration) yang
mendefinisikan antarmuka entitas tersebut terhadap
dunia luar (contohnya port input dan port output).
B. Altera® Quartus® II
Pada modul praktikum ini tidak akan dibahas terlalu dalam
cara-cara melakukan simulasi pada Altera® Quartus® II
karena diasumsikan praktikan telah memperoleh pengalaman
menggunakan program ini baik untuk simulasi fungsional dan
simulasi timing saat mengambil Praktikum Sistem Digital
pada tingkat II. Versi Altera® Quartus® II yang disarankan
untuk digunakan dalam praktikum ini adalah Altera®
Quartus® II v9.1sp2 karena pada versi ini terdapat simulator Terdapat lima tahap yang dilakukan ketika mikroprosesor
fungsional dan timing yang telah terintegrasi. Versi Altera® MIPS32® melakukan eksekusi suatu instruksi. Kelima tahap
Quartus® II yang lebih baru tidak terdapat simulator tersebut adalah sebagai berikut.
fungsional dan timing sehingga praktikan harus menggunakan
Mentor Graphics® ModelSim® untuk melakukan simulasi. Instruction Fetch (IF)
Langkah pertama untuk menggunakan Altera® Quartus® II Tahap instruction fetch berfungsi mengatur aliran instruksi
adalah membuat project terlebih dahulu. Untuk membuat yang akan diolah pada tahap berikutnya. Instruksi yang sedang
project, gunakan new project wizard kemudian ikuti petunjuk- dijalankan merupakan instruksi yang berasal dan disimpan
petunjuk yang ada. Beri lokasi dan nama project yang dari memory. Pada arsitektur ini, memory dipisahkan menjadi
diinginkan. Pilih dokumen-dokumen yang akan dimasukkan dua bagian yaitu instruction memory yang berfungsi
menyimpan instruksi-instruksi yang akan dieksekusi dan data
memory yang berfungsi untuk menyimpan data untuk
menghindari structural hazard. Dengan demikian, arsitektur ini
menganut Harvard Architecture.
Analisis :
Dari simulasi fungsional , hasil yang diperoleh dapat kita
cocokkan dengan isi dari fungsi code VHDL. Untuk ADDR
digunakan tie Hexadesimal dengan pengisian waktu
penjumlahan 20 ns pada setiap input kecuali pada output yang
tidak diberi pengisian waktu yaitu INSTR
Dari simulasi ini juga yang terlihat bahwa isi dari INSTR Analisis :
menjadi sederetan alamat yang hasilnya sama dengan isi Pada timing simulation ini terlihat bahwa adanya delay yang
alamat pada code yang ada pada construction memory. cukup jauh dibandingkan tugas 1 sebelumnya. Dan untuk
Contohnya, untuk ADDR bernilai 0 menghasilkan alamat pengisian waktu pada simulasi ini tidak perlu mengubah
00000022. Alamat ini sesuai dengan code pada kembali pengisian waktunya. Hal ini dikarenakan adanya
instrucMEM.vhd yaitu untuk mem(0) <= X"00000022"; sintesa yang kurang efisien serta ALTSYNCRAM yang berat
Akan pembuktian ini dapat disimpulkan bahwasannya sehingga menambah delay pada output
instruction memory bekerja dengan baik
Dilakukan juga simulasi timing, berikut hasil nya : C. Tugas 3: Perancangan Data Memory dengan Altera®
MegaFunction ALTSYNCRAM
Untuk hasil dari Simulasi Timing :
Pada percobaan 3 ini, praktikan diharapkan melakukan
perancangan data memory dengan lebar data dan lebar yang
diubah kembali menjadi address 32 bit. Dimana hal itu akan
merealisasikan data memory yang dapat menampung 256
Address.
Untuk hasil dari Simulasi Functional :
Analisis :
Analisis : Berdasarkan hasil simulasi diatas terlihat bahwa fungsi Read
Berdasarkan data simulasi yang diperoleh, terlihat bahwa data
dan write berfungsi dengan baik.
memory telah berfungsi dengan baik.
Untuk Hasil dari Simulasi Timing :
Untuk hasil dari Simulasi Timing :
Analisis : Anaisis :
Dari hasil ini dapat disimpulkan bahwasannya simulasi timing Dari sini dapat kita sismpulkan bahwasannya terdapat
dengan simulasi functional itu jelas berbeda. Perbedaanya perbedaan dari simulasi timing dengan functional yaitu delay
Terdapat delay pada RD-Datanya. sekitar 1,5 sampai 2 periode input.
Sebelumnya, kita tidak boleh lupa untuk mengubah lebar
address menjadi 8-bit dan lebar data menjadi 8-bit.
Analisis Pertanyaan :
D. Tugas 4 : Perancangan Register
1. Tahap-tahap eksekusi instruksi pada mikroprosesor
Pada percobaan keempat inii, praktikan melakukan MIPS32® ada 5 yaitu =
perancangan desain register dengan mikroproesor. Dimiana - Instruction Fetch (mengatur aliran instruksi yang akan
pada percobaan ini, praktikan akan melihat realisasi dari 32 diproses pada tahap selanjutnya
buah register yang masing-masing memiliki lebat data 32-bit. - Instruction Decode (instruksi dengan lebar 32 bit akan
dipecah sesuai format instruksi yang digunakan
Dengan instruction memory yang telah dipakai pada - Execute (menjalankan)
percobaan 1/ Tugas 1. - Data Memory (data disimpan dan atau diambil dari data
memory)
- Write Back (mengalirkan data dari data memory atau hasil
perhitungan).
11. Modifikasi pada lebar data dan lebar address pada desain REFERENSI
yang dibuat untuk merealisasikan elemen memory [1] Modul Praktikum Arsitektur Sistem Komputer. Teknik Elektro IT Del.
2019
[2] Bryant, Randal, dan David O’Hallaron. Computer Systems : A
12. Hasil simulasi functional dan timing setiap komponen Programmer’s Perspective 2nd Edition. 2011. Massachusetts : Pearson
yang telah direalisasikan telah bekerja dengan baik. Hal ini Education Inc..
dibuktikan dengan melihat hasil output yang diperoleh telah [3] Arsitektur Sistem Komputer. Jilid I. Rozeff Pramana
sesuai dengan code VHDL yang telah dibuat. [4] Compilers : Principles, Techniques, & Tools. Alfred V.Aho. Monica S.
Lam
13.Hasilnya berbentuk waveform ditambah dengan
penambahan waktu pada input tersebut dan hasilnya
mempunyai perbedaan pada tiap simulasi yang ada. Dan dapat
dibandingkan setiap simulasi functional dan timing.
LAMPIRAN -- Praktikum 14S3102 Arsitektur Sistem
Source Code Komputer
Tugas 1 : Perancangan Instruction Memory -- Modul : 3
-- Praktikum 14S3102 Arsitektur Sistem -- Percobaan : 2
Komputer -- Tanggal : 6 November 2019
-- Modul : 3 -- Nama (NIM) : Ronaldo (14S17047)
-- Percobaan : 1 -- Nama File : instruction_memory.vhd
-- Tanggal : 6 November 2019
-- Nama (NIM) : Ronaldo (14S17047) LIBRARY ieee;
-- Nama File : instrucMEM.vhd USE ieee.std_logic_1164.all;
-- Deskripsi : Implementasi instruction LIBRARY altera_mf;
memory USE altera_mf.all;
00 : 8c020000; PORT
04 : 8c030001; (
08 : 00430820; wren_a : IN STD_LOGIC; -- Write Enable
0C : ac010003; Activation
10 : 1022ffff; clock0 : IN STD_LOGIC ; -- Clock
14 : 1021fffa; address_a : IN STD_LOGIC_VECTOR (7
06 : 0043282a; DOWNTO 0); -- Address Input
07 : 10a00002; q_a : OUT STD_LOGIC_VECTOR (7 DOWNTO
09 : 1000fffb; 0); -- Data Output
10 : ac040000; data_a : IN STD_LOGIC_VECTOR (7 DOWNTO
11 : 1000ffff; 0) -- Data Input
);
END END COMPONENT;
ENTITY reg_file IS
PORT (
clock : IN
STD_LOGIC;
WR_EN : IN
STD_LOGIC;
ADDR_1 : IN
STD_LOGIC_VECTOR (4 DOWNTO 0);
ADDR_2 : IN
STD_LOGIC_VECTOR (4 DOWNTO 0);
ADDR_3 : IN
STD_LOGIC_VECTOR (4 DOWNTO 0);
WR_DATA_3 : IN
STD_LOGIC_VECTOR (31 DOWNTO 0);
RD_DATA_1 : OUT
STD_LOGIC_VECTOR (31 DOWNTO 0);
RD_DATA_2 : OUT
STD_LOGIC_VECTOR (31 DOWNTO 0)