はっきりいって初心者丸出しですがHDLに関するページが少ないので作ってみました、自らの誤った知識を修正しようという下心もありますのでつっこみ大歓迎です。
身のほど知らずというかなんというか、とりあえずフォーマットはアスキーの256倍シリーズを真似てます。
はじめに | ||
人が主役です | 回路合成ツールは賢くなったのか | (12/05更新) |
越えられない壁 | レジスタという障壁 | |
わけてまえ! | 加算器で見る回路のチューニング | |
大差ないの? | VHDL vs Verilog-HDL | |
見た目も大事 | HDLのコーディングスタイル | |
以下未定 | ||
参考文献 |
1999.05以降はVHDL-93対応らしい、VHDL-87を指定するにはオプションが必要らしいが今、自分の部屋にいるので調べられん。まあ自分で調べてください。
そうそう、FPGA Compiler2 からDesign Ware BASICが使える事になっているが SCLではバグがあって正常に動かないらしい、Design Wareが必要な方は旧ライセンスが必要らしい。(表現が中途半端なのは裏が取れてないから、少なくともうちの会社の環境[SCL]では駄目でした)
SynopsysのVHDL CompilerはVHDL-87なのかVHDL-93なのだろうか、なーんか93にしては中途半端な気がするし、マニュアルを見てもどっちなのか見つからんし。むぅ。
ちなみに今使っているのは1999.05
VHDLでgenericの条件よりマクロを変更する記述を書く、メモリのマクロなので配置効率の関係もあり地道に出来合いのマクロを呼び出す事にする。2つや3つならgenerate文で書いていても大した事が無いのだが50近くになるとelsif構文を持たないif〜generateでは記述量が爆発してどうしようもなくなる。見通しも悪いのでなんとかしようとgenericの条件を読み込んで必要なインスタンスを呼び出すfunctionを書いた。これならばif〜generateでインスタンス呼び出しを切り替える部分をソースの下のほうに追いやり選択条件を分離して見やすくできると判断した。しかし、geerate文の条件はエラボレイト時に確定していないといけないので見事に玉砕する。思いつきの作業ほど危険なことはない、まったくもってとほほである。
ネットリスト変換の仕事がはいった。つまるところとあるチップで動いている回路を別のテクノロジのチップに置き換えるのである。昔は元の回路図を見ながらCADでひたすら1ブロック毎に置き換えていたのだが今は合成ツールに元のテクノロジのライブラリとリターゲット先のライブラリの両方を読ませてコマンド一発で、、、、行くはずなんですが、コレがまた。
この作業の場合、合成ツールはタイミングなんかも含めて丸ごと等しく移そうとする。一見何の問題も無さそうですが大抵の場合等しく移すだけじゃ終わらないんですね。もちろん論理機能的には等しくないと困るのですがスピードは厳しくなる事がある。FPGAからASICへの移植なんかはこのパターンが多そう。
まあ、FPGAからの変換の時はFPGAの設計者が選別用テストパターンの意味が解っていない、存在をしらない事のほうが問題になったりしますが。
Fpga Compiler2は妙に不安定だな、と思っていたら新しいヴァージョンのCDが届いていたので管理者にインストールしてもらう。画面の一部が表示されない等のバグは修正されたようだ。ただLOGを表示するウインドウの改行がおかしいような気がする。
DesignCompilerとの差異が多くてかなりとまどう。特にShellモードのスクリプトコマンドが全然わかんなくて往生、結局Shell上でhelpコマンドでコマンドの一覧を出し、制約関係のコマンドらしきものを片っ端からmanするという方法でなんとかする。このマニュアルもパラメータの値が間違っていたりしてどうしょうもない。
タダで配ってユーザーにデバッグさせてるんじゃと疑いたくなる。
Synopsysのdc_shellがVer.1999.05より合成スクリプトがtclベースのものも使えるようになった。スクリプトが一般的に使われている物に変わるのは喜ぶべき事かもしれん。まあ、私の会社は移行するかどうかの検討もまだしていませんが個人的にはtcに移行したい(してほしい)と思う。SynopsysはVCSをLinuxに対応する事を表明しましたしなかなか良い傾向にあるんでは。
最近ALTERAの仕事が入ったのでDesign_Compilerのおまけとして配布されているFPGA_Compiler2をさっそく使ってみた。SUNにインストールして早速起動してみると,,,