master support for OPB device

Nov 18, 2006 1 Replies

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


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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required