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 empatbit. 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, pertamatama 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 0 0 1 0 0 0 1 1 0 1 0 0
Y ‘ .Z 0 1 0
f= X+Y’.Z 0 1 0 13 | P a g e
0 1 1 1 1
1 0 0 1 1
0 1 1 0 0
1 0 1 0 1
0 0 1 0 0
0 1 1 1 1
Sebuah fungsi Boolean dapat diubah menjadi sebuah diagram logika yang terdiri dari gerbanggerbang 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. 2. 3. 4. 5. 6.
X+0=X X+1=1 X.0=0 X.1=X X+X=X X.X=X
7. 8. 9. 10. 11. 12.
X + X’ = X X . X’ = 0 X+Y=Y+X X.Y=Y.X X+(Y+Z) = (X+Y)+Z X.(Y.Z) = (X.Y).Z
13. 14. 15. 16. 17. 18. 19.
X.(Y+Z) = X.Y + X.Z X + Y.Z = (X+Y) . (X+Z) (X + Y)’ = X’ . Y’ (X.Y)’ = X’ + Y’ (X’)’ = X X.(X+Y) = X 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 A B 0 0 0 1 1 0 1 1
Data output Selected c0 c1 c2 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 A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1
Data output Ipn y1 y2 0 0 x 1 1 x 0 x 0 1 x 1 0 x x 1 x x 0 x x 1 x x
y3 x x x x 0 1 x x
y4 x x x x x x 0 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 : Penampilan
2.0 Beta 11
:
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 : Penampilan
2.0 Beta 20
:
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 : Penampilan
2.0 Beta 22
:
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 pembagiAtribut
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 : Penampilan
2.0 Beta 22
:
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 : Penampilan
2.0 Beta 22
:
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. itu adalah 1, nilai register yang ditempelkan ke 0. Hal ini terjadi memperhatikan arus nilai jam masukan. Selama ini 1,
Selama
asynchronously - yaitu, tanpa
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
turunnya nilai tepi menunjukkan bahwa itu harus memperbarui pada
saat yang jam turun
dari 1 ke 0. Nilai tingkat tinggi menunjukkan bahwa register
harus
0
sampai
memperbarui
1.
terus
34 | P a g e
menerus setiap kali jam input 1. Dan nilai tingkat rendah
menunjukkan
memperbarui terus menerus ketika jam masukan adalah
0.
bahwa
itu
harus
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 abuabu 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.PenggunadapatmemodifikasinilainilaiindividusecarainteraktifmelaluiAlat 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 Input/Output Library: 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 Input/Output Library: 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 Input/Output Library: 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 Input/Output Library: Introduced: 2.1.3 Appearance: Tingkah laku Menampilkan nilai inputnya dengan mewarnai LED (seperti yang ditentukan oleh atribut Colornya) 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 Input/Output Library: 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 Input/Output Library: 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, alamatalamatnya) 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. 2. 3. 4.
Operation code (op code) Source operand reference Result operand reference 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 konversidata
: Aritmetik (ADD, SUB, dsb); Logic (AND, OR, NOT,
SHR, dsb);
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