微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
厂商专区
产品/技术
应用分类

从硬件和软件角度分析可编程逻辑器件配置

2014-12-05 09:27 来源:电源网 编辑:铃铛

逻辑器件是指拥有逻辑功能的器件,随着技术的发展,逻辑器件的设计也趋于复杂,以便帮助设计者来完成更加复杂的设计。基于SRAM(静态随机存储器)的可重配置PLD(可编程逻辑器件)的出现,为系统设计者动态改变运行电路中PLD的逻辑功能创造了条件。PLD使用SRAM单元来保存配置数据。这些配置数据决定了PLD内部的互连关系和逻辑功能,改变这些数据,也就改变了器件的逻辑功能。由于SRAM的数据是易失的,因此这些数据必须保存在PLD器件以外的EPROMEEPROMFLASH ROM等非易失存储器内,以便使系统在适当的时候将其下载到PLDSRAM单元中,从而实现在电路可重配置ICR

可编程逻辑器件的配置原理

首先在开发软件MAX+PLUS IIASSIGN菜单下选择将要采用的基于SRAM的器件名称。经过编译、优化、逻辑综合、仿真等步骤达到设计要求后,软件会自动产生一个编程文件扩展名为.SOF文件。对于基于SRAM工艺的可编程逻辑器件ALTERA的所有FLEXACEXAPEX系列,XILINXSpartenVertex系列,由于SRAM存储器的特点,掉电后数据会消失,因此在调试期间可以采用并口ByteblasteMV下载电缆多次重复配置PLD器件。当电路设计成功,调试完成后,需要将配置数据烧写固化在一个由ALTERA生产的专用EEPROM(EPC1441)中。上电时,由这片配置EEPROM先对PLD加载数据,几十毫秒后,PLD即可正常工作。

CPLD器件的工作状态分为三种:首先是上电配置状态(Configuration Mode),将编程的数据装入CPLD器件的过程,也可称之为构造;然后是初始化状态(Initialization Mode),在配置完成后,CPLD器件复位内部各类寄存器,让I/O引脚为逻辑器件正常工作做准备;最后是用户状态(User Mode),指电路中CPLD器件正常工作时的状态。

ALTERA公司具有ICR功能的PLD器件有FLEX8000FLEX10KAPEXACEX系列,它们的配置方式可分为PSPPSJTAG(Joint Test Action Group)等方式。PS方式因PLD与配置电路的互连最简单,对配置时钟的最小频率没有限制而应用最广泛,因此在ICR控制电路中通常采用PS配置方式来实现ICR功能。

被动串行(PS)配置方式:在该配置方式下,由ByteblasteMV下载电缆产生一个由低到高的跳变送到nCONFIG引脚脚复位PLD,然后将配置数据送到DATA0引脚,直到CONF_DONE引脚变为高电平。图1PS配置方式的时序图。CONF_DONE变成高电平后,DCLK必须多余十个周期来初始化该器件。器件的初始化由下载电缆自动执行。在PS方式中没有握手信号,所以配置时钟的工作频率必须低于10MHz。在多器件PS配置方式中,第一片PLDnCEO引脚级联到下一片PLDnCE引脚。在配置完第一个器件后,nCEO输出为低,使第二个PLD器件的nCE有效,开始对第二块器件进行配置。

WINBOND78E58单片机配置可编程逻辑器件

1-3

表1 配置引脚功能说明

用单片机配置可编程逻辑器件与上述PS配置方式原理一致,只需模拟PS配置方式中DATA0DCLKnCONFIGCONF_DONEnSTATUS引脚的配置时序,将配置数据串行移入PLD。配置引脚的功能如表1所示。

硬件设计

用单片机配置PLD,可以使用普通输入输出口或单行口。使用普通I/O(P1),向PLD发送1Bit数据至少需要4个指令周期。一个指令给DATA0赋值,两个指令产生DCLK时钟,一个指令移位取数据。如果晶振为fosc,一个指令周期为12/fosc,因此它的下载速率为fosc/48。然而如果采用串行口方式0,其下载速率提高为fosc/12。考虑到PLD配置文件数据比较大,通常都在数十千字节以上其配置文件大小如表2),为了加快配置速度,并适合各种不同规模的PLD,采用了WINBOND78E58单片机。

2-3

表2 各种CPLD配置文件大小


该单片机外接晶振最大频率为40MHz,它在串行口方式0下波特率可设置为fosc/4。另外通过设置特殊功能寄存器CKCONMD0MD1MD2三位,可以将MOVXMOVC等指令周期缩短至2个机器周期。与普通单片机相比,可使配置时间大为缩短。WINBOND78E58单片机内部拥有32KB FLASH ROM.由配置文件数据表2可知,只需一片单片机就可以对EPF10K20系列以下的PLD进行配置了。本系统中使用了一片APEX20K300E,因此在硬件电路设计中,扩展了一片WINBOND29C040 FLASH存储器容量为512KB),其电路如图2DATA0RXDDCLKTXDnCONFP15CONFIG_DONEP16nSTATUSP17分别相连。


软件设计

在软件编程时,使用了串行口移位寄存器输入输出方式。本系统只需用到输出方式,串行数据通过RXD引脚输出,而在TXD引脚输出移位时钟。当一字节数据写入串行数据缓冲器SBUF时,就开始发送。在此期间,发送控制器送出移位信号,使发送移位寄存器的内容右移一位,直至最高位(D7)数字移出后,停止发送数据和移位时钟脉冲。RXDTXD时序如图3。由图3可知,它可以用来模拟配置时序。发送完一字节数据后,硬件置发送标志位TI1,向CPU申请中断。若CPU响应中断,则从0023H单元开始执行串行中断服务程序。

为了提高配置速度,单片机程序用汇编语言编写。单片机上电后使nCONFIG脚由低到高复位待配置PLD;当判断到nSTATUS为高后,开始从外部FLASH存储器取数据串行移位。配置过程中,查询CONF_DONE。一旦为高,配置完成,但还要送40DCLK脉冲,PLD才能进入用户工作状态。

用户设计PLD程序经MAXPLUS IIQUARTUS编译后将产生后缀后为.sofSRAM目标文件。该文件含有除配置数据以外的控制字符,不能直接写入到PLD中去,需要利用软件的编程文件转换功能将文件转换成.rbf(Raw Binary File)十六进制文件。把.rbf文件烧写到存储器中,单片机通过MOVX指令读入后,串行移位到PLD

2-3

部分asm语言源程序如下:

NCONFIG BIT P1.5

CONFDONE BIT P.6

NSTATUS BIT P1.7

ORG 000h

……

CLR SM0

CLR SM1 ;SM0,SM10,串口工作于方式0

CLR SM2 ;串口波特率为fosc/4

CLR REN

ANL 8EH,#0f8h ;地址8EHCKCON单元,MD0MD1MD20

CLR EA

WJRESTART:CLR NCONFIG

SETB NCONFIG ;上升沿复位PLD

WAIT:JNB NSTATUSWAIT ;NSTATUS为高,可进行配置

WJPEIZHI:MOV P1COUNTER3

MOV DPH,COUNTER2

MOV DPL,COUNTER1 ;配置数据大,需3个单元作地址记数

MOVX A,@DPTA

MOV SBUF,A ;串行移位

NOP

NOP ;采用填充2个空指令,正好使一个字节发送完成,可发送下一个字节

INC COUNTER1 ;地址加

MOV A,COUNTER1

JB CONFDONE,WJEND1

CJNE A,#0WJPEIZHI

INC COUNTER2

NOV A,COUNTER2

CJNE A,#0WJPEIZHI

INC COUNTER3

LJMP WJPEIZHI

WJEND1:MOV R0#60

WJEND:WOV A#55H

……

MOV SBUF,A ;由此产生40DCLK时钟

DJNZ R0,WJEND

WERE:LJMP HERE ;配置完成,进入用户工作模式

使用OTP(One Time Programming)器件配置CPLD具有一定的冒险性,一次简单的代码更换就可能意味着更换OTP器件,并重新开始所有的程序。被动串行微处理器(Passive Serial With Processor)配置方式以EEPROM为基础,允许对这些存储器进行多次编程,所有其它芯片都无需从已装配的印制电路板上拆卸下来。高速读写周期的FLASH存储器能确保1万次编程,而且能对任何以SRAM为基础的PLD下载。该方式除了在加电期间能承载配置数据外,还有许多方便之处。例如,用户可以将多个配置文件.rbf分区编程到外部存储器的未用区段,通过单片机读取不同存储区可以将可编程逻辑器件在线配置成多种不同的工作模式。

本篇文章主要介绍了可编程逻辑器件的配置问题,从硬件和软件的角度阐述了如何对复杂可编程逻辑器件进行快速的配置,希望大家在阅读过本篇文章之后能够有所收获。

标签: 可编程逻辑

声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。

微信关注
技术专题 更多>>
研发工程师的工具箱
智慧生活 创新未来

头条推荐

电子行业原创技术内容推荐
客服热线
服务时间:周一至周五9:00-18:00
微信关注
获取一手干货分享
免费技术研讨会
editor@netbroad.com
400-003-2006