当前位置:   article > 正文

xilinx原语及bank简介_fpga bank

fpga bank

  Xlinx相关原语讲解导航页面,想要了解更过原语,可以点击该链接跳转。


  在此之前我对原语的理解就跟IP核一样,只是更直接的调用底层组件,事实也确实如此,也没有使用过原语,全部通过IP手册然后调用相关IP即可,比如锁相环,FIFO,FIR,FFT,ROM,RAM这些常用IP。

  但此次在编写HDMI接口驱动的时候,需要将单沿采样信号变为双沿采样的信号输出,还需要把单端信号转换为差分信号输出。实现这些功能可以调用SelectIO的IP,但是这个IP包含IDDR、ODDR、IDELAYE2等很多功能,单独调用个别功能还是比较麻烦。

  此时使用原语就可以只调用需要的组件,不需要去考虑其余组件参数设置,就方便很多,借助此次机会就对IDDR、ODDR、IDELAYE2、ODELAYE2、IDELAYCRTL、ISERDESE、OSERDESE等几个原语做了简要了解,并对原语的各个模式进行了仿真,本文最初是介绍IDDR的,但在介绍IDDR这些原语之前,还需要了解一下7系列FPGA bank的分类和区别,所以就有了本文。

1、什么是原语

  原语(Primitive)是Xilinx针对其器件特征开发的一系列常用模块的名称,涵盖了FPGA开发过程中的常用领域,方便用户直接调用FPGA的底层组件。

  Xilinx FPGA的底层组件分为10类,计算组件、IO端口组件、寄存器/锁存器、时钟组件、处理器组件、移位寄存器、配置和检测组件、RAM/ROM组件、slice/CLB组件以及G-tranceiver,相应的原语也分为10类。

  举个例子,比如把FPGA的100MHz时钟信号转换为200MHz时钟信号使用,第一时间肯定想到使用锁相环进行倍频,然后就去调用锁相环的一个IP核,IP核的底层再去调用时钟组件的原语实现倍频。如果对锁相环的原语足够熟悉,那么用户就可以直接调用原语,省去中间Vivado/ise生成IP核的步骤,Vivado运行速度是很慢的,从而节省更多时间。

  一个稍微复杂点的IP核包含参数很多的,只是常用的配置就那么几个,比如锁相环IP常用参数就配置输入时钟频率,输出时钟频率、相位、占空比就行了,但实际上这个IP核还有很多参数没有配置,只是使用了默认参数而已。在调用原语时,通常也只需要关注常用的参数配置即可,但是第一次使用相关原语,还是推荐查看手册,了解每个参数的含义,将参数使用方式整理,便于后续灵活使用。

  对原语的调用可以理解为调用相同组件的IP。

  由于后续HDMI、千兆网相关接口需要用到一些原语,所以最近将相关原语手册(UG471)进行整理、仿真,便于后续使用,涉及原语有IDDR、ODDR、IDELAY、ODELAY、ISERDESE、OSERDESE等。这些原语都属于IO组件的原语,IO组件的原语如下表1所示。

表1 IO组件的原语
原语功能
BUFIOIO本地时钟缓存
DCIRESERFPGA配置成功后DCI状态机的复位信号
IBUFIO单端口输入缓存
IBUFDSIO差分端口输入缓存
IBUFG时钟专用引脚单端输入缓存
IBUFGDS时钟专用引脚差分输入缓存
IDDR双边沿数据输入寄存器
IDELAY输入延迟组件
IDELAYCTRL延迟组件控制模块
IOBUF单端口双向缓冲器
IOBUFDS差分端口双向缓冲器
ISERDES串行输入转并行
KEEPER双向端口监控结构
OBUFIO单端口输出缓冲
OBUFT三态输出缓冲器
OBUFDS单端转差分输出
OBUFTDS差分三态输出缓冲
ODDR双边沿输出寄存器
OSERDES并行输出转单端
PULLDOWN输入端寄存器下拉至GND
PULLDOUP输入端寄存器上拉至VCC

2、zynq 7000系列bank分布

  xilinx7系列FPGA主要包括:Spartan®-7、Artix®-7、Kintex®-7、Virtex®-7,其性能/密度/价格也随着系列的不同而提升。S7、A7、K7、V7的实际工艺不同,又构成了不同的FPGA系列,如图1所示。
在这里插入图片描述

图1 Xilinx FPGA架构

  常见的zynq 7000就是采用28nm工艺生产的,如图2所示,该系列只有A7和K7两种,zynq 7030及以上的PL是K7,zynq 7020及以下都是A7。

在这里插入图片描述

图2 zynq 7000资源概括

  Xilinx的FPGA bank主要分为三类,而zynq 7000系列只有 HR(最大电压支持3.3V)和HP(最大电压支持1.8V) 两种,HP的性能会比HR强,电压范围更窄。

  下面来看下zynq 7000各个型号的bank类型,如图3所示,为zynq7010的bank类型图,PL部分只有两个HR类型的bank。

在这里插入图片描述

图3 XC7Z010 和 XA7Z010 的Bank

  图4是zynq 7015的bank类型图,PL部分包含三个HR bank和一个高速收发器GTP bank,可以用于万兆以太网和PCIE的数据收发。

在这里插入图片描述

图4 XC7Z015 Bank

  图5是zynq 7020的bank类型图,PL部分包括四个HR bank,没有高速收发器相关的bank。

在这里插入图片描述

图5 XC7Z020、XA7Z020、XQ7Z020 Bank

  图6是zynq 7030的bank类型图,zynq7030属于K7系列,PS部分与前面的zynq都是一样的,PL部分有2个HR bank,还有3个HP bank,最后包括一个GTX的高速收发器bank。GTX最大速率接近GTP最大速率的2倍,提升比较明显。

在这里插入图片描述

图6 XC7Z030,、XA7Z030、XQ7Z030 Bank

  图7是zynq 7035、zynq 7045、zynq 7100的bank类型图,这几个芯片的区别在于逻辑资源的多少不同,bank类型一致,都包含5个HR bank,三个HP bank,四个高速收发器的bank。

在这里插入图片描述

图7 XC7Z035,、XC7Z045、XC7Z100 Bank

  通过上面几张图可知,A7系列只有HR bank,而K7有HP bank,还会包含高速收发器bank。

3、Xilinx 7系列的HR BANK与HP BANK

  A7只有高范围(HR) I/O bank,支持更广泛的I/O电平标准,最高支持3.3V,而K7有高性能(HP) I/O bank,旨在满足高速内存和其他电压高达1.8V的芯片间接口的性能, 表2是HR和HP I/O Bank中支持的功能。除逻辑资源不同外,另外的区别在于高速收发器的最大速率不同,A7的高速收发器是GTP,速率范围500Mb/s6.6Gb/s,因此A7无法实现万兆网,而K7高速收发器是GTX,速率范围500Mb/s12.5Gb/s,能够实现万兆网的收发速率。

表2 HR和HP I/O Bank中支持的功能
FeatureHP I/O BanksHR I/O Banks
3.3V I/O标准不支持支持
2.5V I/O 标准不支持支持
1.8V I/O 标准支持支持
1.5V I/O 标准支持支持
1.35V I/O 标准支持支持
1.2V I/O 标准支持支持
LVDS 标准支持支持
24ma驱动的LVCOMS和LVTTL不支持支持
VCCAUX_IO 电源轨支持不支持
数控阻抗 (DCI) 和 DCI 级联支持不支持
内部参考电压支持支持
内部差分终端 (DIFF_TERM)支持支持
IDELAY支持支持
ODELAY支持不支持
IDELAYCTRL支持支持
ISERDES支持支持
OSERDES支持支持
ZHOLD_DELAY不支持支持

  注意上表中HR bank是不支持ODELAY原语的,没有相应的硬件支持。

  除某些例外,每个I/O Bank包含50个SelectIO引脚,每个bank最末端的两个引脚只能作为单端I/O标准使用,其余48个引脚可用于单端或差分标准,使用两个SelectIO引脚组合在一起作为差分 (P/N) 对。每个SelectIO资源都包含输入、输出和三态驱动程序。

  图8是HP bank与HR bank的IO模块,其中PAD是FPGA的金属管脚,IOB是输入、输出引脚的控制模块。FPGA的外部信号通过PAD进入FPGA,然后经过IOB,可能会经过IDELAY2延迟,进入ILOGICE2进行寄存或者双沿转单沿的处理,最后给FPGA内部。输出信号先在OLOGICE2进行寄存或者单沿转双沿信号,然后可能经过ODELAY2延时处理后输出到IOB模块,最后通过PAD引脚输出。

  IDELAY2是输入数据的延时模块,可以调用原语实现,对于并行数据,可能信号的PCB走线并没有做等长处理,导致并行数据不同位到达管脚的延迟时间不同,此时就以PCB走线延迟最长位标准,将其余信号进行延迟,从而实现数据对齐。输出端口延迟的原理一致,只不过只有K7的HP bank才有ODELAYE2结构。

在这里插入图片描述

图8 7系列IO模块(左侧HP bank,右侧HR bank)

  ILOGICE2和ILOGICE3的结构差不多,区别在于ILOGICE2没有零保持延迟元件(ZHOLD),不能调用ZHOLD_DELAY原语。ILOGICE2和ILOGICE3都可以实现组合逻辑输入、寄存器输入、以及DDR双沿采样(IDDR)输入,并不能通过原语直接调用ILOGICE2,只能通过原语调用IDDR去使用ILOGICE2资源。ISERDESE2可以实现串行双沿采样转换为并行单沿采样,OSERDESE2与ISERDESE2功能刚好相反,比如实现HDMI接口时可以使用ODDR实现单沿转双沿,但是使用OSERDESE2会更方便,还能同时实现并行转串行,根据实际情况选择对应原语即可。

  图9左侧是HP bank的IOB结构,右侧是HR bank的IOB结构,HP bank多一个可以控制数控阻抗(DCI)的信号DCITERMDISABLE,其余结构都一样。其中PAD是FPGA的金属管脚,该管脚可作为输入也可作为输出,通过I、O信号实现单端输入、输出,DIFF_IN和IDFFO_OUT实现差分输入、输出,但是差分信号需要两个管脚进行配合实现。

在这里插入图片描述

图9 HP BANK与HR BANK的IOB结构

  通过以上讲解可知,IOB是FPGA输入、输出控制模块,并没有直接对应的原语,但是IO可以实现单端转差分吗,差分转单端的功能,所以可以通过调用OBUFDS原语在IOB模块内实现单端转差分的输出功能。

  本文主要对7系列FPGA的bank进行简单介绍,有利于后续几节内容详细讲解几个常用原语的参数及仿真。

文中的图来自xilinx的几个手册

  zynq-7000-product-selection-guide

  ug471_7Series_SelectIO

  ug865-Zynq-7000-Pkg-Pinout

  后续还会用到的手册

  ds181_Artix_7_Data_Sheet

  这些手册可直接在官网获取,也可以在公众号后台回复”xilinx手册”获取,后续用到的xilinx相关手册均在该文件夹中更新。


  您的支持是我更新的最大动力!将持续更新工程,如果本文对您有帮助,还请多多点赞

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/423787
推荐阅读
相关标签