找回密码
 注册
关于网站域名变更的通知
查看: 401|回复: 1
打印 上一主题 下一主题

FPGA芯片内部资源IO

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-13 16:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
FPGA芯片内部资源IO' ?, c' m# c( p8 B& N7 `& ~
如果不熟悉 FPGA 的底层资源和架构,是很难写出高质量的代码——至少很难写出复杂逻辑的高质量代码,也很难站在系统的层面去考虑芯片的选型等问题。那熟悉 FPGA 架构,首先最主要的一点,我们先来了解 FPGA 的 IO。
1 T4 |2 J8 b$ y7 y+ V# U! E7 r
FPGA 的 IO 命名。FPGA 芯片 IO 命名方式太多,管脚也多,让人感觉很乱。这是我当年的感觉,诸如会经常听到:A13,B14···BANK34,BANK12····MIO0,EMIO···。但这确实是 FPGA 的特点,FPGA 可以兼容多种不同的电压标准,也有丰富的 IO。

. k8 J" X+ G; e8 K- I% @. c
$ i" T( L2 [8 [9 {8 }1 @9 a$ k4 Z

: ~8 ^; I  k3 f0 A) `3 A6 ?
首先,FPGA 的 IO 物理命名规则,也就是我们做管脚约束时候的命名,芯片通常是长方体或者正方体,所以命名通常采用字母+数字组合的方式,从上到下是字母(A,B,C,D```),从左到右是数字(1,2,3```),所以诸如:A13(见下图),就是图上标红的位置,这个是 xilinx 的一颗芯片示意图,其它厂商的 FPGA 芯片也类似。
其次,FPGA 的功能命名规则。功能命名规则每个厂家都会自己的一套规则,但都大同小异,我们重点来讲述一下 xilinx 的命名(xilinx 的文档是行业标杆,其它 FPGA 厂家的资料多多少少会参考 xilinx)。通常 xilinx 的功能命名格式为:IO_LXXY#/IO_XX。其中:
' S' P- ~9 M4 f
(1)   IO 代表用户 IO;
& f) G# l; j( F0 E
(2) L 代表差分,XX 代表在当前 BANK 下的唯一标识号,Y=[P|N]表示 LVDS 信号的 P 或者 N;

8 j9 [8 }9 ]" V1 {1 J' Q( F2 s. P) N(3)      #表示 Bank 号。
7 W0 a$ M0 v" R0 r/ p
比如,我们的原理图中有一个 IO 的名字为:IO_L13P_T2_MRCC_12,那通过功能命名的规则我们就可以知道,这是一个用户 IO,支持差分信号,是 BANK12 的第 13 对差分的 P 端口,与此同时它也是全局时钟网络输入管脚(MRCC 是全局时钟网络)。

' Y/ K- g  ]0 O
再次,什么是 Bank。Bank 是一组物理位置和特性相近的 IO 的总称,同一 BANK 的电压的基准是一致的,因此,通常如果我们需要各种不同标准的电压,可以通过给到 BANK 的电压基准不同的方式来实现多种电平标准的输入输出。通常封装越大,BANK 数量也越多,可以支持电压标准也越多。如下图就是 ZYNQ 7030 的一个 IO BANK 分布图:
4 g& P; K& f- K" }* {, S9 q% Z
除了 FPGA 的用户 IO 外,还有很多其他的功能 IO,如下载接口,模式选择接口,还有 MRCC,也即我们前文讲到的全局时钟网络和局部时钟网路等。其中最值得关注的是 FPGA 的电源引脚,其中 ZYNQ 器件包含两套完全独立的供电系统,一套是嵌入式端的电源(PS),一套是逻辑端的电源(PL),两套供电系统完全独立,因此也没有先后上电的时序需求。如下:
常包含的电压有:
; h- m3 D7 T2 _; b8 u. V* R% |- S(1) 内核电压,Vccpint 和 Vccint 分别为 PS 的内核电压和 PL 的内容电压,内核电压的大小通常和工艺相关,如 48nm XILINX 器件的内核电压为 1.2v,28nm 的 ZYNQ 器件的内核电源为 1.0v(通常电压都有一个范围,范围也和速度等级相关),当然,电压越低,在同样逻辑规模和主频下,对应的功耗也会越低。
( g, K6 m% V# s
(2)Vccpaux 和 Vccaux 分别为 PS 和 PL 的辅助电压。在 ZYNQ 器件中为 1.8v。

6 \# a) X3 d- j: |$ j: _" S. d) {
(3)    Vccpll 为内部锁相环供电电压。

: _% x. h5 U/ i8 x# U
(4)  Vcc_mio0 为 PS 的 MIO0 BANK 的基准电压,VCCO_DDR 为 PS 端的 DDR 的电压,此电压通常和选择的 DDR 颗粒相关,如(DDR3,LDDR3 等相对应的值就有所不同,这一部分我们都要在相关视频中做详细解读)。

% Q% r) n9 f8 W: f% \
(5)    Vccon 这部分就我们前面讲到的  PL 端的 Bank 基准。

* _% y3 v* L. C- F' i2 c1 M6 H7 {
对于纯逻辑的 FPGA 器件,由于没有 PS 端,因此相应的 PS 端供电就没有,只有 PL 端的供电,实现更简单。
最后,我们来聊聊 FPGA 的上电。和所有的器件一样,FPGA 的上电遵循一定的上电逻辑,通常情况下 SRAM 结构(XILINX、Altera 等都属于 SRAM 结构)的上电时间会比 FLASH 结构的(Microm,Actel 等)上电时间要长。有些国产 FPGA 为了简化 BOM 成本(如安路半导体)不需要用户特别关注上电时序,用单电源供电,芯片内部控制上电时序。虽然不合理的上电时序有时候也能让 FPGA 正常工作,但不正常的上电或掉电过程有可能会造成瞬时电流过大,无法保证上电期间 FPGAIO 为三态,甚至损坏芯片,因此需要设计者特别关注上电时序。针对 XILINX FPGA 的上电通常需要遵循以下规则:
6 B) y: Z' r5 K$ ~, f: p, {0 D
(1)在 PS 端,Vccpint,Vccpaux,Vccpll 一起上电,后启动 PS 的 Vcco 电源(Vcco_mio0,Vcco_mio1,Vcco_ddr),其中 PS_POR_B 在上电期间应保持低电平,直到内核,辅助电压,PLL 电压和 BANK 的电压达到相应阈值。掉电的顺序和上电顺序保持一致。
1 J& P7 V2 w/ l% u6 T+ D7 j  E
(2)在 PL 端,推荐的上电顺序依次为 Vccint,Vccbram,Vccaux,Vccaux_io,Vcco。其中,如果 Vccint 和 Vccbram 是相同的电压,则可以采用同一电源供电,同时启动。Vccaux,Vccaux_io 和 Vcco 为同一电压则亦可以采用同一电源,同时启动。
9 \; Z5 x6 y9 X# F
除此,在设计 FPGA 的原理图中要需要特别关注 Serdes 的供电(不同的厂家,甚至同一厂家不同的器件对 Serdes 都有不同的名称,如:GTH,GTX 等等,但实质都是自同步的高速串行收发器,支持的速率有所差别),不使用的情况下需相应的悬空或者接地。
               

& J: r: h8 Y2 ~: y" c8 ]            

1 l2 X9 P9 M6 {                    

! |' c7 s* K4 o4 {" N
        
                                                        FPGA                                 IO                                 芯片
) B- K2 ~/ l3 y! U  H
  W+ s" Z6 T& W( f

$ P2 Y9 h8 R1 B) f. r3 A7 X% _% O

$ E% Y& L7 h/ _. E3 b
3 f+ A. C2 M: i- e

该用户从未签到

2#
发表于 2020-3-13 17:45 | 只看该作者
常如果我们需要各种不同标准的电压,可以通过给到 BANK 的电压基准不同的方式来实现多种电平标准的输入输出
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-21 04:17 , Processed in 0.109375 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表