集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2604|回复: 2

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

[复制链接]
UFP 发表于 2010-6-27 23:49:42 | 显示全部楼层 |阅读模式
本帖最后由 fpgaw 于 2010-7-12 11:38 编辑

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

if(we)
mem[addr]<=data; //we为1写操作,但是之前data为高阻,那么写进去的数不都是高阻吗
end
always@(posedge clk)
begin
if(~we)
data_out_reg<=mem[addr];
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 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-6 12:25 , Processed in 0.058511 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表