FPGAの部屋FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。初めにFPGA(その頃はアルテラだったのでCPLD)を使用したのは7,8年前なのだろうか?アルテラのMAX+PULS2というツールでFLEX10K50等を使っていた。その頃は回路図入力が多く、AHDLというアルテラ独自のHDL言語も使用していた。回路図は視覚性が高く便利なのだが、下位モジュールの入力、出力ポートを増やすとシンボルを作り直しなので、下位モジュールの配線をしてある状況ではシンボルの作り直しは大変だった。(入力、出力ポートの位置がずれてしまうことがあるためいちいち確認しなければいけない)(QurtausのBDFだっけ?ブロック図として回路を書けるのには魅力を感じたがXilinxに移行してしまった後だった)その後、全てAHDLに移行していった。AHDLではプリミティブやLPMというIPを使用した。これはいろいろなパラメータを入れることによって、いろいろな場面で使えるようした汎用のモジュールだった。LPM_DFFはDフリップフロップのLPMだが、DFFのビット幅、イネーブル信号を入れるかどうか、1への非同期クリア、0への非同期クリア、0への同期クリアなどのポートが使っても使わなくても良いようにしてあった。これでFPGAの回路を書いていたが、その頃のアルテラは小さい回路ならば早く動くが、FPGAのリソースを使い切るようになると、うちらのテクニックでは極端に遅くなるという現象があった。次のプロジェクトの時に、それでXilinxに乗り換えることにした。(現在はアルテラも魅力的だと思っている)Xilinxに乗り換えるとAHDLが使えなくなり、VHDLかVerilog-HDLの2択しかないようだった。(いまさら回路図入力はいやだった)どちらを勉強するか迷ったが、その頃はFPGAの回路を書くのにVHDLの人口比率のほうが多いという資料を見てVHDLに決めて勉強することにした。VHDLをどうやって書いていけば良いかわからなかったので、本を買って勉強したが良くわからなかった。AHDLと同様にLPMがあれば書きやすい。いうかそのほかの書き方を知らずにLPMと同様のものをVHDLで書こうと思った。(MAX+PULS2でもVHDLで書くことが出来てLPMを使うことが出来た。当然ながらソースは無い)昔はedif.orgというサイトがあって、そこにアルテラのLPMのVHDLソースがあったので、それを参考にLPMの一部を自分で書いてみた。初期のVHDLの書き方はそのLPMもどきを使って書いていくスタイルだった。そのうちに、この書き方は効率が悪いことに気が付いた。DFFなどVHDL数行で書く事が出来た。普通に書いたほうが可読性も良い。カウンタなども同じだ。それでLPMを使うのを止めることになった。今では自分だけのライブラリなども作らずに、以前作ったソースを参考にしながら書き直している。それが一番私にあっているようだ。以前書いたVHDLソースは大切ということだ。考え方、その時に調べて使ったVHDL書式が詰まっている。VHDLも書きなれて便利に使ってるが、世の中はSystemVerilogに行くとすると、これからサポートが減ってくる可能性もあるので勉強することにした。テストベンチはVerilog-HDLでもVHDLより書きやすいようだ。論理合成用のVHDLをVerilog-HDLにしていると、いろいろ出来ないことがある。Verilog2001フルサポートならばいいのだろうが一部サポートとかになると不便なこともある。今の所、テストベンチだけSystemVerilogにしたいと思っている。(まだ余り勉強していないが。process;と書いたほうがわかりやすいと思っている。URLhttps://marsee101.blog.fc2.com/tb.php/163-7fec6bbaこの記事にトラックバックする(FC2ブログユーザー)プロフィールAuthor:marseeFPGAの部屋へようこそ!FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。WEBブログデザイナ。