CN114253884B - 基于fpga的多主对多从访问仲裁方法、系统及存储介质 - Google Patents
基于fpga的多主对多从访问仲裁方法、系统及存储介质 Download PDFInfo
- Publication number
- CN114253884B CN114253884B CN202210189251.3A CN202210189251A CN114253884B CN 114253884 B CN114253884 B CN 114253884B CN 202210189251 A CN202210189251 A CN 202210189251A CN 114253884 B CN114253884 B CN 114253884B
- Authority
- CN
- China
- Prior art keywords
- data
- address
- write
- access
- read
- 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.)
- Active
Links
Images
Classifications
-
- 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
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/36—Arbitration
- G06F2213/3604—Coding information on multiple lines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明涉及数据传输管理技术领域,具体涉及基于FPGA的多主对多从访问仲裁方法、系统及存储介质。本发明通过接口转换模块对各主端口的读写访问数据进行标准化解析,通过仲裁模块对译码后的读写访问数据进行优先级排序仲裁处理,通过拓展独立的写地址通道、写数据通道、写响应通道、读地址通道、读数据通道和读响应通道,进行多主端口与多从端口间读写访问数据及相应响应数据的有序、稳定传输,以提供一整套高效的交互设计方法,实现多主端口访问多从端口的仲裁逻辑优化,解决片上多个主端口与FPGA内部多个从功能模块之间多主多从通信过程中的数据冲突以及稳定性问题。
Description
技术领域
本发明涉及数据传输管理技术领域,具体涉及基于FPGA的多主对多从访问仲裁方法、系统及存储介质。
背景技术
FPGA(Field Programmable Gate Array,现场可编程门阵列)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
目前基于FPGA的寄存器访问接口常见有USB接口、SPI接口、EMIF接口以及LocalBus接口,但平台化工程中涉及的多主访问多从功能模块时的有效仲裁逻辑并没有一种稳定的方法通用于常见的通信接口中。AXI(Advanced eXtensible Interface)是一种面向高性能、高带宽、低延迟的片内总线,它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持Outstanding传输访问和乱序访问,并更加容易进行时序收敛。但FPGA内部的AXI接口技术只适用于逻辑内部,片上其他硬件的适用受到限制。
发明内容
针对现有技术存在的不足,本发明提供了基于FPGA的多主对多从访问仲裁方法、系统及存储介质,其应用时,可以有效解决片上多个主端口与FPGA内部多个从功能模块之间多主多从通信过程中的数据冲突以及稳定性问题,实现多主端口与多从端口之间访问仲裁逻辑的优化。
第一方面,本发明提供基于FPGA的多主对多从访问仲裁方法,包括:
获取各主端口的优先级编号和第一访问指令,所述第一访问指令包括第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据;
根据设定的译码逻辑对各主端口的第一访问指令进行译码,获得各第一访问指令所对应的第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据;
根据第一访问对象数据和第一操作类型数据将第一地址数据与对应的优先级编号关联后输入预置的写地址通道,将第一写入数据与对应的优先级编号关联后输入预置的写数据通道;
对写地址通道末端到达的各第一地址数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一地址数据,对写数据通道末端到达的各第一写入数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一写入数据;
根据优先级最高的第一地址数据选定对应的从端口,将优先级最高的第一地址数据和第一写入数据传输给对应的从端口。
在一个可能的设计中,在将优先级最高的第一地址数据和第一写入数据传输给对应的从端口后,所述方法还包括:
获取对应从端口的写响应数据和端口编号;
根据端口编号将写响应数据通过预置的写响应通道存入对应的第一状态寄存器,并将对应第一状态寄存器的地址数据反馈给对应的主端口。
在一个可能的设计中,所述将对应第一状态寄存器的地址数据反馈给对应的主端口,包括:
获取主端口的第二访问指令,所述第二访问指令包括第二操作类型数据、第二访问对象数据、第一访问区间数据、第二地址数据和第一寄存器定义数据;
根据设定的译码逻辑对第二访问指令进行译码,获得第二操作类型数据、第二访问对象数据、第一访问区间数据、第二地址数据和第一寄存器定义数据;
根据第二访问对象数据、第二操作类型数据和第一访问区间数据判定对应的读取访问区间;
根据第二地址数据和第一寄存器定义数据在对应的读取访问区间内找到对应的第一状态寄存器,并读取该第一状态寄存器的地址数据反馈给主端口。
在一个可能的设计中,所述方法还包括:
获取各主端口的优先级编号和第三访问指令,所述第三访问指令包括第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据;
根据设定的译码逻辑对各主端口的第三访问指令进行译码,获得各第三访问指令所对应的第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据;
根据第一访问对象数据和第二操作类型数据将第三地址数据与对应的优先级编号关联后输入预置的读地址通道,将第一读取数据与对应的优先级编号关联后输入预置的读数据通道;
对读地址通道末端到达的各第三地址数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第三地址数据,对读数据通道末端到达的各第一读取数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一读取数据;
根据优先级最高的第三地址数据选定对应的从端口,将优先级最高的第三地址数据和第一读取数据传输给对应的从端口。
在一个可能的设计中,在将优先级最高的第三地址数据和第一读取数据传输给对应的从端口后,所述方法还包括:
获取对应从端口的读响应数据和端口编号;
根据端口编号将读响应数据通过预置的读响应通道存入对应的第二状态寄存器和第一数据寄存器,并将对应第二状态寄存器和第一数据寄存器的地址数据反馈给对应的主端口。
在一个可能的设计中,所述将对应第二状态寄存器和第一数据寄存器的地址数据反馈给对应的主端口,包括:
获取主端口的第四访问指令,所述第四访问指令包括第二操作类型数据、第二访问对象数据、第二访问区间数据、第四地址数据和第二寄存器定义数据;
根据设定的译码逻辑对第四访问指令进行译码,获得第二操作类型数据、第二访问对象数据、第二访问区间数据、第四地址数据和第二寄存器定义数据;
根据第二访问对象数据、第二操作类型数据和第二访问区间数据判定对应的读取访问区间;
根据第四地址数据和第二寄存器定义数据在对应的读取访问区间内找到对应的第二状态寄存器和第一数据寄存器;
读取第二状态寄存器的地址数据,若为设定值,则读取第一数据寄存器的地址数据反馈给主端口。
在一个可能的设计中,所述第一访问指令还包括第二写入数据和第三寄存器定义数据,所述第二写入数据包括主端口的优先级编号,所述方法还包括:
a.根据设定的译码逻辑对第一访问指令进行译码,获得第二写入数据和第三寄存器定义数据;
b.将第二写入数据和第三寄存器定义数据通过写数据通道的优先级排序仲裁处理后传输给对应的从端口,以使对应从端口根据第二写入数据为对应优先级编号的主端口提供占有权限,根据第三寄存器定义数据为对应优先级编号的主端口提供占有权限寄存器;
c.重复步骤a,并将第二写入数据和第三寄存器定义数据通过写数据通道的优先级排序仲裁处理后传输给对应的从端口,以使对应从端口根据再次收到的第二写入数据和第三寄存器定义数据,解除对应优先级编号的主端口对从端口及占有权限寄存器的占有权限,在占有权限期间,该从端口只接收对应优先级编号的主端口的相应读和/或写数据。
第二方面,本发明提供基于FPGA的多主对多从访问仲裁系统,所述系统包括仲裁模块和若干接口转换模块,各接口转换模块的输入端用于连接主端口,输出端用于通过写地址通道、写数据通道、写响应通道、读地址通道、读数据通道和读响应通道与仲裁模块对接,所述仲裁模块的输出端用于对接从端口,所述接口转换模块包括第一状态寄存器、第二状态寄存器和第一数据寄存器,其中:
接口转换模块,用于获取各主端口的优先级编号和第一访问指令,所述第一访问指令包括第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据;根据设定的译码逻辑对各主端口的第一访问指令进行译码,获得各第一访问指令所对应的第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据;根据第一访问对象数据和第一操作类型数据将第一地址数据与对应的优先级编号关联后输入预置的写地址通道,将第一写入数据与对应的优先级编号关联后输入预置的写数据通道;
以及,获取各主端口的优先级编号和第三访问指令,所述第三访问指令包括第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据;根据设定的译码逻辑对各主端口的第三访问指令进行译码,获得各第三访问指令所对应的第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据;根据第一访问对象数据和第二操作类型数据将第三地址数据与对应的优先级编号关联后输入预置的读地址通道,将第一读取数据与对应的优先级编号关联后输入预置的读数据通道;
以及,将第一状态寄存器的地址数据反馈给对应的主端口;
以及,将对应第二状态寄存器和第一数据寄存器的地址数据反馈给对应的主端口;
仲裁模块,用于对写地址通道末端到达的各第一地址数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一地址数据,对写数据通道末端到达的各第一写入数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一写入数据;根据优先级最高的第一地址数据选定对应的从端口,将优先级最高的第一地址数据和第一写入数据传输给对应的从端口;
以及,对读地址通道末端到达的各第三地址数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第三地址数据,对读数据通道末端到达的各第一读取数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一读取数据;根据优先级最高的第三地址数据选定对应的从端口,将优先级最高的第三地址数据和第一读取数据传输给对应的从端口;
以及,获取对应从端口的写响应数据和端口编号;根据端口编号将写响应数据通过预置的写响应通道存入对应接口转换模块的第一状态寄存器;
以及,获取对应从端口的读响应数据和端口编号;根据端口编号将读响应数据通过预置的读响应通道存入对应接口转换模块的第二状态寄存器和第一数据寄存器。
第三方面,本发明提供一种存储介质,所述存储介质上存储有第一执行指令,当所述第一执行指令运行于接口转换模块时,使得所述接口转换模块执行上述第二方面中接口转换模块的功能。
第四方面,本发明提供一种存储介质,所述存储介质上存储有第二执行指令,当所述第二执行指令运行于仲裁模块时,使得所述仲裁模块执行上述第二方面中仲裁模块的功能。
第五方面,本发明提供一种包含第一执行指令的程序产品,当所述第一执行指令运行于接口转换模块时,使所述接口转换模块执行上述第二方面中接口转换模块的功能。
第六方面,本发明提供一种包含第二执行指令的程序产品,当所述第二执行指令运行于仲裁模块时,使得所述仲裁模块执行上述第二方面中仲裁模块的功能。
本发明的有益效果为:
本发明采用相应的交互协议规划,通过接口转换模块对各主端口的读写访问数据进行标准化解析,通过仲裁模块对译码后的读写访问数据进行优先级排序仲裁处理,通过拓展独立的写地址通道、写数据通道、写响应通道、读地址通道、读数据通道和读响应通道,进行多主端口与多从端口间读写访问数据及相应响应数据的有序、稳定传输,以提供一整套高效的交互设计方法,实现多主端口访问多从端口的仲裁逻辑优化,解决片上多个主端口与FPGA内部多个从功能模块之间多主多从通信过程中的数据冲突以及稳定性问题。本发明可使FPGA内部从功能模块与片上各主端口之间数据交互的扩展性、传输稳定性以及有效性得到进一步提高,可有效节约平台化工程项目的实现时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的系统结构示意图;
图2为本发明第一种方法的步骤示意图;
图3为本发明第二种方法的步骤示意图;
图4为本发明的系统应用实例示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,术语第一、第二等仅用于区分描述,而不能理解为指示或暗示相对重要性。尽管本文可以使用术语第一、第二等等来描述各种单元,这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。
在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出系统,以避免用不必要的细节来使得示例不清楚。在其他实施例中,可以不以非必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清楚。
实施例1:
本实施例提供基于FPGA的多主对多从访问仲裁方法,可应用于如图1所示的基于FPGA的多主对多从访问仲裁系统,所述系统包括仲裁模块和若干接口转换模块,各接口转换模块的输入端用于连接主端口,接口转换模块可根据主端口的通信接口协议灵活配置成适配接口,统一输出独立的写地址通道、写数据通道、写响应通道、读地址通道、读数据通道以及读响应通道共六组接口与仲裁模块对接,所述仲裁模块的输出端用于对接从端口,所述接口转换模块包括第一状态寄存器、第二状态寄存器和第一数据寄存器。可设置n和m的参数即可规划多主和多从的访问数量,其中n和m互相独立。各主端口和从端口使用ID号进行管理,其中主端口具有优先级编号,优先级越高,其ID号越小,仲裁处理优先级别更高,即0号主端口优先级是最高的主端口,主从端口数量可自由扩展。
如图2所示,基于FPGA的多主对多从访问仲裁方法包括以下步骤:
S101.获取各主端口的优先级编号和第一访问指令,所述第一访问指令包括第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据。
具体实施时,各主端口将自己的优先级编号和第一访问指令传输至对应的接口转换模块,所述第一访问指令包括第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据。其中,操作类型包括写操作和读操作,第一操作类型数据代表写操作,可用单独位的字节0表示;访问对象包括从端口和接口转换模块,第一访问对象数据代表访问从端口,可用单独位的字节1表示,第一地址数据代表对应访问的从端口地址,第一写入数据代表需要写入对应从端口的数据信息。
S102.根据设定的译码逻辑对各主端口的第一访问指令进行译码,获得各第一访问指令所对应的第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据。
具体实施时,接口转换模块根据设定的译码逻辑对各主端口的第一访问指令进行译码,得到相应的第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据。
S103.根据第一访问对象数据和第一操作类型数据将第一地址数据与对应的优先级编号关联后输入预置的写地址通道,将第一写入数据与对应的优先级编号关联后输入预置的写数据通道。
具体实施时,接口转换模块对主端口的优先级编号及对应的第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据进行解析,然后根据第一访问对象数据和第一操作类型数据将第一地址数据与对应的优先级编号关联后输入写地址通道,通过写地址通道传输至仲裁模块,将第一写入数据与对应的优先级编号关联后输入预置的写数据通道,通过写地址通道传输至仲裁模块。
S104.对写地址通道末端到达的各第一地址数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一地址数据,对写数据通道末端到达的各第一写入数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一写入数据。
具体实施时,仲裁模块对写地址通道末端到达的各第一地址数据和按照对应的优先级编号进行优先级排序仲裁,对写数据通道末端到达的各第一写入数据按照对应的优先级编号进行优先级排序仲裁。仲裁模块使用独热码编码方式在同一时间点只响应其中一条数据指令,完成以后再根据新的优先级列表判断下一步仲裁出的数据指令,具体包括:当同时到达时则根据优先级编号进行优先级顺序处理,没有处理的主端口的相应指令数据则缓存一次等待,优先级高的主端口指令数据处理完毕以后再响应缓存的主端口指令数据,如果这段时间内优先级高的主端口又有指令下发则依然会优先处理优先级高的主端口的指令数据,直到处理完毕,缓存的各主端口指令数据也会按照优先级进行分时处理,直到所有指令数据处理完毕。
S105.根据优先级最高的第一地址数据选定对应的从端口,将优先级最高的第一地址数据和第一写入数据传输给对应的从端口。
具体实施时,仲裁模块根据优先级最高的第一地址数据选定对应的从端口,然后将优先级最高的第一地址数据和第一写入数据传输给对应的从端口,从端口的响应状态即为主端口对应写操作指令下发后最终呈现的状态,写操作的响应反馈过程包括:从端口将相应的写响应数据和端口编号反馈至仲裁模块,仲裁模块根据端口编号将写响应数据通过写响应通道存入对应接口转换模块内的第一状态寄存器,由接口转换模块将对应第一状态寄存器的地址数据反馈给对应的主端口。
其中,接口转换模块将对应第一状态寄存器的地址数据反馈给对应主端口的过程包括:
接口转换模块获取对应主端口的第二访问指令,所述第二访问指令包括第二操作类型数据、第二访问对象数据、第一访问区间数据、第二地址数据和第一寄存器定义数据。操作类型包括写操作和读操作,第二操作类型数据代表读操作,可用单独位的字节1表示;访问对象包括从端口和接口转换模块,第二访问对象数据代表访问接口转换模块,可用单独位的字节0表示,第一访问区间数据表访问接口转换模块内对应的访问区间,第二地址数据代表访问区间内对应从端口编号的寄存器,第一寄存器定义数据代表接口转换模块内对应从端口编号的第一状态寄存器。
接口转换模块根据设定的译码逻辑对第二访问指令进行译码,获得第二操作类型数据、第二访问对象数据、第一访问区间数据、第二地址数据和第一寄存器定义数据。
接口转换模块根据第二访问对象数据、第二操作类型数据和第一访问区间数据判定对应的读取访问区间,然后根据第二地址数据和第一寄存器定义数据在对应的读取访问区间内找到对应的第一状态寄存器,并读取该第一状态寄存器的地址数据反馈给主端口。第一状态寄存器的地址数据为1表示写入成功,否则循环操作等待。
同时,如图3所示,基于FPGA的多主对多从访问仲裁方法还包括以下步骤:
S201.获取各主端口的优先级编号和第三访问指令,所述第三访问指令包括第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据。
具体实施时,各主端口将自己的优先级编号和第三访问指令传输至对应的接口转换模块,所述第三访问指令包括第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据。其中,第二操作类型数据代表读操作,可用单独位的字节1表示;第一访问对象数据代表访问从端口,可用单独位的字节1表示,第三地址数据代表对应访问的从端口地址,第一读取数据代表需要给到从端口的读取数据信息。
S202.根据设定的译码逻辑对各主端口的第三访问指令进行译码,获得各第三访问指令所对应的第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据。
具体实施时,接口转换模块根据设定的译码逻辑对各主端口的第三访问指令进行译码,得到相应的第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据。
S203.根据第一访问对象数据和第二操作类型数据将第三地址数据与对应的优先级编号关联后输入预置的读地址通道,将第一读取数据与对应的优先级编号关联后输入预置的读数据通道。
具体实施时,接口转换模块对主端口的优先级编号及对应的第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据进行解析,然后第一访问对象数据和第二操作类型数据将第三地址数据与对应的优先级编号关联后输入读地址通道,通过读地址通道传输至仲裁模块,将第一读取数据与对应的优先级编号关联后输入读数据通道,通过读数据通道传输至仲裁模块。
S204.对读地址通道末端到达的各第三地址数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第三地址数据,对读数据通道末端到达的各第一读取数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一读取数据。
具体实施时,仲裁模块对写地址通道末端到达的各第三地址数据和按照对应的优先级编号进行优先级排序仲裁,对写数据通道末端到达的各第一读取数据按照对应的优先级编号进行优先级排序仲裁,排序仲裁方式参考上述的仲裁方式。
S205.根据优先级最高的第三地址数据选定对应的从端口,将优先级最高的第三地址数据和第一读取数据传输给对应的从端口。
具体实施时,仲裁模块根据优先级最高的第三地址数据选定对应的从端口,然后将优先级最高的第三地址数据和第一读取数据传输给对应的从端口,从端口的响应状态即为主端口对应读操作指令下发后最终呈现的状态,读操作的响应反馈过程包括:从端口将相应的读响应数据和端口编号反馈至仲裁模块,仲裁模块根据端口编号将读响应数据通过读响应通道存入对应接口转换模块内的第二状态寄存器和第一数据寄存器,由接口转换模块将对应第二状态寄存器和第一数据寄存器的地址数据反馈给对应的主端口。
其中,接口转换模块将对应第二状态寄存器和第一数据寄存器的地址数据反馈给对应的主端口的过程包括:
接口转换模块获取主端口的第四访问指令,所述第四访问指令包括第二操作类型数据、第二访问对象数据、第二访问区间数据、第四地址数据和第二寄存器定义数据;第二操作类型数据代表读操作,可用单独位的字节1表示;访问对象包括从端口和接口转换模块,第二访问对象数据代表访问接口转换模块,可用单独位的字节0表示,第二访问区间数据代表访问接口转换模块内对应的访问区间,第四地址数据代表访问区间内对应从端口编号的寄存器,第二寄存器定义数据代表接口转换模块内对应从端口编号的第二状态寄存器和第一数据寄存器。
接口转换模块根据设定的译码逻辑对第四访问指令进行译码,获得第二操作类型数据、第二访问对象数据、第二访问区间数据、第四地址数据和第二寄存器定义数据;根据第二访问对象数据、第二操作类型数据和第二访问区间数据判定对应的读取访问区间;根据第四地址数据和第二寄存器定义数据在对应的读取访问区间内找到对应的第二状态寄存器和第一数据寄存器;
接口转换模块读取第二状态寄存器的地址数据,若为设定值,如1,则读取第一数据寄存器的地址数据反馈给主端口,第一数据寄存器的地址数据为读指令实际返回的有效读数据。
更进一步地,本实施例还提供主端口对从端口的权限占有方法,其中,所述第一访问指令还包括第二写入数据和第三寄存器定义数据,所述第二写入数据包括主端口的优先级编号,所述第三寄存器定义数据代表对应从端口内的占有权限寄存器,方法主要包括以下步骤:
接口转换模块根据设定的译码逻辑对第一访问指令进行译码,获得第二写入数据和第三寄存器定义数据;然后将第二写入数据和第三寄存器定义数据通过写数据通道传输至仲裁模块,由仲裁模块进行优先级排序仲裁处理后传输给对应的从端口,以使对应从端口根据第二写入数据为对应优先级编号的主端口提供占有权限,根据第三寄存器定义数据为对应优先级编号的主端口提供占有权限寄存器;
当需要解除从端口的占有权限时,重复上述步骤,以使对应从端口根据再次收到的第二写入数据和第三寄存器定义数据解除对应优先级编号的主端口对从端口及占有权限寄存器的占有权限,在占有权限期间,该从端口只接收对应优先级编号的主端口的相应读和/或写数据。
通过主端口对相应从端口的权限占有,可以在从端口的权限占有期间进行主端口的组合指令读写操作,因为组合指令是多条指令的组合,里面读写指令无限制直到所有指令操作完毕,但由于指令可能存在组合顺序要求,所以在组合指令下发之间不能由其他主端口发起指令进行更改,否则会导致组合指令执行失败,这也是占有权限的意义所在。
实施例2:
本实施例主端口以SPI接口为例,SPI接口每次传输32位数据,其中高16位为控制信息和地址信息、低16位为数据信息,高16位接口数据分配说明如下:
字节位15:主端口根据当前操作确定该位值,0为写操作,1为读操作。
字节位14:主端口决定当前访问对象确定该位值,0表示访问接口转换模块,1表示访问从端口。
当访问对象是接口转换模块时:字节位13-12:共2位地址将接口转换模块内编码成4个访问区间,各访问区间基地址为0x0000、0x1000、0x2000、0x3000,各区间功能定义由项目实际需求规划,例如将基地址0x0000区间规划为从端口返回状态和数据的寄存器区域。字节位11-7:接口转换模块内使用5位地址信息对从端口模块译码编号,共支持32个从端口。字节位6-0:各访问区间最多支持128个自定义寄存器可供访问;比如0地址定义为状态寄存器、1地址定义为数据寄存器,以此类推后续寄存器可根据需要定义。
当访问对象是从端口时:字节位13-9:共5位地址将从端口进行译码,最多支持32个从端口,当该部分地址为0则表示访问的是0号从端口,为1则访问1号从端口,以此类推,为31表示访问的是31号从端口。字节位8-0:各从端口内部寄存器定义,最多支持512个寄存器定义。
举例说明:当主端口通过SPI接口发起的接口数据为16’b1000_0000_1000_0001+低16位数据,则表示主端口发起的是读操作,读操作对象为接口转换模块,访问区间为接口转换模块内的0x0000区间,在接口转换模块内访问的信息为1号从端口对应的状态和数据寄存器,访问地址为1的数据寄存器。当主端口通过SPI接口发起的接口数据为16’b0100_0000_0000_0011+低16位数据,表示主端口发起操作为写操作,写操作对象为从端口,写地址为3,数据则是该命令下定义的低16位数据。
本实施例具体举例应用时,如图4所示,以3片DSP作为主端口,FPGA内部规划功能从端口为10个,3片DSP通过SPI接口访问FPGA内的10个功能从端口,FPGA各功能从端口进行命令响应和数据传输。
实施例3:
本实施例提供一种存储介质,所述存储介质上存储有第一执行指令,当所述第一执行指令运行于接口转换模块时,使得所述接口转换模块执行实施例1中接口转换模块的功能步骤。
本实施例提供另一种存储介质,所述存储介质上存储有第二执行指令,当所述第二执行指令运行于仲裁模块时,使得所述仲裁模块执行实施例1中仲裁模块的功能步骤。
实施例4:
本实施例提供一种包含第一执行指令的程序产品,当所述第一执行指令运行于接口转换模块时,使所述接口转换模块执行实施例1中接口转换模块的功能步骤。
本实施例提供一种包含第二执行指令的程序产品,当所述第二执行指令运行于仲裁模块时,使得所述仲裁模块执行实施例1中仲裁模块的功能步骤。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.基于FPGA的多主对多从访问仲裁方法,其特征在于,包括:
获取各主端口的优先级编号和第一访问指令,所述第一访问指令包括第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据;
根据设定的译码逻辑对各主端口的第一访问指令进行译码,获得各第一访问指令所对应的第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据;
根据第一访问对象数据和第一操作类型数据将第一地址数据与对应的优先级编号关联后输入预置的写地址通道,将第一写入数据与对应的优先级编号关联后输入预置的写数据通道;
对写地址通道末端到达的各第一地址数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一地址数据,对写数据通道末端到达的各第一写入数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一写入数据;
根据优先级最高的第一地址数据选定对应的从端口,将优先级最高的第一地址数据和第一写入数据传输给对应的从端口。
2.根据权利要求1所述的基于FPGA的多主对多从访问仲裁方法,其特征在于,在将优先级最高的第一地址数据和第一写入数据传输给对应的从端口后,所述方法还包括:
获取对应从端口的写响应数据和端口编号;
根据端口编号将写响应数据通过预置的写响应通道存入对应的第一状态寄存器,并将对应第一状态寄存器的地址数据反馈给对应的主端口。
3.根据权利要求2所述的基于FPGA的多主对多从访问仲裁方法,其特征在于,所述将对应第一状态寄存器的地址数据反馈给对应的主端口,包括:
获取主端口的第二访问指令,所述第二访问指令包括第二操作类型数据、第二访问对象数据、第一访问区间数据、第二地址数据和第一寄存器定义数据;
根据设定的译码逻辑对第二访问指令进行译码,获得第二操作类型数据、第二访问对象数据、第一访问区间数据、第二地址数据和第一寄存器定义数据;
根据第二访问对象数据、第二操作类型数据和第一访问区间数据判定对应的读取访问区间;
根据第二地址数据和第一寄存器定义数据在对应的读取访问区间内找到对应的第一状态寄存器,并读取该第一状态寄存器的地址数据反馈给主端口。
4.根据权利要求1所述的基于FPGA的多主对多从访问仲裁方法,其特征在于,所述方法还包括:
获取各主端口的优先级编号和第三访问指令,所述第三访问指令包括第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据;
根据设定的译码逻辑对各主端口的第三访问指令进行译码,获得各第三访问指令所对应的第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据;
根据第一访问对象数据和第二操作类型数据将第三地址数据与对应的优先级编号关联后输入预置的读地址通道,将第一读取数据与对应的优先级编号关联后输入预置的读数据通道;
对读地址通道末端到达的各第三地址数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第三地址数据,对读数据通道末端到达的各第一读取数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一读取数据;
根据优先级最高的第三地址数据选定对应的从端口,将优先级最高的第三地址数据和第一读取数据传输给对应的从端口。
5.根据权利要求4所述的基于FPGA的多主对多从访问仲裁方法,其特征在于,在将优先级最高的第三地址数据和第一读取数据传输给对应的从端口后,所述方法还包括:
获取对应从端口的读响应数据和端口编号;
根据端口编号将读响应数据通过预置的读响应通道存入对应的第二状态寄存器和第一数据寄存器,并将对应第二状态寄存器和第一数据寄存器的地址数据反馈给对应的主端口。
6.根据权利要求5所述的基于FPGA的多主对多从访问仲裁方法,其特征在于,所述将对应第二状态寄存器和第一数据寄存器的地址数据反馈给对应的主端口,包括:
获取主端口的第四访问指令,所述第四访问指令包括第二操作类型数据、第二访问对象数据、第二访问区间数据、第四地址数据和第二寄存器定义数据;
根据设定的译码逻辑对第四访问指令进行译码,获得第二操作类型数据、第二访问对象数据、第二访问区间数据、第四地址数据和第二寄存器定义数据;
根据第二访问对象数据、第二操作类型数据和第二访问区间数据判定对应的读取访问区间;
根据第四地址数据和第二寄存器定义数据在对应的读取访问区间内找到对应的第二状态寄存器和第一数据寄存器;
读取第二状态寄存器的地址数据,若为设定值,则读取第一数据寄存器的地址数据反馈给主端口。
7.根据权利要求1-6任意一项所述的基于FPGA的多主对多从访问仲裁方法,其特征在于,所述第一访问指令还包括第二写入数据和第三寄存器定义数据,所述第二写入数据包括主端口的优先级编号,所述方法还包括:
a.根据设定的译码逻辑对第一访问指令进行译码,获得第二写入数据和第三寄存器定义数据;
b.将第二写入数据和第三寄存器定义数据通过写数据通道的优先级排序仲裁处理后传输给对应的从端口,以使对应从端口根据第二写入数据为对应优先级编号的主端口提供占有权限,根据第三寄存器定义数据为对应优先级编号的主端口提供占有权限寄存器;
c.重复步骤a,并将第二写入数据和第三寄存器定义数据通过写数据通道的优先级排序仲裁处理后传输给对应的从端口,以使对应从端口根据再次收到的第二写入数据和第三寄存器定义数据,解除对应优先级编号的主端口对从端口及占有权限寄存器的占有权限,在占有权限期间,该从端口只接收对应优先级编号的主端口的相应读和/或写数据。
8.基于FPGA的多主对多从访问仲裁系统,其特征在于,所述系统包括仲裁模块和若干接口转换模块,各接口转换模块的输入端用于连接主端口,输出端用于通过写地址通道、写数据通道、写响应通道、读地址通道、读数据通道和读响应通道与仲裁模块对接,所述仲裁模块的输出端用于对接从端口,所述接口转换模块包括第一状态寄存器、第二状态寄存器和第一数据寄存器,其中:
接口转换模块,用于获取各主端口的优先级编号和第一访问指令,所述第一访问指令包括第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据;根据设定的译码逻辑对各主端口的第一访问指令进行译码,获得各第一访问指令所对应的第一操作类型数据、第一访问对象数据、第一地址数据和第一写入数据;根据第一访问对象数据和第一操作类型数据将第一地址数据与对应的优先级编号关联后输入预置的写地址通道,将第一写入数据与对应的优先级编号关联后输入预置的写数据通道;
以及,获取各主端口的优先级编号和第三访问指令,所述第三访问指令包括第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据;根据设定的译码逻辑对各主端口的第三访问指令进行译码,获得各第三访问指令所对应的第二操作类型数据、第一访问对象数据、第三地址数据和第一读取数据;根据第一访问对象数据和第二操作类型数据将第三地址数据与对应的优先级编号关联后输入预置的读地址通道,将第一读取数据与对应的优先级编号关联后输入预置的读数据通道;
以及,将第一状态寄存器的地址数据反馈给对应的主端口;
以及,将对应第二状态寄存器和第一数据寄存器的地址数据反馈给对应的主端口;
仲裁模块,用于对写地址通道末端到达的各第一地址数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一地址数据,对写数据通道末端到达的各第一写入数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一写入数据;根据优先级最高的第一地址数据选定对应的从端口,将优先级最高的第一地址数据和第一写入数据传输给对应的从端口;
以及,对读地址通道末端到达的各第三地址数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第三地址数据,对读数据通道末端到达的各第一读取数据按照对应的优先级编号进行优先级排序仲裁,得到优先级最高的第一读取数据;根据优先级最高的第三地址数据选定对应的从端口,将优先级最高的第三地址数据和第一读取数据传输给对应的从端口;
以及,获取对应从端口的写响应数据和端口编号;根据端口编号将写响应数据通过预置的写响应通道存入对应接口转换模块的第一状态寄存器;
以及,获取对应从端口的读响应数据和端口编号;根据端口编号将读响应数据通过预置的读响应通道存入对应接口转换模块的第二状态寄存器和第一数据寄存器。
9.一种存储介质,其特征在于,所述存储介质上存储有第一执行指令,当所述第一执行指令运行于接口转换模块时,使得所述接口转换模块执行权利要求8中接口转换模块的功能。
10.一种存储介质,其特征在于,所述存储介质上存储有第二执行指令,当所述第二执行指令运行于仲裁模块时,使得所述仲裁模块执行权利要求8中仲裁模块的功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210189251.3A CN114253884B (zh) | 2022-03-01 | 2022-03-01 | 基于fpga的多主对多从访问仲裁方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210189251.3A CN114253884B (zh) | 2022-03-01 | 2022-03-01 | 基于fpga的多主对多从访问仲裁方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114253884A CN114253884A (zh) | 2022-03-29 |
CN114253884B true CN114253884B (zh) | 2022-05-10 |
Family
ID=80800101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210189251.3A Active CN114253884B (zh) | 2022-03-01 | 2022-03-01 | 基于fpga的多主对多从访问仲裁方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114253884B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107923B (zh) * | 2022-12-27 | 2024-01-23 | 深存科技(无锡)有限公司 | 一种基于bram的多对多高速访存架构和访存系统 |
CN116680230B (zh) * | 2023-05-22 | 2024-04-09 | 无锡麟聚半导体科技有限公司 | 一种硬件加速电路及芯片 |
CN117520252B (zh) * | 2024-01-08 | 2024-04-16 | 芯瞳半导体技术(山东)有限公司 | 一种通信控制方法、系统级芯片、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2681235Y (zh) * | 2004-03-09 | 2005-02-23 | 北京中星微电子有限公司 | 一种二级总线设备 |
CN101430664A (zh) * | 2008-09-12 | 2009-05-13 | 中国科学院计算技术研究所 | 一种多处理器系统及Cache一致性消息传输方法 |
CN107911391A (zh) * | 2017-12-14 | 2018-04-13 | 天津光电通信技术有限公司 | 一种基于fpga的axi协议与spi协议转换的方法 |
CN110109847A (zh) * | 2019-04-25 | 2019-08-09 | 深圳吉迪思电子科技有限公司 | Apb总线多个主设备的仲裁方法、系统及存储介质 |
CN110765053A (zh) * | 2019-10-23 | 2020-02-07 | 山东华芯半导体有限公司 | 一种n-m axi总线控制器及其可配置仲裁机制实现方法 |
-
2022
- 2022-03-01 CN CN202210189251.3A patent/CN114253884B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2681235Y (zh) * | 2004-03-09 | 2005-02-23 | 北京中星微电子有限公司 | 一种二级总线设备 |
CN101430664A (zh) * | 2008-09-12 | 2009-05-13 | 中国科学院计算技术研究所 | 一种多处理器系统及Cache一致性消息传输方法 |
CN107911391A (zh) * | 2017-12-14 | 2018-04-13 | 天津光电通信技术有限公司 | 一种基于fpga的axi协议与spi协议转换的方法 |
CN110109847A (zh) * | 2019-04-25 | 2019-08-09 | 深圳吉迪思电子科技有限公司 | Apb总线多个主设备的仲裁方法、系统及存储介质 |
CN110765053A (zh) * | 2019-10-23 | 2020-02-07 | 山东华芯半导体有限公司 | 一种n-m axi总线控制器及其可配置仲裁机制实现方法 |
Non-Patent Citations (1)
Title |
---|
面向SoC应用的AXI总线设计;任文婷;《中国优秀硕士学位论文全文数据库(电子期刊)》;20150415;I137-76 * |
Also Published As
Publication number | Publication date |
---|---|
CN114253884A (zh) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114253884B (zh) | 基于fpga的多主对多从访问仲裁方法、系统及存储介质 | |
US7380045B2 (en) | Protocol conversion and arbitration circuit, system having the same, and method for converting and arbitrating signals | |
JP4799417B2 (ja) | ホストコントローラ | |
CN100483373C (zh) | Pvdm(分组语音数据模块)通用总线协议 | |
EP1021756B1 (en) | Direct memory access (dma) transactions on a low pin count bus | |
JPS6218949B2 (zh) | ||
JP2003076654A (ja) | Dspメモリ間データ転送方式 | |
CN108153686B (zh) | 多接口cpu模块 | |
US7970959B2 (en) | DMA transfer system using virtual channels | |
US9984014B2 (en) | Semiconductor device | |
US20080005387A1 (en) | Semiconductor device and data transfer method | |
CN115827524A (zh) | 一种数据传输方法以及装置 | |
US5375218A (en) | DMA channel control apparatus capable of assigning independent DMA transfer control line to respective expansion slots | |
JPS63116258A (ja) | デ−タ処理システム | |
CN114077562A (zh) | 一种1553b总线控制器协议处理ip核 | |
JP4874065B2 (ja) | バス中継装置及びシステム | |
WO2007081087A1 (en) | Microprocessor coupled to multi-port memory | |
JP2006251916A (ja) | Dma転送システム及びdma転送方法 | |
CN101739367A (zh) | 多类总线存储控制的方法与装置 | |
US6081861A (en) | PCI migration support of ISA adapters | |
US20050256993A1 (en) | Management of indexed registers in a system on a chip | |
JP2008198148A (ja) | プログラマブルコントローラ | |
CN114281726B (zh) | 用于soc芯片的系统架构及外设通信方法 | |
US20100153610A1 (en) | Bus arbiter and bus system | |
JP4765003B2 (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 |