goo blog サービス終了のお知らせ 

組み込まれたエンジニア

我輩は石である。名前はまだ無い。

PDP11互換CPU

2009-09-16 00:19:13 | Weblog
このところ、大規模なコード変更中の、sfl2vlのデバグのため、昔の大き目のパッケージで動作確認中。

今日確認していた、PDP11互換CPUは、2002年にI氏作成のもの。数千行になる大規模パッケージで、過去との互換性チェックにちょうどよい。

といっても、さくっと試すと当然のようにハザードストップであった。

まずは、出力端子のデータ候補にハイインピーダンスがあることのチェックルーチンで、なぜか文字列検索が停止しない不具合。停止しなければ暴走尾するかというと、システム中のどこかにZの文字を見つけるとそこで停止するので、特定の場合にのみ出力端子を3ステート対応に変更してしまう。このコアは、while(*c) という典型的な文字列検索であり、普通に動きそうなのに、動かない理由は不明だが、文字列長は既知だし、急ぎの修正のため、for文に変更。

これを対策しても、まだどこかでハザードになる?

追いかけていくと、実は、PDP11互換CPUのシミュレーションパッケージは、Verilogとのつなぎのインスタンス生成に、名前なしの引数形式の端子接続をしていて、今回、端子順序を変更したことにより、接続が間違ってしまっていた。
これは、名前指定の接続にPDP11パッケージ側を修正。ついでに、ZIP形式のアーカアイブにした上で、IP ARCHからも配布することにした。(実行には、non-profitライセンスが必須)

まだシミュレーション実行中だが、とりあえず、UNIXを擬似ハードディスクからコールドブートして、
login:
のメッセージがでるところまで来たので、動作としては完璧だろう。

20090915版は、もう少し確認したら、正式リリース版にする予定。

最新の画像もっと見る