ひでみのアイデア帳

くだらないことなんだけど、忘れないために・・・

Cyclone V SoC

Cyclone V SoCの挙動で気持ち悪い現象にハマった。

Cyclone V SoCのARMだけを起動して、FPGA側はロードせずに、H2F(HPS2FPGA)バスでFPGAにアクセスしたら、データが読み書きできる。

FPGAをロードしてないから、H2Fにアクセスしたらデッドロックするか、不定値を返してきて欲しいんだが・・・

だって、間違えたアクセスなんだから正常な風に動作しないで欲しい。

FPGAが動作してないのにも関わらず、データの読み書きができてたもんだからすっかり、FPGA側のメモリアクセスチェックがOKだと思ってたよ。

しかし、どこのメモリを読み書きしてるんだろうか?

これって、Cyclone V SoCの仕様なの?

これが仕様だとすると、Cyclone V SoCってFPGA部分の回路として使わないのであれば、何もしないでメモリとして使用できるということ?

それはそれで、外部メモリがいらないそこそこメモリを持った、ワンチップARMシステムが作れるんだけど。

次に、AlteraのDDR3 Soft-IPをH2Fに繋げて、FPGAをロードしてアクセスしたらデッドロックした。

前者も後者も大問題。

後者はH2Fのバスは開放しなきゃいけないよ。

アクセス先が存在するのにデッドロックはNG!

DDR3 Soft-IPのステータスがわからないからデッドロックの原因もわからんし・・・

Cyclone V SoCのデバイスも含め、Alteraのツールからして、ちょっと中途半端で使いづらい。

その後、なんだかんだと悪あがきしたら、DDR3コントローラをQsysの一番上に持って行ったら、Bus Errorを検出できるようになった。

まぁ、デッドロックよりかマシかぁ・・・

って、全部のバスがBus Errorを検出するようになった。

Qsysの位置で生成されるものが動作するかしないにも関係するの?

う?ん、なんだかなぁ?。

それはそれでXilinxツールの十八番では・・・

なにもそこまで真似しなくても・・・