ブレッドボードと基本的な電子部品だけで簡単なコンピューターを作ることは可能ですか?たとえば、このように関数電卓を構築することは可能ですか?
ブレッドボードと基本的な電子部品だけで簡単なコンピューターを作ることは可能ですか?たとえば、このように関数電卓を構築することは可能ですか?
回答:
マイクロコントローラをブレッドボード上に配置することは、ブレッドボード上にコンピュータを構築することと見なされることに同意しません。I / O(キーボードやディスプレイなど)を除き、マイクロコントローラー自体はほぼ完全なコンピューターです。それをブレッドボードに置き、数本のワイヤを接続するだけで簡単になり、10分で完了します。
OPが「ブレッドボードと基本的な電子部品だけで簡単なコンピューターを作ることは可能ですか?」と尋ねたとき、基本的な電子部品によって、それは次のようなものを意味すると思います:
これは、基本的なコンポーネントから構築されたブレッドボード(まあ、いくつかのブレッドボード)上のコンピューターです。それの説明はここにあります。多数の74LS00シリーズICで構成されています。(私たちはトランジスタにずっと戻りたいとは思わない;オリジナルのPDP-8は小さな冷蔵庫のサイズだった)。
関数電卓に関する限り、上記のような汎用コンピューターを構築すれば、関数電卓としてプログラムできます。論理ICのみ(コンピューターは使用しない)を使用して関数電卓を構築することは非常に困難です。そのような計算機(Ti、HPなど)のすべてのメーカーは、特別な大規模ICを使用していました。ここだ自作電卓の使用は、早期に4ビットの計算ICだということを。
コンピューターをできるだけ早く起動して実行したい場合は、マイクロコントローラーを使用するのが良い方法です。コンピューターが内部でどのように機能するかを本当に理解したい場合、基本的なICからコンピューターを構築することが正しい道です。
それが可能であるだけでなく、私は実際にそれをやった:https : //www.vttoth.com/CMS/projects/47を参照
ブレッドボードの背面の配線は次のとおりです。
もちろん、すべてがどのコンポーネントが「基本」として認定されるかに依存します。私の場合、基本的なコンポーネントは74 ...シリーズTTLチップで、およそ100個でした。たとえば、トランジスタだけでコンピュータを構築するには...それはあまりにも圧倒的です。
また、私の4ビットコンピューターは、主にメモリの制限(256個の4ビットニブル)のため、科学計算機として使用するのに十分なほど強力ではありません。ただし、おそらくページングメカニズムを使用してアドレススペースを拡張するのはそれほど難しくありません。4096ニブル(12ビットアドレス)は、すでに十分な65536ニブル(16ビットアドレス)であるかもしれません。
はい、可能ですが、基本的なコンポーネントと考えるものに応じて、当然のことながら、科学計算用の計算機を作成するには数個のブレッドボード以上のものが必要です:トランジスタを基本コンポーネントと呼ぶか、フリップフロップと呼ぶか、EEPROM、または古い冷蔵庫からはんだ付けできるもの。
ここにはいくつかの良い答えがありますが、私は人々がしばしば考慮しない1つのことを指摘したいと思います。コンピューティングデバイスの歴史を見ると、樹皮と爪からコンピューターを構築することの難しさは、CPUでもALUでもありません。主な問題はメモリです。ストアドプログラムのコンセプト全体が機能するためには膨大な量が必要だからです。いくつかのフリップフロップとNANDゲートからCPUを作成できます。たとえば、特定の制約があるパワーエレクトロニクスアプリケーションの場合、69個のフリップフロップ(4つの16ビットレジスタ、4つのフラグ、およびFETCH / EXECUTEを示す1つの状態レジスタビット)のみを使用するマイクロプロセッサを設計しました。シリコンで実装されており、人々はそれで動作するソフトウェアを書いています。それは簡単で、パワートランジスタのドレイン接点のサイズに適合します。しかし、有用なプログラムを保存するために必要なメモリは、はるかに大きくなります。
早い段階で、メモリは設計の出発点でした。初期の電話交換で使用したように、双安定リレーを使用できます。真空管またはトランジスタを使用してフリップフロップを作成できます。通常、CPUのレジスタはこの方法で実装されました。しかし、プログラムとデータの保存には、紙テープ、磁気テープ、回転ディスクまたは回転ドラムが使用されました。電子機器によって常に受信および再送信される鋼線上の音波ですらあります。あなたがそれについて考えることができるものはすべて、妥当なコストで妥当な時間にいくらかのビットを保持することができます。アポロのオービターと月着陸機のコンピューターは、ロープとして巻かれたコイルコアメモリを使用していました。これらはすべて異なるインターフェース機器を必要とし、CPUがこれらの種類のメモリにアクセスするために必要なものに大きな影響を及ぼします。半導体メモリは、1970年代に初めて登場しました。最終的にそのような複雑さを却下します。しかし、ここでも、最新のダイナミックRAMはそれほど簡単ではありません。
さらに、コンピューターの入出力機器を設計する必要があるという素晴らしい点があります。いくつかの電球は一部のアプリケーションでは問題ありませんが、テキストの入力/出力またはさらに複雑なものが必要な場合は、さらに多くの困難に直面しています。パンチカードリーダー、プリンター、紙の端末は、当時大きなビジネスでした。1978年のVT100テキストモードビデオ端末には、科学計算機のブレッドボードコンピューターよりもはるかに多くのメモリと処理能力があります。
可能ですが、複雑さとサイズは、基本的な電子部品と呼ばれるものによって異なります。ALUとシーケンサーロジックは少し複雑ですが、実行可能です。メモリーは単純ですが、基本的なパターンは非常に多数回繰り返す必要があります(1000回と考えてください)。
ハードウェアに加えて、その上で実行されるソフトウェアも必要になります。概算として、中程度に複雑なCPU(古典的な16ビット命令、8ビットデータレベル)の場合、ソフトウェアの努力はハードウェアの努力に匹敵します。(より単純なCPUを使用するには、より多くのSWの努力が必要になります。)そして、そのSWをマシンにどのようにロードしますか?
バグハンティング(および解決)は興味深い取り組みです。VHDLで書き込みを開始し、シミュレータで実行することをお勧めします。これは、大量のチップやワイヤよりもデバッグがはるかに簡単です。
私の2人の学生は、シミュレーション用のVHDLとCコードから始めて、〜1年でいくつかの基本ソフトウェア(GCCバックエンドポートを含む)で16ビットCPUを作成しました。ALUは74181チップを使用し、メモリは静的RAMであり、atMegaを使用してPCとコンピューターを接続しました。コンピューターの一部は無はんだのブレッドボード上にあり、一部はPCB(8個の16ビットレジスター)上にありました。(これら2人は平均的な学生ではありません!)
はい、可能です。ただし、計算を行うにはマイクロコントローラーが必要です。 これはサンプルプロジェクトです。AVRマイクロコントローラーと16×2 LCDディスプレイを使用します。