当前位置: 首页 > news >正文

在vivado中对数据进行延时,时序对齐问题上的理清

        在verilog的ISP处理流程中,在完成第一个模块的过程中,我经常感到困惑,到底是延时了多少个时钟?今日对这几个进行分类理解。

目录

1.输入信号激励源描述

1.1将数据延时[9]个clk

1.2将vtdc与hzdc延时[9]个clk(等价于单bit的数据延时clk)

1.3将vtdc延时2个hzdc长度

2.总结


1.输入信号激励源描述

        分为水平信号r_vtdc与垂直信号r_hzdc,r_data为传输过来的数据,接下来对该信号分类进行延时。

        输入:

 -----------------------------------------------------------------------输入always @(posedge pi_pxck)beginr_vtdc   <= pi_darkvtdc  ;r_hzdc   <= pi_darkhzdc  ;r_data   <= pi_darkcpa   ;end

1.1将数据延时[9]个clk

          分析:对数据做延时时钟个数大小,需要建立相应的数组,每来1个clk,将数组里i存储上的数据传给第i+1个,从而达到延时时钟个数大小的时钟。但往往设置的数组大小会偏大几个,跟其中的非阻塞赋值有关。

-----------------------------------------------------------------数据延时时钟个数    integer                             i                                        ;//循环reg                 [p_mtgrcpwd - 1 : 0]    shift_reg[0:9]                         ; //缓存数组reg                 [p_mtgrcpwd - 1 : 0]    r_declk   = {(p_mtgrcpwd){1'd0}}       ;  //延时时钟个数输出的数据   --------------------------------------------------------------------数组初始化为0    initial beginfor ( i = 0; i < 10; i = i + 1) beginshift_reg[i] <= {p_mtgrcpwd{1'b0}};endend  ----------------------------------------------------------------数据延时时钟个数always@(posedge pi_pxck)beginbeginshift_reg[0] <= r_data; // 将新值移入寄存器endfor ( i = 0; i <9; i = i+1) beginshift_reg[i+1] <= shift_reg[i];endr_declk <= shift_reg[9];end 

  带来延时的几处地方有:

(1)shift_reg[0] <= r_data; r_data非阻塞赋值传给shift_reg[0]延时1个时钟。

(2) shift_reg[i+1] <= shift_reg[i];延时9个clk

(3)r_declk <= shift_reg[9];延时1个clk

共计延时:1+9+1=11个clk

1.2将vtdc与hzdc延时[9]个clk(等价于单bit的数据延时clk)

同1.1原理相同,只是不需要建立数组,因为是但bit,只是延时高低电平而已。

-----------------------------------------------------------------------------------------------------延时vtdc与hzdcreg                                 [9 : 0]                                         r_sfvtdc = 10'd0                        ;reg                                 [9 : 0]                                         r_sfhzdc = 10'd0                        ;  reg                                                                                 vtdca    = 10'd0                        ;        reg                                                                                 hzdca    = 10'd0                        ;  ---------------------------------------------------------------------------------------------------延时always @(posedge pi_pxck)beginr_sfvtdc <= {r_sfvtdc[8 : 0], r_vtdc};r_sfhzdc <= {r_sfhzdc[8 : 0], r_hzdc};end
---------------------------------------------------------------------------------------------------垂直与水平信号输出    always @(posedge pi_pxck)beginvtdca <= r_sfvtdc[9];hzdca <= r_sfhzdc[9];end        

带来延时的几处地方有:

(1) r_sfvtdc <= {r_sfvtdc[8 : 0], r_vtdc};延时1个clk。

(2) vtdca <= r_sfvtdc[9];延时10个clk。

        共计延时11个clk。

1.3将vtdc延时2个hzdc长度

每次水平信号出现下降沿时,才将vtdc传给延时的数组,r_sfvtdc[x]要与if判断条件下的r_sfhzdc对应的延时相对齐,若用vtdc,会少一行,且延时时钟个数偏差会较大。

--------------------------------------------------------------vtdc延时2行reg                    [1 : 0]     r_sfvtdb = 2'd0                           ;        reg                                vtdcb    = 1'd0                           ;   ----------------------------------------------------------vtdc延时2行准备always @(posedge pi_pxck)beginif(r_sfhzdc[1:0] == 2'b10)                      //代表出现下降沿r_sfvtdb <= {r_sfvtdb[0],r_sfvtdc[1] };        end      --------------------------------------------------------vtdc延时2行always @(posedge pi_pxck)beginvtdcb <= r_sfvtdb[1];       end   

(1) r_sfvtdb <= {r_sfvtdb[0],r_sfvtdc[1] };延时2个clk

(2) vtdcb <= r_sfvtdb[1]; 延时2行1个clk

共计2行3个clk。

2.总结

其实也不能单纯的说延时多少个clk。而是以,此时时钟的上升沿为参考标准(此时的数据相对齐的时刻),此刻信号从1变为0,认为是1。此时刻信号从0变成1,认为是0。相对应的分析时序,理清思路。以垂直或水平信号的上升沿/下降沿为基准,看延时了多少个clk。

相关文章:

在vivado中对数据进行延时,时序对齐问题上的理清

在verilog的ISP处理流程中&#xff0c;在完成第一个模块的过程中&#xff0c;我经常感到困惑&#xff0c;到底是延时了多少个时钟&#xff1f;今日对这几个进行分类理解。 目录 1.输入信号激励源描述 1.1将数据延时[9]个clk 1.2将vtdc与hzdc延时[9]个clk(等价于单bit的数据…...

《只狼》运行时提示“mfc140u.dll文件缺失”是什么原因?要怎么解决?

《只狼》运行时提示“mfc140u.dll文件缺失”是什么原因&#xff1f;要怎么解决&#xff1f; 宝子们&#xff0c;是不是在玩《只狼》的时候&#xff0c;突然弹出一个提示&#xff1a;“找不到mfc140u.dll文件”&#xff1f;这可真是让人着急上火&#xff01;别慌&#xff0c;今…...

vue学习笔记7

打包发布 目标&#xff1a;明确打包的作用 说明&#xff1a;vue脚手架只是开发过程中&#xff0c;协助开发的工具&#xff0c;当真正开发完了 > 脚手架不参与上线 打包的作用&#xff1a; 将多个文件压缩合并成一个文件&#xff0c;语法降级&#xff0c;less sass ts 语法…...

Unity 增量打包AssetBundle

背景 打包太慢了&#xff0c;想要没改动的资源不重新打包浪费时间。 来源 官方文章&#xff1a;https://forum.unity.com/threads/about-incremental-build-and-asset-bundle-hashes.1436032/ 官网AB介绍&#xff1a;https://learn.unity.com/tutorial/assets-resources-and…...

嵌入式八股文面试题(二)C语言算法

相关概念请查看文章&#xff1a;C语言概念。 1. 如何实现一个简单的内存池&#xff1f; 简单实现&#xff1a; #include <stdio.h> #include <stdlib.h>//内存块 typedef struct MemoryBlock {void *data; // 内存块起始地址struct MemoryBlock *next; // 下一个内…...

尚硅谷爬虫note005

一、编解码 1.get请求的quote方法 将汉字转为Unicode字符 # _*_ coding : utf-8 _*_ # Time : 2025/2/12 16:33 # Author : 20250206-里奥 # File : demo19_get请求的quote方法 # Project : PythonProject10-14# 景甜page # https://www.baidu.com/s?ieutf-8&f8&rsv…...

xml 和json互转工具

工具1 有个问题会导致springboot返回捕获的异常编程xml格式 import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import org.json.JSONObject; import org.json.XML; import org.w3c.dom.Document;import javax.xm…...

ElementUI 抽屉组件高度封装

在前端开发中&#xff0c;ElementUI 的el-drawer组件虽实用&#xff0c;但为满足复杂业务需求&#xff0c;如统一样式、特定交互和灵活使用&#xff0c;常需二次封装。下面将带你实现一个高度封装的 ElementUI 抽屉组件。 创建基础封装组件 创建MyDrawer.vue&#xff0c;引入e…...

深入解析:如何在C#和C/C++之间安全高效地通过P/Invoke传递多维数组

在工业控制、机器人编程和物联网等领域&#xff0c;我们经常需要让C#这样的托管语言与C/C编写的底层库进行交互。在这个过程中&#xff0c;遇到需要传递多维数组的场景时&#xff0c;许多开发者会意外遭遇System.Runtime.InteropServices.MarshalDirectiveException异常。本文将…...

轻量级在线ETL数据集成工具架构设计与技术实现深度剖析

在当今数字化时代,企业面临着海量异构数据的整合挑战。ETL(Extract, Transform, Load)工具作为数据集成的核心,负责将分散在不同数据源中的数据进行抽取、转换和加载,以构建统一的数据视图。本文将深入剖析一款基于诺依框架开发的在线ETL数据集成工具,重点阐述其架构设计…...

二、k8s项目的生命周期

项目的生命周期 创建-----------》发布-----------》更新--------》回滚----------》删除 kubectl create deployment nginx1 --imagenginx:1.22 --replicas3 基于deployment控制器创建pod 控制器的名称是nginx1 pod使用的镜像:nginx:1.22 --replicas3 pod的数量有多少 3个…...

GPT 系列模型发展史:从 GPT 到 ChatGPT 的演进与技术细节

从 GPT 到 ChatGPT&#xff0c;OpenAI 用短短几年时间&#xff0c;彻底改变了自然语言处理&#xff08;NLP&#xff09;的格局。让我们一起回顾这段激动人心的技术演进史&#xff01;&#x1f680; &#x1f539; GPT&#xff08;2018&#xff09;&#xff1a; 划时代的起点&a…...

C#语言的云计算

C#语言在云计算中的应用 引言 随着信息技术的飞速发展&#xff0c;云计算已经成为了现代计算架构的重要组成部分。传统的本地计算方式逐渐被云计算所取代&#xff0c;使得企业与开发者能够更高效地处理数据、部署应用程序以及进行资源管理。在众多编程语言中&#xff0c;C#以…...

金仓数据库-KingbaseES-学习-01-单机部署(非图形化安装)

目录 一、环境信息 二、介绍 三、下载地址 四、安装步骤 1、配置内核参数 &#xff08;1&#xff09;文件系统相关 &#xff08;2&#xff09;共享内存与信号量&#xff08;IPC&#xff09; &#xff08;3&#xff09;网络与端口配置 &#xff08;4&#xff09;关键场…...

海外服务器都有什么作用?

海外服务器具体就是指部署在中国大陆以外地区的服务器&#xff0c;企业选择租用海外服务器能够显著提高不同国家和地区用户的访问速度&#xff0c;当网站的服务器部署在目标用户所在地附近时&#xff0c;数据信息所传输的距离就会缩短&#xff0c;大大降低了网络访问的延迟度&a…...

git bash在github的库中上传或更新本地文件

一、将本地文件上传到 GitHub 仓库 1. 创建 GitHub 仓库 如果你还没有在 GitHub 上创建仓库&#xff0c;首先需要创建一个新的仓库&#xff1a; 登录到 GitHub。点击右上角的 按钮&#xff0c;选择 New repository。给你的仓库起个名字&#xff0c;并选择 Public 或 Privat…...

vue2中 computed 计算属性

文章目录 vue2中 computed 计算属性1. 什么是计算属性&#xff1f;2. 基本用法1. 定义计算属性2. 计算属性的缓存特性 3. 计算属性的高级用法1. 计算属性的 Getter 和 Setter 方法2. 计算属性的依赖追踪 4. 计算属性与方法的区别5. 实际应用案例1. 格式化数据2. 计算总价3. 动态…...

自定义基座实时采集uniapp日志

自定义基座实时采集uniapp日志 打测试包给远端现场(测试/客户)实际测试时也能实时看到日志了&#xff0c;也有代码行数显示。 流程设计 #mermaid-svg-1I5W9r1DU4xUsaTF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid…...

基于YALMIP和cplex工具箱的微电网最优调度算法matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 系统建模 4.2 YALMIP工具箱 4.3 CPLEX工具箱 5.完整工程文件 1.课题概述 基于YALMIP和cplex工具箱的微电网最优调度算法matlab仿真。通过YALMIP和cplex这两个工具箱&#xff0c;完成微电网的最优调…...

Effective Objective-C 2.0 读书笔记——内存管理(上)

Effective Objective-C 2.0 读书笔记——内存管理&#xff08;上&#xff09; 文章目录 Effective Objective-C 2.0 读书笔记——内存管理&#xff08;上&#xff09;引用计数属性存取方法中的内存管理autorelease保留环 ARCARC必须遵循的方法命名原则ARC 的自动优化&#xff1…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器

一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下&#xff0c;音视频内容犹如璀璨繁星&#xff0c;点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频&#xff0c;到在线课堂中知识渊博的专家授课&#xff0c;再到影视平台上扣人心弦的高清大片&#xff0c;音…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序&#xff0c;无论是测试应用程序、搜寻漏洞还是收集情报&#xff0c;它们都能提升工作流程。 FoxyProxy 代理管理工具&#xff0c;此扩展简化了使用代理&#xff08;如 Burp…...

PH热榜 | 2025-06-08

1. Thiings 标语&#xff1a;一套超过1900个免费AI生成的3D图标集合 介绍&#xff1a;Thiings是一个不断扩展的免费AI生成3D图标库&#xff0c;目前已有超过1900个图标。你可以按照主题浏览&#xff0c;生成自己的图标&#xff0c;或者下载整个图标集。所有图标都可以在个人或…...