FPGAプログラミング
ISEプロジェクト(クリックでダウンロードできます)

CPLD/FPGA開発ツールISE
 ISEとはザイリンクス社のCPLD/FPGA開発ツールです。ザイリンクス社WebサイトからWebPACKが無料で配布されています。

ISEのインストール
 ザイリンクス社Webサイト参照のこと。

ISEを立ち上げる
 上記ISEプロジェクトをダウンロード・解凍し、適当なディレクトリにコピーした後、sp_fir_ps.iseをダブルクリックするとISEが立ち上がります。

ISEでコンパイル
 ザイリンクス社Webサイト参照のこと。

ISEでプログラミング
 ザイリンクス社Webサイト参照のこと。

使用率に関する主なメッセージ
 下記はISEでコンパイルした後に現れるメッセージの一部です。
 Number of occupied Slices ; 814 / 2448 ( 33 % ) ;
 Number of Slice Flip Flops ; 139 / 4896 ( 2 % ) ;
 スライス(*)は3分の1しか使用していないので、同じFIRフィルタでしたらもう2個くらい入りそうです。フリップ・フロップ(F/F)の使用率はわずか2%です。これは遅延器をRAMで構成したため、DF/Fはあまり必要なかったからです。
(*)スライスとは、プログラム可能な論理回路と複数のF/Fからなる回路ブロック。

FPGA内部のBRAMを使用する
 上記ISEプロジェクト内のRam.vhdはRAMのVHDLファイルです。このように記述してISEで論理合成すると、この部分はFPGA内部のBRAM(Block RAM)に割り当てられ(*)、クロック同期のスタティックRAMとして動作します。
(*)BRAMに割り当てられるかどうかは論理合成ツールに依存するので、論理合成後に確認しましょう。ISEのメッセージを見ると、
 Number of Block RAMs ; 5 / 12 ( 41 % ) ;
となっており、BRAMが使用されていることが確認できます。

乗算器は2個使用
 上記ISEプロジェクト内のFir16bits.vhdはFIRフィルタ本体ですが、その中に
HnXn <= MuxXn * MuxHn;
という記述があり、MuxXn(データ)は16ビット、MuxHn(係数)は20ビットなので、16ビットx20ビットの乗算器が1個必要になります。乗算器に関するメッセージを見ると、
 Number of MULT18X18SIOs ; 2 / 12 ( 16 % ) ;
 このFPGAは18ビットx18ビットの乗算器を12個持ちます。したがって、それを2個使用して16ビットx20ビットの乗算を構成しているということです。

I/Oピンは9個使用
 下記は入出力に関するメッセージです。
 Number of bonded IOBs ; 9 / 66 ( 13 % ) ;
 データの入出力フォーマットはシリアルなので、I/Oピンは9ピンと少なくすみました。

速度は50MHz
 下記はStatic Timing Reportの一部です。
 Minimum period: 19.986ns (Maximum frequency: 50.312MHz)
 レポートによるとMCLKは50.312MHzまで動作します。マスタークロックは48MHzなので問題ありません。

Back


Top Page