2018.7.23
前へ
次へ
ホームページトップへ戻る


16ビットマイコンボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
いつか使ってみるつもりで入手してそのまま置いてあった16ビットCPUのことを思い出しました。
AMD社のAM188です。
その名の通り、CPUコアは80188互換の16ビットCPUです。
そのAM188を使った16ビットマイコンボードの製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第61回]



●40MHz!

[第51回]からしばらくの間悩んでおりましたAM188のCPUクロックの問題は[第57回]に至って命令コードをメモリから読み込むのに必要なクロック数がネックになるので、命令の内部処理クロックのみから計算をした実行クロック数よりも実際にかかる実行クロック数は多くなってしまう、という結論に行き着いて一件落着したのでしたが、当初は何らかの理由で外付けするクリスタルの周波数の1/2がCPUクロックになってしまうのではないか、という方向違いの疑いを持ったため、20MHzのCPUクロックを得るために40MHzのクリスタルを発注してしまいました。
先日そのクリスタルが入荷してしまいました。
現在手元にありますAM188のCPUクロックは40MHzです。
結局AM188はカタログ通り外付けクリスタルの周波数がそのままCPUクロックになることが判明しましたから、現在予定しております20MHzクリスタルを実装すると能力の50%で実行することになります。
40MHzというのはいくらなんでもちょっとべらぼうな感のあるCPUクロックですから20MHzというのはまずまず無理のないところだと思います。
思いますけれど。
せっかく購入してしまった40MHzクリスタルですので、やっぱり無理は承知で試してみたい!

このところの一連の動作テストのためにクリスタルは丸ピンICソケットを利用して差し換え可能にしてあります。
こんな具合にただ挿すだけですから。

やるしかないでありましょう。

問題はROMです。

最終的にどうするかは未定ですが、今はプログラム開発中ですので扱い易い27C256を使っています。

メモリ部分を拡大しました。

STMicro社のM27C256B12Fです。
うむむ。
これはどうやら120nsらしい…。
Datasheetで確認してみました。

[出典]STMicroelectronics社「27C256B Datasheet」

やっぱり120nsですねえ。
現在手持ちのROMで最速のものは−10ですから、アクセスタイム100nsです。
どちらにしても、これではアウトでしょう。
念のためAM188EMのDatasheetも確認してみました。

細かい数値は気にしないことにしたとしてもA19−A0およびLCS、UCSがアクティブになってからRDの上がりエッジまで3クロックですから40MHzでは75nsです。
RAMのアクセスタイムは25nsですから余裕ですけれど、さすがにROMの120nsは無理、でしょう。
40MHzでのテストのためにはせめて70ns品を入手するしかないところですけれど。
駄目もとでとりあえず試してみることにしました。
(ひょっとしてROMのオーバースペックに期待して…)
比較のためにまずは20MHzでのテストです。

logfile nd80klog\07221839.txt open

ND80KL/86に接続しました
0001 0093 - z
0003 0339 - 
*** nd80kl/86(am188) basic ****
>10p.date$,time$
>20for a=0 to 10000
>30n.a
>40p.a
>50p.date$,time$
>.
    10 PRINT DATE$,TIME$
    20 FOR A=0 TO 10000
    30 NEXT A
    40 PRINT A
    50 PRINT DATE$,TIME$
>r.
18/07/22     18:39:29
10001
18/07/22     18:39:32

>    20 FOR A=0 TO 50000
>r.
18/07/22     18:39:55
50001
18/07/22     18:40:10

>/save fortest.txt
    10 PRINT DATE$,TIME$
    20 FOR A=0 TO 50000
    30 NEXT A
    40 PRINT A
    50 PRINT DATE$,TIME$
>/exit
0003 037C - 
リモート接続を終了しました
logfile closed at Sun Jul 22 18:41:45 2018

最初はFOR NEXT 10000回で試してみましたが、わずか3秒で終ってしまいました。
これではテストになりませんからあらためて50000回で再実行してみました。
計算通りの15秒でした。

さて。
いよいよ40MHzです。
祈る気持ちでパワーオンしました。
おお。
いける、か?

なんと。
誤動作せずに実行できてしまいました。

FOR NEXT 50000回を8秒!です。
間違いなく20MHzのときの倍速です。

こういうことになりますと。
アクセスタイムの速いROMを入手するか、もしくはROMで起動するときはウェイトをかけておいて、システムをRAMにコピーして、それからウェイトを外してRAM上でシステムを実行する、などの対策をしたうえで、40MHzクリスタルもキットに含めて提供したくなりますですね。
あくまで通常動作としては安全のため20MHzとしますが、お試し版(お楽しみ版)として40MHzもあり、というのも嬉しいのではありませんでしょうか。
前向きで検討いたしますです。

16ビットマイコンボードの製作[第61回]
2018.7.23upload

前へ
次へ
ホームページトップへ戻る