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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 6228|回复: 22

[求助] vivado行为仿真和时序仿真,时序图差别很大

[复制链接]
发表于 2022-3-2 00:34:28 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 come_on_sn 于 2022-3-2 00:35 编辑

同样的设计输入,同样的tb


功能仿真结果如下
image.png


布线后定时仿真如下:
image.png

现象:
1、led信号功能仿真正常变化,而时序仿真则一直为0x8000不变
2、时序仿真结果中clk_bps一直为0,功能仿真正常

请问,有没有前辈知道这是什么问题呢?谢谢了~
【排查】设计功能简单,时序裕量应该是充足的,布线后也没有报错


发表于 2022-3-2 09:06:13 | 显示全部楼层
检查下告警是不是有latch
回复 支持 反对

使用道具 举报

发表于 2022-3-2 09:09:16 | 显示全部楼层
贴个代码上来
回复 支持 反对

使用道具 举报

发表于 2022-3-2 10:00:20 | 显示全部楼层
布线后看一下report_time一下,看一下是否有违例
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-2 11:42:09 | 显示全部楼层


   
1440090531 发表于 2022-3-2 10:00
布线后看一下report_time一下,看一下是否有违例


感谢回复,没有违例
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-2 15:45:06 | 显示全部楼层


   
cfly_chang 发表于 2022-3-2 09:06
检查下告警是不是有latch


感觉应该不是这个问题?因为我上板测试功能是正常的
回复 支持 反对

使用道具 举报

发表于 2022-3-2 16:45:15 | 显示全部楼层
上板测试正常的话,估计就是tb写得不好,tb里面是不是信号都写得严格对齐clk,后仿信号产生延迟后没有严格对齐,导致tb中条件不满足
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-2 16:56:32 | 显示全部楼层


   
986707833 发表于 2022-3-2 16:45
上板测试正常的话,估计就是tb写得不好,tb里面是不是信号都写得严格对齐clk,后仿信号产生延迟后没有严格 ...


抱歉,不是很理解,tb条件不满足是什么意思

下面是我写的tb,能麻烦您帮忙看下吗?谢谢了   设计完成的功能大概就是流水灯设计,然后通过开关sw0改变流水灯方向


`timescale 1ns/100ps
`define CLOCK_PERIOD 10     //单位ns
`define CLOCK_FREQ 100      //100_000_000   

module flash_led_top_tb();      
                 reg rst;
                 reg sw0;
                 wire [15:0] led;
                 wire [3:0] an;                   
                 wire [6:0] seven_segment;
                
                 // Generate 100 MHz clock
        reg clk = 0;
        always #(`CLOCK_PERIOD/2) clk = ~clk;

                   flash_led_top #( .CYCLES_PER_SECOND(`CLOCK_FREQ) )
                      inst_flash_led_top(
            .clk( clk ),
            .rst( rst ),
            .sw0( sw0 ),
            .led( led ),
            .an( an ),
            .seven_segment( seven_segment )
            );

                 initial begin
                         rst = 1'b0;
                         sw0 = 1'b0;
                         #10;
                         rst = 1'b1;
                         #10;
                         rst = 1'b0;
                         repeat(20 * `CLOCK_FREQ) #`CLOCK_PERIOD;                                 //20次后改变位移方向
                         sw0 = 1'b1;
                 end

endmodule


回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-2 17:03:00 | 显示全部楼层
本帖最后由 come_on_sn 于 2022-3-2 17:06 编辑


   
jinj198908 发表于 2022-3-2 09:09
贴个代码上来


您好,附件是工程压缩包,如果您有空的话不知道方便看下呢?谢谢了!
链接:https://pan.baidu.com/s/19TDNjse2vgdjaRe4cgFqzQ
提取码:0jnh

(因为包含定时wdb文件,压缩后超过附件容量限制,所以无奈传到网盘上了,见谅~

回复 支持 反对

使用道具 举报

发表于 2022-3-3 09:28:56 | 显示全部楼层
本帖最后由 jinj198908 于 2022-3-3 09:30 编辑

image.png
问题出在这里,布线后定时仿真这个参数是无法传进去的,使用的是top文件里默认的1s,如果你有足够耐心的话,仿真跑到1s时,就能看到结果了,这也解释了为什么上板后是正常的
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-8-21 19:03 , Processed in 0.017722 second(s), 4 queries , Gzip On, Redis On.

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