FPGA配置两种模式:主动配置和被动配置方式,采用主动配置下,我们就需要一片FLASH来存储FPGA固件,那么我们在升级固件写FLASH的过程中如何避免因意外情况发生导致升级失败而使FPGA变砖呢?下面就由笔者带领大家来挖山掘石、一探究竟。
本文主要针对Xilinx的Spartan-6和7-series FPGA。在设计FPGA的远程升级功能时,我们要实现以下两个指标:
1、FPGA具有升级功能,即在正常工作状态下,FPGA可以将新的固件数据烧写到FLASH里面并在下次重启的时候能够正常加载;
2、如果升级过程中出现意外情况,FLASH里面原有的固件被破坏,那么FPGA能够从备份固件区启动配置,即FLASH里要有另外一份没有问题的固件备份,且FPGA可以自动跳转到这个固件区读取固件。
好了,功能需求明确,下面就该潜下心来进行框架流程设计、时序设计、代码编写以及仿真验证了。一番辛苦劳作之后,IP设计好了,这个时候心里暗暗自喜:应该没问题,只待硬件测试啦。三下五除二,找了台机器测试了一遍,发现能够正常升级,这个时候心里那个是乐开了花啊,一次搞定,哈哈。
接下来就要进行激动人心的防砖测试了,于是你就邀请了周围的同事来一起见证奇迹,于是测试开始,于是在升级运行的过程中你自信的断了电,然后你对着周围的同事说:下面就是见证奇迹的时刻,于是你接通了电源,此时你笑的是那么春光灿烂。突然,你耳边传来一句轻轻的、温柔的耳语:老兄,你的FPGA变砖啦!“怎么可能!”,你不屑的低吼了一句,可是,当你看到那颗小小的LED灯安静的还在沉睡的时候,你傻眼了,“What the hell is going on!”,看着周围的同事,我理解你的心情:一种被狠狠打脸的刺痛感袭上了你的心头。你埋着头绷着脸,折腾了半天没找出原因在哪,这到底是怎么回事儿呢?
FPGA升级防砖也即支持FALLBACK模式,赛灵思官方的指导文档里也进行了相应的指导说明。对于FALLBACK模式,最重要的就是要构建起一个FLASH镜像文件,该镜像文件的架构如图1所示。
图1 FLASH镜像文件架构
关于FLASH镜像架构的信息,赛灵思官方的configuraTIon user guide里有详细说明。图中,MulTIboot Header决定了FPGA上电之后要先从哪个固件区读取配置文件以及如果失败了该跳转到哪个固件区读取备份配置。我们的镜像里划分了两片区域用于存储固件,分别为:AcTIve区和Old(golden)区,我们的升级指的就是对AcTIve区的固件进行更新,Header区和Old区的信息不改动;FPGA每次上电先从AcTIve区读取配置文件。Old区是一份固件备份,它的作用就是当Active区因为升级意外而固件被破坏的情况下,FPGA能够从此处启动配置。
那么,如何保证当Active区的固件因为升级意外被破坏时FPGA能够主动切换到Old区域读取配置文件呢?这就是我们要说明的问题。
FPGA升级固件的烧写一般有两种方式,分别如下:
1、顺序烧写,这是最传统的烧写方式,即不对固件进行任何更改直接往FLASH里烧写;
2、调整固件烧写顺序,即对固件进行一定的修改,然后分两次烧写。
我们在设计的时候首先想到的就是第一种方式,况且赛灵思官方文档也说了在如下情况下FPGA会跳转到备份区启动配置:
1、读取配置文件的同步字超时,此时会触发跳转;
2、检查到固件CRC出错,此时会触发跳转。
根据这些说法,采用第一种方式也不会出问题啊!可是为什么就不行呢?也许细心测试的你会发现,在擦除的过程中断电的话FPGA能够从备份区启动,在烧写的过程中断电的话FPGA就会启动失败,你,有没有感悟到什么?是不是看到了一丝丝亮光?奥特曼说过:有光的地方就有希望!你可能会问:为什么有第二种烧写方式?要怎样调整固件呢?为什么要调整呢?在这里,我先给你肯定答案:采用第二种方式完全不会出问题。现在,我们接着往下卖关子。
既然有上面的一系列疑问,那么我们就需要去研究一下ISE工具在生成固件的时候是怎样的一种打包格式。经过研究发现两个很重要的信息:
1、配置文件的同步字在固件的首部;
2、CRC检查命令一般在固件的后部,而FPGA必须在收到CRC检查命令之后才会去检查CRC值。
前面也提到,当擦除的时候断电FPGA能够发生配置跳转,当烧写的时候断电FPGA无法进行配置跳转,说到这里再结合上面的两条重要的发现,你也许已经为自己心中的疑问找到答案了吧?很显然,因为固件的同步字很少,所以能够很快被擦除也可以很快被写入FLASH;因此,当擦除的时候断电了,此时固件的同步字已经破坏,而FPGA读不到同步字就会出现看门狗超时,那么此时FPGA就会跳转到备份区读取配置文件;当在烧写的时候断电呢?因为此时同步字已经被正确写入,而CRC检查命令被破坏了,FPGA在配置的时候会去读CRC检查命令,直到读到为止,可是CRC检查命令被破坏了怎么办呢?没得办法啊,FPGA有一种不撞南墙不回头,撞了南墙依然不回头的韧劲和坚持,它会一直读下去,所以它就陷入死循环了,哎!你说如果爱情里也有这种精神该多好啊!
经过上面的解释,我们会恍然大悟:原来通过CRC错误触发FPGA配置跳转不靠谱啊!既然如此,我们就只能在固件的同步字上做文章了。好了,不卖关子了,其实,在固件的同步字上做文章也就对应着升级固件的烧写方式2:修改固件并调整固件的烧写顺序,简单解释如下:
1、把固件的同步字修改掉,第一步烧写的时候不烧同步字;
2、当固件的其余部分烧写完毕之后再单独把固件的同步字烧写入原来对应的FLASH位置处。
这样做了之后,无论是擦除过程中断电还是烧写的过程中断电,固件的同步字都会被破坏,那么肯定会触发FPGA的配置跳转,即FALLBACK一定会成功!
相关推荐
发表于 2018-08-29 09:59
•
34次阅读
中国正在建造一台价值10亿元的超导计算机,预计2022年完成。由于超导系统产生的电阻几乎为零,该系统...
发表于 2018-08-29 09:43
•
172次阅读
发表于 2018-08-29 09:40
•
43次阅读
发表于 2018-08-29 09:37
•
22次阅读
发表于 2018-08-29 09:37
•
44次阅读
发表于 2018-08-29 09:21
•
25次阅读
1492年哥伦布从西班牙巴罗斯港出发,一路西行发现了美洲。葡萄牙人达伽马南下非洲,绕过好望角到达了...
发表于 2018-08-29 08:50
•
56次阅读
发表于 2018-08-29 08:42
•
23次阅读
发表于 2018-08-29 08:42
•
43次阅读
发表于 2018-08-28 16:14
•
36次阅读
发表于 2018-08-28 11:35
•
46次阅读
数据采集系统的总体架构如图1所示,其中PCI核、DMA控制器与A/D控制器均在FPGA内部实现。为实...
发表于 2018-08-28 10:16
•
152次阅读
20616134
发表于 2018-08-28 09:56
•
423次阅读
发表于 2018-08-28 09:39
•
106次阅读
只有在脑海中建立了一个个逻辑模型,理解FPGA内部逻辑结构实现的基础,才能明白为什么写Verilog...
发表于 2018-08-28 07:45
•
144次阅读
在FPGA人才数量上,记者在采访中获知,Intel收购Altera之后,可编程事业部(PSG)达到3...
发表于 2018-08-27 11:04
•
691次阅读
很多嵌入式设计使用基于微处理器和微控制器的单板计算机 (SBC) 和模块化系统 (SoM)(例如,请...
发表于 2018-08-27 09:46
•
591次阅读
多年来,半导体行业一直致力于将越来越多的组件紧密的集成到单个片上系统中(SoC)。毕竟这对于庞大的应...
发表于 2018-08-27 08:58
•
215次阅读
赛灵思推出了新款 Zynq UltraScale+ RFSoC ZCU111 评估套件,用于支持 R...
发表于 2018-08-26 11:08
•
213次阅读
对CAM和RAM单元的初始化数据写入既可预先初始化,也可在系统工作过程中实时更新。在雷达信号预分选应...
发表于 2018-08-26 10:03
•
41次阅读
设计中使用四路选通器分别连接计数器模块、延迟线模块和FIFO缓冲的输出,其中因计数器模块中采用16位...
发表于 2018-08-26 09:59
•
51次阅读
通过测试,此组传输器件可以驱动LVDS信号通过SVY-50-3型号电缆传输至少200 m。信号经过传...
发表于 2018-08-26 09:55
•
66次阅读
上述各模块分别在QualtusⅡ中通过了仿真验证,最后对整体设计进行了硬件验证。将设计载入KH310...
发表于 2018-08-26 09:52
•
71次阅读
根据定时器的定时信息和命令寄存器的命令,控制计数器对α测量模块传过来的脉冲信号进行计数,从而获得辐射...
发表于 2018-08-26 09:49
•
42次阅读
当时间为正常光照时间时,太阳跟踪系统每隔5 min就会进入太阳高度角方位角进行计算。计时模块输出给太...
发表于 2018-08-26 09:45
•
48次阅读
在数字信号处理系统中,数据表示格式可分为定点制、浮点制和块浮点制,它们在实现时对系统资源的要求不同,...
发表于 2018-08-26 09:40
•
41次阅读
系统总体框图如图1所示,采用集成芯片AD2S82A和AD2S80A,分别作为旋转变压器粗码盘和精码盘...
发表于 2018-08-26 09:37
•
73次阅读
系统建立起来后,下一步是最终的板级验证。图6为用Chipscope得到的波形图。mosi与miso分...
发表于 2018-08-26 09:34
•
44次阅读
本文中提出的高速数据远距离传输系统方案以Altera 公司Cyclone III 系列低成本FPGA...
发表于 2018-08-26 09:29
•
74次阅读
中兴事件引起了全球的轰动,大家的目光聚集在服务器、计算机、存储底层芯片技术缺乏之上。紫光等国产芯片供...
发表于 2018-08-25 10:49
•
528次阅读
FPGA市场在2008年是40亿美元规模,到了2016年还是40亿美元。似乎显而易见,当ASIC越...
发表于 2018-08-25 10:02
•
85次阅读
Altera公司为其业界领先、成熟可靠的Quartus II软件引入功能超级强劲的Spectra-...
发表于 2018-08-25 09:18
•
86次阅读
通过增添了Sibridge Technologies成为认可的CompanionCore供应商,这...
发表于 2018-08-24 17:51
•
103次阅读
美高森美公司(Microsemi) 宣布提供带有模块化电机控制IP集和参考设计的SmartFusi...
发表于 2018-08-24 17:29
•
132次阅读
e络盟日前宣布推出LOGI开发板,这一整套易用的软硬件生态系统可为树莓派与BeagleBone开发...
发表于 2018-08-24 17:03
•
68次阅读
2018年8月,中国北京 —自适应和智能计算的全球领先企业赛灵思公司与 SK 电讯 (SKT) 今天...
发表于 2018-08-24 16:48
•
444次阅读
Altera公司开发了基于其Arria 10 SoC的存储参考设计,与目前的NAND闪存相比,NA...
发表于 2018-08-24 16:47
•
46次阅读
Altera公司宣布提供第二代Nios II嵌入式评估套件(NEEK),它安装了Altera的非易...
发表于 2018-08-24 16:41
•
33次阅读
我们的一位定时产品的客户看到了将FPGA设计商业化并推向市场的真正机会。Jim Bittman,Bi...
发表于 2018-08-24 16:37
•
350次阅读
Altera公司今天发布其Stratix 10 FPGA和SoC体系结构和产品细节,这一下一代高端...
发表于 2018-08-23 09:00
•
61次阅读
Altera公司宣布,为使用Altera现场可编程门阵列(FPGA)的系统设计人员提供最新版本的工...
发表于 2018-08-23 09:00
•
63次阅读
当FPGA 80年代出现后,很快就变成了各家数字芯片公司开发的必需品,没有FPGA之前,数字芯片开发...
发表于 2018-08-21 14:51
•
219次阅读
你一般就业面很广,但时时刻刻会听到或接触FPGA,这很正常,因为FPGA这些年一年比一年好,很有...
发表于 2018-08-21 14:35
•
357次阅读
卷积编码是现代数字通信系统中常见的一种前向纠错码,区别于常规的线性分组码,卷积编码的码字输出不仅与当...
发表于 2018-08-21 10:26
•
269次阅读
目前,在PCM/FM遥测体系中模拟信号采集普遍采用8位量化,全部模拟信号均归一化到O~5 V范围内...
发表于 2018-08-21 09:20
•
93次阅读
8月8日,英特尔在美国总部召开了名为“以数据为中心(Data-Centric)”的创新峰会。在会上,...
发表于 2018-08-20 14:40
•
772次阅读
赛灵思公司为成本敏感型应用推出灵活的 I/O 密集型器件——Spartan-7 FPGA系列。该新...
发表于 2018-08-20 10:48
•
46次阅读
赛灵思推出业界领先的高级设计工具System Generator for DSP 2015.3版,...
发表于 2018-08-20 10:13
•
130次阅读
美高森美公司(Microsemi) 宣布发布用于其最新现场可编程门阵列(FPGA)产品开发的综合设...
发表于 2018-08-19 09:04
•
144次阅读
PCIe总线错误检测囊括了链路(Link)上的错误以及包传递过程中的错误,如下图所示。用户设计的应用...
发表于 2018-08-18 11:05
•
195次阅读
大学生电子竞赛题目以模拟电子、数字电子、可编程逻辑器件及单片机技术为核心, 涉及电子仪器仪表、通信、...
发表于 2018-08-18 10:03
•
167次阅读
其中n是输入序列的个数,bi是每个序列的偏置。容易看出b≤bi(1≤i≤n),等式当且仅当在bi=0...
发表于 2018-08-18 10:00
•
130次阅读
方案1:数字电位器控制两级INA129级联。用FPGA控制数字电位器DS1267使其输出不同的阻值,...
发表于 2018-08-18 09:56
•
84次阅读
结合系统需求,确定系统的总体设计方案为:以Xilinx公司的Virtex-5 XC5VFX70T F...
发表于 2018-08-18 09:53
•
107次阅读
触发器是FPGA设计中最常用的基本器件。触发器工作过程中存在数据的建立(setup)和保持(hold...
发表于 2018-08-18 09:50
•
69次阅读
如果采用MAC模式,DSP48则非常适用,因为DSP48 Slice内含输入寄存器、输出寄存器和加法...
发表于 2018-08-18 09:47
•
395次阅读
在数据串并转换的过程中, 必须用到寄存器来存放临时数据。一般情况下,发送数据需要1 个发送寄存器,接...
发表于 2018-08-18 09:43
•
103次阅读
随着时代和技术的发展,对于数据总线带宽的要求越来越高,现有的总线标准越来越难以满足实际应用中对高总线...
发表于 2018-08-18 09:40
•
90次阅读
近年来,FPGA技术发展迅速,片内集成了PLL、硬件乘法器、存储器,具有了实现优秀算法的充足资源。许...
发表于 2018-08-18 09:36
•
73次阅读
发送数据由接口模块控制,接口模块给出w rn 信号,发送器根据此信号将并行数据锁存,并通过发送保持寄...
发表于 2018-08-18 09:33
•
105次阅读
赛灵思公司推出 Vivado 设计套件 HLx 版本,为All Programmable SoC ...
发表于 2018-08-17 11:43
•
195次阅读
用三段式描述状态机的好处,国内外各位大牛都已经说的很多了,大致可归为以下三点:
发表于 2018-08-17 11:43
•
90次阅读
你是否体会,你的职业路途遥远,前方很迷茫。
发表于 2018-08-17 10:42
•
484次阅读
设计背景: 数模转换器( Digital to Analog Converter)即DAC,是数字世...
发表于 2018-08-17 09:52
•
1231次阅读
大家好,又到了每日学习的时间了,今天我们来聊一聊基于fpga设计9/7小波变换原理。 9/7小波变换...
发表于 2018-08-17 09:52
•
659次阅读
Altera公司今天宣布,与德国模拟和混合信号半导体公司ZMDI (Zentrum Mikroel...
发表于 2018-08-16 11:26
•
96次阅读
Altera公司(Nasdaq: ALTR)今天公开业界第一款异构系统级封装(SiP,System...
发表于 2018-08-16 11:15
•
93次阅读
作为紫光集团从“芯”到“云”战略中芯片板块的重点发展方向,深圳市紫光同创电子有限公司的发展得到了紫光...
发表于 2018-08-16 10:06
•
858次阅读
复杂的现代电路通常包含大量元器件,例如微控制器、IC、DSP 和 FPGA 等。每个元器件均具有特定...
发表于 2018-08-16 09:13
•
1063次阅读
Lattice ECP3,ECP5(ECP5-5G)的SerDes/PCS结构基本相同,区别主要在于...
发表于 2018-08-16 09:07
•
418次阅读
1 具备自己设计高速数字电路板(PCB)的能力并且掌握DSP的基础理论
现在的电子产品系统越来越复...
发表于 2018-08-15 18:45
•
106次阅读
高级FAE陈安芝详细介绍了安路主要的EAGLE系列和ELF2系列FPGA器件技术。其中ELF2是安路...
发表于 2018-08-15 18:36
•
213次阅读
FPGA因技术门槛极高,全球市场份额主要被美国四大巨头高度垄断。据不完全统计,在全球约50亿美元的F...
发表于 2018-08-15 10:43
•
531次阅读
本文将讨论使用 SoM 来开发嵌入式系统的优势,这些系统需要借由 FPGA 提供更高的处理能力。本文...
发表于 2018-08-15 09:21
•
811次阅读
在近日举行的2018上海世界移动大会期间,中国电信、英特尔、联想与赛特斯联合发布了基于FPGA的一系...
发表于 2018-08-14 16:20
•
185次阅读
至于FPGA,它包含大量门电路,使芯片更集成化,速度更快,可靠性更高.尤其是具有系统内可再编程(可再...
发表于 2018-08-14 14:58
•
662次阅读
在FPGA设计中,不管是Altera还是Xilinx,它们的IP核几乎都是采用二进制补码带符号数,也...
发表于 2018-08-14 14:35
•
380次阅读
FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。
发表于 2018-08-14 10:39
•
476次阅读
汽车制造商们坚持不懈地改进车内舒适性、安全性、便利性、工作效能和娱乐性,反过来,这些努力又推动了各...
发表于 2018-08-14 10:01
•
315次阅读
随着汽车在过去 25 年中从纯机械设备演变成高度集成的线控驾驶汽车电子系统,设计人员面临的挑战也不...
发表于 2018-08-14 09:31
•
362次阅读
用单片SoC芯片替代传统的CPU+FPGA的分立方案,也可以减少硬件布板面积,有利于将高性能处理系统...
发表于 2018-08-13 17:32
•
928次阅读
未来几年,人工智能芯片的需求将急剧上升。联合市场研究公司(Allied Market Researc...
发表于 2018-08-13 16:49
•
163次阅读
上周,刚刚收购深鉴科技的FPGA巨头:赛灵思面向媒体记者在深举行了“汽车产业最新技术与产品说明会”。...
发表于 2018-08-13 16:40
•
690次阅读
发表于 2018-08-13 13:45
•
301次阅读
发表于 2018-08-13 13:45
•
333次阅读
发表于 2018-08-13 13:45
•
304次阅读
专用控制器在完成整个控制的过程中,arm只负责指令解析、控制指令发送、实时数据上传等任务,fpga才...
发表于 2018-08-12 09:47
•
338次阅读
OrCAD® Capture Cloud工具作为桌面版本的一部分被引入市场,并拥有如下优势:
无需...
发表于 2018-08-12 09:44
•
592次阅读
在总线接口模块中,曼彻斯特编解码是实现功能的核心部分,所以编码数据和解码数据是进行功能验证时观察的重...
发表于 2018-08-12 09:44
•
97次阅读
为了实现自动图像报警和图像采集,本文设计了动体检测算法,这是因为绝大多数情况下我们只对监控区域中运动...
发表于 2018-08-12 09:39
•
116次阅读
本文详细讲述了通过Matlab工具设计FIR线性相位滤波器的方法, 并针对声波信号设计了优于传统结构...
发表于 2018-08-12 09:33
•
86次阅读
初始时的PC 为0000H, SP为03FFH。SP的更改可通过指令sph l来执行。针对实验箱, ...
发表于 2018-08-12 09:29
•
94次阅读
使用的FPGA器件是StratixⅡ型号为EP1S40F780C7。综合结果显示:A8096使用3 ...
发表于 2018-08-12 09:11
•
124次阅读
可编程的“万能芯片” FPGA——现场可编程门阵列,是指一切通过软件手段更改、配置器件内部连接结构...
发表于 2018-08-11 11:47
•
74次阅读
FPGA 设计人员在满足关键时序余量的同时力争实现更高性能,在这种情况下,存储器接口的设计是一个一...
发表于 2018-08-11 11:04
•
1618次阅读
FPGA全称现场可编程门阵列(Field-Programmable Gate Array),最初作为...
发表于 2018-08-10 17:23
•
577次阅读
近日,想必各位科技爱好者的朋友圈都被一篇发表在第25届IEEE国际讨论会上,用Python开发FPG...
发表于 2018-08-10 14:57
•
435次阅读
大家好,又到了每日学习的时间了,今天我们来聊一聊FPGA verilog中的function用法与例...
发表于 2018-08-10 13:42
•
855次阅读
赛灵思根据实际情况提供了基于器件的打包式解决方案,从而帮助用户克服功能安全系统设计的复杂性挑战,而且...
发表于 2018-08-10 09:55
•
971次阅读
设计背景: 矩阵键盘在工程设计越来越多的被用到,已然成为了我们做开发接触到的不可缺少的小型项目,利于...
发表于 2018-08-09 10:47
•
1054次阅读
评论