Monitor / driver bus functional model (BFM)

In reply to bmorris:

Yes, my bad, should’ve been up-front about the name of the method - abstract/concrete. And, not a problem about any hint of confusion. We do have BFMs that will live on and will unlikely undergo a major re-architecture such as to convert to interfaces, so we have to adapt.

The actual parameter settings are made at the BFM module instances. The values can be params themselves that are instance-specific and defined/maintained in a package for the testbench, like what chr_sue suggested. For example, the package might have BUS1_DATAW=64 and BUS2_DATAW=512, and those parameters would be used to override the BFM’s DATAW parameter at their respective instantiations in the module testbench. Hope that’s clear.