inout用法浅析

技术分类: 可编程器件  | 2008-08-28
作者:ilove314: EDN China

  EDN博客精华文章  作者:ilove314

inout用法浅析

  有感于之前IIC通信中第一次使用verilog的inout端口,早就想写点什么。有些人可能会认为所谓的inout端口FPGA会自己处理,你要它做INPUT的时候从它读数据,你要它OUTPUT的时候给它赋值就行。问题可不是这么简单!

  我先送上一个表格吧,正好今天在一本书上看到了。这个表格表示的是在同等驱动强度下,两个驱动源驱动的wire型和tri型变量的真值表。

两个驱动源驱动的wire型和tri型变量的真值表

  发现问题了吧!如果某时刻inout口有输入,此时你又正好要拿这个inout口做输出那么冲突是在所难免的,会出现什么样的结果可以参考上面的表。另外看这个表,你就应该明白双向口该怎么处理了吧。下面是一种典型的用法:

  inout io_data;    //inout口

  reg out_data;     //需要输出的数据

  reg io_link;      //inout口方向控制

  assign io_data = io_link ? out_data:1'bz; //这个是关键

  当inout的口要做输入时,记得一定要把它置为高阻态z,此时你就可以把inout口当作平常的input口用了。

1
0
(请您对文章做出评价)
加载中

对文章的评论

更多评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销

  • 博客推荐

  • 论坛推荐

  • 在线研讨会