chapter 2 FPGA及CPLD硬件基础

上传人:guoc****ang 文档编号:242864865 上传时间:2024-09-10 格式:PPT 页数:62 大小:2.16MB
返回 下载 相关 举报
chapter 2 FPGA及CPLD硬件基础_第1页
第1页 / 共62页
chapter 2 FPGA及CPLD硬件基础_第2页
第2页 / 共62页
chapter 2 FPGA及CPLD硬件基础_第3页
第3页 / 共62页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,EDA,ASIC,PLD,CAE,CAD,ESDA,PLD,ISP,EEPROM,IC,PCB,SOC,VHDL,SOPC,HDL,FPGA,CPLD,第二章,FPGA,CPLD,硬件基础,2. 1,可编程逻辑器件的发展,2. 2 FPGA/CPLD,结构,2. 3 XC9500,系列,CPLD,2. 4 CPLD/FPGA,边界扫描测试,2. 5 FPGA,开发流程,2.1,可编程逻辑器件,PLD,的发展,一,.,可编程逻辑器件,PLD,的发展 可编程逻辑器件,PLD,是,20,世纪,70,年代发展起来的一种集成器件,它是大规模集成电路技术发展的产物,是一种半定制的集成电路,结合,EDA,技术,可以快速,方便地构建数字系统。,早期的可编程逻辑器件只有可编程只读存贮器,(PROM),、紫外线可按除只读存贮器,(,EPROM,),和电可擦除只读存贮器,(EEPROM),三种。由于结构的限制,它们只能完成简单的数字逻辑功能。,其后,出现了一类结构上稍复杂的可编程芯片。典型的,PLD,由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”表达式来描述,所以,,PLD,能以乘积和的形式完成大量的组合逻辑功能。,可编程器件大致的发展过程如下:,1,),20,世纪,70,年代,出现了熔丝编程的,PROM,和,PLA,器件。,70,年代末,,AMD,公司对,PLA,进行了改进,推出了,PAL,器件。,2,),20,世纪,80,年代初,Lattice,公司发明了电可擦写的,比,PAL,更灵活的,GAL,器件。,3,),20,世纪,80,年代中期,,Xilinx,公司提出现场可编程概念,生产出了世界上第一片,FPGA,器件。,FPGA,是改变内部连接的布线来编程。,4,),20,世纪,80,年代末,,Lattice,公司又提出在系统可编程概念(,ISP,),并推出了一系列具有在系统可编程能力的,CPLD,器件。,CPLD,的设计是修改具有,固定,内部连接电路的逻辑功能来编程。,5,),20,世纪,90,年代后期,可编程集成电路技术飞速发展,器件的可用逻辑门数超过了百万门,并出现了内嵌复杂功能模块(如加法器,乘法器,,RAM,,,CPU,核,,DSP,核等)的,SOPC,。,二,.,可编程器件的分类,1.,按集成度来划分,分为高密度和低密度,PLD,器件。,1,),集成度小于,1000,门,/,每片的,LDPLD,又称简单,PLD,。,PROM,(可编程只读存储器),PLA,(可编程逻辑阵列 ,,Programmable Logic Array,),PAL,(可编程阵列逻辑 ,,Programmable Array Logic),GAL,(通用阵列逻辑,,Generic Array Logic,),2,)集成度大于,1000,门,/,每片的,HDPLD,FPGA ( Field Programmable Gate Array),CPLD ( Complex Programmable Logic Device),2.,从结构上可分为:,1,)乘积项结构器件:为,“,与,或,”,阵列,结构,,大部分简单,PLD,和,CPLD,都属于这个范畴;,2,)查找表结构器件:由的查找表组成可编程门,再构成阵列形式,,FPGA,属于此类器件。,3.,从编程工艺上分为:,1,)熔丝,(Fuse),型器件:编程过程就是根据设计的熔丝图文件来烧断对应的熔丝,来达到编程的目的。,编程后即使系统断电,它们中存 储的编程信息不会丢失,。,2,)反熔丝,(,Antifuse,),型器件:由,Actel,公司推出,在编程处通过击穿漏层使得两点之间获得导通。反熔丝,PLD,抗辐射,耐高低温,功耗低,速度快,在军品和宇航上有较大优势。前两种都属,OTP,器件。,3,),EPROM,型:紫外线擦除电可编程逻辑器件,它用较高的编程电压进行编程,当需要再次编程时,用紫外线擦除。前三种较少使用。,4,),EEPROM,型:电可擦除可编程逻辑器件。,CPLD,采用此编程工艺。,5,),SRAM,型:,SRAM,查找表结构的器件,大部分的,FPGA,采用此编程工艺。断电后编程信息会丢失,每次上电时,需从器件外部存储器将编程数据重新写入,SRAM,中。,允许无限次编程。,6,),Flash,(,Fastflash,)型:即闪存技术,由,Actel,公司推出。采用此编程工艺的器件,可以实现多次可编程,也可以做到掉电后不需要重新配置。,CPLD,采用此编程工艺。,三,. FPGA,和,CPLD,的主要生产厂家及产品,1.,Xilinx,公司:成立于,1984,年,总部在美国加州硅谷,是,FPGA,的发明者,其产品占有当今该类器件需求的半数以上。,2.,Altera,公司:,1983,年成立,总部在美国加州硅谷,,1984,年,Altera,推出了世界上第一个易抹除可编程逻辑器件,全球第一个,PLD,器件供应商,同时也开发了第一个基于,PC,机的开发系统。,3.,Lattice,公司:总部设在美国俄勒冈州,是,ISP,技术的发明者。,80,年代末推出了一系列具有,ISP,功能的,CPLD,。,4.,Actel,:总部在加州硅谷,反熔丝和,Flash,的发明者。反熔丝在军品和宇航上有较大优势。,Altera,和,Xilinx,一般不涉足军品和宇航市场,。 在欧洲:,Xilinx,在亚太地区:,Altera,在美国平分秋色,Xilinx,主要器件有,CoolRunner,-II,具有,512,个宏单元,全球成本最低、功耗最低,CPLD,CoolRunner,-II,具有附加的,IO,组和最小的封装,全球成本最低,FPGA,以,IO,为核心的,spartan-3,以门电路为核心的,spartan-3E,低功耗的,spartan-3L,以低价格实现高性能的突破,FPGA,Virtex-4LX,高性能逻辑,Virtex-4SX,超高性能信号处理,Virtex-4FX,嵌入式处理和串行连接功能,最高性能最低功耗,FPGA,65nm,工艺,带有,PCI,总线扩展接口,24,个低功耗高速串行收发器接口,Altera,主要器件有,2005,年开始推出,,90nm,工艺,,1.2v,内核供电,属于低成,本,FPGA,,提供了硬件乘法器单元,是一种适合中低端应,用的通用,FPGA,。,altera,大规模高端,FPGA,2002,年中期推出,,0.13um,工艺,,1.5v,内核供电。集成硬件乘加器。,新一代,PLD,器件,,0.18um,falsh,工艺,,2004,年底推出,采用,FPGA,结构,配置芯片集成在内部,和普通,PLD,一样上电即可工作。容量比上一代大大增加,内部集成一片,8Kbits,串行,EEPROM,,增加很多功能。,MAXII,采用,2.5v,或者,3.3v,内核电压,,MAXII G,系列采用,1.8v,内核电压。,四,. FPGA/CPLD,的优点如下:,1.,芯片规模大,单片逻辑门数已达到上百万门,可实现系统集成,即,单片电子系统系统,SOC (system on a chip ),:即在单一硅片上集成 信号采集与转换、存储器、,MPU,、,MCU,、,DSP,等多种电路。,2.,用户可反复编程、擦除、使用,在外围电路不动的情况下,用不同的软件可以实现不同的功能,即,在系统可编程,ISP (In System,Programmability),特性:未编程的,ISP,器件可以直接焊接在,PCB,上,然后通过计算机的并行口和专用的编程电缆对其进行多次编程。,3.,设计人员在实验室中通过相关的软硬件可以完成芯片的最终功能设计,资金投入少,周期短,节省许多的花费。,4.FPGA/CPLD,软件包中集成各种输入工具、仿真工具、版图设计工具及编程器,设计人员无需具备专门的,IC,深层次知识,简单易学。,2. 2 FPGA/CPLD,结构,一,.,简单,PLD,的结构,任何组合函数都可以表示为与,-,或表达式:如,F=AB+BCD,。,PLD,由“与门阵列”和“或门阵列”加上输入输出电路构成。,早期的,PLD,有些是,“,与”阵列可编程,有些是,“,或”阵列可编程,还有些是,“,与”和“或”阵列都可编程。,PLD,器件 与阵列 或阵列 编程工艺,PROM,固定 可编程 熔丝,PLA,可编程 可编程 熔丝,PAL,可编程 固定 反熔丝,,EPROM,和,EEPROM,GAL,可编程 固定,EEPROM,1.,输入缓冲器,2.PLD,的互补输入,3.PLD,中与阵列表示,4.PLD,中或阵列的表示,5.,阵列线连接表示,编程前 编程后,6.PROM,的,PLD,阵列图,二,.FPGA/CPLD,的结构,FPGA/CPLD,的结构各有其特点和长处,但概括起来,它们是由三大部分组成的,:,1.,逻辑,阵列,块,LAB (Logic Array Block),或,CLB,(,Configurable Logic Block,),构成了,PLD,器件的逻辑组成核心。,2.,输入输出块,IOB,(,I/O Block,),3.,连接逻辑块的可编程连线阵列,PIA (Programmable Interconnect Array),或互连资源,IR,(,Interconnect Resources,),.,它由各种长度的连线线段组成,也有一些可编程的连接开关,用于逻辑块之间、逻辑块与输入输出块之间的连接。,CPLD,通过修改具有固定内连电路的逻辑功能来编程,,FPGA,主要通过改变内部连线的布线来编程。,CPLD,的逻辑块互连是集总式的,内部采用固定长度的金属线进行互连,所以设计的逻辑电路具有时间可预测性 ,任意两块之间的延时是相等的,; FPGA,的互连则是分布式的,其延时与系统的布局有关,延时不能完全预测。,FPGA,最底层是门电路,由门电路构成最小的物理逻辑单元。可编程内部互连包括各种长度的连线线段和一些可编程连接开关,将可编程逻辑块或,I/O,块连接起来,构成特定功能的电路。,FGPA,的,编程开关,主要有,SRAM,和,Flash,两类工艺。,CPLD,主要由以逻辑模块的形式排列的,可编程逻辑宏单元组成,,每个逻辑模块由若干个宏单元组成。一个宏单元包含一个寄存器,它又有若干个乘积项。因此,CPLD,被认为是“逻辑丰富”型,可实现大量组合逻辑。,CPLD,主要是基于,EEPROM,或,Flash,存储器编程,。,三,.FPGA/CPLD,的比较,1.CPLD,更适合完成各种算法和组合逻辑。,FPGA,触发器丰富,更适,合于完成复杂的时序逻辑。,2.FPGA,的编程灵活性,更大,。,CPLD,通过修改具有固定内连电路的逻,辑功能来编程,,FPGA,主要通过改变内部连线的布线来编程。,3.CPLD,的速度比,FPGA,快。,CPLD,是逻辑块级编程,其逻辑块之间的,互联是集总式的,延迟均匀、可预测。,FPGA,是门级编程,,CLB,之间采,用分布式互联,布线距离较远,延迟不可预测。,4.CPLD,主要是乘积项结构,基于,EEPROM,或,FLASH,存储器编程,,编程次数可达,1,万次,系统断电时编程信息也不丢失,无需外部存储器,芯片。,FPGA,大部分为查找表加寄存器结构,采用,SRAM,编程,可以实,现编程任意次,但编程信息在系统断电时会丢失,每次上电时需从外部,存器将编程数据重新写入,SRAM,中。,5,),FPGA,的集成度比,CPLD,高,具有更复杂的布线结构和逻辑实现。,6,),CPLD,的功耗要比,FPGA,大,且集成度越高越明显。,7,),CPLD,的保密性比,FPGA,好。,四,.,常见,FPGA/CPLD,1,)基于乘积项,(Product-Term),技术,,EEPROM(,或,Flash,FastFlash,),工艺的中,/,小规模,CPLD,。,代表产品有:,Lattice,公司的,ispLSI,系列,Atlera,公司的,MAX,系列,,Stratix,系列,,Xilinx,公司,XC9500,系列。,Lattice,公司首先发明了,在系统 (在线)可编程,ISP,的技术。具有,ISP,功能,CPLD,的器件可以直接焊接在,PCB,上,然后通过计算机的并行口和专用的编程电缆对其进行多次编程。,PC,的并行口,此接口既可作编,程下载口,也可作,JTAG,接口,1.,将,CPLD,焊在,PCB,板上,2.,接好编程电缆,3.,现场烧写(编程),CPLD,芯片,2,)基于查找表(,Look Up Table,),技术,,,SRAM,工艺的,FPGA,。 代表产品有:,Atlera,公司的,FLEX,、,ACEX,、,APEX,系列,,Xilinx,公司的,Spartan,、,Virtex,系列。,FPGA,大部分是基于,SRAM,编程,可以实现编程任意次,但编程 信息在系统断电时会丢失,每次上电时需从外部将编程数据重新写入,SRAM,中,因此需外部存储器。,SRAM,工艺的,FPGA,一般不可加密。,调试:用下载电缆配置(编程),FPGA,器件,固化:用通用编程器烧写将数据固化在一个专,用的,EEPROM,中,加载:用配置好的,EEPROM,对,FPGA,加,载数据,什么是查找表?,查找表,(,LUT,,,Look Up Table),是可编程的最小逻辑构成单元。一个,N,输入查找表,可以实现,N,个输入变量的任何逻辑功能,如,N,输入,“,与,”,、,N,输入,“,异或,”,等。,下图是,4,输入,LUT,以及其内部结构。,查找表的输入就是,SRAM,单元的地址输入,查找表的输出就是,SRAM,阵列所存逻辑函数的真值。,对于一个,4,输入的查找表,每一个查找表可以看成一个有,4,位地址线的,16x1,位的,RAM,。当用户通过,HDL,语言描述一个逻辑电路后,开发软件会自动计算逻辑电路的所有可能结果,并把结果事先写入,RAM,。显然输入变量,N,不可能很大,否则,LUT,的利用率很低。输入多于,N,个的逻辑函数,必须分开用几个查找表来实现。,输出,查找表,黑盒子,输入,1,输入,2,输入,3,输入,4,实际逻辑电路,LUT,的实现方式,a,b,c,d,输入,逻辑输出,地址,RAM,中存储的内容,0000,0,0000,0,0001,0,0001,0,.,0,.,0,1111,1,1111,1,E,F,D,B,C,A,8,9,7,5,6,4,3,1,2,0,输入,A,输入,B,输入,C,输入,D,查找表,输出,16x1,RAM,多路选择器,单个,LUT,对应的配置数据,DCBA,输入 输出,0 0 0 0 0,单元内容,0 0 0 1 1,单元内容,0 0 1 0 2,单元内容,0 0 1 1 3,单元内容,0 1 0 0 4,单元内容,0 1 0 1 5,单元内容,0 1 1 0 6,单元内容,0 1 1 1 7,单元内容,1 0 0 0 8,单元内容,1 0 0 1 9,单元内容,1 0 1 0 A,单元内容,1 0 1 1 B,单元内容,1 1 0 0 C,单元内容,1 1 0 1 D,单元内容,1 1 1 0 E,单元内容,1 1 1 1 F,单元内容,2.3,Xilinx,XC9500,系列,CPLD,产品,Xilinx,公司的,CPLD,产品主要包括三种系列,分别是,XC9500,系列,,CoolRunner,XPLA3,系列和,CoolRunner,-II,系列。一、,XC9500,系列,CPLD,介绍 采用快闪存储技术(,FastFlash,),符合,PCI,总线规范,含,JTAG,测试接口电路,具有可测试性。具备在线可编程(,ISP,)能力。 传导延时,t,PD,(,Propagation delay,)最快达,3.5ns,,宏单元数达,288,个,可用门数达,6400,个,系统时钟可达,200MHz,。 按照供电电压还可以进一步划分为,3,个小系列:,XC9500 5V,器件,,XC9500XL 3.3V,器件,,XC9500XV 2.5V,器件。,XC9500XL,和,XC9500XV,器件为低电压、低功耗的,CPLD,器件,使用,XC9500XV,器件可以比,XC9500,器件节省,75%,的功率,同时成本也大大降低。,XC9500,系列器件特点如下,:,1.,高密度,,XC9500,系列器件内有,36288,个宏单元(每个宏单元有一个寄存器),,8006400,个逻辑门,封装引脚,44352,个。,2.,高性能,所有信号都有相同的延时,与路径无关,其引脚,到引脚的传输时间最快达,3.5ns,。,3.,在系统编程,所有,XC9500,系列器件均含有,JTAG,测试接口电路,具有,5V,或,3.5V,在系统编程能力,最小编程,/,擦除次数达,1,万次。,4.,快速闪存技术。,5. 5V,和,3.3V,工作电压混合模式。,6.,保密好和抗干扰能力强,包含先进的数据保密特性,它可以完整保护编程数据不被非法读取和擦除。,。,7.,驱动负载能力强,,XC9500,的每个输入,/,输出端口的负载电流可达,24mA,,可直接驱动,LED,显示而无须附加驱动电路。,8.,增强型的引脚锁定功能,即将输入输出信号安排在器件的指,定引脚,可以避免设计过程中印制电路板的重新设计。,二,.XC9500,系列,CPLD,介绍,1.,Xilinx,CPLD,器件的命名,XC95288XL,-6,TQ,144,C,器件类型,288,个宏单元,低电压器件,速度,t,PD,为,6ns,封装形式,引脚数目,工作条件,商业级,C,0C,至,+70C,扩展商业级,U,0C,至,+85C,工业级,I,-20C,至,+85C,扩展工业级,E,-40C,至,+85C,军品级,M,-55C,至,+125C,2.XC9500,系列器件特征(,5V,电压),器件,XC9536,XC9572,XC95108,XC95144,XC95216,XC95288,宏单元,36,72,108,144,216,288,可用门数,800,1600,2400,3200,4800,6400,寄存器,36,72,108,144,216,288,t,pd,/ns,5,7.5,7.5,7.5,10,15,t,su,/ns,3.5,4.5,4.5,4.5,6.0,8.0,t,co,/ns,4.0,4.5,4.5,4.5,6.0,8.0,t,CNT,/ns,100,125,1225,125,111.1,92.2,t,SYS,/ns,100,83.3,83.3,83.3,66.7,56.6,器件,XC9536,XC9572X,XC95144XL,XC95288XL,宏单元,36,72,144,288,可用门数,800,1600,3200,6400,寄存器,36,72,144,288,t,pd,/ns,5,5,5,6,t,su,/ns,3.7,3.7,3.7,4.0,t,co,/ns,3.5,3.5,3.5,3.8,t,SYS,/ns,178,178,178,208,3.XC9500XL,系列器件特征(,3.3V,电压),器件,XC9536XV,XC9572XV,XC95144XV,XC95288XV,宏单元,36,72,144,288,可用门数,800,1600,3200,6400,寄存器,36,72,144,288,t,pd,/ns,5,5,5,6,t,su,/ns,3.5,3.5,3.5,4.0,t,co,/ns,3.5,3.5,3.5,3.8,t,SYS,/ns,222,222,222,208,输出扩展,1,1,2,4,4.XC9500XV,系列器件特征(,2.5V,电压),三、,XC9500,系列器件结构,XC9500,器件是由若干多功能块,FB,和输入,/,输出块,IOB,组成,并有一个开关矩阵,FastCONNECT,完全互连的子系统。每个,FB,提供具有,36,个输入和,18,个输出的可编程逻辑;,IOB,则提供器件输入和输出的缓冲;开关矩阵将所有输入信号及,FB,的输出连到,FB,的输入端。对于每个,FB,,有,1218,个输出(取决于封装的引脚数)及相关的输出使能信号直接驱动,IOB,。,1,功能块(,Function Block,),每个功能块,FB,由,18,个独立的宏单元组成,每个宏单元可实现一个组合电路或寄存器的功能。,FB,除接收来自,开关矩阵,的输入外,还接收全局时钟、输出使能和复位,/,置位信号。,FB,产生驱动开关矩阵的,18,个输出,同时和相应的输出使能信号也驱动,IOB,。,FB,的逻辑是利用与或阵列来实现的。,36,个输入连同其互补信号共,72,个信号(对于,XC9500XL,,是,54,个输入连同其互补信号共,108,个信号)在可编程与阵列中可形成,90,个乘积项。乘积项分配器则将这,90,个乘积项的任何数目分配到每个宏单元。,1.,功能块(,Function Block,),2.,宏单元(,Macrocell,) 与阵列中的,5,个直接乘积项用作原始的数据输入。用,OR,或,XOR,门来实现组合功能,它们也可用作时钟、复位,/,置位和输出使能的控制输入。,3.,乘积项分配器(,Product Term,Allocator,) 乘积项分配器将,5,个直接的乘积项分配到每个指定单元,例如,所有,5,个直接项可以驱动,OR,函数。,乘积项分配器可以重新分配,FB,内其他的乘积项来增加宏单元的逻辑能力,每个宏单元可最多有,15,个乘积项。,4.,FastCONNECT,开关矩阵 开关矩阵连接信号到,FB,的输入端。所有,IOB,的输入,和,FB,的输出,可以驱动开关矩阵。开关矩阵的所有输出都可以通过编程选择以驱动,FB,,每个,FB,则最多可接收,36,个来自开关矩阵的输入信号。所有从开关矩阵到,FB,的信号延时是相同的。,5.,输入,/,输出块 (,I/O Block,),IOB,提供内部逻辑电路到用户,I/O,引脚之间的接口。,每个,IOB,包括一个输入缓冲器、输出驱动器,。输出使能数据选择器和用户可编程接地控制输出使能信号由输出使能数据选择器提供,它可由以下,4,个选项之一产生:来自宏单元的乘积项信号,PTOE,;全局输出使能信号(,OE1OE4,)中的任意一个;高电平,1,;低电平,0,。,6.,加电特性,1),加电期间:采用内部电路保持器件在静止状态,直到电源电压保 持在安全电平(近似,3.8V,),所有器件引脚和,JTAG,引脚被禁 用,所有器件输出用,IOB,上拉电阻使能禁止。,2),初始化:电源电压达到安全电平,所有用户寄存器开始初始化 (一般在,100s,内),,器件立即正常工作。,3),擦除状态:器件输出用,IOB,上拉电阻禁止,使能,JTSG,引脚,允 许器件在任何时间被编程。,4),正常工作状态:器件输入和输出被使能,,JTAG,引脚被使能,允 许在任何时候擦除器件或进行边界扫描测试。,2.4 CPLD/FPGA,边界扫描测试,十九世纪八十年代,联合测试行动组(,Joint Test Action Group,,简称,JTAG,)提出了,IEEE1149.1-1990,边界扫描测试(,Boundary Scan Test,,,BST,)技术规范,用来有效测试引脚密度很高的集成电路芯片,使得设计人员在使用,BST,规范测试引脚连接时,再也不必使用物理探针,甚至可以在器件正常工作时捕获有效数据。 强行加入的测试数据串行地移入边界扫描单元,捕获的数据串行移出并在器件外部与预期的结果相比较。,JTAG,最初是用来对芯片进行测试的。通过专用的,JTAG,测试工具对进行内部节点进行测试。,JTAG,测试允许多个器件通过,JTAG,接口串联在一起,形成一个,JTAG,链,能实现对各个器件分别测试。,现在,,JTAG,接口还常用于实现,ISP,,对,FLASH,等器件进行编程。,JTAG,编程方式是在线编程,传统生产流程中先对芯片进行编程,再安装到板上。而在线编程的流程为先固定器件到电路板上,再用,JTAG,编程,从而大大加快工程进度。,标准的,JTAG,接口是,4,线:,TMS,、,TCK,、,TDI,、,TDO,,分别为模式选择、时钟、数据输入和数据输出线,,TRST,是可选的。通常开发板上都有一个,JTAG,接口。,1.Test Clock Input (TCK),TCK,为,TAP,的操作提供了一个独立的、基本的时钟信号,,TAP,的所有操作都是通过这个时钟信号来驱动的。,2.Test Mode Selection Input (TMS),TMS,信号用来控制,TAP,状态机的转换(共,16,个状态)。通过,TMS,信号,可以控制,TAP,在不同的状态间相互转,换,。,TMS,信号在,TCK,的上升沿有效。,3.Test Data Input (TDI),TDI,是数据输入的接口。所有要输入到特定寄存器的数据都是通过,TDI,接口一位一位串行输入的(由,TCK,驱动)。,4.Test Data Output (TDO),TDO,是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过,TDO,接口一位一位串行输出的(由,TCK,驱动)。,5.Test Reset Input (TRST),TRST,可以用来对,TAP Controller,进行复位(初始化)。不过这个信号接口在,IEEE 1149.1,标准里是可选的,并不是强制要求的。因为通过,TMS,也可以对,TAP Controller,进行复位(初始化)。,边界扫描技术的基本思想是在靠近芯片的输入输出管脚上增加一个移位寄存器单元(,Boundary-Scan Register Cell,),另外它们也可以相互连接起来,在芯片的周围形成一个边界扫描链(,Boundary-Scan Chain,)。,在,IEEE 1149.1,标准里面,寄存器分为两大类:数据寄存器,(DR,Data Register),和指令寄存器,(IR,Instruction Register),。边界扫描链属于数据寄存器中很重要的一种。边界扫描链用来实现对芯片的输入输出的观察和控制。而指令寄存器用来实现对数据寄存器的控制。,TAP,是一个通用的端口,通过,TAP,(,Test Access Port,测试访问口),,可以访问芯片提供的所有数据寄存器和指令寄存器。对整个,TAP,的控制是通过,TAP Controller,来完成的。,TAP,一般包括,5,个信号接口,TCK,、,TMS,、,TDI,、,TDO,和,TRST,,最后一个是可选的。通常开发板上都有一个,JTAG,接口。,TAP,的状态机如下图所示,总共有,16,个状态。每个六边形表示一个状态,六边形中标有该状态的名称和标识代码。图中的箭头表示了,TAP Controller,内部所有可能的状态转换流程。状态的转换是由,TMS,控制的。,假设,TAP Controller,的当前状态为,Select-DR-Scan,,在,TCK,的驱动下,如果,TMS,0,,,TAP Controller,进入,Capture-DR,状态;如果,TMS = 1,,,TAP Controller,进入,Select-IR-Scan,状态。,如果需要捕获芯片某个管脚上的输出,首先需要把该管脚上的输出装载到边界扫描链的寄存器单元里去,然后通过,TDO,输出,这样我们就可以从,TDO,上得到相应管脚上的输出信号。如果要在芯片的某个管脚上加载一个特定的信号,则首先需要通过,TDI,把期望的信号移位到与相应管脚相连的边界扫描链的寄存器单元里去,然后把该寄存器单元的值加载到相应的芯片管脚。,TAP Controller State Transitions,1.Test-Logic Reset,系统上电后,,TAP Controller,自动进入该状态,测试部分的逻辑电路全部被禁用,以保证芯片核心逻辑电路的正常工作。通过,TRST,信号也可以对测试逻辑电路进行复位。,TRST,是可选信号接口,在,TMS,上连续加,5,个,TCK,脉冲宽度的“,1”,信号也可以对测试逻辑电路进行复位。如果,TMS,一直保持为“,1”,,,TAP Controller,将保持在,Test-Logic Reset,状态下;如果,TMS,由“,1”,变为“,0”,(,TCK,上升沿触发),进入,Run-Test/Idle,状态。,2.Run-Test/Idle,它是,TAP Controller,的一个中间状态。在该状态下,如果,TMS,一直保持为“,0”,,,TAP Controller,将一直保持在,Run-Test/Idle,状态下;如果,TMS,由“,0”,变为“,1”,(,TCK,上升沿触发),进入,Select-DR-Scan,状态。,3.Select-DR-Scan,如果,TMS,为“,0”,(,TCK,上升沿触发),,TAP Controller,进,入,Capture-DR,状态,以数据寄存器作为操作对象;如果,TMS,为“,1”,(,TCK,上升沿触发),进入,Select-IR-Scan,状态。,4.Capture-DR,在,TCK,的上升沿,芯片输出管脚上的信号将被“捕获”到与之对应的数据寄存器的各个单元中去。如果,TMS,为“,0”,(,TCK,上升沿触发),,TAP Controller,进入,Shift-DR,状态;如果,TMS,为“,1”,(,TCK,上升沿触发),则进入,Exit1-DR,状态。,5.Shift-DR,每一个,TCK,,在,TDI,和,TDO,之间的数据寄存器将从,TDI,接收一位数据,同时通过,TDO,输出一位数据。如果,TMS,为“,0”,(,TCK,上升沿触发),,TAP Controller,保持在,Shift-DR,状态; 如果,TMS,为“,1”,(,TCK,上升沿触发),则进入到,Exit1-DR,状态。,6.Update-DR,由,TCK,上升沿驱动,数据寄存器中的数据将被加载到相应的芯片管脚上,以驱动芯片。如果,TMS,为“,0”,,,TAP Controller,回到,Run-Test/Idle,状态;如果,TMS,为“,1”,,进入,Select-DR-Scan,状态。,7.Select-IR-Scan,如果,TMS,为“,0”,(,TCK,上升沿触发),,TAP Controller,进入,Capture-IR,状态,将以指令寄存器作为操作对象;如果,TMS,为“,1”,(,TCK,上升沿触发),,TAP Controller,进入,Test-Logic Reset,状态。,8.Capture-IR,在,TCK,的上升沿,一个特定的逻辑序列将被装载到指令寄存,器中去。如果,TMS,为“,0”,(,TCK,上升沿触发),,TAP Controller,进,入,Shift IR,状态;如果,TMS,为“,1”,(,TCK,上升沿触发),,TAP,Controller,进入,Exit1-IR,状态。,9.Shift-IR,每一个,TCK,,在,TDI,和,TDO,之间的指令寄存器将从,TDI,接收一位数据,同时通过,TDO,输出一位数据。如果,TMS,为“,0”,(,TCK,上升沿触发),,TAP Controller,保持在,Shift-IR,状态; 如果,TMS,为“,1”,(,TCK,上升沿触发),,TAP Controller,进入到,Exit1-IR,状态。,假设指令寄存器的长度为,4,。如果,TMS,保持为,0,,在,4,个,TCK,时钟周期后,指令寄存器中原来的,4bit,长的特定逻辑序列(在,Capture-IR,状态中捕获)将从,TDO,输出来,用来判断操作是否正确;同时指令寄存器将获得从,TDI,输入的一个,4bit,长的新指令。,10.Update-IR,在这个状态中,在,Shift-IR,状态下输入的新指令将被用来更新,指令寄存器。,(,1,)初始化状态,图(,1,)表示了初始化状态,在测试状态下,芯片的外部输入和输出被隔离开了,芯片的输入和输出可以通过相应的边界扫描链来观察和控制。扫描链里的每个移位寄存器单元的数据是不确定的,数据序列是,XXXXXX,。要从,TDI,输入到测试芯片上的数据序列是:,101010.,同时要从,TDO,得到芯片相应管脚上的状态。,TAP Controller,从,Run-Test/Idle,状态经过,Select-DR-Scan,状态进入到,Capture-DR,状态,在一个,TCK,时钟的驱动下,芯片管脚上的信号状态全部被捕获到相应的边界扫描移位寄存器单元当中去,如图(,2,)所示。,在进入,Capture-DR,状态后,经过一个,TCK,时钟周期,现在扫描链中的数据序列变成了:,111000.,在数据捕获完成以后,从,Capture-DR,状态进入到,Shift-DR,状态。在,Shift-DR,状态中,我们将通过,6,个,TCK,时钟周期来把新的数据序列(,101010,)通过,TDI,输入到边界扫描链当中去;同时,将边界扫描链中捕获的数据序列(,111000,)通过,TDO,输出来。在进入到,Shift-DR,状态后,每经过一个,TCK,时钟驱动,边界扫描链从,TDO,输出一位数据;同时,从,TDI,接收一位新的数据。,(,2,),CAPTURE-DR,3,),SHIFT-DR,1 TCK,在,Shift-DR,状态下,,1,个,TCK,时钟周期后的扫描链的变化,(,4,),SHIFT-DR,2 TCK,在Shift-DR状态下,,2,个TCK时钟周期后的扫描链的变化,(,5,),SHIFT-DR,6 TCK,经过,6,个,TCK,以后,边界扫描链当中已经包含了新的数据序列,101010.,在,TDO,端,也接收到了在,Capture-DR,状态下捕获到的数据序列,111000.,虽然扫描链当中包含了新的数据序列:,101010,,但测试芯片的管脚上的状态还是保持为:,111000.,(,6,),UPDATE-DR,经过,1,个,TCK,时钟后,边界扫描链中的新数据序列将被加载到测试芯片的相应管脚上去,相应管脚上的状态序列从,111000,变为,101010.,2.5 FPGA,开发流程,EDA,开发流程大致可以分为五个步骤,:,一,.,设计输入:将电路系统以一定的表达方式输入计算机,有图形输,入和,HDL,文本输入两种。图形输入通常包括原理图输入,状态图,输入和波形图输入。,综合:由,EDA,工具的综合器完成,将设计输入即电路的,HDL,描,述进行编译优化转换和综合,最后获得门级电路的电路描述网表,文件。,即把软件形式的,HDL,描述与硬件结构相对应。,三,.,适配(布局布线):将综合器产生的网表文件配置于指定的目标,器件,FPGA/CPLD,中,产生最终下载文件。,仿真:也称模拟,包括功能仿真和时序仿真。前者检验所设计的,电路的逻辑功能是否符合设计要求,后者检验所设计的电路延时,是否符合设计要求,通常是在对目标芯片完成布局布线后进行。,五,.,下载:将适配后的下载文件,通过编程器或编程电缆向目标器件,下载,实现硬件设计。经过下载编程以后,,FPGA/CPLD,就变成,了设计者的专用集成电路芯片。,通常对,CPLD,的下载称为编程(,Program,),对的,FPGA,中的,SRAM,进行直接下载的方式称为配置(,configuration,)。,FPGA,的设计方法一般采用“,Topdown,”,自顶向下的设计方法。,VHDL,综合器,逻辑综合、优化,文本编辑器,图形编辑器,生成,VHDL,源程序,FPGA,布线,/,适配器,自动优化、布局、,/,适配优化,VHDL,仿真器,行为(行为级)仿真(综合之前),功能(,RTL,级)仿真(综合之后),时序(门级)仿真(适配之后),编程器,/,下载电缆,编程、下载,测试电路,硬件测试,C,、,ASM.,程序,CPU,指令,/,数据代码:,010010 100010 1100,软件程序编译器,COMPILER,VHDL/VERILOG.,程序,硬件描述语言,综合器,SYNTHESIZER,为,ASIC,设计提供的,电路网表文件,(,a,)软件语言设计目标流程,(,b,)硬件语言设计目标流程,编译器和综合器功能比较:,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!