CN101226767B - 双端口ram的读写控制电路、方法及装置 - Google Patents
双端口ram的读写控制电路、方法及装置 Download PDFInfo
- Publication number
- CN101226767B CN101226767B CN200810008193XA CN200810008193A CN101226767B CN 101226767 B CN101226767 B CN 101226767B CN 200810008193X A CN200810008193X A CN 200810008193XA CN 200810008193 A CN200810008193 A CN 200810008193A CN 101226767 B CN101226767 B CN 101226767B
- Authority
- CN
- China
- Prior art keywords
- port
- signal
- read
- group
- address bus
- 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
Abstract
本发明实施例公开了一种双端口RAM的读写控制电路、装置、以及方法,涉及存储器技术领域,为规避双端口RAM的读写冲突问题而发明。所述电路包括:比较电路,用于输出第二端口地址总线信号对应的存储单元读屏蔽信号;非门,用于对第二端口地址总线信号对应的存储单元读屏蔽信号进行非运算;第一与门,第一与门的一路输入端接收非运算后的第二端口地址总线信号对应的存储单元读屏蔽信号,第一与门的另一路输入端接收第二端口的读使能信号,第一与门的输出端连接第二端口的读使能端。本发明实施例可用于芯片电路设计中。
Description
技术领域
本发明涉及存储器技术,尤其涉及双端口RAM的读写控制电路、方法及装置。
背景技术
RAM(Random Access Memory,随机存储器)根据端口的数量,可分为单端口RAM(SPRAM)和双端口RAM(DPRAM)。双端口RAM根据两个端口采用的时钟是否同步,可分为同步时钟RAM与异步时钟RAM。异步时钟RAM中,每个端口有独立的控制端(端口使能端、读使能端、写使能端)、地址端、数据端,两个端口共享一个存储器。
在数字电路中,器件特性包括:建立时间和保持时间。其中建立时间是器件输入端在时钟信号有效沿到来前,要求输入信号稳定不变的时间。保持时间是器件输入端要求输入信号在时钟信号有效沿到来后保持稳定不变的时间。如果输入信号不满足建立时间和保持时间的要求,就可能导致数据锁存错误。如图1所示,aclk时钟域的数据adata要传给bclk时钟域,adata满足aclk的建立和保持时间,但是aclk和bclk是两个异源时钟,adata一定会在某些时刻不满足bclk的建立和保持时间,即当aclk和bclk两个时钟上升沿靠得很近的时,adata就会出现一个亚稳态,这种状态的电平既不是高电平也不是低电平。
与此类似,在双端口RAM对同一存储单元进行读写时,如果两个端口都使能,并且地址总线信号相同(在时钟上升沿),并且CLKA上升沿和CLKB上升沿之间的建立时间小于一定值,就会产生读写冲突。
允许在两个端口上对异步时钟RAM的同一存储单元同时进行读/读操作。但是当在两个端口上对异步时钟RAM的同一存储单元同时进行写/写、写/读的操作时,一端口的读数据可能会被另一端口的写数据破坏;一端口的写数据也有可能因为另一端口对同一地址的读操作或写操作而无法写入。RAM的行为将不可预测,一次写操作可能没有完成,输出端的数据也可能为无效。因此,无法保证读数据或写数据的正确性。大多数的双端口RAM的内部逻辑设计,避免了两个端口的写/写冲突,但是没有解决双端口RAM的读写操作冲突。
在芯片设计中,双端口RAM经常用在芯片中,作为两个不同功能模块接口交互的地方,例如芯片与CPU(Central processing unit,中央处理器)或者DSP之间完成交互功能的MPI(Micro Precessor Interface,微处理器接口)。以与DSP(Digital Signal Processing,数字信号处理器)配合使用的ASIC(Application Specific Integrated Circuit,专用集成电路)芯片为例,这类ASIC芯片通常会有一个DSP接口处理模块,用来接收来自DSP的控制信息,送到芯片的各个功能模块,而产生芯片的控制信号。由于DSP对ASIC的配置通常是受上层信令驱动,对于ASIC而言,DSP会随机对芯片写入参数。而ASIC功能模块对参数的使用则是受芯片内部数据流驱动,与上层信令无关,因此很难保证不与DSP的写参数操作发生冲突。并且DSP时钟与ASIC时钟通常是不同频的,相当于ASIC内部的RAM的双端口使用的是异步时钟。因此,也会产生双端口RAM的读写冲突问题。
目前,为了解决双端口RAM读写冲突的问题,采用如下方案,为每个地址参数设置“配置准备标志”,通过地址参数的“配置准备标志”来对RAM读写进行控制。方案具体为,DSP在每次写某一地址参数前,先将参数地址所对应的一个“配置准备标志”配置为高,然后再写参数,写完参数后,逻辑自动将“配置准备标志”清0。功能模块在读取参数缓存RAM时,同时检测地址参数对应的“配置准备标志”是否为高,如果“配置准备标志”为高,则将双口RAM的读口使能关闭;如果“配置准备标志”为低,则可以对读口进行读操作。
在上述方案的实施过程中,发明人发现现有技术中至少存在以下问题:
1、需要DSP为每个地址参数增加一个“配置准备标志”,增加了DSP的负担;
2、DSP如果误写配置准备标志,会导致功能逻辑一直无法读取所配置的参数;
3、需要增加复杂的“配置准备标志”的控制逻辑。
发明内容
一方面,本发明的实施例提供一种结构简单的双端口RAM的读写控制电路。能够规避双端口RAM的读写冲突问题。
为达到上述目的,本发明的实施例采用以下技术方案:
一种双端口RAM的读写控制电路,所述双端口RAM包括用于读或写的第一端口和用于读或写的第二端口,双端口RAM的读写控制电路包括:
比较电路,比较电路的输入端接收第一端口地址总线信号和第一端口写使能信号以及第二端口地址总线信号,比较第一端口地址总线信号和第二端口地址总线信号,当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,比较电路的输出端输出第二端口地址总线信号对应的存储单元读屏蔽信号,第二端口地址总线信号对应的存储单元读屏蔽信号从当前时刻起的至少前3个时钟周期内为高电平,从所述至少前3个时钟周期之后为低电平;
非门,用于对第二端口地址总线信号对应的存储单元读屏蔽信号进行非运算;
第一与门,第一与门的一路输入端接收非运算后的第二端口地址总线信号对应的存储单元读屏蔽信号,第一与门的另一路输入端接收第二端口的读使能信号,第一与门的输出端连接第二端口的读使能端。
另一方面,本发明的实施例提供一种结构简单的双端口RAM的读写控制方法,能够规避双端口RAM的读写冲突问题。
为达到上述目的,本发明的实施例采用以下技术方案:
一种双端口RAM的读写控制方法,所述双端口RAM包括用于读或写的第一端口和用于读或写的第二端口,所述双端口RAM的读写控制方法包括:
比较第一端口地址总线信号和第二端口地址总线信号,输出第二端口地址总线信号对应的存储单元读屏蔽信号;第二端口地址总线信号对应的存储单元读屏蔽信号为:当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,从当前时刻起的至少前3个时钟周期内为高电平,从所述至少前3个时钟周期之后为低电平;
将第二端口地址总线信号对应的存储单元读屏蔽信号进行非运算;
将非运算后的第二端口地址总线信号对应的存储单元读屏蔽信号,与第二端口的读使能信号进行与运算,输入到第二端口的读使能端。
再一方面,本发明的实施例提供一种结构简单的双端口RAM的读写控制装置,能够规避双端口RAM的读写冲突问题。
为达到上述目的,本发明的实施例采用以下技术方案:
一种双端口RAM的读写控制装置,所述双端口RAM包括用于读或写的第一端口和用于读或写的第二端口,所述双端口RAM的读写控制装置包括:
比较单元,用于比较第一端口地址总线信号和第二端口地址总线信号,输出第二端口地址总线信号对应的存储单元读屏蔽信号;第二端口地址总线信号对应的存储单元读屏蔽信号为:当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,从当前时刻起的至少前3个时钟周期内为高电平,从所述至少前3个时钟周期之后为低电平;
非运算单元,用于对第二端口地址总线信号对应的存储单元读屏蔽信号进行非运算;
第一与运算单元,用于将非运算后的第二端口地址总线信号对应的存储单元读屏蔽信号与第二端口的读使能信号进行与运算后,输入到第二端口的读使能端。
本发明实施例双端口RAM的读写控制电路、方法、装置,通过比较第一端口地址总线信号和第二端口地址总线信号,输出第二端口地址总线信号对应的存储单元读屏蔽信号,当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,第二端口地址总线信号对应的存储单元读屏蔽信号至少3个时钟周期前为高电平,至少3个时钟周期后为低电平。当在双端口RAM的第一端口进行写操作,并且在第二端口的相同存储单元进行读操作时,至少3个时钟周期前,屏蔽第二端口的读使能端,至少3个时钟周期后,第二端口的读使能端有效。因此,规避了双端口RAM的读写冲突问题。另外,此方案结构简单,容易实现,不占用存储器资源。
附图说明
图1是现有技术中产生双端口RAM读写冲突问题的时序图;
图2是本发明双端口RAM的读写控制电路第一实施例的电路图;
图3是本发明双端口RAM的读写控制电路第一实施例中比较电路的电路图;
图4是本发明双端口RAM的读写控制电路第一实施例的时序图;
图5是本发明双端口RAM的读写控制电路第二实施例中比较电路的电路图;
图6是本发明双端口RAM的读写控制电路第二实施例的时序图;
图7是本发明双端口RAM的读写控制方法的流程图;
图8是本发明双端口RAM的读写控制方法第一实施例的流程图;
图9是本发明双端口RAM的读写控制方法第二实施例的流程图;
图10是本发明双端口RAM的读写控制装置的方框图;
图11是本发明双端口RAM的读写控制装置第一实施例中比较单元的方框图;
图12是本发明双端口RAM的读写控制装置第二实施例中比较单元的方框图。
具体实施方式
为使本发明实施例的技术方案更加清楚,下面结合附图和具体实施例对本发明的实施例作进一步的详细说明。
如图2所示,所述双端口RAM的读写控制电路包括:
比较电路,比较电路的输入端接收第一端口地址总线信号A_wr_addr和第一端口写使能信号A_wr_en以及第二端口地址总线信号B_rd_add,比较第一端口地址总线信号A_wr_addr和第二端口地址总线信号B_rd_add,当第一端口地址总线信号A_wr_addr和第二端口地址总线信号B_rd_add相同并且第一端口写使能信号A_wr_en有效时,比较电路的输出端输出第二端口地址总线信号B_rd_add对应的存储单元读屏蔽信号rd_mask_sel,第二端口地址总线信号B_rd_add对应的存储单元读屏蔽信号rd_mask_sel至少3个时钟周期前为高电平,至少3个时钟周期后为低电平;本实施例为至少5个时钟周期。
非门,用于对第二端口地址总线信号B_rd_add对应的存储单元读屏蔽信号rd_mask_sel进行非运算;
第一与门,第一与门的一路输入端接收非运算后的第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel,第一与门的另一路输入端接收第二端口的读使能信号B_rd_en,第一与门的输出端连接第二端口的读使能端portB_rd。
第二延迟电路,第二延迟电路由触发器组成,用于将第一端口写使能信号A_wr_en延迟至少2个时钟周期后,输入第一端口的写使能端portA_wr;本实施例为至少3个时钟周期。
第三延迟电路,第三延迟电路由触发器组成,用于将第一端口的数据总线信号A_data延迟后,输入第一端口的数据端portA_data,第三延迟电路延迟的时钟周期数与第二延迟电路延迟的时钟周期数相同。本实施例为至少3个时钟周期。
一组第四与门;每个第四与门的一路输入端连接第二端口的一个数据端portB_data,该第四与门的另一路输入端连接所述第一与门的输出端,每个第四与门的输出端输出与运算后的第二端口数据信号。当第二端口的读使能端portB_rd被屏蔽为无效时,双口RAM的第二端口输出数据为0。其中,该组第四与门的数量可以与双端口RAM第二端口数据总线位数相同。
本发明实施例双端口RAM的读写控制电路,比较电路比较第一端口地址总线信号和第二端口地址总线信号,输出第二端口地址总线信号对应的存储单元读屏蔽信号,当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,第二端口地址总线信号对应的存储单元读屏蔽信号至少5个时钟周期前为高电平;至少5个时钟周期后为低电平。因此,当在双端口RAM的第一端口进行写操作,并且在第二端口的相同存储单元进行读操作时,至少5个时钟周期前,屏蔽第二端口的读使能端,并且写信号延迟至少3个时钟周期进行写操作,第一端口的写使能端具有至少2个前保护间隙,至少5个时钟周期后,第二端口的读使能端有效,第一端口的写使能端具有至少2个后保护间隙,规避了双端口RAM的读写冲突问题。另外,采用此方法容易实现,不占用存储器资源。
其中,本发明实施例提供两种比较电路,以下分别以8位地址线为例分别说明两种比较电路。
第一种比较电路如图3所示,包括:译码器,译码器的输入端接收第一端口地址总线信号A_wr_addr;译码器的输出端输出一组第一端口存储单元选择信号;所述一组第一端口存储单元选择信号在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;本实施中,当前地址线总线信号为(0,1,1,1,1,1,1,1),则输出端Y127=1,其它输出端为0。
一组第二与门,分别用第二与门-0、第二与门-x、第二与门-191等表示,每个第二与门的一路输入端接收一个第一端口存储单元选择信号,该第二与门的另一路输入端接收第一端口写使能信号;因此,当第一端口的写使能信号有效,当前地址线总线信号为(0,1,1,1,1,1,1,1)时,则第二与门-127的输出端为1,其它第二与门的输出端为0。其中,该组第二与门数量与双端口RAM第一端口地址总线位数有关,假设双端口RAM第一端口地址总线位数为n,则该组中第二与门数量为2的n次方个,本实施例中,地址总线位数为8位,则第二与门数量为2的8次方个,即256个。
一组第一延迟电路,该组中第一延迟电路数量可以与第二与门数量相同,分别由触发器组成,分别用第一延迟电路-0、第一延迟电路-x、第一延迟电路-191等表示,每个第一延迟电路输入端连接一个第二与门的输出端,所述第一延迟电路延迟至少3个时钟周期,本实施例中,延迟5个时钟周期。
一组D触发器,其中,该组中D触发器数量可以与第二与门数量相同,分别用D触发器-0、D触发器-x、D触发器-191等表示,每个D触发器的时钟脉冲端接收第一端口的时钟信号,该D触发器的预置端连接一个第二与门的输出端,该D触发器的清除端连接一个第一延迟电路的输出端,该D触发器的输出端输出一个第一端口存储单元读屏蔽信号。D触发器的工作原理为:当D触发器的预置端SET=1并且CLR为0时,D触发器的输出为1。当D触发器的预置端SET=0并且CLR为1时,D触发器的输出为0。因此,对于D触发器-127来说,当第一端口的写使能信号有效,当前地址线总线信号为(0,1,1,1,1,1,1,1)时,则D触发器-127的预置端输入为1并且CLR输入为0,D触发器的输出为1。5个时钟周期后,D触发器-127的预置端SET输入为0并且CLR输入为1,D触发器-127输出的存储单元读屏蔽信号为0。
一组两个串联的D触发器;该组中两个串联的D触发器的数量可以与第二与门的数量相同,分别用D触发器-0-1d、D触发器-0-2d、D触发器-x-1d、D触发器-x-2d、D触发器-191-1d、D触发器-191-2d等表示,一组两个串联的D触发器接收第一端口存储单元读屏蔽信号rd_mask[x];延迟2个时钟周期后,输出延迟2个时钟周期后的存储单元读屏蔽信号rd_mask_2d[x],所述两个串联的D触发器的时钟脉冲端分别接收第二端口的时钟信号B_clk。这组两个串联的D触发器,用于进行存储单元读屏蔽信号的时钟域同步转换,并且消除亚稳态。
多路选择器,多路选择器的数据输入端接收一组第一端口存储单元读屏蔽信号(rd_mask_2d[0],…rd_mask_2d[x]…rd_mask_2d[191]…),多路选择器的选择信号输入端接收第二端口地址总线信号B_rd_addr,多路选择器的输出端输出第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel。在本实施例中,当第二端口地址总线信号B_rd_addr为(0,1,1,1,1,1,1,1)时,第一端口地址总线信号与第二端口的地址总线信号一致,并且第一端口写地址信号有效时,多路选择器将输出端输出第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel为1,5个时钟周期后,输出的第二端口地址总线信号对应的存储单元读屏蔽信号为0。第一端口写地址信号有效时,第二端口地址总线信号B_rd_addr为(1,1,1,1,1,1,1,1),第一端口地址总线信号与第二端口的地址总线信号不一致,多路选择器输出端输出第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel为0,5个时钟周期后,输出的第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel为1。
由图4的时序图可以看出,本发明实施例双端口RAM的读写控制电路,产生一组读屏蔽信号,当写使能信号有效时,至少5个时钟周期前,在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;至少5个时钟周期后,在第一端口地址总线信号对应的输出端为低电平,在剩余输出端为高电平;多路选择器选出第二端口地址总线信号对应的存储单元读屏蔽信号;并且通过非门和与门,输出到第二端口的读使能端口。因此,当第一端口的写地址总线与第一端口的读地址总线相同时,多路选择器选出高电平的读屏蔽信号,通过非门和与门后,给第二端口的读使能端输出低电平,屏蔽第二端口的读使能端口,因此避免了对端口RAM的同一地址单元同时进行读写的可能性,避免了双端口读写冲突问题。延迟至少3个时钟周期后,多路选择器选出高电平的读屏蔽信号,通过非门和与门后,给第二端口的读使能端输出低电平,使第二端口的读使能端口有效,规避了双端口RAM的读写冲突问题。
可选的,对于地址深度较深的双口RAM,可以不必为每个存储单元产生一个读口屏蔽标志,可采用一组存储单元对应一个读屏蔽信号的方法,以减少产生读屏蔽信号所需要的寄存器。对于DSP写入参数的延迟拍数也可根据2个时钟的频率关系何保护区间进行调整。本发明实施例中,第一端口地址总线为第一端口的高位地址线;第二端口地址总线为第二端口的高位地址线;所述第一端口高位地址线的位数与第二端口高位地址线的位数相同。
如图5所示,第二种比较电路包括:
第一译码器,第一译码器的输入端接收第一端口地址总线信号A_wr_addr;第一译码器的输出端Y输出一组第一端口存储单元选择信号;所述一组第一端口存储单元选择信号在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;本实施中,当前地址线总线信号为(0,1,1,1,1,1,1,1),则第一译码器的输出端Y127=1,其它输出端为0。
第二译码器,第二译码器的输入端接收第一端口地址总线的写完成信号A_wr_finish_addr;第二译码器的输出端输出一组存储单元写完成信号;本实施中,当前地址总线信号写完成后,则第二译码器的输出端Y127=1,其它输出端为0。
一组第二与门,分别用第二与门-0、第二与门-x、第二与门-191等表示,每个第二与门的一路输入端接收一个第一端口存储单元选择信号,该第二与门的另一路输入端接收第一端口写使能信号A_wr_en;其中,该组第二与门数量与双端口RAM第一端口地址总线位数有关,假设双端口RAM第一端口地址总线位数为n,则该组中第二与门数量为2的n次方个,本实施例中,地址总线位数为8位,则第二与门数量为2的8次方个,即256个;
一组第三与门,该组中第三与门的数量可以与第二与门的数量相同,分别用第三与门-0、第三与门-x、第三与门-191等表示,每个第三与门的一路输入端接收一个存储单元写完成信号,该第三与门的另一路输入端接收第一端口写完成信号A_wr_finish;
一组第一延迟电路,该组中第一延迟电路的数量可以与第二与门的数量相同,分别由触发器组成,分别用第一延迟电路-0、第一延迟电路-x、第一延迟电路-191等表示,每个第一延迟电路的输入端接收一个第三与门的输出端,该第一延迟电路延迟至少1个时钟周期;
一组D触发器,该组中D触发器的数量可以与第二与门的数量相同,分别用D触发器-0、D触发器-x、D触发器-191等表示,每个D触发器的时钟脉冲端接收第一端口的时钟信号A_clk;该D触发器的预置端SET连接一个第二与门的输出端;该D触发器的清除端CLR连接第一延迟电路的输出端;该D触发器的输出端输出一个第一端口存储单元读屏蔽信号rd_mask[x];对于D触发器-127来说,当第一端口的写使能信号有效,地址线总线信号为(0,1,1,1,1,1,1,1)时,则D触发器-127的预置端输入为1并且CLR输入为0,D触发器的输出为1。地址线总线信号写完成信号延迟1个时钟周期后,D触发器-127的预置端SET输入为0并且CLR输入为1,D触发器-127输出的存储单元读屏蔽信号为0。
一组两个串联的D触发器;该组中两个串联的D触发器的数量可以与第二与门的数量相同,分别用D触发器-0-1d、D触发器-0-2d、D触发器-x-1d、D触发器-x-2d、D触发器-191-1d、D触发器-191-2d等表示,一组两个串联的D触发器接收第一端口存储单元读屏蔽信号rd_mask[x];延迟2个时钟周期后,输出延迟2个时钟周期后的存储单元读屏蔽信号rd_mask_2d[x],所述两个串联的D触发器的时钟脉冲端分别接收第二端口的时钟信号B_clk。这组两个串联的D触发器,用于进行存储单元读屏蔽信号的时钟域同步转换,并且消除亚稳态。
多路选择器,接收所述一组延迟2个时钟周期后的存储单元读屏蔽信号rd_mask_2d[x],多路选择器的选择信号输入端接收第二端口地址总线信号,多路选择器的输出端输出第二端口地址总线信号对应的存储单元读屏蔽信号。在本实施例中,当第二端口地址总线信号B_rd_addr为(0,1,1,1,1,1,1,1)时,第一端口地址总线信号与第二端口的地址总线信号一致,并且第一端口写地址信号有效时,在第一端口写完成信号延迟至少1个时钟周期前,多路选择器输出端输出第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel为1,在第一端口写完成信号延迟至少1个时钟周期后,输出的第二端口地址总线信号对应的存储单元读屏蔽信号为0。第一端口写地址信号有效时,第二端口地址总线信号B_rd_addr为(1,1,1,1,1,1,1,1),第一端口地址总线信号与第二端口的地址总线信号不一致,在第一端口写完成信号延迟至少1个时钟周期前,多路选择器输出端输出第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel为0,在第一端口写完成信号延迟至少1个时钟周期后,输出的第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel为1。
由图6的时序图可以看出,本发明实施例双端口RAM的读写控制电路,产生一组存储单元读屏蔽信号,当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,第一端口写完成信号延迟至少1个时钟周期前,第二端口地址总线信号对应的存储单元读屏蔽信号为高电平,第一端口写完成信号延迟至少1个时钟周期后,为低电平。因此,当在双端口RAM的第一端口进行写操作,并且在第二端口的相同存储单元进行读操作时,写信号延迟3个时钟周期进行写操作,并且在第一端口写完成信号延迟至少1个时钟周期前,屏蔽第二端口的读使能端,因此,第一端口的写使能端具有前保护间隙;第一端口写完成信号延迟至少1个时钟周期后,第二端口的读使能端有效,第二端口的写使能端具有后保护间隙,因此规避了双端口RAM的读写冲突问题。
可选的,对于地址深度较深的双口RAM可以不必为每个存储单元产生一个读口屏蔽标志,可采用一组存储单元增加一个写完成信号产生读口屏蔽信号的方法,以减少产生读口屏蔽信号所需要的寄存器。第一端口地址总线为第一端口的高位地址线;第二端口地址总线为第二端口的高位地址线;所述第一端口高位地址线的位数与第二端口高位地址线的位数相同。
本发明实施例在双口RAM之外增加了一个双端口RAM的读写控制电路,有效规避了双口RAM经常可能发生的读写冲突问题,具有以下有益效果:
1、简化了规避双口RAM读写冲突的逻辑设计实现;
2、无需二级缓存,节省了存储器资源开销;
3、采用通用的异步时钟转换电路,提高了规避异步RAM读写冲突问题的可靠性。
本发明实施例规避了第一端口进行写操作而在第二端口进行读操作时的读写冲突,本领域技术人员可以理解,可以对等的设置电路,来规避第一端口进行读操作而在第二端口进行写操作时的读写冲突。
本发明实施例还提供了一种双端口RAM的读写控制方法,如图7所述,包括:
701,比较第一端口地址总线信号和第二端口地址总线信号,输出第二端口地址总线信号对应的存储单元读屏蔽信号;第二端口地址总线信号对应的存储单元读屏蔽信号为:当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,至少3个时钟周期前为高电平,至少3个时钟周期后为低电平;
702,将第二端口地址总线信号对应的存储单元读屏蔽信号进行非运算;
703,将非运算后的第二端口地址总线信号对应的存储单元读屏蔽信号,与第二端口的读使能信号进行与运算,输入到第二端口的读使能端。
704,将第一端口写使能信号延迟至少2个时钟周期,输入第一端口的写使能端;
705,将第一端口的数据总线信号延迟后,输入第一端口的数据端;数据总线信号延迟的时钟周期数与第一端口写使能信号延迟的时钟周期数相同。
本发明实施例双端口RAM的读写控制方法,比较第一端口地址总线信号和第二端口地址总线信号,输出第二端口地址总线信号对应的存储单元读屏蔽信号,当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,第二端口地址总线信号对应的存储单元读屏蔽信号至少3个时钟周期前为高电平,至少3个时钟周期后为低电平。因此,当在双端口RAM的第一端口进行写操作,并且在第二端口的相同存储单元进行读操作时,至少3个时钟周期前,屏蔽第二端口的读使能端,至少3个时钟周期后,第二端口的读使能端有效,规避了双端口RAM的读写冲突问题。另外,采用此方法容易实现,不占用存储器资源。
本发明双端口RAM的读写控制方法的第一实施例,如图8所述,包括:
801,将第一端口地址总线信号译码,生成一组第一端口存储单元选择信号;所述一组第一端口存储单元选择信号在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;
802,将所述一组第一端口存储单元选择信号分别与第一端口写使能信号进行与运算;
803,将与运算后的一组第一端口存储单元选择信号分别进行反向;
804,至少3个时钟周期前,将与运算后的一组第一端口存储单元选择信号作为一组存储单元读屏蔽信号输出;至少3个时钟周期后,将反向后的一组第一端口存储单元选择信号作为一组存储单元读屏蔽信号输出;
805,使用第二端口的时钟信号,对一组第一端口存储单元读屏蔽信号进行两级时钟域的同步转化。
806,从一组第一端口存储单元读屏蔽信号中,选出与第二端口地址总线信号对应的存储单元读屏蔽信号。
807,将第二端口地址总线信号对应的存储单元读屏蔽信号进行非运算;
808,将非运算后的第二端口地址总线信号对应的存储单元读屏蔽信号,与第二端口的读使能信号进行与运算,输入到第二端口的读使能端。
809,将第一端口写使能信号延迟至少2个时钟周期,输入第一端口的写使能端;
810,将第一端口的数据总线信号延迟后,输入第一端口的数据端;数据总线信号延迟的时钟周期数与第一端口写使能信号延迟的时钟周期数相同。
本发明实施例双端口RAM的读写控制方法,产生一组读屏蔽信号,当写使能信号有效时,至少3个时钟周期前,在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;至少3个时钟周期后,在第一端口地址总线信号对应的输出端为低电平,在剩余输出端为高电平;选出第二端口地址总线信号对应的存储单元读屏蔽信号;并且通过非运算和与运算,输出到第二端口的读使能端口。因此,当第一端口的写地址总线与第一端口的读地址总线相同时,选出高电平的读屏蔽信号,通过非运算和与运算后,给第二端口的读使能端输出低电平,屏蔽第二端口的读使能端口,因此避免了对端口RAM的同一地址单元同时进行读写的可能性,避免了双端口读写冲突问题。延迟至少3个时钟周期后,选出高电平的读屏蔽信号,通过非运算和与运算后,给第二端口的读使能端输出低电平,使第二端口的读使能端口有效。
本发明双端口RAM的读写控制方法的第二实施例,如图9所示,包括:
901,将第一端口地址总线信号译码,生成一组第一端口存储单元选择信号;所述一组第一端口存储单元选择信号在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;
902,将第一端口地址总线写完成信号译码,生成一组第一端口存储单元写完成信号;所述一组第一端口存储单元写完成信号在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;
903,将所述一组第一端口存储单元选择信号分别与第一端口写使能信号与运算;
904,将所述一组第一端口存储单元写完成信号分别与第一端口写完成信号与运算;
905,将与运算后的一组存储单元写完成信号延迟至少1个时钟周期;
906,将延迟的一组存储单元写完成信号反向;
907,在第一端口写完成信号延迟至少1个时钟周期前,将与运算后的一组第一端口存储单元选择信号,作为一组第一端口存储单元读屏蔽信号输出;在第一端口写完成信号延迟至少1个时钟周期后,将反向后的一组第一端口存储单元写完成信号,作为一组第一端口存储单元读屏蔽信号输出;
908,使用第二端口的时钟信号,对一组第一端口存储单元读屏蔽信号进行两级时钟域的同步转化。
909,从一组第一端口存储单元读屏蔽信号中,选出与第二端口地址总线信号对应的存储单元读屏蔽信号。
910,将第二端口地址总线信号对应的存储单元读屏蔽信号进行非运算;
911,将非运算后的第二端口地址总线信号对应的存储单元读屏蔽信号,与第二端口的读使能信号进行与运算,输入到第二端口的读使能端。
912,将第一端口写使能信号延迟至少2个时钟周期,输入第一端口的写使能端;
913,将第一端口的数据总线信号延迟后,输入第一端口的数据端;数据总线信号延迟的时钟周期数与第一端口写使能信号延迟的时钟周期数相同。
本发明实施例双端口RAM的读写控制方法,产生一组读屏蔽信号,当写使能信号有效时,在第一端口写完成信号延迟至少1个时钟周期前,在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;在第一端口写完成信号延迟至少1个时钟周期后,在第一端口地址总线信号对应的输出端为低电平,在剩余输出端为高电平;选出第二端口地址总线信号对应的存储单元读屏蔽信号;并且通过非运算和与运算,输出到第二端口的读使能端口。因此,当第一端口的写地址总线与第一端口的读地址总线相同时,在第一端口写完成信号延迟至少1个时钟周期前,选出高电平的读屏蔽信号,通过非运算和与运算后,给第二端口的读使能端输出低电平,屏蔽第二端口的读使能端口,因此避免了对端口RAM的同一地址单元同时进行读写的可能性,避免了双端口读写冲突问题。在第一端口写完成信号延迟至少1个时钟周期后,选出高电平的读屏蔽信号,通过非运算和与运算后,给第二端口的读使能端输出低电平,使第二端口的读使能端口有效。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤,是可以通过程序指令相关硬件完成的。实施例对应的软件可以存储在一个计算机可存储读取的介质中。
本发明实施例还提供一种双端口RAM的读写控制装置,如图10所述,包括:
比较单元,用于比较第一端口地址总线信号A_wr_addr和第二端口地址总线信号B_rd_addr,输出第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel;第二端口地址总线信号对应的存储单元读屏蔽信号为:当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,至少3个时钟周期前为高电平,至少3个时钟周期后为低电平;
非运算单元,用于对第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel进行非运算;
第一与运算单元,用于将非运算后的第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel与第二端口的读使能信号B_read_en进行与运算后,输入到第二端口的读使能端;
第二延迟单元,用于将第一端口写使能信号A_wr_en延迟至少2个时钟周期,输入第一端口的写使能端;
第三延迟单元,用于将第一端口的数据总线信号A_data延迟后,输入第一端口的数据端,第三延迟电路延迟的时钟周期数与第二延迟电路延迟的时钟周期数相同。
本发明实施例双端口RAM的读写控制电路,比较单元比较第一端口地址总线信号和第二端口地址总线信号,输出第二端口地址总线信号对应的存储单元读屏蔽信号,当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,第二端口地址总线信号对应的存储单元读屏蔽信号至少3个时钟周期前为高电平,至少3个时钟周期后为低电平。因此,当在双端口RAM的第一端口进行写操作,并且在第二端口的相同存储单元进行读操作时,写信号延迟3个时钟周期进行写操作,并且在第一端口写完成信号延迟至少1个时钟周期前,屏蔽第二端口的读使能端,因此,第一端口的写使能端具有前保护间隙;第一端口写完成信号延迟至少1个时钟周期后,第二端口的读使能端有效,第二端口的写使能端具有后保护间隙,因此规避了双端口RAM的读写冲突问题。另外,此电路结构简单,容易实现,不占用存储器资源。
所述比较单元有两种,如图11所示,第一种比较单元包括:
第一译码单元,用于将第一端口地址总线信号A_wr_addr译码,生成一组第一端口存储单元选择信号A_wr_addr=x;所述一组第一端口存储单元选择信号A_wr_addr=x在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;
第二与运算单元,用于将一组第一端口存储单元选择信号A_wr_addr=x分别与写使能信号A_wr_en与运算;
第一延迟单元,用于将一组与运算后的一组第一端口存储单元选择信号A_wr_addr=x分别延迟至少3个时钟周期;
反向单元,用于将延迟的一组第一端口存储单元选择信号分别反向;
输出单元,用于在至少3个时钟周期前,将与运算后的一组第一端口存储单元选择信号作为一组第一端口存储单元读屏蔽信号输出;至少3个时钟周期后,将反向后的一组第一端口存储单元选择信号作为一组第一端口存储单元读屏蔽信号输出;
同步转化单元,用于使用第二端口的时钟信号B_clk,对一组第一端口存储单元读屏蔽信号rd_mask[X]进行经过两级时钟域的同步转化,输出同步转化后的一组存储单元读屏蔽信号rd_mask_2d[X];
选择单元,用于根据第二端口地址总线信号B_rd_addr,从同步转化后的一组第一端口存储单元读屏蔽信号rd_mask_2d[X]中,选出与第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel。
本发明实施例双端口RAM的读写控制装置,产生一组读屏蔽信号,当写使能信号有效时,至少3个时钟周期前,在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;至少3个时钟周期后,在第一端口地址总线信号对应的输出端为低电平,在剩余输出端为高电平;选择单元选出第二端口地址总线信号对应的存储单元读屏蔽信号;并且通过非门和与门,输出到第二端口的读使能端口。因此,当第一端口的写地址总线与第一端口的读地址总线相同时,选择单元选出高电平的读屏蔽信号,通过非运算单元和与运算单元后,给第二端口的读使能端输出低电平,屏蔽第二端口的读使能端口,因此避免了对端口RAM的同一地址单元同时进行读写的可能性,避免了双端口读写冲突问题。延迟至少3个时钟周期后,选择单元选出高电平的读屏蔽信号,通过非运算和与运算单元后,给第二端口的读使能端输出低电平,使第二端口的读使能端口有效。
如图12所示,第二种比较单元包括:
第一译码单元,用于将第一端口地址总线信号A_wr_addr译码,生成一组第一端口存储单元选择信号A_wr_addr=x;
第二与运算单元,用于将所述一组第一端口存储单元选择信号A_wr_addr=x分别与写使能信号A_wr_en与运算,输出与运算后的一组第一端口存储单元选择信号;
第二译码单元,用于将第一端口地址总线写完成信号A_wr_finish_addr译码,生成一组第一端口存储单元写完成信号A_wr_finish_addr=x;
第三与运算单元,用于将所述一组第一端口存储单元写完成信号A_wr_finish_addr=x分别与第一端口写使能信号A_wr_finish与运算,输出与运算后的一组第一端口存储单元写完成信号;
第一延迟单元,用于将一组第一端口存储单元写完成信号A_wr_finish_addr=x延迟至少1个时钟周期,输出延迟后的一组第一端口存储单元写完成信号;
反向单元,用于将延迟的一组第一端口存储单元写完成信号A_wr_finish_addr=x分别反向;
输出单元,用于在第一端口写完成信号延迟至少1个时钟周期前,将与运算后的一组第一端口存储单元选择信号,作为一组第一端口存储单元读屏蔽信号输出;在第一端口写完成信号延迟至少1个时钟周期后,将反向后的一组第一端口存储单元写完成信号,作为一组第一端口存储单元读屏蔽信号输出;
同步转化单元,用于使用第二端口的时钟信号,对一组第一端口存储单元读屏蔽信号rd_mask[191]进行经过两级时钟域的同步转化,输出同步转化后的一组存储单元读屏蔽信号rd_mask_2d[191];
选择单元,用于根据第二端口地址总线信号,从同步转化后的一组第一端口存储单元读屏蔽信号rd_mask_2d[191]中,选出与第二端口地址总线信号对应的存储单元读屏蔽信号rd_mask_sel。
本发明实施例双端口RAM的读写控制装置,产生一组读屏蔽信号,当写使能信号有效时,在第一端口写完成信号延迟至少1个时钟周期前,在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;在第一端口写完成信号延迟至少1个时钟周期后,在第一端口地址总线信号对应的输出端为低电平,在剩余输出端为高电平;选择单元选出第二端口地址总线信号对应的存储单元读屏蔽信号;并且通过非运算单元和与运算单元,输出到第二端口的读使能端口。因此,当第一端口的写地址总线与第一端口的读地址总线相同时,在第一端口写完成信号延迟至少1个时钟周期前,选择单元选出高电平的读屏蔽信号,通过非运算单元和与运算单元后,给第二端口的读使能端输出低电平,屏蔽第二端口的读使能端口,因此避免了对端口RAM的同一地址单元同时进行读写的可能性,避免了双端口读写冲突问题。在第一端口写完成信号延迟至少1个时钟周期后,选择单元选出高电平的读屏蔽信号,通过非运算单元和与运算单元后,给第二端口的读使能端输出低电平,使第二端口的读使能端口有效。
本发明实施例可用于芯片电路设计中。
当然,本发明的实施例还可有很多种,在不背离本发明的实施例精神及其实质的情况下,本领域技术人员当可根据本发明的实施例做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的实施例所附的权利要求的保护范围。
Claims (18)
1.一种双端口RAM的读写控制电路,所述双端口RAM包括用于读或写的第一端口和用于读或写的第二端口,其特征在于,所述双端口RAM的读写控制电路包括:
比较电路,比较电路的输入端接收第一端口地址总线信号和第一端口写使能信号以及第二端口地址总线信号,比较第一端口地址总线信号和第二端口地址总线信号,当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,比较电路的输出端输出第二端口地址总线信号对应的存储单元读屏蔽信号,第二端口地址总线信号对应的存储单元读屏蔽信号从当前时刻起的至少前3个时钟周期内为高电平,从所述至少前3个时钟周期之后为低电平;
非门,用于对第二端口地址总线信号对应的存储单元读屏蔽信号进行非运算;
第一与门,第一与门的一路输入端接收非运算后的第二端口地址总线信号对应的存储单元读屏蔽信号,第一与门的另一路输入端接收第二端口的读使能信号,第一与门的输出端连接第二端口的读使能端。
2.根据权利要求1所述的双端口RAM的读写控制电路,其特征在于,所述比较电路包括:
译码器,译码器的输入端接收第一端口地址总线信号;译码器的输出端输出一组第一端口存储单元选择信号;所述一组第一端口存储单元选择信号在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;
一组第二与门,每个第二与门的一路输入端接收一个第一端口存储单元选择信号,该第二与门的另一路输入端接收第一端口写使能信号;
一组第一延迟电路,每个第一延迟电路输入端连接一个第二与门的输出端,所述第一延迟电路延迟至少3个时钟周期;
一组D触发器,每个D触发器的时钟脉冲端接收第一端口的时钟信号,该D触发器的预置端连接一个第二与门的输出端,该D触发器的清除端连接一个第一延迟电路的输出端,该D触发器的输出端输出一个第一端口存储单元读屏蔽信号;
多路选择器,多路选择器的数据输入端接收一组第一端口存储单元读屏蔽信号,多路选择器的选择信号输入端接收第二端口地址总线信号,多路选择器的输出端输出第二端口地址总线信号对应的存储单元读屏蔽信号。
3.根据权利要求1所述的双端口RAM的读写控制电路,其特征在于,所述比较电路包括:
第一译码器,第一译码器的输入端接收第一端口地址总线信号;第一译码器的输出端输出一组第一端口存储单元选择信号;所述一组第一端口存储单元选择信号在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;
第二译码器,第二译码器的输入端接收第一端口地址总线的写完成信号;第二译码器的输出端输出一组存储单元写完成信号;
一组第二与门,每个第二与门的一路输入端接收一个第一端口存储单元选择信号,该第二与门的另一路输入端接收第一端口写使能信号;
一组第三与门,每个第三与门的一路输入端接收一个存储单元写完成信号,该第三与门的另一路输入端接收第一端口写完成信号;
一组第一延迟电路,每个第一延迟电路的输入端接收一个第三与门的输出端,该第一延迟电路延迟至少1个时钟周期;
一组D触发器,每个D触发器的时钟脉冲端接收第一端口的时钟信号;该D触发器的预置端连接一个第二与门的输出端;该D触发器的清除端连接第一延迟电路的输出端;该D触发器的输出端输出一个第一端口存储单元读屏蔽信号;
多路选择器,多路选择器的数据输入端接收一组第一端口存储单元读屏蔽信号,多路选择器的选择信号输入端接收第二端口地址总线信号,多路选择器的输出端输出第二端口地址总线信号对应的存储单元读屏蔽信号。
4.根据权利要求2或3所述的双端口RAM的读写控制电路,其特征在于,
第一端口地址总线为第一端口的高位地址线;第二端口地址总线为第二端口的高位地址线;所述第一端口高位地址线的位数与第二端口高位地址线的位数相同。
5.根据权利要求2或3所述的双端口RAM的读写控制电路,其特征在于,比较电路还包括:一组两个串联的D触发器;
多路选择器的数据输入端通过所述一组两个串联的D触发器,接收所述一组第一端口存储单元读屏蔽信号;所述两个串联的D触发器的时钟脉冲端分别接收第二端口的时钟信号。
6.根据权利要求2或3所述的双端口RAM的读写控制电路,其特征在于,还包括:
第二延迟电路,用于将第一端口写使能信号延迟至少2个时钟周期后,输入第一端口的写使能端;
第三延迟电路,用于将第一端口的数据总线信号延迟后,输入第一端口的数据端,第三延迟电路延迟的时钟周期数与第二延迟电路延迟的时钟周期数相同。
7.根据权利要求6所述的双端口RAM的读写控制电路,其特征在于,第一延迟电路、第二延迟电路、以及第三延迟电路分别由触发器组成。
8.根据权利要求1所述的双端口RAM的读写控制电路,其特征在于,还包括一组第四与门;每个第四与门的一路输入端连接第二端口的一个数据端,该第四与门的另一路输入端连接所述第一与门的输出端,每个第四与门的输出端输出与运算后的数据信号。
9.一种双端口RAM的读写控制方法,所述双端口RAM包括用于读或写的第一端口和用于读或写的第二端口,其特征在于,所述双端口RAM的读写控制方法包括:
比较第一端口地址总线信号和第二端口地址总线信号,输出第二端口地址总线信号对应的存储单元读屏蔽信号;第二端口地址总线信号对应的存储单元读屏蔽信号为:当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,从当前时刻起的至少前3个时钟周期内为高电平,从所述至少前3个时钟周期之后为低电平;
将第二端口地址总线信号对应的存储单元读屏蔽信号进行非运算;
将非运算后的第二端口地址总线信号对应的存储单元读屏蔽信号,与第二端口的读使能信号进行与运算,输入到第二端口的读使能端。
10.根据权利要求9所述的双端口RAM的读写控制方法,其特征在于,
比较第一端口地址总线信号和第二端口地址总线信号,输出第二端口地址总线信号对应的存储单元读屏蔽信号的步骤包括:
将第一端口地址总线信号译码,生成一组第一端口存储单元选择信号;所述一组第一端口存储单元选择信号在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;
将所述一组第一端口存储单元选择信号分别与第一端口写使能信号与运算;
将与运算后的一组第一端口存储单元选择信号分别进行反向;
从当前时刻起的至少前3个时钟周期内,将与运算后的一组第一端口存储单元选择信号作为一组存储单元读屏蔽信号输出;从所述至少前3个时钟周期之后,将反向后的一组第一端口存储单元选择信号作为一组存储单元读屏蔽信号输出;
从一组第一端口存储单元读屏蔽信号中,选出与第二端口地址总线信号对应的存储单元读屏蔽信号。
11.根据权利要求9所述的双端口RAM的读写控制方法,其特征在于,比较第一端口地址总线信号和第二端口地址总线信号,输出第二端口地址总线信号对应的存储单元读屏蔽信号的步骤包括:
将第一端口地址总线信号译码,生成一组第一端口存储单元选择信号;所述一组第一端口存储单元选择信号在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;
将第一端口地址总线写完成信号译码,生成一组第一端口存储单元写完成信号;所述一组第一端口存储单元写完成信号在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;
将所述一组第一端口存储单元选择信号分别与第一端口写使能信号与运算;
将所述一组第一端口存储单元写完成信号分别与第一端口写完成信号与运算;
将与运算后的一组存储单元写完成信号延迟至少1个时钟周期;
将延迟的一组存储单元写完成信号反向;
从当前时刻起到延迟了至少1个时钟周期的第一端口写完成信号结束之前,将与运算后的一组第一端口存储单元选择信号,作为一组第一端口存储单元读屏蔽信号输出;从延迟了至少1个时钟周期的第一端口写完成信号结束之后,将反向后的一组第一端口存储单元写完成信号,作为一组第一端口存储单元读屏蔽信号输出;
从一组第一端口存储单元读屏蔽信号中,选出与第二端口地址总线信号对应的存储单元读屏蔽信号。
12.根据权利要求10或11所述的双端口RAM的读写控制方法,其特征在于,
从一组第一端口存储单元读屏蔽信号中,选出与第二端口地址总线信号对应的存储单元读屏蔽信号的步骤之前,还包括:
使用第二端口的时钟信号,对一组第一端口存储单元读屏蔽信号进行两级时钟域的同步转化。
13.根据权利要求10或11所述的双端口RAM的读写控制方法,其特征在于,还包括:
将第一端口写使能信号延迟至少2个时钟周期,输入第一端口的写使能端;
将第一端口的数据总线信号延迟后,输入第一端口的数据端;数据总线信号延迟的时钟周期数与第一端口写使能信号延迟的时钟周期数相同。
14.一种双端口RAM的读写控制装置,所述双端口RAM包括用于读或写的第一端口和用于读或写的第二端口,其特征在于,所述双端口RAM的读写控制装置包括:
比较单元,用于比较第一端口地址总线信号和第二端口地址总线信号,输出第二端口地址总线信号对应的存储单元读屏蔽信号;第二端口地址总线信号对应的存储单元读屏蔽信号为:当第一端口地址总线信号和第二端口地址总线信号相同并且第一端口写使能信号有效时,从当前时刻起的至少前3个时钟周期内为高电平,从所述至少前3个时钟周期之后为低电平;
非运算单元,用于对第二端口地址总线信号对应的存储单元读屏蔽信号进行非运算;
第一与运算单元,用于将非运算后的第二端口地址总线信号对应的存储单元读屏蔽信号与第二端口的读使能信号进行与运算后,输入到第二端口的读使能端。
15.根据权利要求14所述的双端口RAM的读写控制装置,其特征在于,所述比较单元包括:
第一译码单元,用于将第一端口地址总线信号译码,生成一组第一端口存储单元选择信号;所述一组第一端口存储单元选择信号在第一端口地址总线信号对应的输出端为高电平,在剩余输出端为低电平;
第二与运算单元,用于将一组第一端口存储单元选择信号分别与写使能信号与运算;
第一延迟单元,用于将一组与运算后的一组第一端口存储单元选择信号分别延迟至少3个时钟周期;
反向单元,用于将延迟的一组第一端口存储单元选择信号分别反向;
输出单元,用于从当前时刻起的至少前3个时钟周期内,将与运算后的一组第一端口存储单元选择信号作为一组第一端口存储单元读屏蔽信号输出;从所述至少前3个时钟周期之后,将反向后的一组第一端口存储单元选择信号作为一组第一端口存储单元读屏蔽信号输出;
选择单元,用于根据第二端口地址总线信号,从一组第一端口存储单元读屏蔽信号中,选出与第二端口地址总线信号对应的存储单元读屏蔽信号。
16.根据权利要求14所述的双端口RAM的读写控制装置,其特征在于,所述比较单元包括:
第一译码单元,用于将第一端口地址总线信号译码,生成一组第一端口存储单元选择信号;
第二与运算单元,用于将所述一组第一端口存储单元选择信号分别与第一端口写使能信号与运算,输出与运算后的一组第一端口存储单元选择信号;
第二译码单元,用于将第一端口地址总线写完成信号译码,生成一组第一端口存储单元写完成信号;
第三与运算单元,用于将所述一组第一端口存储单元写完成信号分别与第一端口写完成信号与运算,输出与运算后的一组第一端口存储单元写完成信号;
第一延迟单元,用于将一组第一端口存储单元写完成信号延迟至少1个时钟周期,输出延迟后的一组第一端口存储单元写完成信号;
反向单元,用于将延迟的一组第一端口存储单元写完成信号分别反向;
输出单元,用于从当前时刻起到延迟了至少1个时钟周期的第一端口写完成信号结束之前,将与运算后的一组第一端口存储单元选择信号,作为一组第一端口存储单元读屏蔽信号输出;从延迟了至少1个时钟周期的第一端口写完成信号结束之后,将反向后的一组第一端口存储单元写完成信号,作为一组第一端口存储单元读屏蔽信号输出;
选择单元,用于根据第二端口地址总线信号,从一组第一端口存储单元读屏蔽信号中,选出与第二端口地址总线信号对应的存储单元读屏蔽信号。
17.根据权利要求15或16所述的双端口RAM的读写控制装置,其特征在于,还包括同步转化单元,用于使用第二端口的时钟信号,对一组第一端口存储单元读屏蔽信号进行经过两级时钟域的同步转化,输出同步转化后的一组存储单元读屏蔽信号;
选择单元,用于根据第二端口地址总线信号,从同步转化后的一组第一端口存储单元读屏蔽信号中,选出与第二端口地址总线信号对应的存储单元读屏蔽信号。
18.根据权利要求15或16所述的双端口RAM的读写控制装置,其特征在于,还包括:
第二延迟单元,用于将第一端口写使能信号延迟至少2个时钟周期,输入第一端口的写使能端;
第三延迟单元,用于将第一端口的数据总线信号延迟后,输入第一端口的数据端,第三延迟电路延迟的时钟周期数与第二延迟电路延迟的时钟周期数相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810008193XA CN101226767B (zh) | 2008-02-18 | 2008-02-18 | 双端口ram的读写控制电路、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810008193XA CN101226767B (zh) | 2008-02-18 | 2008-02-18 | 双端口ram的读写控制电路、方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101226767A CN101226767A (zh) | 2008-07-23 |
CN101226767B true CN101226767B (zh) | 2010-06-09 |
Family
ID=39858707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810008193XA Active CN101226767B (zh) | 2008-02-18 | 2008-02-18 | 双端口ram的读写控制电路、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101226767B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751980B (zh) * | 2008-12-17 | 2013-08-14 | 中国科学院电子学研究所 | 基于存储器知识产权核的嵌入式可编程存储器 |
CN102799546B (zh) * | 2012-06-30 | 2015-07-08 | 广西工学院 | 输出位信息的读写与时序控制器 |
CN102749574B (zh) * | 2012-07-18 | 2014-11-12 | 中国科学院微电子研究所 | 扫描测试方法及电路 |
CN103730149B (zh) * | 2014-01-20 | 2016-05-25 | 中国科学院电子学研究所 | 一种双端口存储器的读写控制电路 |
CN105448317B (zh) * | 2014-06-20 | 2018-03-23 | 中芯国际集成电路制造(上海)有限公司 | 数据的处理装置、方法及控制信号的使能、处理电路 |
CN106407037B (zh) * | 2015-07-27 | 2019-04-02 | 中国科学院电子学研究所 | 一种双端口存储器字线控制电路 |
CN113254373B (zh) * | 2021-06-16 | 2021-10-12 | 上海矽久微电子有限公司 | 支持同时读写的类双口存储器实现方法、类存储器及芯片结构 |
CN115441860B (zh) * | 2022-11-07 | 2023-02-17 | 西安水木芯邦半导体设计有限公司 | 多通道输出控制器及pcb板缺陷检测系统 |
CN117095719A (zh) * | 2023-08-25 | 2023-11-21 | 广州市粤港澳大湾区前沿创新技术研究院 | 一种控制电路及存储器 |
-
2008
- 2008-02-18 CN CN200810008193XA patent/CN101226767B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101226767A (zh) | 2008-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101226767B (zh) | 双端口ram的读写控制电路、方法及装置 | |
CN102981776B (zh) | 双倍数据率虚拟静态随机存取存储器及其控制器、存取与操作方法、写入与读取方法 | |
CN103730149B (zh) | 一种双端口存储器的读写控制电路 | |
US20190212767A1 (en) | Apparatuses for reducing clock path power consumption in low power dynamic random access memory | |
EP1402340B1 (en) | First-in, first-out memory system and method thereof | |
CN1504900B (zh) | 自内存读取数据的控制电路及其方法 | |
CN100576140C (zh) | 产生数字信号处理器和存储器的时钟信号的电路和方法 | |
CN112000603B (zh) | 一种握手协议电路、芯片及计算机设备 | |
CN106297874B (zh) | 时钟信号生成电路和方法、以及存储器 | |
US6778463B2 (en) | Memory access interface for a micro-controller system with address/data multiplexing bus | |
JP4179920B2 (ja) | 緩衝バッファ回路 | |
CN102789424B (zh) | 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器 | |
CN102004626A (zh) | 双口存储器 | |
CN112712829A (zh) | 一种跨时钟域的寄存器读写电路及方法 | |
US7463266B2 (en) | Low overhead serial interface | |
EP2735927A2 (en) | Data processing apparatus and method in PLC system | |
CN209765494U (zh) | 一种异步fifo装置 | |
CN103377029A (zh) | 参数化的通用fifo控制方法 | |
JP3018404B2 (ja) | マイクロプロセッサ | |
JP5499131B2 (ja) | デュアルポートメモリおよびその方法 | |
CN102411556B (zh) | 用于ip核的处理器接口自动生成方法 | |
CN105843768A (zh) | 一种单线通信mtp烧录协议及基于该协议的烧录装置 | |
US7962698B1 (en) | Deterministic collision detection | |
CN114840458B (zh) | 读写模块、片上系统和电子设备 | |
CN100365639C (zh) | 先进先出仿真单元及逻辑验证仿真系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210427 Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee after: Honor Device Co.,Ltd. Address before: 518129 headquarters building of Bantian HUAWEI base, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |