当前位置: 首页 > news >正文

建设网站使用的工具大连免费网站制作

建设网站使用的工具,大连免费网站制作,网站备案域名更改,免费商城建站目录 简介 状态字定义 Unknown Device/Many Unknow Devices 解决办法 一般原因 简介 Xilinx的FPGA有多种配置接口#xff0c;如SPI#xff0c;BPI#xff0c;SeletMAP#xff0c;Serial#xff0c;JTAG等#xff1b;如果从时钟发送者的角度分#xff0c;还可以…目录 简介 状态字定义       Unknown Device/Many Unknow Devices 解决办法 一般原因 简介 Xilinx的FPGA有多种配置接口如SPIBPISeletMAPSerialJTAG等如果从时钟发送者的角度分还可以分为主动Master即由FPGA自己发送配置时钟信号CCLK和被动Slave即由外部器件提供配置所需要的时钟信号另外还可由板上稳定晶振提供时钟信号经由FPGA的EMCCLK接口再从CCLK端口送出。 如此多的配置形式一旦发生配置失败怎么办大家都知道先要查看一下板子上FPGA的DONE管脚。但绝大多数情况下DONE管脚此时会是低电平只能证明配置确实失败了。但是失败的原因到底是什么呢调试到底应该如何入手呢 FPGA的状态字寄存器Status Register能直接告诉你或者极大地辅助判断失败的原因Xilinx FPGA的状态字在赛灵思所有器件系列中都基本保持一致的定义个别位由于系列特性不同可能有细微区别这些不是最重要的不在我们今天讨论的范围内。 状态字定义       以7系列 FPGA为例我们看看UG470上对状态字的完整定义 首先用下载线连接好板子和电脑板子上好电。打开Vivado硬件管理器扫描板子上的JTAG链 Open target -AutoConnect, 板子上的JTAG链中的器件会显示在Hardware窗口中 鼠标选中扫描出的FPGA器件在下方的Hardware Device Properties窗口中选择Properties项会出现该FPGA的一系列属性。找到其中的REGISTER分类展开第二个寄存器CONFIG_STATUS, 即是我们要讨论的状态字了。 这里可以看到的是一个配置前的状态字的标准状态 只有BIT02 PLL_LOCK, BIT03 DCI_MATCH, BIT11 INIT_B_INTERNAL, BIT12 INIT_B_PIN的值必须是1 BIT08-10 MODE PINSBIT21 SECURITY_STATUS, BIT25-26 BUS_WIDTHBIT28 PUDC_B根据FPGA和板子具体的设定可以为1或者0其他都必须是0。 如果一上电状态字就表现出了非典型值那么大概率硬件上就有错误或者不合理的地方了。比较典型的几个例子 1. 状态字全0 REGISTER.CONFIG_STATUS 00000000000000000000000000000000 这种情况说明FPGA被强行控制在全局复位状态了。一般是硬件上PROGRAM_B管脚或者INIT_B管脚被错误的拉到了地上两个管脚上的有效电平为0. 非常偶尔的情况下当DONE管脚被错误拉为0电平时也能出现此种状态字。 2. 状态字全1或者一串1后面跟着一个到数个0一般不超过4个 REGISTER.CONFIG_STATUS 11111111111111111111111111111111 REGISTER.CONFIG_STATUS 11111111111111111111111111111110 REGISTER.CONFIG_STATUS 11111111111111111111111111111100 这种一般是板子上设计的JTAG链里面不只一个FPGA器件比如是Xilinx的FPGA和一个第三方的CPLD串联等。 由于Vivado里面并没有第三方器件的BSDL文件那么在扫描整个JTAG链时它无法识别链中各器件的型号以及数目所以往往从TDO管脚中移位出一串1来。如果Xilinx的FPGA位于链的末端接近TDO的位置那么有时可以识别出正确的FPGA型号。但是这种情况仍然无法正确进行将要进行的配置操作。另外很多例子中则是FPGA的型号也被识别错误了。 解决方案如下 https://www.xilinx.com/support/answers/61312.html Unknown Device/Many Unknow Devices 此时不要说状态字无法检测了整个JTAG已经无法正确扫描Vivado里面无法识别出任何器件。这一般是板子上的JTAG接口的TDO或者链中最后一个器件的输出管脚TDO被短接到了地平面上。 除了上述典型情况当然还有很多一上电就无法继续配置的情况原因不胜枚举。这种情况下请详细描述你的JTAG链构成读出当前的状体字如何还能够读的话如果状态字正常可以接下来进行配置操作。或者是在你的配置失败后保留失败现场再连接好板子和电脑继续读出状态字。 如果你的板子已经重新上下电了那么当时失败的场景也就消失了。这也就是我们一再强调失败后要保留现场板子上要保留JTAG接口的原因。当然在设计成熟后或者实验室调试工作结束后可以去掉JTAG接口以期得到产品更高的安全性。 配置完成后得到的状态字如下 REGISTER.CONFIG_STATUS 00010010100100000111110111111100 注意其中的 BIT02 PLL_LOCK, BIT03 DCI_MATCH, 绝大多数情况已经变为1; BIT04 EOSBIT05 GTS, BIT06 GWE, BIT07 GHITH以及BIT11 INIT_BINTERNAL BIT12 INIT_B_PINBIT13 DONE_INTERNAL, BIT14 DONE_PIN必然是1; BIT18-20 STARTUP_STATTE应该是100; BIT25-26 BUS_WIDTH应该是检测出了正确的配置位宽或者在serial的情况下保持默认的01值; 其他BIT01 DECRYPTOR, BIT09-10 MODE_PINS, BIT21-23 SECURITY_STATUS, BIT28 PUDC_B, BIT30CFGBVS_PIN, 根据你的使用有可能是其他的0或者1组合。 RESERVED的不用管。 如果不是这种结果那么就要看看出什么问题了。 在一些相对简单典型的情况下只看某一位就可以直接得到想要的答案。 BIT00的CRC error为1 在不是状态字全1的情况下CRC error位为1说明配置出现了CRC错误。这是一种很常见但比较难修复的错误因为CRC错误的原因一般是因为板子上的信号质量SI Signal Integrity不行传输数据的过程中0/1电平判决错误导致配置数据写入失败。 如何确定真的是SI问题呢看失败概率。CRC错误一般是随机出错的并不一定100%失败除非板子的信号差得没法用了这个一般不会。那么配置文件中01翻转的次数越少出错的概率越小。你可以生成一个只点亮板上一盏LED的小测试设计此时bit文件中有效数据1非常少试着下载该bit看看是不是配置失败率降低了如果是那么基本可以确定了。 解决办法 一旦出现这种情况可以尝试的办法有 1. 降低CCLK频率 2. 在CCLK的输入端以及输出端加入合适的端接电路 3. 换用更高质量的配置时钟比如使用质量较好的晶振通过EMCCLK提供时钟 4. 改善数据链路的信号质量如果对待CCLK同样在数据通路上加入合适的端接匹配电路。 总而言之要做的就是改善板上的信号质量。如果板子SI实在太差那只有改板或者尝试下其他配置方式了。 其他位都正常BIT13 DONE_INTERNAL也为1了但是BIT14 DONE_PIN为0FPGA不工作 这种情况其实配置数据已经完整、正确的送入FPGA并且被接收了但是FPGA的DONE管脚连接不正确导致DONE没有或者没有在规定时间内上拉到要求的电平从而导致FPGA最终的启动失败。 Xilinx的FPGA一般要求DONE管脚上外加一个上拉电阻330欧, 4.7K欧等不同系列要求不同请参照对应的Configuration User Guide。如果这个上拉电阻没有加或者加的阻值过大或过小那么DONE管脚无法在规定的时间里面达到高电平此时内部配置控制器会认为配置失败了典型情况就是DONE internal为高内部数据接收完毕内部释放了但是DONE外部管脚为低。 此时需要做的就是检查PCB上DONE部分的设计看看是不是有和其他管脚相连的情况被其他管脚强行拉低了。或者是设计的DONE点亮LED灯电路不合理 LED通电后把DONE管脚的电平降为低电平。 如果你不清楚如何设计这部分电路从 www.xilinx.com 上找到一款和你使用的FPGA型号相同或者同系列的开发板参考它的原理图设计。 BIT29 BAD PACKET error Bit29为1大概率也是CRC错误。这不过这个CRC错误比较特殊出错位跑到了配置文件里面的命令上导致配置命令变成了一个无效无意义的指令。此时状态字会报出bad packet error。 和CRC错误的随机性一样多次重复加载过程大概率出错的数据位下次落到其他的数据上。由于配置数据的数量远远大于配置命令那么很有可能下次出错看到的是BIT00 CRC ERROR为1. 如果每次都是BAD PACKET error更要怀疑使用的配置文件已经损坏。比如进行了非法改写。Xilinx的任何配置文件都是禁止手工修改的。 BIT15 IDCODE Error为1 配置文件下载时都要先经过FPGA的IDCODE校验。如果这一步通不过那么后续的配置不会进行。这种情况下看看配置文件的bit/bin/mcs是不是给错了。或者FPGA器件有silicon revision的变化。举个例子有的系列ES芯片和Production芯片的配置文件是不能兼容的。这种错误情况如果是用JTAG通过Vivado下载那么log里面也会有相应的提示。 BIT13 DONE_INTERNAL BIT14 DONE_PIN均为0 这也是一种较常见的错误。此时要重点检查一下BIT07 GHIGH位看看它是不是1。如果是那么大概率是你的CCLK时钟给的不够多。FPGA在接收完所有的配置数据后还需要一定数量的CCLK时钟去完成内部的初始化。如果发送端此时常常是一个CPU用Slave模式加载认为有效数据结束强行停止了进一步的时钟发送那么有时可以观测到此种状况。此时去检查BIT18-20 STARTUP_STATE根据具体的情况也有一定概率看到不是预期的100. 标准的做法是在默认设置下持续发送CCLK时钟直至检测到DONE管脚已经拉高然后再多发送至少64个时钟信号。如果修改了配置默认设置比如选择了wait for PLL to lock那么需要更多的时钟信号。 状态字看起来和没有发出配置数据即和刚上电的表现一样。 这种情况说明所有发出的配置数据都被FPGA忽略掉了因为它不认为你发送过来的是有效配置数据。 FPGA的配置文件里面有一个数据同步头一般是AA 99 55 66。如果由于某种原因这个同步头FPGA都没有认出来那么后续的数据会被它全部忽略。 一般原因 . 在非serial配置模式中没有正确的做Byte Swap . 配置文件生成时BPI数据线宽设置不对x8, x16, x32选错了 . SPI的x1, x2, x4选择错误 . 严重的板级SI问题导致的CRC错误 以上列举了常见的一些配置错误和其状态字的相应表现。需要注意的是状态字寄存器有32位其组合可以说是相当多的。除了上述情况配置失败定位还可能需要结合状态字加载过程中log文件硬件设计原理图和工具版本信息以及通过其他一些配置接口在不同条件下去对比测试才能逐步定位。 作者硬件光阴 https://www.bilibili.com/read/cv26835920/?spm_id_from333.999.0.0 出处bilibili
http://www.pierceye.com/news/961133/

相关文章:

  • 网站页面是自己做还是使用模板惠州seo外包费用
  • 深圳专业网站建设技术郑州网络推广平台有哪些
  • 网站建设的费用预算怎么查自己名下有没有注册公司
  • 深圳医院网站建设网站产品页模板
  • 文化馆网站建设做直播的网站有哪些
  • 网站首页怎样排版如何把网站放在根目录
  • 昭通网站开发公司企业网站包含的要素
  • 网站手机版下悬浮条怎么做农产品信息网站的建设
  • 有关网站开发的文章做微商网站的软文
  • 做网站公司起什么名字西安官网seo技术
  • zepto网站开发用帝国cms做的网站首页
  • 手机影视网站制作一站式服务大厅官网
  • 创意网站展示汕尾百度seo公司
  • 网站被spider重复抓取自主建站网站平台
  • 网站打开小企业网站建设哪里做得好
  • 网站开发+进度表什么牛网站建设
  • 不同类型网站比较及网站域名设计整站优化
  • 高端企业网站建设规定陕西关键词优化推荐
  • 做图表的网站推荐简单的个人网站模板
  • 淄博瓷砖网站建设中企动力永久免费虚拟主机
  • 厦门网站建设创建有哪些python wordpress采集
  • 如何建立网站链接百度账号设置
  • 网站的申请淄博市住房和城乡建设厅网站
  • 重庆网站设计开发杂志网站模板
  • 网站建设需要营业执照吗建站之星源码下载
  • 网站建设需要基础吗做游戏的软件app
  • 网站建设费用分几年摊销网站建设动态
  • 企业网站的网址通常包含网站建设总结会上 领导讲话稿
  • 营销型网站五大系统 单仁网站开发个人简历
  • 网站内容的编辑和更新怎么做的免费的网站制作