集成电路模拟设计——【基于Serdes 应用的 串化/解串器 时钟与数据恢复电路CDR】
串化/解串器 & 时钟与数据恢复电路CDR(可提供实现过程、仿真波形与具体参数细节
- 本文内容摘要
- 背景
- 串化/解串器
- 全速树形串化器
- 半速树形串化器
- 全速移位寄存器串化器
- 多级树形解串器
- PLL型CDR
- 整体架构
- 实现结果
- Bang-Bang型CDR
- 整体架构
- PS/PI型CDR电路
- PS电路设计
- PI电路设计
- 实现细节可联系交流
本文内容摘要
本文使用理想单元库和TSMC 28nm实现适用于串化/解串器和时钟与数据恢复电路CDR,电路与仿真通过cadence软件及配套virtuoso实现:
- 利用理想单元完成全速树形串化器、半速树形串化器、全速移位寄存器串化器,半速多级树形解串器电路及其仿真测试
- 利用TSMC 28nm工艺完成成:
1、PLL型CDR:包括压控振荡器VCO、分频器DIV、电荷泵CP、鉴频鉴相器PFD、环路滤波器LP、锁定检测电路、脉宽拓展电路等
2、Bang-Bang型CDR:半速率 Bang-Bang 鉴相器、对称异或门、V/I 转换器、正交 LC 压控振荡器电路等
3、PS/PI型CDR电路:PS电路设计、PI电路设计、CML到CMOS电路等
背景
摩尔定律(Moore’s Law)预测的IC上所集成的晶体管数目每两年就翻一番成为可能。根据Rent定律,所需的芯片I/O引脚数量也需要相应地增长, 尤其在近些年,越来越多的全球互联网用户,要求更快的通信和更丰富的媒体内容, 基本上每两年总的I/O带宽就会提高一倍。
在高速有线接口中,基于SerDes(Serializer/Desrializer)的串行接口技术具有更少引脚数,更小面积和更高速率等优势。
在高速串行链路中用SerDes来实现数据的发送和接收,其中串化/解串器和时钟数据恢复电路(CDR)是接收机(Receiver, Rx)中最主要的部分之一。
串化/解串器
全速树形串化器
树形级联串化器是将 2mux1 的并串转换单元以 1 : 2 : 4 : … :2^n的比例级联以实现多路并行信号串化的功能。每一个 2mux1 并串转换单元的电路图如下图中右上角框图内所示,由正相触发器、反相锁存器以及二选一选择器组成。

半速树形串化器
修改设计4mux1的半速树形串化器电路结构如下图所示。Half-rate架构消除了最后输出级的高速时钟和触发器,这样会造成关键路径上信号不再由触发器设置时间,且对占空比更见敏感,但减半了时钟速率要求,使得前几个阶段拥有更多的时间裕度。现在最后一级的2选1选择器需要交换输入数据,以防输出故障。按以上思路修改得到16mux1的半速率树形串化器。

全速移位寄存器串化器
移位寄存器串化器也是 SerDes 发射机中常用的串化器电路结构,下图中所示的是 4:1 移位寄存器串化器电路。WRT 写入信号是一个占空比为 25%、频率与并行输入信号一致的周期信号。

其中,所需的四分频与四相位及写信号产生电路如下图所示:

多级树形解串器
采用多级树形解串器,其仅需要半速率时钟,且不需要多相位产生。多级树形4dmux1解串器电路如下图所示。由3/2延迟和1单位时钟周期延迟的触发器组成。

PLL型CDR
整体架构
PLL型CDR是一个双环路结构,电路图如图所示。在电路工作的最初阶段,PLL 环路上电之后正常工作,直至电路的反馈时钟参考输入时钟的频率一致或者小于最初设计的偏差值后,电路中的锁定检测模块就会甄辨出这一状态,并输出一个信号控制电路切换到 CDR 环路工作

鉴相器的捕获范围是有限的,如果输入参考信号与反馈信号最初的频率差异较大,环路将无法准确锁定,事实是极大的可能最终会锁定在其谐波频率上。所以,为了使压控振荡器的输出能够准确且快速地锁定至最终频率点处,在电路工作的最初阶段,采用了一个使用鉴频鉴相器的的 PLL 环路,这个 PLL环路与 CDR 环路共用了电荷泵,环路滤波器以及压控振荡器模块。同时在电路中引入了一个锁定检测模块,它通过检测环路的的反馈时钟与参考时钟频率是否一致,来判断 PLL 环路的锁定情况,当检测到 PLL 环路已经锁定时,就会产生一个选择信号,控制电路切换到 CDR 环路,以最终实现时钟数据恢复的功能。
其中采用TSMC28nm工艺库和理想单元库设计完成所需的压控振荡器VCO、分频器DIV、电荷泵CP、鉴频鉴相器PFD、环路滤波器LP、锁定检测电路、脉宽拓展电路等。如有需要,可私下联系我
实现结果
外加参考时钟625MHz激励,并提供10GHz数据,得到仿真结果如图所示。可见,0.4μs后PLL频率接近10GHz,此时锁定检测模块输出高电平,切换输入给CP以及后面环路的输入来自CDR环路的HOGGE鉴相器,在经过30ns后达到稳定状态。

Bang-Bang型CDR
整体架构
BBPD 工作速度快,结构可靠,且不进行跳变选择,降低了电路设计复杂度,代价是引入了有限的时钟额外抖动。由于使用 BBPD,此种 CDR 又被称为 Bang-Bang CDR。
半速率 Bang-Bang CDR 结构如图所示,它与经典 CDR 的区别是 VCO 输出的是两路相互正交的差分时钟信号,同时 BBPD 的时钟输入也是正交时钟信号。

其中采用TSMC28nm工艺库和理想单元库设计完成所需的半速率 Bang-Bang 鉴相器、对称异或门(电流模)、V/I 转换器、正交 LC 压控振荡器电路。如有需要,可私下联系我
PS/PI型CDR电路
PS电路设计
PS电路的主要功能是从输入的八相时钟中选出四相时钟输出,本文通过设计MUX电路实现从四相时钟中选出两相时钟出来,将MUX级联在一起构成PS电路。MUX电路基于CML结构。

PI电路设计
相位插值电路的功能是实现在插值区间内的线性插值,本文设计的PS/PI电路中PI电路插值的区间为45°。PS电路选出的四相时钟outP1/outN1与outP2/outN2确定插值区间为outP1outP2与outN1outN2,插值后输出一对介于插值区间内的互补时钟interP/interN,图PI电路结构示意图,图中IC代表着两对差分对管的尾电流源。

实现细节可联系交流
相关文章:
集成电路模拟设计——【基于Serdes 应用的 串化/解串器 时钟与数据恢复电路CDR】
串化/解串器 & 时钟与数据恢复电路CDR(可提供实现过程、仿真波形与具体参数细节 本文内容摘要背景串化/解串器全速树形串化器半速树形串化器全速移位寄存器串化器多级树形解串器 PLL型CDR整体架构实现结果 Bang-Bang型CDR整体架构 PS/PI型CDR电路PS电路设计PI电…...
OpenWrt 编译入门(小白版)
编译环境 示例编译所用系统为 Ubuntu 22.04,信息如下 编译时由于网络问题,部分软件包可能出现下载问题,还请自备网络工具或尝试重新运行命令 编译步骤 下图为官网指示 编译环境设置(Build system setup) 这里根据我…...
嵌入式视频播放器(mplayer)
1.文件准备: MPlayer-1.0rc2.tar.bz2 libmad-0.15.1b.tar.gz 直接Git到本地 git clone https://gitee.com/zxz_FINE/mplayer_tarball.git 2.文件夹准备: src存放解压后的源码文件,target_Mplayer存放编译安装的目标文件 mkdir src targe…...
对房价数据集进行处理和数据分析
大家好,我是带我去滑雪,每天教你一个小技巧! 房价数据集通常包含各种各样的特征,如房屋面积、地理位置、建造年份等。通过对数据进行处理和分析,可以更好地理解这些特征之间的关系,以及它们对房价的影响程度…...
BERT的学习
BERT 1.前言 self-supervised learning是一种无监督学习的特殊形式,算法从数据本身生成标签或者目标,然后利用这些生成的目标来进行学习。(也就是说数据集的标签是模型自动生成的,不是由人为提供的。)例如࿰…...
数据结构OJ实验9-图存储结构和遍历
A. 图综合练习--构建邻接表 题目描述 已知一有向图,构建该图对应的邻接表。 邻接表包含数组和单链表两种数据结构,其中每个数组元素也是单链表的头结点,数组元素包含两个属性,属性一是顶点编号info,属性二是指针域n…...
20231226在Firefly的AIO-3399J开发板上在Android11下调通后摄像头ov13850
20231226在Firefly的AIO-3399J开发板上在Android11下调通后摄像头ov13850 2023/12/26 8:22 开发板:Firefly的AIO-3399J【RK3399】 SDK:rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBrick】 Android11.0.tar.bz2.ab And…...
0101包冲突导致安装docker失败-docker-云原生
文章目录 1 前言2 报错3 解决结语 1 前言 最近在学习k8s,前置条件就是要安装指定版本的docker,命令如下 yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.62 报错 file /usr/libexec/docker/cli-plugins/docker-buildx fr…...
【力扣100】17.电话号码的字母组合
添加链接描述 class Solution:def letterCombinations(self, digits: str) -> List[str]:# 思路是使用回溯算法if not digits:return []phone {2:[a,b,c],3:[d,e,f],4:[g,h,i],5:[j,k,l],6:[m,n,o],7:[p,q,r,s],8:[t,u,v],9:[w,x,y,z]}def backtrack(con,dig):# 收获if le…...
2023。
一月 从头开始 二月 准备复试&初试成绩 三月 最开心 过了两个生日(这机率,幸运儿) 考研也成功上岸!nnuGISer! 四月 和室友去了趟武汉 五月 拍毕业照 六月 人生高光时刻 省创!上台领奖!考研…...
出现 Cause: java.sql.SQLException: Field ‘id‘ doesn‘t have a default value解决方法
目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 在驱动Springboot项目的时候,出现如下问题: org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: java.sql...
Linux--批量自动装机
实验环境 随着某公司业务不断发展,服务器主机的数量也迅速增长,对于功能变更或新采购的服务器, 需要重新安装CentOS7操作系统,为了提高服务器装机效率,要求基于PXE网络实现全自动无人值 守批量安装。 需求描述 > 服…...
病理HE学习贴(自备)
目录 正常结构 癌症HE 在线学习 以胃癌的学习为例 正常结构 1:胃粘膜正常结构和细胞分化 ●表面覆盖小凹上皮细胞(主要标志物:MUC5AC)以保护黏膜。 ●胃底腺固有腺体由黏液颈细胞(MUC6)、主细胞(Pepsinogen l)和壁细胞(Proton pump α-subunit)组…...
关于协同过滤算法在物联网的应用-基于用户行为数据和物联网设备数据,以此提供个性化的智能家居控制推荐服务
关于协同过滤算法在物联网领域的应用的一个案例是基于用户行为数据和物联网设备数据,为用户提供个性化的智能家居控制推荐服务。 具体实现如下: 数据收集:收集用户对智能家居设备的使用行为数据,包括设备的打开、关闭、调节等操…...
计算机网络(6):应用层
每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。 应用层的具体内容就是规定应用进程在通信时所遵循的协议。 应用层的许多协议都是基于客户服务器方式。即使是对等通信方式&#x…...
ESP32:整合存储配网信息和MQTT笔记
文章目录 1.给LED和KEY的所用IO增加配置项1.1 增加配置文件1.2 修改相应的c源码 2. 把mqtt\tcp的工程整合到一起2.1 在何处调用 mqtt_app_start() 3. 测试MQTT4. 完整的工程源码 有一段时间没有玩ESP32,很多知识点都忘记了。今天测试一下MQTT,做个笔记。…...
nginx源码分析-4
这一章内容讲述nginx的模块化。 ngx_module_t:一个结构体,用于描述nginx中的各个模块,其中包括核心模块、HTTP模块、事件模块等。这个结构体包含了一些模块的关键信息和回调函数,以便nginx在运行时能够正确地加载和管理这些模块。…...
【Unity美术】Unity工程师对3D模型需要达到的了解【二】
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...
《微信小程序开发从入门到实战》学习六十九
6.6 网络API 6.6.3 下载文件API 使用 wx.downloadFile 接口是可使小程序发起HTTPS GET请求,下载文件到手机端。 单次下载的最大文件为50MB。接受Obkect参,参支持属性如下: url(必填):下载文件的URL he…...
2022年全球软件质量效能大会(QECon北京站2022)-核心PPT资料下载
一、峰会简介 当前,新一轮科技革命和产业变革正在重塑全球经济格局,以云计算为代表的新一代信息技术创新活跃,与实体经济深度融合,推动泛在连接、数据驱动、智能引领的数字经济新形式孕育而生。 新兴技术的出现给测试乃至整个软…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
