CN101136246A - 一种基于双口ram实现数据速率转换的装置和方法 - Google Patents
一种基于双口ram实现数据速率转换的装置和方法 Download PDFInfo
- Publication number
- CN101136246A CN101136246A CNA2006101455809A CN200610145580A CN101136246A CN 101136246 A CN101136246 A CN 101136246A CN A2006101455809 A CNA2006101455809 A CN A2006101455809A CN 200610145580 A CN200610145580 A CN 200610145580A CN 101136246 A CN101136246 A CN 101136246A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- pointer
- write
- dual port
- 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
Images
Landscapes
- Static Random-Access Memory (AREA)
Abstract
本发明公开了一种基于双口RAM实现数据速率转换的装置和方法,所述装置包括:双口RAM、读指针控制器、写指针控制器、读写指针冲突检测器、数据填充模块、数据筛选模块;双口RAM用来实现数据的暂存以及数据的速率和位宽的转换;写指针控制器主要负责写指针的管理;读指针控制器主要负责读指针的管理;读写指针冲突检测器主要负责读写指针的冲突检测,它根据写指针和读指针的关系,给出冲突指示信号给读指针控制器和写指针控制器;数据填充模块主要负责输入数据的填充处理,将数据变成双口RAM输入位宽的数据;数据筛选模块主要负责输出数据的筛选处理,将数据变成后续处理需要的数据。本发明提高了数据速率转换的适应能力和稳定性。
Description
技术领域
本发明涉及电路设计领域数据速率转换技术,尤其涉及一种基于双口RAM(Random AccessMemory,随机存取存储器)实现数据速率转换的装置和方法。
背景技术
在当前的通信系统的电路设计中,数据之间的速率转换应用很多,现有技术大多采用多个时钟周期的缓存再分配来实现转换。以48M速率16位数据转32M速率24位数据为例,比较常见的办法是用将3个48M时钟周期的16位并行数据缓存凑成一个48位宽的16M的数据,然后再用32M的时钟对其进行两次采样得到32M速率24位宽的数据,这样来实现数据速率转换。但是这种方法存在如下的缺点:第一、这种处理涉及到跨时钟域的数据采样,对读写两路时钟的相位关系要求很高;第二、需要设计时对时序做严格约束,才能保证电路正常工作;第三、如果两路时钟的频率无整数倍关系,数据缓存设计比较繁琐,甚至有时无法实现。
发明内容
因此本发明的目的在于提供一种基于双口RAM实现数据速率转换的装置和方法,本发明能够解决现有技术中存在的异步时钟域、数据缓存设计等问题,提高数据速率转换的适应能力和稳定性。
本发明具体是这样实现的:
1、一种基于双口RAM实现数据速率转换的装置,包括:一个双口RAM、一个读指针控制器、一个写指针控制器、一个读写指针冲突检测器、一个数据填充模块、一个数据筛选模块;双口RAM用来实现数据的暂存以及数据的速率和位宽的转换;写指针控制器主要负责写指针的管理,它根据写入和读出数据的映射关系,给出双口RAM的写指针,并根据读写指针冲突检测器给出的信号,进行指针调整;读指针控制器主要负责读指针的管理,它根据写入和读出数据的映射关系,给出双口RAM的读指针,并根据读写指针冲突检测器给出的信号,进行指针调整;读写指针冲突检测器主要负责读写指针的冲突检测,它根据写指针和读指针的关系,给出冲突指示信号给读指针控制器和写指针控制器;数据填充模块主要负责输入数据的填充处理,将数据变成双口RAM输入位宽的数据;数据筛选模块主要负责输出数据的筛选处理,将数据变成后续处理需要的数据。
2、如1所述的实现数据速率转换的装置,对于双口RAM,当读写端口的位宽不一致的时候,读写的地址和数据存在如下映射关系:
设写入的数据位宽为Wid0,读出的数据位宽为Wid1;设写入数据地址Add0的第N0(0≤N0<Wid0)bit对应读出数据地址Add1的第N1bit,则
N1=(Add0×Wid0+N0)mod Wid1;
双口RAM利用以上的映射关系实现数据的速率和位宽的转换。
3、如1所述的实现数据速率转换的装置,双口RAM的规格根据以下两个参数确定:读写时钟的时钟频率和读写数据的信号位宽。
4、如1所述的实现数据速率转换的装置,当读写指针地址相同或者相邻的时候,读写指针冲突检测器判定为冲突,自动调整读写地址到错开的位置,避免读写指针对同一个地址进行操作。
5、如1至4中任意一项所述的实现数据速率转换的装置,数据填充模块将输入数据增加空位变成双口RAM输入位宽的数据;数据筛选模块将读出数据中的无用位直接丢掉,选出有用的数据供后续处理。
6、一种基于双口RAM实现数据速率转换的方法,包括如下步骤:
6-1、数据写入双口RAM的处理:首先将输入数据进行数据填充处理,将数据变成双口RAM输入位宽的数据;然后根据写入和读出数据的映射关系,给出双口RAM的写指针;根据写指针的地址将数据写入到双口RAM中,写指针的地址会根据读写指针冲突检测的结果进行调整;数据在双口RAM中实现速率和位宽的转换;
6-2、数据读出双口RAM的处理:首先根据写入和读出数据的映射关系,给出双口RAM的读指针;经过速率和位宽的转换的数据根据读指针的地址从双口RAM中读出,读指针的地址会根据读写指针冲突检测的结果进行调整;最后将读出的数据进行数据筛选处理,将数据变成后续处理需要的数据。
7、如6所述的实现数据速率转换的方法,对于双口RAM,当读写端口的位宽不一致的时候,读写的地址和数据存在如下映射关系:
设写入的数据位宽为Wid0,读出的数据位宽为Wid1;设写入数据地址Add0的第N0(0≤N0<Wid0)bit对应读出数据地址Add1的第N1bit,则
N1=(Add0×Wid0+N0)mod Wid1;
双口RAM利用以上的映射关系实现数据的速率和位宽的转换。
8、如6所述的实现数据速率转换的方法,双口RAM的规格根据以下两个参数确定:读写时钟的时钟频率和读写数据的信号位宽。
9、如6所述的实现数据速率转换的方法,当读写指针地址相同或者相邻的时候,读写指针冲突检测判定为冲突,自动调整读写地址到错开的位置,避免读写指针对同一个地址进行操作。
10、如6至9中任意一项所述的实现数据速率转换的方法,数据填充处理将输入数据增加空位变成双口RAM输入位宽的数据;数据筛选处理将读出数据中的无用位直接丢掉,选出有用的数据供后续处理。
由于采用了上述方案,本发明与现有技术相比,具有以下优点:
本发明有效地利用了双口RAM的读写地址和数据之间存在一定的映射关系的特点,加上合理的指针控制和数据转换,解决了现有数据速率转换技术中存在的异步时钟域和时序要求严格等问题;本发明对转换前后的时钟频率有很好的适应性,是一种灵活、通用的技术;本发明提高了数据速率转换的适应能力和稳定性。
附图说明
图1是双口RAM的数据地址映射关系示意图;
图2是本发明的装置结构示意图;
图3是本发明的方法工作流程图。
具体实施方式
以下结合附图对本发明的具体实施作进一步的说明:
本发明的基于双口RAM实现数据速率转换的装置包括:一个双口RAM、一个读指针控制器、一个写指针控制器、一个读写指针冲突检测器、一个数据填充模块、一个数据筛选模块。
上述模块划分仅仅是从功能上进行划分,在实际应用中有可能略有不同。如:双口RAM可以是独立的RAM器件也可以是逻辑器件内部的RAM;其他的模块,如果是用CPU处理,这几个模块可以是几个子函数,如果是用FPGA(Field Programmable Gate Array,现场可编程门阵列)处理,这几个模块可以是几个进程。
双口RAM是数据转换的主体,用来实现数据的暂存以及数据的速率和位宽的转换;写指针控制器主要负责写指针的管理,它根据写入和读出数据的映射关系,给出双口RAM的写指针,并根据读写指针冲突检测器给出的信息,进行指针调整;读指针控制器主要负责读指针的管理,它根据写入和读出数据的映射关系,给出双口RAM的读指针,并根据读写指针冲突检测器给出的信息,进行指针调整;读写指针冲突检测器主要负责读写指针的冲突检测,它根据写指针和读指针的关系,给出冲突指示信号给读指针控制器和写指针控制器;数据填充模块主要负责输入数据的填充处理,将数据变成双口RAM输入位宽的数据;数据筛选模块主要负责输出数据的筛选处理,将数据变成后续处理需要的数据。
本发明的基于双口RAM实现数据速率转换的方法包括以下步骤:
1、数据写入双口RAM的处理:首先将数据进行数据填充处理,然后根据写指针控制器的地址将数据写入到双口RAM中;写指针控制器的地址会根据读写指针冲突检测的结果进行调整。
这里,数据填充处理,将数据变成双口RAM输入位宽的数据,双口RAM的位宽一般为特定规格的,如8bit,16bit,32bit等;写指针控制器一般情况下按照读写数据的映射关系,循环给出写指针将数据写入到双口RAM中;如果读写指针相等或者相邻,读写指针冲突检测器会检测到指针冲突,给出指针调整信号,写指针控制器根据该信号将写指针调整到特定位置,特定位置预先设置好,可以保证读写指针严格错开。
2、数据读出双口RAM的处理:首先根据读指针控制器的地址将双口RAM中的数据读出;读指针控制器的地址会根据读写指针冲突检测的结果进行调整;然后将读出的数据进行数据筛选处理,将数据变成后续处理需要的数据。
如果出现读写数据冲突,读写指针冲突检测器会给出指针调整信号,读指针控制器根据该信号将读指针调整到特定位置,保证读写指针错开。
以下是本发明的实施实例:
对于双口RAM(Double Port Random Memory,简称DPRAM)当读写端口的位宽不一致的时候,读写的地址和数据存在一定的映射关系。如图1所示一般的情况,设写入的数据位宽为Wid0,读出的数据位宽为Wid1;设写入数据地址Add0的第NO(0≤N0<Wid0)bit对应读出数据地址Add1的第N1bit,则
N1=(Add0×Wid0+N0)mod Wid1
利用以上的映射关系,我们可以利用双口RAM非常方便的实现数据数率的转换。例如:当设写入数据位宽为16bit,读出的数据位宽为64bit时,写入和读出的地址数据对应关系如图1所示,从图中可以看到:写入数据地址4的第3比特对应读出数据地址的第(4×64+3)mod 64=3比特。
如图2所示,本发明的装置包括一个双口RAM主体207,双口RAM的规格是根据实际应用需求确定的。选择双口RAM(可以是独立的,也可以是器件内部的)主要考虑两个参数:时钟频率和信号位宽,读写数据之间会有如图1描述的确定的映射关系;通过写入数据201和读出数据205不同位宽的设计和不同频率的读写时钟,来实现双口RAM的速率转换工作;为了实现双口RAM工作的长期性,RAM的深度选择要保证一次循环的读写数据量一致, 从可靠性来讲,深度越大越可靠,但是带来的转换延迟可能也变大,因此深度选择时要综合考虑。
本发明的装置还包括写指针控制器202、读指针控制器204和读写指针冲突检测器203,实现了地址控制系统。写指针控制器202、读指针控制器204根据上面确定的地址映射关系,完成读写地址的产生,控制双口RAM的读写;如果写入或者读出数据是时隙有效的,根据分时的关系进行指针的分时控制;读写指针冲突检测器203根据读写地址的关系,进行冲突检测,当读写指针地址相同或者相邻的时候,判定为冲突,自动调整读写地址到错开的位置,避免读写指针对同一个地址进行操作。
本发明的装置还包括数据填充模块210和数据筛选模块206,上述数据处理模块完成数据的整理。因为双口RAM输入输出数据的位宽是固定规格的,不一定所有的输入位宽和输出位宽都符合规格,需要根据实际双口RAM的应用对数据进行填充和筛选。数据填充模块210负责将输入数据208增加空位变成双口RAM的标准位宽的写入数据201,方便后面的双口RAM处理;数据筛选模块206负责从读出数据205到输出数据209的筛选,将无用位直接丢掉,有用的数据位选出后送给后续模块使用。
如图3所示,本发明的方法包括数据写入双口RAM的处理和数据读出双口RAM的处理。
数据写入双口RAM的处理流程包括:步骤311、输入数据;步骤301、进行输入数据填充处理;步骤302、根据读写指针冲突判断输出的结果;步骤303、如果读写指针没有冲突,则进行正常写指针控制;步骤304,如果读写指针冲突,将写指针调整到特定位置;步骤305,将数据写入双口RAM。
数据读出双口RAM的处理流程包括:步骤302、判断读写指针是否冲突;步骤306、如果读写指针没有冲突,则进行正常读指针控制;步骤307、如果读写指针冲突,则将读指针调整到特定位置;步骤308、将数据读出双口RAM;步骤309、对读出数据进行筛选;步骤312、输出数据,供后端处理直接使用。
Claims (10)
1.一种基于双口RAM实现数据速率转换的装置,包括:一个双口RAM、一个读指针控制器、一个写指针控制器、一个读写指针冲突检测器、一个数据填充模块、一个数据筛选模块;
双口RAM用来实现数据的暂存以及数据的速率和位宽的转换;写指针控制器主要负责写指针的管理,它根据写入和读出数据的映射关系,给出双口RAM的写指针,并根据读写指针冲突检测器给出的信号,进行指针调整;读指针控制器主要负责读指针的管理,它根据写入和读出数据的映射关系,给出双口RAM的读指针,并根据读写指针冲突检测器给出的信号,进行指针调整;读写指针冲突检测器主要负责读写指针的冲突检测,它根据写指针和读指针的关系,给出冲突指示信号给读指针控制器和写指针控制器;数据填充模块主要负责输入数据的填充处理,将数据变成双口RAM输入位宽的数据;数据筛选模块主要负责输出数据的筛选处理,将数据变成后续处理需要的数据。
3.如权利要求1所述的实现数据速率转换的装置,其特征在于,双口RAM的规格根据以下两个参数确定:读写时钟的时钟频率和读写数据的信号位宽。
4.如权利要求1所述的实现数据速率转换的装置,其特征在于,当读写指针地址相同或者相邻的时候,读写指针冲突检测器判定为冲突,自动调整读写地址到错开的位置,避免读写指针对同一个地址进行操作。
5.如权利要求1至4中任意一项所述的实现数据速率转换的装置,其特征在于,数据填充模块将输入数据增加空位变成双口RAM输入位宽的数据;数据筛选模块将读出数据中的无用位直接丢掉,选出有用的数据供后续处理。
6.一种基于双口RAM实现数据速率转换的方法,包括如下步骤:
6-1、数据写入双口RAM的处理:首先将输入数据进行数据填充处理,将数据变成双口RAM输入位宽的数据;然后根据写入和读出数据的映射关系,给出双口RAM的写指针;根据写指针的地址将数据写入到双口RAM中,写指针的地址会根据读写指针冲突检测的结果进行调整;数据在双口RAM中实现速率和位宽的转换;
6-2、数据读出双口RAM的处理:首先根据写入和读出数据的映射关系,给出双口RAM的读指针;经过速率和位宽的转换的数据根据读指针的地址从双口RAM中读出,读指针的地址会根据读写指针冲突检测的结果进行调整;最后将读出的数据进行数据筛选处理,将数据变成后续处理需要的数据。
8.如权利要求6所述的实现数据速率转换的方法,其特征在于,双口RAM的规格根据以下两个参数确定:读写时钟的时钟频率和读写数据的信号位宽。
9.如权利要求6所述的实现数据速率转换的方法,其特征在于,当读写指针地址相同或者相邻的时候,读写指针冲突检测判定为冲突,自动调整读写地址到错开的位置,避免读写指针对同一个地址进行操作。
10.如权利要求6至9中任意一项所述的实现数据速率转换的方法,其特征在于,数据填充处理将输入数据增加空位变成双口RAM输入位宽的数据;数据筛选处理将读出数据中的无用位直接丢掉,选出有用的数据供后续处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101455809A CN100543873C (zh) | 2006-11-23 | 2006-11-23 | 一种基于双口ram实现数据速率转换的装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101455809A CN100543873C (zh) | 2006-11-23 | 2006-11-23 | 一种基于双口ram实现数据速率转换的装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101136246A true CN101136246A (zh) | 2008-03-05 |
CN100543873C CN100543873C (zh) | 2009-09-23 |
Family
ID=39160277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101455809A Expired - Fee Related CN100543873C (zh) | 2006-11-23 | 2006-11-23 | 一种基于双口ram实现数据速率转换的装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100543873C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043590A (zh) * | 2010-11-26 | 2011-05-04 | 北京北方烽火科技有限公司 | 一种dpram访问控制系统 |
CN102915281A (zh) * | 2012-09-12 | 2013-02-06 | 北京空间飞行器总体设计部 | 一种高可靠的航天器帧格式数据队列缓存系统及缓存方法 |
CN105553545A (zh) * | 2015-12-11 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种fc数据采集记录仪记录条件控制策略 |
CN106126369A (zh) * | 2015-05-07 | 2016-11-16 | 爱思开海力士有限公司 | 存储模块、存储模块的模块控制器及存储模块的操作方法 |
CN106227681A (zh) * | 2016-06-15 | 2016-12-14 | 北京和信瑞通电力技术股份有限公司 | 一种新型防冲突的双口ram访问方法 |
CN109002409A (zh) * | 2017-06-07 | 2018-12-14 | 深圳市中兴微电子技术有限公司 | 一种位宽变换装置及方法 |
CN111708483A (zh) * | 2020-05-13 | 2020-09-25 | 北京无线电计量测试研究所 | 一种信号延时方法和装置 |
CN114153763A (zh) * | 2021-11-09 | 2022-03-08 | 中国船舶重工集团公司第七一五研究所 | 一种高带宽低延时算法处理的fpga硬件实现方法 |
-
2006
- 2006-11-23 CN CNB2006101455809A patent/CN100543873C/zh not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043590A (zh) * | 2010-11-26 | 2011-05-04 | 北京北方烽火科技有限公司 | 一种dpram访问控制系统 |
CN102043590B (zh) * | 2010-11-26 | 2012-12-19 | 北京北方烽火科技有限公司 | 一种dpram访问控制系统 |
CN102915281A (zh) * | 2012-09-12 | 2013-02-06 | 北京空间飞行器总体设计部 | 一种高可靠的航天器帧格式数据队列缓存系统及缓存方法 |
CN102915281B (zh) * | 2012-09-12 | 2015-07-08 | 北京空间飞行器总体设计部 | 一种高可靠的航天器帧格式数据队列缓存系统及缓存方法 |
CN106126369A (zh) * | 2015-05-07 | 2016-11-16 | 爱思开海力士有限公司 | 存储模块、存储模块的模块控制器及存储模块的操作方法 |
CN106126369B (zh) * | 2015-05-07 | 2020-11-20 | 爱思开海力士有限公司 | 存储模块、存储模块的模块控制器及存储模块的操作方法 |
CN105553545A (zh) * | 2015-12-11 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种fc数据采集记录仪记录条件控制策略 |
CN106227681A (zh) * | 2016-06-15 | 2016-12-14 | 北京和信瑞通电力技术股份有限公司 | 一种新型防冲突的双口ram访问方法 |
CN109002409A (zh) * | 2017-06-07 | 2018-12-14 | 深圳市中兴微电子技术有限公司 | 一种位宽变换装置及方法 |
CN111708483A (zh) * | 2020-05-13 | 2020-09-25 | 北京无线电计量测试研究所 | 一种信号延时方法和装置 |
CN111708483B (zh) * | 2020-05-13 | 2023-07-25 | 北京无线电计量测试研究所 | 一种信号延时方法和装置 |
CN114153763A (zh) * | 2021-11-09 | 2022-03-08 | 中国船舶重工集团公司第七一五研究所 | 一种高带宽低延时算法处理的fpga硬件实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100543873C (zh) | 2009-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101136246A (zh) | 一种基于双口ram实现数据速率转换的装置和方法 | |
US9323457B2 (en) | Memory arrangement for implementation of high-throughput key-value stores | |
US8489907B2 (en) | Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller | |
CN102023942B (zh) | Spi外设访问装置及方法 | |
US8521945B2 (en) | Portable data storage using SLC and MLC flash memory | |
CN103559146B (zh) | 一种提高NAND flash控制器读写速度的方法 | |
US7818527B2 (en) | Wrapper circuit and method for interfacing between non-muxed type memory controller and muxed type memory | |
CN106681654B (zh) | 映射表载入方法与存储器存储装置 | |
KR101431205B1 (ko) | 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법 | |
WO2007134319A3 (en) | Multi-chip package for a flash memory | |
WO2003079662A9 (en) | System and method for translation of sdram and ddr signals | |
US10564858B2 (en) | Data storage device with selective connection to non-volatile memories | |
US11693802B2 (en) | NAND switch | |
CN112035381A (zh) | 一种存储系统及存储数据处理方法 | |
CN105468569A (zh) | 一种包含大容量非易失性存储器的嵌入式系统 | |
CN102214482A (zh) | 高速大容量固态电子记录器 | |
CN112540953A (zh) | 基于fpga和mcu实现的片上系统 | |
CN113281610A (zh) | 一种电力行波故障测距系统 | |
CN102497575B (zh) | 一种多片面阵ccd的筛选测试系统 | |
CN107329929B (zh) | 一种基于SoC FPGA的数据传输系统及数据传输方法 | |
CN116450552A (zh) | 基于i2c总线异步批量读写寄存器的方法及系统 | |
EP3049942B1 (en) | Mapping memory controller connectors to memory connectors | |
CN106649137A (zh) | 一种Nand Flash坏块管理方法、装置及存储器 | |
CN113778907A (zh) | 存储设备 | |
CN105630400A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090923 Termination date: 20151123 |