差動IOバッファのインスタンシエート

[] [] []


FPGAIOバッファはLVDSなどの差動信号も使える。RTL記述上は1つの信号のままにしておいても、ピンアサインのときに自動的にP,N2個のピンにアサインされるようであるが、RTL記述の入出力ポートと実際のピン名を11にするには、差動IOバッファをインスタンシエートする

module

    (input din_p

    ,input din_n

    ,output dout_p

    ,output dout_n

    ...);

/* Virtex,Spartanの差動IOバッファ */

IBUFDS ibuf_din (.O(din),.I(din_p),.IB(din_n));

OBUFDS obuf_dout (.O(dout_p),.OB(dout_n),.I(dout));

/* Stratix,Cycloneの差動IOバッファ */

alt_inbuf_diff ibuf_din (.o(din),.i(din_p),.ibar(din_n));

alt_outbuf_diff obuf_dout (.o(dout_p),.obar(dout_n),.i(dout));

多ビットの場合はビット数分だけインスタンシエートしなければならないので、generate文を使うとよい。

genvar i;

generate

  for(i=0; i<8; i=i+1) begin: diff_din

    IBUFDS ibuf_din (.O(din[i]),.I(din_p[i]),.IB(din_n[i]));

  end

endgenerate


[] [] []