VHDLの可視化ができないものかと

オートパイロットシステム SuperSylphideですが、FPGA基板のソフトがとりあえずひと段落しました。今では『進捗状況(18) -- i2cでサーボインターフェイス』に書いた、i2cによるサーボ信号の読み出し、書込みができます。この内容を記事にしようと考えたのですが、表題の問題が発生しました。

事の発端は、記事用にとVHDLを回路図にした絵が欲しくなったことに始まります。ターゲットFPGAはXilinxのspartan3なので、開発にも同じくXilinxのISE WebPACKを使用しているのですが、このソフトで表示されるRTL Schematicsは実に説明に都合がいい回路図なのです。

ISE_RTL.png
WebPACKにてRTL Schematicsのスクリーンショット

ところが残念ながら、この回路図を画像ファイルとして保存することができません。贅沢はいわないので、epsファイルぐらい(笑)吐いて欲しいものです。描画できるのだからファイルに落とし込むことなど容易いとは思うのですが、ないものはないのです。そこで解決方法をいくつか探ってみました。

  1. RTL Schematicsの印刷はできるので、そこでPrimo PDFなどを使ってPDF化。その後pdftopsなどを使ってepsに変換して、最後はイラストレータで加工。でも文字化け…
  2. 元のファイルはVHDLなので、その可視化を直接行ってくれるものがないか探す。signsというeclipseのプラグインとしても動作するツールがなかなか良さそうだが…
  3. 回路図を別のフォーマットで書き出した上で、他の可視化ツールで読み込んで画像に出力。EDIFというフォーマットがデファクトらしいが…

上記の選択肢の末尾からご察しいただけるかと思いますが、どれも満足がいく結果が得られませんでした。

1.については、WebPACKが吐き出すPDFファイルは怪しげなフォントが埋め込まれてしまっているので、イラストレータで開くのに適したepsが最終的に得られませんでした。埋め込まれたフォントを置換するスクリプトが用意できればよいのですが、そこまではチャレンジしませんでした。

2.についてはsignsがeclipse上でうまく動作してくれませんでした。signs-0.6.3を使ってみたのですが、『(signsがコンパイルした)ライブラリのトップモジュールがおかしいよ』的なエラーがでて、描画をしてくれません。今後のバージョンに期待したいと思います。

3.ですがEDIFのviewerで無償のものを発見できず断念しました。デファクトならば標準的なソフトが無償で提供されてもいいものだとは思うのですが…。Wikipedia『EDIF』をみると事情が多少垣間見られます。ところでこのEDIFは実は内部的にはS式なので、パースが非常に簡単です。ということは、ごにょごにょしてEagleの回路図に変換ということもできるかもしれません、検討してみようと思います。

もしよい方法をご存知でしたら、是非ともお教えください m(_ _)m

June 18, 2008 00:06 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク

コメント

いつも参考にさせてもらっています。

http://natu.txt-nifty.com/natsutan/2007/09/xilinx_iseedifl_a1bf.html

以前自分のBlogで書きましたが、EDIFはLisp系の言語なら何もしなくても読み込みできます。ごにょごにょ先のイメージを教えていただければ、もう少し進めてみたいと思います。

EDIFのフォーマットもよく分からないのですが、ISEが出力する物だけであれば、現物合わせしても良いと思います。

Posted by: なつたん : June 18, 2008 06:11 PM

>なつたんさん
こんにちは。検索している最中にそちらのページも参考にさせていただきました。
残念ながらその後さらに調査したところ、EDIFに変換できるのはTechnology Schematics(.ngcファイル)のみで、RTL(.ngrファイル)についてはコンバータが用意されていないことがわかりました。勝手にぬか喜びに巻き込んでしまい、申し訳ありません。現在はVHDLを直接パースする方向で検討しています。
『ごにょごにょ』ですがEagleは操作をスクリプトという形で記述することができます。これを使えば回路図を描くことは非常に容易いので、スクリプト形式に変換してEagleをRTL Viewerとして利用することを考えてみました。

Posted by: fenrir : June 19, 2008 10:24 PM

fenrir さん

いえいえ、こちらこそ中途半端になっていてすいません。
> スクリプト形式に変換してEagleをRTL Viewerとして利用することを考えてみました。

これはすごいですね。もし形になったら教えてください。

Posted by: なつたん : June 20, 2008 02:09 PM

単に、画像ファイルにしたいだけならばPDFCreatorが使えませんか?
カメラモジュールの完成、楽しみにしています。

Posted by: ぽん太の主人 : August 25, 2008 04:33 PM

>ポン太の主人さん
コメントありがとうございます。しかし、お薦めのPDFCreatorを試してみましたが、本文中にあるPrimo PDFと同様に画面出力と同程度の"綺麗な画像"を得ることができませんでした。折角教えていただきながら申し訳ありません。
おそらくPDFCreatorもPrimo PDFと同様に裏でGhost Scriptが走っていると思うので、"綺麗な画像"が得られないのはプリントドライバ側の問題ではなく、Xilinx ISE側の問題であり、PDFを出力するプリンタを利用する方法は全てNGなのではないかと思っています。
あとカメラモジュールですが"おまけ"的扱いなので、なかなか作業時間がとれていません。長い目で見て戴けると助かりますm(_ _)m

Posted by: fenrir : August 25, 2008 10:09 PM

PDFCreatorはpdfではなく直接jpgやbmpで出力することが出来ますがその結果が"綺麗な画像"ではない、ということでしょうか?難しいですね。

Posted by: ぽん太の主人 : August 29, 2008 02:19 PM

>ぽん太の主人さん
jpg等画像形式も試してみましたが、満足できる品質ではありませんでした。なぜ画面にてでいるとおりにならずに、線の色が青と茶色、しかも太さがばらばらな図がでてきてしまうのか、悲しい限りです orz

Posted by: fenrir : August 29, 2008 09:34 PM

コメントする