1.1 OCP协议
OCP(Open Core Protoco1)标准是OCP-IP组织制定的一种以提高IP核的复用及实现IP核的即插即用为目的的IP核标准。SoC芯片设计不再是门级的设计,而是
IP核复用及其接口的设计。IP核要集成到一个SoC系统中,要考虑很多问题,例如:模块间的同步,如全局执行、数据交换的同步操作等;协议转换匹配,不同IP核模块间可能使用不同的协议,这样必须考虑协议转换的问题。这些问题给IP复用带来了一定的难度,并使SoC芯片的time-to-market (上市时间)延长。为解决这些问题,一些大公司提出了自己的总线接口标准,如ARM的AMBA总线、IBM的CoreConnect总线、Altera的
Avalon总线等。因为核的多样性,使用完全相同的总线接口是不现实的。这就意味着,如果总线A上的一个IP核要移植到另一系统的总线B上,就需要更改此IP的接口以及数据交换的方式。如果设计者不了解总线B的数据交换协议,这样就对SoC系统的开发带来一系列困难。OCP-IP正是针对这些问题提出的。OCP协议是免费的,独立于具体的总线。它将软件中的分层概念应用到IP核接口,
提供一种具有通用结构定义、可扩展的接口协议,能完全满足IP内核通信机制的所有要求,方便了IP核与系统的集成。
OCP协议使IP核的功能与系统的接口无关,设计人员不需要了解IP核的功能也能利用它进行系统设计。
OCP接口允许设计者根据不同的目的配置接口,包括接口的数据宽度、交换的握手协议等,并且在SoC设计中可以裁剪核的功能,降低设计复杂性,减小面积,同时满足SoC的要求;
OCP接口还保持核在集成到系统的过程中完全不被改变(即在总线宽度、总线频率或电气负载有变化时核保持不变)。使用
OCP接口的设计可以交付即插即用的模块,同时支持核的开发与系统设计并行,节省设计时间。
OCP采用套接口(socket)的方法实现IP核的即插即用,如图1所示。Target Bus A表示总线A,Target Bus B表示总线B。不论总线A或者总线B是哪一类总线协议,只要总线上提供了OCP的接口,那么符合OCP协议的IP核就可以随意集成到任意总线上去,不需要重新设计IP核的接口。