Dokumen tersebut membahas tentang program register instruksi dan accumulator dalam bahasa VHDL. Program register digunakan untuk menyimpan instruksi dari memori ke dalam register dengan mengontrol input dan outputnya melalui trigger. Program accumulator berfungsi untuk menyimpan hasil perhitungan aritmatika dan logika dengan mengontrol nilai input dan outputnya melalui trigger. Kedua program tersebut bertujuan untuk mempelajari konsep register instruksi dan accumulator dalam komputer.
1. Praktikum 4
Register Instruksi dan Accumulator
LUSIANA DIYAN NINGRUM
2210181051
Program Studi Teknik Komputer
Departemen Teknik Informatika dan Komputer
Politeknik Elektronika Negeri Surabaya
2. 1. Tujuan:
a. Mahasiswa dapat menjelaskan dan membuat program Register Instruksi.
b. Mahasiswa dapat menjelaskan dan membuat program Accumulator.
2. Dasar Teori
A. RegisterInstruksi
Register instruksi atau Instruction Register yang disingkat IR merupakan bagian dari unit
kendali. Untuk mengambil sebuah instruksi dari memori, komputer melakukan operasi
membaca memori. Dalam operasi ini isi dari lokasi memori yang ditunjuk alamatnya
ditempatkan pada bus W. Pada waktu yang sama, register instruksi disiapkan untuk pengisian
pada tepi positif dari sinyal detak (clock) berikutnya.
Isi register instruksi dibagi menjadi dua nibble. Nibble bagian atas merupakan keluaran
dua keadaan yang langsung dikirimkan kepada blok “Pengendali Pengurut”. Nibble bagian
bawah adalah keluaran tiga keadaan yang dapat dibaca (ditempatkan) pada bus W bilamana
diperlukan.
B. Accumulator
Akumulator disingkat dengan A adalah sebuah register buffer yang menyimpan jawaban
sementara selama komputer beroperasi. Dalam Gambar 1 diperlihatkan bahwa akumulator
mempunyai dua macam keluaran. Keluaran dua keadaan secara langsung diteruskan ke bagian
Arithmetic Logic Unit. Keluaran tiga-keadaan dikirimkan kepada bus W. Karena itu kata 8-
bit dari akumulator secara terus menerus menggerakkan rangkaian Arithmetic Logic Unit; dan
kata yang sama juga muncul pada bus W bilamana EA tinggi.
3. Program
● Program Register
VHDL MODUL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity IR is
Port ( CLK : in STD_LOGIC;
CLR : in STD_LOGIC;
nLi : in STD_LOGIC;
nEi : in STD_LOGIC;
inIR : in STD_LOGIC_VECTOR (7 downto 0);
outIRlow : out STD_LOGIC_VECTOR (3 downto 0);
outIRhigh : out STD_LOGIC_VECTOR (3 downto 0));
3. end IR;
architecture Behavioral of IR is
signal regBuff : STD_LOGIC_VECTOR (7 downto 0);
begin
process (CLK,CLR)
begin
if rising_edge(CLK) then
if CLR = '1' then
regBuff <="00000000";
outIRlow <="ZZZZ";
end if;
elsif nLi='0' then
regBuff <= inIR;
outIRlow <= "ZZZZ";
end if;
end if;
end process;
outIRlow <= regBuff(3 downto 0) when nEi='0' else "ZZZZ";
outIRhigh <= regBuff(7 downto 4);
end Behavioral;
5. ● Program Accumulator
VHDL MODUL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity regA is
Port ( CLK : in STD_LOGIC;
nLa : in STD_LOGIC;
6. Ea : in STD_LOGIC;
inA : in STD_LOGIC_VECTOR (7 downto 0);
outA : out STD_LOGIC_VECTOR (7 downto 0);
regACC : out STD_LOGIC_VECTOR (7 downto 0));
end regA;
architecture Behavioral of regA is
signal sigA : STD_LOGIC_VECTOR (7 downto 0);
begin
process (CLK)
begin
if rising_edge(CLK) then
if nLa='0' then
sigA <= inA;
end if;
end if;
end process;
outA <= sigA when Ea='1' else "ZZZZZZZZ";
regACC <= sigA;
end Behavioral;
8. 4. Analisa
Pada praktikum ini kami membuat dua program percobaan yakni program
register dan program akumulator.
Register instruksi merupakan bagian dari unit kendali. Untuk mengambil
sebuah instruksi dari memori, komputer melakukan operasi membaca memori. Pada
program register, input berupa inRI yang kemudian di kontrol oleh nLI dan CLR. ketika
nilai outRlow dan signal rbuff sudah terisi (tidak sama dengan 0), dengan trigger clock
dan nLi. Nilai outRlow akan diperbarui yaitu dengan menggambil 4 bit awal pada signal
rbuff. Begitu juga outRhigh yang akan diperbarui dengan mengambil 4 bit terakhir dari
rbuf dengan trigger nEi.
Program Akumulator merupakan register yang dapat digunakan untuk
aritmatika, logis, pergeseran, memutar, atau lainnya operasi serupa. Pada program
akumulator nilau RegA dan outA kan diisi sesuai trigger nLa dan Na. output akan sesuai
dengan input jika nLa bernilai 0 dan Ea bernilai 0. Jika keduanya bernilai 1 maka nilai
out sama dengan ZZZZ. Nilai nLa sama dengan 0, maka output akan memunculkan
nilai output sebelumnya, karena tidak ada perubahan nilai pada sigA. Dalam Gambar 1
diperlihatkan bahwa akumulator mempunyai dua macam keluaran. Keluaran dua
keadaan secara langsung diteruskan ke bagian Arithmetic Logic Unit. Keluaran tiga-
9. keadaan dikirimkan kepada bus W. Karena itu kata 8-bit dari akumulator secara terus
menerus menggerakkan rangkaian Arithmetic Logic Unit; dan kata yang sama juga
muncul pada bus W bilamana E A tinggi.
5. Kesimpulan
Berdasarkan hasil percobaan dan analisa yang telah dilakukan, dapat ditarik
kesimpulan bahwa :
1. Register berfungsi untuk menampung data dengan ketentuan bahwa data yang
terdapat dalan register dapat diproses dalam berbagai operasi dengan melihat besar
kapasitas register tersebut. Register berisi 2 output yang nilainya dikontrol sebuah
triger dengan sebuah input tunggal 8 bit.
2. Accumulator merupakan register yang digunakan untuk menyimpan perhitungan
aritmatika dan hasil penolahan operasi logika. Akumulator akan menyimpan nilai dari
input yang dikontrol dengan nLa. Jika nilai nLa tidak memenuhi, maka output adalah
output sebelumnya.