CN114201276A - 一种基于fifo中断管理的方法 - Google Patents
一种基于fifo中断管理的方法 Download PDFInfo
- Publication number
- CN114201276A CN114201276A CN202111410430.7A CN202111410430A CN114201276A CN 114201276 A CN114201276 A CN 114201276A CN 202111410430 A CN202111410430 A CN 202111410430A CN 114201276 A CN114201276 A CN 114201276A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- fifo
- priority
- interrupt request
- request
- 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
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本申请提供一种基于FIFO中断管理的方法,所述方法包括如下步骤:获取若干FPGA内部或外部发送的中断请求,所述中断请求包括优先级信息和端口编号信息;确定与所述优先级信息对应的FIFO、以及与所述端口编号信息对应的同步化模块;每个所述中断请求配置有独立的所述同步化模块;同一优先级FIFO的各所述同步化模块采用相同的中断同步时钟;通过所述中断同步时钟同步化所述中断请求;将所述中断请求写入对应优先级的FIFO中;通过中断使能模块按优先级读出各FIFO中存储的中断请求对应的中断向量。本发明可实现FPGA内部或外部多个优先级、多中断管理功能,克服常见集成电路的中断丢失和中断覆盖的问题。
Description
技术领域
本申请涉及中断管理方法技术领域,尤其涉及一种基于FIFO中断管理的方法。
背景技术
中断技术是集成电路中常用的重要技术,主要提高集成电路实时响应要求。实际应用中中断端口数量常不止一个,中断请求可能来自集成电路内部或外部,中断响应优先级有不同要求,各中断之间、各中断与集成电路之间同步关系不明确,上述情况对集成电路内部的中断管理提出较高要求。
现有特定用途集成电路(ASIC)、高级精简指令集处理器(ARM)、数字信号处理器(DSP)内部均设计有专门中断管理器,处理中断端口数量一般小于32个,优先级一般小于3级,并且只能在此最大值范围内配置数量和优先级,无法进行扩展。ASIC、ARM、DSP对于同一中断端口,如果当前中断请求等待响应期间,再发生一个及以上中断请求,专门中断管理器仅响应一次,且无法保存发生的中断请求次数。中断丢失和中断覆盖对于高准确性***是无法接受。为此,本申请提出一种基于FIFO中断管理的方法。
发明内容
本申请的目的是针对以上问题,提供一种基于FIFO中断管理的方法。
本申请提供一种基于FIFO中断管理的方法,所述方法包括如下步骤:
获取若干FPGA内部或外部发送的中断请求,所述中断请求包括优先级信息和端口编号信息;
确定与所述优先级信息对应的FIFO、以及与所述端口编号信息对应的同步化模块;每个所述中断请求配置有独立的所述同步化模块;同一优先级FIFO的各所述同步化模块采用相同的中断同步时钟;
通过所述中断同步时钟同步化所述中断请求;
将所述中断请求写入对应优先级的FIFO中;
通过中断使能模块按优先级读出各FIFO中存储的中断请求对应的中断向量。
根据本申请某些实施例提供的技术方案,通过所述中断同步时钟同步化所述中断请求具体包括:
对所述中断请求进行两拍缓存;
对所述中断请求双边沿采集以确定所述中断请求的中断类型;所述中断类型包括高电平触发中断、低电平触发中断、上升沿触发中断和下降沿触发中断;
将所述中断请求转换为上升沿触发中断类型,所述中断请求高电平持续一个所述中断同步时钟宽度后变为低电平。
根据本申请某些实施例提供的技术方案,将所述中断请求写入对应优先级的FIFO中具体包括:
输出一个所述中断同步时钟脉冲宽度的高电平有效的中断请求信号至相应优先级FIFO的对应位;同一优先级FIFO的写入数据和读出数据位宽相同,均等于该优先级FIFO的中断端口数量。
根据本申请某些实施例提供的技术方案,每个FIFO具有一个标志信号位,所述标志信号位用于表征对应的FIFO中是否存储有有效的中断请求。
根据本申请某些实施例提供的技术方案,还包括:
判断当同一优先级FIFO中所有同步化模块输出的中断请求信号按位或的结果为1时,将对应FIFO的标志信号位置为高电平,否则,置为低电平。
根据本申请某些实施例提供的技术方案,通过中断使能模块按优先级读出各FIFO中存储的中断请求对应的中断向量具体包括:
读出当前标志信号位为高电平且优先级最高的FIFO数据;
将读出数据中各个数据位相加求和,得到当前优先级FIFO中此刻有效中断请求的个数;
按端口编号信息所表征的端口编号大小将各有效中断请求的中断向量输出至中断响应程序;所述端口编号越小,优先级越高;
当接收到中断响应程序发送的中断响应完成信号后,将该中断请求对应的数据位置为0。
根据本申请某些实施例提供的技术方案,当同一优先级FIFO中的所有有效中断请求均完成中断响应时,该FIFO的标志信号位置为低电平。
与现有技术相比,本申请的有益效果:本发明采用中断同步时钟同步化内部或外部中断请求,将同步后中断请求写入相应优先级FIFO中,不同优先级FIFO具有不同标志信号位,中断使能模块首先读出标志信号位为高电平的最高优先级FIFO数据,在中断响应完成信号为高时按序输出中断向量,CPU根据中断向量调取对应中断服务程序;本申请提出的基于FIFO中断管理的方法可实现FPGA内中断管理功能,克服常见集成电路的中断丢失和中断覆盖的问题。
附图说明
图1为本申请实施例提供的应用于FPGA的基于FIFO中断管理的***的示意图。
具体实施方式
为了使本领域技术人员更好地理解本申请的技术方案,下面结合附图对本申请进行详细描述,本部分的描述仅是示范性和解释性,不应对本申请的保护范围有任何的限制作用。
如图1所示,本实施例提供一种应用于FPGA的基于FIFO中断管理的***,该***包括中断使能模块、若干优先级互不相同的FIFO、以及若干同步化模块。
每个FIFO配置有若干同步化模块,对应于一个FIFO的所有的同步化模块采用相同的中断同步时钟,不同优先级FIFO的同步化模块可以采用相同或者不同的中断同步时钟。
每个FIFO配置的同步化模块的数量与该FIFO可接收的中断请求的数量相同,即每个中断请求配置有一个独立的同步化模块。
***中设置的优先级数量与优先级FIFO的个数一致,并且设置为优先级编号越小则优先级别越高,不允许出现相同优先级的优先级FIFO,当某个优先级中断端口不足时,可通过增加相应优先级FIFO数据位宽来解决。
各优先级FIFO采用写入、读出独立时钟,写入时钟为同步化模块的中断同步时钟,读出时钟为中断使能模块的***时钟。FIFO的写入、读出数据位宽相同,均等于该优先级FIFO中断端口的数量。
图1中,优先级1FIFO具有四个中断端口,意味着该优先级FIFO可以接收四个优先级1级别的中断请求,且这四个优先级1级别的中断请求对应有四个采用相同中断同步时钟的同步化模块,优先级1FIFO的写入数据和读出数据位宽均为四。优先级NFIFO具有六个中断端口,意味着该优先级FIFO可以接收六个优先级N级别的中断请求,且这六个优先级N级别的中断请求对应有六个采用相同中断同步时钟的同步化模块,优先级NFIFO的写入数据和读出数据位宽均为六。
每个优先级FIFO具有一个标志信号位,所述标志信号位用于表征对应的优先级FIFO中是否存储有有效的中断请求,当存储有有效的中断请求时,该标志信号位为高电平,否则为低电平。
中断使能模块用于按优先级由高到低依次读取各优先级FIFO中存储的有效中断请求对应的中断向量,并将其传输至CPU中断响应程序,当CPU完成中断响应时,会向中断使能模块发送相应的完成信号。
本实施例还提供一种基于FIFO中断管理的方法,该方法基于上述应用于FPGA的基于FIFO中断管理的***,所述方法包括如下步骤:
S1、获取若干FPGA内部或外部发送的中断请求,所述中断请求包括优先级信息和端口编号信息。
其中,所述优先级信息表示当前中断请求所属的FIFO的优先级,所述端口编号信息表示当前中断请求在所述优先级FIFO中的端口编号数,端口编号一般从1开始编号。
S2、确定与所述优先级信息对应的FIFO、以及与所述端口编号信息对应的同步化模块;每个所述中断请求配置有独立的所述同步化模块;同一优先级FIFO的各所述同步化模块采用相同的中断同步时钟。
S3、通过所述中断同步时钟同步化所述中断请求。
具体地,同步化模块采用中断同步时钟同步化每一个中断请求,该中断请求可以来自FPGA外部,也可以来自FPGA内部;同步化模块对中断请求同时进行两拍缓存和双边沿采集,其中两拍缓存的目的是确定并转换不同中断请求的类型,将不同中断请求类型统一转换为上升沿触发中断类型,其中,可接收的所述中断请求的中断类型可以为高电平触发中断、低电平触发中断、上升沿触发中断和下降沿触发中断。
S4、将所述中断请求写入对应优先级的FIFO中。
具体地,同步化模块同步化中断请求后,会输出一个所述中断同步时钟脉冲宽度的高电平有效的中断请求信号至相应优先级FIFO的对应位;同一优先级FIFO的写入数据和读出数据位宽相同,均等于该优先级FIFO的中断端口数量。
各优先级FIFO的写入使能为所有同步化模块输出中断请求信号按位或的结果,写入数据为所有同步化模块输出中断请求信号按位拼接的结果。
具体来说,判断当同一优先级FIFO中所有同步化模块输出的中断请求信号按位或的结果为1时,意味着该优先级FIFO中存储有至少一个有效中断请求,因此,将对应优先级FIFO的标志信号位置为高电平,相反,当同一优先级FIFO中所有同步化模块输出的中断请求信号按位或的结果为0时,意味着该优先级FIFO中无有效中断请求,则将对应优先级FIFO的标志信号位置为低电平。
假如某一优先级FIFO共具有四个中断端口,分别可接收该优先级的中断请求1、中断请求2、中断请求3和中断请求4,同一时刻同时接收到中断请求1和中断请求4,则当前优先级FIFO中写入的数据,即所有同步化模块输出中断请求信号按位拼接的结果为:1001。
S5、通过中断使能模块按优先级读出各FIFO中存储的中断请求对应的中断向量。具体包括:
读出当前标志信号位为高电平且优先级最高的FIFO数据;
将读出数据中各个数据位相加求和,得到当前优先级FIFO中此刻有效中断请求的个数;
按端口编号信息所表征的端口编号大小将各有效中断请求的中断向量输出至中断响应程序;所述端口编号越小,优先级越高;
当接收到中断响应程序发送的中断响应完成信号后,将该中断请求对应的数据位置为0。
具体来说,中断使能模块接收当前标志信号位为高电平的各不同优先级FIFO的数据,当上一个中断处理完毕时,首先从所有当前标志信号位为高电平的各不同优先级FIFO中读取最高优先级FIFO数据,在该最高优先级FIFO数据中,数据各个位相加求和的结果即为当前优先级FIFO中待处理的有效中断请求的个数;按照端口编号越小优先级别越高的原则,首先将端口编号小的中断请求的中断向量输出至中断响应程序,中断响应程序完成中断响应之后,会向中断使能模块返回一个完成信号,此时,该中断请求对应的数据位置为0,重复上述步骤,当最高优先级FIFO中的各有效中断请求全部完成中断响应后,该优先级FIFO的标志信号位置为低电平,完成本次中断处理。
当***中最高优先级FIFO完成中断处理后,继续按照类似的方式,读取标志信号位为高电平的最高优先级FIFO数据进行处理,具体步骤此处不再赘述。
接下来,举例进一步解释说明上述基于FIFO中断管理的方法:
假设某应用于FPGA的基于FIFO中断管理的***中具有两个优先级FIFO,记作第一优先级FIFO和第二优先级FIFO,第一优先级FIFO的编号为1,第二优先级FIFO的编号为2,第一优先级FIFO配置有四个中断端口,即对应四个同步化模块,第二优先级FIFO配置有六个中断端口,即对应六个同步化模块;第一优先级FIFO对应的四个同步化模块采用的中断同步时钟为200MHz(时钟周期5ns),第一优先级FIFO的写入时钟为200MHz,写入、读出数据位宽为4;第二优先级FIFO对应的六个同步化模块采用的中断同步时钟为100MHz(时钟周期10ns),第二优先级FIFO的写入时钟为100MHz,写入、读出数据位宽为6;中断使能模块的时钟为160MHz(时钟周期6.25ns);所述第一优先级FIFO和所述第二优先级FIFO的读出时钟分别为160MHz。
当第一优先级FIFO的中断请求1和中断请求4同时出现上升沿即发生中断请求时,相应的同步化模块利用200MHz时钟同步化第一优先级的中断请求1和中断请求4,并输出两个5ns宽度的高电平有效的中断请求信号至第一优先级FIFO的写入数据的第1位和第4位,同时第一优先级FIFO写入使能5ns宽度的高电平,第一优先级FIFO的标志信号位置为高电平。
在中断响应完成信号为高时,即上一个中断处理完毕时,中断使能模块读出第一优先级FIFO内存储的数据(4`b1001),并将该数据各个位相加求和,判断当前有效中断请求的个数为2,按照端口编号越小优先级别越高的原则,首先将第一优先级FIFO的中断请求1的中断向量输出至中断响应程序,中断响应完成信号变低,当该中断响应程序完成该中断响应时,中断响应完成信号会再变高,中断使能模块再输出第一优先级FIFO的中断请求4的中断向量。
其中,第一优先级FIFO的中断请求1发生至其中断向量输出共耗时:(2+1)*5+(1+1)*6.25=27.5ns;第一优先级FIFO的中断请求4发生至其中断向量输出共耗时:(2+1)*5+(1+1)*6.25+中断请求1中断响应时间,即中断请求1响应时间和中断请求1处理时间的总和。
由此看出,本申请提出的基于FIFO中断管理的方法可节约中断处理时间,确保***的可靠性和效率。
本申请实施例提供的基于FIFO中断管理的方法,利用FIFO实现FPGA内中断管理功能,克服了常见集成电路的中断丢失和中断覆盖的问题。该中断管理方法的中断端口数量、优先级数量可以灵活增加或减少,所有中断请求全部保存待中断响应处理。该方法可应用于红外搜索及跟踪高准确性***的中断管理。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。以上所述仅是本申请的优选实施方式,应当指出,由于文字表达的有限性,而客观上存在无限的具体结构,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进、润饰或变化,也可以将上述技术特征以适当的方式进行组合;这些改进润饰、变化或组合,或未经改进将发明的构思和技术方案直接应用于其他场合的,均应视为本申请的保护范围。
Claims (7)
1.一种基于FIFO中断管理的方法,其特征在于,所述方法包括如下步骤:
获取若干FPGA内部或外部发送的中断请求,所述中断请求包括优先级信息和端口编号信息;
确定与所述优先级信息对应的FIFO、以及与所述端口编号信息对应的同步化模块;每个所述中断请求配置有独立的所述同步化模块;同一优先级FIFO的各所述同步化模块采用相同的中断同步时钟;
通过所述中断同步时钟同步化所述中断请求;
将所述中断请求写入对应优先级的FIFO中;
通过中断使能模块按优先级读出各FIFO中存储的中断请求对应的中断向量。
2.根据权利要求1所述的基于FIFO中断管理的方法,其特征在于,通过所述中断同步时钟同步化所述中断请求具体包括:
对所述中断请求进行两拍缓存;
对所述中断请求双边沿采集以确定所述中断请求的中断类型;所述中断类型包括高电平触发中断、低电平触发中断、上升沿触发中断和下降沿触发中断;
将所述中断请求转换为上升沿触发中断类型,所述中断请求高电平持续一个所述中断同步时钟宽度后变为低电平。
3.根据权利要求1所述的基于FIFO中断管理的方法,其特征在于,将所述中断请求写入对应优先级的FIFO中具体包括:
输出一个所述中断同步时钟脉冲宽度的高电平有效的中断请求信号至相应优先级FIFO的对应位;同一优先级FIFO的写入数据和读出数据位宽相同,均等于该优先级FIFO的中断端口数量。
4.根据权利要求3所述的基于FIFO中断管理的方法,其特征在于,每个FIFO具有一个标志信号位,所述标志信号位用于表征对应的FIFO中是否存储有有效的中断请求。
5.根据权利要求4所述的基于FIFO中断管理的方法,其特征在于,还包括:
判断当同一优先级FIFO中所有同步化模块输出的中断请求信号按位或的结果为1时,将对应FIFO的标志信号位置为高电平,否则,置为低电平。
6.根据权利要求5所述的基于FIFO中断管理的方法,其特征在于,通过中断使能模块按优先级读出各FIFO中存储的中断请求对应的中断向量具体包括:
读出当前标志信号位为高电平且优先级最高的FIFO数据;
将读出数据中各个数据位相加求和,得到当前优先级FIFO中此刻有效中断请求的个数;
按端口编号信息所表征的端口编号大小将各有效中断请求的中断向量输出至中断响应程序;所述端口编号越小,优先级越高;
当接收到中断响应程序发送的中断响应完成信号后,将该中断请求对应的数据位置为0。
7.根据权利要求6所述的基于FIFO中断管理的方法,其特征在于,当同一优先级FIFO中的所有有效中断请求均完成中断响应时,该FIFO的标志信号位置为低电平。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111410430.7A CN114201276A (zh) | 2021-11-25 | 2021-11-25 | 一种基于fifo中断管理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111410430.7A CN114201276A (zh) | 2021-11-25 | 2021-11-25 | 一种基于fifo中断管理的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114201276A true CN114201276A (zh) | 2022-03-18 |
Family
ID=80648910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111410430.7A Pending CN114201276A (zh) | 2021-11-25 | 2021-11-25 | 一种基于fifo中断管理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114201276A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472637A (zh) * | 2023-12-27 | 2024-01-30 | 苏州元脑智能科技有限公司 | 一种中断管理方法、***、设备及介质 |
CN117667466A (zh) * | 2024-02-01 | 2024-03-08 | 井芯微电子技术(天津)有限公司 | 一种中断处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-11-25 CN CN202111410430.7A patent/CN114201276A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472637A (zh) * | 2023-12-27 | 2024-01-30 | 苏州元脑智能科技有限公司 | 一种中断管理方法、***、设备及介质 |
CN117472637B (zh) * | 2023-12-27 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种中断管理方法、***、设备及介质 |
CN117667466A (zh) * | 2024-02-01 | 2024-03-08 | 井芯微电子技术(天津)有限公司 | 一种中断处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114201276A (zh) | 一种基于fifo中断管理的方法 | |
JP3856696B2 (ja) | 2倍データ速度同期式動的ランダムアクセスメモリのための構成可能同期装置 | |
US7310396B1 (en) | Asynchronous FIFO buffer for synchronizing data transfers between clock domains | |
US7702055B2 (en) | Apparatus and method for tracing processor state from multiple clock domains | |
US6813732B2 (en) | Trace circuit | |
US20030007394A1 (en) | System for data transfer between different clock domains, and for obtaining status of memory device during transfer | |
CN111832240B (zh) | Fifo数据传输方法及fifo存储装置 | |
US20090323728A1 (en) | Asynchronous data fifo that provides uninterrupted data flow | |
US5539739A (en) | Asynchronous interface between parallel processor nodes | |
CN115730560A (zh) | 基于SOC芯片信号生成verilog代码的方法及装置 | |
CN108959656B (zh) | 一种多fpga多通道采集***的三维映射同步方法 | |
US7549074B2 (en) | Content deskewing for multichannel synchronization | |
Xie et al. | Analysis and comparison of asynchronous fifo and synchronous fifo | |
CN113491082B (zh) | 一种数据处理装置 | |
US5911062A (en) | Data acquisition method and protocol controller circuit | |
CN115221082B (zh) | 一种数据缓存方法、装置及存储介质 | |
CN1859047B (zh) | 帧同步处理装置及方法 | |
US6952791B2 (en) | Method and circuit for initializing a de-skewing buffer in a clock forwarded system | |
CN101887286A (zh) | 时间格式的转换方法及装置 | |
CN116318601A (zh) | 用于高速信令互连的帧对齐恢复 | |
US20080247496A1 (en) | Early HSS Rx Data Sampling | |
CN112148655B (zh) | 多位数据跨时钟域的处理方法及装置 | |
CN111741235B (zh) | 基于fpga的多路视频切换方法 | |
CN116126766A (zh) | 异步通信数据采样方法、装置、设备及介质 | |
CN110705195A (zh) | 一种基于fpga的跨时钟域深度自行配置fifo*** |
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 |