CPLD控制DA问题

[复制链接]
2736|4
 楼主| cuitjxg 发表于 2011-2-22 19:55 | 显示全部楼层 |阅读模式
请高手指教下!

module CPLD_9740(clk,key7,key3,output3,DA9);
input clk;
input[6:0] key7;
input[2:0] key3;
output[2:0] output3;
output[8:0] DA9;
wire[8:0] DA9;
reg[2:0] output3;
reg c_flag;
reg[1:0] HL_flag;
reg[8:0] DA9_reg;
always @(key3[1:0] or key7[6:0])
  begin
      
     case(key3[1:0])
       3'b100:output3=3'b010;
       3'b01:begin output3=3'b010;/*DA9=9'b111111111;c_flag=1;*/ end
       3'b10:begin output3=3'b100;/*DA9=9'b011100110;c_flag=0;HL_flag=2;*/end
       3'b11:begin output3=3'b001;/*c_flag=0;HL_flag=3;*/end
       default: ;
     endcase
     
     case(key7[0])//注意这里有区别,这样编译w有9个warning,更改为case(key[6:0]),DA就不出想要的电压了,编译有18个warning      
         7'b0000000: DA9_reg=9'b101100100;
         7'b0000001: DA9_reg=9'b101010001;
         default:;
     endcase     
  end
assign DA9=DA9_reg;
endmodule

case(key7[0])时,DA输出是正确的,更改为case(key7[6:0]),就不正确了,多谢了!
cwfboy 发表于 2011-2-22 20:46 | 显示全部楼层
default 干嘛用去了?
guyibeijing 发表于 2011-2-24 22:27 | 显示全部楼层
学了了
xiaoyuan_ly 发表于 2011-3-17 10:57 | 显示全部楼层
你该好好想想,你还是从“程序”思路来设计这个,你应该注意“硬件并行”的东西。。。
sxhhhjicbb 发表于 2011-3-17 23:12 | 显示全部楼层
key7[0]):的结果只有1'0和1'b1,而7'b0000000即为1'b0;7'b0000001即为1'b1;所以你的key7[0]有相应的case.
case(key7[6:0]):的结果有64种结果,你这个有128种结果,同时你的key7是输入的,如果输入不为0或1,case语句就路到了.default: 中.
你的key7[6:0]就得对7个信号同时控制.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

59

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部