|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
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 信元
|