xilinx FPGA全局时钟资源的使用
1.什么是xilinx fpga全局时钟资源
时钟对于一个系统的作用不言而喻,就像人体的心脏一样,如果系统时钟的抖动、延迟、偏移过大,会导致系统的工作频率降低,严重时甚至会导致系统的时序错乱,实现不了预期的逻辑功能。xilinx fpga内的全局时钟资源可以很好的优化时钟的性能,因此在设计时要尽可能多的使用fpga内部的时钟资源。xilinx fpga内部的全局时钟采用全铜工艺实现,配合专用时钟缓冲和驱动结构,可以使进入全局时钟网络的时钟到达fpga内部各个逻辑单元的抖动和延迟最小。全局时钟资源是专用布线资源,存在于全铜布线层上,使用全局时钟资源不会影响芯片的其他布线资源。最好的全局时钟解决方案是:让时钟从全铜工艺的全局时钟输入管脚进入fpga,然后经内部的全局时钟缓冲单元去控制各个触发器。xilinx常用的全局时钟资源原语有:全局时钟缓冲IBUFG、差分全局时钟缓冲IBUFGDS、全局缓冲BUFG、数字时钟管理单元DCM、锁相环PLL。
2.全局时钟资源的使用方法
IBUFG是从全局时钟输入管脚输入的单端时钟的第一级缓冲,IBUFGDS是指的是差分时钟的缓冲。只要是从全局时钟管脚的输入的时钟必须要经过IBUFG,如果不经过,那么ise在布局布线时就会报错,反之如果使用了IBUFG,那么信号一定是从全局时钟输入管脚输入的,这是因为IBUFG和IBUFGDS的输入只和fpga的全局时钟输入引脚有物理上的连接,与普通的IO和内部逻辑块CLB没有物理上的连接。BUFG是全局缓冲,BUFG的输出到达fpga内部各个逻辑单元的时钟延迟与抖动都是最小的。BUFG不但可以驱动IBUFG和DCM的输出,还可以驱动其他普通的片内信号和普通io,当某个信号扇出很大时,而且要求的抖动延迟最小时,可以用BUFG驱动该信号,普通IO和普通的片内逻辑信号进入全局时钟布线层有一个固定的延迟,一般在10ns左右,即普通信号或普通IO从输入到BUFG的输出有一个约10ns左右的固有延迟,但BUFG的输出到片内所有的单元(IOB,CLB,选择性块RAM)的延时可以忽略不计。时钟资源原语的使用方法主要有以下四种:
1.IBUFG/IBUFGDS + BUFG
IBUFG IBUFG_INST(
.I(clk_in),
.O(clk_bufg)
); BUFG BUFG_INST(
.I(clk_bufg),
.O(clk_out)
);
2.内部逻辑信号 + BUFG
BUFG BUFG_INST(
.I(internal_sig),
.O(clk_out)
);
3.IBUFG/IBUFGDS + DCM + BUFG (常用方法,比较灵活)
IBUFG IBUFG_INST(
.I(clk_in),
.O(clk_bufg)
);
4.内部逻辑信号 + DCM + BUFG (DCM的信号源选择内部,不使用加了BUFG的外部信号源)
dcm dcm_inst (
.CLKIN_IN(internal_sig),
.RST_IN(dcm_lvds_rst),
.CLKDV_OUT(dcm_lvds_clk0_div),
.CLKFX_OUT(),
.CLK0_OUT(dcm_lvds_clk0),
.LOCKED_OUT(dcm_lvds_locked)
);
BUFG BUFG_sen_rx_div_clk(
.I(dcm_lvds_clk0_div),
.O(sen_rx_div_clk)
);
xilinx FPGA全局时钟资源的使用的更多相关文章
- Xilinx FPGA全局时钟和全局时钟资源的使用方法
对FPGA的全局时钟了解不多,遂转载一篇文档: http://xilinx.eetop.cn/?action-viewnews-itemid-42 目前,大型设计一般推荐使用同步时序电路.同步时序电路 ...
- 7系列FPGA的时钟资源——UG472
时钟架构总览 7系的FPGA使用了专用的全局(Global)和区域(Regional)IO和时钟资源来管理设计中各种的时钟需求.Clock Management Tiles(CMT)提供了时钟合成(C ...
- Xilinx FPGA全局介绍
Xilinx FPGA全局介绍 现场可编程门阵列 (FPGA) 具有诸多特性,无论是单独使用,抑或采用多样化架构,皆可作为宝贵的计算资产:许多设计人员并不熟悉 FPGA,亦不清楚如何将这类器件整合到设 ...
- FPGA开发时钟资源评估需要考虑的问题
在第一个独立开发的FPGA项目中,使用了Altera平台的三速以太网IP,工作在100M模式下,外部输入的PHY时钟频率为25MHz. 由于在前期没有注意这个外部输入的时钟,导致最后不得不在板子上飞线 ...
- 对FPGA的时钟资源理解(更新中)
7系列FPGA中包含了多达24个CMT(时钟管理单元)(实际上V7常见只有20个),MMCM和PLL均为时钟综合器,对外部输入时钟.内部时钟进行处理,生成需要的低抖动时钟.PLL是MMCM的功能子集, ...
- Xilinx原语学习之时钟资源相关原语
一直来,都是使用Vivado中自带的GMIItoRGMII IP核来完成GMII转RGMII的功能:尽管对GMII及RGMII协议都有一定的了解,但从没用代码实现过其功能.由于使用IP时,会涉及到MD ...
- Xilinx全局时钟
前言 Xilinx系列.ISE环境中,设计复杂工程时全局时钟系统的设计显得尤为重要. 一.时钟网络与全局缓冲 在XilinxFPGA中,时钟网络分为两类:全局时钟网络和I/O区域时钟网络.以全铜工艺实 ...
- 三叔学FPGA系列之一:Cyclone V中的时钟资源
之前的项目中更多的是有师兄提供经验和帮助,追求的是快速上手,所以不管对于硬件电路设计,还是verilog电路编程,甚至是FPGA内部的资源,都没来得及系统地学习,最近在做算法到电路的实现,正好系统学习 ...
- FPGA系列之一:Cyclone V中的时钟资源
之前的项目中更多的是有师兄提供经验和帮助,追求的是快速上手,所以不管对于硬件电路设计,还是verilog电路编程,甚至是FPGA内部的资源,都没来得及系统地学习,最近在做算法到电路的实现,正好系统学习 ...
随机推荐
- Android Studio 1.5运行问题
Error:Unable to start the daemon process: could not reserve enough space for object heap.Please assi ...
- [HDU5955]Guessing the Dice Roll
Problem Description There are N players playing a guessing game. Each player guesses a sequence cons ...
- Math中ceil中为什么会有负零
double c=Math.ceil(-0.5); double d=Math.floor(0.5); System.out.println(c); System.out.println(d); Sy ...
- SpringMvc启动源码解析
1. 前言 上篇文章介绍了Spring容器的初始化https://www.cnblogs.com/xiaobingblog/p/11738747.html,接下来介绍SpringMvc容器的初始化 2 ...
- 利用电脑开启自带虚拟wifi,无需第三方工具。
注:此方法只验证win 7以上系统,XP server 2016 系统未验证 1.新建记事本,在记事本中输入netsh wlan set hostednetwork mode=allow ssid= ...
- 深copy
更好的对一个对象进行复制 using System; using System.Collections.Generic; using System.Linq; using System.Text; u ...
- 彻底理解Python多线程中的setDaemon与join【配有GIF示意】
在进行Python多线程编程时, join() 和 setDaemon() 是最常用的方法,下面说说两者的用法和区别. 1.join () 例子:主线程A中,创建了子线程B,并且在主线程A中调用了B. ...
- OptimalSolution(1)--递归和动态规划(3)数组和字符串问题
一.最长递增子序列(LIS) 给定数组arr,返回arr的最长递增子序列.例如,arr={2,1,5,3,6,4,8,9,7},返回的最长递增子序列为{1,3,4,5,8,9} 1.时间复杂度为O(N ...
- TCP连接的关闭
原文地址:http://lib.csdn.net/article/computernetworks/17264 TCP连接的关闭有两个方法close和shutdown,这篇文章将尽量精简的说明它们 ...
- Spring Cloud alibaba网关 sentinel zuul 四 限流熔断
spring cloud alibaba 集成了 他内部开源的 Sentinel 熔断限流框架 Sentinel 介绍 官方网址 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentine ...