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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3735|回复: 2

[原创] questasim仿真时delta cycle问题

[复制链接]
发表于 2020-7-29 11:24:45 | 显示全部楼层 |阅读模式

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

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

x
仿真1:
`timescale 1ns/1ns
module test;
    bit clk1;
    bit clk2;
    bit rst_n;
    logic [7:0] d1;
    initial begin
       forever #5 clk1 <= !clk1;
    end
    //generate clock clk2
    always @ (clk1) clk2 <= clk1;
    initial begin
        #10 rst_n =0;
        #20 rst_n = 1;
    end
    //counter
    always @ (posedge clk1, negedge rst_n)begin
        if(!rst_n) d1 <= 0;
        else    d1 <= d1 + 1;
    end
    always @ (posedge clk1)
        $display("%0t ns clk1_d1 value is 0x%0x",$time, d1);
    always @ (posedge clk2)
        $display("%0t ns clk2_d1 value is 0x%0x",$time, d1);
endmodule
仿真打印结果:45ns时:clk1采到1,clk2采到2.

图片.png
仿真波形:打开delta cycle观看波形中可以看到,clk1确实采到了1,clk2采到了2.
图片.png

仿真2:在仿真1的基础上,将组合逻辑都用阻塞赋值方式。
图片.png
仿真结果:45ns时,clk1采到的是1,clk2采到的也是1
图片.png
仿真波形:打开delta cycle观看波波形于仿真1的波形是一样的。clk1采到的是1,clk2采到的是2
图片.png

问题:1.仿真器(仿真2)打印出的结果是为何仿真波形不一致?
         2.组合逻辑用非阻塞赋值(仿真1)和组合逻辑用阻塞赋值(仿真2)在仿真器层面上有何却别,为何两者的波形即使是在delta cycle观察还是一样的?






发表于 2020-8-6 15:25:48 来自手机 | 显示全部楼层
建议去看看不同时间片仿真器处理的顺序。也了解一下$display,$strobe和$monitor执行的顺序。
 楼主| 发表于 2020-8-7 21:56:30 | 显示全部楼层


saipolo 发表于 2020-8-6 15:25
建议去看看不同时间片仿真器处理的顺序。也了解一下$display,$strobe和$monitor执行的顺序。 ...


好的,谢谢。

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

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-23 20:13 , Processed in 0.015938 second(s), 8 queries , Gzip On, Redis On.

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