2009年05月05日

“Verilog-2001 Code Book”について

昨日のブログに「おおごと」と書きましたVerilog-2001 Code Bookの分割ですが、意外と簡単にできました。

この文書は、FPGAを使用する際に使用されるさまざまな信号処理のアルゴリズムを、Verilog-2001で記述したソースコードを提示して、解説したものです。

これまでのところ、符号付整数と符号なし整数に対する、加減算とシフト演算に関する部分が出来上がっております(まだまだ手直しは必要だと思いますが)。この機会に、同文書に対する今後の計画について、簡単に述べておきましょう。

加減算、シフト演算の次に来ますのが乗算ですが、これは通常IPを用いて行いますので、その旨を述べた後、定数乗算について簡単に解説する予定です。

除算と開平演算については、IPも存在しますがあまり自由度がないため、コードを解説する必要がありそうです。

ここまでで算術演算が終わります。次いで、論理演算と信号線の連結と分割について解説いたします。第1部の表題を「算術演算」から「算術演算と論理演算」としてまとめるのが良いかもしれません。

論理演算とは少々趣をことにしますが、論理演算の解説に先立って、信号線の連結と分割、すなわち、添え字を用いた部分ビット列の取り出し、および“{”と“}”を用いた信号線の連結を解説する必要があるでしょう。

論理演算としては、“&”、“|”、“^”、“~”というおなじみの論理演算子とベクトルに対してこれらの演算子を単項演算子として作用させた場合の効果について述べることになります。

最後に論理演算の応用編として、符号付整数の符号拡張、オーバーフローの検出、一致検出などについて言及したいと思います。

以上で、静的な演算論理回路の解説を終え、次に、クロック同期論理についての解説を行うことになります。

クロック同期論理の解説に必要なことは、第一にレジスタ定義と“always@(posedge clock)”文が必要です。また、always文に複数の文を含めるための“begin end”もこの部分で解説する必要があるでしょう。

第二には、制御文を解説すべきところで、“case”文と“if else”文がこの部分で解説されることになるでしょう。

ここまで解説した後に、“module”宣言について改めて解説いたします。この中では、トップモジュールとサブモジュールの違い、モジュール内に他のモジュールを配置する方法などについての解説も行われます。

以上が基礎編でして、次が応用編ということになります。応用編につきましては、いまだ全体像が固まっていないのですが、およそ次のような内容となるものと考えております。

応用編その1は、論理の構造にかかわる部分で、以下のような内容を盛り込もうと考えています。

・実行タイミングの制御:RTL論理の要でありますレジスタ間の遅延時間と、パイプライン処理について説明する必要があるでしょう。

・ステートマシンとシーケンシャル処理:FPGAに順序回路を形成する手法とその応用に付き解説いたします。

・モジュール間通信:モジュール間でのデータのやり取りについて、クロックに同期する方法と、セマフォーを用いる手法に付いて解説いたします。

応用編その2は統計処理とフィルタリングに関する部分で、およその内容は次のようになります。

・平均値と分散の算出
・ウィーナー・ホッフフィルタとカルマンフィルタ
・畳み込み積分とIIRフィルタ
・FFT(高速フーリエ変換)

また、このページの趣旨とは少々外れるのですが、これらの論理を実際に試すための手法として、Altera社のQualtus IIの使い方、すなわち、ダウンロード方法と使用方法に関する簡単な解説も必要ではなかろうかと思います。余裕があれば、これと並行してXilinx社のツールについても解説したいと思います。

以上を全部そろえるには少々時間がかかりそうですが、少しずつ製作してアップロードしていきたいと考えております。これらの内容に関して御意見、御要望などありましたら、本ブログにコメントを付けていただくよう、よろしくお願いいたします。
しかし、なんでレジの宣伝がつくのでしょう。もちろん、上の文章には「レジスタ」という言葉がありますので、これに反応したのだと思いますけど、このブログの読者で業務用の「レジ」を買おうなどと考える人が果たしているものでしょうか。

まあ、実害はないのでしばらくはこのままにしておきますが、あまりにも無意味な宣伝ばかりが続くようなら、記事下の宣伝も削除するようにいたします。
posted by 管理人 at 15:30| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/28889056

この記事へのトラックバック
Powered by さくらのブログ