ひとまず、Vivado 2016.4をインストールした。 リリースノートを見る限りはそんなに改修されているようには見えないけど、まぁ、Vivado 2016.3があまりに酷かったからねぇ。
Vivado 2016.4では2016.3で作成したプロジェクトをオープンしてもアップグレードするダイアログが開かない。 今までのバージョンでは無かったような気がするんだけど・・・。
かなり、嫌な予感・・・。
アップデートするやいなや早速、不具合に遭遇してしまった。
Block Memory GeneratorでBlock RAMを生成して使用すると、ソースコード生成の時点でaddrがDepthに合わないbit幅で定義されるという現象だ。
Widthを16、Depthを256としてIP生成をしたらaddraが4bitとなったのだ。 このまま、SynthesisするとBit幅が違うというエラーが発生して、前に進めなくなる。 おかしいと思ったので再度、Block RAMを作りなおしても結果は同じだった。
別の再現環境を作成できるかと新規でプロジェクトを作成してみると現象が発生しない。 もしかして、前バージョンのプロジェクトの場合に発生する?
それはそれで有り得そうだな。
Vivado 2016.3で作成していたプロジェクトはVivado 2016.4に進めなくなってしまった。
今までの不具合はほとんど、自分のお遊びプロジェクトで発生していたのだが今回はお客のプロジェクトで発生してしまった。 どうにかして次のバージョンに進めるようにしておかなければならない。 年内は真剣に解析するつもりもないので放置予定だがVivado 2016.4にする場合は、完全に新規でプロジェクトを起こさないといけないかもしれない。