微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > vivoda仿真出现的奇怪现象

vivoda仿真出现的奇怪现象

时间:10-02 整理:3721RD 点击:
今天用vivoda仿真出现了一个奇怪的现象,史无前例吗? 不知道大家有没有遇到过        我先描述一下我的问题。

        我的仿真代码:
// 时钟部分
assign  iclk = (iclk_en) ? iclk_gen : `CLK_DISEN ;
assign  oclk = (oclk_en) ? oclk_gen : `CLK_DISEN ;
always #(`I_PERIOD/2)  iclk_gen = ~iclk_gen ;
always #(`O_PERIOD/2)  oclk_gen = ~oclk_gen ;  
always #(`DDR_CLK_PERIOD/2)  ddr_clk  = ~ddr_clk ;
always #(`DDR_REF_PERIOD/2) ddr_ref_clk = ~ddr_ref_clk ;

//initial 部分
initial begin
        task1 ;
        task2 ;
        task3 ;
        task4 ;
      ......................
        end

//task部分
// task 1 ---------------------------
task  task1 ;begin
        iclk_en = `DISABLE ;
oclk_en = `DISABLE ;
          .................

        //time delay  
        iclk_en = `ENABLE;
oclk_en = `ENABLE ;
       .........................

        end
endtask
//-------------------------------------
task  task2 ;begin  
        iclk_en = `ENABLE;
oclk_en = `ENABLE ;
       .........................
       end
endtask


//--------------------------------------
task  task3 ; begin
        iclk_en = `ENABLE;
oclk_en = `ENABLE ;
       .........................

        end
endtask

这是一个TB ,   上面有四个时钟,3个task。
第一个task对门控的时钟进行了设定。后面的task虽然也赋值,但是一直是开启。
执行到第二个task 四个时钟一点问题都没有
执行到第三个task的时候,问题出现了
[attach]644275[/attach]

红色箭头部分就是task3的起点。

既然task3有这个问题,我当然会去查task2的情况。结果task2居然没问题




提示,是gen有问题,不是iclk有问题

不是很懂,等别人回复你,我来看
有两个疑问
1、task直接在init里面调用,这个东西应该是占用时间的吧,这样直接调用可以么?
2、没发现哪里有问题!

已经解决,是其他的问题。不是这个里的问题。谢谢大家

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top