微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > SOC总线即插即用的实现

SOC总线即插即用的实现

时间:06-30 来源:互联网 点击:

OCP-IP核的功能是可裁剪的,即OCP-IP的大部分信号都是可选择的。根据核的功能,选择使用不同的信号。OCP协议*有三大类型号:数据流信号 (dataflowsignals)、边带信号(sideband)、测试信号(test signals)。数据流信号主要包括:基本信号(basic signals)、简单扩展信号(simple extensions signals)、突发扩展信号(burst exten-sions signals)和线程扩展信号(thread extensions signals)。边带信号主要包括:复位(。Reset)、中断(Interrupt)、错误(Error)等信号。测试信号主要包括用于支持扫描 (Scan)、时钟控制和IEEE 1149.1(JTAG)的信号。此处用到的OCP信号包括:Reset(复位)、Clk(时钟)、En-ableClk(时钟使能)、MAddr(地址)、MCmd(命令)、MData(数据)、SCmDACcept(命令接受)、SData(Slave数据)、SResp(操作成功标志)。简单的 OCP读写时序如图4所示。Request Phase表示请求阶段,Response Phase表示响应阶段。A处由系统Master发出1个WR写命令,并给出地址A1和数据D1。随即Slave发出命令接受响应ScmdAccept,此处一个周期完成了一个写周期操作,不需要Slave给出写操作成功响应。C处系统Master发出一个RD读命令,并给出要读取的地址A2。Slave 随即给出命令接受响应信号SCmdAccept,在下一个时钟周期D处Slave给出要读取的数据D2并在Slave响应信号SResp上给出读操作成功标志DVA。此处读操作用了2个时钟周期。

OCP-IP跟AMBA总线的通信通过设计2个状态机来实现,1个用于接收AMBA总线上的流水数据,1个用于发送接收的数据并以OCP标准的方式发送。接收数据的状态机编码如下:

H_CTRL_PHASE1用于存储第1级流水指令,H_CTRL_PHASE2用于存储第2级流水指令,其状态转移图如图5所示。当AMBA总线上发出第1个读写指令,状态机进入H_CTRL_PHASE1状态,并将第1个读写指令转换成OCP命令。因为AMBA总线是基于流水的操作,所以第2条指令的发出不需要等第1条指令执行结束。这时候,状态机进入H_CTRL_PHASE2状态,并将此指令存储起来,等OCP命令执行结束立即将此存储的指令转换成OCP命令。这时如果AMBA总线上再次发出第3条指令,则状态机进入H_CTRL_PHASE1状态,并存储此指令。



发送接收到的数据的状态机编码如下:

状态转移图如图6所示。当接收数据的状态机接收到AMBA总线上的命令时,状态机让OCP接口进入第1个读写操作状态,即READl状态或者WRITE1 状态。如果AMBA总线上有持续的流水操作命令,状态机进入READ2状态或者WRITE2状态,即在AMBA流水操作的条件下,以1结尾的状态的下一个状态一定是以2结尾的状态,反之以2结尾的状态的下一个状态一定是以1结尾的状态。


3 OCP-IP标准封装软件设计

OCP是一种IP的标准,但不仅仅是IP的接口和数据的交换方式,还规定了IP的配置、端口等信息,即所谓的OCP配置文件。读取OCP配置文件中的内容,就可以知道此IP对应的OCP接口的性能,从而对总线上的接口进行配置,进而实现IP的即插即用。虽然IP的功能是多样的,总线的数据交互方式也是多样的,但OCP接口的时序是固定的。这样就可以通过设计软件提取IP的端口信息,并自动生成相应的OCP接口模块。该封装软件运行流程如图7所示。用户的 IP可以直接挂在该SOC平台上进行验证,同时也可以直接集成到其他带有OCP接口的SoC系统中去,加快IP的验证和系统的设计。

封装软件采用MFC(微软基础类库)来编写。通过设计用户界面,用户只要输入IP的时钟、地址、数据、读写控制信号等,就可以自动生成1个OCP的接口,以及标准的配置文件,从而实现IP的即插即用以及IP的统一管理。

4 结语

OCP是免费的基于点对点传输的IP核的标准协议,可重配置以及可扩展性很强,可以实现真正意义上的IP核即插即用,减少SoC系统设计的时间。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top