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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4184|回复: 8

[求助] verilog 仿真和实际看波形不一致(if判断条件不生效)

[复制链接]
发表于 2014-9-1 14:31:50 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 cxk 于 2014-9-1 14:42 编辑

代码如下,开发硬件环境为xilink v6  ,软件为ise13.1  。代码非常简单,现在用isim仿真看,波形没有问题。
但是用chipscope 抓取波形,发现那个(cnt==2'b11)判断有时侯该成立的时候不成立。


always@(posedge clk_div4 or negedge rst_n)begin
if(!rst_n)
cnt<=2'b0;
else
cnt<=cnt+2'b1;
end

always@(posedge clk_div4 or negedge rst_n)begin
if(!rst_n)
    write_data<=8'h0;
else if(addr==17'h1fffe && wr==1'b1)
    write_data<=8'h0;
else if(cnt==2'b11)
    write_data<=write_data+8'h1;
end


chipscope

chipscope


isim仿真

isim仿真

发表于 2014-9-1 14:58:31 | 显示全部楼层
最后一个if else不是完备的,上板会出现问题吧
 楼主| 发表于 2014-9-1 15:22:20 | 显示全部楼层
如果不完备 不是锁存器么 就是write_data 不变化 我的理解是这样的~
 楼主| 发表于 2014-9-1 15:25:09 | 显示全部楼层
回复 2# sally050119
你好,非常感谢你的回答
我加了个else                write_data<=write_data;
完备了 仍然是有这个问题
发表于 2014-9-1 16:16:42 | 显示全部楼层
else if(addr==17'h1fffe && wr==1'b1)
    write_data<=8'h0;
else if(cnt==2'b11)
    write_data<=write_data+8'h1;


这两句话会不会同时有效?同时有效会出现什么情况
发表于 2014-9-1 16:27:54 | 显示全部楼层
回复 1# cxk


    可能是chipscope信号分配问题,你再检查下wdata信号连接到chipscope的数据和你分配BUS的信号是不是一致的。感觉这里的wdata 的最低位没了。
发表于 2014-9-1 16:38:14 | 显示全部楼层
这现象太普遍了
 楼主| 发表于 2014-9-1 18:47:34 | 显示全部楼层
回复 5# 浩然若枫


   同时出现的话 按照顺序来看 write_data为0
 楼主| 发表于 2014-9-1 18:56:24 | 显示全部楼层
回复 6# UNice


   nice 我太粗心了 ,好像write_data 最低位没有拉过去。你太帅了,这猜测都猜出来了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-23 17:39 , Processed in 0.025074 second(s), 9 queries , Gzip On, MemCached On.

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