wangjun403 发表于 2013-11-27 14:40:02

inout端口,到底如何使用呢?

本帖最后由 wangjun403 于 2013-11-27 17:32 编辑

假设我有这样的一个module
module test
(
    ... ,
    data
);
inout   data ;

endmodule

在本模块中怎么使用这个inout端口?

网上都是这样说的
inout data_inout;
input data_in;
reg data_reg;                         //data_inout的映象寄存器
reg link_enable;
assign data_inout=link_enable?data_reg:1’bz;    //link_enable控制三态门

但如果这样的话,会多出一个input data_in端口,这是接受不了的

谁可以给个具体点的例子

另外,如果一个模块有两个inout端口(愿意就是让这两个inout端口直接互联)
module test
(
    ... ,
    data1,
    data2,
);
inout   data1 ;
inout   data2 ;
endmodule

这又该怎么办呢

yinian 发表于 2013-11-27 14:59:45

嗯,期待高手的解答

aammoo 发表于 2013-11-27 15:47:13

没看明白撸主的问题。。。
input data_in; 用在哪了?

大傻师 发表于 2013-11-27 19:10:14

同没看懂LZ的问题- -

zxq6 发表于 2013-11-27 21:36:05

本帖最后由 zxq6 于 2013-11-27 21:37 编辑

module multiCap2(
        a;
        );
inout a;
wirea;
reg   a1;
reg   b;
reg   c;//input
assign a=(b==0)?a1:1‘bz;//output
c=a;
endmodule


示例中的b,通常使用的是总线的读写信号,因此不会出现输入输出冲突。

对于后面的那两个io连接,设计有问题,通常不会采取这种设计方式。

老夫子 发表于 2013-11-28 08:56:49

请看这里:http://www.diandesign.com/thread-1649-1-1.html

Fourier00 发表于 2013-11-28 22:23:15

01.inout data_inout;

regdata_in;

03.reg data_reg;                         //data_inout的映象寄存器

04.reg link_enable;

05.assign data_inout=link_enable?data_reg:1’bz;    //link_enable控制三态门

always@(posedge clk)
data_in<= data_inout
页: [1]
查看完整版本: inout端口,到底如何使用呢?