自学内容网 自学内容网

#systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生

仿真调度系列文章,已经编写10篇,写到这里,相比大家都已经对VCS仿真工具的运行机制,有了大体了解。学无止境,而且真正的仿真调度行为控制,是每个EDA厂商自己产品的高度机密。言外之意,我们要抱着谦虚的态度说:我们只是懂了一点点。

一 RTL仿真中的竞争现象

在实际仿真过程中,有时会遇到过一类情况:当对一个信号打一拍,寄存器的输出和该寄存器的输入信号,竟然奇怪的出现在同一拍的现象。

看个例子。

module test(clk,clr);
  input clk;
  input clr;
  reg[2:0] cnt;
  reg d;
  reg clk2;
  reg q;
  always @(posedge clk ,negedge clr) begin
    if(!clr) 
        cnt <= 3'h0;
    else if(cnt < 4)
        cnt <= cnt+1;
    else
        cnt <= 0;
  end
  always @(posedge clk ,negedge clr) begin
    if(!clr) 
        d <= 1'b0;
    else if(cnt == 2)
        d <= ~d;
  end
  always @(posedge clk ,negedge clr) begin
    if(!clr) 
        clk2 <= 1'b0;
    else 
        clk2 <= ~clk2;
  end  
  always @(posedge clk2 ,negedge clr) begin
    if(!clr) 
        q <= 1'b0;
    

原文地址:https://blog.csdn.net/qq_16423857/article/details/140565933

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!