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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] verilog 时钟边沿的采样

[复制链接]
发表于 2013-3-17 11:22:04 | 显示全部楼层 |阅读模式

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

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

x
编写了一个状态机,有三个不同的信号,于是写了三个always块(敏感列表相同,同为电平敏感),但是发现时钟在同一个仿真时刻(时钟上升沿)所采到的信号值不同,具体如下图 QQ截图20130317112351.png
QQ截图20130317112205.png

672ns时采到的bitstream_in的值应该是85,但是其中有一个always块采到了60。。。


求问原因及解决方法
发表于 2013-3-18 09:25:44 | 显示全部楼层
时钟上升沿的时候,数据恰好处于变化的时刻,这种情况下,有时候还真不好判断。
给你个建议,在所有的时序逻辑前面加一个“#1”的延迟,那么时钟采样的时候一定会看得准确。
这个对仿真很有帮助,这对综合没有影响,因为DC综合的时候会自动的去掉这些#1的延迟。
譬如:
你以前写的是
a <= b;
你换成a <= #1 b;
可以试试这种写法,看结果如何~~
发表于 2013-3-18 16:59:08 | 显示全部楼层
仿真时在Interface里加个clocking模块,应该可以避免这种race condition
 楼主| 发表于 2013-3-18 19:45:08 | 显示全部楼层
回复 2# clean_water


   这样写在Xilinx ISE里面综合不会通过的吧?我是要烧到FPGA上面的,这样写恐怕不行。。
 楼主| 发表于 2013-3-18 19:46:12 | 显示全部楼层
回复 3# timxavier


   能说的详细一些么?什么叫在Interface里加一个clocking模块?
发表于 2013-3-26 23:04:34 | 显示全部楼层
回复 5# zerorenee


Clocking blocks 主要用于testbench,控制信号时序同步。即信号的同步时序与时钟相关。在clocking block内的信号将被同步驱动或采样,以确保testbench和signal在正确的时间点进行交互。
发表于 2013-3-27 10:21:36 | 显示全部楼层
信号延时不一样吧,加寄存器?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-5-14 00:27 , Processed in 0.045791 second(s), 11 queries , Gzip On, Redis On.

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