EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——三态门之战 % c) S& a) h# @( e$ {4 ?# c; N
$ P. K4 m# ?, \0 }. M- M4 b 在之前的实验中,我们所接触到的IO都是单纯的输入(input)或者输出(output)类型,而我们的一些总线协议如IIC等,要求信号为三态类型,也就是我们所说的输入输出(inout)类型。 接下来,我们就来看一下这类信号的具体用法,输入输出类型,顾名思义就是既可以作为输入,也可以作为输出,我们可以通过如下代码学习这类信号的赋值驱动方式。 3 D: ~* s% B% m# Q
编写测试代码如下: 0 a& L( l7 r, I4 }+ `
! n4 `& H8 j* r' D" s
0 {! X8 E8 {4 V1 w) B- t% ?, ~/ T* H4 t
查看仿真波形如下:
& @" t7 |7 H4 Z1 \$ E) L- N* q/ a由上述波形可以看出,当开关关闭(flag==0),sda总线放开,处于高阻状态,此时外部数据可以输入,相当于我们模块的输入。 当开关打开(flag==1),sda等于sda_buf的值,说明此时,sda相当于我们模块的输出。
% B9 q0 c% X/ p- ~ |