FPGA芯片所有IO口不能同时用
前几天我做了个测试,因为使用的FPGA芯片有个别引脚坏的情况,为了验证引脚的好坏,我给所有引脚同时灌输一个波形,可没想到下载这个程序之后就再也下不进程序,芯片也不能工作了,我又连续试了三块芯片,三块都出现了同样的情况,下载后每个引脚上都是这个波形(如下图),出现脉宽为415ns的低电平,幸好这些芯片我都是从公司其余废板子上拆下的,现在把源码跟
编译后的结果贴在下面,大家一起来研究下
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity test_pin is
generic (n:natural:=8);
port(
clk:in std_logic;
pin:buffer std_logic_vector(31 downto 0);
pin1:buffer std_logic_vector(31 downto 0);
pin2:buffer std_logic_vector(8 downto 0)
);
end test_pin;
architecture rtl of test_pin is
begin
process(clk)
variable num:integer range 0 to n;
begin
if clk'event and clk='1'then
if num=n then
pin<=not pin;
pin1<=not pin1;
pin2<=not pin2;
num:=0;
else
num:=num+1;
end if;
end if;
end process;
end rtl;
Design Summary:
Number of PFU registers: 45
Number of SLICEs: 24 out of 320 (8%)
SLICEs(logic/ROM): 24 out of 128 (19%)
SLICEs(logic/ROM/RAM): 0 out of 192 (0%)
As RAM: 0
As Logic/ROM: 0
Number of logic LUT4s: 46
Number of distributed RAM: 0 (0 LUT4s)
Number of ripple logic: 0 (0 LUT4s)
Number of shift registers: 0
Total number of LUT4s: 46
Number of external PIOs: 74 out of 74 (100%)
Number of 3-state buffers: 0
Number of GSRs:0 out of 1 (0%)
JTAG used : No
Readback used :No
Oscillator used :No
Startup used : No
Number of TSALL: 0 out of 1 (0%)
Notes:-
1. Total number of LUT4s = (Number of logic LUT4s) + 2*(Number of distributed RAMs) + 2*(Number of ripple logic)
2. Number of logic LUT4s does not include count of distributed RAM and ripple logic.
Number of clocks:1
Net clk_c: 24 loads, 24 rising, 0 falling (Driver: PIO clk )
不要用buffer这种东西,用in/out/inout 知道为什么下不进去吗?你的程序把JTAG管脚给占了。你可以找找办法,据说加上高电压用一定时序是可以恢复为出厂状态的。 wye11083 发表于 2012-4-30 11:44 static/image/common/back.gif
知道为什么下不进去吗?你的程序把JTAG管脚给占了。你可以找找办法,据说加上高电压用一定时序是可以恢复为 ...
请问什么情况下会出现把JTAG引脚占用的情况
这个我需要特别注意一下 要注意SSO限度,手册上有说明各种情况下最多允许同时翻转多少IO。超过的话电源会撑不住,几百个IO同时翻转的话,电源能抖个1.5Vpp 应该是芯片配置的问题吧,但是JTAG应该不会自动占用的才对,除非你在管脚分配中把JTAG的脚给改成IO了。你可以试试断开配置芯片再重新编程,或者把JTAG直接连到配置芯片上,不要把两个芯片链起来(你的FPGA的JTAG已经失效了)。 本帖最后由 pocker5200 于 2012-4-30 17:59 编辑
FPGA的电平同时翻转引脚数是有限制的,xilinx的话每个BANK好象是总引脚数的6%,多了有超负荷警告。 我这次用的是lattice公司的XO系列的芯片,之前用altera公司的EP1C8系列的芯片没出现这种情况,有点费解啊 这个没试过,这样看来也不敢试,比较我们穷人烧不起,坐等实验结果{:lol:} 外围电路有关系吗
以前用CPLD时遇见过类似问题,断开某些IO口就可以以再写入,忘了什么原因了 h2feo4 发表于 2012-4-30 12:33 static/image/common/back.gif
要注意SSO限度,手册上有说明各种情况下最多允许同时翻转多少IO。超过的话电源会撑不住,几百个IO同时翻转 ...
你这话说的很对,这个实验没敢做下去了,但是我查阅了很多相关资料和问过一些专家,基本上都是你这个说法,
他们说下不进程序是因为内部的逻辑电路死掉了,这话我很怀疑,因为如果这样不可能每个IO都出现同样的情况,
一个程序有这么容易把内部逻辑烧死吗?如果这样的话编译环境是不是应该做下改进? shangxf 发表于 2012-4-30 22:34 static/image/common/back.gif
外围电路有关系吗
以前用CPLD时遇见过类似问题,断开某些IO口就可以以再写入,忘了什么原因了 ...
你好好想想是断开那些引脚呀,我试过把部分IO的电源断掉,但还是不能写入{:dizzy:} 苦行僧 发表于 2012-4-30 22:05 static/image/common/back.gif
这个没试过,这样看来也不敢试,比较我们穷人烧不起,坐等实验结果
一来lattice的芯片比较便宜,二来公司一些废板子上有,所以我才敢试,不然我也烧不起啊 数字电路 不能这样用的哦。 richards 发表于 2012-8-28 19:46 static/image/common/back.gif
数字电路 不能这样用的哦。
之前有遇到某个IO坏了,我是想一次性测试引脚好坏,以后不敢这么用了 分开测试 电源带不动。 这玩意贵啊,玩不起 记住!!!
页:
[1]