阅读:2466回复:5
请教一个关于FPGA双向输入输出引脚问题
我用的是图形输入方式,有一个模块对外提供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到模块的双向数据线时,另一个去掉就可以编译通过,请问我如何能解决这个问题?谢谢!
|
|
沙发#
发布于: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] |
|
板凳#
发布于:2003-11-10 09:32
link_bridge,我还有两个疑问想问一下:
1为什么我只连一个双向IO pin到模块的双向数据线时,另一个去掉就可以编译通过,那这样的话如果要连两个,是不是两个都要加三态输出? 2还有看了你写的VHDL后,我不明白那如果data_bus做输入的时候,三态门怎么控制? 呵呵,我是初学者,有些基本概念还不是很清楚,多多指教,谢谢 |
|
地板#
发布于:2003-11-10 09:38
呵呵!
输入不用三态控制,输出要三态控制。 |
|
地下室#
发布于:2003-11-10 16:57
明白你的意思了,我还有个不明白的地方输出的三态门由什么控制的?具体来说就如你所用的“data_bus_out_enable”信号的赋值问题,这个信号为1或为0是由什么决定的? :D
谢谢你的解答:) |
|
5楼#
发布于:2003-11-10 18:52
这个看你什么时候要输出数据,什么时候就让data_bus_out_enable这个信号为有效状态。
|
|