打印

CPLD控制DA问题

[复制链接]
2080|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 | 只看该作者
你该好好想想,你还是从“程序”思路来设计这个,你应该注意“硬件并行”的东西。。。

使用特权

评论回复
5
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

粉丝