基于OCP-IP的SOC总线即插即用的实现

发布者:DataExplorer最新更新时间:2011-08-11 关键字:SOC 手机看文章 扫描二维码
随时随地手机看文章

引言

  SOC设计的快速发展是以IP核复用为基础的。IP核的复用极大地提高了SoC系统设计的开发效率,SoC 片上总线的选择是IP核间集成与互连的关键技术之一。目前片上总线的标准协议众多,如ARM公司提出的AMBA总线、OPEN CORES组织提出的WishBONe总线、IBM公司提出的CoreConnect总线等。SoC片上总线的多样性对IP核的封装规范提出了要求。标准的IP核封装规范有助于提高IP核的复用甚至实现核的即插即用。基于提高IP核复用以及即插即用目的,OCP-IP组织提出了OCP-IP标准。

  1 OCP-lP标准介绍

  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核的接口。

OCP套接口
 

  1.2 OCP通信方式

  OCP协议定义了两个通信实体问点到点的接口。其中一个实体作为通信的主体(MaSTer),另一个作为从体(Slave)。只有Master可以发命令,Slave响应Master的命令,接收或发送数据。封装接口模块必须担当每个连接实体的对应端,当连接实体是Master时,封装接口模块就作为对应的Slave;当连接实体是Slave时,封装接口模块作Master。

  OCP的系统架构如图2所示。图中有3个IP核,其中左边标有主控的IP核是通信的发起方或者主控方,称为Master;最右边标有目标的是通信的目标对象,称为Slave;中间的IP核既可作为Master又可作Slave;下面的框代表OCP-IP封装接口模块;从Master出来并进入Slave的箭头表示OCP请求命令,从Slave出来并进入Master的箭头表示OCP的响应。2个IP核通过接口通信的过程是:功能为Master的IP核发出请求命令给对应的Slave端(总线封装接口模块);封装接口模块将请求命令转换成对应的总线命令传送给接收方的总线封装模块;接收方的总线封装模块再作为Master,把对应的内部总线传输转换成标准的OCP命令传送给目标IP核,目标IP核接收到命令并响应命令和返回读写的数据。

OCP系统架构

  2 基于AMBA总线的OCP接口设计

  AMBA(Advaneed Microcontroller Bus Architecture)总线规范是ARM公司设计的一种用于高性能嵌入式系统的总线标准。AMBA总线规范是开放标准,通过ARM公司的授权就可以免费获得。它独立于处理器和制造工艺技术,增强了各种应用中的外设和系统IP核单元的可重用性。2.O版AMBA标准定义了3组总线:AHB(AM-BA高性能总线)、ASB(AMBA系统总线)、和APB(AM-BA外设总线)。AHB总线应用于要求高速度高带宽的系统。本文以AHB总线为例,说明OCP -IP如何集成到SOC系统总线上。AMBA总线基本传输时序如图3所示。HCLK表示AMBA系统时钟,HADDR[31:0]表示32位地址总线, HWDATA[31:O]表示32位写操作时的数据总线,HREADY是AMBA总线的读写状态信号(状态为低电平时,表示一次读写操作完成), HRDATA[31:0]表示读操作时的数据总线。

AMBA总线基本传输时序

  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读写时序

  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的验证和系统的设计。

OCP-IP封装操作流程

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

  4 结语

  OCP是免费的基于点对点传输的IP核的标准协议,可重配置以及可扩展性很强,可以实现真正意义上的IP核即插即用,减少SoC系统设计的时间。本文讨论了OCP-IP的协议与特点,设计了基于AMBA总线的OCP-IP接口,提出了一种IP自动封装的方法,为IP核的集成和管理带来极大的方便。

关键字:SOC 引用地址:基于OCP-IP的SOC总线即插即用的实现

上一篇:调度算法实现描述
下一篇:TMS320C32芯片的工作站系统原理及结构

推荐阅读最新更新时间:2024-03-30 21:47

SoC芯片及MCU营收增长 芯海科技2020年净利润同比增75.22%
1月6日,芯海科技发布业绩预告称,公司预计2020年年度实现归属于母公司所有者的净利润为7,500万元左右,与上年同期相比,将增加3,219.77万元,同比增加75.22%左右。归属于母公司所有者的扣除非经常性损益的净利润为6,200万元左右,与上年同期相比,将增加2,467.66万元, 同比增加66.12%左右。 2020年,芯海科技持续加强研发投入和产品开发力度,提升新应用领域开拓能力;公司在智慧健康测量领域实现增长的原因为公司依靠高精度ADC优势,除在体重体脂秤等应用领域持续保持增长外,积极拓展了红外测温、人体成分分析仪等应用。 在模拟信号链芯片领域,芯海科技依靠高精度ADC及集成高精度ADC的SoC芯片,成功进入某头部客户
[手机便携]
汽车嵌入式SoC系统的应用与发展
摘要:介绍了作为计算领域重要组成部分的汽车嵌入式系统由低端到高端的发展历程和各个阶段的主要特点,详细论述了嵌入式SoC系统应用于汽车电子方面的新理论、新方法和关键技术,并对汽车嵌入式SoC系统的发展趋势进行了展望。 关键词:泛计算 嵌入式系统 汽车电子SoC 嵌入式系统是泛计算领域的重要组成部分,是嵌入式对象宿主体系中完成某种特定功能的专用计算机系统。嵌入式系统有体积小、低功耗、集成度高、子系统间能通信融合的优点。随着汽车技术的发展以及微处理器技术的不断进步,在汽车电子技术中得到了广泛应用。目前,从车身控制、底盘控制、发动机管理、主被动安全系统到车载娱乐、信息系统都离不开嵌入式技术的支持。 1 汽车嵌入式系统发展历程 嵌入
[应用]
瑞萨电子拓展R-IN32M3系列工业网络SoC的开发平台
结合领先的工业以太网协议栈与IAR Systems的IAR KickStart套件,大大减少开发时间和成本。 2014年6月17日,日本东京讯—全球领先的半导体及解决方案供应商瑞萨电子株式会社(TSE:6723)于今日宣布,其支持工业以太网通讯的SoC产品R-IN32M3系列平台解决方案实现了进一步拓展,新增了支持多种工业以太网协议栈的IAR Systems®开发套件。IAR Systems发布的这一款针对R-IN32M3 的低成本硬件入门套件IAR KickStart Kit™,可方便的实现对R-IN32M3方案的评估。该套件包括一个R-IN板、I-jet Lite调试器和支持ARM core的评估版IAR Embedd
[工业控制]
在Zynq SoC上实现双核非对称的多进程处理模式
在我的上一篇博客中我介绍了利用Zynq SoC上的两个ARM Cortex-A9 MPCore处理器执行不同的任务程序,实现非对称的多进程处理模式的概念。我期望你能坐得住因为这篇博客有点长,但是我们会有收获,到最后我们会让我们的AMP系统启动并运行,在我们实现AMP系统启动并运行之前会进行很多步的准备工作,但是这些都非常的简单所以不用担心。 在Zynq SoC上搭建AMP系统的关键是配置好一个启动引导加载程序,第一阶段的加载程序执行完毕后处理器会寻找这个执行文件并加载到内存中。不幸的是我使用的Vivado工具是2014.1版本(因为我最近在搬家没有网络所以不能下载最新的版本),当我们生成FSBL(第一阶段启动加载文件)时这个版
[单片机]
在Zynq <font color='red'>SoC</font>上实现双核非对称的多进程处理模式
SoC验证走出实验室良机已到
作者Richard Pugh,Mentor Graphics公司 SoC验证超越了常规逻辑仿真,但用于加速SoC验证的广泛应用的三种备选方法不但面临可靠性问题,而且难以进行权衡。而且,最重要的问题还在于硬件加速访问权限、时机及其稳定性。 当前,通常采用的三种硬件方法分别是FPGA原型验证、采用验证IP进行的加速仿真以及内电路仿真(ICE)。这些方法虽适用于某些情况,但对于那些面对不断更新的多处理器、多协议且偏重于软件的SoC验证团队来说,则存在明显不足。 FPGA原型验证适用于那些运行于不再进行更新的已有硬件上的软件,但却不适用于仍在进行大规模升级的硬件。其原因在于设计流程不同步:硬件完成后,软件团队方可使用FPGA开发板,
[半导体设计/制造]
<font color='red'>SoC</font>验证走出实验室良机已到
SPC563M64L7主要特性及框图_Discovery Plus开发板
ST公司的SPC563M64L7是用于汽车动力总成的32位Power Architecture MCU,是系统级芯片(SoC),采用许多新特性的高性能90nm CMOS技术,以降低成本和提高性能,Power Architecture®技术具有支持DSP的附加指令,以及诸如增强的时间处理单元,增强排队的模数转换器,控制局域网(CAN)和增强的模块输入/输出系统.此外,器件还集成了94KB SRAM和1.5MB闪存.本文介绍了SPC563M64L7主要特性,框图,以及SPC563Mxx系列Discovery Plus开发板SPC563M-DISP主要特性和电路图,PCB顶层布局图.   These 32-bit automoTIve
[汽车电子]
赛灵思FPGA和SoC加速OEM厂商产品开发
    随着内容文件化趋势的加强,广播公司正加速向全面基于IP(互联网协议)的基础设施转型,以充分发挥低成本IP网络的优势。与此同时,广播公司也在努力满足消费者不断提高的需求——要求在任何设备上通过屏幕就能欣赏到画质更高的视频。但是,广播公司在转型过程中对采购必要的设备非常谨慎,担心采购来的设备很快会因为不断快速变化的市场而过时,此外还要考虑到IP视频传输等新标准、新规范尚未最终定型的问题。这个问题已经足够让广播公司头疼的了,此外广播设备OEM厂商更是进退维谷,面临着巨大的压力,不得不加速新型解决方案的开发,从而帮助广播公司轻松应对未来标准和规范的变化。 为了帮助广播公司和广播设备OEM厂商应对各自的挑战,赛灵思通过提供现场可
[嵌入式]
SoC设计师将要面对的挑战及策略
  可编程能力和高性能将日益成为未来SoC设计满足需求的关键因素。   没有一个市场比嵌入式微处理器市场更为多元化和充满活力。在这个市场中机会比比皆是,而且层出不穷。   另一方面,挑战也同时存在:设计成本、掩膜成本和晶圆成本都在不断增加。   要增加利润不仅仅是需要加快产品上市时间,同时也要延长产品在市场上停留的时间。这些挑战可以通过摩尔定律、不断增加的晶体管数量、性能裕量和可编程软件解决方案来解决。这个趋势已经出现,而且正在加强。   从20世纪40年代可编程计算机的发明开始,软件可编程处理器开始具备先前需要定制逻辑的任务功能。70年代末,小型微处理器取代了定制设计。到了80和90年代,这些嵌入式处理器出现了惊人的增长,
[焦点新闻]
<font color='red'>SoC</font>设计师将要面对的挑战及策略
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved