Xilinx OPB BFM simulation error with m_ABus signal

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?

Reply to
Loading thread data ...

My understanding was that all masters need to drive 0's when they don't own the bus. But I have no personal experience with the xilinx busses, it's just heresay.


David Ashley                http://www.xdr.com/dash
Embedded linux, device drivers, system architecture
Reply to
David Ashley

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.