在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2873|回复: 4

我调试CPLD程序的问题,请给位高手指教

[复制链接]
发表于 2009-1-7 12:34:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
各位高手您好:
    首先祝您新年快乐,身体健康。在调试我们做的板子的时候,有些疑惑寻求您的帮助。是关于调试CPLD的程序。因为初次接触Verilog HDL语言,有很多问题,还请您见谅。具体的程序在附件中!
always @(CPLD_TEST) begin
       if (CPLD_TEST==1'b0) begin  //GPIOA[8]
          KEY[5]<=0;
          KEY[6]<=0;
          KEY[7]<=0;
          KEY[8]<=0;
          GPIOA[4]<=KEY[5];
          GPIOA[5]<=KEY[6];
          GPIOA[6]<=KEY[7];
          GPIOA[7]<=KEY[8];
          GPIOA[0]<=KEY[1];
          GPIOA[1]<=KEY[2];
          GPIOA[2]<=KEY[3];
          GPIOA[3]<=KEY[4];
         end
     else if(CPLD_TEST==1'b0) begin
           KEY[1]<=1;
           KEY[2]<=1;
           KEY[3]<=1;
           KEY[4]<=1;
           GPIOA[0]<=KEY[1];
           GPIOA[1]<=KEY[2];
           GPIOA[2]<=KEY[3];
           GPIOA[3]<=KEY[4];
           GPIOA[4]<=KEY[5];
           GPIOA[5]<=KEY[6];
           GPIOA[6]<=KEY[7];
           GPIOA[7]<=KEY[8];
          end
      end
其中,KEY[1]~KEY[8]是外扩的4*4的键盘,对于CPLD来说为输入输出口,
      GPIOA[0]~GPIOA[7]是DSP2812的GPIOA口,对于CPLD来说为输出口,
      CPLD_TEST是DSP2812的GPIOA[8]口,对于CPLD来说为输入口
当我把这段程序烧写到CPLD中去的时候,测试DSP2812的GPIOA[8]为高电平,然后测试键盘的引脚,发现KEY[1]~KEY[4]为高电平,KEY[5]~KEY[8]为低电平,这是为什么那?按照程序的设计来说,应该根据CPLD_TEST的状态来定,测试结果发现不是的!为了验证,我将上面的程序中         
          KEY[5]<=0;            KEY[5]<=1;
          KEY[6]<=0;    改为    KEY[6]<=1;
          KEY[7]<=0;            KEY[7]<=1;
          KEY[8]<=0;            KEY[8]<=1;

          KEY[1]<=1;            KEY[1]<=0;
          KEY[2]<=1;    改为    KEY[2]<=0;
          KEY[3]<=1;            KEY[3]<=0;
          KEY[4]<=1;            KEY[4]<=0;
结果测试发现KEY[1]~KEY[4]为低电平,KEY[5]~KEY[8]为高电平。感觉到很疑惑请您帮我解答,找出原因!非常感谢!!!!

CPLD.rar

130.59 KB, 下载次数: 0 , 下载积分: 资产 -2 信元, 下载支出 2 信元

发表于 2009-1-7 13:15:53 | 显示全部楼层

hh

第一种情况 :intial 时,你没有给KEY[4:1]赋值,默认取高阻状态,所以 KEY[4:1]=4'b1111;
第二种类似 .
发表于 2009-1-7 14:51:20 | 显示全部楼层
初始状态没有设置,因为刚下载进去的时候它会有一个默认的值,因此你要先赋初值
 楼主| 发表于 2009-1-8 11:11:37 | 显示全部楼层
感谢大家支持!但是我在初始化做了程序,还是不行!迷糊中!
发表于 2009-1-11 13:00:18 | 显示全部楼层
因为你的if的条件和else if的条件是一样的,所以当CPLD_TEST==1'b0时,它先执行if以后key[8:5]就一只为零,而
key[4:1]就一只为全1;所以不管怎么它都会不变了;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-24 00:40 , Processed in 0.026226 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表