集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 10670|回复: 23

CPLD的LED的设置IO口输出不行?

[复制链接]
inter 发表于 2010-6-26 00:34:44 | 显示全部楼层 |阅读模式
CPLD的LED的设置IO口输出不行?
我的目的是用一个按键接到CPLD的一个IO(定义为key)口上,另一个IO口(定义为LED)接了一个LED灯,当按键按下时,LED灯亮,再次按下按键时,LED灯灭,如此循环(也就是说一个按键来控制2个状态)
...............
SIGNAL flag: STD_LOGIC:='0';  ---一个标志位
PROCESS (key)
IF key='0' THEN      --按键被按下
   IF flag='0' THEN   
   flag<='1';
  ELSE
   flag<='0';
  END IF;
  IF flag='1' THEN
    LED<='0';     --标志为为 1 时,LED灯亮
   ELSE
    LED<='1';      --标志为为 0 时,LED灯灭
   END IF;
END IF;
END PROCESS;
我下载到板子上结果很奇怪,接LED的在这个IO口输出的电平有时候只能1.7V,有时候是3.3V,这样就导致,有时候我要按好几下按键,才会变到另一个状态(原意是按一下按键,LED的这个IO口输出3.3V,再按一下就输出0V)。我用示波器看了接按键的IO口,应该没有抖动。
麻烦大家帮我分析一下会是什么原因导致的。
谢谢!!!
AAT 发表于 2010-6-26 01:33:40 | 显示全部楼层
你这样写程序肯定不行,建议找本讲vhdl的书来看看再说。
usd 发表于 2010-6-26 02:30:53 | 显示全部楼层
why? I THINK THE PROCEDURE IS RIGHT.........
longt 发表于 2010-6-26 03:34:20 | 显示全部楼层
wice17 <br>
你能告诉我为什么这么写不行呢?我觉得这样写逻辑没有问题啊
FFT 发表于 2010-6-26 03:58:52 | 显示全部楼层
第一:应该会生成一个锁存器。<br>
第二:既然是按键,又生成一个锁存器,检测按键没有消抖电路吗?
VVC 发表于 2010-6-26 05:43:14 | 显示全部楼层
消抖有的,而且我其他按键功能只是按一下,灯就亮,<br>
只有这个功能要求是按一下灯亮,再按一下灯灭,而且我拿示波器看了,也没有抖动<br>
<br>
生成锁存器倒是有可能,怎么可以解决呢?希望能给点提示<br>
<br>
[ 本帖最后由 FerrariTim 于 2007-1-22 12:41 编辑 ]
CTT 发表于 2010-6-26 06:50:52 | 显示全部楼层
我认为应定义为变量类型如果是信号可能有延迟的。
usd 发表于 2010-6-26 07:19:38 | 显示全部楼层
在这个程序中,key为敏感变量,flag也为敏感变量,把flag加入敏感变量列表试一下.
tim 发表于 2010-6-26 08:57:37 | 显示全部楼层
首先感谢楼上两位<br>
我把flag加入敏感变量列表,结果也是一样的<br>
另外,我在进程中把flag定义成变量,变量的赋值应该是立刻的,但是结果还是那样
usd 发表于 2010-6-26 10:33:20 | 显示全部楼层
不知楼主有没有做过仿真?
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

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

GMT+8, 2025-5-6 17:04 , Processed in 0.081004 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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