合理使用JTAG和IMPACT帮助你调试FPGA不能启动的问题
2017-01-06 14:56
274 查看
本来想着把GTX后面两篇博文找时间写了,但是最近实在是忙,一直在搭图像处理的AXI框架和整FPGA-DSP双平台的板子,下面先和大家分享一下调试心得。
最近调试一块新的Artix7板子,遇到了一个很奇怪的问题,问题是FPGA使用JTAG口能把程序到FPGA,FPGA也能跑得动,当配置模式选择MASTER
SPI时,通过JTAG口下载也可以下载成功,但是问题是重新上电发现FPGA无法读出FLASH的配置文件,导致Master SPI模式下FPGA无法启动,经过长达2天的排查,最终定位到在配置电路上M1和M2的模式选择管脚下拉电阻不对,在硬件上使用的是10K电阻下拉,导致在FPGA启动过程(xilinx
FPGA的启动过程如图1所示)中的Sample Mode Pins过程出错,事实依据如图2所示。
图1
图2
官方的说法是直接接VCC或者GND,如果接上下拉电阻的话,阻值应该小于1K,用万用电表测量M1和M2的电压值,发现在10K下拉的情况下伏值大概是1.3V左右,为了深究这个情况的原因,去翻看官方手册,终于在UG470里面找到一句话,如图3所示。
图3
原来是MODE PIN有内部上拉电阻,这就能解释为什么用万用表测量M1和M2会有1.3V左右的电压。
那么这类问题如何可以快速的找出呢,其实IMPACT提供的信息很有用,这个工具能方便硬件人员在板卡前期调试提供大量信息,特别是提供内部电压以及内部启动状态寄存器情况,具体怎么去看到这些信息,首先,给板卡上电,然后打开IMPACT-Boundary Scan-Initialize chain,扫描到器件之后,打开菜单栏-Debug-Read
Device Status,如图4所示。
图4
选择读取器件状态之后,可以看到控制台打印如下信息,如图5和图6所示。
图5
图6
从控制台打印的信息来看,可以看到芯片的温度、内核VCCINT的电压值和VCCAUX的电压值,FPGA的状态寄存器值以及配置管脚的值等等,通过这些信息,可以方便的帮助工程师对FPGA温度、内部电压、启动状态以及相关配置管脚进行判断,加速定位问题。
最近调试一块新的Artix7板子,遇到了一个很奇怪的问题,问题是FPGA使用JTAG口能把程序到FPGA,FPGA也能跑得动,当配置模式选择MASTER
SPI时,通过JTAG口下载也可以下载成功,但是问题是重新上电发现FPGA无法读出FLASH的配置文件,导致Master SPI模式下FPGA无法启动,经过长达2天的排查,最终定位到在配置电路上M1和M2的模式选择管脚下拉电阻不对,在硬件上使用的是10K电阻下拉,导致在FPGA启动过程(xilinx
FPGA的启动过程如图1所示)中的Sample Mode Pins过程出错,事实依据如图2所示。
图1
图2
官方的说法是直接接VCC或者GND,如果接上下拉电阻的话,阻值应该小于1K,用万用电表测量M1和M2的电压值,发现在10K下拉的情况下伏值大概是1.3V左右,为了深究这个情况的原因,去翻看官方手册,终于在UG470里面找到一句话,如图3所示。
图3
原来是MODE PIN有内部上拉电阻,这就能解释为什么用万用表测量M1和M2会有1.3V左右的电压。
那么这类问题如何可以快速的找出呢,其实IMPACT提供的信息很有用,这个工具能方便硬件人员在板卡前期调试提供大量信息,特别是提供内部电压以及内部启动状态寄存器情况,具体怎么去看到这些信息,首先,给板卡上电,然后打开IMPACT-Boundary Scan-Initialize chain,扫描到器件之后,打开菜单栏-Debug-Read
Device Status,如图4所示。
图4
选择读取器件状态之后,可以看到控制台打印如下信息,如图5和图6所示。
图5
图6
从控制台打印的信息来看,可以看到芯片的温度、内核VCCINT的电压值和VCCAUX的电压值,FPGA的状态寄存器值以及配置管脚的值等等,通过这些信息,可以方便的帮助工程师对FPGA温度、内部电压、启动状态以及相关配置管脚进行判断,加速定位问题。
相关文章推荐
- 解决使用Tornado过程中不能启动simulator的问题
- 使用VHD方式安装Win7不能启动的问题
- 问题:不能使用U盘或CD启动系统
- Fluid Mask 3.3.16 在 mac OS X Sierra (10.12) 和 High Sierra (10.13)系统中无法启动和不能作为PhotoShop 插件使用问题修复
- 关于更改ip后dbconsole服务不能启动(em不能使用)问题的根本解决方法(ZZ)
- eclipse启动调试时不能从自己设置的断点处开始运行的问题
- 解决使用Tornado过程中不能启动simulator的问题
- windows下nginx的安装、使用及80端口被占用导致nginx不能启动问题的解决
- VS调试问题,程序无法正常启动 (使用openFlight_API中遇到的问题)
- mysql遇到不能使用mysql.sock启动的问题
- 使用sem_t导致不能用gdb调试及线程非正常终止后message queue异常的问题
- 不能使用IDE调试? 照样能很快定位问题
- 因计算机磁盘硬件配置问题windows无法启动及HP系列机器不能使用GHOST的解决方法
- windows下nginx的安装使用及解决80端口被占用nginx不能启动的问题
- 关于更改ip后dbconsole服务不能启动(em不能使用)问题的根本解决方法
- 关于VS2008不能调试使用WSDualHttpBinding协议WCF服务的问题
- 因计算机磁盘硬件配置问题windows无法启动及HP系列机器不能使用GHOST的解决方法
- 关于更改ip后dbconsole服务不能启动(em不能使用)问题的根本解决方法
- IntelliJIdea 2016.2 使用 tomcat 8.5 调试spring的web项目时,bean被实例化两次导致timer和thread被启动了两遍的问题的解决
- Flex不能使用调试问题解决[原]