各コンポーネントの仕様 - TMU-VHDL-team2/sqrt GitHub Wiki

クロック(CLK)

入力:

  • なし

出力:

  • クロック信号・1ビット

機能:

  • 10ナノ秒ごとに立ち上がる

制御信号生成回路

入力:

  • クロック信号・1ビット
  • 命令レジスタより機械語・16ビット

出力:

  • バスAの入力選択信号・3ビット
  • バスBの入力選択信号・5ビット
  • バスA,Bへの実効アドレス値(機械語の第二オペランド)・8ビット
  • 汎用レジスタのラッチ・1ビット
  • 汎用レジスタのバスA出力選択信号・4ビット
  • 汎用レジスタのバスB出力選択信号・4ビット
  • 汎用レジスタのバスC入力選択信号・4ビット
  • 命令レジスタのラッチ・1ビット
  • フラグレジスタのラッチ・1ビット
  • プログラムレジスタのラッチ・1ビット
  • プログラムレジスタのカウンタ機能フラグ・1ビット
  • MARのラッチ・1ビット
  • MDRのラッチ・1ビット
  • MDRの入力選択信号・1ビット
  • メモリのアドレス変更ラッチ・1ビット
  • メモリの書き込み可能フラグ・1ビット
  • メモリの読み出し可能フラグ・1ビット
  • ALUへのニモニック・4ビット

機能:

  • 命令レジスタから機械語を読み込み、クロックが立ち上がるごとに制御信号を生成する

バスA

入力:

  • 汎用レジスタの内容・16ビット
  • MDRの内容・16ビット
  • 実効アドレス値・8ビット
  • 入力選択信号・3ビット

出力:

  • 選択された内容:16ビット

機能:

  • 入力を制御信号に従って選択し、命令レジスタやALUへ送る

バスB

入力:

  • 汎用レジスタの内容・16ビット
  • プログラムレジスタの内容・16ビット
  • MARの内容・16ビット
  • MDRの内容・16ビット
  • 実効アドレス値・8ビット
  • 入力選択信号・5ビット

出力:

  • 選択された内容:16ビット

機能:

  • 入力を制御信号に従って選択し、ALUへ送る

バスC

入力:

  • ALUの結果・16ビット

出力:

  • 入力と同値:16ビット

機能:

  • 入力を他のコンポーネントへ送るために利用される

命令レジスタ

入力:

  • クロック信号・1ビット
  • バスAの内容・16ビット
  • ラッチ・1ビット

出力:

  • 内容(機械語)・16ビット

機能:

  • ラッチが1かつクロックが立ち上がったとき、バスAの内容を保存する

フラグレジスタ

入力:

  • クロック信号・1ビット
  • オーバーフローフラグ・1ビット
  • サインフラグ・1ビット
  • ゼロフラグ・1ビット
  • ラッチ・1ビット

出力:

  • オーバーフローフラグ・1ビット
  • サインフラグ・1ビット
  • ゼロフラグ・1ビット

機能:

  • ラッチが1かつクロックが立ち上がったとき、それぞれのフラグの内容を保存する

プログラムレジスタ

入力:

  • クロック信号・1ビット
  • バスCの内容・16ビット
  • ラッチ・1ビット
  • カウンタ機能フラグ・1ビット

出力:

  • 内容(メモリアドレス)・16ビット

機能:

  • ラッチが1かつクロックが立ち上がったとき、バスCの内容を保存する
  • カウンタ機能フラグが1かつクロックが立ち上がったとき、内容を1増加させる

MAR

入力:

  • クロック信号・1ビット
  • バスCの内容・16ビット
  • ラッチ・1ビット

出力:

  • メモリに送るアドレス・8ビット
  • 内容(メモリアドレス)・16ビット

機能:

  • ラッチが1かつクロックが立ち上がったとき、バスCの内容を保存する
  • メモリに送るアドレスは、内容の下位8ビット

MDR

入力:

  • クロック信号・1ビット
  • バスCの内容・16ビット
  • メモリの内容・16ビット
  • ラッチ・1ビット
  • 入力選択信号・1ビット

出力:

  • 内容(データ)・16ビット

機能:

  • ラッチが1かつクロックが立ち上がったとき、入力選択信号が0ならバスCの内容を保存する
  • 同様に、入力選択信号が1ならメモリの内容を保存する

メモリ

入力:

  • クロック信号・1ビット
  • MARからのアドレス・8ビット
  • MDRの内容・16ビット
  • アドレス変更ラッチ・1ビット
  • 書き込み可能フラグ・1ビット
  • 読み出し可能フラグ・1ビット

出力:

  • 内容(データ)・16ビット

機能:

  • 16ビットの記憶領域を256個持つ
  • ラッチが1かつクロックが立ち上がったとき、MARからアドレスを取得する
  • 書き込み可能フラグが1かつクロックが立ち上がったとき、アドレスが指す領域にMDRの内容を保存する
  • 読み出し可能フラグが1かつクロックが立ち上がったとき、アドレスが指す領域の内容を正しく出力する

汎用レジスタ

入力:

  • クロック信号・1ビット
  • バスCの内容・16ビット
  • ラッチ・1ビット
  • バスA出力選択信号・4ビット
  • バスB出力選択信号・4ビット
  • バスC入力選択信号・4ビット

出力:

  • バスAへの出力・16ビット
  • バスBへの出力・16ビット

機能:

  • 16ビットの記憶領域を16個持つ
  • ラッチが1かつクロックが立ち上がったとき、バスC入力選択信号が指すレジスタにバスCの内容を保存する
  • バスA出力選択信号が指すレジスタの内容を出力する
  • バスB出力選択信号が指すレジスタの内容を出力する

ALU

入力:

  • ニモニック・4ビット
  • バスAの内容・16ビット
  • バスBの内容・16ビット
  • オーバーフローフラグ・1ビット
  • サインフラグ・1ビット
  • ゼロフラグ・1ビット

出力:

  • 計算結果・16ビット
  • オーバーフローフラグ・1ビット
  • サインフラグ・1ビット
  • ゼロフラグ・1ビット

機能:

  • ニモニックに従い計算する