FPGA时序约束--进阶篇(主时钟约束)

news2024/9/22 13:38:26

在FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的基础知识。

本文将重点讲解主时钟约束设置,给出详细的约束命令,并介绍了在Vivado中如何写入主时钟约束。

一、主时钟约束

主时钟是FPGA电路中最基础的时钟,其稳定性和精确性对电路的稳定运行有着至关重要的作用。在时序约束中,我们需要准确地定义主时钟的时钟约束,以确保电路的时序约束得以实现。

在Vivado中,我们可以使用create_clock命令来定义主时钟的时钟约束,其语法如下:

create_clock -name <clock_name> -period <clk_period> [ -waveform {<rise_time> <fall_time>} ] [get_ports <input_port>]

参数

含义

-name

用于给时钟命名

-period

用于定义时钟周期

-waveform

波形参数,可以理解为占空比,一个周期时间内,rise_time表示第一个上升沿时刻,fall_time表示第一个下降沿时刻。
不设置,则表示默认为50%的占空比

get_ports

指定工程里的模块时钟信号名

这里需要注意的是使用create_clock创建的时钟必须是主时钟primary clock。

FPGA中的主时钟通常有两种来源:

  • 由外部时钟源(晶振)提供,通过引脚进入。

  • 带高速收发器(GT)FPGA芯片型号,有GT时钟RXOUTCLK或TXOUTCLK。

对于Xilinx 7系列FPGA,需要对GT的两个时钟都添加约束,但对于UltraScale以及以上系列FPGA,只需对GT的输入时钟约束即可。

1、外部输入的单端主时钟信号

设定从引脚clk输入外部时钟,时钟周期为12ns,占空比50%,相移为0,则主时钟约束如下所示:

create_clock -period 12 [get_ports clk]

如果存在相移为90,则主时钟约束变为

create_clock -period 12 -waveform {3 9} [get_ports clk]

2、外部输入的差分时钟信号

PGA差分时钟是指通过时钟管脚的P端和N端共同进来的时钟信号。通常应用于高频或精度要求较高的场合,它的作用是消除共模噪声,从而提高系统性能。

只需要约束差分时钟的P端即可,不能同时约束P端和N端,N端可以被软件自动识别到。

比如差分时钟sys_clk_p和sys_clk_n,时钟周期为6.667ns,则约束为:

create_clock -name sys_clk -period 6.667 [get_ports sys_clk_p]

3、高速收发器GT时钟信号

FPGA高速收发器GT时钟信号,是指在FPGA中使用高速收发器GT(Gigabit Transceiver)进行信号收发时,需要使用与其速率相匹配的时钟信号进行同步传输。这样做可以确保信号稳定地传输,避免了数据传输中可能出现的误码情况。

比如时钟源由高速收发器gt0提供,则时序约束为:

create_clock -name rx0_outclk -period 3.333 [get_pins gt0/RXOUTCLK]
create_clock -name tx0_outclk -period 3.333 [get_pins gt0/TXOUTCLK]

二、Vivado添加时序约束

1、新建XDC文件,或添加已有的XDC文件

点击“+”号,选择“add or create constras”,点击下一步。

选择“create file”,填入时序文件名即可。

2、添加时序约束

(1)方法1

直接打开XDC文件,写入时序约束语句即可

(2)方法2

在将工程综合Synthesis完成后,点开“Open Synthesized Design”,等待打开完成后,直接在TCL console窗口中输入时序约束语句,回车即可。

(3)方法3

在将工程综合Synthesis完成后,点开“Edit Timing Constraints”,等待打开GUI界面。

在“分类区”选中要创建的约束类型,点击“+”号,创建约束,弹出约束创建界面。

点击source objects右侧的“...”,打开模块接口搜索界面,并点击find按钮,选中“sys_clk”信号,点击“右箭头”,最后点击set即可。

最后输入时钟名,时钟周期,和波形参数即可,点击ok,并“ctrl + S”保存即可。

三、总结

主时钟约束是FPGA中常见的操作,必须掌握,本文已经详细介绍了操作命令和操作示范,希望可以帮助到大家学习并掌握这个知识。


本文将不断定期更新中,码字不易,点⭐️赞,收⭐️藏一下,不走丢哦

本文由FPGA入门到精通原创,有任何问题,都可以在评论区和我交流哦

学习资料分享,github开源代码:“FPGA知识库”

您的支持是我持续创作的最大动力!如果本文对您有帮助,请给一个鼓励,谢谢。

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

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

相关文章

一文详解!接口测试(http与rpc)总结

目录 前言&#xff1a; 一、了解一下HTTP与RPC 二、HTTP接口测试 三、RPC接口测试 四、接口测试用例设计 五、测试思路总结 前言&#xff1a; 在接口测试方面&#xff0c;常见的接口类型有HTTP接口和RPC接口。这两者的测试方法略有不同&#xff0c;在测试前需要进行技术选…

[INFO] [copilotIgnore] inactive,github copilot没反应怎么解决

在使用github copilot的时候&#xff0c;插件不工作&#xff0c;后台出现了这种输出&#xff0c; 这种情况下就是它的激活出现了问题&#xff0c;如果账号的使用权没有问题的话&#xff0c;就将该插件disable之后再重新enable&#xff0c;重新观察输出&#xff0c;就会看到copi…

LAMP架构搭建实操

目录 一、LAMP架构概述 二、LAMP框架搭建 1.准备工作 2.部署apache 3.部署mysql 4.部署php 三、部署BBS论坛 一、LAMP架构概述 LAMP架构是目前成熟的企业网站应用模式之一&#xff0c;指的是协同工作的一整套系统和相关软件&#xff0c;能够提供动态Web站点服务及其应用…

win11系统提示msvcp140.dll丢失的三个解决方法,简单实用

Win11系统在运行photoshop或其他软件&#xff0c;游戏的时候&#xff0c;电脑提示“找不到msvcp140.dll”&#xff0c;“msvcp140.dll丢失”&#xff0c;“无法定位输入点msvcp140.dll”等问题&#xff0c;都是由于Windows11系统中的msvcp140.dll文件丢失或者损坏了。 问题场景…

数据结构 串

串 术语概念 在数据结构中&#xff0c;串&#xff08;String&#xff09;是由零个或多个字符组成的有限序列。它是一种常见的数据类型&#xff0c;常用于表示文本、字符串和符号序列等信息。串可以包含任意字符&#xff0c;包括字母、数字、符号以及空格等。 主串&#xff08…

CANDENCE : 如何绘制元器件

如何绘制元器件 绘制元器件之前先新建一个原理图库。 step1:打开某一个原理图工程 step2:在该工程系下新建一个库文件&#xff0c;如下图&#xff1a; 新建完成&#xff0c;如下图&#xff1a; 右键点击保存&#xff1a;save。 命名并保存&#xff0c;保存的位置自己决定 …

AI - stable-diffusion 艺术化二维码

系列文章&#xff1a; 《AI - stable-diffusion(AI 绘画)的搭建与使用》《AI - AI 绘画的精准控图(ControlNet)》 一、介绍 近日&#xff0c;AI 绘画&#xff08;stable-diffusion&#xff09;用来艺术化二维码算是比较火热的事了&#xff0c;这个 idea 是由国人用 Checkpoi…

Spring Security 实战篇

文章目录 前言内存版(memory)数据库库版(jdbc)自定义登录 - 单体&#xff08;custom-login-single&#xff09;自定义登录 - 前后分离会话一致性方案方案一方案二方案三为什么不用JWT 登录改json方式登录&#xff08;custom-login-json&#xff09;认证密码加密登录&#xff08…

【欧瑞博智能家居】ZigBee Mini网关、超静音智能开合帘电机 添加操作流程

目录 一、添加ZigBee Mini网关 二、添加超静音智能开合帘电机 参考资料 一、添加ZigBee Mini网关 1. 下载《智家365》APP 2. 网关通电&#xff0c;用网线连接路由器的网线接口 3. 再次扫描产品手册里面的二维码添加ZigBee Mini网关&#xff0c;注意手机wifi要在同一个网络…

Nucleo-F411RE (STM32F411)LL库体验 10 - RT-Thread nano finsh的移植

Nucleo-F411RE &#xff08;STM32F411&#xff09;LL库体验 10 - RT-Thread nano finsh的移植 1、Makefile中添加finsh的编译 编译报错如下&#xff1a; 在rtconfig.h添加#include “finsh_config.h” 继续编译&#xff0c;继续报错&#xff1a; 这里是个WEAK函数&#xff…

【python中对点云PCL库的下载安装与配置】

需要的资料&#xff1a; python_pcl-0.3.1-cp36-cp36m-win_amd64.whl 压缩包&#xff1a;pcl-1.12.1-pdb-msvc2019-win64 pcl程序&#xff1a;PCL-1.12.1-AllInOne-msvc2019-win64 网盘链接&#xff1a;https://pan.baidu.com/s/184yY7fc5rqwwd9F4cMncDw 提取码&#xff1a…

SpringSecurity(一):权限管理设计与实现(官文英解+源码调试+基本环境搭建)

权限管理设计与实现 前言权限管理认证授权安全管理框架 整体架构认证AuthenticationManagerAuthenticationSecurityContextHolder 授权AccessDecisionManagerAccessDecisionVoterConfigAttribute 环境搭建技术栈创建项目整合Spring Security 实现原理官方文档解读A Review of F…

Jmeter多接口测试之参数传递

目录 前言&#xff1a; 接口示例 正则表达式提取器 正则表达式提取实例 Json提取器 Json提取器实例 前言&#xff1a; 在进行多接口测试时&#xff0c;有些情况下需要将前一个接口返回数据作为后一个接口的参数&#xff0c;以模拟实际场景。JMeter作为一款常用的性能测试…

【百问百答】可靠性基础知识第六期

1.跌落试验需要确认哪些试验条件? 试验条件包括&#xff1a;释放高度&#xff0c;释放方法和试验表面。 2.什么是跌落试验的试验表面? 试验表面应该是混凝土或者是钢制的平滑坚硬的刚性表面&#xff0c;必要时&#xff0c;可按照相关规范规定其他表面。 3.什么是跌落高度? 指…

云安全技术(二)之云计算参考架构

云计算参考架构 1.1 描述云计算参考架构 Describe Cloud Reference Architecture 多个主要组件组合在一起形成云架构(Cloud Architecture)和云实现的全貌。涉及的组件包括管理和运营云环境的活动(Activity)、角色(Role)和能力(Capability)&#xff0c;以及基于云托管和服务交…

CSDN如何快速获得粉丝和高质量铁粉

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

Linux:DNS服务(bind)

目录 环境 主服务器和从服务器的配置环境 主服务器 从服务器 主DNS配置文件 dns从服务器配置 环境 如果你只需要主dns服务器那么你只需要挑着主dns服务器配置看即可 我这里使用了4台虚拟机&#xff0c;你也可以不使用这么多根据你的电脑性能去调整 他们必须要在同一个网段…

什么是渗透测试?渗透等于入侵?

什么是渗透测试&#xff1f; 渗透测试 (penetration test)并没有一个标准的定义&#xff0c;国外一些安全组织达成共识的通用说法是&#xff1a;渗透测试是通过模拟恶意黑客的攻击方法&#xff0c;来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术…

6.5 this关键字

1. 关键字&#xff1a;this 1.1 this 是什么&#xff1f; 首先。this在Java中是一个关键字&#xff0c;this 指代的是本类的引用对象 1.2 什么时候使用 this 1.2.1 实例方法或构造器中使用当前对象的成员 1、在实例方法或构造器中&#xff0c;我们在使用get和set方法中使用…

Nucleo-F411RE (STM32F411)LL库体验 9 - RT-Thread nano的移植

Nucleo-F411RE &#xff08;STM32F411&#xff09;LL库体验 9 - RT-Thread nano的移植 1、RT-Thread下载 这一节基于rt-thread nano版本&#xff0c;进行内核的移植&#xff0c;不包含任何组件。移植成功后&#xff0c;可创建任务&#xff0c;串口输出RT-Thread版本信息。 …