MCU集成-时钟复位控制

这篇具有很好参考价值的文章主要介绍了MCU集成-时钟复位控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

时钟

首先我们需要知道我们生成时钟的需求如下

occ时钟,mcu前端设计,硬件架构

然后知道设计要点

occ时钟,mcu前端设计,硬件架构

dft可控:表示在dft模式下,我们选择外部的测试时钟而不是芯片内部的pll的时钟。这个外部的时钟可以被dft工程师控制。 

dft隔离:表示在scan的情况下,很多寄存器会上链,所以输出不定,但是这些输出又去驱动了很多重要的系统模块,这个时候我们需要使用mux将寄存器的输出固定。

dft观测:这些内部产生的时钟需要送到pad做到可观测,看是否符合要求。

外部参考时钟:PLL是倍频电路,它会使用晶振产生的参考时钟比如10m进行倍频。倍频需要稳定时间, pll输出lock信号表示倍频后的时钟稳定了,可以被芯片使用,但是在lock信号之前,pll的输出时钟不稳定,这个时候需要外部的时钟作为芯片的主时钟。所以涉及到一个无毛刺的切换电路。

时钟图

 occ时钟,mcu前端设计,硬件架构

1. 首先从模拟进入osc_in=8M,这是ref-clk。然后8m的时钟进入到pll倍频。倍频结束之前我们使用的是8m的参考时钟,倍频结束之后我们才能使用倍频时钟。所以这里有一个无毛刺切换

2. 无毛刺切换后就是sys_clk,对它进行分频。注意这里的apb也需要分屏,图中已经标出来了。

无毛刺切换电路

occ时钟,mcu前端设计,硬件架构

3. 图中dft_mode下的32‘{1’b0},1’b0,4{1‘b0}会在dft模式下插入自己的配置数,前端看不到,这就是dft可控。

4. ICG模块和occ模块。

occ时钟,mcu前端设计,硬件架构

ICG就是门控单元,E端为clk负沿采样en。采样之后的信号和clk进行与,这样做的好处是无论en在clk的什么地方拉高都不会切出毛刺,得到的gclk都是完整的时钟。

5.分频电路 8192分频电路,2^13=8192,所以使用12bit位。这里:先将sys_clk分频,再将分频后的脉冲作为sys_clk的门控,产生分频后的时钟。这是标准做法。设定一个bit数13的寄存器。

occ时钟,mcu前端设计,硬件架构

使用rtc_clk_div作为icg的门控。生成的rtc_clk_pre就是clk_pll_in的8192分频时钟。

 occ时钟,mcu前端设计,硬件架构

 同理,2,4,8,16分频。2^4=16,所以bit3就可以表示16分频。

occ时钟,mcu前端设计,硬件架构

 occ时钟,mcu前端设计,硬件架构

 使用ahb_clk_div作为icg的门控。

OCC模块(片上时钟控制器)

occ一般插在功能时钟pll的后面,它的位置如下图。

occ时钟,mcu前端设计,硬件架构

occ的功能如下: 

1. 切换功能时钟和测试时钟

2.为ac scan 提供正确数量的功能时钟脉冲。

3. 每个时钟域独立控制。

occ内部结构

occ时钟,mcu前端设计,硬件架构

测试模式信号:0功能模式1测试模式

ac模式信号:0dcscan 1acscan

扫描信号:慢速scan扫描信号

参考时钟 8m,经过pll后为sys_clk

 扫描时钟:慢速scan时钟

occ工作状态图

1.测试模式信号为0,occ输出功能clk

occ时钟,mcu前端设计,硬件架构

 2. 测试模式信号为1,ac 模式信号无论1还是0,扫描信号为1,occ输出慢速scan_clk

occ时钟,mcu前端设计,硬件架构

occ时钟,mcu前端设计,硬件架构

        首先将扫描信号置位1表示慢速scan模式,在此模式下填充寄存器,如果想要两个功能时钟(全速时钟)的脉冲,就通过mux扫描输入pattern将四个寄存器变成1100,如果想要3个,就变成1110。然后在切换扫描信号为0,这个时候两个快速时钟会送出,最后又将扫描信号置位1,输出慢速时钟。 

总结:scan_en-->>1,0,1。

scan的移入捕获移出操作

为什么上面的时钟只有两个上升沿?这需要从dft的scan操作说起。

occ时钟,mcu前端设计,硬件架构

移入操作时,使用慢速的时钟,将10011送入上排的5个寄存器,同时01001从组合逻辑送出,因为组合逻辑的计算是没有延迟的。 进入捕获操作,这个时候如果是要检测stuck at这类的静态测试,可以使用慢速时钟(和之前的移入时钟一样的频率也是可以的)。如果检查跳变和延迟故障,需要使用功能时钟,尽量准确的模拟功能的情况下luanch和capture的情况去检测timing path。下图就是stuck at问题中使用的捕获时钟和移入移出一样频率。

occ时钟,mcu前端设计,硬件架构

下图是检查跳变和延迟故障时候的捕获时钟为功能时钟也叫做全速时钟。但是需要注意,这个se是一个全局信号,它会送到所有芯片寄存器的se端口,这样从si进来的数据很可能不能满足建立和保持时间,因为这个时候的全速时钟非常快,这对时序有很大挑战。

occ时钟,mcu前端设计,硬件架构

但是,如果像下图这样在第一个全速时钟之前拉低se,之前应该从si来的数据便从下面第二个图中的第二排寄存器的d端来了。下面第二个图中,se的拉低后的launch沿把数据从第一个组合云送到第二排寄存器,在经过capture沿打入第三排寄存器。虽然多了一组组合逻辑但是依然可以使用算法检测出dft问题,大大减少了时序压力。

 occ时钟,mcu前端设计,硬件架构

occ时钟,mcu前端设计,硬件架构

 复位

下面是复位的需求,注意每个外设应该有一个软复位,在外设出问题的时候,可以单独复位。

dft可控就是有些和复位相关的寄存器上链后,来回toggle,会导致scan模式下不停复位,所以我们需要做dft隔离。dft可控就是dft工程师可以插入dft复位使得芯片复位。

occ时钟,mcu前端设计,硬件架构

 设计要求occ时钟,mcu前端设计,硬件架构

 复位电路如下:

HARD_RST_N从pad过来。经过滤波之后和内部其他复位与之后生成全局复位,全局复位在各自时钟域下同步,pbus_rst_n还要在与上软复位。软复位由寄存器来,也需要dft的隔离。

occ时钟,mcu前端设计,硬件架构

dft复位可控的代码

mux U_SYS_RESET_DFT_CTRL(
.A(hard_rst_n_in) //实际复位
.B(dft_crg_rst_n)  //DFT使用的复位,悬空在core层
.S0(dft_mode) 
.Y(dft_hard_rst_n_in)

);

滤毛刺代码 flt_out_rst为滤毛刺之后的代码。

always @(posedge sys_clk or negedge dft_hard_rst_n_in) begin
if (~dft_hard_rst_n_in) begin
dft_hard_rst_n_in_sync<={8{1'b0}};
end
else begin
dft_hard_rst_n_in_sync <={dft_hard_rst_n_in_sync[6:0],1'b1};
end
end

 assign flt_out_rst=| dft_hard_rst_n_in_sync;文章来源地址https://www.toymoban.com/news/detail-679917.html

到了这里,关于MCU集成-时钟复位控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MCU嵌入式开发-硬件和开发语言选择

    主要考虑以下方面来决定是否需要RTOS支持: 需要实现高响应时的多任务处理能力 需要实现实时性能要求高的任务 需要完成多个复杂的并发任务 具备满足工控系统实时性要求的各项功能特性。通过它提供的硬件库、线程支持、中断支持等,可以完全控制微控制器的各个外设,实

    2024年02月12日
    浏览(46)
  • 5 STM32复位和时钟控制

    STM32的复位功能 系统复位: 系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器为它们的复位数值。(按键复位和软件复位属于系统复位) 电源复位: 电源复位将复位除了备份区域外的所有寄存器。 后备域复位: 备份区域拥有两个专

    2024年02月11日
    浏览(34)
  • 汽车虚拟ECU和MCU硬件虚拟化,傻傻分不清楚

    目录 1.概述 2.汽车虚拟ECU 3.汽车MCU虚拟化功能 4.小结 近几年,随着智能网联汽车普及,车型的更新迭代速度进一步提升,功能开发工程师希望在能够在硬件成型前验证软件功能,意味着汽车控制器的功能开发也在不断左移。 为此业内出现了对ECU进行虚拟化以加速开发的呼声

    2024年01月25日
    浏览(38)
  • 关于硬件问题造成的MCU死机,过来人简单的谈一谈

    关于MCU死机问题,近期小编在出差期间遇到多起,且原因不同。所以,今日小白借此机会讲一讲因硬件问题造成的MCU死机。 在遇到死机问题时,已经可以判定是硬件原因造成的前提下,大多人的选择是交叉验证MCU,先判定是否是MCU单体不良造成的死机。在小编以前遇到的死机

    2024年02月11日
    浏览(28)
  • EB tresos S32K3 MCAL MCU配置(一)时钟与晶振

    MCU配置(一)  时钟与晶振 1.时钟是什么,为什么需要时钟? 时钟对于CPU来说就等同于心脏,时钟频率的高低决定了CPU执行指令的速度,同时对于大多数外设来说也是需要一个时钟信号才能正常工作的,以通信相关的模块来说,一个信号本质上是高低电平的组合,比如我们要

    2024年02月11日
    浏览(33)
  • MCU中断控制

    目录 一、中断相关基础知识 1、NVIC:嵌套向量中断控制器 2、可屏蔽中断和不可屏蔽中断的区别 3、中断优先级 4、常见特殊中断 二、中断相关寄存器 三、中断使用步骤: (1) 它是内核的器件,M3/M4/M7 内核都是支持 256 个中断,其中编号为 1~255,而 0 表示没有异常,这里的编号

    2024年02月20日
    浏览(23)
  • STM32——05-按键、时钟控制、中断复位 点亮LED灯

    如何点亮一颗LED灯   编程实现点灯 常用的 GPIO HAL 库函数: void HAL_GPIO_Init ( GPIO_TypeDef * GPIOx , GPIO_InitTypeDef * GPIO_Init ); void HAL_GPIO_WritePin ( GPIO_TypeDef * GPIOx , uint16_t GPIO_Pin , GPIO_PinState PinState ); void HAL_GPIO_TogglePin ( GPIO_TypeDef * GPIOx , uint16_t GPIO_Pin );  结构体  GPIO_InitTypeDef  定义:

    2024年02月08日
    浏览(35)
  • MCU电源控制(PWR)与低功耗

    目录 一、STM32 的内核和外设电源系统管理: 二、MCU电源监控: 三、三种低功耗模式: 1、睡眠模式: 2、停止模式: 3、待机模式: ① 电池备份区域(后备供电区域)          电池备份区域也就是后备供电区域,使用电池或者其他电源连接到 VBAT 脚上, 当 VDD断电时,

    2024年04月25日
    浏览(21)
  • Web端Webrtc,SIP,RTSP/RTMP,硬件端,MCU/SFU融合视频会议系统方案分析

    Web端视频融合,会议互通已经是视频会议应用的大趋势,一是目前企业有大量的老视频会议硬件设,二新业务又需要Web端支持视频会议监控直播需求,迫切需要一个融合对接的方案,即能把老的设备用起来,又能对接新的业务系统,加入Web视频参会互动。 分析: 1,老视频设

    2024年04月25日
    浏览(28)
  • MCU是否会从ADAS域控制器消失

    摘要: ADAS架构及MCU功能概览、未来ADAS架构的两种方案、MCU是否从ADAS域消失的一点思考 ADAS的装机量和渗透率再提升,尤其L2及L2+级;那么随着ADAS域控制器主控芯片的增强,未来,MCU是否还会存在? 转自佐思汽车研究 本文目录: ADAS架构及MCU功能概览 未来ADAS架构的两种方案

    2024年02月13日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包