CN115129653A - 一种基于hpi的fpga与dsp通信系统 - Google Patents
一种基于hpi的fpga与dsp通信系统 Download PDFInfo
- Publication number
- CN115129653A CN115129653A CN202211025299.7A CN202211025299A CN115129653A CN 115129653 A CN115129653 A CN 115129653A CN 202211025299 A CN202211025299 A CN 202211025299A CN 115129653 A CN115129653 A CN 115129653A
- Authority
- CN
- China
- Prior art keywords
- state
- dsp
- data
- fpga
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
本发明涉及电子工程技术领域,特别涉及一种基于HPI的FPGA与DSP通信系统,包括一个作为主机的kintex7 FPGA芯片与一个作为从机的C55x DSP芯片,FPGA主机与DSP从机进行硬件互联,DSP的各个HPI接口与FPGA的IO口进行连接;所述主机负责发起访问,向控制总线写入HPI控制信号,向地址总线写入访问的地址,根据访问类型设置数据总线方向;所述从机负责响应通信过程,准备待访问的数据,对主机发起的访问内存请求进行响应或拒绝响应;所述DSP从机通过GPIO输出通知FPGA主机数据和内存空间是否准备就绪,以解决现有控制器与DSP在通信时CPU开销大以及通信速率慢的问题。
Description
技术领域
本发明涉及电子工程技术领域,特别涉及一种基于HPI的FPGA与DSP通信系统。
背景技术
在DSP应用系统中,有些应用系统采用单个DSP芯片加上必要的存储器、模数转换器和某些外设接口就可以满足要求。但在一些应用场景中,由于系统除了要完成数字信号处理功能外,还有许多功能例如与外部通信、控制、人机接口等,如果仅用一个DSP芯片来实现,会出现处理能力所限或硬件系统过于复杂的问题。在这种情况下,往往需要采用多个DSP芯片或者一个DSP芯片加一个另外的处理器来实现系统功能,其中DSP芯片主要完成系统的数字信号处理功能,而另外的处理器则完成系统的其他功能,包括控制、通信等等。在这种主从系统中,一般DSP芯片作为从机,而另外的芯片处理器作为主机。
在DSP的双机通信中,主要有串行通信、并行通信和HPI等几种方式。其中串行通信相对来说比较简单,但是通信量小;并行通信与串行通信方式相比效率高些,但需要在两通信芯片之间增加缓冲器或锁存器,硬件逻辑更加复杂;基于HPI,主机可以直接访问DSP芯片的RAM空间,且读写数据直接通过数据总线,不占用CPU资源。
发明内容
针对现有技术的不足,本发明提供了一种基于HPI的FPGA与DSP通信系统,以解决现有控制器与DSP在通信时CPU开销大以及通信速率慢的问题。
本发明通过以下技术方案予以实现:
一种基于HPI的FPGA与DSP通信系统,包括一个作为主机的kintex7 FPGA芯片与一个作为从机的C55x DSP芯片,FPGA主机与DSP从机进行硬件互联,DSP的各个HPI接口与FPGA的IO口进行连接;
所述主机负责发起访问,向控制总线写入HPI控制信号,向地址总线写入访问的地址,根据访问类型设置数据总线方向;所述从机负责响应通信过程,准备待访问的数据,对主机发起的访问内存请求进行响应或拒绝响应;
所述DSP从机通过GPIO输出通知FPGA主机数据和内存空间是否准备就绪,即设置DSP的GPIO5作为DSP芯片应答的控制位,当FPGA主机请求访问DSP内存时,如果从机RAM空间中数据已准备好或已准备好被主机写入,则在收到主机请求后,DSP从GPIO5输出高电平,表示允许,FPGA检测到高电平后,开始在内部生成HPI时序控制信号,并发送到DSP端口;
所述FPGA主机采用分层设计,包括上层的设备交互层和底层的信号发生层;设备交互层负责检测DSP从机状态,并在DSP就绪时生成需要的地址信号和信号发生层所需的控制信号,信号发生层产生HPI接口控制信号:HCNTL[1:0],HR/W,HDS1,HDS2,并控制HPI寄存器的读写访问时序。
优选的,所述FPGA主机在发送访问请求时,首先检测DSP的GPIO5的电平高低来判断DSP是否已经准备好数据和内存空间,如果电平为低,表示DSP从机的数据或内存空间未准备好;否则表示DSP已经准备好。
优选的,在检测到GPIO5高电平后,所述设备交互层生成需要访问的内存地址,复位rst_n位为0,并根据所需的内存访问方式读/写设置read/write_n位为“1”读或“0”写。
优选的,所述信号发生层在内部通过状态机实现,从state_c0到state_c5,共六个状态,状态之间切换根据时钟周期及复位信号控制。
优选的,所述state_c0状态复位所有控制信号;state_c1到state_c3为读取数据逻辑状态机,其中state_c1状态设置hcntl0位和读写控制位为读取及数据方向为输入;state_c2状态设置数据锁存位hds2及读取数据;state_c3状态设置读取默认状态值;
所述state_c4到state_c6为写入数据逻辑状态机,其中state_c4状态设置hcntl0位和读写控制位为写入及数据方向为输出;state_c5状态设置数据锁存位hds2及写入数据;state_c6状态设置写入的默认状态值。
优选的,所述通讯系统的主从机HPI通信流程包括如下步骤:
步骤1:FPGA主机在发送访问请求时,首先检测DSP的GPIO5的电平高低来判断DSP是否已经准备好数据和内存空间;如果电平为低,则数据或内存空间未准备好;否则表示DSP已经准备好;
步骤2:在检测到GPIO5高电平后,设备交互层生成需要访问的内存地址,复位rst_n位为0,并根据所需的内存访问方式读/写设置read/write_n位为“1”读或“0”写;
步骤3:信号发生层首先将各个控制信号恢复初始值,状态机state_c设置为0,如果DSP的状态信号HRDY为1则主机开始产生HPI时序控制信号;
步骤4:根据设备交互层生成的访问类型信号read/write_n信号产生不同的时序逻辑;
如果为读read/write_n为1,则首先设置状态机state_c为1,hr/w_n设置为1,hcntl0设置为1,hds2设置为1,地址总线address_io为需要访问的内存地址,数据总线data_io设置为输入;在经过一个时钟周期后,设置状态机为2,hr/w_n保持为1,hcntl0保持1,hds2设置为0;保持这个状态直到数据总线上读取到数据,设置状态机为3,hcntl0设置为0,hds2设置为1,清除地址总线和数据总线上的内容。
如果为写read/write_n为0,则首先设置状态机state_c为4,hr/w_n设置为0,hcntl0设置为1,hds2设置为1,地址总线address_io为需要访问的内存地址,数据总线data_io设置为输出,内容为要写入的数据;在经过一个时钟周期后,设置状态机为5,hr/w_n保持为0,hcntl0保持1,hds2设置为0;保持这个状态直到数据写入成功,设置状态机为6,hr/w_n设置为1,hcntl0设置为0,hds2设置为1,清除地址总线和数据总线上的内容。
本发明与现有技术相比,其显著优点为:
硬件电路连接简单,FPGA主机与DSP从机通过端口直接连接,不需要使用额外的数据锁存器和缓冲器;主机与从机通信时通过访问内存的形式直接写入或读取数据,减少了CPU消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明主从机硬件连接示意图。
图2是本发明提供的主从机HPI通信流程示意图。
图3是本发明提供的主机控制信号时序图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
请参照图1,FPGA主机与DSP从机进行硬件互联,DSP的各个HPI接口与FPGA的IO口进行连接。
除此以外,设置DSP的GPIO5作为DSP芯片应答的控制位。当FPGA主机请求访问DSP内存时,如果从机RAM空间中数据已准备好或已准备好被主机写入,则在收到主机请求后,DSP从GPIO5输出高电平,表示允许,FPGA检测到高电平后,开始在内部生成HPI时序控制信号,并发送到DSP端口。如DSP数据未准备好或未准备好被主机写入,则对FPGA主机请求不应答,GPIO5输出低电平,FPGA检测到低电平,不输出控制信号。
本发明还提供了基于分层设计的主机控制器,包括上层的设备交互层和底层的信号发生层,其流程图如图2所示,包括如下部分:
设备交互层:
设备交互层负责检测DSP状态,并在DSP就绪时生成需要的地址信号和信号发生层所需的控制信号。
步骤1:FPGA主机在发送访问请求时,首先检测DSP的GPIO5的电平高低来判断DSP是否已经准备好数据和内存空间。如果电平为低,则数据或内存空间未准备好;否则表示DSP已经准备好。
步骤2:在检测到GPIO5高电平后,设备交互层生成需要访问的内存地址,复位rst_n位为0,并根据所需的内存访问方式(读/写)设置read/write_n位为“1”(读)或“0”(写)。
信号发生层:
信号发生层产生HPI接口控制信号:HCNTL[1:0],HR/W,HDS1,HDS2,并控制HPI寄存器的读写访问时序。
步骤3:信号发生层首先将各个控制信号恢复初始值,状态机state_c设置为0,如果DSP的状态信号HRDY为1则主机开始产生HPI时序控制信号。
步骤4:根据设备交互层生成的访问类型信号read/write_n信号产生不同的时序逻辑。
如果为读(read/write_n为1),则首先设置状态机state_c为1,hr/w_n设置为1,hcntl0设置为1,hds2设置为1,地址总线address_io为需要访问的内存地址,数据总线data_io设置为输入;在经过一个时钟周期后,设置状态机为2,hr/w_n保持为1,hcntl0保持1,hds2设置为0;保持这个状态直到数据总线上读取到数据,设置状态机为3,hcntl0设置为0,hds2设置为1,清除地址总线和数据总线上的内容。
如果为写(read/write_n为0),则首先设置状态机state_c为4,hr/w_n设置为0,hcntl0设置为1,hds2设置为1,地址总线address_io为需要访问的内存地址,数据总线data_io设置为输出,内容为要写入的数据;在经过一个时钟周期后,设置状态机为5,hr/w_n保持为0,hcntl0保持1,hds2设置为0;保持这个状态直到数据写入成功,设置状态机为6,hr/w_n设置为1,hcntl0设置为0,hds2设置为1,清除地址总线和数据总线上的内容。
主机生成的访问DSP从机时序逻辑图如图3所示,其中HPI片选信号hcs始终为低有效状态。在读数据时,HR/W为高状态,同时HCNTL和地址线为有效状态,经过时间E1之后,HDS变为有效状态,在HDS变为高无效状态前,读取的数据会出现在HD数据总线上,并持续到HDS变为高无效;在写数据时,HR/W首先变为低,同时HCNTL和地址线为有效状态,经过时间E1之后,HDS变为有效状态,在HDS变为无效状态前,需将待写入的数据写入到数据总线,并持续一段时间至HDS变为高无效状态。上述时序逻辑由FPGA主机生成,并实现对HPI从机RAM地址数据的读写。
综上所述,本发明采用了一个较为简单的硬件连接,包括一个GPIO管脚和HPI控制管脚,实现了kintex7 FPGA主机与C55x DSP从机之间的通信,保证了在通信速率较快的同时消耗较少的CPU资源。主机采用双层设计,顶层和底层之间信号耦合度很小,对于不同应用场景,顶层和底层都可以根据任务进行单独设计,具有极高的灵活性。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种基于HPI的FPGA与DSP通信系统,其特征在于,包括一个作为主机的kintex7FPGA芯片与一个作为从机的C55x DSP芯片,FPGA主机与DSP从机进行硬件互联,DSP的各个HPI接口与FPGA的IO口进行连接;
所述主机负责发起访问,向控制总线写入HPI控制信号,向地址总线写入访问的地址,根据访问类型设置数据总线方向;所述从机负责响应通信过程,准备待访问的数据,对主机发起的访问内存请求进行响应或拒绝响应;
所述DSP从机通过GPIO输出通知FPGA主机数据和内存空间是否准备就绪,即设置DSP的GPIO5作为DSP芯片应答的控制位,当FPGA主机请求访问DSP内存时,如果从机RAM空间中数据已准备好或已准备好被主机写入,则在收到主机请求后,DSP从GPIO5输出高电平,表示允许,FPGA检测到高电平后,开始在内部生成HPI时序控制信号,并发送到DSP端口;
所述FPGA主机采用分层设计,包括上层的设备交互层和底层的信号发生层;设备交互层负责检测DSP从机状态,并在DSP就绪时生成需要的地址信号和信号发生层所需的控制信号,信号发生层产生HPI接口控制信号:HCNTL[1:0],HR/W,HDS1,HDS2,并控制HPI寄存器的读写访问时序。
2.根据权利要求1所述的一种基于HPI的FPGA与DSP通信系统,其特征在于,所述FPGA主机在发送访问请求时,首先检测DSP的GPIO5的电平高低来判断DSP是否已经准备好数据和内存空间,如果电平为低,表示DSP从机的数据或内存空间未准备好;否则表示DSP已经准备好。
3.根据权利要求2所述的一种基于HPI的FPGA与DSP通信系统,其特征在于,在检测到GPIO5高电平后,所述设备交互层生成需要访问的内存地址,复位rst_n位为0,并根据所需的内存访问方式读/写设置read/write_n位为“1”读或“0”写。
4.根据权利要求2所述的一种基于HPI的FPGA与DSP通信系统,其特征在于,所述信号发生层在内部通过状态机实现,从state_c0到state_c5,共六个状态,状态之间切换根据时钟周期及复位信号控制。
5.根据权利要求4所述的一种基于HPI的FPGA与DSP通信系统,其特征在于,所述state_c0状态复位所有控制信号;state_c1到state_c3为读取数据逻辑状态机,其中state_c1状态设置hcntl0位和读写控制位为读取及数据方向为输入;state_c2状态设置数据锁存位hds2及读取数据;state_c3状态设置读取默认状态值;
所述state_c4到state_c6为写入数据逻辑状态机,其中state_c4状态设置hcntl0位和读写控制位为写入及数据方向为输出;state_c5状态设置数据锁存位hds2及写入数据;state_c6状态设置写入的默认状态值。
6.根据权利要求1-5任一项所述的一种基于HPI的FPGA与DSP通信系统,其特征在于,所述通讯系统的主从机HPI通信流程包括如下步骤:
步骤1:FPGA主机在发送访问请求时,首先检测DSP的GPIO5的电平高低来判断DSP是否已经准备好数据和内存空间;如果电平为低,则数据或内存空间未准备好;否则表示DSP已经准备好;
步骤2:在检测到GPIO5高电平后,设备交互层生成需要访问的内存地址,复位rst_n位为0,并根据所需的内存访问方式读/写设置read/write_n位为“1”读或“0”写;
步骤3:信号发生层首先将各个控制信号恢复初始值,状态机state_c设置为0,如果DSP的状态信号HRDY为1则主机开始产生HPI时序控制信号;
步骤4:根据设备交互层生成的访问类型信号read/write_n信号产生不同的时序逻辑;
如果为读read/write_n为1,则首先设置状态机state_c为1,hr/w_n设置为1,hcntl0设置为1,hds2设置为1,地址总线address_io为需要访问的内存地址,数据总线data_io设置为输入;在经过一个时钟周期后,设置状态机为2,hr/w_n保持为1,hcntl0保持1,hds2设置为0;保持这个状态直到数据总线上读取到数据,设置状态机为3,hcntl0设置为0,hds2设置为1,清除地址总线和数据总线上的内容;
如果为写read/write_n为0,则首先设置状态机state_c为4,hr/w_n设置为0,hcntl0设置为1,hds2设置为1,地址总线address_io为需要访问的内存地址,数据总线data_io设置为输出,内容为要写入的数据;在经过一个时钟周期后,设置状态机为5,hr/w_n保持为0,hcntl0保持1,hds2设置为0;保持这个状态直到数据写入成功,设置状态机为6,hr/w_n设置为1,hcntl0设置为0,hds2设置为1,清除地址总线和数据总线上的内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211025299.7A CN115129653B (zh) | 2022-08-25 | 2022-08-25 | 一种基于hpi的fpga与dsp通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211025299.7A CN115129653B (zh) | 2022-08-25 | 2022-08-25 | 一种基于hpi的fpga与dsp通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115129653A true CN115129653A (zh) | 2022-09-30 |
CN115129653B CN115129653B (zh) | 2022-11-22 |
Family
ID=83387474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211025299.7A Active CN115129653B (zh) | 2022-08-25 | 2022-08-25 | 一种基于hpi的fpga与dsp通信系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115129653B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090167589A1 (en) * | 2006-06-29 | 2009-07-02 | Igor Bausov | Earth-penetrating radar with inherent near-field rejection |
CN103019976A (zh) * | 2011-09-22 | 2013-04-03 | 中国航天科工集团第三研究院第八三五七研究所 | 基于fpga的hpi总线上位机接口 |
CN203191975U (zh) * | 2013-04-12 | 2013-09-11 | 杭州亿恒科技有限公司 | 一种dsp与pxi总线接口 |
CN106776458A (zh) * | 2016-12-13 | 2017-05-31 | 积成电子股份有限公司 | 基于fpga和hpi的dsp间的通信装置及通信方法 |
CN107291652A (zh) * | 2017-07-05 | 2017-10-24 | 深圳市奈瑞特科学技术有限公司 | 一种并行通信方法 |
CN107870885A (zh) * | 2017-11-28 | 2018-04-03 | 国网技术学院 | 通信系统、装置及方法 |
-
2022
- 2022-08-25 CN CN202211025299.7A patent/CN115129653B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090167589A1 (en) * | 2006-06-29 | 2009-07-02 | Igor Bausov | Earth-penetrating radar with inherent near-field rejection |
CN103019976A (zh) * | 2011-09-22 | 2013-04-03 | 中国航天科工集团第三研究院第八三五七研究所 | 基于fpga的hpi总线上位机接口 |
CN203191975U (zh) * | 2013-04-12 | 2013-09-11 | 杭州亿恒科技有限公司 | 一种dsp与pxi总线接口 |
CN106776458A (zh) * | 2016-12-13 | 2017-05-31 | 积成电子股份有限公司 | 基于fpga和hpi的dsp间的通信装置及通信方法 |
CN107291652A (zh) * | 2017-07-05 | 2017-10-24 | 深圳市奈瑞特科学技术有限公司 | 一种并行通信方法 |
CN107870885A (zh) * | 2017-11-28 | 2018-04-03 | 国网技术学院 | 通信系统、装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115129653B (zh) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US3940743A (en) | Interconnecting unit for independently operable data processing systems | |
US5255375A (en) | High performance interface between an asynchronous bus and one or more processors or the like | |
US5119480A (en) | Bus master interface circuit with transparent preemption of a data transfer operation | |
CN106681949B (zh) | 基于一致性加速接口的直接内存操作实现方法 | |
US6134625A (en) | Method and apparatus for providing arbitration between multiple data streams | |
US5265216A (en) | High performance asynchronous bus interface | |
JPH08235103A (ja) | コンピュータ・システムの2つのバス間のブリッジ回路 | |
US8339869B2 (en) | Semiconductor device and data processor | |
CN110968352B (zh) | 一种pcie设备的复位系统及服务器系统 | |
US20240143392A1 (en) | Task scheduling method, chip, and electronic device | |
JPH07105146A (ja) | 共有メモリ装置 | |
CN103106164A (zh) | 一种高效dma控制器 | |
JP2963426B2 (ja) | バスブリッジ装置及びトランザクションフォワード方法 | |
CN107566296B (zh) | 接口设备和接口方法 | |
CN105718396A (zh) | 一种大数据主设备传输的i2c总线装置及其通讯方法 | |
CN115129653B (zh) | 一种基于hpi的fpga与dsp通信系统 | |
WO2021113778A1 (en) | Data transfers between a memory and a distributed compute array | |
CN102591817B (zh) | 一种多总线桥控制器及其实现方法 | |
WO2020107460A1 (zh) | 运算方法、芯片、系统、可读存储介质及计算机程序产品 | |
CN110765065A (zh) | 片上系统 | |
CN114328350A (zh) | 一种基于axi总线的通讯方法、装置以及介质 | |
US20230091817A1 (en) | Protocol buffer-based cache mirroring method | |
CN109726149B (zh) | 一种axi总线访问nand flash的方法及装置 | |
US6199123B1 (en) | Computer system for supporting increased PCI master devices without the requiring additional bridge chips | |
JPH11110342A (ja) | バス接続方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |