UFP 发表于 2010-6-27 23:49:42

请讲解一下这个例子中的inout用法

本帖最后由 fpgaw 于 2010-7-12 11:38 编辑

module ram(clk,we,data,addr);
input clk,we;
inout data;
input addr;
reg mem;
reg data_out_reg;
assign data=we?'bz:data_out_reg; //如果we=1,data 为高阻
always@(posedge clk)
begin

if(we)
mem<=data; //we为1写操作,但是之前data为高阻,那么写进去的数不都是高阻吗
end
always@(posedge clk)
begin
if(~we)
data_out_reg<=mem;
end
endmodule

不知道我的理解哪里有问题,请指点下,谢谢!(注释是我自己的理解)

CCIE 发表于 2010-6-28 01:19:46

DATA是数据线支持三态。在进行写操作时(WE=1),有外部设备提供数据。当然,在你的FPGA内部就应该把DATA置为高阻状态。否则,数据就不正确了。反之,亦然。

Sunlife 发表于 2015-7-4 10:29:45


DATA是数据线支持三态。在进行写操作时(WE=1),有外部设备提供数据。当然,在你的FPGA内部就应该把DATA置为高阻状态。否则,数据就不正确了。反之,亦然。
页: [1]
查看完整版本: 请讲解一下这个例子中的inout用法