不使用IOピンの処置
FPGAでは、RTLに記述されない不使用IOピンは(コンパイルオプションによって)弱いプルアップ付きのHiZ状態などにマッピングされるので問題ないが、将来使用するためにIOピンを制約ファイルにもRTLにも記述してあるものの、RTLで内部につながってないIOピンは、そのままにしておくとまずい。
◇
RTL記述の不使用inputは、そのままにしておいても、QuartusやVivadoではピンリストには残り、デバイス上は通常の不使用IOピンと同様にHiZになるようだが、ツールの仕様はいつ変わるかもしれないので、明示的に記述しておいた方がよい。
例1) 不使用inputはダミーのoutputへつないでおく
/* 不使用input */ module top (... ,input unused_input ,output dummy ); assign dummy = unused_input & ...; |
◇◇
RTL記述の不使用outputは、そのままにしておくとツールで勝手に処置されるようである(SynplifyではHiZ, QuartusではLow, VivadoではHiZになった)。こちらも明示的に記述しておいた方がよい。
例2) 不使用outputはLowかHighかHiZ(week-pullup)に固定しておく
/* 不使用output */ assign unused_output= 1'b0; assign unused_output= 1'b1; // =zと書くと出力がディセーブルなtri-stateバッファにマッピングされる // FPGA内は双方向バッファになっているのでweek-pullupも付けておく assign unused_output= 1'bz; |