jay007 发表于 2013-2-8 13:53:38

FPGA不用的管脚设成三态输入,有人不知道这个吗?


隔壁论坛看到个帖子,说FPGA不用的管脚设成三态输入,低下一堆人跟帖学习,暴汗!!!

这个设置是有FPGA以来的基本要求,否则可能导致CMOS同时输出而烧毁,如果没设,FPGA能稳定吗?

再说两个基本要求,也是要注意的:

1、不能把全部输出信号放在一个bank上
   一个BANK的输出电流是有限的,约250ma,如果多根输出线放同一个bank(比如32根数据总线),同时翻转,有可能超出负载能力,导致异常

2、IO输出阻抗要根据实际调整
   一般PCB的标准阻抗是50欧,FPGA缺省输出阻抗也是50欧,可以调整FPGA的输出电流来改变输出阻抗,进而改善信号完整性。这点在对硬件验收的时候要特别注意,示波器打到最大分辨率,观察信号有无阶梯或过冲,否则出现误码去检查FPGA就瞎耽误时间了


wye11083 发表于 2013-2-8 22:36:22

ca,不用的线最好不要悬空,以免出现干扰。根据情况,最好是设为拉高或拉低。BANK输出电流是跟负载相关的,单一IO最大输出能力约为30mA,因此根据VCCIO供电电流,一个供电PAD可以带3-4个左右,再多就会出现上升下降时间不够的问题,但是对低速及慢速信号而言,没有任何影响。50MHz下就可以不用考虑IO输出数量,如果信号不终结,就算只接一个VCCIO供电PAD,所有IO也都可以设置为输出。
LZ不要把书上的东西就一定奉为真理,工程上用时没这么死板,拿笔算算就知道该怎么搞。不是说非得怎么怎么,有些东西不经实践,就算你看再多书,也是没用的。

liwei_jlu 发表于 2013-2-8 23:16:34

不是吧,不用的IO硬件上悬空,逻辑上设置为输出低吧

jay007 发表于 2013-2-8 23:46:45

本帖最后由 jay007 于 2013-2-8 23:59 编辑

to LSdeLS:
我讲的是需要注意的事项,没有说一定要按这个设计,但是不知道这些就有可能引起bug。我看来看去,你说的和我说的好像没什么矛盾,无非你把不需要这么做的情况说了下而已。

最后你好像挺不屑的,其实这个就是工程需要的东西,书本上学不来的,你拿笔算算万一算错了呢,呵呵,我只是讲万一。

我认为不管项目大小速度高低最好遵守所有的设计规范,否则列出你没有遵守的理由,就像我们用synplify做综合,不要有warning你觉没问题就过了,而要把warning写进报告,要给大家review的。还有我们之前做ASIC,没有FPGA验证这一步,RTL经过仿真后直接流片,靠的就是一条条看似简单繁琐的条条框框,如果你想灵活处理,别人要多花大量的时间去听你的解释,还容易引入错误,一次错误的代价是多大你应该清楚。

jay007 发表于 2013-2-9 00:10:51

本帖最后由 jay007 于 2013-2-9 00:23 编辑

liwei_jlu 发表于 2013-2-8 23:16 static/image/common/back.gif
不是吧,不用的IO硬件上悬空,逻辑上设置为输出低吧

硬件会把剩余的FPGA管脚连上CPU的GPIO,作为调试或者将来扩展功能,所以管脚不一定是悬空的,设成三态输入,FPGA自身弱上拉,是安全的。

突然感觉和大家有距离,可能涉及的领域不同,我们的项目里FPGA的未用管脚可能有连信号的,所以有这个思维定式,所以上面讲得有点绝对了。

liwei_jlu 发表于 2013-2-9 00:26:40

jay007 发表于 2013-2-9 00:10 static/image/common/back.gif
硬件会把剩余的FPGA管脚连上CPU的GPIO,作为调试或者将来扩展功能,所以管脚不一定是悬空的,设成三态输 ...

这不能算是单纯的没用到的IO了,与cpu连线的备用扩展IO肯定是高阻态,另外,与FPGA连接的cpu备用GPIO最好也设置成输出低电平用来抗干扰。
页: [1]
查看完整版本: FPGA不用的管脚设成三态输入,有人不知道这个吗?