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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6923|回复: 13

[求助] verilog编写的两个奇怪现象

[复制链接]
发表于 2011-2-25 18:30:23 | 显示全部楼层 |阅读模式

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

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

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;//
控制8LED灯亮,为高时则亮。

end

else if(……)

系统上电后,就自动执行了r_RxData<=8'hff;可是我明明没有按下RstN键(按下时RstN==0,系统上电默认的RstN==1,我用代码测试过,文档也是这么给的,所以如果我不按下对应的该键时,不应该执行r_RxData<=8'h00的,即灯不该亮)后来,我直接在管脚分配上不给RstN分配输入引脚,上电后系统的8个灯仍然亮(当替换成r_RxData<=8'hff;时,灯不亮,说明该句确实是执行了),怎么回事呢??

以上两个问题求高手解答!

发表于 2011-2-25 19:35:30 | 显示全部楼层
额,不懂,绑定~
发表于 2011-2-25 20:00:56 | 显示全部楼层
if( ! RstN)

你reset 錯了
发表于 2011-2-25 20:06:28 | 显示全部楼层
无知者无罪。
verilog 的每行代码都是与硬件相对应,不能凭想当然的去写。
你写的第一段根本就不可能有对应的硬件实现。
至于第二个问题。在电源电平有效但clk还没建立时,RsN为低电平,因此执行了前3行。
发表于 2011-2-25 20:38:11 | 显示全部楼层
本帖最后由 max_max 于 2011-2-25 20:43 编辑

至于第一个问题是因为通过alway语句和if语句的组合综合出来是无用的逻辑,而非硬件不可实现。第二个问题是你的时钟信号上升沿比reset信号下降沿来的更早,所以建议上电复位和时钟触发分离开来,先单独复位,然后时钟触发。
发表于 2011-2-25 21:36:15 | 显示全部楼层
硬件上电后先复位,所以执行了第一个if程序
 楼主| 发表于 2011-2-25 22:31:50 | 显示全部楼层
回复 4# yongfenr


    谢谢!第一个问题经你这么说我懂了。 只是第二个问题如果clk没有建立,RstN因为上电后为高(已经测过),但如果执行前三行,则必须满足always的触发条件,但是此时都不满足。难道系统上电后RstN自动产生下降沿?谢谢~(注:RstN对应与fpga开发板的一个io口,即一个按键,不是系统的复位按钮)
 楼主| 发表于 2011-2-25 22:34:41 | 显示全部楼层
回复 5# max_max


    谢谢~我看他们的代码大多数都是这么写的,即复位和时钟触发在一起,难道真要分开写?(注:RstN对应与fpga开发板的一个io口,即一个按键,不是系统的复位按钮)
发表于 2011-2-26 10:26:03 | 显示全部楼层
It is negative edge of reset signal...

if(!RstN)
发表于 2011-2-26 11:19:15 | 显示全部楼层
回复 7# tornadomeet


   

    异步复位是不一定要看到下降沿的,只要出现:VDD已建立,RsN还没到逻辑1,clk还没建立(还没出现pos),这时就满足了RsN=0的条件;而不是非得看到RsN的neg。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-21 21:40 , Processed in 0.024090 second(s), 9 queries , Gzip On, Redis On.

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