SANMAN

思いつきの考えを垂れ流すブログ

FPGA初心者が開発するのに必要な知識

何も知らない初心者が、FPGAをとりあえず設計するのに必要な知識についてテキトーに。

 

RTLコーディング能力

RTLでの設計はしばらくは消えないだろう。

言語はVerilogVHDLがあるが、SystemVerilogが使われ始めているからVerilog-2001スタートが良いかと思う。

SystemVerilogでそのまま使える。

VerilogVHDLどちらも論理回路設計に必要な知識は簡単だし、とりあえず書けるレベルには3日もあれば到達できる。

回路設計に必要なレベルでは言語習得の難易度はあんま大したこと無く、雑魚い。

言語ではなく回路がわからなくて、どうRTLを書いてよいかわからなくなるはず。 

言語習得は楽なのだ。

 

最初は以下のようなネットの記事や講義資料、FPGAベンダー(AlteraとかXilinx)の推奨コーディングスタイル等の資料を見ていけばいい。

http://www.kumikomi.net/archives/2009/07/verilog_hdl.php

http://www.altera.co.jp/literature/hb/qts/qts_qii51007_j.pdf

http://japan.xilinx.com/support/documentation/white_papers/j_wp231.pdf

http://japan.xilinx.com/support/documentation/sw_manuals_j/xilinx11/sim.pdf

などなど。

FPGAベンダーの資料は最新の方がいいけど、基本は同じなので日本語資料でどんなものか慣れておくといい。

2進数関連の知識

2進数での除算、2の補数やQ表記、グレイコード、バイナリカウンタの性質など、2進数を使った様々なアイデアなど2進数にまつわる知識が必要。

とりあえず覚えるにはWikipediaあたりで充分かと思う。

2進数に対する深い理解が、効率的な回路作成につながる。

論理演算・ビット演算についての知識

論理回路は0か1しかないので、必然的。

これは慣れだからその都度ググりながら身に付ければ良い。

めんどくさいが単純なのでそのうち勝手に覚える。

論理回路についての知識

自分が書いたRTLがどのような回路になるのか想像できないままだとかなり困る、というか詰む。

回路を意識してRTLを覚えるか、簡単なRTLの論理合成結果を見て理解していくしかない。

RTLも論理回路も初めてレベルだったら、RTLの文法を覚えてから論理回路を学ぶと良いと個人的に思う。

 

論理回路の基礎的な知識についてはネット上の講義資料で事足りる。

http://ocw.u-tokyo.ac.jp/lecture?id=11273

静的タイミング解析(STA)についての知識

個人的にRTLよりも重要だと思う。

なにせPassしないとちゃんと動作する保証がないのだから。

FPGAを100MHz以上の高速動作させるには必須の知識。

 

論理回路についての知識があり、自分がどのような回路を書いているかがわかっていればできる。

 

SDCでタイミング制約を記述して、ツールによる解析結果から何が問題となっているかわかれば、SDC制約変更やRTL変更による回路構成の見直し等の改善策を実施できる。

とりあえずはクロックの指定とフォルスパス指定ができれば良い。

 

タイミング解析については以下の連載記事が優しい。

http://monoist.atmarkit.co.jp/mn/articles/0810/31/news140.html

FPGAベンダーのサイト等にも資料がある。 

タイミング解析に特化した本は売ってるの見たこと無い。

IO規格についての知識

FPGAは多数のIOピンを持ち、様々なIO規格に対応できるのが魅力の1つ。

FPGAが対応できるIO規格や、FPGAチップ本体のもつIOの制約についての知識が無いと、この魅力が出せなくなってしまう。

FPGAの選定時にも困る。

 

基板設計者に任せおけば詳しくなる必要は無いけれど、以下の記事が理解できるくらいの知識はさすがに必要。

http://www.kumikomi.net/archives/2009/05/ioledrs-232.php

おわりに

とりあえずこれらの知識がまあまあ身につけば、ちゃんとした回路検証やシステム設計、アーキテクチャ検討等の話に入ることができるようになってくる。

とりあえずは1ヶ月弱くらいかな。

 

読んでおいたほうが良いのは以下の2冊。 

たぶん1年はお世話になる。

定本 ASICの論理回路設計―高速・高信頼ディジタル・システムのための設計ノウハウ

定本 ASICの論理回路設計―高速・高信頼ディジタル・システムのための設計ノウハウ

 

 

 

 

回路のイメージがどうしてもわからなければ以下の本が良い。

FPGA入門―回路図とHDLによるディジタル回路設計

FPGA入門―回路図とHDLによるディジタル回路設計