いきなり専門用語です。ネット検索で知ったのですが、「メタステーブル」はフリップフロップにおいてクロックによるラッチ時に入力がふらつくと、出力がHighとLowの中間電位のまましばらく続き、やがてHighとLowどちらかに落ち着くという現象だそうです。
例の解像度モード切替直後に絵が出ないことがある不具合の原因はこれかもしれないと考えました。解像度の切替直後、出力用ピクセルクロックの周波数切り替えと併せて、同期信号を作るカウンタをリセットしています。そのリセット信号はX68000のピクセルクロックには同期していますが、出力用ピクセルクロックに対しては非同期です。カウンタのリセット信号とクロック信号が同時に変化するとこの現象が起きるそうですから、不具合の犯人の可能性濃厚です。早速対策回路をVHDLで追記し、リセットは非同期にかかり、リセットからの復帰はクロック同期となるようにしました。追記部分は回路図で書くと以下のとおりです。下欄のウェブサイトの記事を参考にしました。
実際に記述したVHDL(信号名と終段処理は変わっています)
結果、ピンポンのようです。その後、X68000の解像度を768X512、512X512の間で繰り返し切り替えてみましたが、画像が消えることはなくなりました。ひとつ、前進です。
以下のサイトを参考にしました。
http://www.altima.jp/products/software/mentor/fv/column/cdc-2.htmlhttp://natu.txt-nifty.com/natsutan/2008/03/fpga_05d1.html
★★★ メインサイトへのリンク 「
X68000改造室」★★★
PR
COMMENT
No Title
No Title
その後の運用で、まだ、ほんの時たま、解像度切替後、画面が出ないことがあります。まだ、何かありそうです。