TLM(事務級建模方法,Transaction-level modeling)是一種高級的數字系統模型化方法,它將模型間的通信細節與函數單元或通信架構的細節分離開來。通信機制(如總線或者FIFO)被建模成信道,並且以SystemC接口類的形式向模塊呈現。事務請求一般在調用這些信道模型的接口函數時發生,而接口函數封裝了信息交換的底層細節。在事務層面上,TLM更強調數據傳輸的功能本身——數據的內容和傳輸的起止點,並盡可能少涉及具體實現。這種方法使得系統級設計者測試不同的總線架構(這些架構均支持公共的抽象接口)更加方便,通過這些公共接口進行模塊間交互,無需對模塊重新編碼。
SV中TLM是從SystemC中借鑒過來的,在UVM中具體分為TLM1 和TLM2 Socket. 首先,來看TLM1,uvm_tlm.svh的源代碼。很典型的UVM實現方法在該文件中包括了所有用到的文件。
`include "tlm1/uvm_tlm_ifs.svh" `include "tlm1/uvm_sqr_ifs.svh" `include "base/uvm_port_base.svh" `include "tlm1/uvm_tlm_imps.svh" `include "tlm1/uvm_imps.svh" `include "tlm1/uvm_ports.svh" `include "tlm1/uvm_exports.svh" `include "tlm1/uvm_analysis_port.svh" `include "tlm1/uvm_tlm_fifo_base.svh" `include "tlm1/uvm_tlm_fifos.svh" `include "tlm1/uvm_tlm_req_rsp.svh" `include "tlm1/uvm_sqr_connections.svh"
參考文獻:
1 TLM. http://www.chipverify.com/uvm/tlm-preface
2 事務級建模. https://zh.wikipedia.org/wiki/%E4%BA%8B%E5%8A%A1%E7%BA%A7%E5%BB%BA%E6%A8%A1%E6%96%B9%E6%B3%95