Top Banner
Puji syukur atas berkat dari Tuhan yang Maha Esa, karena kami dapat menyelesaikan tugas ini, Data Path merupakan kombinasi dari beberapa unit Register dan sebuah ALU yang saling terhubung satu dengan lainnya, didalam datapath terdapat beberapa unit logika yang dapat melakukan berbagai proses operasi. Berikut Resume/Laporan dari Data Path yang berhasil kami buat. 1. Schematic Lengkap Data Path Karena ukuran lembar kerja yang tidak mencukupi, kami membuat untai-untai logika penyusun komponen tersebut menjadi sebuah IC (symbol) dengan menggunakan tool symbol wizard. Untuk penamaan pin Data path diatas sama seperti yang diinstruksikan, tetapi ada banyak pin atau wire tambahan, karena hal tersebut diperlukan dalam proses pengerjaan. Untai dasar penyusun Register File kami lampirkan dalam gambar 1, unti dasar penyusun Function Unit kami lampirkan dalam gambar 2 Sistem Mikroprosesor | Data Path Function Unit
25

SISMIK DATAPATH

Jan 19, 2023

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SISMIK DATAPATH

Puji syukur atas berkat dari Tuhan yang Maha Esa, karena kami dapat menyelesaikan tugas ini,

Data Path merupakan kombinasi dari beberapa unit Register dan sebuah ALU yang saling terhubung satu dengan lainnya, didalam datapath terdapat beberapa unit logika yang dapat melakukan berbagaiproses operasi.

Berikut Resume/Laporan dari Data Path yang berhasil kami buat.1. Schematic Lengkap Data Path

Karena ukuran lembar kerja yang tidak mencukupi, kami membuat untai-untai logika penyusun komponen tersebut menjadi sebuah IC (symbol) dengan menggunakan tool symbol wizard.Untuk penamaan pin Data path diatas sama seperti yang diinstruksikan, tetapi ada banyak pin atau wire tambahan, karena hal tersebut diperlukan dalam proses pengerjaan.

Untai dasar penyusun Register File kami lampirkan dalam gambar 1, unti dasar penyusun Function Unit kami lampirkan dalam gambar 2

Sistem Mikroprosesor| Data Path

Function Unit

Page 2: SISMIK DATAPATH

Gambar 1. Register File

Sistem Mikroprosesor| Data Path

Page 3: SISMIK DATAPATH

Gambar 2 Function Unit

Sistem Mikroprosesor| Data Path

Page 4: SISMIK DATAPATH

2. Simulasi dan pembahasan Register File

Untuk gambar Untai dasar penyusun Register File dapat dilihat dilampiran Gambar 1. Register File ini tersusun atas 8 unit register-4 bit dan menggunakan Sebuah Decoder-3-8 sebagai selectordata masuk (DA). Dan untuk mengalirkan data keluar menuju Bus A dan Bus B kami menggunakan 8 buah Mux-8-1. Yaitu 4 unit untuk Bus A dan 4 unit untuk Bus B. adapun disetiap 4 unit tersebut memilikiselector, yang berfungsi untuk menentukan data yang akan dikeluarkan menuju Function Unit. Selector tersebut adalah AA dan BA.AA berfungsi untuk memilih data yang keluar menuju Bus A, dan BA untuk memilih data yang keluar menuju Bus B.

A. Testbench wafe form/VHDL Testbench

-- *** Test Bench - User Defined Section *** tb : PROCESS BEGIN

DATA_1<='1'; DATA_2<='0';

DATA_3<='0';

DATA_4<='0'; DA_1<='0'; DA_2<='0'; DA_3<='0'; RW<='1'; AA1<='0'; AA2<='0'; AA3<='0';

BA1<='0';

BA2<='0'; BA3<='0';

ENABLE<='1'; CLOCK<='0'; CLEAR<='0';

ENABLE3<='1';WAIT FOR 100ns;

DATA_1<='1'; DATA_2<='0';

Sistem Mikroprosesor| Data Path

Page 5: SISMIK DATAPATH

DATA_3<='0'; DATA_4<='0'; DA_1<='0'; DA_2<='0'; DA_3<='0'; RW<='1'; AA1<='0'; AA2<='0'; AA3<='0';

BA1<='0'; BA2<='0'; BA3<='0'; ENABLE<='1'; CLOCK<='1'; CLEAR<='0';

ENABLE3<='1'; WAIT FOR 100ns;

DATA_1<='1';DATA_2<='1';

DATA_3<='0'; DATA_4<='0'; DA_1<='1'; DA_2<='0'; DA_3<='0'; RW<='1'; AA1<='0'; AA2<='0'; AA3<='0';

BA1<='1'; BA2<='0'; BA3<='0';

ENABLE<='1'; CLOCK<='0'; CLEAR<='0';

ENABLE3<='1';

WAIT FOR 100ns;

DATA_1<='1'; DATA_2<='1';

DATA_3<='0'; DATA_4<='0'; DA_1<='1'; DA_2<='0'; DA_3<='0'; RW<='1'; AA1<='0'; AA2<='0'; AA3<='0';

BA1<='1'; BA2<='0'; BA3<='0';

ENABLE<='1'; CLOCK<='1'; CLEAR<='0';

ENABLE3<='1';WAIT FOR 100ns;

DATA_1<='1';DATA_2<='0';

DATA_3<='0'; DATA_4<='1'; DA_1<='0'; DA_2<='1'; DA_3<='0'; RW<='1'; AA1<='0'; AA2<='1'; AA3<='0';

BA1<='0'; BA2<='0';

BA3<='1';ENABLE<='1';

CLOCK<='0'; CLEAR<='0';

ENABLE3<='1';WAIT FOR 100ns;DATA_1<='1'; DATA_2<='0';

DATA_3<='0'; DATA_4<='1'; DA_1<='0'; DA_2<='1'; DA_3<='0'; RW<='1'; AA1<='0'; AA2<='1'; AA3<='0';

BA1<='0'; BA2<='0'; BA3<='1';

ENABLE<='1'; CLOCK<='1'; CLEAR<='0';

ENABLE3<='1'; WAIT FOR 100ns;

DATA_1<='1'; DATA_2<='0';

DATA_3<='1'; DATA_4<='1'; DA_1<='1'; DA_2<='1'; DA_3<='1'; RW<='1'; AA1<='0'; AA2<='0';

Sistem Mikroprosesor| Data Path

Page 6: SISMIK DATAPATH

AA3<='0';BA1<='1';

BA2<='1'; BA3<='1';

ENABLE<='1'; CLOCK<='0'; CLEAR<='0';

ENABLE3<='1';WAIT FOR 100ns;DATA_1<='1';DATA_2<='0';

DATA_3<='1'; DATA_4<='1'; DA_1<='1'; DA_2<='1'; DA_3<='1'; RW<='1'; AA1<='0'; AA2<='0'; AA3<='0';

BA1<='1'; BA2<='1'; BA3<='1';

ENABLE<='1'; CLOCK<='1'; CLEAR<='0';

ENABLE3<='1';WAIT FOR 100ns;

DATA_1<='1';DATA_2<='1';

DATA_3<='1'; DATA_4<='1'; DA_1<='0'; DA_2<='1'; DA_3<='1';

RW<='1'; AA1<='0'; AA2<='1'; AA3<='1';

BA1<='1'; BA2<='0'; BA3<='0';

ENABLE<='1'; CLOCK<='0'; CLEAR<='0';

ENABLE3<='1';WAIT FOR 100ns;DATA_1<='1';DATA_2<='1';

DATA_3<='1'; DATA_4<='1'; DA_1<='0'; DA_2<='1'; DA_3<='1'; RW<='1'; AA1<='0'; AA2<='1'; AA3<='1';

BA1<='1'; BA2<='0'; BA3<='0';

ENABLE<='1'; CLOCK<='1'; CLEAR<='0';

ENABLE3<='1'; WAIT FOR 100ns;

DATA_1<='0'; DATA_2<='1';

DATA_3<='0'; DATA_4<='1';

DA_1<='1'; DA_2<='0'; DA_3<='1'; RW<='1'; AA1<='1'; AA2<='0'; AA3<='1';

BA1<='1'; BA2<='0'; BA3<='1';

ENABLE<='1'; CLOCK<='0'; CLEAR<='0';

ENABLE3<='1';WAIT FOR 100ns;DATA_1<='0';DATA_2<='1';

DATA_3<='0'; DATA_4<='1'; DA_1<='1'; DA_2<='0'; DA_3<='1'; RW<='1'; AA1<='1'; AA2<='0'; AA3<='1';

BA1<='1'; BA2<='0'; BA3<='1';

ENABLE<='1'; CLOCK<='1'; CLEAR<='0';

ENABLE3<='1';WAIT FOR 100ns;

DATA_1<='0';DATA_2<='0';

Sistem Mikroprosesor| Data Path

Page 7: SISMIK DATAPATH

DATA_3<='1'; DATA_4<='0'; DA_1<='0'; DA_2<='0'; DA_3<='1'; RW<='1'; AA1<='0'; AA2<='0'; AA3<='1';

BA1<='0'; BA2<='0'; BA3<='1';

ENABLE<='1'; CLOCK<='0'; CLEAR<='0';

ENABLE3<='1';WAIT FOR 100ns;

DATA_1<='0';DATA_2<='0';

DATA_3<='1'; DATA_4<='0'; DA_1<='0'; DA_2<='0'; DA_3<='1'; RW<='1'; AA1<='0'; AA2<='0';

AA3<='1';BA1<='0';

BA2<='0'; BA3<='1';

ENABLE<='1'; CLOCK<='1'; CLEAR<='0';

ENABLE3<='1';WAIT FOR 100ns;

WAIT; -- will wait forever END PROCESS;-- *** End Test Bench- User Defined Section ***

B. Hasil simulasi

Sistem Mikroprosesor| Data Path

Page 8: SISMIK DATAPATH

Gambar diatas merupakan hasil Simulasi dari data yang dimasukkan pada VHDL Test Branch.

Pembahasan

Pada clock pertama (UP Edge) kami memasukkan data 1(Desimal Value), kemudian DA bernilai 000 yang artinya data ditujukan pada register ke 1. Kemudian AA dan BA kami beri nilai 000, yang berarti bus A danbus B mengeluarkan hasil yang berada didalam register ke-1. Berarti A out (bus A) dan B out (bus B) bernilai 1(desimal) sama dengan nilai yang tersimpan pada register ke-1.

Pada clock kedua, kami memasukkan data 3 (desimal value), kemudia DAbernilai 001 yang artinya data ditujukan pada register ke-2. Kemudian AA kami beri nilai 000 (yang berarti Bus A mengeluarkan hasil yang berada didalam register ke -1) dan BA diberi nilai 001 (yang berarti Bus B mengeluarkan hasil yang berada didalam register ke -2).sehingga A out (bus A) bernilai 1 *tidak berubah nilainya, karena register ke-1 no change. B out (Bus B bernilai 3, yaitu nilai yang ada pada register ke-2)

Out A dan B untuk clock selanjutnya akan bekerja sesuai dengan Instruksi yang diberikan.

3. Simulasi dan Pembahasan untuk setiap code Function Unit.

Code Datapath

Sistem Mikroprosesor| Data Path

Page 9: SISMIK DATAPATH

* ada sebuah perbedaan control yang kamibuat denganyang

seharusnya. Yaitu pada FS 0100 dengan 0101. Yaitu fungsinya terbalik.

Seharusnya F=A-B+1

Seharusnya F=A-B

A. Testbench wafe form/VHDL Testbench

BEGIN

B1<='1'; B2<='1'; B3<='0'; B4<='0';

CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1'; A4<='0';

HARUS_1<='1';CI<='0'; S0<='0'; S1<='0';S2<='0';

ENABLE2<='1'; MF<='0'; CLOCK3<='0'; WAIT FOR 100ns; B1<='1';

Sistem Mikroprosesor| Data Path

FS FUNGSI0000 F=A0001 F=A+10010 F=A+B0011 F=A+B+10100 F=A-B-10101 F=A-B0110 F=A-10111 F=A1000 F=A and B1001 F=A or B1010 F=A xor B1011 F=not A1100 F=B1101 F=SL1110 F=SR

Page 10: SISMIK DATAPATH

B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='0'; S1<='0';S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='1'; WAIT FOR 100ns;

B1<='1'; B2<='1'; B3<='0'; B4<='0';

CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='1'; S0<='0'; S1<='0';S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='0'; WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1';

A3<='1';A4<='0'; HARUS_1<='1';CI<='1'; S0<='0'; S1<='0';S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='1'; WAIT FOR 100ns;

B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0';

S0<='1'; S1<='0';S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='0'; WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='1'; S1<='0';S2<='0'; ENABLE2<='1';

Sistem Mikroprosesor| Data Path

Page 11: SISMIK DATAPATH

MF<='0'; CLOCK3<='1'; WAIT FOR 100ns;

B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='1'; S0<='1'; S1<='0';S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='0';

WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='1'; S0<='1'; S1<='0';S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='1'; WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0';

B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='0'; S1<='1';S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='0'; WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1';

A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='0'; S1<='1';S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='1'; WAIT FOR 100ns;

B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0';

Sistem Mikroprosesor| Data Path

Page 12: SISMIK DATAPATH

HARUS_1<='1';CI<='1'; S0<='0'; S1<='1';S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='0'; WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='1'; S0<='0'; S1<='1';

S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='1'; WAIT FOR 100ns;

B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='1'; S1<='1';S2<='0'; ENABLE2<='1'; MF<='0';

CLOCK3<='0'; WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='1'; S1<='1';S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='1'; WAIT FOR 100ns;

B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='1'; S0<='1'; S1<='1';S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='0'; WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0'; B4<='0';

Sistem Mikroprosesor| Data Path

Page 13: SISMIK DATAPATH

CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='1'; S0<='1'; S1<='1';S2<='0'; ENABLE2<='1'; MF<='0'; CLOCK3<='1';WAIT FOR 100ns;

B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1';

A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='0'; S1<='0';S2<='1'; ENABLE2<='1'; MF<='0'; CLOCK3<='0'; WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0';

S0<='0'; S1<='0';S2<='1'; ENABLE2<='1'; MF<='0'; CLOCK3<='1'; WAIT FOR 100ns;

B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='1'; S0<='0'; S1<='0';S2<='1';

ENABLE2<='1'; MF<='0'; CLOCK3<='0'; WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='1'; S0<='0'; S1<='0';S2<='1'; ENABLE2<='1'; MF<='0'; CLOCK3<='1';

Sistem Mikroprosesor| Data Path

Page 14: SISMIK DATAPATH

WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='1'; S1<='0';S2<='1'; ENABLE2<='1'; MF<='0'; CLOCK3<='0'; WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0';

B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='1'; S1<='0';S2<='1'; ENABLE2<='1'; MF<='0'; CLOCK3<='1'; WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1';

A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='1'; S0<='1'; S1<='0';S2<='1'; ENABLE2<='1'; MF<='0'; CLOCK3<='0'; WAIT FOR 100ns;B1<='1'; B2<='1'; B3<='0'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';

CI<='1'; S0<='1'; S1<='0';S2<='1'; ENABLE2<='1'; MF<='0'; CLOCK3<='1'; WAIT FOR 100ns;

B1<='0'; B2<='1'; B3<='1'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='0'; S1<='1';

Sistem Mikroprosesor| Data Path

Page 15: SISMIK DATAPATH

S2<='1'; ENABLE2<='1'; MF<='1'; CLOCK3<='0'; WAIT FOR 100ns;B1<='0'; B2<='1'; B3<='1'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='0'; S1<='1';S2<='1'; ENABLE2<='1'; MF<='1'; CLOCK3<='1';

WAIT FOR 100ns;B1<='0'; B2<='1'; B3<='1'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='1'; S0<='0'; S1<='1';S2<='1'; ENABLE2<='1'; MF<='1'; CLOCK3<='0'; WAIT FOR 100ns;B1<='0'; B2<='1';

B3<='1'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='1'; S0<='0'; S1<='1';S2<='1'; ENABLE2<='1'; MF<='1'; CLOCK3<='1'; WAIT FOR 100ns;B1<='0'; B2<='1'; B3<='1'; B4<='0'; CLEAR2<='0';

A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='1'; S1<='1';S2<='1'; ENABLE2<='1'; MF<='1'; CLOCK3<='0'; WAIT FOR 100ns;B1<='0'; B2<='1'; B3<='1'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0';

Sistem Mikroprosesor| Data Path

Page 16: SISMIK DATAPATH

HARUS_1<='1';CI<='0'; S0<='1'; S1<='1';S2<='1'; ENABLE2<='1'; MF<='1'; CLOCK3<='1'; WAIT FOR 100ns;

B1<='0'; B2<='1'; B3<='1'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='1';

S1<='1';S2<='1'; ENABLE2<='1'; MF<='1'; CLOCK3<='0'; WAIT FOR 100ns;B1<='0'; B2<='1'; B3<='1'; B4<='0'; CLEAR2<='0'; A1<='1'; A2<='1'; A3<='1';A4<='0'; HARUS_1<='1';CI<='0'; S0<='1'; S1<='1';S2<='1'; ENABLE2<='1'; MF<='1';

CLOCK3<='1';

Sistem Mikroprosesor| Data Path

Page 17: SISMIK DATAPATH

B. Hasil simulasi

Representasi Desimal

Agar memudahkan kita memahami hasil dari operasi, kami mengganti radix input dan output menjadi desimal.

Catatan : Seperti yang kita lihat dari gambar diatas, Bus A kami beri nilai 7 (desimal); 0111(biner) dan Bus B kami beri nilai3 (Desimal); 0011 (Biner). Nilai Bus A dan Bus B tidak berubah untuk simulasi ini sampai clock-13

Pembahasan1. Untuk clock ke-1 FS=0000, operasi Output=A=7 (sesuai dengan simulasi)

2 Untuk clock ke-2 FS=0001, operasi Output=A+1=8 (sesuai dengan simulasi)

3. Untuk clock ke-3 FS=0010, operasi Output=A+B=10 (sesuai dengan simulasi)

4. Untuk clock ke-4 FS=0011, operasi Output=A+B+1=11 (sesuai dengan simulasi)

5. Untuk clock ke-5 FS=0100, operasi Output=A-B-1=3 (sesuai dengan simulasi)

6. Untuk clock ke-6 FS=0101, operasi Output=A-B =4 (sesuai dengan simulasi)

Sistem Mikroprosesor| Data Path

Page 18: SISMIK DATAPATH

7. Untuk clock ke-7 FS=0110, operasi Output=A-1=6 (sesuai dengan simulasi)

8. Untuk clock ke-8 FS=0111, operasi Output=A=7(sesuai dengan simulasi)

Continueto next page

Untuk operasi selanjutnya, akan sulit melihat output jika radiksnya desimal, untuk itu kita menggunakan gambar simulasi dengan radiks biner.

9. Untuk clock ke-9 FS=1000, operasi Output=A and B = 0011(sesuai dengan simulasi)

10. Untuk clock ke-10 FS=1001, operasi Output=A or B = 0111(sesuai dengan simulasi)

11. Untuk clock ke-11 FS=1010, operasi Output=A xor B = 0100(sesuai dengan simulasi)

12. Untuk clock ke-12 FS=1011, operasi Output=not A=1000(sesuai dengan simulasi)

Sistem Mikroprosesor| Data Path

Page 19: SISMIK DATAPATH

Untuk Clock 13 sampai 15 kami mengganti input B(data Bus B) dengan 0110, yang bertujuan untuk memudahkan kita mengamati penggeseran bit(shifter)

13. Untuk clock ke-13 FS=1100, operasi Output=B=0110 (sesuai dengan simulasi)

14. Untuk clock ke-14 FS=1101, operasi Output=SL B=1100(sesuai dengan simulasi) terlihat bahwa bit keluaran output tergeser ke kiri. (0110 menjadi 1100)

15. Untuk clock ke-15 FS=1110, operasi Output=SR B=0011(sesuai dengan simulasi) terlihat bahwa bit keluaran output tergeser ke kanan. ( 0110menjadi 0011)

4. Gabungan Register File dengan Function Unit.

Pada point ini register file akan digabung dengan function unit yang membentuk Data Path utuh.untuk gambar Data Path tersebut dapat dilihat dilembar sebelumnya.

Operand yang kami ambil adalah dari 000 (reg 1) dan 001 (reg 2).

Testbench wafe form/VHDL Testbench

Sistem Mikroprosesor| Data Path

Page 20: SISMIK DATAPATH

BEGINAA1<='0';

AA2<='0'; AA3<='0'; DATA1<='0'; DATA2<='0'; DATA3<='1'; DATA4<='0'; DA1<='0'; DA2<='0'; DA3<='0'; ENABLE<='1'; BA2<='0'; BA3<='0'; BA1<='0'; RW<='1'; CLEAR<='0'; CLOCK<='0'; MF<='0';

CONSTAN_IN1<='0'; CONSTAN_IN2<='0'; CONSTAN_IN3<='0'; CONSTAN_IN4<='0'; MB<='0';

CI<='0'; S0<='1'; S1<='0'; S2<='0';

DATA_IN1<='0';

DATA_IN2<='0';

DATA_IN3<='0';

DATA_IN4<='0';

MD<='0';

WAIT FOR 100ns;

AA1<='0'; AA2<='0';

AA3<='0'; DATA1<='0'; DATA2<='0'; DATA3<='1'; DATA4<='0'; DA1<='0'; DA2<='0'; DA3<='0'; ENABLE<='1'; BA2<='0'; BA3<='0'; BA1<='0'; RW<='1'; CLEAR<='0'; CLOCK<='1'; MF<='0'; CONSTAN_IN1<='0'; CONSTAN_IN2<='0';

CONSTAN_IN3<='0'; CONSTAN_IN4<='0'; MB<='0';

CI<='0'; S0<='1'; S1<='0'; S2<='0';

DATA_IN1<='0';

DATA_IN2<='0';

DATA_IN3<='0';

DATA_IN4<='0';

MD<='0';

WAIT FOR 100ns;

AA1<='0'; AA2<='0'; AA3<='0'; DATA1<='0';

Sistem Mikroprosesor| Data Path

Page 21: SISMIK DATAPATH

DATA2<='1'; DATA3<='0'; DATA4<='0'; DA1<='1'; DA2<='0'; DA3<='0'; ENABLE<='1'; BA2<='0'; BA3<='0'; BA1<='1'; RW<='1'; CLEAR<='0'; CLOCK<='0'; MF<='0'; CONSTAN_IN1<='0'; CONSTAN_IN2<='0'; CONSTAN_IN3<='0'; CONSTAN_IN4<='0';

MB<='0';

CI<='1'; S0<='0'; S1<='1'; S2<='0';

DATA_IN1<='0';

DATA_IN2<='0';

DATA_IN3<='0';

DATA_IN4<='0';

MD<='0';

WAIT FOR 100ns;

AA1<='0'; AA2<='0'; AA3<='0'; DATA1<='0'; DATA2<='1'; DATA3<='0'; DATA4<='0'; DA1<='1'; DA2<='0';

DA3<='0'; ENABLE<='1'; BA2<='0'; BA3<='0'; BA1<='1'; RW<='1'; CLEAR<='0'; CLOCK<='1'; MF<='0'; CONSTAN_IN1<='0'; CONSTAN_IN2<='0'; CONSTAN_IN3<='0'; CONSTAN_IN4<='0'; MB<='0';

CI<='1'; S0<='0'; S1<='1'; S2<='0';

DATA_IN1<='0';

DATA_IN2<='0';

DATA_IN3<='0';

DATA_IN4<='0';

MD<='0';

WAIT FOR 100ns;

AA1<='0'; AA2<='0'; AA3<='0'; DATA1<='0'; DATA2<='1'; DATA3<='0'; DATA4<='0'; DA1<='1'; DA2<='0'; DA3<='0'; ENABLE<='1'; BA2<='0'; BA3<='0';

Sistem Mikroprosesor| Data Path

Page 22: SISMIK DATAPATH

BA1<='1'; RW<='0'; CLEAR<='0'; CLOCK<='0'; MF<='0'; CONSTAN_IN1<='0'; CONSTAN_IN2<='0'; CONSTAN_IN3<='0'; CONSTAN_IN4<='0'; MB<='0';

CI<='0'; S0<='1'; S1<='0'; S2<='0';

DATA_IN1<='0';

DATA_IN2<='0';

DATA_IN3<='0';

DATA_IN4<='0';

MD<='0';

WAIT FOR 100ns;

AA1<='0'; AA2<='0'; AA3<='0'; DATA1<='0'; DATA2<='1'; DATA3<='0'; DATA4<='0'; DA1<='1'; DA2<='0'; DA3<='0'; ENABLE<='1'; BA2<='0'; BA3<='0'; BA1<='1'; RW<='0'; CLEAR<='0'; CLOCK<='1'; MF<='0';

CONSTAN_IN1<='0'; CONSTAN_IN2<='0'; CONSTAN_IN3<='0'; CONSTAN_IN4<='0'; MB<='0';

CI<='0'; S0<='1'; S1<='0'; S2<='0';

DATA_IN1<='0';

DATA_IN2<='0';

DATA_IN3<='0';

DATA_IN4<='0';

MD<='0';

WAIT FOR 100ns;

AA1<='0'; AA2<='0';

AA3<='0'; DATA1<='0'; DATA2<='1'; DATA3<='0'; DATA4<='0'; DA1<='1'; DA2<='0'; DA3<='0'; ENABLE<='1'; BA2<='0'; BA3<='0'; BA1<='1'; RW<='0'; CLEAR<='0'; CLOCK<='0'; MF<='0'; CONSTAN_IN1<='0'; CONSTAN_IN2<='0';

Sistem Mikroprosesor| Data Path

Page 23: SISMIK DATAPATH

CONSTAN_IN3<='0'; CONSTAN_IN4<='0'; MB<='0';

CI<='1'; S0<='0'; S1<='1'; S2<='0';

DATA_IN1<='0';

DATA_IN2<='0';

DATA_IN3<='0';

DATA_IN4<='0';

MD<='0';

WAIT FOR 100ns;

AA1<='0'; AA2<='0'; AA3<='0'; DATA1<='0'; DATA2<='1'; DATA3<='0';

DATA4<='0'; DA1<='1'; DA2<='0'; DA3<='0'; ENABLE<='1'; BA2<='0'; BA3<='0'; BA1<='1'; RW<='0'; CLEAR<='0'; CLOCK<='1'; MF<='0'; CONSTAN_IN1<='0'; CONSTAN_IN2<='0'; CONSTAN_IN3<='0'; CONSTAN_IN4<='0'; MB<='0';

CI<='1';

S0<='0'; S1<='1'; S2<='0';

DATA_IN1<='0';

DATA_IN2<='0';

DATA_IN3<='0';

DATA_IN4<='0';

MD<='0';

WAIT FOR 100ns;

Sistem Mikroprosesor| Data Path

Page 24: SISMIK DATAPATH

Hasil simulasi

Sistem Mikroprosesor| Data Path

Page 25: SISMIK DATAPATH

Pembahasan

Gambar diatas merupakan hasil dari simulasi dari Data Path untuk operasi penjumlahan dan pengurangan seperti yang diinstruksikan.

pada clock pertama, data yang dimasukkan bernilai 4 (desimal) dan ditujukan pada register ke-1 (DA=000)pada clock pertama ini operasi belum berlangsung, masih melakukan load data ke register.

Pada clock kedua juga belum terjadi operasi, masih melakukan load data kedua yang bernilai 2 (desimal) kedalam register ke-2 (DA=001)

Pada clock ketiga, RW diatur 0 agar tidak berlangsung proses Load data lagi.disini terjadi proses penjumlahan (kita lihat FS=0010) yang dijumlahkan adalah register 1 dan register 2.(AA=000 dan BA=001), dan kita perhatikan bahwa output benilai 6 (desimal) sesuai dengan penjumlahan isi register 1 dan 2.

Pada clock keempat, terjadi proses pengurangan (FS=0101). Yangdikurangkan adalah register 1 (BUS A) dengan register 2 (bus B). dan terbukti dari output yang bernilai 2.

Sistem Mikroprosesor| Data Path