master support for OPB device

Hi,

There seems to be an error in the MASTER_CNTL_STATE_MACHINE in the /pcores//hdl/vhdl/user_logic.vhd "user logic master support" generated by Xilinx EDK8.2

My IP is a Master/Slave on the OPB Bus. I have defined 4 32-bit slave registers ( slv0 , slv1 , slv2 , slv3 ) with address 30000000 to

3000000C , and am attempting to read data from memory location 20000000 to 2000000C and write it into the slave registers.

I initialised my Master Model registers with the following values: Control Register : 80 ip2ip_addr : 0x30000000 ip2bus_addr : 0x20000000 length : 0x0010 = ( attempting to transfer 16 bytes of data )

When I did the Bus Function Modelling , then only the slv0 register was being written into , none of the remaining 3 were written.

I checked the state transitions in ModelSim and noted that the "master model control state machine" was going through the following set of states:

Idle -> Last_Burst -> Check_Burst_done -> Idle

I feel the error is the following set of lines in (part of the process: MASTER_CNTL_STATE_MACHINE)

when LAST_BURST =>

if ( Bus2IP_MstLastAck = '1' ) then mst_cntl_state

Reply to
get2venu
Loading thread data ...

We've had some very bizzare problems creating OPB bus masters to burst data to/from the DDR on a VP4 Mini-Module while running VxWorks on the PPC. Xilinx support concluded there was some sort of timing problem with the bus itself, but was unable to provide a fix. We also heard of similar OPB bus master woes from a group at UC Berkeley.

We ended up using PLB masters, and that seems to work.

Mike

Reply to
mikechin2000

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.