CN103345377A - Fifo存储器控制方法及装置 - Google Patents
Fifo存储器控制方法及装置 Download PDFInfo
- Publication number
- CN103345377A CN103345377A CN2013103093272A CN201310309327A CN103345377A CN 103345377 A CN103345377 A CN 103345377A CN 2013103093272 A CN2013103093272 A CN 2013103093272A CN 201310309327 A CN201310309327 A CN 201310309327A CN 103345377 A CN103345377 A CN 103345377A
- Authority
- CN
- China
- Prior art keywords
- data
- storage unit
- write
- fifo
- fifo storer
- 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
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明提供的一种FIFO存储器控制方法及装置,所述方法包括:当写使能和写入数据有效时,判断所述FIFO存储器的存储状态;若所述FIFO存储器内没有数据,则将写入数据写入存储单元R1,以及FIFO存储器出口,以可直接读取FIFO存储器出口的写入数据;其中,所述存储单元R1靠近输出端设置。与现有技术相比,本发明的FIFO存储器控制方法及装置,通过在FIFO存储器内部设置数据选择模块,选择数据写入、读出位置,在同一个时间周期内将FIFO存储器输入端的变化直接反应到FIFO存储器输出端,同时,每次写入数据时,都将写入数据写入存储单元memory,利于后续调取原始数据进行分析;本发明的FIFO存储器控制方法及装置,克服了传统FIFO存储器中存在延时的问题,提高了FIFO存储器的适用范围。
Description
技术领域
本发明涉及集成电路设计领域,尤其涉及一种FIFO存储器控制方法及装置。
背景技术
根据FIFO存储器的特性是严格按照先入先出的顺序进行读取数据,IC设计中经常会用到FIFO存储器;而且FIFO存储器的接口简单明析,使用方便,对于其他有数据缓存要求的设计也可以用FIFO来设计。
如图1所示,传统模式下的FIFO存储器结构示意图,所述FIFO存储器包括:读/写操作控制逻辑,存储单元memory/R1/R2,状态标志位生成逻辑。当写使能有效时,写操作控制逻辑将数据写入存储单元memory,并更新状态标志位;通过状态标志位的变化,经FIFO状态变化延时后,应用逻辑根据当前FIFO状态以及实际需要触发读使能,此时,读操作控制逻辑将数据从存储单元memory中读出,经过存储单元memory的内部处理延时后,数据被送到存储单元R1,再经过一个延时,存储单元R1中的数据被读出。传统模式下的FIFO存储器,从写入数据到读出数据需要经过FIFO状态变化延时、存储单元memory内部延时和经存储单元R1寄存延时。
如图2所示,传统模式下的FIFO存储器数据传递时序图,写使能WriteEnable和写入数据WriteData有效,写操作控制逻辑将数据写入存储单元memory,在下一个时延Latency到来时,更新FIFO数据空标志Empty(根据当前FIFO的状态,还可能需要更新其他的FIFO状态标志位,如满标志Full、将满标志AlmostFull、将空标志AlmostEmpty等),同一时间触发读使能ReadEnable,读操作控制逻辑MemEn有效,在第二个时延Latency到来时,存储单元memory中的数据MemData写入到存储单元R1中,在第三个时延Latency到来时,将存储于存储单元R1中的数据ReadData读出。
相应的,传统模式下FIFO存储器中的数据仅存储在存储单元memory中,FIFO读接口不能看到当前数据,若需要根据FIFO内部存储数据的内容判断是否需要读出数据时,传统模式下FIFO存储器不能适应设计要求;另外,由于传统FIFO存储器在传递过程中内部延时的存在,对于某些对延时要求较高的设计,传统模式下FIFO存储器较大的延时会导致设计整体性能的下降,随着社会的发展,传统的FIFO设计已经不能满足于设计人员的需求。
发明内容
为解决上述技术问题,本发明的目的在于提供一种FIFO存储器控制方法及装置,该方法、装置可以在同一时间周期内完成对FIFO存储器内的数据进行读、写操作。
相应地,本发明一实施方式的FIFO存储器控制方法,所述方法包括:当写使能和写入数据有效时,判断所述FIFO存储器的存储状态;
若所述FIFO存储器内没有数据,则将写入数据写入存储单元R1,以及FIFO存储器出口,以可直接读取FIFO存储器出口的写入数据;其中,所述存储单元R1靠近输出端设置。
作为本发明的进一步改进,若所述FIFO存储器内已存储有1个数据,则将写入数据写入存储单元R3;
若所述FIFO存储器内已存储有至少2个数据,则将写入数据写入存储单元memory;
所述存储单元memory靠近输入端设置,所述存储单元R3设置于所述存储单元memory和所述存储单元R1之间。
作为本发明的进一步改进,在将写入数据写入存储单元R1或R3的同时,将写入数据按序写入存储单元memory。
作为本发明的进一步改进,当写使能有效时,将所述状态标志位的标识数据写入存储单元R2,以及FIFO存储器出口,以可直接读取状态标志位的变化。
作为本发明的进一步改进,当读使能有效时,将所述存储单元R1中的数据读出;
将存储单元R3的数据移至存储单元R1;
将最先写入存储单元memory且未写入过存储单元R1或R3的数据移至存储单元R3;
其中,所述存储单元memory靠近输入端设置,所述存储单元R3设置于所述存储单元memory和所述存储单元R1之间。
相应的,本发明的一种FIFO存储器控制装置,所述装置包括:
判断模块,用于当写使能和写入数据有效时,判断FIFO存储器内部存储状态;
写入模块,用于若所述FIFO存储器内没有数据,将写入数据写入存储单元R1,以及FIFO存储器出口,以可直接读取FIFO存储器出口的写入数据;其中,所述存储单元R1靠近输出端设置。
作为本发明的进一步改进,所述写入模块还用于,若所述FIFO存储器内已存储有1个数据,则将写入数据写入存储单元R3;
若所述FIFO存储器内已存储有至少2个数据,则将写入数据写入存储单元memory;
所述存储单元memory靠近输入端设置,所述存储单元R3设置于所述存储单元memory和所述存储单元R1之间。
作为本发明的进一步改进,所述写入模块还用于,在将写入数据写入存储单元R1或R3的同时,将写入数据按序写入存储单元memory。
作为本发明的进一步改进,所述写入模块还用于,当写使能有效时,将所述状态标志位的标识数据写入存储单元R2,以及FIFO存储器出口,以可直接读取状态标志位的变化。
作为本发明的进一步改进,所述装置还包括:读出模块,用于当读使能有效时,将所述存储单元R1中的数据读出;
所述读出模块还用于,将存储单元R3的数据移至存储单元R1,将最先写入存储单元memory且未写入过存储单元R1或R3的数据移至存储单元R3;
其中,所述存储单元memory靠近输入端设置,所述存储单元R3设置于所述存储单元memory和所述存储单元R1之间。
与现有技术相比,本发明的FIFO存储器控制方法及装置,通过在FIFO存储器内部设置数据选择模块,选择数据写入、读出位置,在同一个时间周期内将FIFO存储器输入端的变化直接反应到FIFO存储器输出端,同时,每次写入数据时,都将写入数据写入存储单元memory,利于后续调取原始数据进行分析;本发明的FIFO存储器控制方法及装置,克服了传统FIFO存储器中存在延时的问题,提高了FIFO存储器的适用范围。
附图说明
图1是背景技术中传统模式下FIFO存储器结构示意图;
图2是背景技术中传统模式下FIFO存储器数据传递时序图;
图3是本发明一实施方式FIFO存储器的结构示意图;
图4是本发明一实施方式FIFO存储器数据传递时序图;
图5是本发明第一实施方式中FIFO存储器控制方法的流程图;
图6是本发明第二实施方式中FIFO存储器控制方法的流程图;
图7是本发明实施方式中FIFO存储器控制装置的模块图。
具体实施方式
以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
如图3所示,写操作控制逻辑,用于在写使能和写数据有效时,将写入数据写到存储单元memory;读操作控制逻辑,用于在读使能有效时,将存储单元memory中的数据读出;数据选择单元MUX1,靠近FIFO输出端设置,其输出端与存储单元R3电连接,用于将数据选择性写入存储单元R3;数据选择单元MUX3,靠近FIFO输出端设置,其一个输入端与存储单元R1电连接,用于将数据直接选择性写入FIFO出口或是将存储单元R1中的数据写到FIFO出口;数据选择单元MUX2,电连接于存储单元R2和存储单元R1,用于将数据选择性写入存储单元R1;读操作数据选择逻辑,当写使能有效时,根据FIFO存储器的状态,选择性读取数据,并将未读取数据移至相应位置;FIFO状态标志位生成逻辑,用于在写使能和/或读使能有效时,生成标识数据,并将所述标识数据写入存储单元R2,以及FIFO存储器出口;调试控制逻辑,用于在在IC调试过程中,按需调取存储单元memory中的记忆数据用于分析。
如图4所示,图4是本发明中FIFO存储器数据传递时序图。
写使能WriteEnable和写入数据WriteData有效,写操作控制逻辑将数据写入存储单元memory,在同一时间周期内,更新FIFO数据空标志Empty,需要说明的是,根据当前FIFO的状态,还可能需要更新其他的FIFO状态标志位,如满标志Full、将满标志AlmostFull、将空标志AlmostEmpty等。根据需要在同一时间周期内触发读使能ReadEnable,读操作控制逻辑MemEn有效,存储单元memory中的数据MemData写入到FIFO出口,根据需要将FIFO存储器出口的数据ReadData读出。可以理解的是,数据在FIFO存储器的传递过程中,是在同一个时间周期内完成的,即传递过程中没有时延发生,适用于对延时要求较高的设计。
如图5所示,在本发明的第一实施方式中,所述FIFO存储器控制方法,包括:
S1、当写使能和写入数据有效时,判断所述FIFO存储器的存储状态。
具体的,在FIFO标志生成逻辑单元中设置有数量计数器,在写使能和写数据有效时,数据写入到FIFO存储器,同时对所述数量计数器发起计数增加请求;当读使能有效时,数据从FIFO存储器中读出,同时对所述数量计数器发起计数减少请求;每次对所述数量计数器数值的增加或减少,都将被记录,并将记录结果通过FIFO状态标识位生成逻辑生成标识数据。
相应的,所述标识数据包括,所述数量计数器的当前数值,FIFO存储器的状态,例如处于空、满、将空、将满等状态。所述FIFO存储器的状态为空时,表示当前FIFO存储器只能进行写入动作,不能进行读出动作,若进行读出动作会产生向下溢出,无效的数据将被读出;所述FIFO存储器的状态为满时,表示当前FIFO存储器只能进行读出动作,不能进行写入动作,若进行写入动作会产生向上溢出,新数据的写入会导致先前的数据被覆盖;所述FIFO存储器的状态为其他标识数据时,表示当前FIFO存储器可以进行写入动作,也可以进行读出动作。
相应的,当写使能和/或读使能有效时,通过FIFO状态标识位生成逻辑生成标识数据,所述标识数据被同时写入存储单元R2,以及通过数据选择单元MUX4写到FIFO存储器出口;若FIFO存储器需要读取所述标识数据,则直接读取FIFO出口的所述标识数据;若FIFO存储器不需要读取所述标识数据,则FIFO存储器出口的所述标识数据被清除。
S2、当写使能和写入数据有效时,若所述FIFO存储器内没有数据,则将写入数据写入存储单元R1,以及FIFO存储器出口,以可直接读取FIFO存储器出口的写入数据;其中,所述存储单元R1靠近输出端设置。
具体的,当写使能和写入数据有效时,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值为0,则表示FIFO存储器处于空的状态,可以触发写使能,或是同时触发写使能和读使能。
相应的,将写入数据通过写操作控制逻辑写入存储单元memory,同时,将写入数据通过数据选择单元MUX2写入存储单元R1,和通过数据选择单元MUX3将数据写入FIFO存储器出口。
相应的,当同一时间触发读使能时,可以在同一时间周期内,直接读取写入到FIFO存储器出口数据。
若仅触发写使能,则被写到FIFO存储器出口的写入数据自动消失。
在本发明的第一实施方式中,所述FIFO存储器控制方法,其步骤S2还包括:当写使能和写入数据有效时,若所述FIFO存储器内已存储有1个数据,则将写入数据写入存储单元R3。
具体的,当写使能和写入数据有效时,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值为1,则将写入数据通过写操作控制逻辑写入存储单元memory,同时,将写入数据通过数据选择单元MUX2写入存储单元R3。
相应的,当同一时间触发读使能时,通过读操作数据选择逻辑按照先入先出的规则读取存储单元R1中数据,故将写入数据通过数据选择单元MUX2直接写入存储单元R1。
在本发明的第一实施方式中,所述FIFO存储器控制方法,其步骤S2还包括:当写使能和写入数据有效时,若所述FIFO存储器内已存储有至少2个数据,则将写入数据写入存储单元memory;
具体的,当写使能和写入数据有效时,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值为2,则将写入数据通过写操作控制逻辑写入存储单元memory。
相应的,当同一时间触发读使能时,通过读操作数据选择逻辑按照先入先出的规则读取存储单元R1中数据,将存储单元R3中数据移至存储单元R1,将写入数据通过数据选择单元MUX1直接写入存储单元R3。
具体的,当写使能和写入数据有效时,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值大于2时,则将写入数据通过写操作控制逻辑写入存储单元memory。
相应的,当同一时间触发读使能时,通过读操作数据选择逻辑按照先入先出的规则读取存储单元R1中数据,将存储单元R3中数据移至存储单元R1,将存储单元memory中数据通过读操作控制逻辑生成相应数据移至存储单元R3;将写入数据通过写操作控制逻辑直接写入存储单元memory。
所述相应数据为存储于存储单元memory中最前端的数据,且在当前状态下,区别于存储单元R1中已被读出的数据,以及存储单元R1中正在寄存的数据。
需要说明的是,在写使能和写入数据有效时,都会将写入数据顺序写入存储单元memory,根据存储单元memory的物理特性,其始终按照先入先出的原则保留最近操作过的数据,故在IC调试过程中,可以按需通过调试控制单元调取存储单元memory中的记忆数据用于分析,可以理解的是,调取存储单元memory中记忆数据的个数,由FIFO的存储深度决定。
如图6所示,在本发明的第二实施方式中,所述FIFO存储器控制方法,包括:
S1、当写使能和写入数据有效时,判断存储单元R1中是否存储有数据;
具体的,在FIFO标志生成逻辑单元中设置有数量计数器,在写使能和写数据有效时,数据写入到FIFO存储器,同时对所述数量计数器发起计数增加请求;当读使能有效时,数据从FIFO存储器中读出,同时对所述数量计数器发起计数减少请求;每次对所述数量计数器数值的增加或减少,都将被记录,并将记录结果通过FIFO状态标识位生成逻辑生成标识数据。
相应的,所述标识数据包括,所述数量计数器的当前数值,FIFO存储器的状态,例如处于空、满、将空、将满等状态。所述FIFO存储器的状态为空时,表示当前FIFO存储器只能进行写入动作,不能进行读出动作,若进行读出动作会产生向下溢出,无效的数据将被读出;所述FIFO存储器的状态为满时,表示当前FIFO存储器只能进行读出动作,不能进行写入动作,若进行写入动作会产生向上溢出,新数据的写入会导致先前的数据被覆盖;所述FIFO存储器的状态为其他标识数据时,表示当前FIFO存储器可以进行写入动作,也可以进行读出动作。
相应的,当写使能和/或读使能有效时,通过FIFO状态标识位生成逻辑生成标识数据,所述标识数据被同时写入存储单元R2,以及通过数据选择单元MUX4写到FIFO存储器出口;若FIFO存储器需要读取所述标识数据,则直接读取FIFO出口的所述标识数据;若FIFO存储器不需要读取所述标识数据,则FIFO存储器出口的所述标识数据被清除。
当写使能和写入数据有效时,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值为0,则表示存储单元R1中未存储有数据,可以触发写使能,或是同时触发写使能和读使能。
相应的,将写入数据通过写操作控制逻辑写入存储单元memory,同时,将写入数据通过数据选择单元MUX2写入存储单元R1,和通过数据选择单元MUX3将数据写入FIFO存储器出口。
相应的,当同一时间触发读使能时,可以在同一时间周期内,直接读取写入到FIFO存储器出口数据。
若仅触发写使能,则被写到FIFO存储器出口的写入数据自动消失。
S2、若存储单元R1内已存储有数据,则判断存储单元R3中是否存储有数据;
若否,则将写入数据写入存储单元R3;
若是,则将写入数据写入存储单元memory。
具体的,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值为1,则数据一定存储于存储单元R1中,判定存储单元R3中未存储有数据;
相应的,将写入数据通过写操作控制逻辑写入存储单元memory,同时,将写入数据通过数据选择单元MUX2写入存储单元R3。
相应的,当同一时间触发读使能时,通过读操作数据选择逻辑按照先入先出的规则读取存储单元R1中数据,故将写入数据通过数据选择单元MUX2直接写入存储单元R1。
具体的,当写使能和写入数据有效时,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值为2,则存储单元R3中一定存储有数据;
相应的,将写入数据通过写操作控制逻辑写入存储单元memory。
相应的,当同一时间触发读使能时,通过读操作数据选择逻辑按照先入先出的规则读取存储单元R1中数据,将存储单元R3中数据移至存储单元R1,将写入数据通过数据选择单元MUX1直接写入存储单元R3。
具体的,当写使能和写入数据有效时,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值大于2时,则存储单元R3中一定存储有数据;
相应的,将写入数据通过写操作控制逻辑写入存储单元memory。
相应的,当同一时间触发读使能时,通过读操作数据选择逻辑按照先入先出的规则读取存储单元R1中数据,将存储单元R3中数据移至存储单元R1,将存储单元memory中数据通过读操作控制逻辑生成相应数据移至存储单元R3;将写入数据通过写操作控制逻辑直接写入存储单元memory。
所述相应数据为存储于存储单元memory中最前端的数据,且在当前状态下,区别于存储单元R1中已被读出的数据,以及存储单元R1中正在寄存的数据。
需要说明的是,在写使能和写入数据有效时,都会将写入数据顺序写入存储单元memory,根据存储单元memory的物理特性,其始终按照先入先出的原则保留最近操作过的数据,故在IC调试过程中,可以按需通过调试控制单元调取存储单元memory中的记忆数据用于分析,可以理解的是,调取存储单元memory中记忆数据的个数,由FIFO的存储深度决定。
参图7所示,图7是本发明实施方式中FIFO存储器控制装置的模块图,在本发明的第一实施方式中,所述FIFO存储器控制装置包括:
判断模块100,用于当写使能和/或读使能有效时,通过FIFO状态标志位生成逻辑生成的标识数据判断FIFO存储器内部存储状态;
写入模块200,其包括写操作控制逻辑,用于将数据写入FIFO存储器;
数据选择模块300,其包括读操作数据选择逻辑,数据选择单元MUX1,数据选择单元MUX2,数据选择单元MUX3,数据选择单元MUX4,用于在写使能和/或读使能有效时,选择数据以及FIFO存储器的标识数据的存储位置;
存储模块400,其包括存储单元R1,存储单元R2,存储单元R3,存储单元memory,用于存储数据;
读出模块500,其包括读操作控制逻辑,调试控制逻辑,用于读取存储于FIFO存储器中的数据;
具体的,所述判断模块中设置有数量计数器,在写使能和写数据有效时,所述写入模块200将数据写入到FIFO存储器,所述数量计数器同时发起计数增加请求;当读使能有效时,所述读出模块500将数据从FIFO存储器中读出,所述数量计数器同时发起计数减少请求;每次数量计数器数值的增加或减少,都将被记录,并将记录结果通过FIFO状态标识位生成逻辑生成标识数据。
相应的,所述标识数据包括,所述数量计数器的当前数值,FIFO存储器的状态,例如处于空、满、将空、将满等状态。所述FIFO存储器的状态为空时,表示当前FIFO存储器只能进行写入动作,不能进行读出动作,若进行读出动作会产生向下溢出,无效的数据将被读出;所述FIFO存储器的状态为满时,表示当前FIFO存储器只能进行读出动作,不能进行写入动作,若进行写入动作会产生向上溢出,新数据的写入会导致先前的数据被覆盖;所述FIFO存储器的状态为其他标识数据时,表示当前FIFO存储器可以进行写入动作,也可以进行读出动作。
相应的,当写使能和/或读使能有效时,通过FIFO状态标识位生成逻辑生成标识数据,所述写入模块200将所述标识数据写入存储单元R2,以及通过数据选择单元MUX4写到FIFO存储器出口;若FIFO存储器需要读取所述标识数据,则直接读取FIFO出口的所述标识数据;若FIFO存储器不需要读取所述标识数据,则FIFO存储器出口的所述标识数据被清除。
在本发明的第一实施方式中,所述写入模块200还用于,若所述FIFO存储器内没有数据,则将写入数据写入存储单元R1,以及FIFO存储器出口,以可直接读取FIFO存储器出口的写入数据。
相应的,当写使能和写入数据有效时,通过判断模块100获取数据计数器的当前数值,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值为0,则表示FIFO存储器处于空的状态,可以触发写使能,或是同时触发写使能和读使能。
相应的,所述写入模块200将写入数据通过写操作控制逻辑写入存储单元memory,同时,将写入数据通过数据选择单元MUX2写入存储单元R1,和通过数据选择单元MUX3将数据写入FIFO存储器出口。
相应的,当同一时间触发读使能时,可以在同一时间周期内,所述读取模块直接读取写入到FIFO存储器出口数据。
若仅触发写使能,则通过写入模块200写到FIFO存储器出口的写入数据自动消失。
在本发明的第一实施方式中,所述写入模块200还用于,若所述FIFO存储器内已存储有1个数据,则将写入数据写入存储单元R3。
具体的,当写使能和写入数据有效时,通过判断模块100获取数据计数器的当前数值,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值为1,所述写入模块200用于将写入数据通过写操作控制逻辑写入存储单元memory,同时,将写入数据通过数据选择单元MUX2写入存储单元R3。
相应的,当同一时间触发读使能时,读操作模块用于通过读操作数据选择逻辑按照先入先出的规则读取存储单元R1中数据,故所述写入模块200将写入数据通过数据选择单元MUX2直接写入存储单元R1。
在本发明的第一实施方式中,所述写入模块200还用于,若所述FIFO存储器内已存储有至少2个数据,则将写入数据写入存储单元memory。
具体的,当写使能和写入数据有效时,通过判断模块100获取数据计数器的当前数值,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值为2,所述写入模块200用于将写入数据通过写操作控制逻辑写入存储单元memory。
相应的,当同一时间触发读使能时,所述读操作模块通过读操作数据选择逻辑按照先入先出的规则读取存储单元R1中数据,将存储单元R3中数据移至存储单元R1,将写入数据通过数据选择单元MUX1直接写入存储单元R3。
具体的,所述写入模块200还用于,当写使能和写入数据有效时,通过判断模块100获取数据计数器的当前数值,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值大于2时,则将写入数据通过写操作控制逻辑写入存储单元memory。
相应的,当同一时间触发读使能时,读操作模块通过读操作数据选择逻辑按照先入先出的规则读取存储单元R1中数据,将存储单元R3中数据移至存储单元R1,将存储单元memory中数据通过读操作控制逻辑生成相应数据移至存储单元R3;所述写入模块200将写入数据通过写操作控制逻辑直接写入存储单元memory。
所述相应数据为存储于存储单元memory中最前端的数据,且在当前状态下,区别于存储单元R1中已被读出的数据,以及存储单元R1中正在寄存的数据。
需要说明的是,在写使能和写入数据有效时,所述写操作模块都会将写入数据顺序写入存储单元memory,根据存储单元memory的物理特性,其始终按照先入先出的原则保留最近操作过的数据,故在IC调试过程中,可以按需通过调试控制单元调取存储单元memory中的记忆数据用于分析,可以理解的是,调取存储单元memory中记忆数据的个数,由FIFO的存储深度决定。
在本发明的第二实施方式中,所述FIFO控制装置包括:
判断模块100,用于当写使能和/或读使能有效时,通过FIFO状态标志位生成逻辑生成的标识数据判断FIFO存储器内部存储状态;
写入模块200,其包括写操作控制逻辑,用于将数据写入FIFO存储器;
数据选择模块300,其包括读操作数据选择逻辑,数据选择单元MUX1,数据选择单元MUX2,数据选择单元MUX3,数据选择单元MUX4,用于在写使能和/或读使能有效时,选择数据以及FIFO存储器的标识数据的存储位置;
存储模块400,其包括存储单元R1,存储单元R2,存储单元R3,存储单元memory,用于存储数据;
读出模块500,其包括读操作控制逻辑,调试控制逻辑,用于读取存储于FIFO存储器中的数据;
具体的,所述判断模块中设置有数量计数器,在写使能和写数据有效时,所述写入模块200将数据写入到FIFO存储器,所述数量计数器同时发起计数增加请求;当读使能有效时,所述读出模块500将数据从FIFO存储器中读出,所述数量计数器同时发起计数减少请求;每次数量计数器数值的增加或减少,都将被记录,并将记录结果通过FIFO状态标识位生成逻辑生成标识数据。
相应的,所述标识数据包括,所述数量计数器的当前数值,FIFO存储器的状态,例如处于空、满、将空、将满等状态。所述FIFO存储器的状态为空时,表示当前FIFO存储器只能进行写入动作,不能进行读出动作,若进行读出动作会产生向下溢出,无效的数据将被读出;所述FIFO存储器的状态为满时,表示当前FIFO存储器只能进行读出动作,不能进行写入动作,若进行写入动作会产生向上溢出,新数据的写入会导致先前的数据被覆盖;所述FIFO存储器的状态为其他标识数据时,表示当前FIFO存储器可以进行写入动作,也可以进行读出动作。
相应的,当写使能和/或读使能有效时,通过FIFO状态标识位生成逻辑生成标识数据,所述写入模块200将所述标识数据写入存储单元R2,以及通过数据选择单元MUX4写到FIFO存储器出口;
若FIFO存储器需要读取所述标识数据,则直接读取FIFO出口的所述标识数据;
若FIFO存储器不需要读取所述标识数据,则FIFO存储器出口的所述标识数据被清除。
在本发明的第二实施方式中,所述判断模块100还用于,当写使能和写入数据有效时,判断存储单元R1中是否存储有数据;
当写使能和写入数据有效时,通过所述判断模块100获取数据计数器的当前数值,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值为0,则表示存储单元R1中未存储有数据,可以触发写使能,或是同时触发写使能和读使能。
相应的,所述写入模块200将写入数据通过写操作控制逻辑写入存储单元memory,同时,将写入数据通过数据选择单元MUX2写入存储单元R1,和通过数据选择单元MUX3将数据写入FIFO存储器出口。
相应的,当同一时间触发读使能时,可以在同一时间周期内,所述读出模块500直接读取写入到FIFO存储器出口数据。
若仅触发写使能,则通过写入模块200写到FIFO存储器出口的写入数据自动消失。
在本发明的第二实施方式中,所述判断模块100还用于,若存储单元R1内已存储有数据,则判断存储单元R3中是否存储有数据;
若否,所述写入模块200将写入数据写入存储单元R3;
若是,所述写入模块200将写入数据写入存储单元memory。
具体的,通过判断模块100获取数据计数器的当前数值,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值为1,则数据一定存储于存储单元R1中,判定存储单元R3中未存储有数据;
相应的,所述写入模块200将写入数据通过写操作控制逻辑写入存储单元memory,同时,将写入数据通过数据选择单元MUX2写入存储单元R3。
相应的,当同一时间触发读使能时,所述读出模块500通过读操作数据选择逻辑按照先入先出的规则读取存储单元R1中数据,故所述写入模块200将写入数据通过数据选择单元MUX2直接写入存储单元R1。
具体的,当写使能和写入数据有效时,通过判断模块100获取数据计数器的当前数值,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值为2,则存储单元R3中一定存储有数据;
相应的,所述写入模块200将写入数据通过写操作控制逻辑写入存储单元memory。
相应的,当同一时间触发读使能时,所述读出模块500通过读操作数据选择逻辑按照先入先出的规则读取存储单元R1中数据,将存储单元R3中数据移至存储单元R1,所述写入模块200将写入数据通过数据选择单元MUX1直接写入存储单元R3。
具体的,当写使能和写入数据有效时,通过判断模块100获取数据计数器的当前数值,若在FIFO存储器出口读取到的所述数量计数器的当前计数数值大于2时,则存储单元R3中一定存储有数据;
相应的,所述写入模块200将写入数据通过写操作控制逻辑写入存储单元memory。
相应的,当同一时间触发读使能时,所述读出模块500通过读操作数据选择逻辑按照先入先出的规则读取存储单元R1中数据,将存储单元R3中数据移至存储单元R1,将存储单元memory中数据通过读操作控制逻辑生成相应数据移至存储单元R3;所述写入模块200将写入数据通过写操作控制逻辑直接写入存储单元memory。
所述相应数据为存储于存储单元memory中最前端的数据,且在当前状态下,区别于存储单元R1中已被读出的数据,以及存储单元R1中正在寄存的数据。
需要说明的是,在写使能和写入数据有效时,所述写操作模块都会将写入数据顺序写入存储单元memory,根据存储单元memory的物理特性,其始终按照先入先出的原则保留最近操作过的数据,故在IC调试过程中,可以按需通过调试控制单元调取存储单元memory中的记忆数据用于分析,可以理解的是,调取存储单元memory中记忆数据的个数,由FIFO的存储深度决定。
与现有技术相比,本发明的FIFO存储器控制方法及装置,通过在FIFO存储器内部设置数据选择模块300,选择数据写入、读出位置,在同一个时间周期内将FIFO存储器输入端的变化直接反应到FIFO存储器输出端,同时,每次写入数据时,都将写入数据写入存储单元memory,利于后续调取原始数据进行分析;本发明的FIFO存储器控制方法及装置,克服了传统FIFO存储器中存在延时的问题,提高了FIFO存储器的适用范围。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以保存在保存介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,信息推送服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请可用于众多通用或专用的计算***环境或配置中。例如:个人计算机、信息推送服务器计算机、手持设备或便携式设备、平板型设备、多处理模块***、基于微处理模块的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括保存设备在内的本地和远程计算机保存介质中。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (10)
1.一种FIFO存储器控制方法,其特征在于,所述方法包括:
当写使能和写入数据有效时,判断所述FIFO存储器的存储状态;
若所述FIFO存储器内没有数据,则将写入数据写入存储单元R1,以及FIFO存储器出口,以可直接读取FIFO存储器出口的写入数据;其中,所述存储单元R1靠近输出端设置。
2.根据权利要求1所述的FIFO存储器控制方法,其特征在于,所述方法还包括:
若所述FIFO存储器内已存储有1个数据,则将写入数据写入存储单元R3;
若所述FIFO存储器内已存储有至少2个数据,则将写入数据写入存储单元memory;
所述存储单元memory靠近输入端设置,所述存储单元R3设置于所述存储单元memory和所述存储单元R1之间。
3.根据权利要求2所述的FIFO存储器控制方法,其特征在于,所述方法还包括:在将写入数据写入存储单元R1或R3的同时,将写入数据按序写入存储单元memory。
4.根据权利要求1所述的FIFO存储器控制方法,其特征在于,所述方法还包括:
当写使能有效时,将所述状态标志位的标识数据写入存储单元R2,以及FIFO存储器出口,以可直接读取状态标志位的变化。
5.根据权利要求3所述的FIFO存储器控制方法,其特征在于,所述方法还包括:
当读使能有效时, 将所述存储单元R1中的数据读出;
将存储单元R3的数据移至存储单元R1;
将最先写入存储单元memory且未写入过存储单元R1或R3的数据移至存储单元R3;
其中,所述存储单元memory靠近输入端设置,所述存储单元R3设置于所述存储单元memory和所述存储单元R1之间。
6.一种FIFO存储器控制装置,其特征在于,所述装置包括:
判断模块,用于当写使能和写入数据有效时,判断FIFO存储器内部存储状态;
写入模块,用于若所述FIFO存储器内没有数据,将写入数据写入存储单元R1,以及FIFO存储器出口,以可直接读取FIFO存储器出口的写入数据;其中,所述存储单元R1靠近输出端设置。
7.根据权利要求6所述的FIFO存储器控制装置,其特征在于,
所述写入模块还用于,若所述FIFO存储器内已存储有1个数据,则将写入数据写入存储单元R3;
若所述FIFO存储器内已存储有至少2个数据,则将写入数据写入存储单元memory;
所述存储单元memory靠近输入端设置,所述存储单元R3设置于所述存储单元memory和所述存储单元R1之间。
8.根据权利要求7所述的FIFO存储器控制装置,其特征在于,所述写入模块还用于,在将写入数据写入存储单元R1或R3的同时,将写入数据按序写入存储单元memory。
9.根据权利要求6所述的FIFO存储器控制装置,其特征在于,所述写入模块还用于,当写使能有效时,将所述状态标志位的标识数据写入存储单元R2,以及FIFO存储器出口,以可直接读取状态标志位的变化。
10.根据权利要求9所述的FIFO存储器控制装置,其特征在于,所述装置还包括:读出模块,用于当读使能有效时,将所述存储单元R1中的数据读出;
所述读出模块还用于,将存储单元R3的数据移至存储单元R1,将最先写入存储单元memory且未写入过存储单元R1或R3的数据移至存储单元R3;
其中,所述存储单元memory靠近输入端设置,所述存储单元R3设置于所述存储单元memory和所述存储单元R1之间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103093272A CN103345377A (zh) | 2013-07-23 | 2013-07-23 | Fifo存储器控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103093272A CN103345377A (zh) | 2013-07-23 | 2013-07-23 | Fifo存储器控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103345377A true CN103345377A (zh) | 2013-10-09 |
Family
ID=49280176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013103093272A Pending CN103345377A (zh) | 2013-07-23 | 2013-07-23 | Fifo存储器控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103345377A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293636A (zh) * | 2015-05-20 | 2017-01-04 | 北京君正集成电路股份有限公司 | 一种流水级的实现方法、流水级及流水线 |
CN109358835A (zh) * | 2018-10-25 | 2019-02-19 | 天津市滨海新区信息技术创新中心 | Fifo存储器及其数据传输方法 |
WO2020252769A1 (zh) * | 2019-06-21 | 2020-12-24 | 深圳市大疆创新科技有限公司 | 先入先出存储器的数据存储方法、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1154511A (zh) * | 1995-11-04 | 1997-07-16 | 三星电子株式会社 | 输入/输出数据的规模相异的先入先出存贮器件及其方法 |
CN101071404A (zh) * | 2006-05-09 | 2007-11-14 | 大唐移动通信设备有限公司 | 一种小容量fifo存储器的数据搬移触发装置和方法 |
US20120079144A1 (en) * | 2010-09-23 | 2012-03-29 | Evgeny Shumsky | Low Latency First-In-First-Out (FIFO) Buffer |
CN102801593A (zh) * | 2012-02-23 | 2012-11-28 | 中国电力科学研究院 | 一种基于fpga和arm的数据传输方法及*** |
-
2013
- 2013-07-23 CN CN2013103093272A patent/CN103345377A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1154511A (zh) * | 1995-11-04 | 1997-07-16 | 三星电子株式会社 | 输入/输出数据的规模相异的先入先出存贮器件及其方法 |
CN101071404A (zh) * | 2006-05-09 | 2007-11-14 | 大唐移动通信设备有限公司 | 一种小容量fifo存储器的数据搬移触发装置和方法 |
US20120079144A1 (en) * | 2010-09-23 | 2012-03-29 | Evgeny Shumsky | Low Latency First-In-First-Out (FIFO) Buffer |
CN102801593A (zh) * | 2012-02-23 | 2012-11-28 | 中国电力科学研究院 | 一种基于fpga和arm的数据传输方法及*** |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293636A (zh) * | 2015-05-20 | 2017-01-04 | 北京君正集成电路股份有限公司 | 一种流水级的实现方法、流水级及流水线 |
CN109358835A (zh) * | 2018-10-25 | 2019-02-19 | 天津市滨海新区信息技术创新中心 | Fifo存储器及其数据传输方法 |
WO2020252769A1 (zh) * | 2019-06-21 | 2020-12-24 | 深圳市大疆创新科技有限公司 | 先入先出存储器的数据存储方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106201350B (zh) | 存储数据的方法、存储器和计算机*** | |
US6539500B1 (en) | System and method for tracing | |
CN101206614B (zh) | 仿真特殊功能寄存器的仿真器 | |
CN111399750B (zh) | 闪存数据写入方法及计算机可读取存储介质 | |
US8689170B2 (en) | Changing the location of a buffer bay in a netlist | |
CN113849433A (zh) | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 | |
CN111142918A (zh) | 一种可编程器件程序参数配置和流程控制方法 | |
US8140314B2 (en) | Optimal bus operation performance in a logic simulation environment | |
CN103345377A (zh) | Fifo存储器控制方法及装置 | |
US8700380B2 (en) | Method for generating performance evaluation model | |
US10852800B1 (en) | Multi-modal power control | |
CN117278890B (zh) | 光模块访问方法、装置、***、电子设备及可读存储介质 | |
CN114185874A (zh) | 一种基于大数据的建模方法、装置、开发框架及设备 | |
CN101421705A (zh) | 具有高储存容量的多媒体卡 | |
CN109656479A (zh) | 一种构建存储器命令序列的方法及装置 | |
CN102193860B (zh) | 微控制器在线调试电路及方法、微控制器 | |
CN101998135A (zh) | 移动电视信号采集及播放***、控制方法 | |
CN102880574A (zh) | 利用gpio模拟低速并行接口的方法 | |
US8413085B2 (en) | Digital netlist partitioning system for faster circuit reverse-engineering | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理*** | |
CN103593148A (zh) | 一种cdf侧离线话单数据快速存取的方法及装置 | |
CN100492299C (zh) | 一种嵌入式软件开发的方法及*** | |
CN109144844A (zh) | 追踪方法、装置、设备和机器可读介质 | |
CN113609052A (zh) | 基于fpga和微处理器的芯片模拟***及实现方法 | |
CN103176891A (zh) | 一种linux下利用内核模块与应用模块结合完成软件日志的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131009 |