FPGA之IOBUF功能解释小结

目录

一、序言

二、IOBUF 例化

三、IOBUF verilog实现

四、IOBUF 综合结果


一、序言

        在verilog设计中,通常端口使用更多的申明为input,output,即输入到FPGA内部,以及FPGA输出到外部,都是单向传输,对于双向传输的场景需要使用到inout类型。

二、IOBUF 例化

        在xilinx中例化使用双向端口是使用IOBUF,IOBUF定义如下,可看到有四个pin,O、I、IO、T,其中T为控制端口,控制IO为输入或输出

   IOBUF #(
      .IS_CCIO("FALSE") 
   )
   IOBUF_inst (
      .O(O),   // 1-bit output: Buffer output
      .I(I),   // 1-bit input: Buffer input
      .IO(IO), // 1-bit inout: Buffer inout (connect directly to top-level port)
      .T(T)    // 1-bit input: 3-state enable input
   );

三、IOBUF verilog实现

 module iobuf
 2     (   inout   io,
 4         input   t,
 5         input   in,    
 6         output  out);
 8 
 9     assign out=t?io:in;        
10     assign io=~t?in:1'bz;
11     
12 endmodule

四、IOBUF 综合结果

在vivado查看Synthesize后的模型,如下图,其中io是直接连接到IOBUF_inst的pin:IO上,因为为双向传输的,中间未插入IBUF或OBUF。

关键点理解,io端口为直接连接FPGA与外部芯片。通过verilog实现代码可看出,对于t信号为1时,输出o=io,此时即外部信号通过io端口输入到FPGA内部,对于t信号为0时,io=in,即FPGA内部信号通过io端口。因此,通过控制信号t控制io端口的数据流向

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值