FC2カウンター FPGAの部屋 2008年04月18日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Doxygenを使ってVHDLソースコードをドキュメント化してみました2

FPGAの部屋のブログ記事”Doxygenを使ってVHDLソースコードをドキュメント化してみました”でVHDLのソースコードを書きながら、ドキュメントを一緒に作っていたが、これはDoxygenが理解できるようなドキュメンテーションをソースに付加する必要があった。
皆さんご存知かもしれないが、Doxygen が理解できるようなドキュメンテーションは一切付いていないVHDLソースファイルをドキュメント化するタグがあったので書いておこうと思う。
それはDoxygenのマニュアルのここに書いてあるEXTRACT_ALL タグだ。このEXTRACT_ALL タグをYESにすると”EXTRACT_ALLタグが YES であれば、ドキュメントが得られなくても、ドキュメント内の要素は すべてドキュメントに出力するものとして扱います。”だそうだ。
実際にやってみた。自分でドキュメントを記述したものに比べれば落ちるが、特にコラボレーション図などは階層がわかってとてもよい。
Windows版でのEXTRACT_ALLタグのチェックの入れ方は、下のようにDoxygen GUI frontend ウインドウでExpert... ボタンをクリックする。出てきたdoxywizard で EXTRACT_ALL をチェックする。
Doxygen_080416.png

これがDDR SDRAMコントローラVHDL版のDDRtest.vhdのDoxygenによるコラボレーション図 (EXTRACT_ALL = YES)
Doxygen_2_080416.png

ちなみに、コラボレーション図のファイル名の書いてある四角をクリックすると、そのファイルのドキュメントが開く。
  1. 2008年04月18日 12:16 |
  2. Doxygen
  3. | トラックバック:0
  4. | コメント:0

仕事用PCI-Xモジュール

今日は仕事用のPCI-Xモジュールについて、ちょっとだけ書こうと思う。(あまり書くとまずいので。。。)
最初にホストのパーソナル・コンピュータ(PC)からPCI-Xボードのリソースにアクセスする機能をターゲット機能、逆にPCI-Xボードがパーソナル・コンピュータ(PC)のリソースにアクセスする機能をマスタ機能と呼ぶことにする。
PCI-Xの規格ではターゲット機能を使用して、ホストPCからPCI-XボードのSDRAMのデータをリードしようとするときに、PCI-Xボードがデータを用意できるならば、トランザクションが始まってから16クロック以内にデータを出力する必要がある。なお、すぐにリードするデータを返せない場合は8クロック以内に応答を返す必要がある。これはリトライやスプリット応答などが相当する。

ここでリトライとスプリット応答について説明すると、リトライはPCIの時代からあるもので、”後でもう一度アクセスしてね。。。”とマスタ(PCI-Xではイニシエータ)にお願いするもの、スプリット応答は”今はリード・データが用意できないけど、データが用意できたら、こちらからそちらにデータを送ります。(書き込みます、これがスプリット完了)”というものだ。

133MHz動作で16クロック以内にデータを用意できる (PCI-Xの仕様) 確証が無いため、トランザクションが始まってから8クロック以内にスプリット応答を返して(これもPCI-Xの仕様)、後からスプリット完了でリードするはずのデータをホストPCに送ることにした。ただし、コンフィギュレーション・アクセスは間に合うので通常にリードする。
そうなると、スプリット応答したトランザクションのテーブルが必要になる。後で、データが用意できたら、ターゲット・リードではあるが、マスタ機能を使用して、リード・データをホストPCに送る(これはいわばマスタ・ライト)。つまり、ターゲットのアクセスではあるが、マスタの機能を使用する。
PCI-Xボードがマスタ機能を使用して、ホストPCのリソースをリードする場合も、ホストPCからスプリット応答を返されることが多い。その場合は、ホストPCのリード・データはスプリット完了として、PCI-Xボードへのターゲット・ライトとして実行される。
スプリット完了の場合は、コマンドやアドレス、アトリビュートがスプリット完了専用になる。このように、PCIで機能わけされたモジュール(ターゲット、マスタ)はたすきがけで使用される。
下にPCI-Xモジュールのブロック図を示す。こんな感じになっている。PCI-Xモジュールの外部へはクロックが異なるので、非同期FIFOを使用する。
PCI-X_module_080416.png

結構、PCI-Xも大変なものだ。スプリット応答したテーブルを参照しなくちゃいけないし。。。
  1. 2008年04月18日 06:56 |
  2. PCI
  3. | トラックバック:0
  4. | コメント:0