最近在用Arria10。从480降到270的过程中,IOPLL出现问题,大概是说几个Bank的IOPLL已经被占用,没有空间再给别的IOPLL去适配。

因为在工程中,所用的PLL多达35个之多,其中明确为自己手动例化的IOPLL为8个,DDR占用3个Bank所以也会占用3个IOPLL。

一时之间不知道从哪里下手,于是笔者理了下思路,觉得应该搞明白Arria10 PLL的分布,果不其然,收获颇多。

以下主要以Arria10 270为例。

  首先要搞清楚的是Arria10中的PLL共有多少个,分别分布在什么位置。从图1看GX270的有8个IOPLL和8个fPLL。从图2和图4可以看到

GX270共有8个IO Bank和4个高速接口Bank。从图3和图5可以看到一个IO Bank有一个IOPLL,一个高速接口Bank有2个fPLL和个ATX PLL(有待研究)。

 

                              图1

图2

      图3

图4

图5

 那现在的问题是我已经使用了11个IOPLL,是否可以把部分IOPLL转成fPLL呢?接下下要了解下PLL的特征:

(1)The fPLLs are located adjacent to the transceiver blocks in the HSSI banks. Each HSSI
  bank contains two fPLLs. You can configure each fPLL independently in conventional
  integer mode or fractional mode.

(2)The fPLL and I/O PLL clock outputs can drive all clock networks.

(3)The dedicated clock input pins can be either differential clocks or single-ended clocks

  for I/O PLL. When you use the dedicated clock input pins as single-ended clock inputs,
  only CLK_[2,3][A..L]_[0,1][p,n]pins have dedicated connections to the PLL.
  fPLLs only support differential clock inputs.

(4)The I/O PLLs are located adjacent to the hard memory controllers and LVDS serializer/

  deserializer (SERDES) blocks in the I/O banks. Each I/O bank contains one I/O PLL.

从以上几个特征来看,fPLL完全可以实现IOPLL的所有功能,只是在输入上要保证必须为差分。

在工程中一个HSSI Bank有两输入部分,每一部分要用到一个fPLL,刚好可以,但是例外的是有一个Bank还有一个输出部分,也要用一个fPLL.

一个HSSI Bank中的fPLL有两个,如果在这个Bank中要使用到两个以上的fPLL应该怎么办呢?这里也引出一个问题,是不同的HSSI Bank之间的fPLL能否共用?

很幸运,笔者很快从Arria10 Transciver PHY User Giude中找到了3.2.4 Reference Clock Network部分,内容如下:

The reference clock network distributes a reference clock source to either the entire
left or right side of the FPGA where the transceivers reside. This allows any reference
clock pin to drive any transmitter PLL on the same side of the device. Designs using
multiple transmitter PLLs which require the same reference clock frequency and are
located along the same side of the device, can share the same dedicated reference
clock (refclk) pin

很明显,在同一个Block中的fpLL可以被任一个参考时钟所驱动。

Arria10中的IOPLL与fPLL的更多相关文章

  1. Arria10中PHY的时钟线结构

    发送器时钟网络由发送器PLL到发送器通道,它为发送器提供两种时钟 高速串行时钟——串化器的高速时钟 低速并行时钟——串化器和PCS的低速时钟 在绑定通道模式,串行和并行时钟都是由发送器的PLL提供给发 ...

  2. Arria10中的OCT功能

    OCT是什么? 串行(RS)和并行(RT) OCT 提供了 I/O 阻抗匹配和匹配性能.OCT 维持信号质量,节省电路板空 间,并降低外部组件成本. Arria 10 器件支持所有 FPGA 和 HP ...

  3. cyclone IV中DDR的一个疑惑

    的生成的DDR2 IP中DDR的时钟竟然是双向的,而在arria10中生成的DDR4则是输出,而DDR2的datasheet上也指出ck和ck#是输入,不知为什么? inout mem_clk , i ...

  4. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

  5. Arria10调试问题集之——480转成270中DDR4 IP重新生成的问题

    在把FPGA器件从480修改成270时DDR4报错: Error (16383): Silicon revision parameter for the following EMIF/PHYLite ...

  6. Arria10收发器校正

    收发器的模拟和数字部分都需要校正来补偿过程,电压和温度(PTV)带来的变化. Arria10使用PreSICE来执行校正过程.   校正主要包括上电校正和用户校正两方面: 上电校正在器件上电时自动执行 ...

  7. IOPLL动态重配

    连接 Avalon -MM接口 mgmt_waitrequest:当 PLL 重配置进程开始后,此端口变高并在 PLL 重配置期间保持高电平. PLL 重配置进程完成后,此端口变低. I/O PLL重 ...

  8. fPLL结构及动态配置

    输入参考时钟 从上图可以看到参考时钟输入的几种类型.   注意:fPLL的校正是由CLKUSR来驱动的,这个时钟必须要保持稳定. 参考时钟利用器     N计数器 N计数器会把参考时钟利用器输出进行分 ...

  9. mapreduce中一个map多个输入路径

    package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...

随机推荐

  1. shell加密工具shc的安装和使用

    1) 工具说明 shell脚本是可读写的, 很有可能会泄露敏感信息, 如用户名/密码/路径/IP等. 同样在shell脚本运行时会也泄露敏感信息. shc是一个加密shell脚本的工具, 它的作用是把 ...

  2. [z]Libevent使用例子,从简单到复杂

    [z]http://blog.csdn.net/luotuo44/article/details/39670221 本文从简单到复杂,展示如何使用libevent.网上的许多例子都是只有服务器端的,本 ...

  3. c语言练习题:求1-1/2+1/3-1/4+... -1/100的值

    /******************************************* 求1-1/2+1/3-1/4+... -1/100的值 *************************** ...

  4. VS新建API控制器时提示“运行所选代码生成器时出错”

    使用Nuget安装microsoft.entityframeworkcore.tools这个包就行了,安装时注意版本. 根据下图提示应该是新建控制器时用到了这个包,所以安装一下就好了.之前遇到过一次, ...

  5. “windows的批处理”与“Linux的shell script”的类比学习

    从2005年开始,做了将近10年的系统维护,先是做网络接入管理,然后做网络安全与审计,然后做服务器管理等整个网络系统的运营管理:现在又兼着做一些Linux下的视频监控系统的软硬件维护.过程中遇到太多重 ...

  6. js验证前后密码是否一致,为什么当我输入不一致密码时,不会弹出警告啊

    <form name="form" action="#"><input type="password" id=" ...

  7. android 线性布局

    activity_main.xml线性布局 <?xml version="1.0" encoding="utf-8"?> <LinearLay ...

  8. hdu 5475(2015上海网赛) An easy problem

    题目;http://acm.hdu.edu.cn/showproblem.php?pid=5475 题意就是给X赋初值1,然后给Q个操作,每个操作对应一个整数M:如果操作是1则将X乘以对应的M,如果是 ...

  9. Python如何管理内存?

    对于Python来说,内存管理涉及所有包含Python对象和堆. Python内存管理器在内部确保对堆的管理和分配. Python内存管理器具有不同的组件,可处理各种动态存储管理方面,如共享,分段,预 ...

  10. tomcat加载web项目报错:bad major version at offset=6

    分析原因是开发的web项目的java版本高于tomcat使用的java版本,比如我是在java1.6上开发的,但是tomcat使用的java运行环境是1.5,所以会报改错误. 转载博客如下:http: ...