目录
一、序言
二、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。
文章来源:https://www.toymoban.com/news/detail-536405.html
关键点理解,io端口为直接连接FPGA与外部芯片。通过verilog实现代码可看出,对于t信号为1时,输出o=io,此时即外部信号通过io端口输入到FPGA内部,对于t信号为0时,io=in,即FPGA内部信号通过io端口。因此,通过控制信号t控制io端口的数据流向文章来源地址https://www.toymoban.com/news/detail-536405.html
到了这里,关于FPGA之IOBUF功能解释小结的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!