zfnuaa
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2004-04-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2466回复:5

请教一个关于FPGA双向输入输出引脚问题

楼主#
更多 发布于:2003-11-08 15:17
我用的是图形输入方式,有一个模块对外提供8位的双向数据线,现在我想要让这8位数据对应我的FPGA两组8位I/O口(也就是要2组同样的双向数据线),所以我就加了两个8位的bidir pin(分别是data_bus1[7:0]data_bus2[7:0],然后再直接用连线连到我的模块上的8位的双向数据线,两个pin都是连在一起的,结果在编译的时候出问题了,报的出错信息是:Tri-state bus fed by primitive BIDIR data_bus1[7], but can be fed only by tri-state primitive,一共有8个,我看了一下,好象是我的2个pin不能直接和模块的双向数据线相连,中间要加点什么,但是如果我只连一个pin到模块的双向数据线时,另一个去掉就可以编译通过,请问我如何能解决这个问题?谢谢!
link_bridge
驱动巨牛
驱动巨牛
  • 注册日期2002-11-28
  • 最后登录2011-05-15
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望13点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-11-08 15:55
双向的IO必须加三态输出,和一般的in,out不同。
也就是说还要有一个输出控制信号!

如:data_bus<=data when data_bus_out_enable=\'1\' else (othser<=\'Z\');




[编辑 -  11/8/03 by  link_bridge]
zfnuaa
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2004-04-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-11-10 09:32
link_bridge,我还有两个疑问想问一下:
1为什么我只连一个双向IO pin到模块的双向数据线时,另一个去掉就可以编译通过,那这样的话如果要连两个,是不是两个都要加三态输出?
2还有看了你写的VHDL后,我不明白那如果data_bus做输入的时候,三态门怎么控制?
呵呵,我是初学者,有些基本概念还不是很清楚,多多指教,谢谢
link_bridge
驱动巨牛
驱动巨牛
  • 注册日期2002-11-28
  • 最后登录2011-05-15
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望13点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-11-10 09:38
呵呵!
输入不用三态控制,输出要三态控制。
zfnuaa
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2004-04-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-11-10 16:57
明白你的意思了,我还有个不明白的地方输出的三态门由什么控制的?具体来说就如你所用的“data_bus_out_enable”信号的赋值问题,这个信号为1或为0是由什么决定的? :D
谢谢你的解答:)
link_bridge
驱动巨牛
驱动巨牛
  • 注册日期2002-11-28
  • 最后登录2011-05-15
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望13点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-11-10 18:52
这个看你什么时候要输出数据,什么时候就让data_bus_out_enable这个信号为有效状态。
游客

返回顶部