FPGAプログラミング |
![]() ![]() ISEとはザイリンクス社のCPLD/FPGA開発ツールです。ザイリンクス社WebサイトからWebPACKが無料で配布されています。 ![]() ザイリンクス社Webサイト参照のこと。 ![]() 上記ISEプロジェクトをダウンロード・解凍し、適当なディレクトリにコピーした後、sp_fir_ps.iseをダブルクリックするとISEが立ち上がります。 ![]() ザイリンクス社Webサイト参照のこと。 ![]() ザイリンクス社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からなる回路ブロック。 ![]() 上記ISEプロジェクト内のRam.vhdはRAMのVHDLファイルです。このように記述してISEで論理合成すると、この部分はFPGA内部のBRAM(Block RAM)に割り当てられ(*)、クロック同期のスタティックRAMとして動作します。 (*)BRAMに割り当てられるかどうかは論理合成ツールに依存するので、論理合成後に確認しましょう。ISEのメッセージを見ると、 Number of Block RAMs ; 5 / 12 ( 41 % ) ; となっており、BRAMが使用されていることが確認できます。 ![]() 上記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ビットの乗算を構成しているということです。 ![]() 下記は入出力に関するメッセージです。 Number of bonded IOBs ; 9 / 66 ( 13 % ) ; データの入出力フォーマットはシリアルなので、I/Oピンは9ピンと少なくすみました。 ![]() 下記はStatic Timing Reportの一部です。 Minimum period: 19.986ns (Maximum frequency: 50.312MHz) レポートによるとMCLKは50.312MHzまで動作します。マスタークロックは48MHzなので問題ありません。
|