create_generated_clock invert preinvert shift_edge是否符合设计真实状态很重要【示例2】

article/2025/8/30 17:39:57

create_generated_clock符合设计真实状态很重要

  • 不是所有的invert clock与non-invert clock都有直接的反相关系
  • 另外一种计数器方式生成的时钟存在一定阶段的反相关系
    • 定义 cnt_div约束
      • 频率切换的问题
      • cnt_div与 upcnt_div是反相关系

仍然基于【示例1】的RTL代码。

不是所有的invert clock与non-invert clock都有直接的反相关系

分频后,normal_div2与 inverted_div2有明确的反相关系。但是 div4和 div8不是。这与具体设计直接相关。
在这里插入图片描述

另外一种计数器方式生成的时钟存在一定阶段的反相关系

无论2分频、4分频、8分频其实都一样,下面的波形以4分频为例。

在这里插入图片描述那么为什么不直接使用counter[2], counter[1], counter[0]生成时钟,然后通过mux选择一个?
这样也可以,只不过必须建立所有counter寄存器的时钟,才能遍历时钟路径。如果在计数器后面使用一个寄存器来生成,定义最高频率,也能遍历时钟路径,有机会少定义很多时钟。这个视设计环境而定。

在这里插入图片描述
需要注意,在cnter配置相同时,这两种RTL的时钟频率略有不同。

cnter直接定义在counter/q定义在后一级寄存器q
0不分频2分频
12分频4分频
34分频8分频
78分频16分频

本示例代码使用 定义在后一级寄存器q。

定义 cnt_div约束

频率切换的问题

在这里插入图片描述
在这里插入图片描述从仿真可以看到,更换分频时,不应该工作,等频率变化稳定之后,恢复工作。尤其是启动阶段。

在这里插入图片描述

cnt_div与 upcnt_div是反相关系

cnt_div根据向下计数生成,upcnt_div根据向上计数生成,相位正好相反,如果两者一起使用,或者如果其中一个与其它时钟一起使用,或者在当第一个生成时钟就要正式用于工作,那么必须准确定义与clk的相位关系。

在这里插入图片描述

create_generated_clock -name cnt_div2 [get_pins cnt_div_reg/Q] -divide_by 2 -master clk -source [get_ports clk] -invert
create_generated_clock -name upcnt_div2 [get_pins upcnt_div_reg/Q] -divide_by 2 -master clk -source [get_ports clk]

report_clocks:
Clock Period Waveform Attrs Sources
clk 20.00 {0 10} {clk}
cnt_div2 40.00 {20 40} G {cnt_div_reg/Q}
inv_clk_div2 40.00 {20 40} G {inverted_div2_reg/Q}
nom_clk_div2 40.00 {0 20} G {normal_div2_reg/Q}
sht_clk_div2 40.00 {10 30} G {clkout_reg/Q}
upcnt_div2 40.00 {0 20} G {upcnt_div_reg/Q}

这样定义的时钟与波形相符。


http://chatgpt.dhexx.cn/article/Z4GhskVX.shtml

相关文章

【水下目标检测】Underwater object detection using Invert Multi-Class Adaboost with deep learning

原文:Underwater object detection using Invert Multi-Class Adaboost with deep learning 论文被International Joint Conference on Neural Networks (IJCNN) 2020(CCF C类)收录, 开源代码:https://github.com/Long…

LVGL8_Esp32_颜色反转设置-INVERT_COLORS

在lvgl8中设置颜色反转。 找到自己对应的驱动的头文件定义部分,手动定义CONFIG_LV_INVERT_COLORS即可。 个人见解,感谢阅读。

transform.invert 预处理逆操作

transform.invert 预处理逆操作 from PIL import Image from torchvision import transforms import torch import numpy as npdef transform_invert(img_, transform_train):"""将data 进行反transfrom操作:param img_: tensor:param transform_train: torchv…

opencv invert()函数使用问题记录

参考博客 CV_8UC1/2/3 OpenCV求逆(伪逆)矩阵函数 invert()介绍 invert是opencv自带的求解逆矩阵或者伪逆矩阵的函数,具体形式如下: double invert(InputArray src, OutputArraydst, int flagsDECOMP_LU); src: 输…

Mysql链接工具

众所周知为了可以更好的操作 Mysql 数据库,我们都会采用远程连接工具的方式连接 Mysql 数据库,使用远程连接工具连接的好处在于: 方便远程访问:如果你需要在外部网络环境中访问 MySQL 数据库,使用远程连接工具可以方便…

开源、绿色,解压即可运行的数据库连接工具推荐

db beaver一个开源、绿色,解压即可运行的数据库连接工具,直接支持连接mysql 8。界面大气,功能强大,唯一的要求就是要安装的有jdk。 官网下载地址https://dbeaver.io/download/ 界面截图如下

一款连接SqlServer的数据库工具

由于自己使用的电脑系统是xp,而服务器上的数据库是SqlServer2012,于是用SqlServer2005管理端操作2012,总是不成功。在网上也百度谷歌了很久,也没有解决,也发了很多问没有找到解决。一次偶然在博客中看到有人使用Toad for SQL Serv…

MongoDb数据库连接工具

一、Mongo Management Studio Mongo Management Studio是一个用于数据库管理的免费MongoDB GUI工具。它轻巧,界面清晰,易于开发基于MongoDB的项目。 它使用nodeJs,Electron框架,MongoDB和AngularJs开发。MMS与MongoDB 3.0/3.2/3.4…

达梦数据库连接工具简介

达梦数据库连接工具简介 1、disql连接工具基本使用1.1、disql连接数据库(1)1.2、disql连接数据库(2) 2、manager工具2.1、在linux系统中使用下列命令启动图形化界面2.2、在windows中选择DM管理工具快捷方式2.4、连接数据库实例 1、…

Jdbc数据库的连接工具类

Jdbc数据库的连接工具类 1. 开篇简述2. 驱动导包3. 注意事项4. 代码实现5. 总结 1. 开篇简述 嗨,大家好!!! 在熬过了,有差不多一周多吧,小编最近不知道分享点什么好,这两天,琢磨琢磨…

程序与数据库连接工具与案例代码

文章目录 前言JDBC访问数据库流程JDBC访问数据库的步骤1、开始JDBC操作前要将驱动放到WEB-INF的lib目录下2、程序中首先导包import java.sql.*3、执行查询操作①、加载正确的数据库驱动程序②、定义所要连接数据库的地址③、建立与数据库的连接④、创建语句对象⑤、声明SQL语句…

通用数据库连接工具DBeaver

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/fenzhouzhen7118/article/details/82218044 本人电脑为win10系统。 之前连接数据库都使用navicat…

dbeaver一款全能的数据库连接工具dbeaver

记录一款全能的数据库连接工具dbeaver 特点: 免费、开源、免安装解压即用 当然官网也有商业版本,开源免费版基本够用了 Main web site 官网: https://dbeaver.io Source code 源码: https://github.com/dbeaver/dbeaver 本地下载 https://download.…

数据库连接工具类

数据库连接 概述一、jdbc实验环境搭建 二、Druid连接数据库实验环境搭建 三、Maven连接数据库实验环境搭建 四、mybatis连接数据库实验环境搭建 五、Spring连接数据库六、SSM 概述 什么是JDBC:Java连接数据库 原子性 (Atomicity)、 一致性(Consistency)、隔离性(Is…

正版数据库连接工具,DBeaver的安装与配置使用

之前一直使用的数据库连接工具是Navicat的破解版,相信很多人也和我一样,直到前段时间,发现了一款免费开源的数据库连接软件,使用起来也很方便顺手,那就是DB eaver ,今天将安装基础使用的教程分享出来。 DBe…

数据库连接工具---DBeaver

数据库连接工具---DBeaver ☁️前言⭐️下载安装🍋下载🍍安装 🏆连接Clickhouse✨快捷键 ☁️前言 在工作中使用DataGrip,发现创建Clickhouse表语句设置了字段注释,但是创建完之后,注释消失。发现是客户端…

真牛X!这款通用数据库连接工具DBeaver!可以连接和操作市面所有的数据库!...

来源:https://blog.csdn.net/horses/article/details/89683422在制作《SQL 入门教程》时,接触到了这款非常强大易用的数据库管理和开发工具:DBeaver,也就是上面这个可爱的小河狸。 DBeaver 是一个基于 Java 开发,免费开…

数据库链接工具

安装方式 Navicat 自行百度需要破解 展示效果

除了大家知道的navicat,再介绍两款免费的数据库连接工具

因为navicat如果以前没有navicat的破解版就很难用现在网上的免费连接数据库工具了,所以,在这里我推荐大家使用两款免费的连接数据库工具。 第一款是开源免费的DBeaver 这是我上班,项目经理也可以说是我师傅教我的,毕竟免费&…

发现极为好用的数据库连接工具,基本上包含所有数据库DBeaver

1.DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好的 ASL 协议。可以通过官方网站或者 Github 进行下载。 由于 DBeaver 基于 Java 开发,可以运行在各种操作系统上,包括:Windows、Lin…