Bus mengaktifkan sirkuit terintegrasi

8

Saya bermain-main dengan merancang CPU 8-bit sederhana dari komponen logika dasar. Saya memiliki ide yang cukup bagus tentang bagaimana ALU dan register saya akan berinteraksi, tetapi satu hal yang saya rasa dapat menggunakan beberapa peningkatan adalah bagaimana beralih ketika garis diizinkan untuk terhubung ke bus data utama.

Pikiran awal saya adalah menggunakan dan gerbang untuk mengemudi bus. Output dari berbagai jalur di ALU semua bisa masuk ke seperangkat chip quad-AND yang output ke bus. Hanya satu set gerbang AND pada satu waktu akan memiliki semua input B ditarik tinggi untuk membiarkannya keluar ke bus.

Beberapa hal yang saya tidak yakin: Tampaknya boros untuk menggunakan delapan gerbang AND penuh per baris, ketika saya hanya perlu satu jalur kontrol masuk. Apakah ada chip yang lebih baik lebih cocok untuk tujuan ini? Saya yakin saya juga bisa melakukannya dengan delapan transistor, tetapi saya ingin tetap menggunakan IC yang cukup umum (dan murah).

Solusi seperti ini hanya memungkinkan data mengalir satu arah dari bus. Apakah ini masalah? Saya rasa tidak, karena saya memiliki jalur kontrol lain yang menghentikan register dari memuat data bus sampai saya menginginkannya.

Apakah ada chip standar yang digunakan untuk gerbang bus seperti ini?

captncraig
sumber

Jawaban:

11

The 74HC244 adalah perangkat khas untuk menghubungkan ke / memutuskan sambungan dari bus. Ini adalah buffer tri-state oktal (atau lebih tepatnya buffer quad ganda). Anda memerlukan fitur tri-state untuk memutuskan sambungan sepenuhnya dari bus. Gerbang akan mengatur bus tinggi atau rendah, tetapi itu tidak akan membiarkan perangkat lain di dalamnya.

Tetapi karena Anda berbicara tentang bus data, Anda mungkin menginginkan buffer dua arah . Maka Anda dapat menggunakan 74HC245 .

74HC245

Anda memiliki DIRpin untuk mengontrol arah dan /OEyang dapat membuat buffer tri-state.

sunting
JustJeff menyebutkan 74HC374 oktal tri-state D flip-flop. ( Catatan: Saya akan berbicara tentang 74HC574, yang secara fungsional sama, tetapi memiliki pinout yang lebih logis. ) 74HC574 memang bagian yang menarik, dan klasik sejak seri SN74xx. Sementara 74HC245 akan memberikan Anda tri-state buffer, 74HC574 memiliki fungsi memori juga, dalam bentuk flip-flop okal D. Sangat bagus untuk membuat register, dan melalui koneksi tri-state ke bus Anda dapat merutekan aliran data Anda dengan mudah.
Namun, ada kekurangannya. Output register hanya tersedia untuk bus, sehingga semua komunikasi harus lewat di sana, sehingga bus akan menjadi leher botol. Oleh karena itu saya pikir lebih baik untuk mengganti 74HC374 dengan 74HC273 ok- D flip-flop diikuti oleh buffer tri-state 74HC244 terpisah untuk koneksi ke bus. Dengan cara itu output register juga tersedia secara internal ketika beberapa sinyal lain menempati bus. (Saya tidak tahu apakah ada bagian fungsi yang kompatibel dengan pinout yang lebih logis. Anda juga dapat menggunakan 74HC574 dengan /OEbawaan untuk ground.)

stevenvh
sumber
Itu terlihat hebat! Saya belum yakin bagaimana register saya akan berinteraksi dengan bus, tetapi saya menduga yang dua arah akan membantu di sana.
captncraig
@CMP - dalam situasi seperti yang Anda jelaskan - membangun CPU dari awal - output tri-state adalah teman Anda. Sebagai contoh, 74hc374 adalah register 8-bit yang menyediakan output tri-stateable dalam chip yang sama. Anda dapat mem-bus output dari beberapa ini bersama-sama, dan hanya menyatakan OE yang Anda inginkan "di bus".
JustJeff
Perlu dicatat bahwa banyak CPU sebenarnya memiliki register yang hanya bisa mengambil input atau mengirim output dari / ke bus bersama (dalam banyak kasus, input dari satu bus; output di bus lain). Meskipun desain seperti itu mungkin dalam beberapa kasus menjadi hambatan, saya tidak berpikir tujuannya di sini adalah untuk bersaing dengan i7. Perhatikan bahwa jika seseorang menginginkan register untuk mengambil input dari satu bus dan secara selektif output ke dua bus yang berbeda, seseorang dapat menggunakan 74HC273 dan dua 74HC244, tetapi orang dapat melakukan pekerjaan hanya dengan dua 74HC574 yang menempel data yang sama.
supercat
5

(1) DAN gerbang secara inheren tidak cocok untuk umum sebagai buffer bus transparan karena jika mereka memiliki driver output sepenuhnya aktif mereka berinteraksi, dan jika "kolektor terbuka" logika membalikkan.

Anda dapat menggunakan kolektor terbuka 2-input ATAU gerbang sebagai driver jalur tunggal ke bus umum.

Jika Anda memasukkan "data" dan "not_enable" ke gerbang OR, output akan tinggi jika not_enable tinggi dan akan mengikuti data jika not_enable rendah.

Ketika output dari gerbang pengumpul terbuka tinggi, itu tidak memuat bus dengan cara apa pun. Ketika rendah itu memuat bus dengan dihidupkan output rendah. Jadi, beberapa gerbang pengumpul terbuka dapat berbagi bus dan hanya yang diaktifkan (biasanya satu per satu) yang bisa mengemudikan bus. Anda memerlukan satu penarik untuk menarik bus tinggi dan sejumlah gerbang untuk menurunkannya.

(2) EDUC-8 adalah / adalah mikrokomputer berbasis TTL 8 bit yang disajikan sebagai proyek multi bulan di majalah Electronics Australia dari Agustus 1974 hingga Agustus 1975. Bahkan jika Anda tidak ingin menyalinnya, Anda dapat belajar banyak dengan melihat bagaimana itu. diimplementasikan. Ada berbagai penggemar yang telah membuat salinan dalam beberapa tahun terakhir.

Dokumentasi yang sangat luas tentang perjalanan satu pengguna EDUC-8 ... Sama ... Termasuk detail pembuatan PCB transfer tonernya dari beberapa latrgsih PCB dan banyak lagi.

Wikipedia EDUC-8

Halaman tautan

Beberapa dokumentasi

Gambar PCB

Russell McMahon
sumber