FPGA之IOBUF功能解释小结

文章介绍了在Verilog设计中如何使用IOBUF模块来实现FPGA的双向端口。IOBUF具有O、I、IO和T四个引脚,通过控制信号T来切换输入或输出状态。当T为1时,外部信号通过IO端口输入FPGA;T为0时,FPGA内部信号通过IO端口输出。Vivado综合后,IO直接连接到IOBUF,实现了双向数据传输。
摘要由CSDN通过智能技术生成

目录

一、序言

二、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端口的数据流向

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值