CPLD器件的配置方式主要分为两大类:主动配置方式和被动方式。主动配置方式由CPLD器件引导配置操作过程,它控制着外部存储器和初始化过程;而被动配置方式由外部计算机或控制器控制配置过程。根据数据线的多少又可以将CPLD器件配置方式分为并行配置和串行配置两类。经过不同组合就得到四种配置方式:主动串行配置(AS)、被动串行(PS)、被动并行同步(PPS)、被动并行异步(PPA)。我们没有必要对每一种配置方式都进行讲述,而是详细地来讲讲我们实验室中经常使用的方式:被动串行配置方式(PS)。
以FLEX10K器件为例,我们首先对PS方式中使用到的引脚有个了解,它的主要配置引脚如下:
MSEL1、MSEL0:输入;接地。
nSTATUS:双向漏极开路;
命令状态下器件的状态输出。加电后,FLEX10K立即驱动该引脚到低电位,然后在100ms内释放掉它,nSTATUS必须经过1.0k电阻上拉到Vcc,如果配置中发生错误,FLEX10K将其拉低。
nCONFIG:输入;
配置控制输入。低电位使FLEX10K器件复位,在由低到高的跳变过程中启动配置。
CONF_DONE:双向漏极开路;
状态输出。在配置期间,FLEX10K将其驱动为低。所有配置数据无误差接收后,FLEX10K将其置为三态。
状态输入。输入高电位引导器件执行初始化过程并进入用户状态。
CONF_DONE必须经过1.0k电阻上拉到Vcc,而且可以将外电路驱动为低以延时FLEX10K初始化过程。
DCLK:输入;
为外部数据源提供时钟。
nCE:输入;
FLEX10K器件使能输入,nCE为低时使能配置过程,而且为单片配置时,nCE必须始终为低。
nCEO:输出(专用于多片器件);
FLEX10K配置完成后,输出为低。在多片级联配置时,驱动下一片的nCE端。
DATA0:输入;
数据输入,在DATA0引脚上的一位配置数据。
在被动串行配置(PS)方式中,由ByteBlaster、FLEX下载电缆或微处理器产生一个由低到高的跳变送到nCONFIG引脚,然后微处理器或编程硬件将配置数据送到DATA0引脚,该数据锁存至CONF_DONE变为高电位,它是先将每字节的最低位LSB送到FLEX10K器件。CONF_DONE变为高电位后,DCLK必须多余的10个周期来初始化该器件,器件的初始化是由下载电缆自动执行的。在PS方式中没有握手信号,所以配置时钟的工作频率必须低于10MHz。
在多器件PS方式下,第一片FLEX10K的nCEO引脚级联到下一片FLEX10K的nCE引脚。在一个时钟周期内,第二个FLEX10K器件开始配置,因此,对于微处理器或控制器来说,要转移的数据是透明的,电路如图1。
二、下载电缆ByteBlaster原理(PS)
ByteBlaster下载电缆由以下几部分组成: