电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者电子文章FPGALattice CPLD器件的在系统动态配置

Lattice CPLD器件的在系统动态配置

11-20 16:12:25 | http://www.5idzw.com | FPGA | 人气:148
标签:fpga是什么,fpga教程,fpga培训,http://www.5idzw.com Lattice CPLD器件的在系统动态配置,http://www.5idzw.com

以下是引用片段:
摘要: 介绍一种利用微控制器动态配置CPLD器件的方法。将配置文件存放在存储器中,配置文件中的控制代码驱动在微处理器中运行的配置引擎;将配置文件中的配置信息通过JTAG口移入CPLD,实现器件的动态配置;通过更换存储器中配置文件,达到同一器件实现不同功能的目的。这种方法为嵌入式系统升通读重构提供了一种新的思路,将来一定会得到广泛应用。

关键词: ISP 在系统可编程技术 动态配置 CPLD

引言

随着应用的不断深入,嵌入式系统升级的问题摆在了人们面前。在这种背景下ISP技术应运而生。

在系统可编程ISP(In Ststem Programmability)技术是指能对器件、电路甚至整个系统进行现场升级和功能重构的技术。这种重构可以在实验开发过程中、制造过程中,甚至是在交付用户使用之后进行;而整个在系统可编程设计的最后一个步骤,也是最关键的步骤,也是最关键的步骤,就是器件的配置。配置过程加载设计规定的编程数据到器件中,以定义器件内部功能块及其互连,从而实现器件功能的重构升级。

当然ISP配置方式是多种多样的,其中计算机加下载线就是最常见的配置器件的方法;但是这个方法需要计算机配合,对嵌入式系统来说不太实用,因此需要一个更加方便灵活的配置方案。Lattice公司CPLD器件不仅具有ISP功能,同时融合引脚锁定功能和JTAG技术,使得抛弃计算机而使用微控制器在系统配置、修改、升级CPLD器件成为可能。特别是引脚锁定功能,实现了真正意义上的“动态”配置。采用引脚锁定技术,将配置前引脚状态锁定,配置完成以后各个引脚仍能保持配置前状态。本文介绍一个用微控制器在系统配置Lattice MACH4000系列CPLD器件的方案。

图1

1 原理

ISP器件要实现配置,除了ISP器件的硬件系统中要提供正确的ISP接口以外,还需要有配置文件和配置工具。

(1)配置接口

Lattice公司为器件提供了ISP接口和JTAG接口。

ISP接口是Lattice公司自行开发设计的,具有如下引脚定义:

SDI——数据输入和状态机控制;

MODE——和SDI一起控制状态机;

MODE——和SDI一起控制状态机;

SCLK——时钟输入;

SDO——数据输出,可选引脚;

IspEN——工作模式和配置模式选择,同时还有一个ISP状态机,包含3个状态,由MODE和SDI控制状态机所处技术,在Shift状态通过SDI移入命令,在Execute状态执行命令。

联合测试行动小组JTAG(Joint Test Action Group)在20世纪80年代中期制定了边界扫描技术,在1990年被修改后成为IEEE的一个标准——IEEE1149.1-1990。这个标准即为JTAG。边界扫描技术最初发展盐业,是为了测试电路各个IC器件之间的互边是否正确。随着ISP发展,许多生产厂商利用JTAG规定的四条引脚的测试存取口作为ISP的开发平台,使得ISP也变得有标准可循,给用户带来了极大方便,于是JTAG在其权限内把ISP性能扩充到了IEEE1149.1中。发展到现在可以这样说,IEEE1149.1标准为我们提供了一条简单的串行接口,将那些具有JTAG接口的器件串接在一打扫描链中。通过这个接口既能实现ISP又能实现测试。

IEEE1149.1标准对边界扫描结构的定义包括4个基本单元:4个引脚的测试存取口TAP(Test Access Port)、数据寄存器、指令寄存器和TAP控制器。TAP引脚定义如下:TCK为测试时钟输入,TDI为测试数据输入,TDO为测试数据输出,TMS为测试模式选择。数据寄存器包含两种BYPASS寄存器和BSR(Boundary Scan Register)寄存器,其中BSR由BSC(Boundary Scan Cell)串联而成,正是通过BSC才把来自于TAP的数据移入ISP芯片内部逻辑。另外TAP控制器作为一个有限状态机,共有16个状态。它控制着测试存取口、指令寄存器和数据寄存器。TAP控制器如图1所示。

通过TCK、TMS控制TAP控制器的状态。当TAP控制器处于Shift-IR状态时,TDI口进入的指令被移进指令寄存器;当TAP控制器入于Update-IR状态时,指令寄存器的指令有效。根据这个原理,通过控制此状态机,将配置信息移入器件内。另外,TAP测试存取口4个引脚有严格的时序要求,如图2所示。

其中TMS、TDI在TCK上升沿有效,TDO在TCK下降沿有效。要想通过JTAG口实现ISP或者测试,都必须遵守这些时序要求。

通过对两种接口的研究发现,它们均能实现ISP,然而JTAG口的测试功能以及与其它具有JTAG口器件之间的灵活的连接性显得更有优势,这也使得Lattice公司认识到了ISP接口的局限,因此在它后来开发生产的新器件中都采用了JTAG。在本方案中用到的LatticeMACH4000系列CPLD器件,运行频率最高达400MHz,待机电流仅为20μA,宏单元数目最高达1024个,引脚到引脚延时2.5ns,在系统配置要用JTAG接口。

图2

(2)配置文件

在进行配置前需要得到一个JED文件,也就是我们所说的熔丝图文件。在这个文件里包含了相应器件的配置信息,即该器件内部互连逻辑。在开发环境ispLEVER3.0里按照自上而下的顺序进行逻辑设计,经过行为仿真和时序仿真后,开发环境将生成这个熔丝图文件。除了JED文件,另外还需要一个能说明菊花花链组成顺序的.xcf文件。特别是当系统中有多个ISP器件且组成菊花链进行配置时,通过这个文件将分散在各个器件内部的JTAG链按照先后顺序组成一条系统级的扫描链,下载工具通过这个文件里的信息决定当前TDI上的数据是哪个器件的数据。有了这2个文件以后就可以通过下载工具进行器件配置了。

(3)配置工具

Lattice公司在PC和Workstation平台提供的下载工具叫IspVM。通过这个下载软件加上下载线可以实现器件配置。另外,Lattice在业界首创的利用系统板上的微控制器或微处理器进行编程的嵌入式、多供应商、单链、在系统可编程工具IspVM EMBEDDED,作为一种软件实现,一旦在微控制器或处理器安装成功,系统将有能力直接通过电路板上的处理器对板上所有可编程逻辑器件进行编程或再编程,而无需使用下载电费或人工干预。当然,为了使用这种软件,必须将JED文件转化成该软件支持的文件格式VME。VME作为专门支持IspVM EMBEDDED的文件,里面除了包括来自于JED和XCF的配置信息以外,不觉包括了能驱动IspVM EMBEDDED配置引擎的控制信息。正是这些控制信息使TAP状态机进入相应状态,从而将配制信息移入器件内。需要注意的是,如果要将VME存储在存储器上,还需要将其转化成HEX格式。本方案将在MSP430单片机上实现IspVM EMBEDDED,从而提供一种嵌入式系统升级方案。

2 方案设计

系统硬件电路如图3所示。

MSP430单片机P2口作为配置接口,接到Lattice MACH4128V的JTAG口上,外挂一个E2PROM,用来存储HEX格式的VME文件。整个过程是,通过串口接收来自计算机的配置文件,放到E2PROM,接收完毕以后,单片机运行配置引擎,读取E2PROM,配置指令通过JTAG口对Lattice MACH 4128V进行配置。需要指出的是,Lattice MACH 4128V并没有用专门的引脚来控制进入配置模式或退出配置模式,而仅仅是通过TAP控制所处状态来决定的。IEEE1149.1标准中规定:器件加电时或应用中不利用边界扫描逻辑,强迫TAP控制器处于Test-Logic-Reset状态,因此在通过程序控制JTAG进行器件配置结束时,一定要通过软件方式强迫TAP控制器回到Test-Logic-Reset状态,下面提到的ispVMEnd()函数实现的就是这个功能。另外,当通过JTAG口完成器件配置或测试以后,TMS、TDI引脚器件内部上拉。虽然如此,为了防止TCK可能出现的信号使JTAG状态机离开Test-Logic-Reset状态,或者因为上电瞬间可能产生的TCK信号导致状态机进入未知状态,设计电路时必须在TMS引脚加4.7kΩ下拉电阻。另外,电路中Vcc=3.3V。

[1] [2]  下一页

,Lattice CPLD器件的在系统动态配置
关于《Lattice CPLD器件的在系统动态配置》的更多文章