FPGA基本引脚知识
现象: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基本引脚知识相关推荐
- FPGA开发基础知识
FPGA开发基础知识 FPGA介绍 FPGA硬件内部结构 FPGA开发流程 数字信号和模拟信号的定义 常用数据类型 IP核的使用 Verilog HDL基本语法 注意点 结束语 FPGA介绍 FPGA ...
- 与或非逻辑符号_理解FPGA的基础知识——逻辑电路
FPGA (Field Programmable Gate Aray,现场可编程门阵列)是一种可通过重新编程来实现用户所需逻辑电路的半导体器件.为了便于大家理解FPGA的设计和结构,我们先来简要介绍一 ...
- 硬件设计过程FPGA时钟引脚注意事项
在设计原理图的时候,对于接收时钟,应该尽量分配到FPGA的时钟引脚,且为P端. 通常FPGA的时钟引脚为:后缀为SRCC或MRCC的IO,如下图所示.
- 深度学习FPGA实现基础知识17(图像处理卷积运算 矩阵卷积)
需求说明:深度学习FPGA实现知识储备 内容:第一部分:矩阵的卷积运算详细过程 第二部分:图像处理之卷积理解 第三部分:矩阵卷积转换为矩阵相乘 整理来自:时间的 ...
- 深度学习FPGA实现基础知识2(深度揭秘百度大脑AI专有芯片 缘何用FPGA而非GPU?)
需求说明:深度学习FPGA实现知识储备 来自:http://ee.ofweek.com/2015-12/ART-8110-2801-29035307.html 深度揭秘百度大脑AI专有芯片 缘何用FP ...
- FPGA/IC基础知识
1.简述建立时间和保持时间 建立时间Tsu(setup):触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间. 保持时间Th(hold):触发器在时钟上升沿到来之后,其数据输入端的数 ...
- 深度学习FPGA实现基础知识13(向专家致敬--深度学习-LeCun、Bengio和Hinton的联合综述)
需求说明:深度学习FPGA实现知识储备 来自:http://www.csdn.net/article/2015-06-01/2824811 [编者按]三大牛Yann LeCun.Yoshua Beng ...
- 全面解析FPGA的基础知识
一.FPGA的简介 FPGA(Field- Programmable Gate Array),即现场可编程门阵列,它是在 PAL.GAL.CPLD等可编程器件的基础上进一步发展出来的产物.它是作为专用 ...
- [FPGA系列] 扩展知识 --- QPSK调制解调器
一.基本概念 PSK:相移键控(Phase Shift Keying),是一种用载波相位表示输入信号信息的调制技术. BPSK:二进制相位调制,码元为"1"时,调制后载波与未调载波 ...
最新文章
- ef 在此上下文中只支持基本类型或枚举类型_Java 中的 6 颗语法糖
- 003:Virtualenvwrapper使用
- java 学习知识汇总
- 字符串的原样输入输出python_Python字符串输入输出简述
- Linux下的FTP命令害死人
- Solidity 官方文档中文版 2_Ethereum 智能合约介绍
- iOS分析友盟错误报告
- shell中使用if判断时用到的一些参数
- php中的each()用法和list()用法
- matlab车牌定位与识别,基于matlab车牌的定位与分割识别程序概要
- 你可能用得上的 N 款免费/开源中文字体
- 宏碁暗影骑士2022 i7-12700h+intel ax1650网卡+ubuntu1804+linux5.19 安装网卡驱动
- 二维向量叉乘的简单介绍及应用
- python校园网站毕业设计开题报告
- 阔密保密专家:数字货币将要来临 你的手机安全吗?
- 【matlab】输入一字符串,字母大写变小写,小写变大写。
- 三维空间——点线面关系
- ElasticSearch---------------------step3,安装Kibana
- 解决Uncaught TypeError Cannot read properties of undefined (reading ‘props‘)
- C语言之结构体、结构体数组
热门文章
- 浅谈FTP(文件传输协议)
- 清风电子—keil5,没有找到No ULINK Device found
- PyQt5在QGridLayout布局下动态删除增加控件
- 如何用break跳出多重循环
- iPhone界面各种控件的大小
- 矩阵链乘法问题 (算法)
- 009--python--计算三角形的周长和面积
- 《生成式对抗网络GAN的研究进展与展望》论文笔记
- execution(*com.it.serviceimpl.*.*(..))
- latex 加载IEEE模板无法加载pdf图片问题