Home Protocols OCP
Main Menu
System Verilog
Open Vera
Digital Concepts
Verification Basics
    - AXI
    - OCP
Interview Questions
Computer Architechture
C and C++
AsicGuru Blog
Tags Cloud
Usefull Sites
Know Your IP/Location
Local Information India
Buy Car/Inverter Batteries
Real Estate India
Sports Accessories India
OCP Introduction and Tutorial
Share This Articale:

OCP protocol – main features
–The Open Core Protocol™ (OCP) defines a high-performance, bus-independent interface between IP cores
–Defines a point-to-point interface between two communicating entities:
•One entity acts as the master of the OCP instance, and the other as the slave.
•Only the master can present commands and is the controlling entity.
•The slave responds to commands presented to it, either by accepting data from the master, or presenting data to the master.

•Basic signals

OCP protocol signals - MCmd
• Normal Write operations are posted: the slave is not configured to response to a write or, if a response is required, this is given immediately to the master, even if the write operation to the slave has not completed.
• The WriteNonPost explicitly instructs the slave not to post a write.
• For the Broadcast command, the master indicates that it is attempting to write to several or all remote target devices that are connected on the other side of the slave.
• ReadExclusive is paired with Write or WriteNonPost, and has blocking semantics.
• ReadLinked, used in conjunction with WriteConditional has non-blocking semantics.
• These synchronization primitives correspond to those available natively in the instruction sets of different processors.

OCP protocol signals - SResp
OCP protocol – simple extentions – MByteEn, MReqInfo
• This field indicates which bytes within the OCP word are part of the current transfer.   There is one bit in MByteEn for each byte in the OCP word. • Setting MByteEn[n] to 1 indicates that the byte associated with data wires [(8n + 7):8n] should be transferred.
•The master uses this field to send additional information sequenced with the request.
•The encoding of the information is core-specific.

OCP protocol signals – Burst Extensions
The number of transfers in a burst.
• For precise bursts, it indicates the total number of transfers in the burst, and is constant throughout the burst. • For imprecise bursts, it indicates the best guess of the number of transfers remaining (including the current request), and may change with every request.
• This field indicates the sequence of addresses for requests in a burst.

• This field indicates whether the current request is the last in this burst

OCP protocol signals – Thread Extensions

To support concurrency and out-of-order processing of transfers, the OCP supports the notion of multiple threads. • Transactions within different threads have no ordering requirements, and so can be processed out of order.
• Within a single thread of data flow, all OCP transfers must remain ordered.

OCP protocol signals – Request/Response phases
Request Phase:
• starts when the master put a valid value onto MCmd and drives all the other control signals (MAddr, burst signals, MReqInfo, MReqLast, etc. ó whenever the request group becomes active
• ends when the slaves accepts the transfer by asserting SCmdAccept
• MCmd and all control signals must be left unchanged until SCmdAccept is asserted

Response Phase:
• starts when the response group becomes active ó SResp takes a valid value
• if MRespAccept is present, the response phase ends when MRespAccept is sampled high during a response phase
• if MRespAccept is absent, the response phase lasts one cycle
• as long as MRespAccept is present and deasserted, all signals in the response group must be left unchanged.

Index :

Posted By : Farhan - July 29, 2009, 4:06 a.m.

hi, i'm working on SOC project right now and having an issue with OCP to interface with my Network Adapter. i'm looking for verilog code to implement OCP command. i dont design the core. just network adapter. Please help. Thanks.

Posted By : Deepthy G R - Jan. 18, 2010, 4:37 a.m.

Sir I m planning to implement the OCP to interface a memory and memory controller.I would like to consider the MIPS multicycle memory.Can u guide me??

Sign In
Login with :-
| | |  
  • Bookmark