FPGA的中译名是现场可编程门阵列,这些阵列的通断开关是由SRAM来控制的。你下载下去的文件实际上是写在了这个SRAM里面。SRAM每一bit控制阵列中的一个开关。既然是基于SRAM当然可以多次烧录了。
一般的FPGA掉电是不能保存的。因为SRAM里的信息是靠半导体间的电容来记录的。一掉电信息就没了。而能保存的FPGA目前是由于其内部有FLASH存储器如XILINX的SPARTAN3AN系列LATTICE的MACH XO系列。或者是由于采用了外部EEPROM或者FLASH的配置模式,把烧结文件放到了非易失的外部FLASH或者EEPROM中了。上电之后从FLASH或者EEPROM中把烧结文件读取到FPGA内的SRAM里去,这样看起来似乎掉电就能保存了。现在最新的技术中间有铁电RAM或者磁记录RAM,也可以掉线保存信息。
当然如果您的设计中如果有大型的电容或者电脑存储器件,说不定能维持保存个几秒哈。
而CPLD则是不一样,它们有的是用EEPROM工艺有的是用FLOTOX工艺的,在掉电之后也能保存住信息。
这与FPGA本身的物理结构有关系,FPGA是基于SRAM的,理论上它是可以无限制配置的。
至于你说的断电能保存是因为你把程序写到了它的配置芯片EPCSXX中了,FPGA芯片上电后,会从它的配置芯片中自动加载你的程序代码。
配置芯片一般是EEPROM,它的擦写次数是有限的,当配置芯片的擦写次数超过它所能承受的次数时,就无法再进行烧写了!
不过配置芯片的擦写次数至少都在10万多次呢!