马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 tornadomeet 于 2011-2-25 22:13 编辑
1.在执行always@(posedge Clk50Mhz or negedge RstN) if(RstN) begin
r_State<=4'd0;
r_RxDone<=1'd0;
r_RxData<=8'hff;
end else if(……) 语句时报错如下: “cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct” 开始觉得原因可能是该程序逻辑混乱,既然negedge RstN,则if(RstN)就没意义了。但是我后面有else if语句,即使negedgeRstN后为低,也可以 在else if 的敏感语句中判断出来的啊,况且我的敏感列表中有Clk50Mhz,响应它可以的啊! 2. 在执行always@(posedge Clk50Mhz or negedge RstN) if(!RstN) begin
r_State<=4'd0;
r_RxDone<=1'd0;
r_RxData<=8'hff;//控制8个LED灯亮,为高时则亮。
end else if(……) 系统上电后,就自动执行了r_RxData<=8'hff;可是我明明没有按下RstN键(按下时RstN==0,系统上电默认的RstN==1,我用代码测试过,文档也是这么给的,所以如果我不按下对应的该键时,不应该执行r_RxData<=8'h00的,即灯不该亮)后来,我直接在管脚分配上不给RstN分配输入引脚,上电后系统的8个灯仍然亮(当替换成r_RxData<=8'hff;时,灯不亮,说明该句确实是执行了),怎么回事呢?? 以上两个问题求高手解答! |