首页 > 编程知识 正文

基于fpga的多功能数字时钟,ntp时钟源

时间:2023-05-04 03:38:42 阅读:54007 作者:127

学习内容全局时钟缓冲器、输入缓冲器、输出缓冲器

开发环境xilinx spartan6、ISE14.7、modelsim10.5

在之前写的任性向日葵用ISE14.7中,可能会出现以下误报

thisdesigncontainsaglobalbufferinstance,clk_inst/clkout3_buf,driving the net,clk_out_OBUF,thatisdrivingthe

thisdesigncontainsaglobalbufferinstance,

等一下

(以上错误报告主要是因为来自DCM的时钟信号必须通过ODDR2才能引导我们外部的引脚() )发生同样的错误。 学习这篇文章后的解决方法很简单。 当然也可以不想学习。 您可以直接参考本文的最后一种做法,将ODDR2添加到spartan6中以解决此问题。但是本文不限于解决这一种错误,本文的主要目的是了解和学习相关概念和思想,毕竟原语和IP核所包含的东西是不一样的,比如我们调用的PLL IP核是包含IBUFG和BUFG的,但是我们自己写PLL的话不能忘记的

知识总结xilinx原语总结包括BUFG IBUF、IBUFDS IBUFG、IBUGGDS OBUF和OBUFDS等

我们的FPGA使用外部时钟或将时钟输出到外部端子时该怎么办?1.我们使用外部时钟时,首先连接时请务必连接全局时钟引脚。 平时使用最多的是iBUFGDCM(PLL ) bufg方案。 请参照下图。 可以最灵活地使用这样一种方式,其中时钟管脚输入的时钟是IBUFG的输入,IBUFG的输出是DCM(PLL )的输入,DCM(PLL )频率转换后的输出再次是BUFG的输入,对于全局时钟的控制是有效的DCM(PLL )模块不仅能够进行时钟同步、移相、分频、倍频等变换,而且能够使全局时钟的输出达到无抖动的延迟(“0”skew )。 简而言之

全局时钟I/O端口- ibu fg-PLL http://www.Sina.com/. FPGA的时钟,例如DCM和PLL输出的时钟,输出到普通I/O端口时,不能直接输出,http://www IP核心已经包含BUFG,因此只需调用ODDR2即可。 如果DCM和PLL是用原语编写的,则必须添加BUFG和ODDR2。 简而言之

内部使用的是PLL - BUFG-

我觉得外部引脚输出的是PLL - BUFG - ODDR - PIN

ODDR2的代码如下:

oddr2oddr2_inst(.D0(1) B1 ), D1 )1) B0 ), ce )1) B1 ), C0 ) clk_in ), C1 )! clk_in )、 r(1'B0 )、 s )1'B0 )、 q ) clk_out ); 其中clk_in是我们通过BUFG的时钟信号,并且在通过ODDR2之后,clk_out可以输出到我们的普通I/O端口,并且不报告错误。 如果直接从http://www.Sina.com/bug连接到OBUF,则编译器映射期间会出现错误,因此避免此错误的另一种方法是将约束添加到约束文件中,编译器忽略对定时约束的请求,而使用常规逻辑资源但是,这样的话,时钟输出的延迟和抖动都会变差。

Spartan6时钟资源介绍2

时钟布线资源具有高速、低SKEW的特点,对系统设计非常重要,即使系统速度不高,也应该关注时钟设计来消除潜在的时钟风险。 Spartan-6设备包括BUFGODDR2。 全局时钟用于系统时钟,I/O区域时钟专用于I/O串行/去串行(ISERDES和OSERDES )设计。

为什么要用ODDR处理

全局时钟输入端子(GCLK )。 局时钟多路复用器。 I/O时钟缓冲器。 时钟布线网络。

包括由BUFGMUX驱动的全局时钟网络和由I/O时钟缓冲器(BUFIO2)、PLL时钟缓冲器(BUFPLL )驱动的I/O区域时钟网络。时钟资源

每个Spartan-6有16个全局时钟资源,分布在FPGA周围。 芯片上时钟输入端子的分布图如图2-5所示。 时钟输入端子接收外部时钟信号,直接与芯片内的DCM/PLL/BUFGMUX/BUFIO2连接。 时钟输入端子未连接时钟时,作为通常的I/O使用。

一个差分时钟输入需要两个全局时钟输入。 该对的时钟输入在标签上是连续的,例如,GCLK0和GCLK1是差分对,并且GCLK20和GCLK21是差分对。 每个全局时钟缓冲器都有两个时钟输入,Spartan-6最多支持16对差分全局时钟输入。

设计中的时钟输入端子需要IBUFG原语、40个I/O区域时钟资源更多IBUFG的控制功能时,通过实例化IBUFG,将IBUFG的I端口设置为最高端口,将o端口设置为DCM、BUFG

因为是第一次接触关于FPGA资源的知识,所以暂时更新到这里,以后学习深入了再更新。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。