打印

VHDL GPIO操作问题

[复制链接]
3366|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
entepino|  楼主 | 2013-2-5 14:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Gpio操作:
   WAIT UNTIL CLK_P ='1';
         if (axi_gpio_0_GPIO_IO_pin = "000011" )THEN
                                LED1 <= '1';
                                   LED2 <= '0';
                                        LED3 <= '0';
                   elsif(axi_gpio_0_GPIO_IO_pin ="000111")  then
                                    LED1 <= '0';
                                   LED2 <= '1';
                                        LED3 <= '0';
                   elsif (axi_gpio_0_GPIO_IO_pin ="001111") then
                              LED1 <= '0';
                                  LED2 <= '0';
                                  LED3 <= '1';
         end if;

上面这段程序为何编译时会出现如下error:
ERROR:NgdBuild:924 - bidirect pad net 'axi_gpio_0_GPIO_IO_pin<5>' is driving
   non-buffer primitives:
ERROR:NgdBuild:924 - bidirect pad net 'axi_gpio_0_GPIO_IO_pin<4>' is driving
   non-buffer primitives:
ERROR:NgdBuild:924 - bidirect pad net 'axi_gpio_0_GPIO_IO_pin<3>' is driving
   non-buffer primitives:
ERROR:NgdBuild:924 - bidirect pad net 'axi_gpio_0_GPIO_IO_pin<2>' is driving
   non-buffer primitives:
ERROR:NgdBuild:924 - bidirect pad net 'axi_gpio_0_GPIO_IO_pin<1>' is driving
   non-buffer primitives:
ERROR:NgdBuild:924 - bidirect pad net 'axi_gpio_0_GPIO_IO_pin<0>' is driving
   non-buffer primitives:


改成这样,就可以编译过去了,

    if (axi_gpio_0_GPIO_IO_pin = "000011" )THEN
                                       LED1 <= '1';
--                                   LED2 <= '0';
--                                        LED3 <= '0';
                   elsif(axi_gpio_0_GPIO_IO_pin ="000111")  then
                                                              
                                   --LED1 <= '0';
                                   LED2 <= '1';
                                        --LED3 <= '0';
                   elsif (axi_gpio_0_GPIO_IO_pin ="001111") then
                            
                                  --LED1 <= '0';
                                  --LED2 <= '0';
                                  LED3 <= '1';

什么原因,请指点一二,谢谢!

相关帖子

沙发
entepino|  楼主 | 2013-2-5 14:51 | 只看该作者
baidu了一会,也没找到解决方法,谁知道指点一二,谢谢!

使用特权

评论回复
板凳
entepino|  楼主 | 2013-2-5 16:22 | 只看该作者
我就没想通**作GPIO跟std_logic的输出端口有什么关系?莫非其内部结构是LED1,LED2,LED3输出端口是由GPIO驱动的?

使用特权

评论回复
地板
ifpga| | 2013-2-5 16:48 | 只看该作者
贴出来的代码太少了
提示应该是说,你定义的是一个双向 io
但是输出没有驱动

从你的贴出来的代码看 axi_gpio_0_GPIO_IO_pin 只是用为输入
如果真的只是这样的话
你在添加 这个IP 的时候 直接将其设置为输入 IO,应该就不会有这个问题了

使用特权

评论回复
5
GoldSunMonkey| | 2013-2-5 22:28 | 只看该作者
是呀,代码太少了

使用特权

评论回复
6
entepino|  楼主 | 2013-2-6 13:11 | 只看该作者
感谢ifpga和猴哥,找到原因了,结贴给分。

使用特权

评论回复
7
cjhk| | 2013-2-6 20:26 | 只看该作者
呵呵   还想帮楼主顶一顶的   呵呵  问题解决了就好   呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

211

主题

649

帖子

2

粉丝