Spartan-6評価ボード>コラム>XILINX ISEの設定オプションにご注意!

XILINX ISEの設定オプションにご注意!

Spartan-6の開発を行うにはXILINX ISE 11が必要ですが、ISE11のデフォルトの設定では、I/O内のフリップフロップが使われる設定になっていません。このため、入出力のタイミングをきっちり作った正確に作ったつもりでも、予期しない遅延が入ってしまって、正確なタイミングを出せないことがあります。周辺ICとのインタフェースにおけるセットアップ・ホールドタイムの不足や、論理合成後のタイミングエラーを引き起こします。

 

具体的に言うと、

process(clk) begin

   if(clk'event and clk='1') then

       input_signal_X <= input_signal_X_ip;

       output_signal_X_op <= output_signal_X;

   end if;

end process;

 

のように書くと、input_signal_Xやoutput_signal_XにはIOB内のIFFやOFFが適用されることが期待されます。しかし、ISE11ではそうなりません。CLB内の通常のFFが使われてしまいます。

 

この問題を回避するには、Implement DesignのオプションでProcess Propertyを開き、

 

次にMap Propertiesタブを開いて、Pack I/O Registers/Latches into IOBsをFor Input and Outputsにします。

 

論理合成後のDesign Summaryで、IOB Propertiesを見たときに、IFF1やOFF1が使われいれば成功です。

 

これで、貴方の設計したI/Oは、設計したとおりのタイミングで動くでしょう。


© 2015 TokushuDenshiKairo Inc. All rights reserved