シンプルなコンピューターシステムの包括的な設計設計レポート(VHDL)

シンプルなコンピューターシステムの包括的な設計設計レポート(VHDL)

1.設計目的

「デジタルロジック」で学んだ知識を完全かつ首尾一貫して使用し、EDAツールを使用する基本的な方法を習得し、フォローアップの「コンピュータ原則」コースへの道を開きます。次に、Quartus IIソフトウェアのアプリケーションを理解し、Quartus II環境でCPUを設計する基本的なプロセスを学び、CPU設計コードの意味とCPUの動作原理を理解し、CPUとメモリRAM間の接続データの転送プロセスを理解し、Quartus II環境で学びますモデルマシンを確立する特定のプロセス。このコースの各章(デジタルロジック)の内容を統合し、知識の包括的なアプリケーションを通じて、コンピュータシステムのさまざまなモジュールの動作原理と相互接続の理解を深めます。コンピュータの設計とデバッグの基本的な手順と方法を学び、ソフトウェアシミュレーションツールと集積回路を使用する基本的なスキルを向上させます。科学研究で独立して作業する能力を養い、エンジニアリングの設計、組み立て、デバッグの実践と経験を習得します。
2.設計内容
与えられたデータパス、データフォーマット、および指示システムに従って、EDAツールを使用して、ハードワイヤードロジックによって制御される単純なコンピューターを設計します。
データ経路:
ここに画像の説明を挿入

データ形式:データワードは8ビットの2進固定小数点補数コードで表されます。この場合、最上位ビット(7番目のビット)は符号ビットで、小数点は左端または右端と見なすことができます。数値の範囲は-1≤X<+1です。または-128≤X<+127。
コマンドシステム:
ここに画像の説明を挿入

3.詳細設計
3.1全体的なアーキテクチャ(拡大図については最後の図を参照)
ここに画像の説明を挿入
3.2各モジュールの特定の実装
1)命令カウンターPC:
インターフェース設計:
バス入力、クロック入力、リセット入力、2つの制御信号入力、およびバス出力。
機能の実現:
a。リセット信号が有効な場合、カウンターはクリアされます;
b。クロックの立ち下がりエッジが来たときに、LD_PC = '1'、IN_PC = '1'の場合、1つ増加するか、LD_PC = '1'、IN_PC = '0 'バスデータをカウンターに実現します。そうでない場合、操作はありません;
c。出力は現在の状態です。

2)セレクター:
インターフェース設計:
PC入力、汎用レジスターグループAポート入力、汎用レジスターグループBポート入力、2桁のイネーブル入力、およびバス出力。
機能の実現:この
機能はマルチプレクサと同等で、異なるイネーブルに対して異なる入力と出力が選択されます:
a。MADD = '00'、PC入力の入力と出力を選択します;
b。MADD = '01'、汎用レジスタを選択しますグループAのポートAの入力の入力と出力;
c.MADD = '10'、汎用レジスタグループのポートBの入力の入力と出力を選択;
d.MADD = '10'、出力ハイインピーダンス状態。

3)命令レジスタIR:
インターフェイス設計:
バス命令入力、クロック入力、イネーブル入力、命令分解制御信号入力、バス命令出力、オペコードS出力、RAA、RWBA出力。

関数の実現:
関数はレジスター(クロックの立ち下がりエッジが信号を命令デコーダーに送信する)に相当します。さらに、クロックによって制御されない信号分解器はありません(最初にRAA、RWABを抽出します。これにより、クロックの立ち下がりエッジが到着すると、汎用レジスターグループが読み取ります。値の正確さ)。

4)命令デコーダ:
インターフェース設計:
バス命令入力端子、リセット入力端子、イネーブル入力端子、各種命令制御信号出力端子。
機能の実現:
a。イネーブルが有効な場合、すべての種類のコマンド制御信号が着信コマンドコードに対して
解釈されます; b。リセット信号が有効な場合、イネーブルに関係なく、HALTコマンド制御信号は低レベルに直接、つまり無効です。 (シャットダウン後の起動操作を制御するために使用されます)。

5)コントローラー
インターフェイスデザイン:
イネーブル入力端子、さまざまなコマンド制御信号入力端子、CfとZfの2つの登録信号入力端子、さまざまな制御信号出力端子(LD_IR、DL、XLなど)。
機能の実現:
a。すべての種類の制御信号を初期化します;
b。イネーブルがハイの場合、つまり有効な場合、実行ステージは、さまざまな制御信号を異なるコマンド制御信号と条件信号に割り当てて、対応するコマンドが実行されるようにしますファンクションブロックまたはパスが開いている;
c。イネーブルがローの場合、命令フェッチステージは、値を制御する信号を変更して、命令を正常にフェッチします。

6)汎用レジスタセット
インターフェイスデザイン:
セット入力、イネーブル入力、クロック入力、RAAおよびRWBA入力、バス入力、バスコマンド出力、汎用レジスタAおよびB出力、ABC 3レジスタ出力端子。
機能の実現:
a。イネーブルが0の場合、バスデータはRWBA選択を介して3つのレジスタに書き込まれます;
b。イネーブルが1の場合、レジスタ内のデータは、RAAおよびRWBAの選択を介してそれぞれAポートおよびBポートから出力されます;
C.設定時にクリア;
d。レジスターにデータを表示します。

7)関数発生器ALU(+シフトロジック)
インターフェイス設計:
イネーブル入力、オペコード入力、汎用レジスタグループAおよびB入力、2つのシフト信号入力、バス出力、キャリーCfおよび結果は0信号のZf出力端子です。
機能実現:
a。ポートAとポートBからの受信データに対して、オペレーションコードと制御信号の違いに応じて異なる操作を実行します;
b。バスから結果を送信し、キャリーがあるかどうかと結果がゼロかどうかを判断します。

8)スイッチ入力
インターフェース設計:
コンソール信号INAおよびINP入力端子、コマンド制御信号IN_0入力端子、8つのスイッチ信号入力端子、バス出力端子。
機能の実現:
IN_0またはINAまたはINPが1に等しい場合、スイッチ上のデータがバスに入れられます。

9)分周器
インターフェース設計:
元のクロック入力端子、分周後のクロック出力端子。

10)クロック制御スイッチ
インターフェース設計:
STRATおよびSTOPコンソール信号入力端子、HALTコマンド制御信号入力端子、制御信号出力端子。
機能実現:
入力信号に応じてシステムスイッチを制御する信号を出力し、クロックで動作させてシステムの制御を実現します。

11)Cf、Zfレジスタ
インターフェイスデザイン:
CfおよびZf入力端子、クロック入力端子、セット入力端子、Cf_1およびZf_1出力端子。
機能実現:
3つのレジスタを直列に接続することで、CfとZfのレジスタを実現し、ジャンプ時の次の実行ステージの条件を提供します。

12)CHP
インターフェース設計:
RAM入力端子、コンソール信号CHP入力端子、イネーブル入力端子、RAM値出力端子。
機能実現:
CHPとLD_IRの制御により、現在のPCに対応するRAM内の対応するメモリセルの値が出力されます。

4.プロジェクトファイル
プロジェクトファイルとレポートについては、https://download.csdn.net/download/hyl1181/12647130を参照してください。

おすすめ

転載: blog.csdn.net/hyl1181/article/details/107491501