Anda di halaman 1dari 66

MODUL PRAKTIKUM PENGANTAR ORGANISASI KOMPUTER

OLEH

ASISTEN PENGANTAR ORGANISASI KOMPUTER

S1 ILMU KOMPUTER

JURUSAN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS LAMPUNG

2017
Modul POK 1
Pengenalan Logisim
Logisim adalah sebuah tool untuk mendesain dan membuat simulasi rangkaian digital. Dengan
toolbar yang sederhana, Logisim memungkinkan anda untuk merancang dan mensimulasikan
sirkuit digital.

Gambar1. Tampilan awal Logisim


Kenapa harus Logisim?
- Gratis! (Logisim is open-source)
- Logisim dapat bekerja di java 5 atau sebelumnya; spesial untuk MacOS dan Microsoft.
- Kemampuan menggambar dg toolbar yang intuitif. Warna yang mencolok sehingga dapat
merealitaskan rangkaian.
- Tool kabel yang bersifat horizontal atau vertikal.
- Rangkaian yang sudah jadi dapat di simpan ke format GIF atau image dan dapat di print out.
- Layout rangkaian dapat dibentuk dari sub-Rangkaian atau rangkaian laian, sesuai dengan
hirarki desaian sebuah rangkaian
- Mencakup sebuah komponen I/O, gerbang, multiplexer, rangkaian aritmatika, flip-flop, dan
memori RAM.
1|Page
- Mencakup “analisis kombinasional" modul mengikuti konversi ragkaian, tabel kebenaran, dan
ekspresi boolean.
Penambahan Masukan/Keluaran
Pada logisim, terdapat komponen I/O yang berguna untuk melengkapi rangkaian digital anda.
Untuk menambah komponen ini, cukup dengan membuka library Input/Output, lalu drag
komponen yang dibutuhkan. Berikut macam-macam komponen masukan/keluaran:

Tombol
Sebuah tombol hanya memiliki satu pin, output 1-bit, yang nilainya adalah 0 kecuali bila
pengguna menekan tombol menggunakan Perangkat Poke, maka nilainya adalah 1.

Joystick

Pengguna dapat menyeret tombol merah dalam wilayah bulat persegi, dan keluaran untuk
menunjukkan tombol yang sesuai dengan koordinat x dan y. Hal ini dimaksudkan untuk meniru
tuas kendali yang dikenal dari masa klasik game archade.

Keyboard

Komponen ini memungkinkan sirkuit untuk membaca kunci diketik dari keyboard - selama kunci
ditampilkan dalam 7-bit Kode ASCII. Setelah mengklik komponen yang menggunakan Tool
tekan, pengguna dapat mengetik karakter, yang terakumulasi dalam buffer. Pada setiap waktu,
nilai ASCII karakter paling kiri dalam buffer dikirim keluar output paling kanan. Ketika masukan
clock dipicu, karakter paling kiri menghilang dari buffer dan karakter paling kiri baru dikirim
pada output paling kanan.

LED
Menampilkan nilai input mewarnai LED (sebagaimana ditentukan oleh atribut warna nya) atau
tidak tergantung pada apakah input 1 atau 0.
(Komponen LED pada dasarnya berlebihan dengan output pin kecuali penampilan yang agak
berbeda. Beberapa pengguna, meskipun, pikir akan lebih baik untuk menyertakan.)

7-Segment Display

2|Page
Menampilkan nilai-nilai input satu-bit delapan. Segmen yang ringan atau berwarna abu-abu
tergantung pada input.

(Produsen yang berbeda mengenai bagaimana mereka peta input untuk segmen; korespondensi
yang digunakan di sini didasarkan pada Texas Instruments TIL321.)

Hex Digit Display

Menggunakan layar tujuh segmen, menunjukkan digit heksadesimal sesuai dengan input empat-
bit. Jika salah satu masukan tidak 0/1 (mengambang atau kesalahan), maka layar menunjukkan
sejumput ('-'). Masukan satu-bit terpisah mengontrol tampilan titik desimal.

LED Matrix

Menampilkan grid kecil piksel, nilai-nilai yang ditentukan oleh input saat ini. Grid dapat
memiliki hingga 32 baris dan kolom 32.

TTY

Komponen ini mengimplementasikan sebuah terminal bodoh yang sangat sederhana. Itu
menerima urutan Kode ASCII dan menampilkan setiap karakter dapat dicetak. Ketika baris saat
ini menjadi penuh, menggerakkan kursor ke baris berikut, mungkin bergulir semua baris saat ini
jika kursor sudah berada di baris bawah. Satu-satunya didukung kontrol urutan: backspace
(ASCII 8), yang akan menghapus karakter terakhir pada akhir baris, kecuali akhir baris sudah
kosong; newline (ASCII 10), yang menggerakkan kursor ke awal baris berikut, bergulir jika
diperlukan; dan bentuk-feed (ASCII 12, diketik sebagai kontrol-L), yang membersihkan layar.

MODUL 2 POK
Pengenalan Logisim Lanjut

Penambahan Gerbang
Untuk berlatih menggunakan Logisim, mari kita membangun sebuah sirkuit XOR.

Klik gerbang AND dg point tool, kemudian klik di area editing.Pastikan untuk meninggalkan
banyak ruang untuk hal-hal di sebelah kiri.Kemudian klik AND tool lagi dan menempatkan
kedua gerbang bawahnya.

3|Page
Perhatikan lima titik di sisi kiri gerbang. Ini adalah tempat di mana kabel dapat dilampirkan. Hal
ini terjadi bahwa kita hanya akan menggunakan dua dari mereka untuk rangkaian XOR kami;
tapi untuk sirkuit lain,

Sekarang tambahkan gerbang yang lain:


Pertama klik OR tool, kemudian tempatkan yg kita inginkan.
Kemudian pilih NOT tool.
Lalu berilah sedikit ruang antara gerbang AND dengan NOT tool, lalu hubungkan dengan kabel.

Sekarang kita ingin meberi sebuah input, pilihlah pin yang berada disamping.
Anda juga harus menempatkan output pin sebelah output gerbang OR yang menggunakan output

4|Page
.

Jika Anda ingin memindahkan komponen, maka Anda dapat menggunakan Tool Edit ( ) dan
tarik komponen ke tempat yang diinginkan. Atau jika Anda ingin menghapus komponen, pilih
Hapus dari menu Edit atau menekan tombol Delete (hapus).

Penambahan Kabel
Setelah Anda memiliki semua komponen yang dibutuhkan di kanvas, Anda siap untuk mulai
menambahkan kabel.Pilih Alat Edit ( ). Ketika kursor berada di atas titik yang menerima
kawat, lingkaran kecil berwarna hijau akan ditarik sekitarnya. Tekan tombol mouse di sana dan
tarik sejauh yang Anda inginkan. Setiap kali kawat berakhir pada kawat lain, Logisim otomatis
menghubungkan mereka. Anda juga dapat "memperpanjang" atau "memperpendek" kawat
dengan menyeret salah satu titik ujungnya menggunakan Alat Edit.

5|Page
Logisim otomatis menghubungkan kabel ke gerbang yang satu ke gerbang lain. termasuk juga
otomatis menggambar lingkaran di persimpangan T seperti di atas, menunjukkan bahwa kabel
yang terhubung.

Ketika Anda menarik kabel, Anda mungkin melihat beberapa kabel biru atau abu-abu. Biru di
Logisim menunjukkan bahwa nilai pada saat itu adalah "tidak diketahui," dan abu-abu
menunjukkan bahwa kawat tidak terhubung dengan apa pun. Ini bukan masalah besar karena
Anda sedang dalam proses membangun sebuah sirkuit. Tapi pada saat Anda selesai, tidak ada
kabel Anda harus biru atau abu-abu. (Kaki tidak berhubungan gerbang OR akan tetap biru: Itu
baik-baik saja.)

Jika Anda memiliki kawat biru atau abu-abu setelah Anda berpikir semuanya harus
dihubungkan, maka ada sesuatu yang salah. Sangat penting bahwa Anda menghubungkan kabel
ke tempat yang tepat. Logisim menarik titik-titik kecil pada komponen untuk menunjukkan di
mana kabel harus terhubung. Ketika Anda melanjutkan, Anda akan melihat titik-titik berubah
dari biru menjadi hijau terang atau gelap seperti berikut.

6|Page
Pengujian Rangkaian
untuk memastikan bahwa Rangkaian kita benar-benar bekerja. Kita harus melakukan simulasi
terhadap sirkuit yang kita rancang.

7|Page
Perhatikan bahwa pin input keduanya mengandung 0, dan begitu juga dengan pin output. Ini
sudah memberitahu kita bahwa sirkuit sudah menghitung 0 ketika kedua input adalah 0.
Sekarang untuk mencoba kombinasi input lain. Pilih alat poke ( ) dan ganti nilai inputan
dengan mengklik mereka. Setiap kali Anda klik, nilainya akan beralih. Sebagai contoh, pertama-
tama kita ubah input bagian bawah.

Bila anda mengubah nilai masukan, Logisim akan menunjukkan nilai-nilai perjalanan ke kabel
dengan warna kabel hijau muda untuk menunjukkan nilai 1 atau hijau gelap untuk menunjukkan
nilai 0. Anda juga dapat melihat bahwa nilai output telah berubah menjadi 1.
Dengan melakukan switch melalui kombinasi yang berbeda, kita dapat memverifikasi dua baris
lainnya. Jika sesuai dengan tabel berikut, maka kita sudah selesai, sirkuitnya berkerja!

8|Page
Pembuatan Rangkaian
Setiap proyek Logisim sebenarnya sebuah perpustakaan sirkuit. Dalam bentuk yang paling
sederhana, setiap proyek hanya memiliki satu rangkaian (disebut "main" secara standar), tetapi
cukup mudah untuk menambahkan lebih banyak lagi: Pilih Add Circuit ... dari menu Project, dan
ketik nama apapun yang anda suka untuk sirkuit baru Anda ingin membuat.
Misalkan kita ingin membangun sebuah multiplexer 2-ke-1 bernama "2:1 MUX" Setelah
menambahkan sirkuit, Logisim akan terlihat seperti ini.

Di panel explorer, Anda dapat melihat bahwa proyek sekarang berisi dua sirkuit, "main", dan
"2:1 MUX". Logisim memberikan simbol kaca pembesar di atas ikon dari sirkuit yang sedang
ditampilkan; nama sirkuit saat ini juga muncul dalam window’s title bar.
Setelah mengedit sirkuit untuk tampil seperti 2:1 multiplexer, kita akan berakhir dengan
rangkaian berikut.

9|Page
Menambahkan Rangkaian Penunjang (Sub Circuit)
Sekarang misalkan kita ingin membangun sebuah multiplexer 4-ke-1 menggunakan contoh
seperti 2-ke-1 multiplexer. Tentu saja, pertama-tama kita harus membuat sirkuit baru, yang mana
akan kita sebut "4:1 MUX". Untuk menambahkan 2-ke-1 multiplexer ke sirkuit kita, kita klik 2:1
MUX sirkuit sekali saja dalam panel explorer untuk memilihnya sebagai alat, dan kemudian kita
dapat menambahkan salinan itu, direpresentasikan sebagai kotak, dengan mengklik dalam kanvas
.

Jika Anda double klik 2:1 MUX sirkuit di panel explorer, maka jendela akan beralih ke
pengeditan 2:1 MUX sirkuit dan sebaliknya.
10 | P a g e
Setelah membangun sirkuit, hasilnya kurang lebih seperti ini.

Sirkuit kita untuk multiplexer 4-ke-1 menggunakan tiga salinan dari 2-ke-1 multiplexer, setiap
penggambaran seperti kotak dengan pin di sepanjang sisi. Pin pada kotak ini sesuai dengan
masukkan dan keluaran pin dalam 2:1 MUX sirkuit. Dua pin di sisi barat dari kotak sesuai
dengan dua pin yang menghadap timur di 2:1 MUX sirkuit; pin di sisi timur kotak yang sesuai
dengan 2:1 menghadap ke barat pin MUX (yang kebetulan pin keluaran); dan pin di sisi selatan
kotak yang sesuai dengan 2:1 MUX yang menghadap utara pin. Urutan kedua pin di sisi barat
kotak yang sesuai dengan top-down permintaan yang sama dari desain subsirkuit itu. (Jika ada
beberapa pin di sebelah utara atau sisi selatan kotak, mereka akan menyesuaikan dengan urutan
kiri-kanan yang sama di subsirkuit.)
Jika pin dalam tata letak subsirkuit memiliki label yang berhubungan dengan mereka, maka
Logisim akan menampilkan label dalam tip (yaitu sebuah kotak teks sementara) ketika pengguna
mengarahkan mouse ke lokasi yang sesuai dengan komponen subsirkuit. (Jika Anda menemukan
tips yang mengganggu, Anda dapat menonaktifkan mereka melalui Preferences window's Layout
tab.)

11 | P a g e
Beberapa komponen lainnya akan menampilkan tips ini juga. Untuk beberapa pin dari built-in
flip-flop misalnya, melayang di atas itu untuk menjelaskan pin apa itu.
Logisim akan menjaga pernyataan yang berbeda untuk menginformasikan semua subsirkuit yang
muncul dalam sebuah rangkaian. Sebagai contoh, jika sirkuit berisi flip-flop, dan sirkuit itu
digunakan sebagai subsirkuit beberapa kali, maka setiap flip-flop subsirkuit akan memiliki nilai
tersendiri ketika mensimulasi sirkuit yang lebih besar.
Sekarang kita memiliki 4-ke-1 multiplexer yang telah terdefinisi, sekarang kita dapat
menggunakannya dalam sirkuit lainnya. Logisim tidak memiliki batas pada seberapa dalam
sirkuit dapat diulang, meskipun akan sedikit sulit dengan sirkuit yang ada di dalam.
Menyisipkan Pustaka
Setiap proyek Logisim secara otomatis merupakan pustaka yang dapat dimuat ke proyek Logisim
lainnya. Hanya menyimpan ke dalam file dan kemudian dibebanan ke pustaka dalam proyek lain.
Semua sirkuit didefinisikan dalam proyek pertama akan tersedia sebagai subsirkuits untuk yang
kedua. Fitur ini memungkinkan Anda untuk menggunakan kembali komponen umum di seluruh
proyek dan berbagi komponen favorit dengan rekan Anda.
Setiap proyek memiliki "sirkuit utama" yang dapat diubah untuk merujuk ke sirkuit saat ini
melalui “Set As Main Circuit option” dalam menu Project. Satu-satunya signifikansi hal ini
adalah bahwa sirkuit utama adalah salah satu yang akan ditampilkan ketika Anda pertama kali
membuka proyek.
Nama default dari rangkaian dalam file yang baru dibuat ("main circuit") tidak memiliki
signifikansi sama sekali, dan Anda dapat secara bebas untuk menghapus atau mengubah nama
sirkuit itu.

12 | P a g e
Dengan pustaka Logisim yang dimuat, Anda diperbolehkan untuk melihat sirkuit dan
memanipulasi pernyataan mereka, tetapi Logisim akan mencegah Anda dari mengubah desain
sirkuit dan data lain yang tersimpan dalam file. Jika Anda ingin mengubah sirkuit pada pustaka
Logisim yang dimuat, maka Anda harus membukanya secara terpisah dalam Logisim. Segera
setelah Anda menyimpannya, proyek lain akan secara otomatis memuat versi modifikasi segera.
Tetapi jika tidak, Anda bisa klik kanan folder pustaka di panel explorer dan pilih “Reload
Library”.

MODUL 3 POK
Aljabar Boolean

Dalam matematika dan ilmu komputer, Aljabar Boolean adalah struktur aljabar yang
"mencakup intisari" operasi logika AND, OR, NOR, dan NAND dan juga teori himpunan untuk
operasi union, interseksi dan komplemen.

Penamaan Aljabar Boolean sendiri berasal dari nama seorang matematikawan asal Inggris,
bernama George Boole. Dialah yang pertama kali mendefinisikan istilah itu sebagai bagian dari
sistem logika pada pertengahan abad ke-19.

Boolean adalah suatu tipe data yang hanya mempunyai dua nilai. Yaitu true atau false (benar
atau salah).

Pada beberapa bahasa pemograman nilai true bisa digantikan 1 dan nilai false digantikan 0.

Aljabar Boole adalah salah satu aljabar yang berkaitan dengan variabel-variabel biner dan
operasi-operasi logika. Variabel-variabel dalam aljabar boole dinyatakan dengan huruf-huruf
seperti : A, B, C, …, X, Y, Z. Sedangkan dalam aljabar Boolean terdapat 3 operasi logika dasar
yaitu : AND, OR dan NOT (Komplemen).

Hubungan antar sebuah fungsi dengan variabel-variabel binernya dapat disajikan dalam bentuk
sebuah Tabel Kebenaran (Truth Table). Untuk menyajikan sebuah fungsi dalam sebuah tabel
kebenaran, kita membutuhkan sebuah daftar 2n kombinasi 1 dan 0 dari n buah variabel biner.

Contoh :
f = X+Y’.Z
∑ variabel = 3 (X, Y’ dan Z)
2n = 23 = 8 kombinasi 0 dan 1.

Maka tabel kebenarannya adalah sebagai berikut :


X Y Y’ Z Y ‘ .Z f= X+Y’.Z
0 0 1 0 0 0
0 0 1 1 1 1
0 1 0 0 0 0
13 | P a g e
0 1 0 1 0 0
1 0 1 0 0 1
1 0 1 1 1 1
1 1 0 0 0 1
1 1 0 1 0 1

Sebuah fungsi Boolean dapat diubah menjadi sebuah diagram logika yang terdiri dari gerbang-
gerbang logika.

Contoh :
f = X+Y’.Z

Diagram logikanya :

Kegunaan dari aljabar Boolean adalah memberikan fasilitas penulisan dalam perancangan
rangkaian digital. Aljabar Boole menyediakan alat untuk dibuat :

1. Mengekspresikan dalam bentuk aljabar sebuah tabel kebenaran yang merupakan


hubungan antara variabel-variabel,
2. Mengekspresikan dalam bentuk aljabar hubungan input dan output diagram logika,
3. Mendapatkan rangkaian-rangkaian yang lebih sederhana untuk fungsi yang sama.

RANGKAIAN KOMBINASI/ RANGKAIAN TERINTEGRASI

Rangkaian Kombinasi/ Rangkaian Terintegrasi adalah rangkaian aplikasi yang terbentuk dari
berbagai macam gerbang logika dan dapat merupakan kombinasi dari satu jenis gerbang logika
atau lebih. Penyederhanaan rangkaian terintegrasi dapat menggunakan :

Aljabar Boolean
Karnaugh Map
Diagram Venn
Quinne -Mc.Cluskey

Half Adder

Half Adder / penjumlahan paruh adalah untai logika yang keluarannya merupakan jumlah dari
dua bit bilangan biner

14 | P a g e
Full Adder
Full Adder / penjumlahan penuh adalah untai logika yang keluarannya merupakan jumlah dari
tiga bit bilangan biner

Full Adder

Rangkaian Full adder dapat juga dibangun dari 2 buah rangkaian half adder

15 | P a g e
MODUL 4 POK

RELASI RELASI ALJABAR BOOLEAN

Relasi-Relasi Dasar Aljabar Boolean :

1. X+0=X 7. X + X’ = X 13. X.(Y+Z) = X.Y + X.Z


2. X+1=1 8. X . X’ = 0 14. X + Y.Z = (X+Y) . (X+Z)
3. X.0=0 9. X+Y=Y+X 15. (X + Y)’ = X’ . Y’
4. X.1=X 10. X.Y=Y.X 16. (X.Y)’ = X’ + Y’
5. X+X=X 11. X+(Y+Z) = (X+Y)+Z 17. (X’)’ = X
6. X.X=X 12. X.(Y.Z) = (X.Y).Z 18. X.(X+Y) = X
19. X + (X.Y) = X

Keterangan :

• Relasi (1), (2), (3) dan (4) disebut dengan Hukum penjalinan dengan konstanta.
• Relasi (5) dan (6) disebut Hukum perluasan.
• Relasi (7) dan (8) disebut Hukum komplementasi
• Relasi (9) dan (10) disebut Hukum komutatif.
• Relasi (11) dan (12) disebut Hukum asosiatif.
• Relasi (13) dan (14) disebut Hukum distributif.
• Relasi (14) tidak dapat digunakan dalam aljabar biasa, tetapi relasi ini sangat berguna
dalam memanipulasi ekspresi-ekspresi aljabar boole.
• Relasi (15) dan (16) disebut Dalil de Morgan.
• Relasi (17) menyatakan jika suatu variabel dikomplemenkan sebanyak dua kali maka
akan didapat nilai asli dari variabel tersebut.
• Relasi (18) dan (19) disebut Hukum absorpsi.

16 | P a g e
Tabel Kebenaran, Persamaan Bolean dan Gerbang Logika

1. AND
Gerbang AND akan berlogika 1 atau keluarannya akan berlogika 1 apabila semua
masukan/inputannya berlogika 1, namun apabila semua atau salah satu masukannya berlogika 0
maka outputnya akan berlogika 0.

Simbol dan Persamaan Boolean AND


Tabel Kebenaran AND


2. NAND
Gerbang NAND akan bernilai / outputnya akan berlogika 0 apabila semua inputannya bernilai 1
dan outpunya akan berlogika 1 apabila semua atau salah satu inputannya bernilai 0.

Simbol dan Persamaan Boolean NAND

17 | P a g e
Tabel Kebenaran NAND
3.OR
Gerbang OR akan berlogika 1 apabila salah satu atau semua inputan yang dimasukkan bernilai 1
dan apabila keluaran yang di inginkan berlogika 0 maka inputan yang dimasukkan harus bernilai
0 semua.

Simbol dan Persamaan Boolean OR

Tabel Kebenaran OR
4.NOR
Gerbang NOR merupakan gerbang logika yang outputnya akan berlogika 1 apabila semua
inputannya bernilai 0, dan outpunya akan berlogika 0 apabila semua atau salah satu inputannya
inputannya berlogika 1.

18 | P a g e
Simbol dan Persamaan Boolean NOR

Tabel Kebenaran NOR


5.NOT
Gerbang NOT berfungsi sebagai pembalik (Inverter), yang mana outputnya akan bernilai terbalik
dengan inputannya.

Simbol dan Persamaan Boolean NOT

Tabel Kebenaran NOT


6.BUFFER
Gerbang BUFFER atau PENYANGGA adalah suatu gerbang digital yang akan berfungsi
memperkuat dan meneruskan nilai 1 pada outputnya jika inputnya bernilai 1, selain itu akan
bernilai 0.

Simbol dan Persamaan Boolean


BUFFER

Tabel Kebenaran BUFFER


7.XOR
19 | P a g e
Gerbang XOR merupakan kepanjangan dari Exclusive OR yang mana keluarannya akan
berlogika 1 apabila semua inputannya berbeda, namun apabila inputannya sama maka akan
memberikan output berlogika 0.

Simbol dan Persamaan Boolean XOR

Tabel Kebenaran XOR


8.XNOR
Gerbang XNOR merupakan kepanjangan dari Exclusive NOR yang mana keluarannya akan
berlogika 1 apabila semua inputannya sama, namun apabila inputannya berbeda maka akan
memberikan output berlogika 0.

Simbol dan Persamaan Boolean XNOR

Tabel Kebenaran XNOR

20 | P a g e
MODUL 5 POK

PLEXER : MULTIPLEXER & DECODER

MULTIPLEXER

Multiplexer adalah rangkaian logika yang menerima beberapa input data digital dan
menyeleksi salah satu dari input tersebut pada saat tertentu, untuk dikeluarkan pada sisi output.
Seleksi data-data input dilakukan oleh selector line, yang juga merupakan input dari
multiplexer tersebut. Blok diagram sebuah multiplexer ditunjukkan pada gambar dibawah ini :

Data select
control input Data output
A B Selected
0 0 c0
0 1 c1
1 0 c2
1 1 c3

Penjelasan pada gambar diatas sebagai berikut :


Diagram logika untuk 4 jalur multiplexer dengan A = 0, B = 1 (Data D1 yang dipilih)

DEMULTIPLEXER

Demultiplexer adalah sebuah rangkain logika yang menerima satu input data dan
mendistribusikan input tersebut ke beberapa output yang tersedia, dan juga merupakan
kebalikkan dari multiplexer.
selekai data - data input dilakukan oleh selektor line, yang juga merupakan input dari
demultiplexer tersebut. Blok diagram sebuah dimultiplexer ditunjukkan pada gambar tersebut.

21 | P a g e
Data select
control input Data output
A B Ipn y1 y2 y3 y4
0 0 0 0 x x x
0 0 1 1 x x x
0 1 0 x 0 x x
0 1 1 x 1 x x
1 0 0 x x 0 x
1 0 1 x x 1 x
1 1 0 x x x 0
1 1 1 x x x 1

Penjelasan pada gambar diatas sebagai berikut :


Diagram logika untuk 4 jalur multiplexer dengan A = 0, B = 1 (Data y2 yang dipilih)

1.ENCODER

A . Pengertian

Encoder adalah suatu perangkat yang berfungsi untuk mengubah (konfersi) bentuk sinyal
decimal menjadi biner. Encoder adalah proses mengubah input berbasis 10 (desimal) menjadi
data digital berbasis binary, pada saat kita menekan angka 9 pada sebuah tuts/tombol (selain
keyboard & keypad karena keduanya menggunakan mekanisme matriks keyboard) maka
rangkaian akan meneruskan kepada processor data biner dari angka 9 yaitu 1001. Data 1001
tersebut diterima dan bisa dibaca oleh processor.

B. Rangkaian

Encoder terdiri dari beberapa input line . salah satu dari input-input tersebut diaktifkan

Pada waktu tertentu yang selanjutnya akan menghasilkan kode output N-bit rangkaian
encodermerupakan aplikasi dari gerbang or.

Sebuah priority encoder adalah rangkaian encoder yang mempunyai fungsi prioritas, operasi dari
rangkaian priority encorder adalah sebagai berikut:

Jika ada dua lebih input bernilai “1” pada saat yang sama, maka input yang mempunyai prioritas
tertinggi yang akan diambil.

2.DECORDER

A. Pengertian

22 | P a g e
Decoder adalah suatu perangkat yang berfungsi untuk mengubah bentuk sinyal biner menjadi
decimal. Decoder adalah lawan dari encoder, fungsinya mengubah input binary menjadi output
desimal, setelah processor menerima data binary, maka data tersebut diteruskan ke dalam display
yang berupa monitor, LCD maupun seven segment dan membentuk tulisan desimal yang
mudah dibaca oleh manusia.

B.Rangkaian

ada beberapa macam rangkaian decoder yaitu:

-Decoder 3 x 8 (3 input dan 8 output line)


-Decoder 4 x 16

-Decoder BCD to Decimal (4 bit input dan 8 output line)


-Decoder BCD to 7 Segment (4 bit input dan 8 output line)

khusus untuk BCD to 7 segment mempunyai prinsip kerja yang berbeda dengan decoder yang
lain, dimana kombinasi dari setiap inputnya dapat mengaktifkan beberapa output line-nya (bukan
sala satu line).

MODUL 6 POK
PERPUSTAKAAN ARITMATIKA
Perpustakaan aritmatika mencakup komponen kombinasional yang melakukan operasi aritmatika
pada nilai-nilai yang disetujui dan dua pelengkap.

Adder (Penambahan)

Perpustakaan : Aritmatika

Diperkenalkan : 2.0 Beta 11

Penampilan :

Tingkah Laku

Komponen ini menambahkan dua nilai yang datang melalui input dan output barat
jumlah pada output timur. Komponen ini dirancang sehingga dapat mengalir dengan
penambah lain untuk memberikan menambah bit daripada yang mungkin dengan
penambahan tunggal: membawa input menyediakan nilai satu bit yang akan ditambahkan

23 | P a g e
ke dalam jumlah juga (bila memang ditentukan), dan sebuah melaksanakan output
memberikan nilai satu-bit meluap yang dapat diberikan kepada penambah lain.

Jika salah satu dari yang ditambahkan berisi beberapa bit mengambang atau
beberapa kesalahan bit, maka komponen akan melakukan penambahan parsial. Artinya, ia
akan menghitung sebanyak bit urutan rendah yang mungkin. Tetapi di atas mengambang
atau kesalahan bit , hasilnya akan memiliki mengambang atau kesalahan bit.

Letak

1. Tepi barat, ujung utara (input, lebar bit sesuai dengan atribut Data Bit)
Salah dari dua nilai untuk menambahkan.
2. Tepi barat, ujung selatan (input, lebar bit sesuai dengan atribut Data Bit)
Yang lain dari dua nilai untuk menambahkan.
3. Tepi utara, berlabel c di (input, lebar bit 1)
Membawa nilai untuk menambahkan ke dalam jumlah. Jika nilai tidak diketahui (yaitu,
mengambang), maka diasumsikan menjadi 0.
4. Tepi timur (output, lebar bit sesuai dengan atribut Data bit)
Semakin rendah Bit dataBits dari jumlah dua nilai yang datang di tepi barat, ditambah
bit cin.
5. Tepi selatan, berlabel c keluar (output, lebar bit 1)
Membawa bit dihitung untuk jumlah. nilai-nilai yang ditambahkan bersama-sama
sebagai nilai-nilai yang disetujui menghasilkan hasil yang sesuai ke dalam bit dataBits,
maka bit ini akan menjadi 0; Jika tidak, itu akan menjadi

Atribut

Ketika komponen yang telah dipilih atau ditambahkan, Alt-0 melalui Alt-9
mengubahnya Data bit atribut.

Data Bits

Lebar bit dari nilai-nilai yang akan ditambahkan dan hasilnya.

Perilaku Poke Tool

24 | P a g e
Tidak ada.

Perilaku Text Tool

Tidak ada.

Subtractor (Pengurangan)

Perpustakaan : Aritmatika

Diperkenalkan : 2.0 Beta 11

Penampilan :

Tingkah Laku

Komponen ini mengurangi nilai-nilai yang datang melalui input barat (bagian atas
minus bawah) dan output perbedaan pada output timur. Komponen ini dirancang sehingga
dapat mengalir dengan pengurangan lainnya untuk menyediakan mengurangi lebih banyak
bit daripada yang mungkin dengan pengurang tunggal: input pinjaman menyediakan nilai
satu-bit yang dipinjam dari perbedaan (jika meminjam-dalam input ditentukan), dan output
output pinjaman menunjukkan apakah komponen perlu meminjam bit urutan atas untuk
menyelesaikan pengurangan tanpa underflow (dengan asumsi disetujui pengurangan).

Secara internal, pengurang hanya melakukan bitwise NOT pada pengurang, dan
menambahkan ini ke minuend bersama dengan NOT dari pinjam-input. (Minuend adalah
operan pertama (input atas) untuk pengurangan, dan pengurang adalah yang kedua (input
rendah). Kebetulan saya suka istilah kuno.)

Jika salah satu operan berisi beberapa bit mengambang atau beberapa kesalahan
bit , maka komponen akan melakukan pengurangan parsial. Artinya, ia akan menghitung
sebanyakurutan terendah bit mungkin. Tetapi di atas sedikit mengambang atau kesalahan,
hasilnya akan memiliki mengambang atau kesalahan bit.

25 | P a g e
Letak

1. Tepi barat, ujung utara (input, lebar bit sesuai atribut Data Bit)
Minuend pengurangan tersebut; yaitu, jumlah dari yang untuk mengurangi.
2. Tepi barat, ujung selatan (input, lebar bit sesuai dengan atribut Data Bit)
Pengurang pengurangan tersebut; yaitu, nomor untuk mengurangi dari minuend
tersebut.
3. Tepi utara, berlabel b di (input, lebar bit 1)
Jika 1, kemudian 1 dipinjam dari perbedaan. Jika nilai tidak diketahui (yaitu,
mengambang), maka diasumsikan 0.
4. Tepi timur (output, lebar bit sesuai dengan atribut Data Bit)
Semakin rendah bit databits perbedaan dari dua nilai yang datang di tepi barat, minus
bit bin.
5. Tepi selatan, berlabel b keluar (output, lebar bit 1)
Borrow bit dihitung untuk perbedaan. Jika nilai dikurangi nilai-nilai yang disetujui
menghasilkan nilai negatif, maka bit ini akan menjadi 1; jika tidak, maka akan 0.

Atribut

Ketika komponen telah dipilih atau ditambahkan, Alt-0 melalui Alt-9 mengubah
nya atribut data Bit.

Data Bits

Lebar bit dari nilai-nilai yang akan dikurangi dan hasilnya.

Perilaku Poke Tool

Tidak Ada

Perilaku Text Tool

Tidak Ada.

26 | P a g e
Multiplier (Pengganda)

Perpustakaan : Aritmatika

Diperkenalkan : 2.0 Beta 20

Penampilan :

Tingkah Laku

Komponen ini mengalikan dua nilai yang datang melalui input barat dan output
produk pada output timur. Komponen ini dirancang sehingga dapat mengalir dengan
pengganda lainnya untuk memperbanyak multiplicand dengan lebih bit daripada yang
mungkin dengan pengganda tunggal: bawa input memberikan nilai multi-bit yang akan
ditambahkan ke dalam produk (jika ditentukan ), dan output membawa memberikan
setengah bagian atas hasil produk, yang dapat dimasukkan ke multiplier lain.

Jika multiplicand, multiplier, atau membawa input berisi beberapa bit


mengambang atau beberapa kesalahan bit, maka komponen akan melakukan perkalian
parsial. Artinya, ia akan menghitung sebanyak urutan terendah bit mungkin. Tetapi di atas
bit mengambang atau kesalahan, hasilnya akan memiliki mengambang atau kesalahan bit.
Perhatikan bahwa jika membawa input benar-benar mengambang, maka akan dianggap nol
semua.

Letak

1. Tepi barat, ujung utara (input, lebar bit sesuai dengan Bit Data atribut)

The multiplicand (yaitu, pertama dari dua angka untuk memperbanyak).

2. Tepi barat, ujung selatan (input, lebar bit sesuai dengan Bit Data atribut)

Multiplier (yaitu, kedua dari dua angka untuk memperbanyak).

3. Tepi utara, berlabel c di (input, lebar bit sesuai dengan Bit Data atribut)

Nilai membawa untuk menambahkan ke dalam produk. Jika semua bit nilai tidak
diketahui (yaitu, mengambang), maka mereka dianggap 0.
27 | P a g e
4. Tepi timur (output, lebar bit sesuai dengan Bit Data atribut)

Semakin rendah bit databits produk dari dua nilai yang datang di tepi barat, ditambah
nilai cin.

5. Tepi selatan, berlabel c keluar (output, lebar bit sesuai dengan Bit Data atribut)
Para databits bit atas produk.

Atribut

Ketika komponen telah dipilih atau ditambahkan, Alt-0 melalui Alt-9 mengubahnya
atribut Data Bit.

Data Bits

Lebar bit dari nilai-nilai yang akan dikalikan dan hasilnya.

Perilaku Poke Tool

Tidak ada.

Perilaku Text Tool

Tidak ada.

Divider (Pembagi)

Perpustakaan : Aritmatika

Diperkenalkan : 2.0 Beta 22

Penampilan :

Tingkah Laku

Komponen ini membagi dua nilai yang datang melalui input barat dan output hasil
bagi pada output timur. Komponen ini dirancang sehingga dapat mengalir dengan pembagi
lain untuk memberikan dukungan dividen dengan lebih bit daripada yang mungkin dengan
28 | P a g e
pembagi tunggal: Input atas memberikan databits bit atas dividen (jika ditentukan sama
sekali), dan bit rem memberikan sisa, yang dapat diberi makan sebagai input atas ke
pembagi lain.

Jika pembagi adalah 0, maka tidak ada pembagian dilakukan (yaitu, pembagi
diasumsikan 1).

Pembagi dasarnya melakukan pembagian yang disetujui. Artinya, sisanya akan


selalu berada di antara 0 dan 1-pembagi. Hasil bagi akan selalu integer sehingga
Hasil bagi* pembagi + sisa = dividen.
Namun, jika hasil bagi tidak sesuai menjadi data Bits bit, maka hanya lebih
rendah databits bit akan dilaporkan. Komponen tidak menyediakan metode apapun untuk
mengakses atas databits bit.

Jika salah satu operan berisi beberapa bit mengambang atau beberapa kesalahan
bit, maka output komponen akan baik seluruhnya atau seluruhnya mengambang nilai
kesalahan.

Letak

1. Tepi Barat, ujung Utara (input, lebar bit sesuai dengan atribut Data bit)

Bit dataBits lebih rendah dari dividen (yaitu operan pertama untuk divisi).

2. Tepi Barat, ujung Selatan (input, lebar bit sesuai dengan atribut Data bit)
Pembagi (yaitu operan kedua untuk divisi)
3. Tepi utara, berlabel atas (input, lebar bit sesuai dengan atribut Data bit)
Bit dataBits atas dividen (yaitu operan pertama untuk divisi).
4. Tepi timur (Output, lebar bit sesuai dengan atribut Data bit)
Lebih rendah dataBits bit dari kecerdasan, sebagaimana ditentukan di atas.
5. Tepi selatan, berlabel rem (Output, lebar bit sesuai dengan atribut Data bit)
Sisa dari pembagian. Nilai ini akan selalu menjadi antara 0 dan pembagi-

Atribut

29 | P a g e
Ketika komponen telah dipilih atau ditambahkan, Alt-0 melalui Alt-9 mengubahnya
atribut "Data Bits" atribut.

Data Bit

Lebar bit dari nilai-nilai yang akan dibagi dan hasilnya.

Perilaku Poke Tool

Tidak ada.

Perilaku Text Tool

Tidak ada.

Negator

Perpustakaan : Aritmatika

Diperkenalkan : 2.0 Beta 22

Penampilan :

Tingkah Laku

Menghitung negasi dua komplemen dari input. Negasi ini dilakukan dengan
menjaga semua bit yang ukuran rendah hingga ukuran terendah 1, dan melengkapi semua
bit di atas itu.

Jika nilai yang akan menegasikan akan terjadi pada nilai negatif sedikit, maka
negasi (yang tidak dapat diwakili dalam bentuk two's-complement), masih nilai paling
negatif.

Letak

1. Tepi Barat (input, lebar bit sesuai dengan atribut Data bit)
Nilai untuk meniadakan.

30 | P a g e
2. Tepi timur, berlabel - x (output, lebar bit sesuai dengan atribut Data bit)
Penolakan dari input.. Jika input terjadi kurangnya nilai negatif nilai representable
dalam bit DataBits, bagaimanapun, maka output sesuai dengan input.

Atribut

Ketika komponen telah dipilih atau ditambahkan, Alt-0 melalui Alt-9 mengubahnya
Data Bits atribut ".

Data Bit

Lebar bit dari komponen input dan output.

Perilaku Poke Tool

Tidak ada.

Perilaku Text Tool

Tidak ada.

Comparator (Pembanding)

Perpustakaan : Aritmatika

Diperkenalkan : 2.0 Beta 22

Penampilan :

Tingkah Laku

Membandingkan dua nilai, baik sebagai nilai-nilai yang disetujui atau sebagai
pelengkap dua nilai, tergantung pada tipe atribut Numerik. Biasanya, salah satu output akan
menjadi 1, dan dua output lainnya akan 0.

Perbandingan dilakukan mulai dari bit yang paling signifikan dalam setiap nomor
dan turun ke bawah secara paralel sampai lokasi ditemukan di mana dua nilai tidak setuju.

31 | P a g e
Namun, jika nilai yang salah atau nilai mengambang ditemui selama keturunan ini, maka
semua output akan sesuai bahwa kesalahan atau mengambang nilai.

Letak

1. Tepi Barat, ujung utara (input, lebar bit sesuai dengan atribut Data bit)
Pertama dari dua nilai dapat dibandingkan
2. Tepi Barat, ujung selatan (input, lebar bit sesuai dengan atribut Data bit)
Kedua dari dua nilai dapat dibandingkan.
3. Tepi timur, berlabel > (output, lebar bit 1)
1 jika input yang pertama adalah lebih besar dari input yang kedua, 0 jika input yang
pertama adalah kurang dari atau sama dengan input yang kedua.
4. Tepi timur, berlabel = (output, lebar bit 1)
1 jika input pertama yang sama dengan input kedua, 0 jika input pertama tidak sama
input yang kedua.
5. Tepi timur, berlabel < (output, lebar bit 1)
1 jika input yang pertama adalah kurang dari input yang kedua, 0 jika input yang
pertama adalah lebih dari atau sama dengan input yang kedua.

Atribut

Ketika komponen telah dipilih atau ditambahkan, Alt-0 melalui Alt-9 mengubahnya
atribut Data Bit.

Data Bits

Lebar bit dari komponen-komponen input.

Perilaku Poke Tool

Tidak Ada

Perilaku Text Tool

Tidak Ada

32 | P a g e
MODUL 7 POK

MEMORY : REGISTER , COUNTER , RANDOM

Register

Perpustakaan : Memory

Diperkenalkan : 2.0 Beta 1

Penampilan :

Tindakan

Register menyimpan nilai multi-bit tunggal, yang ditampilkan dalam heksadesimal dalam persegi
panjang, serta dipancarkan pada output Q-nya. Ketika input jam (ditunjukkan dengan segitiga di
tepi selatan) menunjukkan demikian, nilai yang disimpan dalam perubahan mendaftar dengan
nilai input D pada saat itu. Tepat ketika input jam menunjukkan ini terjadi dikonfigurasi melalui
atribut Trigger.

Reset masukan ulang nilai register untuk 0 (nol semua) asynchronous; yaitu, selama reset 1, nilai
tersebut ditempelkan ke 0, terlepas dari input jam.

Pins

Tepi timur, berlabel Q (output, lebar bit cocok Bit Data atribut)

33 | P a g e
Output nilai saat ini disimpan oleh register.

Tepi barat, berlabel D (input, lebar bit cocok Bit Data atribut)

Data masukan: Pada saat itu nilai jam naik dari 0 ke 1, nilai perubahan register
terhadap nilai input D pada saat itu.

Barat tepi, berlabel en (input, bit lebar 1)

Aktifkan: Saat ini 0, pemicu jam diabaikan. Nilai saat ini terus muncul pada output.
Pemicu jam diaktifkan ketika input ini adalah 1 atau terdefinisi.

Tepi selatan, ditandai dengan segitiga (input, bit lebar 1)

Masukan Jam: Pada saat itu nilai masukan ini naik dari 0 ke 1 (tepi terbit), nilai register
akan diperbarui dengan nilai input D.

Tepi selatan, berlabel 0 (input, bit lebar 1)

Asynchronous ulang: Ketika 0 atau undefined, masukan ini tidak berpengaruh. Selama
itu adalah 1, nilai register yang ditempelkan ke 0. Hal ini terjadi asynchronously - yaitu, tanpa
memperhatikan arus nilai jam masukan. Selama ini 1, input lain tidak berpengaruh.

Atribut

Ketika komponen dipilih atau ditambahkan, Alt-0 melalui Alt-9 mengubah nya Bit Data atribut.

Data Bits

Lebar bit dari nilai yang disimpan dalam register.

Pelatuk

Mengkonfigurasi bagaimana input jam ditafsirkan. Nilai meningkat tajam menunjukkan


bahwa register harus memperbarui nilainya di instan ketika jam naik dari 0 sampai 1.
turunnya nilai tepi menunjukkan bahwa itu harus memperbarui pada saat yang jam turun
dari 1 ke 0. Nilai tingkat tinggi menunjukkan bahwa register harus memperbarui terus

34 | P a g e
menerus setiap kali jam input 1. Dan nilai tingkat rendah menunjukkan bahwa itu harus
memperbarui terus menerus ketika jam masukan adalah 0.

Label

Teks dalam label yang berhubungan dengan register.

Label Font

Font yang dapat digunakan untuk membuat label.

Aturan Pemakaian

Mengklik register membawa fokus keyboard ke register (ditandai dengan kotak merah), dan
mengetik digit heksadesimal akan mengubah nilai yang disimpan dalam register.

Aturan Teks

Memungkinkan label yang terkait dengan komponen yang akan diedit.

Counter

Perpustakaan : Memory
Perkenalan : 2.3.0
Penampilan :

Tindakan
Counter memegang nilai tunggal, yang nilainya diemisikan pada output Q. Setiap kali clock
input (digambarkan pada diagram dengan segitiga di selatan tepi komponen) memicu
berdasarkan atribut Pemicu nya, nilai dalam counter dapat memperbarui berdasarkan dua input di
sebelah barat tepi komponen: Input berada lebih tinggi dinamakan load dan lebih rendah disebut
count.

35 | P a g e
Jangkauan penghitungan dapat dikonfigurasi dengan menggunakan maksimum nilai atribut.
Ketika counter mencapai nilai ini, kenaikan berikutnya membungkus counter kembali ke 0; dan
jika itu pada 0, maka penurunan akan membungkus counter ke sekitar nilai maksimumnya.

Selain output Q, komponen ini juga termasuk single-bit output carry. Setiap satu kali counter
adalah maksimum dan beban jumlah input menunjukkan bahwa komponen harus menaik pada
langkah berikutnya - atau ketika counter adalah 0 dan beban dan menghitung input menunjukkan
kepada pengurangan pada langkah berikutnya.

Input yang jelas me-reset nilai counter menjadi 0 (nol semua). Yaitu, selama input CLR adalah
1, nilai tersebut ditempelkan ke 0, terlepas dari input jam.

Shift Register

Perpustakaan : Memory
Perkenalan : 2.3.0
Penampilan :

Register ini terdiri dari beberapa tahap, dimana setiap jam dapat menyebabkan setiap tahap
menerima nilai pada tahap sebelumnya, sedangkan nilai baru dimuat ke tahap pertama.
Komponen opsional juga mendukung beban paralel dan toko untuk nilai semua tahap '.

Input yang jelas ulang semua tahapan ke 0 (nol semua) asynchronous; yaitu, selama masukan
jelas adalah 1, semua nilai yang disematkan ke 0, terlepas dari input jam.
Pins

* Tanda bintang menandai pin yang ada hanya ketika Paralel Beban atribut diaktifkan.

Tepi barat, pin top (input, bit lebar 1)


Shift: Ketika 1 atau terputus, semua tahap maju dengan jam pemicu; tetapi jika itu adalah 0,
tidak ada muka berlangsung. Masukan ini diabaikan jika input beban adalah 1.
Tepi barat, pin tengah (input, lebar bit cocok Bit Data atribut)
Data: Ketika memajukan tahap, nilai yang ditemukan di masukan ini dimuat ke tahap pertama.
Barat tepi, pin bawah ditandai dengan segitiga (input, bit lebar 1)
Jam: Pada saat itu ini dipicu sebagaimana ditentukan oleh atribut Trigger, komponen dapat
memajukan tahapan atau memuat nilai-nilai baru.
* Tepi Utara, pin kiri (input, bit lebar 1)
36 | P a g e
Beban: Bila 1 ini, nilai-nilai yang ditemukan di sisi lain pin utara-tepi dimuat ke dalam semua
tahapan di pemicu jam berikutnya. Ketika 0 atau terputus, tidak ada beban terjadi.
* Tepi Utara, pin lainnya (input, lebar bit cocok Bit Data atribut)
Data: Nilai-nilai ini dimuat ke semua tahapan ketika jam dipicu sementara input beban 1.
paling kiri masukan sesuai dengan tahap termuda.
Tepi selatan, pin kiri (input, bit lebar 1)
Jelas: Ketika ini adalah 1, semua tahapan yang asynchronous reset ke 0, dan semua masukan
lain diabaikan.
* Tepi Selatan, pin lainnya (output, lebar bit cocok Bit Data atribut)
Output: memancarkan nilai yang disimpan dalam setiap tahap, dengan tahap termuda
tercermin pada paling kiri pin (sebelah input yang jelas).
Tepi timur (output, lebar bit cocok Bit Data atribut)
Output: memancarkan nilai yang disimpan di final (tertua) tahap.

Atribut
Ketika komponen dipilih atau ditambahkan, mengubah angka '0' melalui '9' Jumlah nya Tahapan
atribut dan Alt-0 melalui Alt-9 mengubah nya Bit Data atribut.

Data Bits : Lebar bit dari nilai yang disimpan dalam setiap tahap.

Jumlah Tahapan : Jumlah tahap yang termasuk dalam komponen.

Beban paralel : Jika ya, maka komponen termasuk input dan output memfasilitasi akses
sejajar dengan nilai-nilai semua tahapan '.

Pelatuk : Mengkonfigurasi bagaimana input jam ditafsirkan. Nilai meningkat


tajam menunjukkan bahwa register harus memperbarui nilainya di instan
ketika jam naik dari 0 sampai 1. turunnya nilai tepi menunjukkan bahwa
itu harus memperbarui pada saat yang jam jatuh 1-0.

Label : Teks dalam label yang berhubungan dengan komponen.

Label Font : Font yang dapat digunakan untuk membuat label.

Random

Library: Memory
Introduced: 2.3.0

37 | P a g e
Appearance:

Tindakan

Komponen ini beriterasi urutan pseudorandom nomor, yang melangkah maju ke nomor berikut
secara berurutan setiap kali clock dipicu sementara komponen diaktifkan. Secara teknis,
algoritma yang digunakan untuk menghitung urutan pseudorandom adalah generator
congruential linear: Berawal dari r0 benih, nomor berikut r1 adalah nomor
r1 = (25214903917 r0 + 11) mod 248

Nilai r2 berikutnya dihitung dari r1 menggunakan perhitungan yang sama, dan sebagainya.
Urutan ini adalah angka 48-bit; nilai dilihat dari komponen adalah bit low-order sebagai
dikonfigurasi oleh perusahaan Bit Data atribut, setelah pertama kali membuang lebih rendah 12
bit benih saat ini.

Selain jam masukan, komponen ini juga mencakup mengaktifkan masukan, yang mengarah input
jam untuk diabaikan ketika memungkinkan adalah 0, dan masukan reset, yang me-reset nilai
komponen asynchronous ke r0 benih awal.

Benih awal adalah dikonfigurasi pengguna. Jika dikonfigurasi pada 0 (yang merupakan default),
maka benih didasarkan pada waktu saat ini; ketika diperintahkan untuk me-reset melalui input
ulang, komponen menghitung benih baru berdasarkan waktu saat baru.
Pins

Tepi timur, berlabel Q (output, lebar bit cocok Bit Data atribut)
Output nilai saat ini disimpan oleh komponen.
Tepi barat, pin atas, diberi label dengan segitiga (input, bit lebar 1)
Jam: Pada instan ini dipicu sebagaimana ditentukan oleh atribut Trigger, langkah-langkah
komponen ke nomor berikut dalam urutan tersebut.
Tepi barat, pin bawah (input, bit lebar 1)
Aktifkan: Komponen diaktifkan ketika input ini terputus atau 1; tetapi jika itu adalah 0, maka
input jam diabaikan.
Tepi selatan (input, bit lebar 1)
Reset: Bila ini adalah 1, urutan pseudorandom asynchronous ulang pada benih awal. (Jika
bibit 0, benih baru ini harus berbeda dari benih awal yang digunakan sebelumnya.)

38 | P a g e
Atribut

Ketika komponen dipilih atau ditambahkan , Alt - 0 melalui Alt - 9 mengubah nya "Data Bits "
atribut .

Data Bits
Lebar bit dari nilai yang dipancarkan oleh komponen .
benih
Nilai awal yang digunakan untuk urutan pseudorandom . Jika ini adalah 0 ( default ) , maka
nilai awal didasarkan pada saat itu urutan acak dimulai .
pelatuk
Mengkonfigurasi bagaimana input jam ditafsirkan . Nilai " meningkat tajam " menunjukkan
bahwa komponen harus memperbarui nilainya di instan ketika jam naik dari 0 sampai 1. " jatuh
tepi " nilai menunjukkan bahwa itu harus memperbarui pada saat yang jam jatuh 1-0 .
label
Teks dalam label yang berhubungan dengan komponen .
label Font
Font yang dapat digunakan untuk membuat label .

Aturan Pemakaian
Tidak ada .

Aturan Teks

Memungkinkan label yang terkait dengan komponen yang akan diedit .

MODUL 8 POK

MEMORY : RAM & ROM

RAM

Library: Memory
Introduced: 2.0 Beta 1
Appearance:

39 | P a g e
Tindakan

Komponen RAM, komponen yang paling kompleks di Logisim built-in , di toko hingga
16.777.216 nilai (ditentukan dalam Alamat Bit Lebar atribut), yang masing-masing dapat
mencakup hingga 32 bit (ditentukan dalam data Bit Lebar atribut) . Sirkuit yang dapat memuat
dan menyimpan nilai-nilai dalam RAM. Selain itu, pengguna dapat memodifikasi nilai-nilai
individu secara interaktif melalui Alat Poke, atau pengguna dapat memodifikasi seluruh isi
melalui Menu Tool.
Nilai saat ini ditampilkan dalam komponen tersebut. Alamat ditampilkan tercantum dalam abu-
abu di sebelah kiri area layar. Di dalam, setiap nilai terdaftar menggunakan heksadesimal. Nilai
pada alamat yang dipilih saat ini akan ditampilkan dalam teks terbalik (hitam putih).
Komponen RAM mendukung tiga antarmuka yang berbeda, tergantung pada atribut Data
Interface.
Satu beban sinkron / toko port (default)
Komponen ini mencakup port tunggal di sisi timurnya yang berfungsi baik untuk memuat dan
menyimpan data. Yang ia melakukan tergantung pada input berlabel ld: 1 (atau mengambang)
menunjukkan untuk memuat data di alamat yang ditunjuk di sisi barat komponen, dan 0
menunjukkan untuk menyimpan data yang diberikan pada port. Untuk mengirimkan data ke
dalam dan keluar dari komponen, Anda akan perlu menggunakan komponen Buffer Terkendali,
seperti yang digambarkan di bawah ini.

Satu beban asynchronous pelabuhan / toko


Ini adalah sama seperti di atas , kecuali bahwa tidak ada jam . Nilai yang ditemukan pada bus
data disimpan ke dalam memori setiap kali input ld 0. Jika , sedangkan masukan ld 0 , alamat
atau data perubahan , maka sebuah toko tambahan terjadi . Pilihan ini dimaksudkan untuk lebih
dekat mendekati antarmuka banyak tersedia kenangan random-access .
Beban dan toko port terpisah
Dua port data yang disediakan - satu di sisi barat untuk menyimpan data , dan lain di sisi timur
untuk loading data . Pilihan ini menghilangkan kebutuhan berurusan dengan Buffer Terkendali
dan sehingga lebih mudah untuk digunakan .

Letak Kaki Ram (PINS)


A di tepi barat (input, lebar bit cocok Alamat Bit atribut Lebar)
40 | P a g e
Memilih yang nilai-nilai dalam memori saat ini sedang diakses oleh sirkuit.
D di tepi barat (input, lebar bit data sesuai Bit atribut Lebar)
Masukan ini hadir hanya jika "beban dan toko port terpisah" dipilih untuk atribut Data Interface.
Ketika toko diminta (melalui jam berubah dari 0 ke 1 sedangkan sel dan str keduanya 1 atau
mengambang), nilai yang ditemukan di pelabuhan ini disimpan ke dalam memori pada alamat
yang sedang dipilih.
D di tepi timur (input / output atau output, lebar bit data sesuai Bit atribut Lebar)
Jika sel dan ld adalah 1 atau mengambang, maka komponen RAM memancarkan nilai yang
ditemukan di alamat saat ini dipilih pada port ini. Jika ada port beban / toko tunggal, nilai dibaca
dari port ini disimpan setiap kali toko diminta.
str di tepi selatan (input, bit lebar 1)
Store: Masukan ini hadir hanya jika "beban dan toko port terpisah" dipilih untuk atribut Data
Interface. Ketika itu adalah 1 atau mengambang, pulsa clock akan menghasilkan menyimpan
data yang ditemukan di tepi barat ke dalam memori (asalkan masukan sel juga 1 atau
mengambang).
sel di tepi selatan (input, bit lebar 1)
Chip pilih: masukan ini mengaktifkan atau menonaktifkan seluruh modul RAM, berdasarkan
apakah nilainya 1 / mengambang atau 0. masukan ini dimaksudkan terutama untuk situasi di
mana Anda memiliki beberapa unit RAM, hanya satu yang akan diaktifkan setiap saat.
segitiga di tepi selatan (input, bit lebar 1)
Input Jam: Ini adalah absen saat nilai atribut Data Interface adalah "Satu asynchronous
pelabuhan load / store." Dalam keadaan lain, ketika ld 0, dan masukan ini naik dari 0 ke 1 (dan
sel adalah 1 / terdefinisi dan CLR adalah 0), maka nilai pada perubahan alamat saat ini dipilih
untuk nilai apa pun adalah pada pin D. Selama jam masukan tetap 0 atau 1, meskipun, nilai D
tidak akan disimpan ke dalam memori.
ld di tepi selatan (input, bit lebar 1)
Beban: Memilih apakah RAM harus memancarkan (D) nilai di alamat saat ini (A). Perilaku
Output ini diaktifkan jika keluar adalah 1 atau terdefinisi; jika keluar adalah 0, maka tidak ada
nilai yang didorong ke D - tetapi jika ada port load / store gabungan, toko akan diaktifkan.
CLR di tepi selatan (input, bit lebar 1)
Jelas: Ketika ini adalah 1, semua nilai dalam memori yang disematkan ke 0, tidak peduli apa
input lain.

Ciri-Ciri
Ketika komponen dipilih atau ditambahkan , mengubah angka ' 0 ' melalui ' 9 ' atribut Alamat Bit
Lebar dan Alt - 0 melalui Alt - 9 mengubah nya data Bit Lebar atribut .
Alamat Bit Lebar
Lebar bit bit alamat . Jumlah nilai yang disimpan dalam RAM adalah 2addrBitWidth .
Data Bit Lebar
Lebar sedikit setiap nilai individu dalam memori .
Data Interface
Mengkonfigurasi mana dari tiga interface yang digunakan untuk komunikasi data ke dalam dan
keluar dari komponen .

41 | P a g e
ROM

Library: Memory
Introduced: 2.1.0
Appearance:

Tindakan
komponen ROM hingga 16,777,216 nilai (ditentukandalamAlamat Bit Lebaratribut), yang
masing-masingdapatmencakuphingga 32 bit (ditentukandalam Data Bit Lebaratribut).
Sebuahsirkuitdapatmengaksesnilai-nilaisaatini di ROM,
tetapitidakdapatmengubahnya.Penggunadapatmemodifikasinilai-
nilaiindividusecarainteraktifmelaluiAlat Poke, ataupenggunadapatmemodifikasiseluruhisimelalui
Menu Tool.
Berbedadengankomponen RAM, komponenisi ROM
saatinidisimpansebagaiatributdarikomponen. Dengandemikian, jikasirkuitmengandungkomponen
ROM digunakandua kali, makakeduakomponen ROM akanmenampungnilai yang sama.
karenakegiatanini, isi ROM saatinidisimpandalam file yang dibuatolehLogisim.
Nilaisaatiniditampilkandalamkomponentersebut.Alamatditampilkantercantumdalamabu-abu di
sebelahkiri area layar.Di dalam, setiapnilaiterdaftarmenggunakanheksadesimal.Nilaipadaalamat
yang dipilihsaatiniakanditampilkandalamteksterbalik (hitamputih).

Pins
A di tepibarat (input, lebar bit cocokAlamat Bit atributLebar)
Memilihmanadarinilaisaatinisedangdiaksesolehsirkuit.
D di tepitimur (input / output, lebar bit data sesuai Bit atributLebar)
Output nilaipadaalamat yang dipilihsaatini di pin D jikaseladalah 1
ataumengambang.Jikaseladalah 0, maka D akanmengambang.
sel di tepiselatan (input, bit lebar 1)
JikaAndahanyamemilikisatumodul ROM,
mengabaikanmasukanini.JikaAndamemilikibeberapamodul ROM secaraparalel,
Andadapatmenggunakan input iniuntukmengaktifkanataumenonaktifkanseluruhmodul ROM,

42 | P a g e
berdasarkanapakahnilainya 1 atau 0. Dengan kata lain, ketikahaliniadalah 0, tidakadanilai yang
dipancarkanpada output D .
Atribut
Ketikakomponendipilihatauditambahkan, mengubahangka '0' melalui '9' atributAlamat Bit
Lebardan Alt-0 melalui Alt-9 mengubahnya data Bit Lebaratribut.
Alamat Bit Lebar
Lebar bit bitalamat. Jumlahnilai yang disimpandalam ROM adalah 2addrBitWidth.
Data Bit Lebar
Lebarsedikitsetiapnilaiindividudalammemori.
Isi
Menyimpanisimemori.
Tinjauan Prilaku Alat
Poking Memory

Anda dapat memanipulasi isi memori dengan menggunakan Alat Poke, tetapi antarmuka untuk
ini sangat terbatas oleh kendala ruang: Selama lebih dari editing sederhana, Anda mungkin akan
menemukan hex editor yang terintegrasi jauh lebih nyaman.

Meskipun demikian, untuk melihat dan mengedit nilai-nilai dalam sirkuit, Tool Poke memiliki
dua mode operasi: Anda dapat mengedit alamat yang ditampilkan, dan Anda dapat mengedit
nilai individu.

Untuk mengedit alamat yang ditampilkan, klik di luar persegi panjang display.Logisim akan
menggambar persegi panjang merah di sekitar alamat atas.

• Mengetik digit heksadesimal akan mengubah alamat atas sesuai.


• Mengetik tombol Enter akan gulir ke bawah satu baris.
• Mengetik tombol Backspace akan gulir ke atas satu baris.
• Mengetik spasi akan gulir ke bawah satu halaman (empat baris).

Untuk mengedit nilai tertentu, klik nilai dalam persegi panjang display.Logisim akan
menggambar persegi panjang merah di sekitar alamat tersebut.

• Mengetik digit heksadesimal akan mengubah nilai di alamat saat ini sedang diedit.
• Mengetik tombol Enter akan pindah ke mengedit nilai di bawah itu di layar (bawah satu
baris).
• Mengetik tombol Backspace akan pindah ke mengedit nilai di alamat sebelumnya.
• Mengetik spasi akan pindah ke mengedit nilai di alamat berikut.

43 | P a g e
Menu Tool Behavior
Tidak ada

Pop-up menu dan file

Menu pop-up untuk memori termasuk empat pilihan selain pilihan umum untuk semua
komponen:

• Mengedit Isi: Memunculkan hex editor untuk mengedit isi memori.


• Jelas Isi: Mengatur ulang semua nilai dalam memori untuk 0.
• Beban Gambar ...: Mengatur ulang semua nilai dalam memori berdasarkan nilai-nilai
yang ditemukan dalam file menggunakan format yang dijelaskan di bawah.
• Simpan Gambar ...: Menyimpan semua nilai dalam memori ke file menggunakan format
yang dijelaskan di bawah ini.

Format file yang digunakan untuk file gambar sengaja sederhana; ini memungkinkan Anda untuk
menulis sebuah program, seperti assembler, yang menghasilkan gambar memori yang kemudian
dapat dimuat ke memori. Sebagai contoh format file ini, jika kita memiliki memori 256-byte
yang pertama lima byte adalah 2, 3, 0, 20, dan -1, dan semua nilai berikutnya adalah 0, maka
gambar akan menjadi file teks berikut.

v2.0 baku
02
03
00
14
ff

Baris pertama mengidentifikasi format file yang digunakan (saat ini, hanya ada satu format file
yang diakui). Nilai berikutnya daftar nilai dalam heksadesimal, mulai dari alamat 0; Anda dapat
menempatkan beberapa nilai-nilai tersebut pada baris yang sama. Jika ada lokasi memori lebih
dari yang diidentifikasi dalam file, Logisim akan memuat 0 ke lokasi memori lainnya.

File gambar dapat menggunakan run-length encoding; misalnya, daripada daftar nilai 00 enam
belas kali berturut-turut, file dapat mencakup 16 * 00. Perhatikan dari jumlah pengulangan
ditulis dalam basis 10. File yang dihasilkan oleh Logisim akan menggunakan run-length
encoding untuk berjalan setidaknya empat nilai.

Anda dapat menempatkan komentar ke dalam file dengan menggunakan '#' simbol: Semua
karakter di baris mulai dari simbol '#' akan diabaikan oleh Logisim.

44 | P a g e
MODUL 9 POK

INPUT OUTPUT : PIN , BUTTON , JOYSTICK

1.Button
Library: Input/Output
Introduced: 2.1.3
Appearance:
Keluaran 0 biasanya; Tapi saat pengguna menekan tombol menggunakan Poke Tool, hasilnya
adalah 1.
Pin

Sebuah tombol hanya memiliki satu pin, output 1-bit, yaitu 0 kecuali bila pengguna menekan
tombol menggunakan Poke Tool, bila sudah 1
Atribut
Facing
Lokasi pin output relatif terhadap komponen.
Warna
Warna untuk menampilkan tombolnya.
Label
Teks dalam label yang terkait dengan komponen.
Beri label lokasi
Lokasi label relatif terhadap komponen.
Label Font
Font yang digunakan untuk membuat label.
Warna label
Warna yang digunakan untuk menggambar label.

Poke Tool Behavior

Saat tombol mouse ditekan, output komponennya adalah 1. Setelah melepaskan tombol mouse,
output akan kembali ke 0.
Perilaku Alat Teks

Mengizinkan label yang terkait dengan komponen yang akan diedit.

45 | P a g e
2. Joystick
Library: Input/Output
Introduced: 2.2.0
Appearance:

Tingkah laku

Pengguna dapat menarik tombol merah di dalam area persegi bulat, dan keluaran diperbarui
untuk menunjukkan koordinat x dan y tombol saat ini. Ini dimaksudkan untuk meniru joysticks
yang diketahui dari zaman game arcade klasik.
Pin

Tepi barat, pin utara (output, bit width cocok dengan atribut Bit Width)
Menunjukkan koordinat tombol knob, untuk ditafsirkan sebagai unsigned integer yang
nilainya tidak akan menjadi 0. Dengan demikian, nilai 1 mewakili yang paling kiri, dan nilai
maksimum untuk lebar bit menunjukkan paling kanan. Saat kenop di istirahat (di tengah),
nilainya memiliki pola sedikit 10 ... 00.
Tepi barat, pin selatan (output, bit width cocok dengan atribut Bit Width)
Menunjukkan koordinat tombol knob, yang nilainya berkisar antara x-koordinat pin. Bila
kenop ditarik ke atas, nilai keluaran ini adalah 1, dan saat kenop ditarik ke bagian bawah,
outputnya adalah nilai maksimum untuk lebar bit yang dipilih.

Atribut

Lebar Bit
Jumlah bit yang digunakan untuk menunjukkan masing-masing koordinat tombol.
Warna
Warna kenop seperti yang digambar di layar.

Poke Tool Behavior

Menekan tombol mouse saat berada di dalam area joystick menggerakkan kenop ke lokasi
tersebut dan memperbarui hasilnya. Menyeret mouse terus menggerakkan kenop dan
memperbarui keluaran, menjaga tombol di dalam area joystick. Melepaskan tombol mouse akan
mengembalikan tombol ke posisi semula.

Perilaku Alat Teks


Tidak ada

46 | P a g e
3. Keyboard
Library: Input/Output
Introduced: 2.2.0
Appearance:

Tingkah laku

Komponen ini memungkinkan sirkuit membaca kunci yang diketik dari keyboard - selama kunci
dapat diwakili dalam kode ASCII 7-bit. Setelah mengklik komponen menggunakan alat poke,
pengguna bisa mengetikkan karakter, yang terakumulasi dalam buffer. Setiap saat, nilai ASCII
untuk karakter paling kiri dalam buffer dikirim keluar dari hasil paling kanan. Bila input jam
dipicu, karakter paling kiri menghilang dari buffer dan karakter paling kiri baru dikirim pada
hasil paling kanan.

Karakter yang didukung untuk buffer mencakup semua karakter ASCII yang dapat dicetak, serta
spasi, newline, backspace, dan control-L. Selain itu, tombol panah kiri dan kanan akan
memindahkan kursor ke dalam buffer, dan tombol hapus akan menghapus karakter di sebelah
kanan kursor (jika ada).

Komponennya asinkron dalam arti bahwa ketika buffer kosong dan tipe pengguna karakter,
karakter itu dikirim segera sebagai output, tanpa menunggu pulsa jam.
Pin

Tepi barat, ditandai dengan segitiga (input, bit width 1)


Jam - saat dipicu saat pin baca-enable tidak 0, karakter paling kiri dari buffer akan dihapus,
dan hasilnya diperbarui untuk mencerminkan status baru penyangga.
Ujung selatan, pin paling kiri (masukan, lebar bit 1)
Baca Enable - bila 1 (atau floating atau error), tepi jam akan mengkonsumsi karakter paling
kiri dari buffer. Masukan jam diabaikan saat Read Enable is 0.
Tepi selatan, pin kedua dari kiri (input, bit width 1)
Jelas - bila 1, buffer dikosongkan dan tidak menerima karakter lebih lanjut.
Ujung selatan, pin kedua dari kanan (output, bit width 1)
Tersedia - ini adalah 1 bila buffer mengandung setidaknya satu karakter dan 0 saat buffer
kosong.
Ujung selatan, pin paling kanan (output, lebar bit 7)
Data - kode ASCII 7-bit untuk karakter paling kiri dalam buffer, atau 0 jika buffer kosong.

Atribut

Panjang Buffer
Jumlah karakter yang buffer bisa tahan sekaligus.
47 | P a g e
Pelatuk
Jika nilainya adalah "Rising Edge", maka saat input jam berubah dari 0 menjadi 1, karakter
paling kiri akan habis (bila diaktifkan oleh input Read Enable). Jika "Falling Edge", maka hal ini
terjadi bila input clock berubah dari 1 menjadi 0.

Poke Tool Behavior

Menekan tombol mouse ke komponen memberi fokus pada keyboard ke komponennya, dan
kursor bar vertikal akan ditampilkan.

Setiap karakter yang diketik kemudian akan dimasukkan ke dalam buffer, selama buffer belum
mencapai kapasitasnya dan karakternya adalah salah satu komponen yang didukung oleh
komponen: karakter yang dapat dicetak dalam kode ASCII 7-bit, serta ruang, Backspace,
newline, dan control-L. Selain itu, pengguna dapat mengetikkan panah kiri dan panah kanan
untuk mengubah lokasi kursor di dalam buffer, dan pengguna dapat mengetikkan tombol hapus
untuk menghapus karakter penyangga (jika ada) tepat di sebelah kanan kursor. .

Perilaku Alat Teks


Tidak ada

4.PINLED
Library: Input/Output
Introduced: 2.1.3
Appearance:

Tingkah laku

Menampilkan nilai inputnya dengan mewarnai LED (seperti yang ditentukan oleh atribut Color-
nya) bila inputnya adalah 1. Bila inputnya lain 1, berwarna abu-abu gelap.

(Komponen LED pada dasarnya berlebihan dengan pin output, kecuali untuk tampilan yang agak
berbeda. Beberapa pengguna, meskipun, pikir akan bagus untuk disertakan.)
Pin

LED hanya memiliki satu pin, input 1-bit yang digunakan untuk menentukan apakah akan
menampilkan warna LED (bila inputnya 1) atau gelap (bila inputnya adalah hal lain).
Atribut

Menghadapi

48 | P a g e
Lokasi pin input relatif terhadap komponen.
Warna
Warna yang akan ditampilkan bila nilai inputnya adalah 1.
Label
Teks dalam label yang terkait dengan komponen.
Beri label lokasi
Lokasi label relatif terhadap komponen.
Label Font
Font yang digunakan untuk membuat label.
Warna label
Warna yang digunakan untuk menggambar label.

Poke Tool Behavior


Tidak ada

Perilaku Alat Teks


Mengizinkan label yang terkait dengan komponen yang akan diedit.

MODUL 10 POK

INPUT OUTPUT : 7-SEGMENT , HEX SEGMENT , LED MATRIX

7-Segment Display
Library: Input/Output
Introduced: 2.1.3
Appearance:

Tingkah laku

Menampilkan nilai dari delapan input satu bit. Bila input adalah 1, warna akan sesuai dengan
"segmen" komponen yang bersangkutan; Daerah ini berwarna abu-abu terang bila segmennya
sesuai 0. Korespondensinya adalah sebagai berikut.
(Produsen bervariasi mengenai bagaimana mereka memetakan masukan ke segmen;
korespondensi yang digunakan di sini didasarkan pada Texas Instruments 'TIL321.)

49 | P a g e
Pin

Tepi Utara, pertama dari kiri (input, bit width 1)


Mengontrol segmen horizontal tengah.
Tepi utara, kedua dari kiri (input, bit width 1)
Kontrol segmen vertikal atas di sisi kiri.
Ujung Utara, ketiga dari kiri (input, bit width 1)
Mengontrol segmen horizontal atas.
Tepi utara, keempat dari kiri (input, bit width 1)
Kontrol segmen vertikal atas di sisi kanan.
Tepi selatan, pertama dari kiri (input, bit width 1)
Kontrol segmen vertikal bawah di sisi kiri.
Tepi selatan, kedua dari kiri (input, bit width 1)
Mengontrol segmen horizontal bawah.
Tepi selatan, ketiga dari kiri (input, bit width 1)
Kontrol segmen vertikal bawah di sisi kanan.
Tepi selatan, keempat dari kiri (input, bit width 1)
Mengontrol titik desimal.

Atribut

Warna
Warna yang digunakan untuk menggambar segmen layar dan titik desimal saat mereka berada.

Poke Tool Behavior

Tidak ada
Perilaku Alat Teks

Tidak ada

Hex Digit Display


Library: Input/Output
Introduced: 2.2.0
Appearance:

Tingkah laku
50 | P a g e
Menggunakan layar seven-segment, menunjukkan digit heksadesimal yang sesuai dengan input
empat bit. Jika salah satu input tidak 0/1 (baik floating atau error), maka layar menunjukkan
tanda hubung ('-'). Masukan satu bit terpisah mengontrol tampilan titik desimal.
Pin
Tepi selatan, pertama dari kiri (input, bit width 4)
Masukan ini diinterpretasikan sebagai unsigned four-bit number, dan digit heksadesimal yang
sesuai akan ditampilkan. Jika ada bit yang mengambang atau error, maka tanda hubung ('-') akan
ditampilkan.
Tepi selatan, kedua dari kiri (input, bit width 1)
Mengontrol titik desimal. Jika ini dibiarkan tidak terhubung, titik desimal tetap mati.
Atribut
Warna
Warna yang digunakan untuk menggambar segmen layar dan titik desimal saat mereka berada.
Poke Tool Behavior
Tidak ada
Perilaku Alat Teks
Tidak ada

LED Matrix
Library: Input/Output
Introduced: 2.2.0
Appearance:

Tingkah laku

Menampilkan kotak kecil piksel, yang nilainya ditentukan oleh input saat ini. Grid bisa memiliki
hingga 32 baris dan 32 kolom.
Pin

Antarmuka ke komponen bervariasi tergantung pada nilai atribut Format Input. Ini memiliki tiga
nilai yang mungkin.
51 | P a g e
Kolom
Masukan dilapisi sepanjang tepi selatan komponen, dengan satu masukan multibit untuk setiap
kolom matriks. Setiap input memiliki banyak bit karena ada baris dalam matriks, dengan bit orde
rendah sesuai dengan pixel paling selatan di kolom. A 1 menunjukkan untuk menyalakan piksel
yang sesuai, sementara 0 menunjukkan agar pixel tetap redup. Jika salah satu bit untuk kolom
adalah nilai mengambang atau error, maka semua piksel di kolom dinyalakan.
Baris
Masukan dilapisi sepanjang tepi barat komponen, dengan satu masukan multibit untuk setiap
baris matriks. Setiap input memiliki banyak bit karena ada kolom dalam matriks, dengan bit orde
rendah sesuai dengan pixel paling kanan pada baris. Seperti pada format Kolom, sebuah 1
menunjukkan untuk menyalakan piksel yang sesuai, dan 0 menunjukkan agar pixel tetap redup.
Jika ada bit untuk satu baris adalah nilai floating atau error, maka semua piksel pada baris
dinyalakan.
Pilih Baris / Kolom
Ada dua input di sisi barat komponen. Input multibit atas memiliki banyak bit karena ada
kolom dalam matriks, dengan bit orde rendah sesuai dengan kolom paling kanan. Input multibit
yang lebih rendah memiliki banyak bit karena ada baris dalam matriks, dengan bit orde rendah
sesuai dengan baris terbawah. Jika ada bit dalam input adalah nilai floating atau error, semua
piksel dalam matriks dinyalakan. Biasanya, sebuah pixel pada lokasi kolom baris tertentu
dinyalakan jika bit kolom yang sesuai pada input atas adalah 1 dan bit baris yang sesuai pada
input yang lebih rendah adalah 1. Misalnya, untuk matriks 5x7, jika input pertama Adalah 01010
dan yang kedua adalah 0111010, maka kolom kedua dan keempat dinyalakan untuk baris kedua,
ketiga, keempat, dan keenam; Hasilnya nampak seperti sepasang tanda seru. (Format masukan
ini mungkin tampak tidak intuitif, namun matriks LED dijual secara komersial dengan
antarmuka persis seperti ini. Lite-On menjual komponen tersebut, misalnya.)

Atribut

Format Input (hanya baca setelah komponen dibuat)


Memilih bagaimana pin sesuai dengan piksel, seperti yang diuraikan di atas.
Kolom matriks
Memilih jumlah kolom dalam matriks, yang mungkin berkisar dari 1 hingga 32.
Baris Matriks
Memilih berapa banyak baris dalam matriks, yang mungkin berkisar dari 1 sampai 32.
Pada warna
Memilih warna piksel saat "menyala".
Mati Warna
Memilih warna piksel saat "redup".
Dot Shape
Pilihan kuadrat berarti bahwa setiap piksel ditarik sebagai kotak 10x10, mengisi komponen
tanpa celah di antara piksel. Pilihan lingkaran berarti setiap piksel digambar sebagai lingkaran

52 | P a g e
diameter-8, dengan celah di antara masing-masing lingkaran. Opsi lingkaran lebih sulit untuk
ditafsirkan, namun lebih dekat mendekati komponen matriks LED off-the-shelf.

Poke Tool Behavior

Tidak ada
Perilaku Alat Teks

Tidak ada

TTY
Library: Input/Output
Introduced: 2.2.0
Appearance:

Tingkah laku

Komponen ini menerapkan terminal yang sangat sederhana. Ini menerima urutan kode ASCII
dan menampilkan setiap karakter yang dapat dicetak. Saat baris saat ini menjadi penuh, kursor
bergerak ke baris berikut, mungkin menggulir semua baris saat ini jika kursor berada di baris
terbawah. Satu-satunya urutan kontrol yang didukung adalah: backspace (ASCII 8), yang
menghapus karakter terakhir di baris akhir, kecuali baris terakhir sudah kosong; Newline (ASCII
10), yang memindahkan kursor ke awal baris berikut, menggulir jika perlu; Dan form-feed
(ASCII 12, diketik sebagai kontrol-L), yang membersihkan layar.
Pin

Tepi barat, pin atas (input, lebar bit 7)


Data - ini adalah nilai ASCII dari karakter berikutnya yang akan dimasukkan ke terminal.
Tepi Barat, masukan yang lebih rendah ditandai dengan segitiga (input, bit width 1)
Jam - saat dipicu saat pin write-enable tidak 0, nilai ASCII saat ini pada input Data diproses
oleh terminal.
Ujung selatan, pin paling kiri (masukan, lebar bit 1)
Write Enable - bila 1 (atau floating atau error), tepi jam akan menghasilkan pengolahan
karakter baru dari input data. Jam dan input data diabaikan saat Write Enable is 0.
Tepi selatan, pin kedua dari kiri (input, bit width 1)
Jelas - ketika 1, terminal dibersihkan dari semua data, dan semua input lainnya diabaikan.

Atribut

53 | P a g e
Baris
Jumlah baris yang ditampilkan di terminal.
Kolom
Jumlah maksimum karakter yang ditampilkan di setiap baris terminal.
Pelatuk
Jika nilainya adalah "Rising Edge", maka saat input jam berubah dari 0 menjadi 1, input data
diproses (bila diaktifkan dengan input write-enable dan clear). Jika "Falling Edge", maka hal ini
terjadi bila input clock berubah dari 1 menjadi 0.

Poke Tool Behavior

Tidak ada
Perilaku Alat Teks

Tidak ada

MODUL 11 POK

PENGENALAN EMU8086

Emu8086 merupakan aplikasi emulator bagi pemrograman bahasa assembler atau


mikrokontroler. Dengan menggunakan aplikasi emulator, kita dapat mensimulasikan apakah
program kontrol hardware yang kita buat sudah benar atau masih salah.

Dalam “emu8086” terdapat beberapa menu, antara lain:

1. Emulate : untuk menjalankan emulator kode program yang kita buat


2. Compile : untuk membuat (compile) “binary executable file” atau ekstensi “.com” atau
“.exe” dari kode program.
3. Run : menjalankan aplikasi dari emulator yang dihasilkan (execute).
4. Single Step : Menjalankan aplikasi dengan cara tracing (diproses perbaris kode program).
Memulai pemrograman bahasa Assembler terdiri dari beberapa kode operasi code (op code) dan
pseudo ops. Bentuk instruksinya adalah op code diikuti operand. Opcode adalah perintah yang
akan dilaksanakan, sedangkan operand dpaat terdiri dari sumber (source) dan tujuan
(destination).
Misal : MOV AX,BX
Opcode dari contoh di atas adalah MOV, sedangkan operandnya adalah AX, BX. Maksud kode
di atas adalah perintah untuk menyalin data yang ada di register BX (source operand) ke register
AX (destination operand).

54 | P a g e
Pseucode operation (pseudo ops) adalah perintah kepada assembler untuk memberitahukan apa
yang harus dilakukan terhadap data, percabangan bersyarat, perintah macro dan listing.

kita perlu mengetahui pembuatan program menggunakan COM dan EXE. Berikut ini merupakan
perbedaannya:

PROGRAM COM :

• Lebih pendek dari file EXE


• Lebih cepat dibanding file EXE
• Hanya dapat menggunakan 1 segmen
• Ukuran file maksimum 64 KB (ukuran satu segment)
• sulit untuk mengakses data atau procedure yang terletak pada segment yang lain.
• 100h byte pertama merupakan PSP(Program Segment Prefix) dari program tersebut.
• Bisa dibuat dengan DEBUG

PROGRAM EXE :

• Lebih panjang dari file COM


• Lebih lambat dibanding file COM
• Bisa menggunakan lebih dari 1 segmen
• Ukuran file tak terbatas sesuai dengan ukuran memory.
• mudah mengakses data atau procedure pada segment yang lain.
• Tidak bisa dibuat dengan DEBUG

Awal penulisan program

Setelah membuka aplikasi EMU8086 dan memilih empty workspace, maka kita akan menuliskan
coding yang akan kita simulasikan dan untuk mengetahui output dari coding yang kita buat.
Dalam penulisan coding ada beberapa aturan yang harus kita ikuti dan untuk mendapatkan hasil
yang maksimal, Seperti gambar berikut:

Dalam penulisan program bagian atas merupakan bagian untuk melakukan bagian identifikasi
dan setting ( diluar tanda ; dan tulisan karakter berwarna hijau  karena karakter warna hijau
55 | P a g e
merupakan tanda informasi program maupun informasi tiap-tiap instruksi). Berikut ini
penjelasan untuk memulai penulisan coding.

.MODEL SMALL

.CODE

ORG 100H

Pada .MODEL SMALL ini merupakan tanda directive untuk memberi tahu kepada assembler
bentuk memory yang kita gunakan dalam program yang kita buat. Adapun macam-macam model
sebagai berikut:

a. TINY

Program hanya menggunakan 1 segment.

b. SMALL

Data dan code yang digunakan oleh program kurang dari 1 segment atau 64 KB.

c. MEDIUM

Data yang digunakan kurang dari 64 KB tetapi code yang digunakan lebih dari 64 KB.

d. COMPACT

Data yang digunakan lebih dari 64 KB tetapi code yang digunakan kurang dari 64 KB.

e. LARGE

Data dan Code yang digunakan lebih dari 64 KB.

f. HUGE

Data dan Code maupun Array yang digunakan lebih dari 64 KB.

Sedangkan untuk

.CODE merupakan directive untuk memberitahu ke Assembler bahwa kita menggunakan code
segmentnya disini, code segment digunakan untuk menyimpan program yang nantinya akan
dijalankan. Sedangkan ORG 100h perintah ini akan selalu digunakan untuk memberitahukan
assembler supaya program pada saat dijalankan ditaruh pada offset 100h (255) byte atau dengan
kata lain kita menyediakan memory kosong 100h byte pada saat program dijalankan.

56 | P a g e
MODUL 12 POK
IMPLEMENTASI EMU8086

Mencetak Huruf menggunakan INT10.

Buatlah coding seperti berikut.

Setelah selesai simpan file dengan ekstensi *.asm dan selanjutnya klik menu emulator dan akan
muncul tampilan seperti berikut:

Setelah itu ada 2 windows baru yang menunjukkan informasi source code dan menu emulator.
Kemudian klik Run untuk menjalankan emulator sehingga muncul command DOS yang akan
menampilkan hasil code yang kita buat. Berikut tampilan setelah melakukan klik Run.

Mencetak karakter A ~ P dengan INT 21h pada service 02

Tuliskan coding dibawah berikut kedalam Emu8086

57 | P a g e
Analisa hasilnya dan pelajari logika perulangannya. Selanjutnya buatlah program yang akan
menampilkan A ~ Z dan kebalikannya Z ~ A

Operasi penambahan dengan hasil akhir sebagai berikut untuk masing-masing nilai AX = ACF2h
,BX = 9ABCh ,CX = 3568h ,DX = DEF0h

Hasil dari program adalah sebagai berikut:

Untuk mendapatkan nilai hasil penambahan, setelah klik run makan kita klik debug untuk
mengetahui nilainya.

Pengurangan 122EFFF - 0FEFFFF Hasil adalah 0023ff00

Warna kuning merupakan hasil High dan warna hijau adalah hasil Low

58 | P a g e
Hasil emulator sebagai berikut:

Output yang akan ditampilkan adalah nilai AX

Silahkan ketikkan code berikut ini:

59 | P a g e
MODUL 13 POK
EMU8086 : JAM DIGITAL

merancang jam digital, dengan menggunakan simulator misalnya Emulator 8086. Pada Emu8086
bahasa yang digunakan adalah bahasa assembly. Berikut ini contoh listing programnya:

Emu8086 – assembler and microprocessor emulator 4.05:

60 | P a g e
Original Source Code:

Emulator: noname.com:

61 | P a g e
Tampilan jam digital dengan menggunakan LED Display:

Namun jam digital ini masih memiliki kekurangan. Port 199 yang berupa LED Display hanya
dapat menampilkan 5 digit. Dan karena kapasitasnya sebanyak 2 byte, maka dari 5 digit itu
masing-masing memuat 16 bites. Jadi jam digital ini hanya dapat menampilkan 65535 desimal.
Dengan kata lain jam digital ini maksimal dapat menampilkan waktu hingga jam ke 6, menit ke
55, dan detik ke 35. Atau berarti jam 06.55.35.

MODUL 14 POK
SET INSTRUKSI : EMU8086

Set instruksi (instruction set) adalah sekumpulan lengkap instruksi yang dapat di mengerti oleh
sebuah CPU, set instruksi sering juga disebut sebagai bahasa mesin (machine code), karna
aslinya juga berbentuk biner kemudian dimengerti sebagai bahasa assembly, untuk konsumsi
manusia (programmer), biasanya digunakan representasi yang lebih mudah dimengerti oleh
manusia.

Sebuah instruksi terdiri dari sebuah opcode, biasanya bersama dengan beberapa informasi
tambahan seperti darimana asal operand-operand dan kemana hasil-hasil akan ditempatkan.
Subyek umum untuk menspesifikasikan di mana operand-operand berada (yaitu, alamat-
alamatnya) disebut pengalamatan

Pada beberapa mesin, semua instruksi memiliki panjang yang sama, pada mesin-mesin yang lain
mungkin terdapat banyak panjang berbeda. Instruksi-instruksi mungkin lebih pendek dari,
memiliki panjang yang sama seperti, atau lebih panjang dari panjang word. Membuat semua
62 | P a g e
instruksi memiliki panjang yang sama lebih muda dilakukan dan membuat pengkodean lebih
mudah tetapi sering memboroskan ruang, karena semua instruksi dengan demikian harus sama
panjang seperti instruksi yang paling panjang.

Di dalam sebuah instruksi terdapat beberapa elemen-elemen instruksi:

1. Operation code (op code)


2. Source operand reference
3. Result operand reference
4. Xext instruction preference

Format instruksi (biner):

Missal instruksi dengan 2 alamat operand : ADD A,B A dan B adalah suatu alamat register.

Beberapa simbolik instruksi:

ADD : Add (jumlahkan)

SUB : Subtract (Kurangkan)

MPY/MUL : Multiply (Kalikan)

DIV : Divide (Bagi)

LOAD : Load data dari register/memory

STOR : Simpan data ke register/memory

MOVE : pindahkan data dari satu tempat ke tempat lain

SHR : shift kanan data

SHL : shift kiri data .dan lain-lain

Cakupan jenis instruksi:

Data processing : Aritmetik (ADD, SUB, dsb); Logic (AND, OR, NOT, SHR, dsb);
konversidata

Data storage (memory) : Transfer data (STOR, LOAD, MOVE, dsb)

Data movement : Input dan Output ke modul I/O

Program flow control : JUMP, HALT, dsb.

63 | P a g e
Bentuk instruksi:

– Format instruksi 3 alamat

Mempunyai bentuk umum seperti : [OPCODE][AH],[AO1],[AO2]. Terdiri dari satu alamt hasil,
dan dua alamat operand, misal SUB Y,A,B Yang mempunyai arti dalam bentuk algoritmik : Y :=
A – B dan arti dalam bentuk penjelasan : kurangkan isi reg a dengan isi reg B, kemudian simpan
hasilnya di reg Y. bentuk bentuk pada format ini tidak umum digunakan di dalam computer,
tetapi tidak dimungkinkan ada pengunaanya, dalam peongoprasianya banyak register sekaligus
dan program lebih pendek.

Contoh:
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
SUB Y, A, B Y := A – B
MPY T, D, E T := D × E
ADD T, T, C T := T + C
DIV Y, Y, T Y:= Y / T
Memerlukan 4 operasi

– Format instruksi 2 alamat

Mempunyai bentuk umum : [OPCODE][AH],[AO]. Terdiri dari satu alamat hasil merangkap
operand, satu alamat operand, missal : SUB Y,B yang mempunyai arti dalam algoritmik : Y:= Y
– B dan arti dalam bentuk penjelasan : kurangkan isi reg Y dengan isi reg B, kemudian simpan
hasillnya di reg Y. bentuk bentuk format ini masih digunakan di computer sekarang, untuk
mengoprasikan lebih sedikit register, tapi panjang program tidak bertambah terlalu banyak.

Contoh :
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
MOVE Y, A Y := A
SUB Y, B Y := Y – B
MOVE T, D T := D
MPY T, E T := T × E
ADD T, C T := T + C
DIV Y, T Y:= Y / T
Memerlukan 6 operasi

– Format instruksi 1 alamat

Mempunyai bentuk umum : [OPCODE][AO]. Terdiri dari satu alamat operand, hasil disimpan di
accumulator, missal : SUB B yang mempunyai arti dalam algoritmik : AC:= AC – B dan arti
dalam bentuk penjelasan : kurangkan isi Acc dengan isi reg B, kemudian simpan hasillnya di reg
Acc. bentuk bentuk format ini masih digunakan di computer jaman dahulu, untuk mengoprasikan
di perlukan satu register, tapi panjang program semakin bertambah.
64 | P a g e
Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
LOAD D AC := D
MPY E AC := AC × E
ADD C AC := AC + C
STOR Y Y := AC
LOAD A AC := A
SUB B AC := AC – B
DIV Y AC := AC / Y
STOR Y Y := AC
Memerlukan 8 operasi

– Format instruksi 0 alamat


Mempunyai bentuk umum : [OPCODE]. Terdiri dari semua alamat operand implicit, disimpan
dalam bentuk stack. Operasi yang biasanya membutuhkan 2 operand, akan mengambil isi stack
paling atas dan dibawahnya missal : SUB yang mempunyai arti dalam algoritmik :
S[top]:=S[top-1]-S[top] dan arti dalam bentuk penjelasan : kurangkan isi stack no2 dari atas
dengan isi stack paling atas, kemudian simpan hasilnya di stack paling atas, untuk
mengoprasikan ada beberapa instruksi khusus stack PUSH dan POP.

Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
PUSH A S[top] := A
PUSH B S[top] := B
SUB S[top] := A – B
PUSH C S[top] := C
PUSH D S[top] := D
PUSH E S[top] := E
MPY S[top] := D × E
ADD S[top] := C + S[top]
DIV S[top] := (A – B) /S[top]
POP Y Out := S[top]

65 | P a g e

Anda mungkin juga menyukai