电子元器件应用-cpld器件的配置与编程下载.pdf
15页第一部分 CPLD 器件及开发系统的使用 第七章 CPLD 器件的配置与编程下载 第七章 CPLD 器件的配置与编程下载 7..1 概述概述 当利用 CPLD/FPGA 开发系统完成数字电路或系统的开发设计并仿真校验通过之后,就 需要将获得的 CPLD/FPGA 编程配置数据下载到 CPLD/FPGA 芯片中,以便最后获得所设计的 硬件数字电路或系统,结合着用户的设计需求进行电路功能的硬件调试和应用 1、器件编程分类:CPLD/FPGA 编程配置数据下载的方式有多种,按使用计算机的通讯 接口划分,有: 串口下载(BitBlaster 或 MasterBlaster) 、 并口下载(ByteBlaster) 、 USB 接口下载(MasterBlaster 或 APU)等方式 若按使用的 CPLD/FPGA 器件划分,有: CPLD编程(适用于编程元件为EPROM、E2PROM和闪存的器件) ; FPGA 下载(适用于编程元件为 SDRAM 的器件) 若按 CPLD/FPGA 器件在编程下载过程中的状态划分,有: 主动配置方式:在这种配置方式下,由 CPLD 器件引导配置操作的过程并控制着外部存 贮器和初始化过程; 被动配置方式: :在这种配置方式下,由外部计算机或控制器(如单片机)控制配置的过 程。
2、器件的工作状态:CPLD/FPGA 器件按照正常使用和下载的不同过程其工作状态分为 三种: 1、用户状态(User mode)即电路中 CPLD 器件正常工作时的状态; 2、配置状态(Configuration),指将编程数据装入 CPLD/FPGA 器件的过程,也可称之 为下载状态; 3、初始化状态(Initialization)此时 CPLD/FPGA 器件内部的各类寄存器复位,让 I /O 引脚为使器件正常工作作好准备 对于使用Altera公司的CPLD器件的用户来说,若使用的是该公司编程元件为E2PROM或闪存的CPLD器件(如MAX5000、MAX7000、MAX9000 系列等),由于这类器件是非易失性的CPLD 器件,所以只需简单的利用专门的下载电缆(ALTERA公司提供有名为ByteBlaster或 BitBlaster的编程下载电缆,该电缆可以很容易由用户自行制作获得)将编程配置数据下 载到芯片中去即可但是对于编程元件为SRAM的FPGA器件(如FLEX6000、 FLEX8000 、 FLEX10K、 ACEX1K、 APEX20K系列等),由于这类器件具有编程数据易失性的特性,所以存 在一个对于芯片的外部配置的问题,以将编程配置数据永久性的存储在外部的E2PROM或闪存中,供FPGA器件每次在系统通电时调入这些编程配置数据。
否则用户就需要在每次系统 通电时都需要利用PC机进行对FPGA器件的编程写入的操作 由于对 Altera 的 CPLD/FPGA 器件的编程配置操作与该公司的 MAX+PLUS II 开发系统密 切相关,因此在介绍 Altera CPLD/FPGA 器件的配置与编程技术之前,先介绍 MAX+PLUS II 的编程与下载步骤 7..2 编程下载操作步骤编程下载操作步骤 1. 打开编程窗口 连上编程器硬件,然后在 MAX+PLUS II 菜单中选择 Programmer 项,打开编程器窗口, 如图 7-1 所示 197第一部分 CPLD 器件及开发系统的使用 图图 7-1 编程界面编程界面 2.利用 Altera 编程器对 MAX 系列器件进行编程 在 Option 菜单内选择 Hardware Setup 项,然后在 Hardware Type 对话框内选择设定 下载电缆的类型,如果下载电缆为 ByteBlaster,设定后按下 OK 即可;如果是 BitBlaster 类型还要选择相应的波特率,最后按下 OK 按钮,如图 7-2 所示 图图 7-2 下载电缆的选择下载电缆的选择 (1) 在编程器窗口中,检查所选择的编程文件和器件是否正确。
在对 MAX 系列器件进行 编程时,使用的是扩展名是.POF 的文件,如果选择的编程文件不正确,可在 File 菜单中 选择 Select Programming File 命令选择编程文件,如图 7-3 所示 图图 7-3 编程文件的选择编程文件的选择 (2) 将器件插到编程插座中 198第一部分 CPLD 器件及开发系统的使用 (3) 按下 Program 按钮,编程器将检查器件,并将你的项目编程到器件中, 而且还将检查器件中的内容是否正确 3.通过 JTAG 实现在系统编程 一个编程目标文件(.pof)可以通过 Byteblaster 电缆直接编程到器件中,如图 7-4 所示 图图 7-4 通过通过 JTAG 接口对接口对 CPLD 进行编程进行编程 (1) 编译一个项目,MAX+PLUS II 编译器将自动产生用于 MAX 器件的编程目标文件 (2) 将 Byteblaster 电缆的一端与微机的并行口相连,另一端 10 针阴极头与装有可编 程逻辑器件的 PCB 板上的阳极头插座相连 该 PCB 板还必须为 Byteblaster 电缆提 供电源 (3) 打开 MAX+PLUS II 编程器 (4) 在 Option 菜单中选择 Hardware Setup 命令,将出现 Hardware Setup 窗口 (5) 在下拉条中选择 Byteblaster (6) 指定配置时使用的并行口 (7) 按下 OK 按钮 4.设置在系统多器件同时编程 (1) 在 MAX+PLUS II 菜单中选择并打开 Programmer 项,在 JATG 菜单中打开 Multi—Device JATG Chain 并选择 Multi—Device JATG Chain Setup 项,进行多 个器件的 JATG 链的设置。
对话框如图 7-5 所示 图图 7-5 利用利用 JTAG 链进行多器件同时编程链进行多器件同时编程 (2) 按下 Add 按钮 199第一部分 CPLD 器件及开发系统的使用 (3) 选择 Select Programming File 并选出编程文件,该框内显示你选择的编程 文件 如果你使用多个器件,重复(2)~(3)步,可确保与你电路板上的顺序相同 (4) 完成设置后,按下 ok 按钮 (5) 按下 Program 按钮,开始对 JATG 器件进行编程 5.利用 Byteblaster 电缆配置 FLEX 系列器件 可以在 MAX+PLUS II 中,通过 Byteblaster 电缆对多个 FLEX 器件进行在电路配置,过 程如下: (1) 首先编译一个项目,MAX+PLUS II 编译器将自动为 FLEX 器件产生一个 SRAM 目标文 件(.pof) (2) 将 Byteblaster 电缆的一端与微机的并行口相连,另一端 10 针阴极头与装有可编 程逻辑器件的 PCB 板上的阳极头插座相连 该 PCB 板还必须为 Byteblaster 电缆提 供电源 (3) 打开 MAX+PLUS II 编程器窗口,在 Option 菜单中选择 Hardware Setup 命令,在该 窗口中选择 Byteblaster 并设定相应的 LPT 端口。
(4) 如果只需配置一个 FLEX 器件,首先检查在编程器窗口中的编程文件和器件是否正 确,如果不正确,在 File 菜单种选择 Select Programming File 命令来改变编程 文件 (5) 如果需要配置含多个 FLEX 器件的 FLEX 链, 在 FLEX 菜单中打开 Multi—Device FLEX Chain,然后选择 Multi—Device FLEX Chain SETUP接着按你电路板上的顺序添 加 FLEX 编程文件选定全部文件后,按下 OK 按钮 (6) 在编程器窗口中按下 Configure 按钮 除此之外, 还可以用Multi—Device JATG Chain 来配置多个FLEX器件, 也可以用Altera EPROM 或微处理器来配置 FLEX 器件 7..3 Altera CPLD 器件的配置与下载器件的配置与下载 这里我们以 FLEX 10K 系列器件为例来说明器件的配置与下载原理及方法 7..3..1 配置类型配置类型 1、分类、分类 在 FLEX10K 器件正常工作时,它的配置数据贮存在片内 SRAM 之中由于 SRAM 的易失 性,所以每次加电期间,配置数据都必须重新加载。
当器件完成内部初始化之后便进入了 用户状态,其各种工作状态的工作波形如图 7-6 所示: 图图 7-6 器件配制时序图器件配制时序图 200第一部分 CPLD 器件及开发系统的使用 我们将 FLEX10K 分为以下四种配置方式,如表 7.1 所示: 表表 7-1 FLEX10K 器件的配置方式器件的配置方式 方式 典型应用 主动串行(AS) 利用 EPC(PROM)配置 被动串行(PS) 串行同步 CPU 接口,Bitblaster 等 被动并行同步(PPS) 并行同步 CPU 接口 被动并行异步(PPA) 并行异步 CPU 接口 2、配置文件大小、配置文件大小 表 7-2 总结了各种 FLEX10K 器件配置文件的大小, 如果要配置多个器件, 则简单的将这 些数据大小相加即得所需配置存储器的容量 表 7-2 FLEX10K 器件配置文件的大小 3、配置中将用到的引脚、配置中将用到的引脚 在介绍几种配置方式之前,有必要先介绍一下在配置过程中我们要用到的一些引脚, 当然这些引脚在不同器件上的引脚号不同,但功能却是相同的见表 7-3 4、主动串行配置或、主动串行配置或 EPC1 配置方式配置方式 如图 7-7 所示,主动串行配置(AS,Active-Serial Configuration)由 Altera 提供的 串行 PROM 存储芯片 EPC1 向 FLEX10K 器件输入串行位流的配置数据。
图图 7-7 单器件主动配制电气连线图单器件主动配制电气连线图 表表 7-3 FLEX10K 器件配置时使用的引脚说明器件配置时使用的引脚说明 201第一部分 CPLD 器件及开发系统的使用 引脚名 引脚名 状态 状态 配置方式配置方式引脚类型引脚类型 描 述 描 述 MSELl MSEL0 所有 输入 OO:AS 或 PS, 10:PPS ll:PPA nSTATUS 所有 双 向 漏 极开路 命令状态下器件的状态输出位加电后, FLEXl0K 立即驱动该引脚到低电平,约 100 ms 后释放,nSTATUS 必须经过 1.0K 电阻上拉到 Vcc,如果配置中发生错误, CPLD/FPGA 器件将其拉低 nCONFIG 所有 输入 配置控制输入低电平使 FLEXl0K 器件 复位,在由低变高的跳变过程中启动配 制 CONF_DONE 所有 双 向 漏 极 开路 状态输出:在配置期间,为低所有配 置数据无误差接收后为三态 状态输入:输入高电平引导器件执行初 始化过程并进入用户状态 CONF—DONE 必须经由 1.0 K 的上拉电阻 至 Vcc, 而且可以将外电路驱动为低以延 时 FLEX 10K 初始化过程。
DCLK AS,PSPPS 输入 由外部数据源提供时钟 nCE 所有 输入 FLEXl0K 器件使能输入 nCE 为低时使能 配置过程单片配置时,nCE 必须为低 nCEO 用 于 多 片器件 输出 FLEXl0K 器件配置完成后,输出为低,在 多片级连配置时,取得下一片的 nCE 端 nWS I/O PPA 输入 写选通输入由低变高的跳变时锁存 DATA[7。





