DE1 に 68000 をつなぎたい
3年ぐらい無駄に時間を過ごしている感がありますが、ノウハウができてきまして、2013年になったら件名の通りにやろうと思います。16/32bit CPU を FPGA に持たせるというのはとても有意義な反面、ビルドに時間がかかるので開発時には不便だと最近思うようになりました。(シミュレーション時と量産時にはメリットが大きい)
1番の問題はピン数が限られていること、2番目の問題は物理的な大きさと5V動作の問題です。1番目は単方向信号はできるだけまとめてしまうこと、2番目の問題は 68SEC000 の存在を知ったこと(恥ずかしい)や入手ルートができたことで解決するものと思われます。
ピン数の稼ぎ方は DE1 からみて入力(CPU からみて出力)の場合は 74541 を並列につないで OE で出力先を指定します。DE1からみて出力側 (CPU からみて入力)の場合は 74574 を並列につないで CLK でデータを確定させます。
双方向の場合は 74541 と 74574 を並列につなぐことで理論上実装できます(回路図を書くのは楽)。しかしバスの配線が異様に複雑になるのであまり現実的ではありません。8051 のようなパラレルIO IC があるとその手間は減りますが、その分野の IC に現行品は存在せず、 3.3V 対応となると本当にあるのかわかりません。
ピン数を減らすということは、 OE や CLK のスイッチングのための時間やFPGA内部の論理構成がトレードオフになることや基板実装のための面積を使ってしまうことを忘れてはいけません。
双方向 (18pin)
- RESET
- HALT
- D15:0
出力単体 (4pin)
- CLK
- input muliplex select3:0
clock は重要かつ更新頻度の面からいって単体出力にすべきである。
input multiplex selectは 74139 を使えば2pinに減らせる。
出力複合 (8pin?)
0
-
-
-
-
-
-
- -
-
-
-
-
-
CPU への出力端子はそんなに多くないので、CPU以外につける部品(SRAM のアドレスバスとか)出力に複合させた方がよさそう。
入力複合 (8pin)
0 1 2 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-