以前、自分で作成したIcarus Verilog用の合成ターゲットファイルは、iverilog-0.7用で、これを使えば、Allianceの合成系に接続できることは分かっているけれど、残念ながら0.7はgcc4系ではコンパイルできない。
もう少し何かやれることはないかと、少し調べてみる。
もともと、Icarus VerilogはXNFやAtmelのFPGA用の合成をするように構成されているが、そのターゲットの一つに、LPMを用いたEDIFがある。LPMなんで、おそらくAlteraのツールにはそのまま持ち込める気がするが、他のベンダーでLPMをまともにサポートするベンダーってあるのだろうか?
とまあ、そんなことは置いておいて、とにかくEDIF形式にはなる。LPMのセルをどこかで書いてあげれば合成系に接続できる。sxlib用のターゲットでは、このLPMの展開をすべてターゲットモジュール内のCのコードで行っていた。
で、今回提案するパスは、
iverilog -tedif -o hoge.edi hoge.v
として、LPM版の合成を行わせる。
x2y edi vst hoge hoge
として、Allianceのツールで、VHDLストラクチャード形式に変換。
LPMのセルを動作記述で作成し、vasyで変換する。
LPMのセルは元々の種類は限られているが、パラメータが変わることでバリエーションができる。
EDIFファイルを読み込んで、対応する動作記述を自動生成しないと、少ししんどいかも?