跨时钟域、格雷码、独热码、竞争冒险

1、跨时钟域方法的原因

异步时钟信号直接传输在信号跳变时违背本地时钟域的建立时间约束,保持时间约束,容易产生亚稳态。

2、跨时钟处理的两种思路

  • 对代跨时钟的信息先缓存,然后由另一时钟域接口取出 ————异步FIFO
  • 速度缓慢、可控的信号(配置信号,使能en、指示flag)我们对其进行一些处理。例如拉长持续时间,然后直接传输过去,亚稳态的问题通过同步器解决。适用于低速信号传输

3.单比特信号跨时钟

  • 边沿检测常适用于慢时钟到快时钟。要实现边沿检测,最直接的想法是用两级寄存器,第二级寄存器锁存住某个时钟上升沿到来时的输入电平,第一级寄存器锁存住下一个时钟沿到来时的输入电平,如果这两个寄存器锁存住的电平信号不同,就说明检测到了边沿,具体是上升沿还是下降沿可以通过组合逻辑来实现。

  • 对于快时钟域单电平脉冲信号跨时钟到慢时钟域常使用脉冲同步器电路,脉冲同步器在异步时钟域时钟频率彼此差距较大的场景下能节省触发器资源。 (脉冲电平检测+双触发器同步+边沿检测)

4.多比特信号跨时钟 

  1.采用格雷码
      每两个相邻编码之间只有一位是不同的,并且对于N位格雷码,当从最高位编码(对应二进制2^N -1)跳转到最低位编码(对应0)时也只会发生1bit跳转。单bit跳转意味着格雷码在通过二级同步器跨时钟时,输出不会出现不可控的中间状态,只能是正确的更新状态或者保持原来的状态。

 二进制转格雷码:从右边第一位开始依次将每一位与左边相邻的一位异或作为对应格雷码该位的值,最左边一位不变。

格雷码转二进制:从左边第二位起与起相邻的左边每一位异或作为该位值。

  • 二进制转换成格雷码: assign gray = (bin >>1)^bin;
  • 格雷码转换成二进制码:
    bin[N-1] = gray[N-1];
    for(i=0;i<(N-1);i+1)begin
    bin[i] = ^(gray[N-1:0]>>i);
    end

独热码:有多少个状态就有多少bit,而且只有1bit为1,其余为0.

2.握手协议

3.异步FIFO,   同步 FIFO 常用于同步时钟的数据缓存,异步 FIFO 常用于跨时钟域的数据信号的传递

4.DMUX

多bit为什么不能打两拍?

因为寄存器位于不同位置,布局布线后数据到下一个寄存器可能会发生延时不同造成可能采样到中间变化的任意值。

5.竞争与冒险

组合逻辑电路中,不同路径的输入信号到同一点门级电路时,在时间上有先后顺序,造成时间差,称为竞争。由于竞争存在,输出信号在一段在时间后才能达到期望状态,在过渡时间内可能会产生错误的输出,成为冒险。

解决方法:1、增加滤波电容,滤除窄波脉冲

                  2、增加冗余项

                  3、使用时钟同步电路,进行打拍延迟(3拍最好)

                  4、采用格雷码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
跨时钟域处理格雷码是指在不同时钟域之间进行格雷码的转换和处理。Verilog语言提供了一些机制来实现这样的跨时钟域处理。 首先,Verilog中可以使用时钟使能(clock enable)来控制时钟域切换时的格雷码转换。通过将格雷码生成逻辑放置在与时钟同步的时钟域中,然后通过时钟使能来控制格雷码转换的触发。例如,当时钟使能信号为高电平时,才允许进行格雷码转换。这样可以确保在不同的时钟域之间进行同步的格雷码处理。 其次,Verilog中也可以使用寄存器来存储并传递格雷码数据。在不同的时钟域之间,可以使用寄存器来进行数据的缓存和同步。通过在时钟域切换的边缘上,将新的格雷码数据写入到寄存器中,并在另一个时钟域的相应边缘上,将寄存器中的格雷码数据读取出来。这样可以确保在跨时钟域处理过程中,数据传递的正确性和可靠性。 最后,需要注意跨时钟域处理的时延问题。由于不同时钟域之间存在时钟延迟,因此需要合理的时序设计来保证跨时钟域处理的正确性。可以使用合适的时钟域切换信号和时钟域边缘触发机制,来确保时序的正确性和时延的合理性。 总而言之,通过合理的时钟使能控制、寄存器存储和时序设计,可以实现跨时钟域处理格雷码的Verilog设计。这样可以确保在不同的时钟域之间进行格雷码转换和处理的正确性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值