现象:nSTATUS指示灯不停的闪烁,测试用的LED(FPGA的GPIO)无法点亮,即FPGA没有进入正常工作状态。

调试过程:

1、FPGA在上电后,会立刻将nSTATUS配置状态管脚置成低电平,并在上电复位(POR)完成之后释放它,将它置为高电平。作为配置状态输出管脚,在配置过程中如果有任何一个错误发生了,则nSTATUS脚会被置低。

nSTATUS不停的闪烁(低电平点亮),说明FPGA没有配置成功。

2、为进一步确定原因,测量FPGA的CONF_DONE引脚。上电后,发现CONF_DONE引脚始终为低。正常情况下,在配置过程中该引脚会被置为低电平,一旦配置数据正确的接收完成,FPGA则进入初始化周期和用户模式,并将CONF_DONE释放,其变为高电平。因此,进一步确定了FPGA没有配置成功。

3、测量FPGA相关配置引脚阻抗,发现CONF_DONE引脚对地阻抗为600欧左右,对VCC_3.3V阻抗为1.26k欧左右;正常时对地和对VCC_3.3V阻抗约为9.88k欧和10.85k欧。去掉上拉电阻(10k)后再次测量,对地和对3.3V阻抗为634欧和1.74k欧,正常应都为5.75M欧左右。

4、因此,确定FPGA内部配置电路已损坏。哎,可惜了FPGA芯片啊。

附:FPGA之特殊管脚

1. I/O, ASDO

在AS 模式下是专用输出脚,在PS 和JTAG 模式下可以当I/O 脚来用。在AS 模式下,这个脚是CII 向串行配置芯片发送控制信号的脚。也是用来从配置芯片中读配置数据的脚。在AS 模式下,ASDO 有一个内部的上拉电阻,一直有效,配置完成后,该脚就变成三态输入脚。ASDO 脚直接接到配置芯片的ASDI 脚(第5 脚)。

2. I/O, nCSO

在AS 模式下是专用输出脚,在PS 和JTAG 模式下可以当I/O 脚来用.在AS 模式下,这个脚是CII 用来给外面的串行配置芯片发送的使能脚。在AS 模式下,ASDO 有一个内部的上拉电阻,一直有效。这个脚是低电平有效的。直接接到配置芯片的/CS 脚(第1 脚)。

3. I/O, CRC_ERROR

当错误检测CRC 电路被选用时,这个脚就被作为CRC_ERROR 脚,如果不用默认就用来做I/O。但要注意,这个脚是不支持漏极开路和反向的。当它作为CRC_ERROR 时,高电平输出则表示出现了CRC 校验错误(在配置SRAM 各个比特时出现了错误)。CRC 电路的支持可以在setting 中加上。这个脚一般与nCONFIG 脚配合起来用。即如果配置过程出错,重新配置.

4. I/O, CLKUSR

当在软件中打开Enable User-supplled start-up clock(CLKUSR)选项后,这个脚就只可以作为用户提供的初始化时钟输入脚。在所有配置数据都已经被接收后,CONF_DONE 脚会变成高电平,CII 器件还需要299 个时钟周期来初始化寄存器,I/O 等等状态,FPGA 有两种方式,一种是用内部的晶振(10MHz),另一种就是从CLKUSR 接进来的时钟(最大不能超过100MHz)。有这个功能,可以延缓FPGA 开始工作的时间,可以在需要和其它器件进行同步的特殊应用中用到。

5. I/O, VREF

用来给某些差分标准提供一个参考电平。没有用到的话,可以当成I/O 来用。

6. DATA0

专用输入脚。在AS 模式下,配置的过程是:Cyclone将nCSO 置低电平,配置芯片被使能。Cyclone然后通过DCLK 和ASDO 配合操作,发送操作的命令,以及读的地址给配置芯片。配置芯片然后通过DATA 脚给Cyclone发送数据。DATA 脚就接到Cyclone的DATA0 脚上。Cyclone接收完所有的配置数据后,就会释放CONF_DONE 脚(即不强制使CONF_DONE 脚为低电平),CONF_DONE 脚是漏极开路(Open-Drain)的。这时候,因为CONF_DONE 在外部会接一个10K 的电阻,所以它会变成高电平。同时,Cyclone就停止DCLK 信号。在CONF_DONE 变成高电平以后(这时它又相当于变成一个输入脚),初始化的过程就开始了。所以,CONF_DONE 这个脚外面一定要接一个10K 的电阻,以保证初始化过程可以正确开始。 DATA0,DCLK,NCSO,ASDO 脚上都有微弱的上拉电阻,且一直有效。在配置完成后,这些脚都会变成输入三态,并被内部微弱的上拉电阻将电平置为高电平。在AS 模式下,DATA0就接到配置芯片的DATA(第2 脚)。

7. DCLK

PS 模式下是输入,AS 模式下是输出。在PS 模式下,DCLK 是一个时钟输入脚,是外部器件将配置数据传送给FPGA 的时钟。数据是在DCLK 的上升沿把数据,在AS 模式下,DCLK脚是一个时钟输出脚,就是提供一个配置时钟。直接接到配置芯片的DCLK 脚上去(第6脚)。无论是哪种配置模式,配置完成后,这个脚都会变成三态。如果外接的是配置器件,配置器件会置DCLK 脚为低电平。如果使用的是主控芯片,可以将DCLK 置高也可以将DCLK 置低。配置完成后,触发这个脚并不会影响已配置完的FPGA。这个脚带了输入Buffer,支持施密特触发器的磁滞功能。

8. nCE

专用输入脚。这个脚是一个低电平有效的片选使能信号。nCE 脚是配置使能脚。在配置,初始化以及用户模式下,nCE 脚必须置低。在多个器件的配置过程中,第一个器件的nCE 脚要置低,它的nCEO 要连接到下一个器件的nCE 脚上,形成了一个链。nCE 脚在用JTAG编程模式下也需要将nCE 脚置低。 这个脚带了输入Buffer,支持施密特触发器的磁滞功能。

9. nCONFIG

专用的输入管脚。这个管脚是一个配置控制输入脚。如果这个脚在用户模式下被置低,FPGA就会丢失掉它的配置数据,并进入一个复位状态,并将所有的I/O 脚置成三态的。nCONFIG从低电平跳变到高电平的过程会初始化重配置的过程。如果配置方案采用增强型的配置器件或EPC2,用户可以将nCONFIG 脚直接接到VCC 或到配置芯片的nINIT_CONF 脚上去。这个脚带了输入Buffer,支持施密特触发器的磁滞功能。实际上,在用户模式下,nCONFIG信号就是用来初始化重配置的。当nCONFIG 脚被置低后,初始化进程就开始了。当nCONFIG脚被置低后,CII 就被复位了,并进入了复位状态,nSTATUS 和CONF_DONE 脚被置低,所有的I/O 脚进入三态。nCONFIG 信号必须至少保持2us。当nCONFIG 又回到高电平状态后,nSTATUS 又被释放。重配置就开始了。在实际应用过程中可以将nCONFIG 脚接一个10K 的上拉电阻到3.3V.

10. DEV_OE

I/O 脚或全局I/O 使能脚。在Quartus II 软件中可以使能DEV_OE 选项(Enable Device-wideoutput Enable),如果使能了这一个功能,这个脚可以当全局I/O 使能脚,这个脚的功能是,如果它被置低,所有的I/O 都进入三态。

11. INIT_DONE

I/O 脚或漏极开路的输出脚。当这个脚被使能后,该脚上从低到高的跳变指示FPGA 已经进入了用户模式。如果INIT_DONE 输出脚被使能,在配置完成以后,这个脚就不能被用做用户I/O 了。在QuartusII 里面可以通过使能Enable INIT_DONE 输出选项使能这个脚。

12. nCEO

I/O 脚或输出脚。当配置完成后,这个脚会输出低电平。在多个器件的配置过程中,这个脚会连接到下一个器件的nCE 脚,这个时候,它还需要在外面接一个10K 的上拉电阻到Vccio。多个器件的配置过程中,最后一个器件的nCEO 可以浮空。如果想把这个脚当成可用的I/O,需要在软件里面做一下设置。另外,就算是做I/O,也要等配置完成以后。

13. nSTATUS

这是一个专用的配置状态脚。双向脚,当它是输出脚时,是漏极开路的。在上电之后,FPGA立刻将nSTATUS 脚置成低电平,并在上电复位(POR)完成之后,释放它,将它置为高电平。作为状态输出脚时,在配置过程中如果有任何一个错误发生了,nSTATUS 脚会被置低。作为状态输入脚时,在配置或初始化过程中,外部控制芯片可以将这个脚拉低,这时候FPGA就会进入错误状态。这个脚不能用作普通I/O 脚。nSTATUS 脚必须上拉一个10K 欧的电阻。

14. CONF_DONE

这是一个专用的配置状态脚。双向脚,当它是输出脚时,是漏极开路的。当作为状态输出脚时,在配置之前和过程中,它都被置为低电平。一旦配置数据接收完成,并且没有任何错误,初始化周期一开始,CONF_DONE 就会被释放。当作为状态输入脚时,在所有数据都被接收后,要将它置为高电平。之后器件就开始初始化再进入用户模式。它不可以用作普通I/O来用。这个脚外成也必须接一个10K 欧的电阻。

15. MSEL[1:0]

这些脚要接到零或电源,表示高电平或低电平。00 表示用AS 模式,10 表示PS 模式, 01是FAST AS 模式.如果用JTAG 模式,就把它们接00, JTAG 模式跟MSEL 无关,即用JTAG模式,MSEL 会被忽略,但是因为它们不能浮空,所以都建议将它接到地。

16 DEV_CLRn

I/O 或全局的清零输入端。在QuartusII 里面,如果选上Enable Device-Wide Reset(DEV_CLRn)这个功能。这个脚就是全局清零端。当这个脚被置低,所有的寄存器都会被清零。这个脚不会影响到JTAG 的边界扫描或编程的操作。

FPGA基本引脚知识相关推荐

  1. FPGA开发基础知识

    FPGA开发基础知识 FPGA介绍 FPGA硬件内部结构 FPGA开发流程 数字信号和模拟信号的定义 常用数据类型 IP核的使用 Verilog HDL基本语法 注意点 结束语 FPGA介绍 FPGA ...

  2. 与或非逻辑符号_理解FPGA的基础知识——逻辑电路

    FPGA (Field Programmable Gate Aray,现场可编程门阵列)是一种可通过重新编程来实现用户所需逻辑电路的半导体器件.为了便于大家理解FPGA的设计和结构,我们先来简要介绍一 ...

  3. 硬件设计过程FPGA时钟引脚注意事项

    在设计原理图的时候,对于接收时钟,应该尽量分配到FPGA的时钟引脚,且为P端. 通常FPGA的时钟引脚为:后缀为SRCC或MRCC的IO,如下图所示.

  4. 深度学习FPGA实现基础知识17(图像处理卷积运算 矩阵卷积)

    需求说明:深度学习FPGA实现知识储备 内容:第一部分:矩阵的卷积运算详细过程           第二部分:图像处理之卷积理解           第三部分:矩阵卷积转换为矩阵相乘 整理来自:时间的 ...

  5. 深度学习FPGA实现基础知识2(深度揭秘百度大脑AI专有芯片 缘何用FPGA而非GPU?)

    需求说明:深度学习FPGA实现知识储备 来自:http://ee.ofweek.com/2015-12/ART-8110-2801-29035307.html 深度揭秘百度大脑AI专有芯片 缘何用FP ...

  6. FPGA/IC基础知识

    1.简述建立时间和保持时间 建立时间Tsu(setup):触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间. 保持时间Th(hold):触发器在时钟上升沿到来之后,其数据输入端的数 ...

  7. 深度学习FPGA实现基础知识13(向专家致敬--深度学习-LeCun、Bengio和Hinton的联合综述)

    需求说明:深度学习FPGA实现知识储备 来自:http://www.csdn.net/article/2015-06-01/2824811 [编者按]三大牛Yann LeCun.Yoshua Beng ...

  8. 全面解析FPGA的基础知识

    一.FPGA的简介 FPGA(Field- Programmable Gate Array),即现场可编程门阵列,它是在 PAL.GAL.CPLD等可编程器件的基础上进一步发展出来的产物.它是作为专用 ...

  9. [FPGA系列] 扩展知识 --- QPSK调制解调器

    一.基本概念 PSK:相移键控(Phase Shift Keying),是一种用载波相位表示输入信号信息的调制技术. BPSK:二进制相位调制,码元为"1"时,调制后载波与未调载波 ...

最新文章

  1. ef 在此上下文中只支持基本类型或枚举类型_Java 中的 6 颗语法糖
  2. 003:Virtualenvwrapper使用
  3. java 学习知识汇总
  4. 字符串的原样输入输出python_Python字符串输入输出简述
  5. Linux下的FTP命令害死人
  6. Solidity 官方文档中文版 2_Ethereum 智能合约介绍
  7. iOS分析友盟错误报告
  8. shell中使用if判断时用到的一些参数
  9. php中的each()用法和list()用法
  10. matlab车牌定位与识别,基于matlab车牌的定位与分割识别程序概要
  11. 你可能用得上的 N 款免费/开源中文字体
  12. 宏碁暗影骑士2022 i7-12700h+intel ax1650网卡+ubuntu1804+linux5.19 安装网卡驱动
  13. 二维向量叉乘的简单介绍及应用
  14. python校园网站毕业设计开题报告
  15. 阔密保密专家:数字货币将要来临 你的手机安全吗?
  16. 【matlab】输入一字符串,字母大写变小写,小写变大写。
  17. 三维空间——点线面关系
  18. ElasticSearch---------------------step3,安装Kibana
  19. 解决Uncaught TypeError Cannot read properties of undefined (reading ‘props‘)
  20. C语言之结构体、结构体数组

热门文章

  1. 浅谈FTP(文件传输协议)
  2. 清风电子—keil5,没有找到No ULINK Device found
  3. PyQt5在QGridLayout布局下动态删除增加控件
  4. 如何用break跳出多重循环
  5. iPhone界面各种控件的大小
  6. 矩阵链乘法问题 (算法)
  7. 009--python--计算三角形的周长和面积
  8. 《生成式对抗网络GAN的研究进展与展望》论文笔记
  9. execution(*com.it.serviceimpl.*.*(..))
  10. latex 加载IEEE模板无法加载pdf图片问题