一种基于寄存器的多位宽数据跨时钟域访问方法.pdf

上传人:r7 文档编号:6290904 上传时间:2019-05-28 格式:PDF 页数:8 大小:399.53KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510927374.2

申请日:

2015.12.11

公开号:

CN105573932A

公开日:

2016.05.11

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 13/16申请日:20151211|||公开

IPC分类号:

G06F13/16

主分类号:

G06F13/16

申请人:

中国航空工业集团公司西安航空计算技术研究所

发明人:

王婷; 田泽; 许宏杰; 陈威宇; 曹朋朋; 马超

地址:

710065 陕西省西安市锦业二路15号

优先权:

专利代理机构:

西安智邦专利商标代理有限公司 61211

代理人:

张倩

PDF下载: PDF下载
内容摘要

本发明涉及一种基于寄存器的多位宽数据跨时钟域访问方法,通过定义寄存器A和寄存器B,包括在寄存器A和寄存器B中分别设置控制位和数据位,通过寄存器A中的控制位有效判断从设备是否空闲,可方便应用于多主操作的系统中;在主设备读取从设备数据时,通过寄存器B中的控制位判断数据位是否有效,主设备未读响应前寄存器中的控制位和数据一直保持有效,主设备可以在空闲的情况下随时获取从设备的数据,避免了对主设备资源的占用;此外通过设置寄存器A和寄存器B对于时钟跨度大的异步信号之间的数据交互仍可以通过控制位保证数据的正确性,避免访问错误或异常,具有高可靠性。

权利要求书

1.一种基于寄存器的多位宽数据跨时钟域访问方法,其特征在于,
不同时钟域的主设备和从设备通过访问寄存器A和寄存器B进行数据交
互,定义从设备地址位宽为x,从设备数据位宽为y,寄存器A的位宽大
于等于x+1;寄存器B的位宽大于等于y+1;定义寄存器A的控制位表
示从设备是否正在被访问;寄存器B的控制位表示寄存器B中数据位是
否有效;
包括以下步骤:
步骤1):主设备读寄存器A,若寄存器A控制位为零即空闲状态,
则进入步骤2,若寄存器A控制位为1即占用状态,则继续步骤1;
步骤2):主设备写寄存器A,其中,控制位写1,选择x位写入从
设备地址;
步骤3):判断主设备对从设备的操作状态:
如果是主设备对从设备是写操作,则进入步骤4);
如果是主设备对从设备是读操作,则进入步骤5);
步骤4):主设备写寄存器B,选择y位写入与步骤2中从设备地址
对应的数据,写操作结束;
步骤5):主设备读寄存器B:
当寄存器B控制位为0时,继续读寄存器B;
当寄存器B控制位为1时,选择y位即为步骤2对应从设备地址的
数据,读操作结束。
2.根据权利要求1所述的一种基于寄存器的多位宽数据跨时钟域访
问方法,其特征在于:所述控制位为最高位,选择x位为低x位,选择y
位为低y位。
3.根据权利要求1所述的一种基于寄存器的多位宽数据跨时钟域访
问方法,其特征在于:所述控制位为最低位,选择x位为高x位,选择y
位为高y位。
4.根据权利要求1或2或3所述的一种基于寄存器的多位宽数据跨
时钟域访问方法,其特征在于,步骤4)主设备对寄存器B写操作具体
为:
写开始信号wr_sta位于主设备时钟域,通过两级时钟锁存转换到从
设备时钟域,从设备收到写开始信号后锁存需要写入的从设备的地址和
数据,同时产生写响应信号wr_sta_ack,写响应信号wr_sta_ack经过两级
同步后反馈到主设备时钟域后撤销写开始信号wr_sta;
从设备收到写数据的下一个从设备时钟周期向主设备发送从设备写
完成信号sub_wr_rdy,从设备写完成信号sub_wr_rdy经同步产生主设备
时钟域的主设备写完成信号wr_rdy,主设备写完成信号wr_rdy为一个主
设备的时钟周期,主设备收到主设备写完成信号wr_rdy信号后,从设备
撤销从设备写完成信号sub_wr_rdy,同时将寄存器A最高位置零,表示
跨时钟域写操作结束。
5.根据权利要求4所述的一种基于寄存器的多位宽数据跨时钟域访
问方法,其特征在于,步骤5主设备发起对寄存器B的读操作具体为:
主设备第一次发起对寄存器B的读操作即表示对从设备的读开始;
读开始信号rd_sta位于主设备时钟域,通过两级时钟锁存转换到从
设备时钟域,从设备收到读开始信号rd_sta后,一方面锁存需读取的从
设备的数据地址,并产生读响应信号rd_sta_ack,读响应信号rd_sta_ack
经过两级同步后反馈到主设备后撤销读开始信号rd_sta;另一方面从设备
输出数据rd_data,同时输出数据有效信号,数据有效信号同步到主设备
时钟域后为主设备数据有效信号cfg_rdvld,并在主设备数据有效信号
cfg_rdvld有效时将输出数据rd_data按低位对齐赋值给寄存器B,主设备
数据有效信号cfg_rdvld为寄存器B的最高位,此时,寄存器B最高位为
1,低y位为需要读取的从设备的值;
主设备读取寄存器B中的数据位,并发送读完成信号rd_rdy,在读
完成信号rd_rdy和数据有效信号cfg_rdvld同时有效的下一个主设备时钟
周期将寄存器A最高位置零,表示跨时钟域读操作结束。

说明书

一种基于寄存器的多位宽数据跨时钟域访问方法

技术领域

本发明属于集成电路设计技术,涉及一种基于寄存器的多位宽数据
跨时钟域访问方法,特别是时钟频率差距大,可靠性要求高的情况下。

背景技术

随着集成电路规模的不断扩大,一个完整的电路中往往包含多个时
钟,时钟的不匹配经常需要经过跨时钟域处理,稍有不慎便会造成访问
出错或异常。

针对集成电路设计中经常遇到的多位宽的异步信号的跨时钟域交
互,目前主要通过对控制信号同步的方法进行多位宽的数据同步,该方
法需要额外的控制信号的同步,并需要长时间占用主设备,对于多主操
作的情况也不适用,避免异步信号交互,特别是时钟跨度大的异步信号
交互引起的访问错误或异常,提高数据访问的可靠性极为重要。

发明内容

为了解决背景技术中提及的问题,本发明提供了一种基于寄存器的
多位宽数据跨时钟域访问方法,定义中间寄存器,即使时钟跨度大或多
主操作的情况下也能正常进行多位宽异步信号之间的数据交互,避免访
问错误或异常,具有高可靠性。

本发明的技术方案是:

一种基于寄存器的多位宽数据跨时钟域访问方法,其特殊之处在于,
不同时钟域的主设备和从设备通过访问寄存器A和寄存器B进行数据交
互,定义从设备地址位宽为x,从设备数据位宽为y,寄存器A的位宽大
于等于x+1;寄存器B的位宽大于等于y+1;定义寄存器A的控制位表
示从设备是否正在被访问;寄存器B的控制位表示寄存器B中数据位是
否有效;

包括以下步骤:

步骤1):主设备读寄存器A,若寄存器A控制位为零即空闲状态,
则进入步骤2,若寄存器A控制位为1即占用状态,则继续步骤1;

步骤2):主设备写寄存器A,其中,控制位写1,选择x位写入从
设备地址;

步骤3):判断主设备对从设备的操作状态:

如果是主设备对从设备是写操作,则进入步骤4);

如果是主设备对从设备是读操作,则进入步骤5);

步骤4):主设备写寄存器B,选择y位写入与步骤2中从设备地址
对应的数据,写操作结束;

步骤5):主设备读寄存器B:

当寄存器B控制位为0时,继续读寄存器B;

当寄存器B控制位为1时,选择y位即为步骤2对应从设备地址的
数据,读操作结束。

上述控制位为最高位,选择x位为低x位,选择y位为低y位。

上述控制位为最低位,选择x位为高x位,选择y位为高y位。

步骤4)主设备对寄存器B写操作具体为:

写开始信号wr_sta位于主设备时钟域,通过两级时钟锁存转换到从
设备时钟域,从设备收到写开始信号后锁存需要写入的从设备的地址和
数据,同时产生写响应信号wr_sta_ack,写响应信号wr_sta_ack经过两级
同步后反馈到主设备时钟域后撤销写开始信号wr_sta;

从设备收到写数据的下一个从设备时钟周期向主设备发送从设备写
完成信号sub_wr_rdy,从设备写完成信号sub_wr_rdy经同步产生主设备
时钟域的主设备写完成信号wr_rdy,主设备写完成信号wr_rdy为一个主
设备的时钟周期,主设备收到主设备写完成信号wr_rdy信号后,从设备
撤销从设备写完成信号sub_wr_rdy,同时将寄存器A最高位置零,表示
跨时钟域写操作结束。

步骤5主设备发起对寄存器B的读操作具体为:

主设备第一次发起对寄存器B的读操作即表示对从设备的读开始;

读开始信号rd_sta位于主设备时钟域,通过两级时钟锁存转换到从
设备时钟域,从设备收到读开始信号rd_sta后,一方面锁存需读取的从
设备的数据地址,并产生读响应信号rd_sta_ack,读响应信号rd_sta_ack
经过两级同步后反馈到主设备后撤销读开始信号rd_sta;另一方面从设备
输出数据rd_data,同时输出数据有效信号,数据有效信号同步到主设备
时钟域后为主设备数据有效信号cfg_rdvld,并在主设备数据有效信号
cfg_rdvld有效时将输出数据rd_data按低位对齐赋值给寄存器B,主设备
数据有效信号cfg_rdvld为寄存器B的最高位,此时,寄存器B最高位为
1,低y位为需要读取的从设备的值;

主设备读取寄存器B中的数据位,并发送读完成信号rd_rdy,在读
完成信号rd_rdy和数据有效信号cfg_rdvld同时有效的下一个主设备时钟
周期将寄存器A最高位置零,表示跨时钟域读操作结束。

本发明所具有的有益效果:

1、本发明提供的一种基于寄存器的多位宽数据跨时钟域访问方法,
避免多位宽异步信号特别是时钟频率相差大的跨时钟域操作不当出现访
问错误或异常,通过控制位保证数据的正确性,具有高可靠性。

2、不同时钟域的主设备和从设备通过访问寄存器A和寄存器B来进
行跨时钟域的数据传递,包括在寄存器A和寄存器B中设置控制位和数
据位,通过寄存器A中的控制位有效判断从设备是否空闲,可方便应用
于多主操作的系统中;在主设备读取从设备数据时,通过寄存器B中的
控制位判断数据位是否有效,主设备未读响应前寄存器中的控制位和数
据一直保持有效,主设备可以在空闲的情况下随时获取从设备的数据,
避免了对主设备资源的占用。

附图说明

图1是本发明的一种基于寄存器的多位宽数据跨时钟域访问方法。

具体实施方式

下面结合附图和具体实施例对本发明的技术方案做进一步详细描
述。

针对本发明涉及的一种基于寄存器的多位宽数据跨时钟域访问方
法,本文给出了其应用在不同时钟域下主设备(寄存器访问总线)访问
从设备(子模块)寄存器上,如图1所示,定义寄存器A和寄存器B,
寄存器A与寄存器B属于寄存器访问总线时钟域(PLB总线时钟
135MHz),子模块寄存器属于子模块时钟域(音频编解码模块
12.288MHz),寄存器A和寄存器B作为入口地址,寄存器访问总线通过
访问寄存器A和寄存器B来配置或获取子模块寄存器的值,包括以下步
骤(假设子模块的寄存器地址位宽为x,寄存器数据位宽为y):

步骤1:寄存器访问总线读寄存器A,若寄存器A最高位为零,则
进入步骤2,若寄存器A最高位为1,则继续步骤1;

步骤2:寄存器访问总线写寄存器A,其中,最高位写1,低x位写
入待读写的子模块寄存器地址,如果是写子模块寄存器,则进入步骤3,
如果是读子模块寄存器,则进入步骤4;

步骤3:寄存器访问总线写寄存器B,低y位写入与步骤2中子模块
寄存器地址对应的寄存器的值;

步骤4:寄存器访问总线反复读寄存器B,当寄存器B最高位为1
时,低y为即为步骤2对应的子模块寄存器的值。

本发明提供的一种基于寄存器的多位宽数据跨时钟域访问方法应用
在不同时钟域的进行寄存器访问上,定义寄存器访问总线时钟域下的寄
存器A和寄存器B,寄存器访问总线通过对寄存器A和寄存器B的读写
操作,完成对子模块寄存器的读写。为了防止跨时钟域时信号或数据出
错,采用握手机制进行处理,规定子模块寄存器读写过程,防止数据出
错。即使时钟跨度较大情况下,寄存器访问总线时钟也能正常访问子模
块寄存器,避免访问错误或异常,具有高可靠性。

在上述实施例的基础上,优选地,所述步骤1用于判断总线时钟域
下的寄存器A和寄存器B是否空闲:寄存器A最高位为零,表示空闲;
寄存器A最高位为1,表示暂时被占用。

在上述实施例的基础上,优选地,所述步骤3寄存器访问总线对寄
存器B写操作,表示寄存器访问总线对子模块寄存器写开始;写开始信
号wr_sta位于寄存器访问总线时钟域,通过两级时钟锁存转换到子模块
时钟域,子模块收到写开始信号后锁存需要配置的子模块寄存器的地址
和数据,并产生写响应信号wr_sta_ack,wr_sta_ack经过两级同步后反馈
到寄存器访问总线时钟域后撤销wr_sta;

子模块寄存器收到写数据后向寄存器访问总线发送写完成信号
sub_wr_rdy,sub_wr_rdy经同步产生寄存器访问总线时钟域的写完成信号
wr_rdy,wr_rdy为一个寄存器访问总线时钟周期,寄存器访问总线收到
wr_rdy信号后,子模块撤销sub_wr_rdy,同时将寄存器A最高位置零,
表示本次子模块寄存器写操作结束。

在上述实施例的基础上,优选地,所述步骤4寄存器访问总线第一
次对寄存器B进行读操作即表示对子模块寄存器读开始;

读开始信号rd_sta位于寄存器访问总线时钟域,并通过两级时钟锁
存转换到子模块时钟域,子模块收到rd_sta后,一方面锁存需读取的子
模块寄存器地址,并产生读响应信号rd_sta_ack,rd_sta_ack经过两级同步
后反馈到总线时钟域后撤销rd_sta;另一方面子模块将子模块寄存器中的
数据rd_data输出,同时输出数据有效信号,数据有效信号同步到寄存器
访问总线时钟域后为cfg_rdvld,并在cfg_rdvld有效时将rd_data按低位
对齐赋值给寄存器B,cfg_rdvld为寄存器B的最高位,此时,寄存器B
最高位为1,低y位为需要读取的子模块寄存器的值;

寄存器访问总线发送读完成信号rd_rdy,在rd_rdy和读数据有效信
号cfg_rdvld同时有效的下一个时钟周期(寄存器访问总线时钟周期)将
寄存器A最高位置零,表示本次子模块寄存器读操作结束。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非
对其限制;尽管参照前述实施例对本发明进行了详细地说明,本领域的
普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案
进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替
换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。

一种基于寄存器的多位宽数据跨时钟域访问方法.pdf_第1页
第1页 / 共8页
一种基于寄存器的多位宽数据跨时钟域访问方法.pdf_第2页
第2页 / 共8页
一种基于寄存器的多位宽数据跨时钟域访问方法.pdf_第3页
第3页 / 共8页
点击查看更多>>
资源描述

《一种基于寄存器的多位宽数据跨时钟域访问方法.pdf》由会员分享,可在线阅读,更多相关《一种基于寄存器的多位宽数据跨时钟域访问方法.pdf(8页珍藏版)》请在专利查询网上搜索。

本发明涉及一种基于寄存器的多位宽数据跨时钟域访问方法,通过定义寄存器A和寄存器B,包括在寄存器A和寄存器B中分别设置控制位和数据位,通过寄存器A中的控制位有效判断从设备是否空闲,可方便应用于多主操作的系统中;在主设备读取从设备数据时,通过寄存器B中的控制位判断数据位是否有效,主设备未读响应前寄存器中的控制位和数据一直保持有效,主设备可以在空闲的情况下随时获取从设备的数据,避免了对主设备资源的占用;。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1