跨时钟域电路设计——亚稳态及双锁存器

一、同步电路

定义:电路中所有受时钟控制的单元,全部由一个统一的时钟控制。

优点:在同步设计中,EDA工具可以保证电路系统的时序收敛,避免电路设计中的竞争冒险。

缺点:时钟树综合需要加入大量延迟单元,使电路面积和功耗大大增加。

 

二、异步电路

定义:电路数据传输可以在任一时刻发生,没有一个统一的时钟控制。

优点:模块化特点突出,对信号延迟不敏感,没有时钟偏斜问题,低功耗的特性

缺点:设计复杂,缺少相应EDA工具支持

 

同步电路和异步电路的区别在于电路触发是否与驱动时钟同步,从行为上讲,就是所有电路是否在同一时钟沿下同步地处理数据。(《XilinxFPGA设计权威指南》P86~P91 )

即所说的同一个时钟域或不同时钟域,主要是针对时钟源点来区分的。比如有好几个时钟,都是从一个PLL出来的,那这些时钟的相位和倍数都是可控的,我们认为它们之间是同步时钟。

目前大多大规模ASIC和SOC中,都采用全局异步,局部同步的方法。

 

三、方案概述

 

 

四、亚稳态

定义:触发器无法在规定时间内达到一个可确认的状态。

  

无法预测输出的电平,也无法预测何时输出才能稳定。

亚稳态无法从根本上消除,但可以采取一定的措施使其造成的影响降低。

 

五、快慢转换

 

六、双锁存器

实际上为两个触发器。在一个信号进入另一个时钟域之前,用两个锁存器连续锁存两次。

优点:结构简单,易实现,面积消耗小。

缺点:增加两级触发器延时。从快时钟域到慢时钟域,易采样丢失。

适用场景:慢时钟域转到快时钟域。data_delta>clk_slow+2*clk_fast+path_delay,确保所有数据变化均能采集到。

结论:两级触发器已经将MTBF变得足够大,再多触发器影响电路效率。增加寄存器同步的方法为降低亚稳态出现的概率。

verilog代码如下:

 

六、跨时钟域电路设计参考书目

1.SOC设计方法与实现(第三版)郭炜等.

2.FPGA深度解析 樊继明,陆锦宏. 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux setsockopt详解

1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddrTRUE; setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL)); 2. 如果要已经处于连接状态的soket在调用closes…

[TOOLS] 移动端调试进行时 - whistle

1、本地安装、启动whistle 安装实操请查看官方文档不赘述 复制代码 2、手机设置代理 实操请查看官方文档 !!!注意:代理ip填写whistle右上角online选项中的ip 复制代码 3、whistle上设置对应rules、weinre whistle设置代理(!!!注意支持tunnel协议): rules…

函数动态参数实现format

变量赋值一种是字符串格式化,一种是通过format的方式 1.字符串格式化 s"i am %s,age %d"%(Jasper,23)print(s)打印输出:i am Jasper,age 232.format格式化 s"i am {name},age {age}".format(namejasper,age23)print(s)或 s2"i …

跨时钟域电路设计——单bit信号

前面提到了简单的双电平锁存器,下面是一些单bit同步电路。 一、慢时钟域向快时钟域 边沿检测同步器 将慢时钟域的脉冲搬移并缩小为快时钟域的脉冲。 既可以检测上升沿,也可以检测下降沿。 如上图,慢时钟下一个有效脉冲的最短周期为慢时钟的…

数据同步 rsync+notify架构

rsync 同步命令,非常好用 notify是监控本地文件的变化的 、安装配置 1. 安装rsync,inotify-tools sudo apt-get install rsync inotify-tools 2. 拷贝rsync配置文件 mkdir /etc/rsync cp /usr/share/doc/rsync/examples/rsyncd.conf /etc/rsync/ 3. 服…

OC_KVC与KVO简单介绍

KVC KVC概述 KVC 即 Key-value coding 键值编码,是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值。 KVC案例 interface Person : NSObjectproperty (nonatomic,assign) int age; property (nonatomic,copy)…

C语言100例01 PHP版(练习)

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 代码: 1 for($i1;$i&l…

嵌入式根文件系统制作

1:文件系统分类: 基于flash的文件系统:flash有两种,一种是NOR,另一种NAND。NOR型 FLASH主要用于存放程序。NAND型 FLASH主要用于存放数据。NOR的特点是可在芯片内执行。这样应用程序可以直接在flash内存内运行,不必再把代码读到…

跨时钟域电路设计——结绳法

信号从快时钟域到慢时钟域过渡时,慢时钟可能无法对快时钟变化太快的信号进行采样。 之前的同步器法对两个时钟间的关系有要求,结绳法适用于任何时钟域之间的过渡。 结绳法的原理是将快时钟信号的脉冲周期延长,等到慢时钟周期采样后再“解绳”…

我之理解---计时器setTimeout 和clearTimeout

今天在写个图片切换的问题 有动画滞后的问题,才动手去查setTimeout 和clearTimeout。之前写的图片播放器也有类似的问题,有自动start按钮 和stop按钮, 其他都正常,问题出在每次多次快速的点击start按钮时,图片播放的速…

002服务提供者Eureka

1、POM配置 和普通Spring Boot工程相比&#xff0c;仅仅添加了Eureka、Spring Boot Starter Actuator依赖和Spring Cloud依赖管理 <dependencies><!--添加Eureka Server依赖--><dependency><groupId>org.springframework.cloud</groupId><art…

使用Busybox构造cramfs根文件系统

使用Busybox构造cramfs根文件系统 11.1、下载Busybox&#xff0c;如果系统中没有mkcramfs工具则还要下载mkcramfs压缩工具。本文件系统使用Busybox-1.10.1&#xff0c;cramfs-1.1。压缩文件Busybox-1.10.1.tar.bz2&#xff0c;cramfs-1.1.tar.gz。 22.解压文件&#xff1a; tar…

关于二维码分块上色(彩色二维码)的算法研究

原文:关于二维码分块上色&#xff08;彩色二维码&#xff09;的算法研究众所周知&#xff0c;二维码通常是黑白的&#xff0c;而且是由若干个长方形或正方形小块平铺而成。但从人们的审美角度来看&#xff0c;常见的黑白二维码不免让人审美疲劳。本文试着从分块上色的角度对二维…

20145309信息安全系统设计基础第12周学习总结后篇

指针与声明 声明 1、C语言中变量的声明 类型&#xff08;type&#xff09; 声明符&#xff08;declarator&#xff09; 2、最简单的声明是变量 3、指针数组 指针数组是一个数组数组里的元素都是指针例&#xff1a;int *daytab[13]4、数组指针 数组指针是一个指针指针指向一个类…

跨时钟域电路设计——多bit信号FIFO

多个bit信号的跨时钟域仅仅通过简单的同步器同步时不安全的。 如下图&#xff1a; 虽然信号都同步到目的时钟域&#xff0c;可完成的功能却与设计的初衷不相符。 解决方案之一为对信号进行格雷码编码&#xff0c;但此方案只适用于连续变化的信号。另一种方案为增加新的控制信号…

嵌入式linux系统中设备驱动程序

嵌入式linux系统中设备驱动程序是内核的一部分&#xff0c;完成对设备初始、读写操作和控制等功能。驱动程序隐藏了硬件设备的具体细节&#xff0c;对不同的设备提供一致的接口&#xff0c;这些接口通过file_Operation结构来定义&#xff0c;设计驱动程序的大部分工作就是根据硬…

WPF 打印实例

原文:WPF 打印实例在WPF 中可以通过PrintDialog 类方便的实现应用程序打印功能&#xff0c;本文将使用一个简单实例进行演示。首先在VS中编辑一个图形&#xff08;如下图所示&#xff09;。 将需要打印的内容放入同一个<Canvas>中&#xff0c;并起名为“printArea”&…

mongodb 物理删除数据

刚开始用mongodb的时候&#xff0c;感觉很好用&#xff0c;速度很快&#xff0c;不过后面就遇到一个问题&#xff0c;数据物理内存一直增加&#xff0c;删除表也不管用。 然后网上找了各种办法&#xff0c;最后发现一个办法管用&#xff0c;就是物理删除存储数据。 操作如下&am…

计数排序、桶排序和基数排序

计数排序 当输入的元素是 n 个 0 到 k 之间的整数时&#xff0c;它的运行时间是 Θ(n k)。计数排序不是比较排序&#xff0c;排序的速度快于任何比较排序算法。 由于用来计数的数组C的长度取决于待排序数组中数据的范围&#xff08;等于待排序数组的最大值与最小值的差加上1&a…

静态时序分析——基础概念

一、简述 静态时序分析是检查系统时序是否满足要求的主要手段。以往时序的验证依赖于仿真&#xff0c;采用仿真的方法&#xff0c;覆盖率跟所施加的激励有关&#xff0c;有些时序违例会被忽略。此外&#xff0c;仿真方法效率非常的低&#xff0c;会大大延长产品的开发周期。静…