CN115238642A - 一种基于FPGA的外设总线的crossbar设计系统和方法 - Google Patents
一种基于FPGA的外设总线的crossbar设计系统和方法 Download PDFInfo
- Publication number
- CN115238642A CN115238642A CN202211003184.8A CN202211003184A CN115238642A CN 115238642 A CN115238642 A CN 115238642A CN 202211003184 A CN202211003184 A CN 202211003184A CN 115238642 A CN115238642 A CN 115238642A
- Authority
- CN
- China
- Prior art keywords
- apb
- fpga
- bus
- interface
- priority
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/06—Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/02—System on chip [SoC] design
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Bus Control (AREA)
Abstract
本发明提供了一种基于FPGA的外设总线的crossbar设计系统和方法,方法包括:步骤S1、开始,APB slave接口收到上游设备传输,apb‑slave协议转为cmd格式,通过cmd‑vld判断是否同时触发相同下游设备传输,若是,执行步骤S2,若不是步骤S4;步骤S2、进行固定优先级仲裁,且判断buffer是否满,不满直接执行步骤S3;若满,则更换优先级为此高,且执行步骤S3;步骤S3、按照优先级选定的下游设备channel,完成cmd至apb‑master协议转换,执行步骤S5;步骤S4、按照触发先后顺序,执行channel选择,完成cmd至apb‑master协议转换,执行步骤S5;步骤S5、apb‑master接口发送传输至下游设备,结束。本发明有效避免了总线堵塞的情况,且较传统总线路由,仲裁时间更短,等待时间有效降低,总线使用率高。
Description
技术领域
本发明涉及芯片技术领域,尤其涉及具体涉及芯片内部进行数据传输过程中数据通讯接口的通用数据流控设计,具体涉及一种基于FPGA的外设总线的crossbar设计系统和方法。
背景技术
由于FPGA(Field-Programmable Gate Array,现场可编程门阵列)具有速度快、效率高、灵活稳定、集成度高等优点,所以在硬件逻辑验证与设计中是十分必要的。而Crossbar(即CrossPoint)被称为交叉开关矩阵或纵横式交换矩阵,多用于互联网应用,基于交换机芯片设计。
但是,目前在芯片内部进行数据传输过程中数据通讯接口的通用数据流控设计时,多为基于互联网或交换机的crossbar结构,缺少片内总线的crossbar;对于apb总线的外围设备,若存在多主多从相互访问的情况,并未有针对apb总线专有的crossbar。
发明内容
鉴于此,针对缺少片内总线以及未有针对apb总线专有的crossbar的问题,本发明从提高硬件的复用性方面着手,本发明的目的在于提出一种基于FPGA的外设总线的crossbar设计系统和方法,基于AMBA总线APB设计,设计有APB的主从接口逻辑,对内部逻辑采用缓存设计,设计有专用的地址转换配置模块、缓存接口,以应对使用本设计时,出现的可能堵塞工况。采用固定优先级的硬件逻辑,降低造成的传输速率损耗。Channel选择,采用可交替优先级设计,时序状况更优良。
基于上述目的,一方面,本发明提供了一种基于FPGA的外设总线的crossbar设计系统,其中该系统包括APB_SLAVE0接口、Interface2cmd_queue0、Buffer、Fixed-优先级模块、Cmd2apb_m0以及APB_master0接口:
所述APB_SLAVE0接口,用于对输入apb master总线信号进行处理,接收数据、地址、读写有效、使能信号,并转化slave端的信号时序,将其发送给Interface2cmd_queue0模块;
所述Interface2cmd_queue0用于将接收的slave时序的数据、地址、读写有效、使能信号,按照传输数据数量,打包成cmd格式;
所述Buffer用于缓存未获得channel优先权的master1数据,并在将满时,反馈给master0的queue0,使Buffer向上游设备0端,反馈busy;
所述Fixed-优先级模块用于默认配置为上游设备0接口获得优先权,上游设备同时访问下游设备0时,channel0将优先接通上游设备0接口,在未同时有效时,先占据cmd-packet的上游设备有效,先进行channel占用;
所述Cmd2apb_m0用于将cmd报文转为apb master总线信号,并将信号时序转为apb-master;
所述APB_master0接口用于按照apb-master总线时序,发送给下游设备。
作为本发明的进一步方案,所述APB_SLAVE0接口的接口协议符合AMBA APB总线协议,并按照apb slave总线协议,接收数据、地址、读写有效、使能信号。
作为本发明的进一步方案,所述Interface2cmd_queue0还用于按照读写有效、使能信号、地址、数据的顺序进行打包,打包为66bit,并行报文,写入到fifo中,每次使能信号有效,进行一次fifo有效写入。
作为本发明的进一步方案,所述Fixed-优先级模块在未同时有效时,两个上游设备,若占用不同channel,则不会出现仲裁。
作为本发明的进一步方案,所述基于FPGA的外设总线的crossbar设计系统基于AMBA总线APB设计,所述基于FPGA的外设总线的crossbar设计系统中还设有APB的主从接口逻辑,对内部逻辑采用缓存设计,设计有专用的地址转换配置模块、缓存接口。
作为本发明的进一步方案,所述基于FPGA的外设总线的crossbar设计系统采用固定优先级的硬件逻辑,Channel选择采用可交替优先级设计,采用APB-master/slave总线协议,设地址转换模块,缓存模块,状态机进行channel选择。
基于上述目的,第二方面,本发明提供了一种基于FPGA的外设总线的crossbar设计方法,应用于两个上游设备对两个下游设备进行读写访问时,其中该方法包括以下步骤:
步骤S1、开始,APB slave接口收到上游设备传输,apb-slave协议转为cmd格式,通过cmd-vld判断是否同时触发相同下游设备传输,若是,执行步骤S2,若不是步骤S4;
步骤S2、进行固定优先级仲裁,且判断buffer是否满,不满直接执行步骤S3;若满,则更换优先级为此高,且执行步骤S3;
步骤S3、按照优先级选定的下游设备channel,完成cmd至apb-master协议转换,执行步骤S5;
步骤S4、按照触发先后顺序,执行channel选择,完成cmd至apb-master协议转换,执行步骤S5;
步骤S5、apb-master接口发送传输至下游设备,结束。
本发明的再一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被执行时实现上述任一项根据本发明的基于FPGA的外设总线的crossbar设计方法。
本发明的又一方面,还提供了一种计算机设备,包括存储器和处理器,该存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述任一项根据本发明的基于FPGA的外设总线的crossbar设计方法。
本发明的另一方面,还提供了一种根据上述任一项根据本发明的基于FPGA的外设总线的crossbar设计方法进行读写的Avatar芯片,其中所述芯片的架构中具有CPU复位向量寄存器、CPU释放控制管脚、CPU释放控制寄存器、调试接口,其中
所述CPU复位向量寄存器用于控制CPU释放后读取并执行的指令的地址;
所述CPU释放控制寄存器用于控制芯片上电时的CPU释放;
所述CPU释放控制管脚用于控制所述CPU释放控制寄存器的有效性;
所述调试接口用于读写片上RAM和各寄存器以执行芯片的读写。
本发明至少具有以下有益技术效果:
本发明提出了一种基于FPGA的外设总线的crossbar设计系统和方法,基于AMBA总线APB设计,设计有APB的主从接口逻辑,对内部逻辑采用缓存设计,设计有专用的地址转换配置模块、缓存接口,以应对使用本设计时,出现的可能堵塞工况。采用固定优先级的硬件逻辑,降低造成的传输速率损耗。Channel选择,采用可交替优先级设计,时序状况更优良。本设计提出一种基于FPGA的外设总线的crossbar设计方法,采用APB-master/slave总线协议,设地址转换模块,缓存模块,状态机进行channel选择。本设计在论述了逻辑原理的基础上,提出了硬件实现原理,并用Verilog硬件描述语言实现数据流控制逻辑,验证了方案的可行性。
本发明设计采用FPGA逻辑实现APB总线主从硬件逻辑,固定仲裁逻辑,设计地址转换模块,实现2X2端口的主从转换;为防止出现堵塞情况,采用双端口缓存设计,获得通道使用权逻辑采用可交替机制设计。有效避免了总线堵塞的情况,且较传统总线路由,仲裁时间更短,等待时间有效降低,总线使用率高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
在图中:
图1示出了根据本发明的基于FPGA的外设总线的crossbar设计系统的实现原理图;
图2示出了根据本发明的基于FPGA的外设总线的crossbar设计系统应用场景图;
图3示出了根据本发明的基于FPGA的外设总线的crossbar设计方法的实现流程图;
图4示出了根据本发明的实现基于FPGA的外设总线的crossbar设计方法的计算机可读存储介质的实施例的示意图;
图5示出了根据本发明的实现基于FPGA的外设总线的crossbar设计方法的计算机设备的实施例的硬件结构示意图;
图6示出了根据本发明的芯片的实施例的框架的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
由于目前在芯片内部进行数据传输过程中数据通讯接口的通用数据流控设计时,多为基于互联网或交换机的crossbar结构,缺少片内总线的crossbar;对于apb总线的外围设备,若存在多主多从相互访问的情况,并未有针对apb总线专有的crossbar。
鉴于此,针对缺少片内总线以及未有针对apb总线专有的crossbar的问题,本发明从提高硬件的复用性方面着手,本发明的目的在于提出一种基于FPGA的外设总线的crossbar设计系统和方法,基于AMBA总线APB设计,设计有APB的主从接口逻辑,对内部逻辑采用缓存设计,设计有专用的地址转换配置模块、缓存接口,以应对使用本设计时,出现的可能堵塞工况。采用固定优先级的硬件逻辑,降低造成的传输速率损耗。Channel选择,采用可交替优先级设计,时序状况更优良。
本发明主要实现了一种基于FPGA的外设总线的corssbar设计方法,应用于Avatar芯片项目中。其中设计框架图参考图1,应用场景参考图2,工作流程图参考图3。
为此,参见图1和图2所示,本发明的第一方面,提供了一种基于FPGA的外设总线的crossbar设计系统,该系统包括APB_SLAVE0接口、Interface2cmd_queue0、Buffer、Fixed-优先级模块、Cmd2apb_m0以及APB_master0接口。
所述APB_SLAVE0接口,用于对输入apb master总线信号进行处理,接收数据、地址、读写有效、使能信号,并转化slave端的信号时序,将其发送给Interface2cmd_queue0模块。
在一些实施例中,所述APB_SLAVE0接口的接口协议符合AMBA APB总线协议,并按照apb slave总线协议,接收数据、地址、读写有效、使能信号。
所述Interface2cmd_queue0用于将接收的slave时序的数据、地址、读写有效、使能信号,按照传输数据数量,打包成cmd格式。
在一些实施例中,所述Interface2cmd_queue0还用于按照读写有效、使能信号、地址、数据的顺序进行打包,打包为66bit,并行报文,写入到fifo中,每次使能信号有效,进行一次fifo有效写入。
所述Buffer用于缓存未获得channel优先权的master1数据,并在将满时,反馈给master0的queue0,使Buffer向上游设备0端,反馈busy;
所述Fixed-优先级模块用于默认配置为上游设备0接口获得优先权,上游设备同时访问下游设备0时,channel0将优先接通上游设备0接口,在未同时有效时,先占据cmd-packet的上游设备有效,先进行channel占用。
在一些实施例中,所述Fixed-优先级模块在未同时有效时,两个上游设备,若占用不同channel,则不会出现仲裁。
所述Cmd2apb_m0用于将cmd报文转为apb master总线信号,并将信号时序转为apb-master;
所述APB_master0接口用于按照apb-master总线时序,发送给下游设备。
在一些实施例中,所述基于FPGA的外设总线的crossbar设计系统基于AMBA总线APB设计,所述基于FPGA的外设总线的crossbar设计系统中还设有APB的主从接口逻辑,对内部逻辑采用缓存设计,设计有专用的地址转换配置模块、缓存接口。
在一些实施例中,所述基于FPGA的外设总线的crossbar设计系统采用固定优先级的硬件逻辑,Channel选择采用可交替优先级设计,采用APB-master/slave总线协议,设地址转换模块,缓存模块,状态机进行channel选择。
本发明基于AMBA总线APB设计,设计有APB的主从接口逻辑,对内部逻辑采用缓存设计,设计有专用的地址转换配置模块、缓存接口,以应对使用本发明时,出现的可能堵塞工况。采用固定优先级的硬件逻辑,降低造成的传输速率损耗。Channel选择,采用可交替优先级设计,时序状况更优良。本发明提出一种基于FPGA的外设总线的crossbar设计系统,采用APB-master/slave总线协议,设地址转换模块,缓存模块,状态机进行channel选择。本发明在论述了逻辑原理的基础上,提出了硬件实现原理,并用Verilog硬件描述语言实现数据流控制逻辑,验证了方案的可行性。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本发明的第二方面,提供了一种基于FPGA的外设总线的crossbar设计方法,应用于两个上游设备对两个下游设备进行读写访问时,其中该方法包括以下步骤:
步骤S1、开始,APB slave接口收到上游设备传输,apb-slave协议转为cmd格式,通过cmd-vld判断是否同时触发相同下游设备传输,若是,执行步骤S2,若不是步骤S4;
步骤S2、进行固定优先级仲裁,且判断buffer是否满,不满直接执行步骤S3;若满,则更换优先级为此高,且执行步骤S3;
步骤S3、按照优先级选定的下游设备channel,完成cmd至apb-master协议转换,执行步骤S5;
步骤S4、按照触发先后顺序,执行channel选择,完成cmd至apb-master协议转换,执行步骤S5;
步骤S5、apb-master接口发送传输至下游设备,结束。
本发明提出了一种基于FPGA的外设总线的crossbar设计系统和方法,基于AMBA总线APB设计,设计有APB的主从接口逻辑,对内部逻辑采用缓存设计,设计有专用的地址转换配置模块、缓存接口,以应对使用本设计时,出现的可能堵塞工况。采用固定优先级的硬件逻辑,降低造成的传输速率损耗。Channel选择,采用可交替优先级设计,时序状况更优良。本设计提出一种基于FPGA的外设总线的crossbar设计方法,采用APB-master/slave总线协议,设地址转换模块,缓存模块,状态机进行channel选择。本设计在论述了逻辑原理的基础上,提出了硬件实现原理,并用Verilog硬件描述语言实现数据流控制逻辑,验证了方案的可行性。
应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
本发明实施例的第三个方面,还提供了一种计算机可读存储介质,图4示出了根据本发明实施例提供的基于FPGA的外设总线的crossbar设计方法的计算机可读存储介质的示意图。如图4所示,计算机可读存储介质300存储有计算机程序指令310,该计算机程序指令310可以被处理器执行。该计算机程序指令310被执行时实现上述任意一项实施例的基于FPGA的外设总线的crossbar设计方法,包括以下步骤:
步骤S1、开始,APB slave接口收到上游设备传输,apb-slave协议转为cmd格式,通过cmd-vld判断是否同时触发相同下游设备传输,若是,执行步骤S2,若不是步骤S4;
步骤S2、进行固定优先级仲裁,且判断buffer是否满,不满直接执行步骤S3;若满,则更换优先级为此高,且执行步骤S3;
步骤S3、按照优先级选定的下游设备channel,完成cmd至apb-master协议转换,执行步骤S5;
步骤S4、按照触发先后顺序,执行channel选择,完成cmd至apb-master协议转换,执行步骤S5;
步骤S5、apb-master接口发送传输至下游设备,结束。
应当理解,在相互不冲突的情况下,以上针对根据本发明的基于FPGA的外设总线的crossbar设计方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的基于FPGA的外设总线的crossbar设计系统和存储介质。
本发明实施例的第四个方面,还提供了一种计算机设备400,包括存储器420和处理器410,该存储器中存储有计算机程序,该计算机程序被该处理器执行时实现上述任意一项实施例的基于FPGA的外设总线的crossbar设计方法,包括以下步骤:
步骤S1、开始,APB slave接口收到上游设备传输,apb-slave协议转为cmd格式,通过cmd-vld判断是否同时触发相同下游设备传输,若是,执行步骤S2,若不是步骤S4;
步骤S2、进行固定优先级仲裁,且判断buffer是否满,不满直接执行步骤S3;若满,则更换优先级为此高,且执行步骤S3;
步骤S3、按照优先级选定的下游设备channel,完成cmd至apb-master协议转换,执行步骤S5;
步骤S4、按照触发先后顺序,执行channel选择,完成cmd至apb-master协议转换,执行步骤S5;
步骤S5、apb-master接口发送传输至下游设备,结束。
如图5所示,为本发明提供的执行基于FPGA的外设总线的crossbar设计方法的计算机设备的一个实施例的硬件结构示意图。以如图5所示的计算机设备400为例,在该计算机设备中包括一个处理器410以及一个存储器420,并还可以包括:输入装置430和输出装置440。处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图5中以通过总线连接为例。输入装置430可接收输入的数字或字符信息,以及产生与基于FPGA的外设总线的crossbar设计有关的信号输入。输出装置440可包括显示屏等显示设备。
存储器420作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的资源监控方法对应的程序指令/模块。存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储资源监控方法的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器410通过运行存储在存储器420中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的资源监控方法。
本发明实施例的第五个方面,还提供了一种根据上述任一项根据本发明的基于FPGA的外设总线的crossbar设计方法进行读写的Avatar芯片500。图6示出了根据本发明的芯片500的框架的示意图。如图6所示,在该实施例中,芯片500的架构中具有CPU复位向量寄存器510、CPU释放控制管脚520、CPU释放控制寄存器530、调试接口540,其中
所述CPU复位向量寄存器510用于控制CPU释放后读取并执行的指令的地址;
所述CPU释放控制寄存器520用于控制芯片500上电时的CPU释放;
所述CPU释放控制管脚530用于控制所述CPU释放控制寄存器520的有效性;
所述调试接口540用于读写片上RAM和各寄存器以执行芯片的读写。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。
本发明设计采用FPGA逻辑实现APB总线主从硬件逻辑,固定仲裁逻辑,设计地址转换模块,实现2X2端口的主从转换;为防止出现堵塞情况,采用双端口缓存设计,获得通道使用权逻辑采用可交替机制设计。有效避免了总线堵塞的情况,且较传统总线路由,仲裁时间更短,等待时间有效降低,总线使用率高。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的基于FPGA的外设总线的crossbar设计方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种基于FPGA的外设总线的crossbar设计系统,其特征在于,该系统包括APB_SLAVE0接口、Interface2cmd_queue0、Buffer、Fixed-优先级模块、Cmd2apb_m0以及APB_master0接口;
所述APB_SLAVE0接口,用于对输入apb master总线信号进行处理,接收数据、地址、读写有效、使能信号,并转化slave端的信号时序,将其发送给Interface2cmd_queue0模块;
所述Interface2cmd_queue0用于将接收的slave时序的数据、地址、读写有效、使能信号,按照传输数据数量,打包成cmd格式;
所述Buffer用于缓存未获得channel优先权的master1数据,并在将满时,反馈给master0的queue0,使Buffer向上游设备0端,反馈busy;
所述Fixed-优先级模块用于默认配置为上游设备0接口获得优先权,上游设备同时访问下游设备0时,channel0将优先接通上游设备0接口,在未同时有效时,先占据cmd-packet的上游设备有效,先进行channel占用;
所述Cmd2apb_m0用于将cmd报文转为apb master总线信号,并将信号时序转为apb-master;
所述APB_master0接口用于按照apb-master总线时序,发送给下游设备。
2.根据权利要求1所述的基于FPGA的外设总线的crossbar设计系统,其特征在于,所述APB_SLAVE0接口的接口协议符合AMBA APB总线协议,并按照apb slave总线协议,接收数据、地址、读写有效、使能信号。
3.根据权利要求2所述的基于FPGA的外设总线的crossbar设计系统,其特征在于,所述Interface2cmd_queue0还用于按照读写有效、使能信号、地址、数据的顺序进行打包,打包为66bit,并行报文,写入到fifo中,每次使能信号有效,进行一次fifo有效写入。
4.根据权利要求3所述的基于FPGA的外设总线的crossbar设计系统,其特征在于,所述Fixed-优先级模块在未同时有效时,两个上游设备,若占用不同channel,则不会出现仲裁。
5.根据权利要求4所述的基于FPGA的外设总线的crossbar设计系统,其特征在于,所述基于FPGA的外设总线的crossbar设计系统基于AMBA总线APB设计。
6.根据权利要求4所述的基于FPGA的外设总线的crossbar设计系统,其特征在于,所述基于FPGA的外设总线的crossbar设计系统中还设有APB的主从接口逻辑,对内部逻辑采用缓存设计,设计有专用的地址转换配置模块、缓存接口。
7.根据权利要求5所述的基于FPGA的外设总线的crossbar设计系统,其特征在于,所述基于FPGA的外设总线的crossbar设计系统采用固定优先级的硬件逻辑,Channel选择采用可交替优先级设计,采用APB-master/slave总线协议,设地址转换模块,缓存模块,状态机进行channel选择。
8.一种基于FPGA的外设总线的crossbar设计方法,其特征在于,基于如权利要求1-6任一所述的基于FPGA的外设总线的crossbar设计系统,应用于两个上游设备对两个下游设备进行读写访问时,该方法包括以下步骤:
步骤S1、开始,APB slave接口收到上游设备传输,apb-slave协议转为cmd格式,通过cmd-vld判断是否同时触发相同下游设备传输,若是,执行步骤S2,若不是步骤S4;
步骤S2、进行固定优先级仲裁,且判断buffer是否满,不满直接执行步骤S3;若满,则更换优先级为此高,且执行步骤S3;
步骤S3、按照优先级选定的下游设备channel,完成cmd至apb-master协议转换,执行步骤S5;
步骤S4、按照触发先后顺序,执行channel选择,完成cmd至apb-master协议转换,执行步骤S5;
步骤S5、apb-master接口发送传输至下游设备,结束。
9.一种计算机可读存储介质,其特征在于,存储有计算机程序指令,所述计算机程序指令被执行时实现如权利要求8所述的基于FPGA的外设总线的crossbar设计方法。
10.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时执行如权利要求8所述的基于FPGA的外设总线的crossbar设计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211003184.8A CN115238642A (zh) | 2022-08-19 | 2022-08-19 | 一种基于FPGA的外设总线的crossbar设计系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211003184.8A CN115238642A (zh) | 2022-08-19 | 2022-08-19 | 一种基于FPGA的外设总线的crossbar设计系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115238642A true CN115238642A (zh) | 2022-10-25 |
Family
ID=83680553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211003184.8A Pending CN115238642A (zh) | 2022-08-19 | 2022-08-19 | 一种基于FPGA的外设总线的crossbar设计系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115238642A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116974963A (zh) * | 2023-09-25 | 2023-10-31 | 上海云豹创芯智能科技有限公司 | 一种访问存储器的装置及其方法、芯片、存储介质 |
-
2022
- 2022-08-19 CN CN202211003184.8A patent/CN115238642A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116974963A (zh) * | 2023-09-25 | 2023-10-31 | 上海云豹创芯智能科技有限公司 | 一种访问存储器的装置及其方法、芯片、存储介质 |
CN116974963B (zh) * | 2023-09-25 | 2023-12-15 | 上海云豹创芯智能科技有限公司 | 一种访问存储器的装置及其方法、芯片、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6754881B2 (en) | Field programmable network processor and method for customizing a network processor | |
US6513077B2 (en) | I/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures | |
JP5429572B2 (ja) | チェーン化デバイスシステムにおいてパラメータを設定し待ち時間を決定する方法 | |
JP4571671B2 (ja) | 通信モジュールのメッセージメモリのデータへアクセスする方法および装置 | |
US20100287318A1 (en) | I/o and memory bus system for dfps and units with two- or multi-dimensional programmable cell architectures | |
KR102206529B1 (ko) | 제네릭 인터페이스를 제공하기 위한 방법 및 제네릭 인터페이스를 구비한 마이크로컨트롤러 | |
CN101449253B (zh) | 多处理器网关 | |
WO2015169038A1 (zh) | 集成电路总线系统及其数据操作和传输方法 | |
US7283557B2 (en) | Asynchronous crossbar with deterministic or arbitrated control | |
US20110153875A1 (en) | Opportunistic dma header insertion | |
CN104714907B (zh) | 一种pci总线转换为isa和apb总线设计方法 | |
US20200218215A1 (en) | Circuit for coupling a field bus and a local bus | |
CN106055504B (zh) | 控制数据传输的方法、装置及计算机设备 | |
CN115238642A (zh) | 一种基于FPGA的外设总线的crossbar设计系统和方法 | |
JP2009502072A (ja) | FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法 | |
US7206889B2 (en) | Systems and methods for enabling communications among devices in a multi-cache line size environment and disabling communications among devices of incompatible cache line sizes | |
CN103246623A (zh) | Soc计算设备扩展系统 | |
GB2377138A (en) | Ring Bus Structure For System On Chip Integrated Circuits | |
US20170300435A1 (en) | Direct memory access control device for at least one computing unit having a working memory | |
CN105045739B (zh) | 总线接口装置及其运行方法 | |
US9660936B2 (en) | Method and apparatus for supporting reprogramming or reconfiguring | |
JP6294732B2 (ja) | データ転送制御装置及びメモリ内蔵装置 | |
CN115982071A (zh) | 一种面向ddr3控制器的片上网络转换接口 | |
CN115525582A (zh) | 基于页的内联计算引擎的任务管理和数据调度方法及系统 | |
TW201916644A (zh) | 匯流排系統 |
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 |