首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取总线信号时出现问题。与我的Modelsim DE 10.2c和10.4相比。EDAplayground Modelsim 10.1d有不同的结果

读取总线信号时出现问题。与我的Modelsim DE 10.2c和10.4相比。EDAplayground Modelsim 10.1d有不同的结果
EN

Stack Overflow用户
提问于 2014-12-15 23:45:20
回答 1查看 249关注 0票数 3

您好,任何SystemVerilog专家与导师图形模特姆工具。

我正在编写一个监视器任务来处理一个简单的PCI单字写/读总线事件。不知何故,EDAplayground Altera 10.1d由于未知的原因需要额外的时钟周期,而我的Modelsim DE 10.2c / 10.4则不需要。我想知道这是否正确。

下面是编写监视器类代码的示例:

代码语言:javascript
复制
     @(negedge bus.MONCLK.FRAMEn);
     @(bus.MONCLK);    // EDA playground Modelsim 10.1d requires this extra clock cycle for getting data right.   It is also required for read as well. 
     address = bus.MONCLK.AD;
     if (bus.MONCLK.CBEn == IO_Write_CMD) begin
        //tran_type = PCI_WRITE;
        write = 1;      // true
        @(bus.MONCLK);
        data = bus.MONCLK.AD;
        status = 1'b1; // success
     end else begin              
        status = 1'b0; // not success
     end  

下面是读取监视器类代码的示例:

代码语言:javascript
复制
    @(negedge bus.MONCLK.FRAMEn);
     @(bus.MONCLK);     // EDA playground Modelsim 10.1d requires this extra clock cycle for getting data right.   It is also required for read as well. 
     address = bus.MONCLK.AD;
     if (bus.MONCLK.CBEn == IO_Read_CMD) begin
        write = 0;      // false
        @(bus.MONCLK);
        @(bus.MONCLK);
        data = bus.MONCLK.AD;
        status = 1'b1; // success
     end else begin              
        status = 1'b0; // not success
     end          

http://www.edaplayground.com/x/7kG一个例子显示了如果我有这个额外的时钟周期,正确的结果。我将正确地得到数据=c,以便读或写。http://www.edaplayground.com/x/TSE --如果去掉这个额外的时钟周期,就会显示错误的结果。我得到数据= 516 (地址)表示写入,而data =z表示读取。但是,我的Modelsim 10.2c和10.4将显示正确的结果(data = c)。

你能帮我理解这个问题吗?谢谢。

迈克尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-17 22:28:31

我找不到比赛条件的解释,但我找到了两个解决方案,可以适用于所有版本。

一种方法是使用时间循环,时钟作为阻塞事件,网络作为比较条件。

  • while(bus.MONCLK.FRAMEn!=1'b0) @(bus.MONCLK);

另一种方法是在@之前或之后使用微小的延迟。只要你的时钟周期大于一个时间单位,#1就应该是安全的。我不建议使用领先和尾随的延迟,选择一个。

  • @(negedge bus.MONCLK.FRAMEn) #1;
  • #1 @(bus.MONCLK);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27495246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档