SOC设计:关于时钟门控的细节

news2025/1/21 1:00:28

有如下几个信号

输入信号

1、同步后的rstnsync_clk

2、时钟:clk

3、test_mode

4、软件控制信号:clk_sub_en

输出信号

1、clk_sub

功能:软件配置的使能信号clk_sub_en经过时钟clk 2拍同步处理后产生clk 域下的enable信号,然后使用工艺库里的时钟门控cell产生门控时钟clk_sub

使用工艺库里的门控时钟原因如下

clkgating_lte u0_clk_sub_gen (
    .rstn                           (rstnsync_clk                            ), // input  
    .clk_in                         (clk                                     ), // input  
    .test_mode                      (test_mode                                  ), // input  
    .gating                         (clk_sub_en                               ), // input  
    .clk_out                        (clk_sub                                  )  // output
);
 

module clkgating_lte (
        rstn,
        clk_in,
        test_mode,
        gating,
                clk_out
        );

input        rstn;
input        clk_in;
input        test_mode;
input        gating;
output        clk_out;

wire            gatingSync1;
wire            gatingSync2;
 

dsync2s u_dsync2s(.q(gatingSync2), .d(gating), .clk(clk_in), .rst_(rstn));

clk_gate u_gating (.TE(test_mode), .E(gatingSync2), .CK(clk_in), .QCK(clk_out));

endmodule

// clock gate
module clk_gate (CK, E, TE, QCK);
input    CK;
input    E;
input    TE;
output    QCK;
`ifdef    FPGA
    assign QCK = CK;
`else
    `ifdef    ARM_22ULP_9T
        PREICG_X4B_A9PP140ZTS_C35 U_gate (
        .SE(TE),
        .E (E),
        .CK(CK),
        .ECK(QCK)
        );
    `elsif  ARM_22ULP_6T
        PREICG_X4B_A6P5PP140ZTS_C35 U_gate (
        .SE(TE),
        .E (E),
        .CK(CK),
        .ECK(QCK)
        );
    `elsif    TSMC_22NM_9T
        CKLNQD2BWP35P140 donttouch_cg_pos (
        .TE(TE),
        .E (E),
        .CP(CK),
        .Q (QCK)
        );
    `else
        CKLNQD2BWP7T35P140 donttouch_cg_pos (
        .TE(TE),
        .E (E),
        .CP(CK),
        .Q (QCK)
        );
    `endif
`endif
endmodule // pmu_clk_gate

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

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

相关文章

flink重温笔记(十一):Flink 高级 API 开发——flink 四大基石之 Checkpoint(详解存储后端)

Flink学习笔记 前言:今天是学习 flink 的第 11 天啦!学习了 flink 四大基石之 Checkpoint (检查点),主要是解决大数据领域持久化中间结果数据,以及取消任务,下次启动人可以恢复累加数据问题&…

【LeetCode】升级打怪之路 Day 15:二叉树解题的思维模式 —— 遍历、分解问题

今日题目: 226. 翻转二叉树101. 对称二叉树114. 二叉树展开为链表 目录 LC 226. 翻转二叉树 【easy】LC 101. 对称二叉树 ⭐⭐⭐LC 114. 二叉树展开为链表 ⭐⭐⭐ 今天的题目主要是对二叉树递归遍历的应用,东哥带你刷二叉树(思路篇&#xff0…

砝码称重 蓝桥杯

在C中,fabs()和abs()都用于计算数字的绝对值,但它们之间有一些区别。 fabs(double x):计算浮点数x的绝对值,返回一个double类型的结果。 abs(int x):计算整数x的绝对值,返回一个int类型的结果。 数组的默…

航天民芯一级代理 MT3608 MT3608L 升压转换器 1.2MHZ

MT3608/MT3608L是恒定频率的6引脚SOT23电流模式升压转换器,适用于小型、低功耗应用。MT3608在1.2MHz,允许使用微小、低成本的频率高度不超过2mm的电容器和电感器。内部软启动可实现较小的浪涌电流和延长电池寿命。MT3608具有自动切换到脉冲的功能轻负载下…

【控制台警告】npm WARN EBADENGINE Unsupported engine

今天用webpack下载几个loader依赖,爆出了三个警告,大概的意思就是本地安装的node和npm的版本不是很匹配? 我的解决思路是: 先检查node和npm版本 然后去官网查找版本的对应 靠,官网404 Node.js (nodejs.org) 就找到…

Conda快速安装的解决方法(Mamba安装)

如果你的Conda安装了,你可能会发现一个问题,就是使用Conda install 安装某个软件时,会特别慢,这时候呢?你会上网去搜,然后大家解决的方法呢。一是告诉你镜像可以下载快一点,二是,Mam…

Sentinel 规则持久化,基于Redis持久化【附带源码】

B站视频讲解 学习链接🔗 文章目录 一、理论二、实践2-1、dashboard 请求Redis2-1-1、依赖、配置文件引入2-1-2、常量定义2-1-3、改写唯一id2-1-4、新Provider和Publisher2-1-5、改写V2 2-2、应用服务改造2-2-1、依赖、配置文件引入2-2-2、注册监听器 三、源码获取3…

keycloak18.0.0==源码编译打包

参照官方文档building.md mvn -Pdistribution -pl distribution/server-dist -am -Dmaven.test.skip clean install 报错 ---------- [ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:npm (npm-install-common) on project keycloak-theme…

MySQL存储过程2——if、case、while、repeat、loop、cursor、handler

1、if用作条件判断 1.1、语法结构 IF 条件1 THEN... ELSEIF 条件2 THEN... ELSE... END IF; 在if条件判断的结构中,Else if结构可以有多个,也可以没有。Else结构可以有,也可以没有 1.2、示例 根据定义的分数score变量,判断当…

mysql学习笔记8——常用5个内置方法

1count 对查询内容进行计数,并返回结果 2as as可以将查询出来结果赋予新名字 3sum sum可以查询某字段特定条件下的和值 4concat concat可以将多列数据合并成一列,只要concat()即可 5group_concat group_concat可以把多列…

Linux|终端管理|如何踢掉操作系统内的用户

一, 关于终端的一些基本概念 tty、pty 和 pts 是在类 Unix 系统(包括 Linux)中与终端交互相关的概念。它们各自代表不同的方面,并且有着密切的关联。 tty (Teletype) tty 原指老式的电传打字机,后来泛指任何类型的终…

Echarts 配置项 series 中的 data 是多维度

文章目录 需求分析 需求 如下图数据格式所示,现要求按照该格式进行绘制折线图 分析 在绘制折线图时,通常我们的 series 中的 data 数据是这样的格式 option {title: {text: Stacked Area Chart},tooltip: {trigger: axis,axisPointer: {type: cross…

内容管理平台用这几个就够了,简单又好用

对于大多数企业和自由职业者来说,选择合适的内容管理平台已经成为一种必备的技能。良好的内容管理平台可以赋能你的团队,让你们更好地协作、管理和分享内容。不管你是要发布博客文章,还是需要管理复杂的项目文档,都可以通过内容管…

华为OD机试 - 疫情扩散时间计算 - 矩阵(Java 2024 C卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷&am…

图论 - DFS深度优先遍历、BFS广度优先遍历、拓扑排序

文章目录 前言Part 1:DFS(深度优先遍历)一、排列数字1.题目描述输入格式输出格式数据范围输入样例输出样例 2.算法 二、n皇后问题1.问题描述输入格式输出格式数据范围输入样例输出样例 2.算法 三、树的重心1.问题描述输入格式输出格式数据范围…

Ubuntu 下使用 Pybind11 实现 C++ 调用 Python 接口的示例

Pybind11 是一个轻量级的库,它提供了在 C 中无缝集成 Python 代码的能力。使用 Pybind11,你可以很容易地从 C 调用 Python 代码,反之亦然。下面我将通过一个简单的例子来展示如何在 Ubuntu 系统上使用 Pybind11 从 C 调用 Python 接口。 安装…

嵌入式常见概念介绍

什么是ARM: Advanced RISC Machines 先进RISC机器 嵌入式系统自诞生起就分为两条路: RISC:精简指令集计算机,如ARM,所有指令长度一致,指令数量较少 CISC:复杂指令集计算机&#xff0…

git 如何将多个提交点合并为一个提交点 commit

文章目录 核心命令详细使用模式总结示例 核心命令 git merge branch2 是将分支branch2的提交点合并到本地当前分支。 而在执行这条命令的时候,加一个选项--squash就表示在合并的时候将多个提交点合并为一个提交点。 git merge --squash branch2 先看squash单词的意…

2023年CSP-J认证 CCF信息学奥赛C++ 中小学初级组 第一轮真题-选择题解析

2023年 中小学信息学奥赛CSP-J真题解析 1、在C中,下面哪个关键字用于声明一个变量,其值不能被修改 A、unsigned B、const C、static D、mutable 答案:B 考点分析:主要考查变量声明相关知识,const是声明常量&…

LeetCode 刷题 [C++] 第98题.验证二叉搜索树

题目描述 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 题目分析 由题…