您的位置 首页 元件

使用半拍错位同步法消除异步电路的亚稳态

利用半拍错位同步法消除异步电路的亚稳态-当今的数字系统往往是围绕CPLD/ FPGA 进行设计的, 首选的方案是采用同步时序电路设计 , 也称作单时钟系统, 电路中所有触发器的时钟输入端共享同一个时钟, 每个触发器的状态变化都是在时钟的上升沿( 或下降沿) 完成的, 与时钟脉冲信号同步。

当今的数字体系往往是环绕CPLD/ FPGA 进行规划的, 首选的计划是选用同步时序电路规划 , 也称作单时钟体系, 电路中一切触发器的时钟输入端同享同一个时钟, 每个触发器的状况改变都是在时钟的上升沿( 或下降沿) 完结的, 与时钟脉冲信号同步。

但在实践的工程运用中, 朴实单时钟体系规划不能完结数据在不一起钟域间的传递, 跨时钟域的异步时序规划不可防止。异步时序电路中有多个独立的时钟源, 不一起钟源存在频率和相位的差异, 当数据信号经过两个时钟域的交界处时, 将会别离由这两个时钟来操控信号的值。此刻假如两时钟信号的灵敏沿十分挨近并超越了答应的额度, 则将呈现数据信号的不安稳, 即电路堕入亚稳态, 也称为同步失利。

异步电路规划的要害便是把数据或操控信号正确地进行跨时钟域传输, 一起防止亚稳态的呈现。假如对跨时钟域带来的亚稳态、采样丢掉等问题处理不妥, 将导致体系无法正常运转。

跟着信息技术的飞速发展, 航天航空、军事运用领域对数据异步传输的牢靠性提出了更高的要求, 假如不彻底消除亚稳态危险, 将或许导致灾难性的成果。

1、 亚稳态的产生

1. 1 单触发器的亚稳态

触发器是数字电路规划中最常用的根本器材, 内部包含两个双稳态元件, 其特性曲线如图1 所示。除了两个安稳状况0 和1 外, 还有一个状况也满意双稳态元件的方程,即当两个反相器都处于中心值的第3 种半安稳态—– 亚稳态, 反相器在非逻辑值规模的反应系数是相当大的, 一旦因搅扰或噪音离开了这个中心点, 就会很快地进入逻辑值规模( 稳态) 。

运用半拍错位同步法消除异步电路的亚稳态

图1:亚稳态问题

触发器作业过程中要满意数据树立( setup ) / 坚持( hold) 的时刻要求, 输入信号在时钟的上升沿前后是不答应产生改变的。关于运用上升沿触发的触发器来说,树立时刻便是在时钟上升沿到来之前, 触发器输入端数据有必要坚持安稳不变的最小时刻; 而坚持时刻是时钟上升沿到来之后, 触发器输入端数据还应该持续坚持安稳不变的最小时刻。树立( setup) / 坚持( hold) 时刻与时钟跳变沿的联系如图2 所示。

图2  setup-hold 时刻

图2 setup-hold 时刻

因为触发器内部数据的构成需求必定的时刻, 假如不满意树立和坚持时刻, 触发器将进入亚稳态, 其输出在经过一段时刻的不确认状况后才干随机地安稳到0 或1。在安稳期间, 触发器输出一些中心级电平, 或许或许处于振动状况, 而且这种无用的输出电平能够沿信号通道上的各个触发器级联传达下去, 导致其他数字部件的逻辑紊乱。

1. 2 异步时钟形成的亚稳态

信号在跨时钟域时应特别注意亚稳态问题。一个信号在过渡到另一个时钟域时, 假如仅仅用一个触发器将其存, 那么采样的成果将或许是亚稳态。图3 所示为异步时钟和亚稳态, 图中a_ck 和b_ck 为异步时钟。

图3  触发器产生亚稳态

图3 触发器产生亚稳态

信号dat 经过一个锁存器的输出数据为a_dat。用时钟b_ck 进行采样的时分, 假如a_dat 正好在b_ck 的set up??hold 时刻内产生改变, 此刻b_dat 就既不是逻辑1, 也不是逻辑0, 而是处于中心状况。输出信号处于中心状况到康复为逻辑1 或0 的这段时刻, 称为亚稳态时刻。当触发器的亚稳态时刻超越一个时钟周期时, 这种不确认状况将会影响下一级的触发器, 终究导致连锁反应使整个体系功用异常。

1. 3 下降亚稳态的现有办法

常用于下降异步电路中亚稳态产生概率的办法有:

1) 两级触发器法

两级触发器法便是在一个信号进入另一个时钟域之前, 将该信号用两个触发器接连锁存两次, 也称为双锁存器法。这样做能够防止因为异步输入信号关于本级时钟或许不满意树立坚持时刻而使本级触发器产生的亚稳态传到达后边逻辑中。理论研究标明这种规划能够将呈现亚稳态的几率下降到一个很小的程度, 但这种办法一起带来了对输入信号的一级延时。

两级触发器法在2 个异步时钟周期相差不大的状况下比较合适。在信号从快时钟域向慢时钟域过渡的时分,假如信号改变太快, 慢时钟将或许无法对该信号进行正确的采样, 导致采样失利。运用两级触发器法时, 应使原始信号坚持满意长的时刻, 以便另一个时钟域的触发器能够正确地对其采样。

2) 结绳法

针对双锁存器法在快时钟域向慢时钟域过渡中或许存在采样失效的问题, 一般选用“结绳法” 进行规划, 经过分频办法将慢时钟信号的周期增加, 经双锁存采样后再使其康复本来的时钟周期。即用“结绳” 将信号延伸, 用“同步”完成双锁存采样, 用“解绳”还原为本来的时钟, 保证另一个时钟域也能够正确采样, 而接收方用相反的流程送回呼应信号。

“结绳法”是一种安全的跨时钟域的办法, 能够处理快时钟域向慢时钟域过渡的问题, 适用的规模也很广。可是“结绳法”完成较为杂乱, 特别是其频率不高, 所以在对规划功能要求较高的场合,应该慎用。

3) 异步FIFO

在有许多的数据需求进行跨时钟域传输且对数据传输速度要求比较高的场合, 一般选用异步FIFO, 异步FIFO 即用一种时钟写入数据, 而用别的一种时钟读出数据, 其间这两个读写时钟是异步的。

4) 格雷编码法

由实践可知, 同步多个输入信号呈现亚稳态的概率远大于同步1 个异步信号的概率。因为格雷码每次只改变1位, 因而异步FIFO 的读写地址运用格雷码计数器能够有用地削减亚稳态的产生, 特别是在地址位比较多的状况下能更好地处理亚稳态的问题。

2 、外部逻辑操控办法消除亚稳态

传统的观念以为: 只需体系中有异步元件, 亚稳态便是无法防止的。

在多时钟域的异步电路体系中, 数据的树立和坚持时刻很难得到保证, 这时最好的办法是将一切非同源时钟同步化[5] , 具体措施是运用带复位端的D 触发器, 并引进一个高频时钟( 频率高于体系中的一切源时钟) , 到达使体系中一切源时钟同步的效果。依据这种思维, 本文提出一种新的办法—–半拍错位同步法!, 挑选恰当参数的逻辑器材, 便能彻底消除异步电路中的亚稳态。

2. 1 半拍错位同步法原理

半拍错位同步法的思维是: 从外部引进一高频时钟h_ck 到异步电路中, 经过必定的逻辑和时序处理, 将异步时钟a_ck 同步到高频时钟的上升沿, 一起将异步时钟b_ck同步到高频时钟h_ ck 的下降沿, 这样两个彻底独立的异步时钟经过高频时钟h_ck 同步处理后, 时刻上至少错开时钟h_ck 的半周期, 只需半周期满意原电路中触发器的树立时刻要求, 便可彻底防止亚稳态的产生。

半拍错位同步法的电路和时序波形图如图4 所示, 电路包含两个带异步复位端的D 触发器、两个信号推迟环节、两个2 输入端或门、两个3 输入端与门、1 个反相器。异步时钟a_ck 与其推迟信号a_ck_d 的或输出接触发器D_A 的数据端D 和异步复位端CLR, a_ck 和a_ck_d 的与用于选通高频时钟h_ck 进入触发器D_A 的时钟端CP( 要求推迟时刻大于触发器D_A 的树立时刻) 。

图4  半拍错位同步法的电路和时序波形图

图4 半拍错位同步法的电路和时序波形图

时序如下:

1) a_ck= 0 时, 触发器复位端CLR 有用, a_ck_o= 0;

2) 上升沿往后, a_ck= 1 安稳效果在数据端D, 经推迟环节a_d 的恰当延时后, a_ck 和a_ck_d 一起为1, 高频时钟h_ck 进入触发器D_A 的时钟端CP;

3) 高频时钟h_ ck 的上升沿将数据端D 的数据1 锁存, 使输出端a_ck_o= 1, a_ck_o 与h_ck 的上升沿同步;

4) a_ck 下降沿后a_ck= 0, 与门a_and 输出0, 即触发器D_A 的时钟端CP 坚持0, a_ck_o= 1;

5) a_ck 延时信号a_ck_d 下降沿后, 或门a_or 输出0,触发器复位使a_ck_o= 0。

异步时钟b_ck 的时序状况与a_ck 相似, 仅有不同的是h_ck 的反相信号经b_ck 和b_ck_d 的与选通后进入D_B 的时钟端, b_ck_o 与h_ck 的下降沿同步。

由图4 可见, 设信号a_ck 和b_ck 别离在极为挨近的时刻1 和2 向上跳变, 其相应输出a_ck_o 和b _ck_o 的上升沿别离处于时刻3 和4, 时刻上错开了高频时钟的半周期, 同样在时刻5 简直一起升上跳的信号a_ck 和b_ck, 输出a_ck_o 和b_ck_o 的上升沿别离处于时刻7 和6, 也在时刻上错开了高频时钟的半周期。因而, 经过上部电路的处理后, 本来时刻上彻底独立的信号a_ ck 和b_ck 变成了时刻上有一最小固定距离的信号a_ck_o 和b_ck_o。

为了叙说便利, 规则电路中参数的符号表明为: 推迟环节的推迟时刻为T d, 高频时钟h_ck 的周期为T hck, 同步电路中D 触发器的树立时刻为信号T set, 坚持时刻为信号T hold , a_ck 和b_ck 的高电平宽度为T H , 依据上述表明, 依据半拍错位同步法的时序要求, 对电路的相关参数挑选准则总结如下:

1) T hck》 T of f, T of f表明后边电路中对异步时钟信号的时刻别离或数据树立时刻要求, 高频时钟应在满意此条件基础上取较高的频率;

2) T d》 T s , 保证D 触发器的数据树立时刻满意要求;

3) T H+ T d》 T set + T hold ;

4) T H》 T d+ 2 # T hck。

2. 2 半拍错位同步法的运用

2. 2. 1 在异步触发电路中的运用

以图3( a) 电路为例阐明半拍错位同步法在异步触发电路中的运用, 将半拍错位同步电路串行接入图3 的异步触发电路, 给同步电路引进一高频时钟h _ck, 图3( a) 电路中的a_ck 和b_ck 接同步电路的相应触发器, dat 衔接联系不变, 同步电路输出a_ck_ o 和b _ck_ o 别离替代a_ck 和

b_ck接入原电路相应方位, 由2. 1 末节的剖析知, 给原电路串入半拍错位同步电路后, 因为a_ck_o 和b_ck_o 在时刻上错开半个h_ck 周期, 这以后的触发电路中不会再产生亚稳态。

2. 2. 2 在异步FIFO 中的运用

异步FIFO( First In First Out ) 为多时钟域体系异步时钟间接口规划供给了一种简洁、方便的处理计划, 在网络接口、图画处理等方面, 得到了广泛的运用。

异步FIFO 是跨时钟域规划办法的集中表现, 表现了许多的办法。其间最重要的有两点, 一个是亚稳态, 另一个便是和亚稳态相似但不相同的——多个操控/ 状况信号的跨时钟传递。关于异步FIFO, 选用格雷码进行读写地址计数, 每次只改变1 个位, 大大减小了亚稳态产生的概率。因为异步FIFO 的读写信号归于不同的时刻域, 因而set up/ hold 抵触和亚稳态的产生是必定的, 数据的丢掉概率不为零。

异步FIFO 产生亚稳态的原因是读写信号归于不同的时刻域, 没有确认的时刻联系, 因而只需经过恰当的外部逻辑将读写信号在时刻上产生距离, 就能消除亚稳态, 处理异步FIFO 丢掉数据问题。将半拍错位同步法用于异步FIFO 的读写信号操控的电路如图5 所示, 图中虚线框内是半拍错位同步电路。给同步电路引进高频时钟h_ck, 外部独立的读R# 和写W# 信号接在虚线框内的同步器上,

同步电路的输出R_O 和W_O 接FIFO 的读写管脚, 由2. 1末节的剖析知, 给原电路串入半拍错位同步电路后, 因为R_O和W_O 在时刻上至少错开半个h_ck 周期, 因而这以后的异步FIFO 中不会产生亚稳态形成数据丢掉。

图5  半拍错位同步法在异步FIFO 中运用

图5 半拍错位同步法在异步FIFO 中运用

图5 所示的电路是对异步FIFO 外加操控逻辑消除亚稳态。半拍错位同步法也可用于由异步FIFO 的FPGA 规划中。

3、 定论

亚稳态是异步电路和异步FIFO 规划中的常见问题,将异步信号同步化的几种常用办法虽能大大将下降亚稳态产生的概率, 但无法 铲除! 亚稳态的产生。本文提出的半拍错位同步法!, 经过附加的带异步复位端的D 触发器和高频时钟, 将异步时钟别离同步到高频时钟的上升沿和下降沿, 使得过于挨近的异步时钟在时刻上摆开必定的距离, 只需挑选恰当的推迟时刻和高频时钟, 便能彻底消除亚稳态的产生, 在航天航空、军事等对要求高牢靠数据传递的运用领域具有宽广的运用远景。

责任编辑:gt

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/yuanjian/338336.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部