Hi, I'm developing a custom OPB master peripheral for Spartan3. I don't use IPIF. During simulation with BFM and Modelsim I noticed that OPB_ABus is not correct in the following case: my peripheral loose arbitration but still put a valid value on the m_ABus (for example 10000), the new master put on his m_ABus for example 40000, the result is on OPB_ABus is 50000. It seems that the m_ABus is not ANDed with m_select signal. I read from OPB specifications on page 11: "The Mn_ABus signals from each OPB Master are AND'ed with that master's Mn_select, and the resulting buses from all OPB masters are then OR'ed together to form OPB_ABus. Thus, a master device may continue to drive data onto Mn_ABus when its select is not asserted."
So my question is: the AND operation should be done on my peripheral or on the opb arbitrer? Is it a fault in the BFM toolkit?