FPGA设计时序约束十六、虚拟时钟Virtual Clock

这篇具有很好参考价值的文章主要介绍了FPGA设计时序约束十六、虚拟时钟Virtual Clock。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、序言

二、Virtual Clock

2.1 设置界面

三、工程示例

3.1 工程设计

3.2 工程代码

3.3 时序报告

3.4 答疑

四、参考资料


一、序言

    在时序约束中,存在一个特殊的时序约束,虚拟时钟Virtual Clock约束,根据名称可看出时钟不是实际存在的,主要是在STA分析时序时提供一个参考。

二、Virtual Clock

    相较于create_clock创建主时钟约束到实际的物理位置,虚拟时钟约束时不需要指定约束对象,主要用于辅助内部设计与外部设计进行时序分析

    常用场景如下

a)外部单元的I/O参考时钟不在设计内部的时钟中

b)FPGA的I/O路径中关联的内部生成时钟和器件内部的源时钟关系不确定(通常是两个时钟周期的比例不是整数时,会引起时序过紧以及不合实际的时序路径要求)

c)在不修改内部时钟的设置时,想要为I/O 延时约束相关的时钟设置不同的时钟抖动与延时时,也可以设置虚拟时钟

注:在被输入或输出时延约束时,虚拟时钟必须先被定义

2.1 设置界面

    进入Timing Constraints界面, 和主时钟约束使用相同的命令create_clock进行创建,clocks选择Create Clock,单击添加图标或双击Create Clock,进入创建窗口。

FPGA设计时序约束十六、虚拟时钟Virtual Clock,FPGA所知所见所解,fpga开发,时序约束,虚拟时钟,VIRTUAL_CLOCK,主时钟,Vivado

 

设置界面中的说明也解释了不指定源对象source objects时,即是创建的虚拟时钟,其余设置和主时钟的设置相同

FPGA设计时序约束十六、虚拟时钟Virtual Clock,FPGA所知所见所解,fpga开发,时序约束,虚拟时钟,VIRTUAL_CLOCK,主时钟,Vivado

 

已创建周期为10ns的虚拟时钟virtual_clk为例

create_clock -period 10.000 -name virtual_clk -waveform {0.000 5.000} -add

FPGA设计时序约束十六、虚拟时钟Virtual Clock,FPGA所知所见所解,fpga开发,时序约束,虚拟时钟,VIRTUAL_CLOCK,主时钟,Vivado

 

三、工程示例

3.1 工程设计

以下图所示工程为例,其中DUA为FPGA内部设计,外部信号通过in端口进入,并且通过out端口从FPGA输出。

FPGA设计时序约束十六、虚拟时钟Virtual Clock,FPGA所知所见所解,fpga开发,时序约束,虚拟时钟,VIRTUAL_CLOCK,主时钟,Vivado

 

DUA中模块的时钟为clk,周期为10ns。输入端设置虚拟时钟virtual_clkin,周期为10ns,高电平在2-8ns内,输出端的虚拟时钟为virtual_clkout,周期为8ns。输入时延、输出时延都为3ns。

create_clock -period 10.000 -name clk -waveform {0.000 5.000} [get_ports clk] #创建主时钟clk
create_clock -period 10.000 -name virtual_clkin -waveform {2.000 8.000}  #创建虚拟时钟virtual_clkin
create_clock -period 8.000 -name virtual_clkout -waveform {0.000 4.000}  #创建虚拟时钟virtual_clkout
set_input_delay -clock [get_clocks virtual_clkin] -max 3.000 [get_ports in]
set_output_delay -clock [get_clocks virtual_clkout] 3.000 [get_ports -filter { NAME =~  "*" && DIRECTION == "OUT" }]

根据上图连接关系,时序关系见下图,Virtual_clkin的上升沿最迟到达时间为0.6+2.1+输入时延<8ns,最大输入时延最大值为5.3ns。

FPGA设计时序约束十六、虚拟时钟Virtual Clock,FPGA所知所见所解,fpga开发,时序约束,虚拟时钟,VIRTUAL_CLOCK,主时钟,Vivado

 

3.2 工程代码

为了简化DUA,下面将用一个触发器代替DUA

module virtual_clock(rst,in,clk,out);
input  in,rst,clk;
output  out;
reg q;
always@(posedge clk)
    begin
    if(!rst)
        q<=0;
    else 
        q<=in;
    end
assign out=q;

endmodule

综合网表连接图如下图所示,也即一个触发器

FPGA设计时序约束十六、虚拟时钟Virtual Clock,FPGA所知所见所解,fpga开发,时序约束,虚拟时钟,VIRTUAL_CLOCK,主时钟,Vivado

 

3.3 时序报告

    summar要求时间即为虚拟时钟virtual_clkin的上升沿到达clk上升沿的时间8ns,input delay为约束值3ns

FPGA设计时序约束十六、虚拟时钟Virtual Clock,FPGA所知所见所解,fpga开发,时序约束,虚拟时钟,VIRTUAL_CLOCK,主时钟,Vivado

 

data path中虚拟时钟Virtual_clkin上升沿在2ns后出现,然后是input delay 3ns。

FPGA设计时序约束十六、虚拟时钟Virtual Clock,FPGA所知所见所解,fpga开发,时序约束,虚拟时钟,VIRTUAL_CLOCK,主时钟,Vivado

 

3.4 答疑

    为什么input delay,output delay的虚拟时钟不设置为真实的时钟如上述例子的clk?这是因为实际的时钟clk是没有到外部单元时钟引脚的路径,时序工具无法计算时钟的时延,对于输出时延,由于捕获时钟时延根本不存在,分析结果对于setup检查将会是悲观的,对于hold将会是乐观的。

四、参考资料

用户手册:ug903-vivado-using-constraints-en-us-2022.2.pdf

链接:https://pan.baidu.com/s/17AK_-J4wRXiFLtLTorlrwg?pwd=mylt 

提取码:mylt   文章来源地址https://www.toymoban.com/news/detail-797362.html

到了这里,关于FPGA设计时序约束十六、虚拟时钟Virtual Clock的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • FPGA时序分析与约束(10)——生成时钟

            最复杂的设计往往需要多个时钟来完成相应的功能。当设计中存在多个时钟的时候,它们需要相互协作或各司其职。异步时钟是不能共享确定相位关系的时钟信号,当多个时钟域交互时,设计中只有异步时钟很难满足建立和保持要求。我们将在后面的内容中介绍这部

    2024年02月21日
    浏览(44)
  • FPGA时序分析与约束(3)——时钟不确定性

            在之前的文章中,我们介绍了组合电路的时序和时序电路的时序问题,在阅读本文章之前,强烈推荐先阅读完本系列之前的文章,因为这是我们继续学习的理论的理论基础,前文链接: FPGA时序分析与约束(2)——时序电路时序         本文我们将介绍时钟相关

    2024年02月10日
    浏览(42)
  • 【ug903】FPGA时序约束学习(4)-如何约束跨时钟域(Clock domain crossing,CDC)

    时序约束系列: 如何约束时钟 主时钟、虚拟时钟、生成时钟、时钟组、时钟不确定性 如何约束输入输出延迟 输入延迟、输出延迟 如何约束时序例外 多周期路径、输入输出延迟、虚假路径、最大最小延迟 如何约束跨时钟域 总线偏斜 跨时钟域(Clock Domain Crossing,CDC)约束适用

    2024年02月08日
    浏览(41)
  • FPGA的时序分析、约束和收敛(8)----关于时序路径、时钟悲观度和建立时间/保持时间的一些问题

    目录 写在前面 1、为什么同一条时序路径在报表里的值不一样?

    2024年02月12日
    浏览(57)
  • FPGA设计时序约束二、输入延时与输出延时

    目录 一、背景 二、set_input_delay 2.1 set_input_delay含义 2.2 set_input_delay参数说明 2.3 使用样例 三、set_output_delay 3.1 set_output_delay含义 3.2 set_output_delay参数说明 3.3 使用样例 四、样例工程 4.1 工程代码 4.2 时序报告 五、参考资料     为了在设计中准确的模拟信号从FPGA传输到外部或

    2024年02月07日
    浏览(39)
  • 【FPGA】Verilog:时序电路设计 | 二进制计数器 | 计数器 | 分频器 | 时序约束

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:计数器与分频器   ​​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用

    2024年02月02日
    浏览(62)
  • 【数字IC/FPFA】时序约束--时钟约束

    时钟周期约束,顾名思义,就是我们对时钟的周期进行约束,这个约束是我们用的最多的约束了,也是最重要的约束。 下面我们以vivado中的时钟约束为例,介绍时钟约束的相关内容。 在Vivado中我们通过使用create_clock来创建时钟周期约束。使用方法如下: 其中,参数name为创建

    2024年02月03日
    浏览(45)
  • 基于Xlinx的时序分析、约束和收敛(4)----主时钟约束

    目录 主时钟约束语法 例1:引脚输入的主时钟约束 例2:高速收发器GT的恢复时钟

    2023年04月17日
    浏览(40)
  • FPGA时序分析与时序约束(四)——时序例外约束

    目录 一、时序例外约束 1.1 为什么需要时序例外约束 1.2 时序例外约束分类 二、多周期约束 2.1 多周期约束语法 2.2 同频同相时钟的多周期约束 2.3 同频异相时钟的多周期约束 2.4 慢时钟域到快时钟域的多周期约束 2.5 快时钟域到慢时钟域的多周期约束 三、虚假路径约束 四、最

    2024年01月20日
    浏览(44)
  • FPGA时序约束与分析(1) --- 时序约束概述

    本系列参考文献 — FPGA时序与约束分析-吴厚航 FPGA从综合到实现需要的过程如下:synth_design - opt_design - place-design - phys_opt_design - route_design 1、时序约束的理解 2、时序约束的基本路径 3、时序约束的步骤 4、时序约束的主要方法 5、查看相关时序信息 FPGA的设计约束分为物理约束

    2024年02月16日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包