一种在SOPC系统中提高软硬件交互的方法技术方案

技术编号:7515256 阅读:229 留言:0更新日期:2012-07-11 21:32
一种在SOPC系统中实现软硬件交互的方法,该方法采用串并转换与FIFO并用的方式,通过在PLB总线上挂接User?ip?core来实现软硬件交互。本发明专利技术中软件只需要根据软件指令的执行时间和实际需要连续的将命令发出;硬件在执行完当前操作时只需查看对应通道的缓存中是否还有未执行的命令,节约了软硬件交互的时间;本发明专利技术可以实现单通道内多命令的无缝流水操作;还可以实现对多通道多命令的并行流水操作。

【技术实现步骤摘要】

本专利技术涉及一种提高软硬件交互效率的方法,具体涉及一种在SOPC系统中提高软硬件交互效率的方法
技术介绍
半导体技术日新月异,使得基于FPGA的可编程片上系统(SOPC)技术近年来有了快速的发展。FPGA可重复修改的特点以及可编程片上系统开发软件的不断跟进,使得在一个芯片内进行系统级的设计变得容易。过去对于FPGA的开发使用主要是在逻辑设计方面, 设计是从最基本的逻辑设计入手,虽然也有各种IP Core ;现在的FPGA在速度和容量上突飞猛进,使得FPGA能容纳系统一级的硬件及可以将一些软件代码存储在FPGA片内,与之相应的系统开发软件平台提供了硬件软件及验证调试的综合开发平台,它比一般的嵌入式系统具有更多的灵活性,系统硬件和系统软件都可以根据用户的需要来定制和裁剪。新的设计一般是随着软件平台的设计向导并根据用户需求建立一个包括CPU的基本的系统,然后再进行进一步的添加和设计。厂家还提供了很多通用的IP Core,这样一来设计就变得更加模块化,使可以在较短的时间内设计出复杂的系统来。软硬件设计都在一个平台下进行,下载到FPGA的内容既包括硬件系统又包括CPU的执行代码。SOPC采取的另一种方案是在FPGA内嵌入了处理器硬核,如Xilinx的一些高端器件在片内嵌入了 PowerPC,Altera的Excalibur在片内嵌入了 ARM处理器硬核等等。无论采用什么样的方式,可编程片上系统要完成一个完整的功能都必然会涉及到软硬件之间的交互。要在可编程片上系统内即完成硬件系统设计又完成CPU的执行,必须考虑到软硬件之间的交互,传统的软硬件交互方法采用中断或者查询方式,是一种完全串行的交互方式,即软件在接收不到硬件系统发回的中断或查询信息时将不能执行后续的操作,这些方式的软硬件交互效率低,实现不够灵活。
技术实现思路
本专利技术的目的是为提高软硬件交互效率,以Xilinx的Virtex5器件在片内嵌入 PowerPC为基础,采用串并转换与FIFO并用的思路,提供了一种在SOPC系统中高效的进行软硬件交互的方法。本专利技术的技术解决方案为一种在SOPC系统中实现软硬件交互的方法,其特殊之处在于该方法采用串并转换与FIFO并用的方式,通过在PLB总线上挂接her ipcore来实现软硬件交互;所述her ip core包括软件通过PLB总线写寄存器模块和对写入寄存器的数据解析模块以及数据缓存模块;其中,所述PLB总线写寄存器模块将软件将要启动的通道号和对应的通道信息写入寄存器,所述数据解析模块对写入寄存器的数据进行解析,将通道信息写入对应通道的 FIFO中进行缓存,同时启动对应通道的一系列操作,直到FIFO中存储的命令信息全部被执行完。上述串并转换的实现由数据解析模块来完成;1)所述数据解析模块在每次接收到写入寄存器的数据后,对该数据进行判断,判断其对应的操作信息是针对于哪个通道,其中对每个通道的操作信息都有一个深度为N的数据缓存FIFO,根据数据解析模块解析的通道号将对应的一次操作信息写入对应该通道的 FIFO中,然后FIFO的写入地址加1,直到将所有的操作信息写入;2)在此过程中不需要考虑硬件的执行过程,只需要根据实际需要和软件指令的执行时间写入命令并进行缓存;3)在第一次写入某通道对应的FIFO操作信息时,启动硬件系统的操作,在硬件系统执行完一次操作后,再判断该通道是否还有未执行的操作,如果有则继续执行,直到所有的操作执行完成,则可实现单通道多个命令的无缝流水操作。上述在SOPC系统中实现软硬件交互的方法,其特殊之处在于,该方法实现单通道内多命令的流水操作;具体是软件通过PLB总线写入寄存器的时间取决于软件指令的执行时间;在当前操作完成后,紧接着执行下一次操作,实现了通道内多命令的无缝流水操作。上述在SOPC系统中实现软硬件交互的方法,其特殊之处在于,该方法实现多通道多命令的并行流水操作;具体是在实现通道内多命令流水操作的基础上如果软件通过PLB总线写入寄存器的值依次对应不同的通道,则每个通道均会在软件写入第一次操作信息时开始执行,各个通道的硬件执行过程没有相互制约,进行并行的执行,对于各个通道内实现流水操作,实现了硬件系统多通道多命令的并行流水操作。本专利技术具有如下优点1)软件不需要等待硬件系统给出的任何反馈信号,只需要根据软件指令的执行时间和实际需要连续的将命令发出;2)硬件的执行不需要软件的参与,在执行完当前操作时只需查看对应通道的缓存中是否还有未执行的命令,节约了软硬件交互的时间;3)如果软件发出的命令是针对同一通道的多次命令,可以实现单通道内多命令的无缝流水操作;4)如果软件发出的命令是针对多个通道的多次命令操作,可以实现对多通道多命令的并行流水操作。附图说明图1为本专利技术结构示意图;图2为多通道对应的FIFO缓存结构示意图;图3为多通道多命令的并行流水策略示意图。具体实施方式参见图1,以User IP core的实现为核心,详细描述整个系统的工作流程。首先通过在PowerPC硬核的PLB总线上挂接自Wher IP Core模块实现软件对寄存器的写操作,如图1(1)所示。软件对寄存器的写操作只能串行的执行,而硬件系统要考虑到对应到多个通道的执行操作,因此内部必须进行串并转换。串并转换的实现由数据解析模块来完成,数据解析模块在每次接收到写入寄存器的数据后,对该数据进行判断,判断其对应的操作信息是针对于哪个通道,其中对每个通道的操作信息都有一个深度为N(N 的值根据实际需要确定)的数据缓存FIFO,(图2所示为多通道对应的FIFO缓存结构示意图),根据解析模块解析的通道号将对应的一次操作信息写入对应该通道的FIFO中,然后 FIFO的写入地址加1,直到将所有的操作信息写入。在此过程中不需要考虑硬件的执行过程,只需要根据实际需要和软件指令的执行时间写入命令并进行缓存。在第一次写入某通道对应的FIFO操作信息时,启动硬件系统的操作,在硬件系统执行完一次操作后,再判断该通道是否还有未执行的操作,如果有则继续执行,直到所有的操作执行完成,则可实现单通道多个命令的无缝流水操作。此外,该系统还可以实现多通道多命令的并行流水操作。以四通道的硬件系统为例,如果软件连续写入寄存器的通道号依次为1,2,3,4,则在将命令信息依次写入四个通道对应的数据缓存FIFO后,依次启动四个通道的硬件操作,四个通道的硬件操作在启动后分别执行,不会相互制约,实现了并行操作,对于单个的通道来说依旧是进行多命令的流水操作,因此可以实现多通道多命令的并行流水操作。这种基于FIFO方式的软硬件交互方式对于软件和硬件来说都不需要等待的过程,解决了传统的中断和查询方式在软硬件交互上等待信息所浪费的时间,很大程度的提高了软硬件的交互效率,同时还可以实现硬件单通道多命令的无缝流水操作和多通道多命令的并行流水操作。权利要求1.一种在SOPC系统中实现软硬件交互的方法,其特征在于该方法采用串并转换与FIFO并用的方式,通过在PLB总线上挂接her ipcore来实现软硬件交互;所述her ip core包括软件通过PLB总线写寄存器模块和对写入寄存器的数据解析模块以及数据缓存模块;其中,所述PLB总线写寄存器模块将软件将要启动的通道号和对应的通道信息写入寄存器本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:刘升张燕
申请(专利权)人:西安奇维测控科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术