CN114265796A - Ram的读写控制方法 - Google Patents
Ram的读写控制方法 Download PDFInfo
- Publication number
- CN114265796A CN114265796A CN202111386213.9A CN202111386213A CN114265796A CN 114265796 A CN114265796 A CN 114265796A CN 202111386213 A CN202111386213 A CN 202111386213A CN 114265796 A CN114265796 A CN 114265796A
- Authority
- CN
- China
- Prior art keywords
- ram
- data
- bit width
- input
- counter
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000001934 delay Effects 0.000 claims description 2
- 230000003252 repetitive effect Effects 0.000 abstract description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Abstract
本发明公开了一种RAM的读写控制方法,其包括如下步骤:a.外部数据输入RAM控制顶层的输入模块,获取输入数据的位宽信息;b.根据RAM的位宽信息配置输入模块中输入数据的位宽比与RAM控制顶层的输出模块中输出数据的位宽比;c.产生RAM写使能信号与写地址信息,根据输入模块中的输入数据的位宽比将外部数据写入RAM内;d.产生RAM读使能信号与读地址信息,根据输出模块中的输出数据的位宽比从RAM中将数据读出至输出模块。本发明的RAM的读写控制方法减少了开发人员的重复性工作,且可适用于同一个项目中不同的模块以及不同的项目模块,提高了通用性。
Description
技术领域
本发明涉及数据缓存交互领域,更具体地涉及一种RAM的读写控制方法。
背景技术
随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入或读出数据。其在计算机和数字系统中用来暂时存储程序、数据和中间结果;因此,RAM在各数据缓存交互领域被广泛应用。比如在某项目中,涉及到数据缓存、DMA操作、数据流交互等功能,其中RAM位宽为64bit,A模块数据位宽为32bit,B模块数据位宽为16bit;A模块部分由于数据位宽与RAM位宽是两倍关系,通过时钟二分频信号对读写使能控制以及数据位宽转换;B模块部分由于数据位宽与RAM位宽是四倍关系,通过计数方式进行读写使能控制以及数据位宽转换。
但在上述所使用的RAM控制方中,在同一个项目中,当有多个模块需要对RAM进行访问时,由于各个模块的数据位宽以及读写使能各不相同,就需要多次编写读写控制逻辑;当开发新项目时,模块之间又发生了变化,控制逻辑又要重新进项编写;因此不仅限制了使用的灵活性与应用范围,同时还给开发人员带来了很多重复性工作,降低了工作效率。
因此,有必要提供一种改进的RAM的读写控制方法来克服上述缺陷。
发明内容
本发明的目的是提供一种RAM的读写控制方法,本发明的RAM的读写控制方法减少了开发人员的重复性工作,且可适用于同一个项目中不同的模块以及不同的项目模块,提高了通用性。
为实现上述目的,本发明提供了一种RAM的读写控制方法,其包括如下步骤:
a.外部数据输入RAM控制顶层的输入模块,获取输入数据的位宽信息;
b.根据RAM的位宽信息配置输入模块中输入数据的位宽比与RAM控制顶层的输出模块中输出数据的位宽比;
c.产生RAM写使能信号与写地址信息,根据输入模块中的输入数据的位宽比将外部数据写入RAM内;
d.产生RAM读使能信号与读地址信息,根据输出模块中的输出数据的位宽比从RAM中将数据读出至输出模块。
较佳地,设定RAM的位宽为K,输入数据的位宽为A,输出数据的位宽为B,输入数据的位宽比为k1,输出数据的位宽比为k2,则满足:k1*A=K=k2*B,其中k1与k2为自然数。
较佳地,根据输入模块中的输入数据的位宽比将外部数据写入RAM内具体地为:计数器计数K1次,在输入所述输入模块的信号有效时,每计数一次且信号有效时,输入数据赋值给RAM,且每次赋值给RAM的位数为A。
较佳地,当输入信号有效时,计数器从0开始计算,输入数据按[A(k1-n)-1:A(k1-n-1)]的方式赋值给RAM],n为计数器当前的计数值,且0≤n<k1。
较佳地,计数器计数次数达到k1次且信号有效时,所述写地址加1。
较佳地,根据输出模块中的输出数据的位宽比从RAM中将数据读出至RAM控制顶层的输出模块具体地为:计数器在外部读使能信号有效时开始计数,计数器计数K2次,每计数一次,RAM赋值给输出模块,且每次赋值给输出模块的位数为B。
较佳地,计数器的初始值为0,当外部读使能信号有效时开始计数,当计数完K2则置1;当外部读使能信号无效时,且计数完K2时则清0;循环计数。
较佳地,计数器从0开始计数,并将计数器延迟一拍,RAM从延迟计数器的计数值为1开始赋值给输出模块,且延迟计数器每计数一次,RAM按[B(k2-m+1)-1:B(k2-m)]的方式赋值给输出模块,m为延迟计数器当前的计数值,1≤m≤k2。
较佳地,计数器计数值为1时,RAM读使能有效,所述读地址加1。
与现有技术相比,本发明的RAM的读写控制方法,通过参数配置对数据输入端以及数据输出端的位宽进行设置,同时也可以对RAM地址深度和数据位宽的参数进行配置,通过计数器的有效标志进行计数来实现高低位宽的数据转换,同时控制RAM的读写使能,从而实现输入数据、输出数据与RAM之间的位宽匹配,实现数据的正常交互,使得在不同的模块中不再需要反复地控制逻辑编写,减少了开发人员的重复性工作,也提高了通用性。
通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
附图说明
图1为本发明RAM的读写控制方法的流程图。
图2为实现本发明RAM的读写控制方法的结构框图。
图3为本发明RAM的读写控制方法中写入数据的时序图。
图4为本发明RAM的读写控制方法中读出数据的时序图。
具体实施方式
现在参考附图描述本发明的实施例,附图中类似的元件标号代表类似的元件。如上所述,本发明提供了一种RAM的读写控制方法,本发明的RAM的读写控制方法减少了开发人员的重复性工作,且可适用于同一个项目中不同的模块以及不同的项目模块,提高了通用性。
请结合参考图1与图2,如图所示,本发明的RAM的读写控制方法包括如下步骤:
步骤S001,外部数据输入RAM控制顶层的输入模块,获取输入数据的位宽信息;在本步骤中,在所述RAM控制顶层的输入模块中获取输入数据的位宽信息,以方便后续调整该输入数据的位宽比。
步骤S002,根据RAM的位宽信息配置输入模块中输入数据的位宽比与RAM控制顶层的输出模块中输出数据的位宽比;在本步骤中,根据RAM的位宽信息分配配置输入所述RAM的数据的位宽比与输出所述RAM的数据的位宽比,当然,在不同的应用场合,RAM的位宽并不固定,可根据实际的应用场合进行配置;具体地,设定RAM的位宽为K,输入数据的位宽为A,输出数据的位宽为B,输入数据的位宽比为k1,输出数据的位宽比为k2,则满足:k1*A=K=k2*B,其中k1与k2为自然数,则可根据方程式k1*A=K=k2*B对RAM的位宽、输入数据的位宽比、输出数据的位宽比进行合理配置,配置的参数满足上式即可;而且,通过上式也可得出,当在某些特殊情况下,输入数据的位宽比或输出数据的位宽比不便于进行改变时,可相应调整配置所述RAM的位宽,以使上式成立,即可实现对RAM的读写。
步骤S003,产生RAM写使能信号与写地址信息,根据输入模块中的输入数据的位宽比将外部数据写入RAM内;在本步骤中,在RAM中产生写使能信号与写地址信息,以此确保RAM已准备好能写入数据;具体地,计数器计数k1次,在输入所述输入模块的信号(WR_VLD)有效时,每计数一次输入数据赋值给RAM,且每次赋值给RAM的位数为A,也即是,计数器依输入数据的位宽比为次数进行计数,每进行一次有效计数就输入数据赋值给RAM,而且每一次赋值的位数为A,即实现对RAM的k1次赋值,满足式子k1*A=K;更进一步地,当输入信号(WR_VLD)有效时,计数器从0开始计数,输入数据按[A(k1-n)-1:A(k1-n-1)]的方式赋值给RAM],n为计数器当前的计数值,且0≤n<k1,而当n=k1时计数器清零;例如,若K=64,A=16,k1=4,当计数器从0开始计数,当计数器的计数值n为0时,输入数据赋值给RAM[63:48],当计数器的计数值n为1时,输入数据赋值给RAM[47:32],当计数器的计数值n为2时,输入数据赋值给RAM[31:16],当计数器的计数值n为3时,输入数据赋值给RAM[15:0]即完成0、1、2、3的四次赋值;另外,在本步骤中,当完成一次完整的数据写入过程,也即计数器计数次数达到k1次且信号(WR_VLD)有效时,所述写地址加1,以为下一次的数据写入准备好地址信号。具体时序如图3所示,其中,在图3中,clk为时钟信号,divld为输入信号,din为输入数据,wrcnt为写计数器,ramwr为RAM写使能信号,ramdi为写入数据,ramaddr为RAM地址信号。在本步骤中,使输入数据与RAM数据位宽匹配,并同时给出RAM的写使能和写地址信号,将输入数据的位宽进行转换并成功写入RAM空间。
步骤S004,产生RAM读使能信号与读地址信息,根据输出模块中的输出数据的位宽比从RAM中将数据读出至输出模块;在本步骤中,在RAM中产生读使能信号与读地址信息,以此确保RAM已准备好能读出数据,并在外部读使能信号有效时即可对RAM正常读取数据;具体地,计数器在外部读使能信号有效时开始计数,计数器计数K2次,每计数一次RAM赋值给输出模块,且每次赋值给输出模块的位数为B。也即是,计数器依输出数据的位宽比为次数进行计数,每进行一次有效计数RAM就赋值给输出模块,而且每一次赋值的位数为B,即实现RAM对输出模块的k2次赋值,满足式子k2*B=K。更进一步地,计数器的初始值为0,当外部读使能信号有效时开始计数,当计数完K2则置1,以开始下一轮的计数;当外部读使能信号无效时,且计数完K2时则清0,以等待下一个外部读使能信号有效而开始重新计数;也即是,所述计数器按上述两种方式不断循环计数,直到计数结束,具体时序如图4所示。其中,计数器从0开始计数,同时,并将计数器延迟一拍,RAM从延迟计数器的计数值为1开始赋值给输出模块,且延迟计数器每计数一次,RAM按[B(k2-m+1)-1:B(k2-m)]的方式赋值给输出模块,m为延迟计数器当前的计数值,1≤m≤k2;从而使得所述RAM读出数据与延迟一拍后的计数器(延时计数器)对齐;其中,所述延迟计数器即为当前计数器延迟一拍后所形成的计数器;举例如下:K=48,B=24,k2=2,当延迟计数器的计数值m为1,RAM[47:24]赋值给输出模块,当延迟计数器的计数值m为2时,RAM[23:0]赋值给输出模块即完成1、2的二次赋值。再有,在本步骤中,计数器计数值为1时,RAM读使能有效,所述读地址加1,以为下一次的数据读出准备好地址信号;同时从图4所示时序图可知,所述地址信号与计数器直接对齐。另外,在图4中,clk为时钟信号,rden为外部读使能信号,rdcnt为计数器,ramrd为RAM读使能信号,ramaddr为RAM的地址信号,ramdo为RAM的输出数据,radcntd为延迟计数器,dovld为输出数据有效信号,dout输出数据。如上所述,在本步骤中对从RAM回读的数据进行计数拆分,并将其对应的bit位输出,通过这种方式,使RAM数据与输出数据位宽匹配,并给出输出数据和数据有效信号,从而实现对输出数据的有效转换并成功输出。
下面请再结合参考图2,举例说明本发明RAM的读写控制方法的配置过程。其中,CLK,WEN,CEN,ADDR,WDATA,RDATA为常规RAM接口。
例如:当前需要实现外部输入数据16bit,外部输出数据32bit,RAM深度为256,RAM数据接口位宽为64bit。(由于实际使用情况,以及RAM的灵活性,默认RAM数据位宽大于等于外部数位宽)则参数设置如下:
输入数据位宽:DATA_I=16;
输出数据位宽:DATA_O=32;
RAM地址位宽:RAM_ADDR=256;
RAM数据位宽:RAM_DATA=64;
输入数据位宽比例:RAM_I_BIT_RATIO=4;
输出数据位宽比例:RAM_O_BIT_RATIO=2。
综上所述,本发明的RAM的读写控制方法,通过参数配置对数据输入端以及数据输出端的位宽进行设置,同时也可以对RAM地址深度和数据位宽的参数进行配置,通过计数器的有效标志进行计数来实现高低位宽的数据转换,同时控制RAM的读写使能,从而实现输入数据、输出数据与RAM之间的位宽匹配,实现数据的正常交互,使得在不同的模块中不再需要反复地控制逻辑编写,减少了开发人员的重复性工作,也提高了通用性。
以上结合最佳实施例对本发明进行了描述,但本发明并不局限于以上揭示的实施例,而应当涵盖各种根据本发明的本质进行的修改、等效组合。
Claims (9)
1.一种RAM的读写控制方法,其特征在于,包括如下步骤:
a.外部数据输入RAM控制顶层的输入模块,获取输入数据的位宽信息;
b.根据RAM的位宽信息配置输入模块中输入数据的位宽比与RAM控制顶层的输出模块中输出数据的位宽比;
c.产生RAM写使能信号与写地址信息,根据输入模块中的输入数据的位宽比将外部数据写入RAM内;
d.产生RAM读使能信号与读地址信息,根据输出模块中的输出数据的位宽比从RAM中将数据读出至输出模块。
2.如权利要求1所述的RAM的读写控制方法,其特征在于,设定RAM的位宽为K,输入数据的位宽为A,输出数据的位宽为B,输入数据的位宽比为k1,输出数据的位宽比为k2,则满足:k1*A=K=k2*B,其中k1与k2为自然数。
3.如权利要求2所述的RAM的读写控制方法,其特征在于,根据输入模块中的输入数据的位宽比将外部数据写入RAM内具体地为:计数器计数K1次,在输入所述输入模块的信号有效时,每计数一次输入数据赋值给RAM,且每次赋值给RAM的位数为A。
4.如权利要求3所述的RAM的读写控制方法,其特征在于,当输入信号有效时,计数器从0开始计算,输入数据按[A(k1-n)-1:A(k1-n-1)]的方式赋值给RAM,n为计数器当前的计数值,且0≤n<k1。
5.如权利要求4所述的RAM的读写控制方法,其特征在于,计数器计数次数达到k1次且信号有效时,所述写地址加1。
6.如权利要求2所述的RAM的读写控制方法,其特征在于,根据输出模块中的输出数据的位宽比从RAM中将数据读出至RAM控制顶层的输出模块具体地为:计数器在外部读使能信号有效时开始计数,计数器计数K2次,每计数一次RAM赋值给输出模块,且每次赋值给输出模块的位数为B。
7.如权利要求6所述的RAM的读写控制方法,其特征在于,计数器的初始值为0,当外部读使能信号有效时开始计数,当计数完K2则置1;当外部读使能信号无效时,且计数完K2时则清0;循环计数。
8.如权利要求7所述的RAM的读写控制方法,其特征在于,计数器从0开始计数,并将计数器延迟一拍,RAM从延迟计数器的计数值为1开始赋值给输出模块,且延迟计数器每计数一次,RAM按[B(k2-m+1)-1:B(k2-m)]的方式赋值给输出模块,m为延迟计数器当前的计数值,1≤m≤k2。
9.如权利要求8所述的RAM的读写控制方法,其特征在于,计数器计数值为1时,RAM读使能有效,所述读地址加1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111386213.9A CN114265796B (zh) | 2021-11-22 | Ram的读写控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111386213.9A CN114265796B (zh) | 2021-11-22 | Ram的读写控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114265796A true CN114265796A (zh) | 2022-04-01 |
CN114265796B CN114265796B (zh) | 2024-05-14 |
Family
ID=
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239232A (zh) * | 2014-09-10 | 2014-12-24 | 北京空间机电研究所 | 一种基于fpga内dpram的乒乓缓存操作结构 |
WO2017143642A1 (zh) * | 2016-02-25 | 2017-08-31 | 邦彦技术股份有限公司 | 一种基于fpga实现pcm音频采集装置及系统及方法 |
CN111367495A (zh) * | 2020-03-06 | 2020-07-03 | 电子科技大学 | 一种异步先入先出的数据缓存控制器 |
WO2021129689A1 (zh) * | 2019-12-23 | 2021-07-01 | 深圳市中兴微电子技术有限公司 | 数据位宽转换方法和装置 |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239232A (zh) * | 2014-09-10 | 2014-12-24 | 北京空间机电研究所 | 一种基于fpga内dpram的乒乓缓存操作结构 |
WO2017143642A1 (zh) * | 2016-02-25 | 2017-08-31 | 邦彦技术股份有限公司 | 一种基于fpga实现pcm音频采集装置及系统及方法 |
WO2021129689A1 (zh) * | 2019-12-23 | 2021-07-01 | 深圳市中兴微电子技术有限公司 | 数据位宽转换方法和装置 |
CN113094309A (zh) * | 2019-12-23 | 2021-07-09 | 深圳市中兴微电子技术有限公司 | 一种数据位宽转换方法和装置 |
CN111367495A (zh) * | 2020-03-06 | 2020-07-03 | 电子科技大学 | 一种异步先入先出的数据缓存控制器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113254368B (zh) | 从axi总线到opb总线的数据写入方法及读取方法 | |
US20060195650A1 (en) | Method to detect NAND-flash parameters by hardware automatically | |
US8661180B2 (en) | Memory controlling device and memory controlling method | |
EP1116123A1 (en) | Memory controller with programmable delay counter for tuning performance based on timing parameter of controlled memory storage device | |
CN1504900B (zh) | 自内存读取数据的控制电路及其方法 | |
CN114816263A (zh) | 存储访问方法及智能处理装置 | |
US6545942B2 (en) | Semiconductor memory device and information processing unit | |
JPH10161868A (ja) | マクロ命令機能を有する同期式半導体メモリ装置とマクロ命令の格納及び実行方法 | |
CN114265796A (zh) | Ram的读写控制方法 | |
CN114265796B (zh) | Ram的读写控制方法 | |
US20110010494A1 (en) | Memory control circuit and memory control method | |
CN110968538B (zh) | 一种数据缓冲方法和装置 | |
CN116401186A (zh) | 基于axi总线的opi psram控制系统、方法 | |
CN111831227A (zh) | 一种nvme协议命令加速处理系统 | |
CN112905234B (zh) | 处理装置与其数据存取方法 | |
US8402233B2 (en) | Method and apparatus for high throughput mass storage device interface in a microprocessor for handheld systems | |
JP3765452B2 (ja) | 半導体記憶装置 | |
US10061737B2 (en) | Signal processing device, method of signal processing, storage medium, and electronic musical instrument | |
US20070094460A1 (en) | DRAM control circuit | |
JP2014071929A (ja) | Fifo回路 | |
US11342012B2 (en) | Electronic devices executing a termination operation | |
TWI764311B (zh) | 記憶體存取方法及智慧處理裝置 | |
US20210350837A1 (en) | Processing-in-memory (pim) device | |
JP2595992B2 (ja) | 電子楽器 | |
US6041015A (en) | Semiconductor type memory device having consecutive access to arbitrary memory address |
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 |