バスイネーブル集積回路


8

基本的なロジックコンポーネントからシンプルな8ビットCPUを設計することにいじっています。ALUとレジスタがどのように相互作用するかについてはかなり良い考えを持っていますが、いくつかの改善を使用して感じることができる1つのことは、ラインがメインデータバスに接続することが許可されるときに切り替える方法です。

私の最初の考えは、バスを運転するためにとゲートを使用することでした。ALUのさまざまなラインからの出力はすべて、バスに出力するクワッドANDチップのセットに入る可能性があります。一度に1セットのANDゲートのみが、そのB入力のすべてをHighにプルしてバスに送出します。

不明な点が2つあります。制御ラインを1つだけ入力する必要がある場合、1行あたり8つのフルANDゲートを使用するのは無駄に思えます。この目的により適したより良いチップはありますか?8つのトランジスタでも実現できると思いますが、かなり一般的な(そして安価な)ICを使い続けたいと思います。

このようなソリューションでは、データはバスから一方向にしか流れません。これは問題ですか?他のコントロールラインで、レジスタがバスデータをロードするまで、バスデータのロードを停止しているので、そうは思いません。

このようなバスゲートに使用する標準チップはありますか?

回答:


11

74HC244は、バスから切断/接続するための典型的なデバイスです。これは、8進数のトライステートバッファー(またはデュアル4 分割バッファー)です。バスから完​​全に切断するには、トライステート機能が必要です。ゲートはバスをハイまたはローに設定しますが、その上に別のデバイスを許可しません。

しかし、データバスについて話しているので、おそらく双方向バッファが必要です。その後、74HC245を使用できます。

74HC245

DIR方向を制御するピンがあり/OE、バッファをトライステートにすることができます。

編集
JustJeffは、74HC374オクタルトライステートDフリップフロップについて言及しています。(注:機能的には同じですが、より論理的なピン配置を持つ74HC574について説明します。74HC574は確かに興味深い部分であり、SN74xxシリーズ以降のクラシックです。74HC245はトライステートバッファを提供しますが、74HC574 も8進Dフリップフロップの形でメモリ機能を備えています。レジスタを作成するのに最適です。バスへのトライステート接続を介して、データフローを簡単にルーティングできます。
ただし、これには欠点があります。レジスタの出力はバスでのみ使用できるので、すべての通信はそこを通過する必要があるため、バスはボトルネックになります。。したがって、74HC374を74HC273の 8進Dフリップフロップで置き換えた後、バスへの接続用に別の74HC244トライステートバッファーを使用する方がよいと思います。このようにして、他の信号がバスを占有しているときに、レジスタの出力も内部で利用できます。(より論理的なピン配列と機能互換性のある部分があるかどうかはわかりません。また、アースに/OEハードワイヤードされた74HC574を使用することもできます。)


いいね!レジスターがバスとどのように相互作用するかはまだわかりませんが、双方向レジスターがバスで役立つと思います。
captncraig 2011

@CMP-あなたが説明するような状況で-最初からCPUを構築する-トライステート出力はあなたの友達です。たとえば、74hc374は8ビットレジスタで、同じチップでトライステート可能な出力を提供します。これらのいくつかの出力を一緒にバス化して、必要な出力のOEを「バス上」でアサートすることができます。
JustJeff 2011

実際、多くのCPUには、共有バス(多くの場合、あるバスからの入力、別のバスからの出力)との間でのみ入力を取得したり、出力を送信したりできるレジスターがありました。このようなデザインがボトルネックになる場合もありますが、ここでの目標はi7と競合することではないと思います。レジスタが1つのバスから入力を受け取り、2つの異なるバスに選択的に出力されるようにしたい場合は、74HC273と2つの74HC244を使用できますが、同じデータをラッチする2つの74HC574で作業を実行できます。
スーパーキャット2011

5

(1)ANDゲートは、完全にアクティブな出力ドライバーがある場合に相互作用し、「オープンコレクター」の場合にロジックが反転するため、本質的にトランスペアレントバスバッファーとしてのコモン化には適していません。

オープンコレクターの2入力ORゲートを、共通バスへの単一ラインドライバーとして使用できます。

「データ」と「not_enable」をORゲートにフィードすると、not_enableが高い場合は出力が高くなり、not_enableが低い場合はデータが追跡されます。

オープンコレクターゲートの出力が高い場合、バスに負荷をかけません。LOWの場合、LOW出力がオンになっているバスにロードします。したがって、複数のオープンコレクターOゲートがバスを共有でき、有効なもの(通常は一度に1つ)のみがバスを駆動できます。バスをハイにプルアップするための単一のプルアップと、バスをローに駆動するための任意の数のゲートが必要です。

(2)EDUC-8は、1974年8月から1975年8月にかけて、Electronics Australia誌で複数月のプロジェクトとして発表された8ビットTTLベースのマイクロコンピュータでした。実装されました。近年コピーを作った愛好家がたくさんいます。

1人のユーザーのEDUC-8の旅に関する非常に広範なドキュメント ...同じ... いくつかのlatrgsih PCBのトナー転送PCB作成の詳細などが含まれています。

ウィキペディアEDUC-8

リンクページ

いくつかのドキュメント

PCBイメージ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.