2011年10月02日

CPU周りの設計(4)

 VGAへの出力のため、CycloneIII の内蔵RAMを使っていますが、そのため、PC-6001 のRAMを外付けのRAMにする必要が出ました(容量が足らない)。
 また、キャラクタROMのアクセスに関しても、複数からアクセスがあるため、いろいろ考えた結果、メモリアクセスを以下のようにしました。

○メモリのアクセス

 ・RAS、CASでのアクセスは廃止する。ただし、RASをSDRAMのリフレッシュに使うかも知れない。
 ・アクセスは、アドレス、リードイネーブル(負論理)、ライトイネーブル(負論理)で制御する。
 ・アドレスは、リードイネーブル、ライトイネーブルの立ち下がりで取り込む。そのため、リードイネーブル、ライトイネーブルの立ち下がりの前後1クロックは、アドレスを安定させる。
 ・データ出力は、アドレス取り込み後、RAM側のクロックで数クロック後に出力する。このデータ出力は、次のアクセスまで安定させておく。

 現在、VDG周りの回路の中に入っているキャラクタROMは、トップレベルの階層に移動させる事にします。


 また、クロック系、リセット系も、以下のようにします。

○クロック系

 ・クロックは1つのブロックにする。シミュレーション時にダミーを呼んだりして便利。
 ・各クロックは、外部50MHzからPLLを用いて生成する。また、各PLLは、ロック信号を出力させる。
 ・生成するクロックは以下の通り。

  50MHz × 63/220 = 14.318MHz(VDG周りのクロック)
  50MHz × 23/ 72 = 15.972MHz(CPUのクロック)
  50MHz × 1/ 2 = 25MHz  (VGA出力のクロック)
  50MHz × 1/ 1 = 50MHz  (キャラクタROMのクロック)
  50MHz × 2/ 1 =100MHz  (SDRAMのクロック)

  キャラクタROM、SDRAMのクロックは、変更する可能性あり。

 ・CPU のクロックは、15.972MHz のカウンタで1/4分周して入力する。これは、クロックの関係性が必要性のため。

 ・AY-3-8910 のクロックは、本来 2MHz だが、15.972MHz を入力して、8回に1回動作させる。
 ・8049 のクロックは、本来 8MHz だが、15.972MHz を入力して、2回に1回動作させる。


○リセット系

 ・リセット系は1つのブロックにする。
 ・リセットは、CPU、「それ以外」に分けてリセットする。
 ・リセット部も含む「それ以外」のブロックは、外部からのリセットをそのまま使用する。
 ・PLLが安定して、ロック信号が全て出力された後に、SDRAM部へ初期設定パルスを出力する。
 ・SDRAM部の初期設定が完了したら、完了パルスを出力する。
 ・SDRAM部の完了パルスが入力されたら、CPUのリセットを解除する。
 ・リセット信号は、CPUクロックの立ち下がり(相当)で叩いて出力する。



posted by えすび at 19:37| Comment(0) | FPGA化:CPU周り | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。