一、FPGA里各个电源释义
VCCINT
VCCINT是FPGA芯片的内核电压,是用来给FPGA内部的逻辑门和触发器上的电压。即芯片的晶体管开关是有核心电压提供。当内部逻辑工作时钟速率越高,使用逻辑资源越多,则核心电压供电电流会更大,可高达几安,此时芯片必然会发烫,需要散热装置辅助散热
VCCIO
VCCIO(有些地方也记为VCCO)是用于FPGA驱动IO模块(同IO引脚)的电压。该电压应该与其它连接到FPGA上的器件的电压匹配,因为FPGA经常要与多种不同电平接口的芯片通信,所以都会支持非常多的电平标准,这也是它的灵活性表现。FPGA为了能和多种不同的电平标准接口芯片通信,Vccio通常以Bank为界,相互之间是独立的,即一个Bank块只能存在一种IO电压。一颗FPGA芯片具有多个Bank块,每个Bnak可以与一种电平接口芯片通信,如Bank34与3.3V的MCU通信,Bank35与2.5V的DDR芯片通信。需要注意的VCCO里面分为HR bank电压和HP bank电压,其中HR bank电压一般为3.3V设计,但是遇到网络接口时一般设计为2.5V;HP为高速bank,常常用于ddr设计,电压为1.5V
FPGA通常需要两个电压才能运行:一个是“内核电压”,另一个是“IO电压”。每个电压通过独立的电源引脚来提供。实际上,FPGA器件本身是允许VCCINT和VCCIO相同的(比如VCCINT和VCCIO两种引脚可以被连接在一起)。但是FPGA设计是面向低电压内核和高电压IO的,所以两种电压一般是不相同的。
VCCAUX
FPGA并非一个单纯的数字逻辑芯片,内部也带有一些模拟组件,比如Xilinx的DCM数字时钟管理组件、高档点的FPGA还有高速串并转换器serdes、温度监控器件等这些模拟器件,这些模拟器件对电源噪声要求很高,所以需要一个独立稳定的电源进行供电。Vccaux就是为这些模拟器件提供电压,另外Vccaux还可以给部分IO供电,像JTAG等。
VCCBRAM
内部Block RAM的供电电压。其不损坏FPGA器件的范围为-0.5V1.1V。对于-2和-1的spartan7系列,正常工作电压为0.95V1.05V,推荐工作电压为1.00V。对于 -1L的spartan7系列,正常工作电压为0.92V~0.98V,推荐工作电压为0.95V。
VMGTAVCC
GTP收发器核心电压。其不损坏FPGA器件的范围为-0.5V1.1V。正常工作电压为0.97V1.03V。推荐工作电压为1.00V。(xilinx的FPGA芯片)
VMGTAVTT
GTP收发器终端匹配电压。其不损坏FPGA器件的范围为-0.5V1.32V。正常工作电压为1.17V1.23V。推荐工作电压为1.20V。(xilinx的FPGA芯片)
*GTP收发器的上电顺序为VCCINT、VMGTAVCC、VMGTAVTT或者VMGTAVCC、VCCINT、VMGTAVTT。断电顺序正好相反。
各电压上电顺序要求,具体如下:
(1)VCCINT → VCCBRAM → VCCAUX → VCCAUX_IO → VCCO ;
(2)VMGTAVCC → VMGTAVTT → VMGTAVTTRCAL → VMGTVCCAUX。
二、一般芯片GPIO结构
上面MOS管导通,下面截止,输出高电平,称之为推(电流);
上面MOS管截止,下面导通,输出低电平,称之为挽(电流);
上拉电阻越小,驱动能力越大。
支持线与:
三、上下拉电阻
上拉电阻是把一个信号通过一个电阻接到电源(Vcc),下拉电阻是一个信号通过一个电阻接到地(GND)。
电阻强上拉、若上拉
强上拉、弱上拉的强弱只是上拉电阻的阻值不同,没有什么严格区分。例如:50Ω上拉,一般成为强上拉;100kΩ上拉则称为弱上拉。下拉也是一样的。强拉电阻的极端就是0Ω电阻,即将信号线直接与电源或低相连接。
上、下拉电阻的作用
- 维持管脚是一稳定状态:芯片的输入管脚,输入的状态有三个:高电平、低电平和高阻状态。高阻状态,即管脚悬空,很可能造成输入的结果是不定状态,引起输出震荡。有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻使管脚稳定状态。
- 三极管实现电平转换电路的外围电路(https://blog.csdn.net/m0_52162042/article/details/121278274)
- OC、OD电路
- 一些总线IO口上、下拉电阻: 一些总线有输入输出接口,本质就是OC或OD的接口。I2C(Inter Intergrated Circuit,内部集成电路)总线就是典型的OD输出结构的应用,典型的I2C电路都有上拉电阻。
- 对管脚驱动能力的调整:芯片的输出挂脚本身并不是OC、OD,但是有时也会增加一个上拉或下拉电阻,通过上拉或下拉来增加或减小驱动电流。
- 电平标准匹配:改变电平的电位,常用在TTL-CMOS匹配。当TTL电路驱动CMOS电路时,若TTL电路输出的高电平低于CMOS电路的最低电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平值。注意:上拉电阻的电阻值应不低于CMOS电路的最低高电压,同时要考虑TTL电路电流(如某端口最大输入或输出电流)的影响。
- 增强电路抗干扰能力:芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限,增强抗干扰能力。长线传输中,电阻不匹配容易引起反射波干扰,加上、下拉电阻的电阻值匹配,能有效抑制反射波干扰。提高总线的抗电磁干扰能力,管脚悬空就比较容易受外界的电磁干扰。
吸电流、拉电流、灌电流定义
拉电流:主动输出电流,是从输出口输出电流。
灌电流:被动输入电流,是从输出端口流入电流。
吸电流:吸是主动吸入电流,是从输入端口流入吸电流和灌电流就是从芯片外电路通过引脚流入芯片内的电流,区别在于吸收电流是主动的,从芯片输入端流入的叫吸收电流(即吸电流)。
拉电流是数字电路输出高电平给负载提供的输出电流,灌电流时输出低电平时外部给数字电路的输入电流,它们实际就是输入、输出电流能力;吸电流是对输入端(输入端吸入)而言的,而拉电流(输出点流出)和灌电流(输出端被灌入)是相对输出端而言的。
上拉电阻阻值选择原则
- 驱动能力与功耗的平衡。以上拉电阻为例,一般来说,上拉电阻越小,驱动能力越强,但功耗越大,设计时应注意二者之间的平衡;电阻值应当足够大。电阻越大,电流越小。功耗越小。对于下级电路的驱动需求。同样以上拉电阻为例,当输出高电平时,开关管断开,上拉电阻应适当选择以能够向下级电路提供足够的电流。
- 对于高速电路,过大的上拉电阻可能边沿变平缓。需要电阻与电容形成RC滤波电路,影响信号的高频分量的传输;
以上拉电阻为例,上拉电阻和开关管漏源极之间的电容和下级电路之间的输入电容会形成RC延迟,电阻越大,延迟越大。上拉电阻的设定应考虑电路在频率方面的需求。
四、AnLogic-FPGA关于IO的问题
软件实现OD输出:
影响一个bank所能使用的IO数量因素:
每对VCCIO到GND 可以按100mA来估算,要看那个bank有几对VCCIO。就是说,假如某个bank,我只有一个VCCIO我用的Io的DriveStrength为4ma,那么我大概这个bank只能用25个Io。如果这个bank的VCCIO有俩对,那么我能用50个IO(如果有这么多IO情况下)。
但是这针对的是非大电流驱动与快速压摆率的一个值。如果这个bank你的某些Io脚是可能同时开关输出(sso),那么此bank,这样的信号脚数量有一个限制值,限制值是看TR304手册
那么当对此bank的使用率要求比较高,可能要超过TR304关于sso的理论上限值,可以让客户用软硬件设计时一些操作来降低sso带来的影响。手册里sso缓解措施已经给出类似bank电源隔离、包括软件设计延缓同步输出Io数量等方法。