FPGA第六章.docx
《FPGA第六章.docx》由会员分享,可在线阅读,更多相关《FPGA第六章.docx(45页珍藏版)》请在冰豆网上搜索。
![FPGA第六章.docx](https://file1.bdocx.com/fileroot1/2023-2/24/c8596d20-09c8-4c20-978f-6e18343a47c1/c8596d20-09c8-4c20-978f-6e18343a47c11.gif)
FPGA第六章
第六章
第6章FPGA的下载配置电路设计
内容提要
⏹本章介绍了Xilinx公司的FPGA下载配置模式,Virtex-Ⅱ系列器件下载配置流程、模式和电路设计,Altera公司的下载电缆的结构和下载模式,Altera公司的下载电缆的配置电路设计,Altera公司的配置芯片和配置芯片构成的配置电路设计。
知识要点:
⏹下载配置模式
⏹下载配置流程
⏹下载电缆
⏹配置芯片
⏹配置电路设计
教学建议:
⏹本章的重点是掌握Xilinx公司和Altera公司的FPGA器件的下载配置电路设计。
建议学时数为4学时。
注意区分Xilinx公司和Altera公司的FPGA器件的下载配置电路设计的不同点。
注意同一公司,不同下载模式的下载配置电路的设计也是不同的。
注意不同型号的配置芯片使用方法以及配置电路的设计,多个器件配置电路的连接方法。
本章给出了一些典型的设计例,学习中可以通过改变器件型号和配置模式,进行配置电路设计的练习,加深对问题的理解。
6.1Xilinx的FPGA下载配置电路设计
⏹6.1.1XilinxFPGA的下载配置模式
针对不同的器件类型和应用场合,Xilinx公司为其FPGA系列产品提供了多种下载配置模式,如下所示:
1.JTAG模式
⏹JTAG模式是基于IEEE1149.1和IEEE1532的下载配置模式,通过TDI(数据输入)、TDO(数据输出)、TMS(测试模式)和TCK(测试时钟)等四根信号线实现FPGA的下载与配置。
在JATG模式中需要其他可编程微控制器的支持。
2.Parallel模式
⏹Parallel模式仅支持Virtex系列和SpartanⅡ系列器件,通过8bit的并行数据下载,实现FPGA的高速配置。
Parallel模式的配置时钟CCLK由FPGA外部提供。
3.MasterSerial模式
⏹MasterSerial模式支持Xilinx公司的所有FPGA产品。
MasterSerial模式通过读取串行PROM的数据,实现FPGA的在线配置。
在MasterSerial模式中必须使用Xilinx公司专用的PROM。
MasterSerial模式的配置时钟CCLK源于FPGA内部。
4.SlaveSerial模式
⏹SlaveSerial模式支持Xilinx公司的所有FPGA产品。
SlaveSerial模式类似于MasterSerial模式,但其配置时钟CCLK由FPGA外部提供。
在SlaveSerial模式中需要其他可编程微控制器支持。
5.MasterSelectMAP模式
⏹MasterSerialMAP模式支持Virtex-Ⅱ等FPGA产品。
MasterSerialMAP模式通过读取串行PROM的数据,实现FPGA的在线配置。
在MasterSelectMAP模式中必须使用Xilinx公司专用的PROM。
MasterSerialMAP模式的配置时钟CCLK源于FPGA内部。
6.SlaveSelectMAP模式
⏹SlaveSelectMAP模式支持Virtex-Ⅱ等FPGA产品。
SlaveSelectMAP模式类似于MasterSerialMAP模式,但其配置时钟CCLK由FPGA外部提供。
在SlaveSelectMAP模式中需要其他可编程微控制器的支持。
6.1.1XilinxFPGA的下载配置模式
⏹Xilinx公司提供两种PROM对其FPGA系列产品进行在线配置。
其中,XC1800系列PROM可多次擦写,支持JTAG在线编程。
XC1700系列PROM为一次性编程器件,不支持JTAG在线编程。
使用第三方编程器对Xilinx公司的PROM系列产品进行下载配置时,需要对FPGA设计文件进行格式转换。
在同一个FPGA的下载配置电路中,为了满足不同应用要求,可以通过改变FPGA的M2、M1和M0管脚连接,实现FPGA下载配置模式的切换,即利用同一下载配置电路可以实现多种下载配置模式。
⏹在实际应用中,使用嵌入式下载配置方式,可以节约成本和简化PCB板设计。
嵌入式下载配置利用微处理器或其他可编程控制器件,对FPGA产品进行下载配置。
在嵌入式下载配置过程中,M2、M1、M0引脚端应设置为JTAG、SlaveSerial或SlaveSelectMAP模式,下载配置的数据可以存放在Xilinx公司专用PROM或其他存储器件中。
当M2、M1、M0设置为SlaveSerial模式时,通过控制PROG_B引脚端,可以实现FPGA的重新配置。
当M2、M1、M0设置为SlaveSelectMAP模式时,通过控制PROG_B、RDWR_B和CS_B引脚端,可以实现FPGA的重新配置和部分配置。
6.1.2Virtex-Ⅱ系列器件下载配置电路设计
⏹Xilinx公司不同类型的FPGA器件下载配置模式不完全相同,下面以Virtex-Ⅱ系列器件为例说明Xilinx公司的FPGA的下载配置设计过程。
Virtex-Ⅱ系列器件的下载配置流程
⏹Virtex-Ⅱ系列器件的下载配置流程如图6.1.1所示,主要包括:
(1)PowerUp(加电)
PowerUp是Virtex-Ⅱ系列器件的加电过程。
其中,内核电压VCCINT=1.5V,I/OBank4的VCCO和VCCAUX的供电电压应大于1.5V。
(2)ClearConfigurationMemory(清配置存储器)
清配置存储器的触发条件是将PROG_B引脚端置低,并保持低电平大于300ns。
FPGA的所有与配置无关的引脚端将保持3态,INIT-B和DONE引脚端为低电平。
⏹(3)初始化
将INIT-B引脚端置为高电平,采样模式控制引脚端(SampleModePins),并读入M2、M1和M0。
如果在初始化过程中保持INIT-B为低电平,可以延迟配置数据的下载过程。
MasterSerial/MasterSelectMAPCCLKBegins(MasterSerial/MasterSelectMAP模式CCLK启动)。
⏹(4)LoadConfigurationDataFrames(下载配置数据)
在配置数据的下载过程中,将对配置数据进行CRC校验(CRCCorrect)。
如果CRC出现错误,INIT-B引脚端将被重新置为低电平,并终止器件的启动过程。
⏹(5)器件启动(Start-Up)
Virtex-Ⅱ系列器件的器件启动顺序可以在软件中改动,其默认的启动顺序是:
①释放DONE引脚端;②将GTS置低,激活所有1/O引脚端;③将GWE置位,释放所有的RAM和逻辑单元;④将EOS置位。
图6.1.1Virtex-Ⅱ系列器件的下载配置流程
Virtex-Ⅱ系列器件下载配置模式设置
⏹Virtex-Ⅱ系列器件支持“MasterSerialProgrammingMode”、“MasterSelectMAPProgrammingMode”“SlaveSerialProgrammingMode”“SlaveSelectMAPProgrammingMode”“JTAG/BoundaryScanProgrammingMode”。
设置Virtex-Ⅱ系列器件的M2、M1、M0引脚端状态,可以确定下载配置模式,如表6.1.1所示。
表6.1.2Virtex-Ⅱ系列器件与下载配置电路有关的引脚端
3.Virtex-Ⅱ系列器件的下载配置电路设计
⏹
(1)Virtex-Ⅱ下载配置端
在Virtex-Ⅱ系列器件中与下载配置电路有关的引脚端如表6.1.2所示。
应注意的是:
Virtex-Ⅱ系列器件中与下载配置有关的引脚端,有一部分是专用引脚端,另一部分是可以作为用户1/O的复用引脚端。
考虑到设计的稳定性,建议不使用这部分复用引脚端。
⏹
(2)Virtex-Ⅱ加电要求
⏹为保证Virtex-Ⅱ系列器件的正常加电,Xilinx公司在Virtex-Ⅱ数据手册中规定:
⏹①VCCINT、VCCAUX和Vcco的加电过程既不应快于1ms,也不应慢于50ms。
⏹②Virtex-Ⅱ加电过程中的最小电流要求不同型号是不同的,设计时需要根据具体的型号设计下载配置电路。
⏹③VCCINT、VCCAUX和Vcco的加电顺序没有具体要求。
一般,在保证VCCINT和Vcco的电气参数情况下,采用先VCCINT后Vcco的加电顺序,将提高FPGA系统的使用稳定性。
⏹(3)Virtex-Ⅱ下载配置电路设计
设计过程中,首先应该熟悉下载配置引脚端和Virtex-Ⅱ加电要求,然后依据选定的下载配置模式进行下载配置电路设计。
Xilinx公司针对不同类型的FPGA器件提供了相应的下载配置电路,XIlinx公司提供的Virtex-Ⅱ系列器件下载配置电路如图6.1.2~图6.1.9所示。
图6.1.2为使用SystemACE™(SystemAdvancedConfigurationEnvironment)配置Virtex-Ⅱ的下载配置电路,电路利用ACEController(ACE微控制器)和ACECompactFlash完成Virtex-Ⅱ的下载配置。
图6.1.3为使用CPLD和PROM配置Virtex-Ⅱ的下载配置电路图6.1.4为使用EPROM配置Virtex-Ⅱ的下载配置电路。
图6.1.5为MasterSerialMode配置电路。
图6.1.6为Master/SlaveSerialMode配置电路。
图6.1.7为MasterSelectMAPProgrammingMode配置电路。
图6.1.8为SlaveSelectMAPMode配置电路。
图6.1.9为JTAGMode配置电路。
图6.1.2使用SystemACE™配置Virtex-Ⅱ的下载配置电路
图6.1.3使用CPLD和PROM配置Virtex-Ⅱ的下载配置电路
图6.1.4使用EPROM配置Virtex-Ⅱ的下载配置电路
图6.1.5MasterSerialMode配置电路
图6.1.6Master/SlaveSerialMode配置电路
图6.1.7MasterSelectMAPMode配置电路
图6.1.8SlaveSelectMAPMode配置电路
图6.1.9JTAGMode配置电路
6.2Altera的FPGA下载配置设计
6.2.1Altera公司的下载电缆
⏹针对FPGA器件不同的内部结构,Altera公司提供了不同的器件配置方式。
AlteraFPGA的配置可通过编程器、JATG接口在线编程及Altera在线配置等方式进行。
⏹Altera器件编程下载电缆的有:
ByteBlaster并行下载电缆,ByteBlasterMV并行下载电缆,MasterBlaster串行/USB通信电缆,BitBlaster串口下载电缆。
1.ByteBlaster并行下载电缆
⏹ByteBlaster并行下载电缆是一种连接到PC机25针标准口(LPT口)的硬件接口产品。
ByteBlaster并行下载电缆可以对FLEX10K、FLEX8000和FLEX6000进行配置,也可以对MAX9000(包括MAX9000A)、MAX7000S和MAX7000A进行编程。
ByteBlaster为FPGA提供了一种快速而廉价的配置方法,设计人员的设计可以直接通过ByteBlaster下载电缆下载到芯片中去。
(1)下载模式
ByteBlaster并行下载电缆提供两种下载模式:
⏹①Passiveserialmode(PS,被动串行模式)
用于配置FLEX10K、FLEX8000和FLEX600O系列器件。
⏹②JTAG模式
采用工业标准的JTAG边界扫描测试电路(符合IEEE1149.1-1990标准)用于配置FLEX10K、MAX9000、MAX7000S和MAX7000A系列器件进行编程。
(2)电缆插头与插座
⏹ByteBlaster与PC机并口相连的是25针插头,与FPGA应用电路PCB电路板相连的是10针插座。
编程数据从PC机并口通过ByteBlaster电缆下载到电路板。
⏹注意:
利用ByteBlaster下载电缆配置/编程3.3V器件(如FLEX10KA、MAX7000A器件)时,要将电缆的VCC脚连到5.0V电源,而器件的VCC脚连到3.3V电源。
FLEX10KA和MAX7000A器件能够耐压到5.0V,因此,ByteBlaster电缆的5.0V输出不会对3.3V器件造成损害,但5.0V电源中应连接上拉电阻。
⏹ByteBlaster与PC机并口相连的是25针插头,在PS模式下和在JTAG模式下的引脚信号名称是不同的,如表6.2.1所示。
1.ByteBlaster并行下载电缆
⏹ByteBlaster与FPGA应用电路PCB电路板相连的是10针插座,在PS模式下和在JTAG模式下的引脚信号名称如表6.2.2所示。
注意:
PCB板必须给下载电缆提供电源VCC和信号地GND。
(3)电缆线
⏹ByteBlaster的电缆线一般使用扁平电缆,长度不超过30cm,否则带来干扰、反射及信号过冲问题,引起数据传输错误,导致下载失败。
如果PC机并行口与PCB电路板距离较远,
⏹需要加长电缆,则可在PC机并行口和ByteBlaster电缆之间加入一根并行口连接电缆。
(4)PCB电路板上的10针连接插头
⏹PCB板上的10针插头连接到FPGA器件的编程或配置引脚上,ByteBlaster下载电缆的10针插座连接到PCB板上的10针插头,ByteBlaster电缆通过10针插头获得电源并下载数据到FPGA器件上。
2.ByteBlasterMV并行下载电缆
⏹ByteBlasterMV并行下载电缆具有与PC机25针标准并行口相连的接口,工作电压VCC支持3.3V或5.0V,允许PC机用户从MAX+PLUS或QuartusⅡ开发软件中下载数据,通过PC机标准并行口在线编程MAX9000、MAX7000S、MAX7000A、MAX7000B和MAX3000A系列器件;可配置APEXⅡ、APEX20K(包括APEX20K、APEX20KE和APEX20KC)、ACEX1K、Mercury、FLEX10K(包括FLEX10KA和FLEX10KE)、FLEX8000和FLEX6000系列器件及Excalibur嵌入式微处理器。
⏹工作电压VCC支持3.3V或5.0V。
使用与ByteBlaster并行口和BitBlaster串口下载电缆相同10针电路板连接器与FPGA应用电路板(PCB)连接。
(1)下载模式
ByteBlasterMV下载电缆提供两种下载模式:
⏹被动串行模式(PS)
用于配置APEXⅡ、APEX20K、ACEXIK、Mercury、Excalibur、FLEX10K、FLEX8000和FLEX6000系列器件;
⏹JTAG模式
具有标准的JTAG接口,用于编程或配置APEXⅡ、APEX20K、Mercury、ACEX1K、Excalibur、FLEX10K、MAX9000、MAX7000S、MAX7000A、MAX7000B和MAX3000A系列器件。
(2)连接
⏹ByteBlasterMV下载电缆与PC机并行口相连的是25针插头,与PCB电路板相连的是10针插座。
数据从PC机并行口通过ByteBlasterMV电缆下载到电路板中。
⏹注意:
为了利用ByteBlasterMV下载电缆配置1.5VAPEXⅡ、1.8VAPEX20KE、2.5VAPEX20K、Excalibur、Mercury、ACEXIK和FLEX10KE器件,3.3V电源中应该连接上拉电阻,电缆的VCC脚连到3.3V电源,而器件的VCCINT引脚端连到相应的2.5V、1.8V或1.5V电源。
对于PS配置,器件的VCCIO引脚端必须连到2.5V或3.3V电源。
对于APEXⅡ、Mercury、ACEX1K、APEX20K和FLEX10KE系列器件的JTAG在线配置,或MAX7000A和MAX3000A系列器件的JTAG在线编程,电缆的VCC引脚端则必须连接3.3V电源。
器件的VCCIO引脚端既可连到2.5V,也可连到3.3V电源上。
(3)电缆插头与插座
⏹ByteBlasterMV的25针插头,与ByteBlaster下载电缆的区别仅是第15脚不同,ByteBlaster连到GND,而ByteBlasterMV连到VCC。
⏹ByteBlasterMV的10针插座与ByteBlaster电缆的10针插座完全相同。
⏹PCB电路板上的10针连接插头与采用ByteBlaster下载电缆的方式完全相同。
表6.2.3MasterBlaster下载电缆与电路板相连的10针插座引脚端信号
(4)LED显示状态
⏹MasterBlaster下载电缆上的LED显示MasterBlaster电缆的工作状态,如表6.2.4所示。
表6.2.4MasterBlaster电缆的LED显示状态
(5)软件编程和配置步骤
⏹使用ByteBlasterMV电缆和QuartusⅡ编程器,对一个或多个器件进行编程或配置的步骤如下:
1.对项目进行编译
QuartusⅡ编译器对APEXⅡ、APEX20K、Mercury和Excalibur系列器件的配置自动产生.sof文件,为了对EPC配置芯片进行编程,就要用到.pof文件或JAMSTAPL格式文件。
⏹②连接ByteBlasterMV电缆到PC机的并行口,将10针插座插到包含目标器件的电路板中,电路板必须为ByteBlasterMV电缆提供电源。
对于WindowsNT操作系统,在使用ByteBlasterMV电缆前必须安装驱动器。
⏹③打开QuartusⅡ编程器,在Processins菜单中选择OpenProgrammer,然后点击Setup命令,在编程器硬件部分指定ByteBlasterMV电缆和相应的LPT端口。
⏹④根据用户电路板上的器件连接方式,在模式项中选择PassiveSerial或JTAG模式,然后点击AddFile或AddDevice按钮,增加将要编程或配置的文件或器件,并建立一个器件链(chain)描述文件(.cdf)。
编程器具有两种编程模式:
被动串行(PS)与JTAG模式。
在被动串行模式下,在器件链中选择.sof文件。
在JTAG模式下,在器件链中应增加特定的器件和配置器件,除了.sof和.pof文件外,在器件链中对每个配置器件都有几个可编程选项,包括对照编程文件的数据校验一个EPC配置器件的内容,检测器件是否空,检查已编程器件并将其中的数据保存到文件中,或者使用其数据编程或校验其它的配置器件。
⏹⑤在QuartusⅡ软件的编程器中选择Start按钮开始编程或配置器件。
ByteBlasterMV电缆从.sof、.pof文件中下载数据到目标器件。
3.MasterBlaster串行/USB通信电缆
⏹MasterBlaster通信电缆具有标准的PC机串行接口或USB硬件接口。
MasterBlaster电缆允许PC机和UNIX用户,配置数据到APEXⅡ、APEX20K(包括APEX20KE和APEX20KC)、FLEX10K(包括FLEX10KA和FLEX10KE)、FLEX8000和FLEX6000系列器件,以及Excalibur嵌入式微处理器,也可编程MAX9000、MAX7000S和MAX7000A(包括MAX7000AE)系列器件。
设计项目可以直接下载到器件。
在APEX和APEX20K系列器件中,MasterBlaster电缆还可通过SignalTap嵌入式逻辑分析器进行在线调试。
工作电压VCC支持5.0V、3.3V或2.5V。
(1)下载模式
⏹MasterBlaster电缆提供两种下载模式:
⏹①被动串行模式(PS):
用于配置APEXⅡ、APEX20K和FLEX系列器件;
⏹②JTAG模式:
具有IEEE1149.11业标准的JTAG接口,用于编程具有JTAG能力的MAX系列器件和在线串行配置器件(如EPC2)或配置APEXⅡ、APEX20K和FLEX系列器件。
(2)SignalTap逻辑分析
⏹SignalTap宏功能是一种嵌入式逻辑分析器,能够在器件特定的触发点捕获数据,并保存数据到APEXⅡ和APEX20K的嵌入式系统块(ESB)中。
然后,这些数据被送到APEXⅡ或APEX20K的IEEE1149.11标准JTAG接口,通过MasterBlaster通信电缆上传到QuartusⅡ波形编辑器中进行显示。
(3)连接插头与插座
⏹MasterBlaster电缆通过一个串行接口或USB接口与计算机相连,具有标准串行电缆的9针D型插头连接器连接到RS-232端口,USB连接器则能在任何标准的USB电缆中使用。
数据从串口或USB口,通过MasterBlaster电缆下载到电路板。
与电路板相连的是标准10针插座,尺寸与Blaster及ByteBlasterMV下载电缆的10针插座完全一样,插座引脚端信号如表6.2.3所示。
(4)LED显示状态
⏹MasterBlaster下载电缆上的LED显示MasterBlaster电缆的工作状态,如表6.2.4所示。
(5)MasterBlaster下载电缆的供电
⏹MasterBlaster下载电缆的供电方式有:
①由电路板提供的5.0V或3.3V电源;②直流电源供电;③从USB电缆来的5.0V电源。
当电路板上的5.0V或3.3V电源无效时,MasterBlaster下载电缆能够由直流电源或USB电缆供电。
4.BitBlaster串行下载电缆
⏹BitBlaster串行下载电缆具有标准的RS-232串行接口(PC机的“COM”端口,UNIX工作站的“ttya”或“ttyb”端口)。
允许PC机和UNIX用户从PC机和UNIX工作站的MAX+PLUSE开发软件中下载数据。
BitBlaster电缆可配置数据到FLEX10K、FLEX8000和FLEX6000系列器件,也可编程MAX9000(包括MAX9000A)、MAX7000S、MAX7000A和MAX3000A系列器件。
⏹BitBlaster串行下载电提供PS模式和JTAG模式两种数据下载模式。
可编程配置一个器件或多个器件链。
数字传输速率支持9600至230400波特率。
数据从PC机RS-232串口通过BitBlaster电缆下载到电路板,与PC机RS-232串口相连的是25针插座,与PCB电路板相连的是10针插座。
BitBlaster下载电缆上的状态指示灯指示器件编程或配置的状态。
⏹注意:
利用BitBlaster下载电缆配置/编程3.3V器件(如FLEX10KA、FLEX10KB、FLEX10KE、MAX7000A和MAX300