开云-BPO行业整合方案提供者
专业化、科技化、国际化;高标准、广覆盖、全流程
了解更多FPGA实现串口进级和MultiBoot(二)FPGA启动流程 时候:2024-12-13 21:27:41 手机看文章
扫描二维码随时随地手机看文章
这个系列开篇必定要先领会FPGA的启动流程,试想一下:我想实现MultiBoot,那末我应当在甚么时辰最先进级,进级掉败后FPGA进行了哪些操作,和怎样回到Golden区?
还一个问题,就是我硬件打板回来,烧写进FLASH后起不来,这应当怎样排查?
缩略词索引:
K7:Kintex 7 V7:Vertex 7 A7:Artix 7以上所有这些的条件就是理解FPGA启动流程。
图0:7系列FPGA启动步调-参考:UG470AMD-Xilinx FPGA启动阶段大要可以分为以上几个步调(上图参考来历:UG470 Figure 5-3),下面别离讲授每个步调中FPGA做哪些工作。
1、器件上电 器件外围设置对7系列FPGA首要的存眷点就是BANK0、BANK14和BANK15,BANK0首要存眷电源和设置装备摆设引脚,下表是一些留意点:
图1:电源域相干设置装备摆设-来历:UG470关在Vertex7系列详见《UG470》表2-7和表2-8。
SPI FLASH设置装备摆设利用BANK0和BANK14,BPI则是BANK0、BANK14和BANK15,相干的电源域如图1所示,对FPGA人员首要存眷BANK0,下面是一个K7的典型电路:
重点存眷:M0、M1、M2引脚(其他主要引脚我们下一节重点介绍),这几个引脚是关在FPGA的启动设置装备摆设引脚:
图2:启动设置装备摆设引脚-来历:UG470 上电时序7系列FPGA其实对上电时序要求不是那末高,可是对电源域的要求比力高,下图就是FPGA的上电时序要求。
图3:SPI x1 启动时序-来历:UG470相干时序要求以下:
图4:几个主要时序参数-来历:UG470图4中Tpor的值和具体器件有关,大要的规模是10~50ms,若是从模式设置装备摆设,建议依照60ms设计,主模式设置装备摆设,建议依照5ms来斟酌。
2、设置装备摆设初始化设置装备摆设初始化操作,也就是上电复位完成后,相干设置装备摆设存储器按挨次清零。设置装备摆设初始化的触发前提首要由以下几种环境:器件正常上电、Program_B旌旗灯号拉低、IProg指令、JTAG的JProgram指令、Fallback重配,和触发器经由过程全局(GSR)的从头初始化。设置装备摆设初始化时代,除少许的设置装备摆设输出管脚外,其余IO的状况经由过程PUDC_B管脚上下拉肯定,具体申明见图5。
图5:PUDC_B管脚上下拉和IO管脚设置装备摆设关系-来历:UG470设置装备摆设初始化时代还会将芯片内所有模块的设置装备摆设RAM清零,包罗寄放器的值和Block RAM的存储值,FF触发重视新初始化。在设置装备摆设存储器清零进程中,INIT_B旌旗灯号一向为低电平,当完成清零后,INIT_B旌旗灯号才会酿成高电平。是以INIT_B旌旗灯号拉高暗示初始化完成,图4中也简单申明了从上电设置装备摆设到INIT_B旌旗灯号拉高约多长时候。
3、设置装备摆设管脚读取依照图0中步调,履历过上面两个步调后,接下来就是进行设置装备摆设模式收集。设置装备摆设模式收集也很好理解,就是当INIT_B旌旗灯号拉高后读取M2,M1,M0管脚的电平状况,这几个管脚的上下拉是决议FPGA的启动模式,具体设计如图6所示。
图6:FPGA设置装备摆设管脚和启动模式-来历:UG470由于INIT_B拉高后,才进行模式采样,所以可以经由过程外部强迫把INIT_B拉低后,进行延时再设置装备摆设。假如加载模式为Master模式,FPGA很快就会输出有用的CCLK。此时,FPGA最先在设置装备摆设时钟的上升沿对设置装备摆设数据进行采样,固然也能够经由过程设置,利用降落沿来收集设置装备摆设数据。
4、检测同步头当和外设进行通讯的时辰,我们一般城市在和谈里增添头校验、尾校验和数据校验。对FPGA读取FLASH中设置装备摆设数据一样(还没到读取用户数据流),这个头校验就叫“同步头”,它是一段非凡的同步字。“同步头”的感化和和谈头校验一样帮忙FPGA肯定准确的数据位置,同步字之前的设置装备摆设数据城市被FPGA疏忽,也就是FPGA仅仅在同步化以后才正式最先领受设置装备摆设数据。同步字申明详见图7。
图7:FPGA 同步字-来历:UG470 5、器件ID检测为了确保位流和FPGA芯片匹配,在读取到同步字后还会检测设置装备摆设位流中的器件ID和方针ID是不是一致。ID是一个固定的32位的数据,基在IEEE Std 1149.1尺度。7系列FPGA的ID已在UG470 的 Table 1-1中列出,下图是截取的一部门,其他详见UG470。
图8:器件ID - 截取:UG47032位的ID中包括了28位的特点值和4位掩码。特点值包罗厂商信息,器件族,器件范围等。假如器件ID和位流设置装备摆设中不匹配,FPGA 会将内部寄放器的第一名ID_Err置高,软件也会显示毛病信息,同时住手后续位流加载。
6、设置装备摆设文件载入在第四步和第五步顺遂经由过程后,FPGA最先加载设置装备摆设数据。
设置装备摆设文件框架7 系列 FPGA 设置装备摆设文件以帧的情势摆列。帧是 7 系列 FPGA 设置装备摆设内存空间中最小的可寻址段,是以所有操作都必需感化在全部设置装备摆设帧。每帧由 101 个 32 位构成。
由于后续我们操作根基都是经由过程剧本或GUI进行设置装备摆设的,这部门内容现实我们今朝也用不上,所以有爱好的可以去看看UG470中第五章关在这部门具体介绍。
7、CRC校验设置装备摆设文件载入完成后,为了验证数据的准确性,FPGA还主动设置了CRC校验(CRC是同步进行),导入完成后会将计较的CRC值与期望CRC值进行比力。假如CRC校验不准确,FPGA会主动把INIT-B拉低,抛却此次设置装备摆设。用户必需把PROG-B引脚拉低,才能进行从头设置装备摆设。默许环境下,生成的设置装备摆设位流会主动添加CRC校验,但这个不是必需的,可以经由过程位流设置功能打消CRC查验,可是打消CRC校验会存在因导入的毛病位流而引发功能异常乃至破坏器件。
图9:经由过程上图挨次进行CRC设置 8、启动序列最后一个步调就是启动序列,也是我们需要重点存眷的一步。
前面几步顺遂完成后就到最后一步了,FPGA进入启动序列流程。启动序列包括8个挨次启动状况(0-7)操作,此中启动状况0对用户是不透明的,Phase1-Phase7如图10所示。
图10:启动序列1~7 - 来历:UG470启动序列事务的默许挨次为先释放DONE引脚,然后激活I/O,最后启动写使能(详见UG470中Table 5-11 默许启动挨次,下面图12中)。现实利用中,可以经由过程BitGen参数对启动挨次进行设置来知足分歧的需求。也就是上图中除步调7之外,其余几个步调启动挨次是用户可编程的,而且启动挨次中的内容也是可编纂的,如是不是期待MMCM锁定或是不是期待DCI阻抗匹配这些都是可设置装备摆设的,以上两个可选设置装备摆设。
可是,对1-全局使能GWE(使能RAM和Flip-Flops所有同步单位工作)置位、2-打消全局三态GTS,激活输出管脚这两步时强迫履行的,不然对1不履行的话,FPGA没法正常工作;对2不履行则FPGA所有引脚将功能掉效。
释放DONE管脚,FPGA将打消之前依照PUDC_B引脚设置的引脚默许状况。DONE引脚是开漏输出旌旗灯号,是以芯片外部需要利用一个330Ω上拉,当器件释放DONE管脚,DONE管脚的电平变成高电平。上面的具体申明如图11所示:
图11:启动序列申明 - 来历:UG470默许启动序列时序图:
图12:默许启动序列时序图 - 来历:UG470点窜上面默许的启动序列的Vivado设置以下图所示。
图13:点窜默许启动序列的Vivado设置 总结固然还没最先进入正题,可是“前戏”也很主要,这决议了你能深切几多。本文首要需要领会的就是FPGA启动的几个步调,其内容更合适排查和设计FPGA相干硬件。
欲知详情,请下载word文档 下载文档