As a beginner, I felt bit difficult to follow this the training at a couple of places. I will just list what I understood and please correct me if I got it wrong. I assume BFM is basically a functionality that helps in simulation(?)
My specific case: {I have 2 blocks of IP's (we can call block A and B) in platform designer system. Block A have two IP's (IP_1 and IP_2 that connected though avalon streaming interface. The IP_2 is having avalon MM slave port at one end (the end that connects to block B)). I have a counter in IP_1 and it streams data to IP_2 and which is a FIFO and should pass data to block B through avalon MM interface. The IP_2 and which is a FIFO have a MM read slave that connects to the read master in block B.
I just want to simulate the block A part of the design and see how the output signals from IP_2 FIFO looks like in wave form.}
1) I assume I should follow that sl.no- 29 to 34 in the video. I built a system in the platform designer and I have exported clock and reset to IP_1 which are only input to my design for block A. Also, I have the avalon MM slave port from IP_2 (which is the output from the design of block A). I assume I have to export it in platform designer?
2) Generated testbench system and selected "simple BFM's for clock and reset" . And I have got a _tb.qsys file and got simulation files in _tb folder. Opening _tb.qsys file, I could see clock_bfm and reset_bfm components in platform designer connected to the DUT (for me design of block A).
3) I think I have stuck at how to write test program for my specific case (or its created during the test bench generation?)? Any suggestion? Unfortunately the video regarding this did not help me to comprehend much.
I assume I have to follow same procedure as (?) in sl no. 19 in the video (single IP example) for the combined design also. In sl no. 19 (Avalon MM interface BFM Read/Write operations for Verilog) ( here, I assume in my particular case I should use "Read" option). I did not understand `define MSTR_BFM mstr_test_prog.mstr_bfm_top.mastr_bfm . May I know "mstr_test_prog" is the name of the test program means? (how this name appears?--is it project name?). I assume the .qsys file used is mstr_bfm_top.qsys ? (or it has any other significance?). Also, from where we gets BFM instance name?
Also how we are getting the set_command_<X> (Y) . How we decide what are the things to use in the place of X and Y in the for loop?
Thank you very much.