代码之家  ›  专栏  ›  技术社区  ›  Siddhant

总线功能模型(系统Verilog)

  •  1
  • Siddhant  · 技术社区  · 9 年前

    它应该模拟总线事务,而不必担心底层的实现细节。

    例如,一个通用数据传输指令,如send_write(0x0c,0x0f),将数据字节0c发送到从地址0f,应该驱动芯片选择线低,并根据SPI模式在时钟边缘上相应地发送数据位,我对BFM的理解在这种情况下正确吗?

    现在我不明白的是,这有什么帮助?

    如果有人能帮我举个例子,最好是在System Verilog中,我将不胜感激。

    2 回复  |  直到 9 年前
        1
  •  3
  •   Siddhant    9 年前

    所以我必须对此进行大量研究,所以我想我会回答,但这是一个关于它的想法,

    好吧,这是一个高层次的答案,让我们再深入一点,

    被测设计(DUT)对BFM事务的响应是设计测试人员感兴趣的。有人可能会争辩说,BFM可能会根据DUT而变化,这就是区分更好的BFM的原因。

    如果BFM可以有一个配置向量,可以加载该配置向量以根据DUT规范进行初始化和行为,那么它将变得可移植,以帮助测试其他设计。

    此外,BFM可以定义为抽象虚拟函数(在SV中),可以基于DUT进行进一步的具体实现。

    virtual class apb_bfm;
    pure virtual task writeData(int unsigned addr, int unsigned data);
    pure virtual task readData (int unsigned addr, output int unsigned data);
    pure virtual task initializeSignals();
    endclass
    

    paper 抽象地讲,BFMs提供了一个关于如何对BFMs进行建模以实现良好设计的好主意。APB示例由此导出。

    下面这张关于如何将BFM放置在测试框架中的图片是我从Bergeron的书中收集到的。

    An implementation of how a BFM could sit in between the test-bench and the Design Under Test

    参考书: Bergeron,J.(北达科他州)。在系统Verilog中编写测试台。斯普林格。

        2
  •  0
  •   Shankhadeep Mukerji    9 年前

    你可以在这里找到一个使用BFM的好例子 http://www.testbench.in/SL_00_INDEX.html

    推荐文章