ic基础|时钟篇06:crg到底是什么?一文带你了解crg中的时钟系统!

大家好,我是数字小熊饼干,一个练习时长两年半的ic打工人。我在两年前通过自学跨行社招加入了IC行业。现在我打算将这两年的工作经验和当初面试时最常问的一些问题进行总结,并通过汇总成文章的形式进行输出,相信无论你是在职的还是已经还准备入行,看过之后都会有有一些收获,如果看完后喜欢的话就请关注我吧~谢谢~

在前面的文章里,我们对时钟的切换电路,分频电路和时钟门控电路进行了介绍,其实这些电路都是芯片中必备的时钟和复位产生模块(CRG, clock reset generator)中的时钟生成模块的基本组成部分。

在本篇文章中,我们将之前介绍的几个crg的组成部分拼合起来,组成一个基础的时钟系统电路。

一、crg电路

在我们的芯片中,各个模块的工作需要一个稳定的时钟源来确保其功能的正常实现。因此通常是通过振荡器(OSC,Oscillator)产生一个稳定的低频时钟,从osc输出的时钟经过了pll的倍频,再经过各种分频器后,会经过各种icg,buffer,最终到达各个触发器的时钟端。以下让我们展示一个基础的crg电路:
在这里插入图片描述

我们对上图中的各部分模块的功能进行介绍:

-振荡器(OSC):产生稳定的低频基准时钟,在osc的输出端,还添加了一个mux,用于选择pll的参考时钟的输入是来自与片内osc还是片外osc(即clk_osc_ext),这里之所以使用普通的mux,是因为我们不需要再芯片正常工作时,切换pll的参考钟,并且也不能随意切换!因为这很可能导致pll出现失锁等问题。

  • 锁相环(PLL):基于OSC提供的基准时钟,生成稳定的高频时钟。

  • 分频器(Divider):

    将PLL输出的高频时钟进行分频,以满足不同模块对时钟频率的需求。

    在这里clk_bypass_sel和clk_bypass_div是为了保证进行可测性设计(dft,design for test)的全速测试at-speed时,芯片内时钟频率是其最高频率,需要使得对应的时钟分频比为1,因此可通过加入一个mux,并利用clk_bypass_sel选择clk_bypass_div(该信号使得时钟的分频比为1),而非芯片内部寄存器的时钟分频比。

  • 片上时钟控制器(OCC):用于在自动测试机台上对芯片进行全速测试时,根据scan信号控制选通ate时钟或者芯片内部的高速时钟进行测试。

  • 时钟门控(ICG):

    控制各个模块时钟信号的开启和关闭,以实现低功耗设计。

    在这里有个信号scan_en,该信号的主要作用是:由于芯片的门控时钟使能信号是来自寄存器,且在进行scan shift时,寄存器的值并不确定,因此为了避免时钟被错误关闭,通过加入scan_en信号,使得时钟使能一直有效,从而时钟不会被关闭。

  • 时钟选择器(glitch free clock switching circuit):

    这里的glitch free clock mux是为了在芯片工作状态时切换时钟,并起到避免毛刺产生的作用。

    除此之外,我们也可以使用普通的mux和这两个时钟路径上的时钟门控实现无毛刺切换时钟,例如:假设从clk0切换到clk1时,先关闭之前选择的时钟clk0的时钟使能信号,再改变sel信号选择另一个时钟clk1,最后使能时钟clk1,这样也可以实现无毛刺的切换时钟。

  • 缓冲器(Buffer):增强时钟信号的驱动能力,确保时钟信号在传输过程中的稳定性和准确性。

    在一个crg的时钟系统中,osc和pll是模拟电路,后续的时钟分频和时钟门控都是数字负责的,我们需要根据模块需求的工作频率,配置时钟的分频比,以得到满足性能的时钟,也需要根据芯片的工作模式,在模块不需要工作的时钟,对模块的时钟进行门控,关闭时钟的翻转,以减小不必要的功耗消耗。

    除此之外,还有很多需要我们注意的细节,例如pll的lock需要时间,我们需要配合复位信号,最好等待pll稳定,再释放复位,以及芯片的操作系统和一些重要信息可能放在flush这类的非易失存储器中,我们需要在上电时先读取这些重要的信息再释放芯片中某些模块的复位等等。这些上电控制电路可以和crg进行配合,以确保芯片能够在上电后恢复到理想的工作状态。

二、总结

一个完整的crg模块由振荡器、锁相环、分频器、时钟门控和时钟缓冲器等组件组成。这些组件协同工作,为芯片内的各个模块提供稳定、可靠的时钟信号,本篇文章对crg中的时钟系统进行了简单的介绍,只是作为抛砖引玉,大家可以在后面的工作学习中积累更多的相关知识呢~

此外,在一个crg模块中,除了时钟系统外,还有复位系统,这部分我们就留到下篇文章在进行分享吧~

如果你喜欢这篇文章的话,请关注我的公众号-熊熊的ic车间,里面还有ic设计和ic验证的学习资料和书籍等着你呢~欢迎您的关注!

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

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

相关文章

基于Swing和socket实现双向通讯案例

server代码: import javax.swing.*; import java.awt.*; import java.io.*; import java.net.ServerSocket; import java.net.Socket;public class Server extends JFrame {private JTextArea messageArea;private JTextField textField;private PrintWriter write…

像艺术家一样工作:前言

名人名言 “艺术是盗窃” —— 巴勃罗毕加索 “不成熟的诗人模仿,成熟的诗人偷窃;对于偷窃得到的艺术,坏的诗人丑化它,好的诗人加入自己的理解,使它变得更好,至少会让它有点不同。最优秀的诗人&#xff0…

After Effects 2022(AE2022)支持win版和mac版下载

​After Effects 2022 是由Adobe公司推出的一款专业视频后期制作软件,它主要用于视频合成、视频特效制作、视频剪辑、动画制作等领域。After Effects 2022 内置了丰富的特效和过渡效果,用户可以通过它进行高级的视频合成和动画制作。 该软件具有直观的用…

一文搞懂分布式事务Seta-AT模式实现原理

分布式事务概念 分布式事务(Distributed Transaction) 是指在分布式系统中,涉及多个数据库、服务、消息队列等资源,并且需要保证这些资源上的操作要么全部成功提交,要么全部失败回滚的一种机制。在分布式系统中&#…

IO流---字节流.Java

一,概述 IO流是存储和读取数据的解决方案。 I:input O:output流:像水流一样传输数据 因为IO流与File是息息相关的,所以在学习IO流之前,简单回顾一下File:😄😊&#…

python对文本操作,生成可执行文件

.exe文件主要包含pingmianF.py文件和read_inp_auto.py文件 实现效果 代码 read_inp_auto.py #-*- coding: utf-8 -*- import re import sys import os import os.path import time import pingmianF from pingmianF import vector import numpy as np from tkinter import me…

GDPU JavaWeb EL与JSTL

标签化,可以简化百分号的繁忙。 标签库配置 先下载好jstl标签库,然后放到lib。接着,要让编译器识别到,因此要在模块配置依赖,这里导jar包都得注意一下模块依赖。 也可以在libraries项目库设置。 EL与JSTL查询图书 在…

2024华为OD机试真题-攀登者1-C++(C卷D卷)

题目描述 攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。 地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。 其中数组元素0代表地面。 例如: [0,1,2,4,3,1,0,0,1,2,3,1,2,1,0],代表如下图所示的地图, 地图中有两个山脉位置分别为1,2,3,4,5 …

设计模式(十)结构型模式---享元模式

文章目录 享元模式简介结构UML图具体实现UML图代码实现 享元模式简介 享元模式(fly weight pattern)主要是通过共享对象来减少系统中对象的数量,其本质就是缓存共享对象,降低内存消耗。享元模式将需要重复使用的对象分为两个状态…

大学生Python自救课程总结

因为一些事情的缘故,我已经几乎没有更新很久了,然后现在快到期末了,不知道各位学习python的同志们慌不慌【坏笑】。 本学期,我只是简单的讲了讲python的基础用法。当然,可能有些地方总结的并不全面,很多知…

MyBatis中的接口代理机制及其使用

1. MyBatis中的接口代理机制及其使用 文章目录 1. MyBatis中的接口代理机制及其使用2. 实操2.1 准备工作2.2 insert 增加操作2.3 delete 删除操作2.4 update 修改操作2.5 select 查询一条记录操作2.6 select 查询多条记录操作 3. 总结:4. 最后: MyBatis …

HackTheBox-Machines--Nineveh

Nineveh测试过程 1 信息收集 NMAP 端口扫描 80 端口 80端口是服务器的默认页面,无可利用功能点,源代码没有可利用的敏感信息 目录扫描 1.http://10.129.25.123/department 访问/department目录跳转到登录页面,尝试暴力破解,获取…

嵌入式期末复习

一、选择题(20) 二、判断题(10) 三、填空题(10) 主机-目标机的文件传输方式主要有串口传输方式、网络传输方式、USB接口传输方式、JTAG接口传输方式、移动存储设备方式。常用的远程调试技术主要有 插桩/st…

NVIDIA NeMo - 训练本地化多语种 LLM

本文转载自:使用 NVIDIA NeMo 训练本地化多语种 LLM (2024年 5月 17日 By Nicole Luo and Amit Bleiweiss 第 1 部分 https://developer.nvidia.com/zh-cn/blog/training-localized-multilingual-llms-with-nvidia-nemo-part-1/ 第 2 部分 https://deve…

Cocos入门2:软件安装

Cocos Creator的安装教程如下,按照步骤进行,可以帮助您顺利安装Cocos Creator: 一、下载Cocos Dashboard 访问Cocos官网:前往Cocos Creator的官方网站(https://www.cocos.com/creator/)。 下载Cocos Dash…

重生之 SpringBoot3 入门保姆级学习(14、内容协商基础简介)

重生之 SpringBoot3 入门保姆级学习(14、内容协商基础简介) 3.3 内容协商3.3.1 基础简介3.3.2 演示效果 3.3 内容协商 3.3.1 基础简介 默认规则 基于请求头的内容协商(默认开启) 客户端向服务器发送请求,携带 HTTP 标…

20240601使用iperf3在Toybrick的TB-RK3588开发板上跑预编译的Android12测网速

20240601使用iperf3在Toybrick的TB-RK3588开发板上跑预编译的Android12测网速 2024/6/1 20:39 【常见问题】给TB-RK3588开发板刷机Androidd12之后,如果刷机线type-C不拔掉。可能起不来! 搞得我都以为板子坏了呢! rootrootrootroot-ThinkBook-…

Linux[高级管理]——使用源码包编译安装Apache网站

🏡作者主页:点击! 👨‍💻Linux高级管理专栏:点击! ⏰️创作时间:2024年5月31日14点20分 🀄️文章质量:96分 在Linux系统上编译和安装Apache HTTP Server是…

搭建基于Django的博客系统数据库迁移从Sqlite3到MySQL(四)

上一篇:搭建基于Django的博客系统增加广告轮播图(三) 下一篇:基于Django的博客系统之用HayStack连接elasticsearch增加搜索功能(五) Sqlite3数据库迁移到MySQL 数据库 迁移原因 Django 的内置数据库 SQL…

动态规划求多段图的最短路径

一、基本思想 动态规划法将待求解问题分解成若干个相互重叠的子问题,每个子问题相互关联;动态规划法与分治法的区别就在于分治法的子问题相互不关联,而动态规划法的子问题是相互关联的,且有重叠的部分。 二、算法分析 动态规划…