うあうあ。普通にコンパイルできる方法が!
以前、コンフィグROMを2コ使えば、CYCLONEじゃなくても、別のFPGAでコンパイルできるじゃん!という記事を書きましたが(以下)
どうやら、コンフィグROM 1コでもコンパイルする方法があったみたいです。
= 見つけたよ
FPGAボードDE0またはDE0-CVに合体してMSX化するオーバーレイボード「DEOCM」なるもののデモを見まして
気になって、実装を調べたわけです。
= どうやってるのか?
DEOCMは、当初DE0での実装用だったんですが、@uniabis 氏がDE0-CVの方で実装してして、ソースをgithub公開してました。
それを見ると、問題の箇所は
U91 : cyclonev_asmiblock
port map(EPC_CK, EPC_CS, EPC_OE, EPC_DI, 'Z', 'Z', 'Z', not EPC_OE, '0', '0', '0', open, EPC_DO, open, open);
に変更されてました。いや、このmodule ベースのcyclone版とピン数ちがくない?
おまけにEPC_DIはdata0out,EPCDOはdata1outにつながってるんですけど。
こんなテクニカルなこと、どうしてわかるの?公開資料なしに。
= ほかのデバイスでは?
どうにも調べようがなかったんですが、ふと思いついて これを やってみました
1. quartus のIPCatalogでASMI Paralell IIをcleateします。
デバイスは、なぜかMAX10ではcreateできないので、それ以外を選びます。
2. altera_asmi2_qspi_interface_asmiblock.svを探します。
(本当は*_asmiblockを検索して見つけました)
ここに、各デバイスでの対応asmiblockのモジュール名が列記されてます。
MAX10はfiftyfivenm_asmiblock()で、cycloneと同じpin配置ですね。
Cyclone IV Eもcycloneと同じpin配置。
Cyclone IIIはv18.1ではサポート外れてるのでわかりませんでした。
が、多分同じなので、スルニョと移植できたんでしょうね。
当時の私がMAX10で実験したのが敗因の様です。
MAX10ではこんな感じに実装できました。
ただーし、MAX10のconfig ROMは内蔵なので、実は使えない可能性も残ってます。
= さらに私よりずっと前に!
なんと、2011年にもやってる例が。
1chipMSX on DE0-nano - ゲーム研究会(らいふゼロ)
実装方法はわかりませんが。
つうわけで、恥さらしlogを
:-(