On 12/12/2014 2:15 AM, Nikolaos Kavvadias wrote:
> Hi Rick and Jon,
>
>> Please educate me on what a BFM is? I know a BFS is a type of large
>> screwdriver.
>
> @Rick: BFM stands for Bus Functional Model. It is an approach for modeling ..read() and .write() transactions from/to the system bus. SystemC/TLM is a popular approach for developing BFMs and probably the right thing to do is design a SystemC/TLM BFM and cosimulate with VHDL.
>
> A BFM generation tool would be beneficial. On a second thought, ArchC (
www.archc.org) fits the bill at least partially, is open/free and has a tractable learning curve. It is an architecture description language for generating SystemC simulators (functional and cycle-accurate) of processors, but also has been extended to generating models with TLM ports (e.g. for accessing a memory via the bus), a binary utilities port, and even an LLVM compiler backend [there is a prototype for that called accgen).
>
> So in this sense, ArchC is the closest thing to automating BFM generation since you can include TLM ports in an ArchC model and generate a SystemC simulator from it (and then you can tweak it according to your aim).
>
> @Jon: A VHDL package for easily designing BFM models would also be of interest. I don't think such thing exists, but again you can have a look at:
http://opencores.org/project,axi4_tlm_bfm
>
> This is an AXI (AMBA 4.0) transactor and BFM by Daniel Kho of Tauhop Solutions (
www.tauhop.com). It is fairly well documented and maybe you could reuse some of the code for your purpose.
That is what I did some 15 years ago. I don't get why this is a big
deal. It seems like a pretty straight forward thing to me. The only
work involved was writing the code to parse the text file to drive the
bus. Am I missing something?
--
Rick