Bus Functional Model
A Bus Functional Model or BFM (also known as a Transaction Verification Models or TVM) is a non-synthesizable software model of an integrated circuit component having one or more external buses. The emphasis of the model is on simulating system bus transactions prior to building and testing the actual hardware. BFM's are usually defined as tasks in Hardware description languages (HDLs), which applies stimulus to the design under test/verification via complex waveforms and protocols. A BFM is typically written in an HDL language such as verilog, VHDL, SystemC, or SystemVerilog.
On one side, it drives and samples low-level signals according to the bus protocol. On the other side, tasks are available to create and respond to bus transactions.
BFMs are often used as reusable building blocks to create simulation test benches, where the signal ports on a design under test are connected to the appropriate BFMs in the testbench for the purpose of simulation.
Transaction Verification Models
BFMs are sometimes referred to as TVMs or Transaction Verification Models. This is to emphasize that bus operations of the model have been bundled into atomic bus transactions to make it easier to issue and view bus transactions. Viewing of bus transactions of TVMs is similar to viewing the output of a protocol analyzer or bus sniffer.
References
- Mitchel, Donna (2001). "Manual and Automatic VHDL/Verilog Test Bench Coding Techniques" (PDF). Dedicated Systems Magazine 9 (2). Archived from the original (PDF) on 22 January 2004. Retrieved 8 April 2013.