您的位置 首页 IOT

Inout双向端口的用法

如果data_inout不是高阻态,则用作输出,无法做输入的,否则两者岂不有了冲突?inout端口信号做输入时,观察例子中的输出data_out_t就应该是高阻…

假如data_inout不是高阻态,则用作输出,无法做输入的,不然两者岂不有了抵触?
inout端口信号做输入时,调查比如中的输出data_out_t就应该是高阻态的.

见许多问这个问题的,总结一下我们的贴子,期望能对我们有点用途,假如有不对的当地,欢迎指出.
芯片外部引脚许多都运用inout类型的,为的是节约管腿。便是一个端口一起做输入和输出。 inout在具体完成上一般用三态门来完成。三态门的第三个状况便是高阻Z。 当inout端口不输出时,将三态门置高阻。这样信号就不会由于两头一起输出而出错了,更具体的内容能够查找一下三态门tri-state的材料.
1 运用inout类型数据,能够用如下写法:
inout data_inout;
input data_in;
reg data_reg;//data_inout的映象寄存器
reg link_data;
assign data_inout=link_data?data_reg:1bz;//link_data操控三态门

//关于data_reg,能够经过组合逻辑或许时序逻辑依据data_in对其赋值.经过操控link_data的凹凸电平,然后设置data_inout是输出数据仍是处于高阻态,假如处于高阻态,则此刻当作输入端口运用.link_data能够经过相关电路来操控.
2 编写测验模块时,关于inout类型的端口,需求界说成wire类型变量,而其它输入端口都界说成reg类型,这两者是有差异的.
当上面比如中的data_inout用作输入时,需求赋值给data_inout,其他状况能够断开.此刻能够用assign句子完成:assign data_inout=link?data_in_t:1bz;其间的link ,data_in_t是reg类型变量,在测验模块中赋值.
别的,能够设置一个输出端口调查data_inout用作输出的状况:
Wire data_out;
Assign data_out_t=(!link)?data_inout:1bz;

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/235741.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部