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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1761|回复: 6

[原创] verilog语法问题

[复制链接]
发表于 2015-6-6 21:12:41 | 显示全部楼层 |阅读模式

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

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

x
请问:比如这个例子;always@(posedge clk)                                 if(a&b)
                                      ·············
这里的判断语句a&b中的a和b是clk上升沿之前的值的与,还是clk上升沿之后的值得与!!!
急急急
发表于 2015-6-7 05:47:18 | 显示全部楼层
之前的
 楼主| 发表于 2015-6-7 11:43:13 | 显示全部楼层
回复 2# navylin1
我仿真了一下,always(@posedge clk)                        if(~rst)
                             out<=0;
                        else
                              out<=1;
        其中rst在时钟上升沿的时刻,变成下降沿的,不过out输出为0啊,怎么解释呢,(注:clk上升沿之前out=1)
发表于 2015-6-7 12:52:16 | 显示全部楼层
我觉得应该是采集上升沿时刻的值,所以 a&b 在clk上升沿瞬间要保持绝对的稳定,
1、 a&b 如果是由clk同步出来的寄存器变量,由于D触发器有延迟原因, 采集的a&b信号肯定是之前的
2、如果a&b 是与clk无关的异步信号,在clk 上升沿时刻a&b出现变化 就会有竞争,达不到预期的结果
楼主仿真时软件会选择rst与clk的一种默认关系,但不一定是方式1
发表于 2015-6-7 13:24:20 | 显示全部楼层
仿真是没有延时的,讨论这个没意义
发表于 2015-6-7 20:47:21 | 显示全部楼层
说明rst在clk前变得
发表于 2015-6-8 14:28:06 | 显示全部楼层
讨论这个问题,首先要明确这是个时序问题,那么:
1. 明白最基本的约束:Setup Time,Hold Time
2. 也要了解亚稳态(metastable)
3. 既然谈论仿真,那么也就需要了解不同的仿真器
4. 还有一点,为了接近事实,代码里应该对数据路径添加必要的延迟信息,而时钟路径就不需要
5. 其实,你这里问的根本问题是:阻塞赋值与非阻塞赋值,请参考对应描述,我不赘述
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-15 19:15 , Processed in 0.029032 second(s), 8 queries , Gzip On, Redis On.

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