这里要谈的是xilinx的spartan-3系列fpga的配置电路。当然了,其它系列的fpga配置电路都是大同小异的,读者可以类推,重点参考官方提供的datasheet,毕竟那才是最权威的资料。
所谓典型,这里要列出一个市面上最常见的spartan-3的xc3s400的配置电路。所有spartan-3的fpga配置电路的链接方式都是一样的。xc3s400是40万门fpga,它的configuration bitstream虽然只有1.699136mbit,但是它还是需要2mbit的配置芯片xcf02s,不能想当然的以为我的设计简单,最多用到1mbit,那么我选xcf01s(1mbit)就可以了。事实并非如此,即使你只是用xc3s400做一个流水灯的设计,那么你下载到rom(xcf02s)里的数据也是1.699136mbit的,所以对于fpga的配置rom的选择宜大不宜小。
配置电路无非有下面五种:主串,从串,主并,从并,jtag。前四种是相对于下载到prom而言的(串并是相对于不同配置芯片是串口和时并口协议和fpga通讯区分的),只有jtag是相对于调试是将配置下载到fpga的ram而言的(掉电后丢失)。fpga和cpld相比,cpld是基于rom型的,就是在数据下载到cpld上,掉电后不丢失。而fpga则是基于ram的,如果没有外部rom存储配置数据,那么掉电后就丢失数据。所以fpga都需要外接有配置芯片(当然现在也有基于flash的fpga出现)。那么我们就来看一下主串模式下fpga的配置电路的连接。
官方的硬件连接如下:
为了增加配置电路的可靠性,通常我们我们增加一些抗干扰的设计(如增加滤波电容、匹配电阻):
先看prom芯片的各个管脚吧。18,19,20脚就不谈了,根据datasheet给供相对应的电平;3脚clk是接了fpga的cclk,数据通信的同步就是通过fpga的cclk产生的时钟进行的;因为使用的芯片时串行的配置芯片,所以只有一个数据信号口do,连接到fpga的din口(上图没有画出),和上面的时钟信号协同工作完成串行数据传输,每当clk的上升沿锁存数据,同时prom内部的地址计数器自动增加;另外还有两条控制信号线时init(连接prom的oe/reset)和done(连接prom的ce),oe/reset是为了确保每次重新配置前prom的地址计数器复位;关于ce脚,官方资料说得也不是很详细,以我个人的理解,ce应该是chip enable的缩写,从它和fpga的done脚连接我们不难推断出,fpga未配置完成时done=0,那么配置芯片prom处于片选状态,而一旦配置完成done=1,那么prom就不再被选通,同时datasheet也说到这个管脚可以直接接地,就是一直片选中,但是这样会使data口有持续的数据信号输出,同时导致不必要的电流消耗;ceo脚这里不接,因为它在多个prom的配置电路中时作为下一个prom的oe端信号连接用的;cf信号时连接fpag的prog_b接口的,它的作用就是产生开始配置信号,它连接了一个上拉电阻,如果prog_b产生低电平脉冲则prom会重新开始一次配置,所以我们会在这条线上接一个按键到地,如果按键按下那么就会使能prom重新配置fpga;还有几个信号接口tdi,tck,tms,tdo都是prom和pc连接的信号,pc通过这些电路(通常接一片驱动隔离芯片后通过并口通信,这里不重点介绍了)下载数据到prom中。
上面谈及prom的信号接口时都附带的谈到了fpga的配置管脚。这里再做一些归纳性的说明。fpga有7个专用的配置管脚(cclk,din,prog_b,done,hswap_en,m0,m1,m2),4个专用的jtag管脚(tdi,tck,tms,tdo),这些管脚是由vccaux专门供电的(该系列fpga通常接vccaux=2.5v)。fpga的m0,m1,m2脚是进行配置模式选择用的,该电路主串模式下{m0,m1,m2}=000,如果时jtag下载模式{m0,m1,m2}=101。上面没有提及的hswap_en管脚接地,则是用于设置当fpag处于配置状态下其它闲置管脚为上拉状态,而如果该管脚接高电平,则fpag处于配置状态下其它闲置管脚浮空。所以为了减少fpga配置过程的干扰,一般把此脚接地。
广和通亮相第四届“绽放杯”5G应用征集大赛
三线电阻式温度检测器测量系统中励磁电流失配的影响
基于M68HC08GZ16和MAX309芯片实现电池管理系统的设计
人事大震荡下的中芯国际,下一步布局依然勇往直前
北鲲云超算平台能否应用于中医药行业
Xilinx Spartan-3系列FPGA的配置电路
数控加工七种对刀方式详解!
Buffer和Cache介绍
针对RISC-V设计提供全面软件工具链和IP内核的FPGA
未来微软在其它领域的竞争为什么可能还要指望云战略
DshanMCU-R128s2 ADC按键配置方法
如何使用Arduino构建一个计算器
用21张图把Git工作原理彻底说清楚
维信诺斥资440亿与多方共建AMOLED生产线
如何使创新的MCU实现高效节能电机控制
全球AI芯片公司排行,七家中国公司入围Top24
逆变电路作用是什么 逆变电路有哪些应用 逆变电路的基本作用
用USB2.0传输视频的LCD: 三星“视平方”LD220
光电液位开关与电容式液位开关有什么区别呢?
IDT推出数字控制中频可变增益放大器IDT F1200