Connections to DUT Interfaces(从Connect/AbstractConcrete开始)

上一篇 / 下一篇  2018-09-28 16:19:45

        Connect/AbstractConcrete

      Abstract/Concrete Class approach to DUT-TB communication

       不使用虚拟接口的基于句柄的DUT-TB通信方法在UVM行业中被称为抽象/具体类方法。还有一种使用的方法,在Mentor Graphics中称为Two Kingdoms。
       与使用虚拟接口一样,这种方法可以为测试平台中的事务传输器而设置,目的是与DUT的引脚通信,与总线功能模型(BFM)通信,此BFM将transactions驱动到DUT上,或者使用SystemVerilog bind construct来驱动DUT的内部信号
       虚拟接口是DUT-TB通信的推荐方法。只有在无法使用虚拟接口时才应考虑抽象/具体类方法,或者在传统BFM无法修改为接口的情况下作为辅助方法。
       本文中的讨论将仅关注使用BFM的抽象/具体类方法。

       Example BFM  

       下图显示了WISHBONE总线的BFM,将在此处的示例中使用。wishbone bus BFM连接到WISHBONE总线,具有WISHBONE总线仲裁,时钟,复位等逻辑以及生成WISHBONE总线事务(读,写等)的tasks。

       【此处需一幅图】

       这是来自BFM的代码。 可以使用稍后显示的其他示例代码下载完整代码。

       module wishbone_bus_syscon_bfm #(int num_masters = 8, int num_slaves = 8,
                                                                       int data_width = 32, int addr_width = 32)
              (

              // WISHBONE common signals
              output logic clk,
              output logic rst,
              ...
              );
              // WISHBONE bus arbitration logic
              ...
              //Slave address decode
              ...
              // BFM tasks
              //WRITE 1 or more write cycles
              task wb_write_cycle(wb_txn req_txn, bit [2:0] m_id = 1);
                  ...
              endtask

              //READ 1 or more cycles
              task wb_read_cycle(wb_txn req_txn, bit [2:0] m_id = 1, output wb_txn rsp_txn);
                   ...
              endtask

              // Monitor bus transactions
              task monitor(output wb_txn txn);
                   ...
             endtask
       
       endmodule  


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2018-12-10  
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

数据统计

  • 访问量: 15060
  • 日志数: 48
  • 建立时间: 2018-09-03
  • 更新时间: 2018-10-12

RSS订阅

Open Toolbar