1、绪绪 论论1集成逻辑器件的发展从20世纪50年代以来,由于半导体技术的飞速发展,集成器件的更新换代几乎以10年的周期跃进,发展进程可以粗略地用图0-1表示。图0-1 半导体集成器件的发展历程小规模集成电路(SSI)是资源密度仅几十门的集成逻辑门,如与门、或门、异或门或触发器等。中规模集成电路(MSI)是资源密度为几百门的标准功能模块,如计数器、寄存器、译码器、数据选择器。SSI、MSI的产量高、价格低,但当系统功能复杂时,需要的器件量大且类型复杂,构成的设备体积庞大,功耗增加。由于芯片和芯片、芯片和印制板之间的连接点、连接线比较多,出现故障的概率上升,器件的平均失效时间提前,系统的可靠性相应下
2、降。而且对于高频数字信号系统,印制板连线引起的干扰可能会严重影响系统运行。大规模、超大规模集成通用器件LSI、VLSI的资源密度在上千门至百万门之间,如存储器、单片微处理器、DSP数字信号处理器,嵌入式片上系统(System On Chip,SOC)等。这些通用器件的硬件功能强大,但逻辑功能固定不可更改。对于功能千变万化的数字系统,可能硬件资源不能充分利用或仍需要多片不同的器件实现。因此,在很多控制复杂的场合,采用微处理器的软硬件结合方案或专用集成电路ASIC的全硬件方案实现。微处理器以软件程序和外围电路配合,可以在有限的硬件资源基础上辅以广泛的软件支持来实现复杂的控制功能。微处理器硬件结构变
3、化不大,软件程序修改方便,所以初期开发时承担的风险较小。但微处理器系统的处理速度受到软件程序执行时间的限制,同时有抗干扰能力和保密性较差等问题。专用集成电路(ASIC)是专为满足某种特殊需要设计和生产的单片集成器件。一个复杂的数字系统只要几片甚至一片ASIC即可实现,因而硬件资源利用率高,制成的设备体积小,重量轻,功耗低。由于ASIC是全硬件电路,处理速度快,抗干扰能力强且保密性好。但ASIC的功能设计专用性很强,应用面相应很窄。ASIC的设计过程一般是由用户在个人计算机或工作站平台上开发,而制作ASIC的方法可粗略分为两类:一类是掩膜法,即向集成电路厂商定制流片;另一类则是现场编程法,即由用
4、户利用PLD自行制作。前者要求系统设计非常成熟,且研究开发初期投资费用巨大,设计周期较长,但产品投产后的成本较低,适用于芯片需求量很大的场合。后者设计、重构方便,开发时间短,初期费用低,一个不太大的系统可能只需数天即可完成,但生产成本略高,适用于产量不大,升级换代迅速的产品。目前电子产品已渗透到几乎所有的消费领域。针对不同的市场产品需求,器件的专用性越来越强,而产品的升级换代速率快使专用器件的使用周期不断缩短。半导体产业界为降低器件制造成本,希望采用标准化技术生产通用器件,因而推出了超大规模通用可编程逻辑器件(Programmable Logic Device,PLD),以解决市场需求专用化与
5、器件功能标准化的矛盾。可编程逻辑器件的出现使数字系统设计从电路级深入到了芯片级,系统的可靠性因此大为提高。可编程器件允许用户在印制线路板上编辑和修改器件逻辑功能,使硬件功能的重构与软件设计一样方便,用户可以在不修改硬件电路的条件下重构系统功能升级产品性能。因此,产品的开发周期大大缩短,开发成本显著下降。目前,可编程器件的工作频率和片上逻辑资源都以极快的速度发展,工作频率可达数百兆赫兹,片上逻辑资源已达数百万门,可以嵌入功能强大的32位微处理器构成片上可编程系统SOPC(System On Programmable Chip)。2可编程逻辑器件简介目前主要的PLD制造商有Altera公司、Xil
6、inx公司、AMD公司、Lattice公司和Actel公司等。PLD的内部资源结构主要分为阵列型和单元型;互连线方式分为集总型和分布型;编程信息存储主要依赖于EEMOS或RAM,每个存储元载入编程配置数据中的一位。根据逻辑资源结构、互连方式和编程工艺不同,可编程器件一般可分为复杂的可编程器件(Complex Programmable Logic Device,CPLD)和现场可编程门阵列(Field Programmable Gate Array,FPGA)。CPLD的基本结构一般基于含可编程与或阵列和触发器的宏逻辑块(Logic Array Block,LAB)。每个逻辑块有数十个输入端,十
7、几个输出端。逻辑块之间的互连一般采用集总(确定)连线方式,通过集中在一个全局布线区PIA的可编程互连线结构组成更大规模的PLD。集总(确定)型互连方式的连线资源采用长度确定的金属线串联各逻辑单元。由于各逻辑块间的信号传递路径固定,与布局无关,系统的信号延迟时间可预测。CPLD具有较强的时序控制能力,适宜实现控制密集型的数字系统。CPLD的I/O端口通过端口控制块(I/O Control Block,IOC)可以与任意的逻辑块相连。图0-2是Altera公司MAX系列CPLD的内部结构框图。CPLD的逻辑资源密度较相同芯片面积的FPGA低,配置采用在系统可编程(In System Program
8、mable)技术,编程数据由电可擦除只读存储器EEPROM保存,芯片失电后配置数据不会丢失。图0-2 CPLD的内部结构框图FPGA以基于查找表结构的可编程逻辑元构成庞大的阵列。每个逻辑元的规模不大,输入端不足10个,输出仅12个。可编程的连线分布在逻辑元与逻辑元之间的布线区。分布(统计)型互连方式的连线资源是分段的,利用长度不同的金属线沿传输路径连接逻辑元。片内互连方式灵活,可人为干预,但信号路径与系统布局有关,布线延时是累加的,不可预测。FPGA的集成度更高,资源更丰富,适于实现运算能力较强的数据密集型数字系统。FPGA内部阵列的配置一般采用在电路可重构(In Circuit Re-con
9、fig)技术,编程数据由静态存储器SRAM保存。当FPGA器件失电时,SRAM中的配置数据消失。FLEX10K、Cyclone、Cyclone II都是Altera公司推出的FPGA系列器件,三者的资源特性如表0-1表0-3所示。FLEX10K采用钢铝布线的先进CMOS工艺,具有低耗高速特性。Cyclone和Cyclone 器件采用了1.5 V、0.13 m全铜的SRAM工艺。Cyclone具有中等容量的片内存储器,支持低、中速的I/O接口和存储器接口。Cyclone 器件可通过内嵌的专用接口电路实现与双数据率(DDR)SDRAM和FCRAM及单数据速率(SDR)SDRAM器件进行快速可靠的数
10、据交换,最高速率可达668 Mb/s。内置的增强型锁相环,可提供高性能的时钟管理功能,如频率合成、可编程相移、片外时钟输出、可编程占空比、失锁检测及高速差分时钟信号的输入和输出等。3FLEX10KE的内部结构FLEX10KE和FLEX10K的内部结构类似,包含嵌入式阵列块(Embedded Array Block,EAB),逻辑阵列块(Logic Array Block,LAB),由列互连(Column Interconnect)、行互连(Row Interconnect)、局部互连(Local Interconnect)构成的快速互连通道(Fast Interconnect Track,FI
11、T)和输入/输出单元(I/O Element,IOE)4个主要部分,原理结构如图0-3所示。片内由LAB构成阵列,每行的中间有一个EAB。每个LAB包含若干逻辑元(Logic Element,LE)。LAB和EAB由快速通道连接,IOE位于快速通道连线的行和列的两端,为外部封装引脚与LAB、EAB提供了可编程的接口。另外,器件具有6个专用输入端口,其中4个为全局信号端,可通过专用的布线通道控制片内触发器,具有比快速通道更短的信号延迟和更小的失真偏移。图0-3 FLEX10KE内部结构框图1)嵌入式阵列块EAB每个EAB可提供100600个有效门用以单独或组合实现乘法器、微控制器、状态机等复杂逻
12、辑,也可构造RAM、ROM、FIFO或双口RAM等各种存储器实现诸如数字信号处理、微处理器、数据传输等逻辑系统。EAB的结构是具有输入/输出寄存功能的变形RAM。一个FPGA芯片中所有的EAB可以级联成一个RAM。Altera的PLD开发软件Quartus 能够自动组合EAB实现设计者指定的存储器。EAB的输入、输出信号有专用时钟(Dedicated Clock)、专用输入与全局信号(Dedicated Inputs&Global Signals)、数据总线(date)、读地址总线(rdaddress)、写地址总线(wraddress)、外部时钟使能(outclocken)、内部时钟使能(in
13、clocken)、读使能控制(rden)、写使能控制(wren)等。EAB对时钟驱动和控制提供了灵活的选项,EAB的输入和输出可以使用不同的时钟。每个EAB的输出可以同时驱动两个行互连通道和两个列互连通道。寄存器能被独立插入EAB数据总线、地址总线或使能控制线。2)逻辑阵列块LABLAB可实现普通逻辑功能,如计数器、加法器、状态机、多路选择器等。FLEX10K的LAB结构如图0-4所示。每个LAB包含8个LE、一些进位链及级联链、控制信号选择器和局部互连结构。8个LE可以构成一个中规模的逻辑块,如8位计数器、地址译码器和状态机。多个LAB组合起来可以构成更大的逻辑块。图0-4 LAB内部结构示
14、意图每个LAB为8个LE提供了4个可编程的控制信号。其中两个可作为时钟,另两个用作清除/置位控制(Clear/Preset Logic)。LAB时钟和清除/置位信号可以由器件的专用时钟输入信号、I/O信号、全局信号或经过LAB局部互连的内部逻辑信号直接驱动。全局控制信号由LAB中的一个或多个LE形成,因其在器件内部传输时失真很小,通常作为全局时钟及异步控制信号的首选。3)逻辑元LE每个LE含有一个4输入查找表(Look-Up Table,LUT)、一个可编程寄存器(Programmable Register)、一个进位链(Carry Chain)和级联链(Cascade Chain)及若干选择
15、信号的多路选择器MUX,内部结构如图0-5所示。LUT通过数据存储表方式可实现一个4变量输入的快速逻辑发生器。可编程寄存器可以配置成D、T、JK、RS等激励功能。寄存器的时钟和清除/置位控制可由全局信号、I/O信号或任何内部逻辑信号驱动。如果将寄存器旁路,由LUT直接驱动LE输出,可实现组合逻辑函数。图0-5 LE逻辑结构示意图LUT的4个输入date1date4来自LAB的局部互连。每个LE另外还有7个输入:局部控制信号labctrl1labctrl4,芯片级复位(Chip Wide Reset),来自前级进位链输入和级联链输入。芯片级复位特性在设计输入时建立,该信号有效时使器件内所有寄存器
16、复位或置位。LE有两个驱动互连通道的输出信号,一个驱动局部互连(LAB Local Interconnect),另一个驱动行或列的快速通道互连(Fast Track Interconnect),两个信号可以分别单独控制。例如,可以利用LUT驱动局部互连,而以触发器驱动快速互连。LE可编程寄存器的清除/置位控制逻辑(Clear/Preset Logic)有6种模式:异步清除(Asynchronous Clear)、异步置位(Asynchronous Preset)、异步清除及置位(Asynchronous Clear and Preset)、带清除的异步加载(Asynchronous Load
17、With Clear)、带置位的异步加载(Asynchronous Load With Preset)、无清除或置位的异步加载(Asynchronous Load Without Clear or Preset)。可编程寄存器清除与置位功能由输入到LE的labctrl1、labctrl2和Chip Wide Reset信号控制,data3输入异步加载数据。其中Chip Wide Reset信号在任何清除/置位模式中都优先控制,除异步置位模式使寄存器置位外,其他模式都使寄存器清除。Quartus 的编译器能够自动选择最优的信号实现清除/置位控制,并会将未用的控制端置无效电平。LE的工作模式有4种
18、:标准模式(Normal Mode)、运算模式(Arithmetic Mode)、加/减计数模式(Up/Down Counter Mode)和可清除计数模式(Clearable Counter Mode),每种模式使用的LE资源不同。Quartus 的编译器能为计数器、加法器、乘法器等一般逻辑功能块或lpm参数化逻辑功能块自动选择合适的工作模式。设计者也可根据需要指定LE的工作模式以优化系统性能。标准模式的结构如图0-6所示,其中LUT和寄存器可以分别单独使用,适合于一般的逻辑应用和各种译码功能。LUT的4个输入中3个来自data1、date2和data4,另一个由Quartus的编译器从da
19、ta3或进位链中选择。LUT的输出信号可以与级联输入相与后通过级联输出形成级联链,以发挥级联优势。LE的date4输入也可以直接驱动寄存器,使LUT实现3输入的组合逻辑函数。图0-6 LE标准工作模式逻辑结构运算模式结构提供两个3输入LUT。其中一个实现3输入组合逻辑函数,另一个形成进位链,适合产生加法器、累加器和比较器等逻辑功能。例如图0-7中,LE配置成一个全加器。三个加数输入中data1、data2来自LAB局部互连,Carry-In来自低位LE的进位链。两个LUT中一个直接通过LE-Out输出加运算的和,另一个输出Carry-Out通过进位链送往高位的LE。图0-7 LE运算模式逻辑结
20、构图0-8是由n个全加运算模式的LE串接成的n位加法器。加/减计数模式提供计数器使能、时钟使能、加/减控制和数据加载选择。这些控制信号是来自LAB局部互连的数据输入或进位输入以及可编程寄存器的输出反馈信号。LE中两个3输入LUT,一个产生计数数据,一个产生快速进位。多路选择器可以提供同步加载数据,也可以不用LUT资源,借助寄存器的清除和置位功能异步加载数据。可清除计数模式类似于加/减计数模式,但没有加/减计数选择信号,增加同步清除控制信号,所以支持同步清除功能而无加/减控制特性。图0-8 n位加法器结构示意图4)输入/输出单元IOEIOE单元可对FPGA封装的I/O端口进行组态,包含一个双向I
21、/O缓冲器、一个既可编程为输入寄存器也可编程为输出寄存器的触发器、一个独立的三态输出使能控制、若干多路选择器和漏极开路配置选项(Open Drain Option)等。每个IOE控制FPGA的一个封装引脚组构成输入、输出或是双向端口。I/O端口可被组态配置成输入(三态缓冲器禁止)、输出(三态缓冲器选通)或双向端口(三态缓冲器由使能控制)。配置成输入端口时,建立时间小于1.6 s,可以选择端口输入信号是直接还是经寄存后向LE传送。配置成输出端口时,建立时间小于5.3 s,可选择信号摆幅大小、三态或漏极开路输出形式。每个IOE的时钟脉冲、清除控制、时钟使能和输出使能信号由来自I/O控制网络的外部控
22、制总线提供。外部控制总线使用高速驱动器以使信号失真最小。当IOE配置为输入功能时,可以驱动两个独立的行通道或两个独立的列通道;当配置为输出功能时,可以由两个多路选择器分别选择不同的行信号或不同的列信号。每个行通道最多可以连接8个IOE,每个列通道的两端各连接2个IOE,如图0-9所示。图0-9 IOE的互连结构示意结构5)进位链和级联链器件内部信号的互连和器件I/O引出端之间信号的互连由快速通道(FastTrack)连线提供。如图0-10所示,FastTrack互连是一系列贯通器件水平行和垂直列的连续式布线通道,每条行互连承载进出这一行中LAB的信号,驱动I/O引出端或馈送信号到其他的LAB。
23、列互连在列和I/O引出端之间馈送信号。每条行通道可以通过多路选择器从一个LE输出和3条列输出中选择一个信号传输,连接到LE的多路选择器可以实现列通道信号驱动行通道。每个LAB列由一个专用列互连承载。列互连信号可以来自LE的输出或I/O引出端的输入。连接IOE或EAB的每一个行通道信号都可以驱动一个特定的列通道。列互连可以驱动I/O引出端或把信号通过行互连馈送到其他LAB。为提高布通率,行互连包括全长直通线和半长线。直通线连接一行中所有的LAB,而半长线连接一行中一半的LAB。EAB可由一行中的左半长线或直通线驱动,输出驱动直通线。图0-9也表示了FLEX10KE的行、列、局部互连以及进位链、级
24、联链与相邻LAB、EAB之间的互连关系,每个LAB的标识中字母表示行序、数字表示列序。图0-10 LAB的行、列互连结构示意图LE的进位链和级联链是两种类型的专用高速数据通道,可以不通过局部互连通道直接连接同一行中所有相邻的LAB及其所有LE,因此可有效提高信号传输速度,但会影响布局布线的灵活性,降低逻辑资源利用率。进位链在LE之间提供快速(0.2 ns左右)的向前进位功能,可以实现快速加法器、计数器和任意位数比较器。当进位超出一个LAB的范围时,采用半长线构成长进位链。长进位链跳跃交错连接一行中两个间隔相邻的LAB,但不能跨越每行中间的EAB。长进位链是成对存在的,一条连接奇数序的LAB,另
25、一条连接偶数序LAB。级联链采用与逻辑或者利用摩根反演率获得的或逻辑连接相邻LE的输出,如图0-11所示。级联链可以在最小延时的情况下构成多输入逻辑函数,实现高速多信号扇入(Fan-In)功能。当相邻的LUT同时并行完成函数运算时,级联链可以串接各LUT运算的中间信号。每增加1个LE,函数的输入变量可以增加4个,但信号延时大约增加0.7 ns。当级联链多于8级时,也采用半长线构成长级联链在行间跳跃交错连接LAB。同长进位链一样,每行的长级联链也有一对,各被EAB分为两段。级联链串接相邻LE形成的多扇入结构如图0-11所示。n个LE通过与逻辑级联或者或逻辑级联可以实现4n个变量的逻辑函数。LE的
26、延时约1.6 s,级联链延时约0.7 s,实现一个n级级联逻辑函数的总延迟时间约为1.6+0.7n(s)。图0-11 级联链形成的多扇入结构Quartus 的编译器在进行设计处理时会为一般逻辑功能块或lpm参数化逻辑功能块自动生成进位链或级联链,设计者也可在设计输入期间进行人工干预。4数字系统设计方法发展早期的数字系统多采用试凑法设计,没有固定的套路可循。设计人员在产品研发过程中,首先要根据系统要求选择合适的集成芯片。设计者主要凭经验进行设计,需要考虑器件间的级联和扩展。对把握不大的设计方案要在面包板上连接电路做单元小样试验。硬件试验费时费力,往往因接线紊乱和接触不良带来各类麻烦。所用器件越多
27、,电路连接难度越大。当系统复杂到一定程度,硬件试验可能无法进行,系统的不可靠性因而大为增加。如果试验通过,需要画电路设计图纸,制作印刷电路板,焊接芯片实现系统并调试。如果发现设计有误或需要进行功能调整,必须重新设计印制板。所以产品开发周期很长,初成本也较高,互通利用和修改调整都很不方便。随着计算机技术的发展,数字系统设计的复杂过程可以通过计算机辅助实现。EDA技术使得电子系统的分析设计手段有了深刻的变革,电路设计、模拟仿真等烦琐的工作都可以脱离具体对象,在构筑于计算机平台上的虚拟环境中自动实现。由于计算机的强大运算处理能力,采用EDA技术设计数字系统不需考虑逻辑化简问题,硬件试验也被功能仿真所
28、取代。设计者只要将根据系统功能要求在开发平台中建立起系统模型,然后输入合适的测试码或测试序列,EDA软件就会自动对系统模型进行测试,并以波形图或文本方式给出测试结果供设计者分析系统功能是否符合预期的设计要求。如需要修改设计,通常只需对设计文件作适当调整,并无牵一发动全身之虑。EDA技术使数字系统的设计周期显著缩短,设计流程大为简化,生产成本有效降低。5可编程逻辑器件的设计开发可编程逻辑器件的设计开发依赖于计算机技术的辅助,利用EDA软件平台和编程工具实现。各PLD的制造商都推出了支持本公司PLD产品的软件开发平台,如Altera公司的MAX_Plus和Quartus;Xilinx公司的Fund
29、ation和ISE;Lattice公司的isp-Expert System等。各公司的产品不兼容,软件操作界面也完全不同,但是操作平台的基本要素相似,主要由编辑器(Editor)、编译器(Compiler)、仿真器(Simulator)、适配器(Fit Design)和编程器(Programmer)构成。PLD设计开发主要分源文件编辑、源文件综合编译、逻辑功能仿真、器件资源适配、下载编程等几个步骤。设计开发一般以项目(Project)形式进行,软件平台的所有操作都面向当前项目。用户可以在开发平台上用逻辑图或硬件描述语言设计系统,并进行逻辑仿真。设计完成后由计算机进行器件资源匹配,产生PLD器件
30、内部的布局布线编程文件,下载入器件即实现所设计的系统。如果系统在运行中发现问题或希望修改设计要求,可以重新对器件进行配置重构。1)设计准备设计人员首先根据任务要求进行设计分析,按系统复杂程度划分功能单元。然后进行方案论证,权衡系统工作速度、PLD器件资源、产品成本及连线的布通率等,选择合适的设计方案和性价比高的PLD器件。设计以项目工程的形式进行,新建项目时可指定项目的存放路径和目录、设置工程名称以及最高层设计实体的名称、指定目标器件的系列和型号,最后工程向导会给出设置报告。2)设计输入设计人员在编辑器中建立源文件阐述设计要求。源文件可以是原理图方式或文本方式。原理图方式是用逻辑符号组构电路,
31、对于具有数字逻辑和数字电路基础的设计者而言,图形设计输入的方法类似于画电路原理图,容易理解与掌握。开发软件平台除提供功能强大的各类器件库外(如逻辑门、触发器、组合功能部件、时序功能部件、存储器等等),还允许用户自己建立特殊的器件符号。文本方式是采用硬件描述语言HDL(Hardware Description Language)描述电路的输入、输出关系及逻辑功能。硬件描述语言有多种,普通的有支持逻辑方程、真值表、状态机等简单描述的ABEL、CUR、LFM和AHDL(Altera HDL)。VHDL和Veriogel HDL语言是两个IEEE标准的支持行为描述的硬件描述语言,具有很强的逻辑描述和仿
32、真功能。采用硬件描述语言设计数字系统,输入效率高,便于实现大规模系统的设计;设计人员可以不需要熟悉系统的底层电路和PLD的内部结构,通过逻辑描述就能确立设计方案的可行性;不同输入形式的设计文件可相互转换,可重复利用。3)分析与综合分析与综合是PLD开发软件对设计文件进行处理的第一步骤。首先由编译器分析检验设计输入是否符合规范,包括逻辑规则检验、网络连接检验、信号来源和流向检验等等。比如图形设计文件中信号线有无漏接、信号有无双重来源,元件端口属性是否匹配;文本设计文件中有无关键字、逻辑语法或结构等错误。检验通过后编译器对设计文件进行优化和综合,化简逻辑方程式以减少设计占用的资源,并综合成一个网表
33、文件形成系统逻辑模型。4)功能仿真(Simulator)功能仿真可验证系统模型是否满足设计功能要求。仿真的测试码或测试序列可以通过建立矢量波形文件、矢量文件和矢量表输出文件设置。其中矢量波形文件以设计文件的输入、输出时序波形直观显示设计对象的逻辑关系,与数字电子技术基础中的时序波形图相似,适用于具有重复状态变化特性的逻辑函数。在波形编辑器中,一般可以选择需要观察的输入、输出节点,对输入信号赋值、改变信号状态的显示方式等。只要给定各测试输入信号的时序关系或逻辑电平,仿真器就能以信号波形图或仿真报告文件的形式给出逻辑仿真结果甚至信号的传输时间供设计者分析。如果逻辑功能不符合设计要求,设计者可以修改
34、设计直至要求满足。5)时序仿真 由于不同器件的不同布局对系统信号延时有不同的影响,因此在对器件适配完成后可以进行时序仿真,分析信号传输延时,检查和消除竞争冒险现象,估计系统设计性能。6)编译适配编译器将经过分析综合后的优化逻辑关系与器件中逻辑单元和输入、输出单元适配,把设计分割成多个逻辑小块映射到器件各相应的单元,确定各单元的组态和互连关系。当设计超过一片芯片的资源容量时可以映射到同一系列的多片器件。逻辑分割可以由开发软件全自动完成,也可由用户部分或全部进行人工干预和控制,使器件的数量和相互间的信号引出最少。由于FPGA或CPLD的I/O端口属性可以被任意指定为输入、输出或双向端口,所以若对器
35、件引脚没有约束时,可以由编译器根据信号路径、扇出能力等优化原则选择设计端口的FPGA封装引脚。如果用户系统的电路连接关系已经确定,目标器件的引脚分配就受到用户电路的硬件限制,必须指定设计文件各输入、输出端口的引脚编号,即干预IOC或IOB的组态。完成适配后,编译器以最优方式对PLD器件进行布局布线,将器件、逻辑单元和引脚分配信息转换为该器件的编程图像,产生报告文件及器件编程信息的数据文件。PLD器件的编程文件为熔丝图数据形式,FPGA器件的编程文件为位流数据形式。器件资源使用率在50%以下的一般绝对能通过适配布局(除非引脚分配有误),而使用率在80%以上的适配布局就难以通过,所以器件资源使用率
36、在70%80%之间比较合适。设计人员可以检查适配布局的结果,根据报告修改源文件的逻辑错误,或在器件底层编辑器中修改物理层的局部布局、布线,直至适配正确通过并符合布局要求。7)器件编程配置PLD设计开发的最后步骤就是对目标器件编程配置。编程配置需要满足器件生产厂家规定的条件,比如编程电压、编程模式、编程时序和编程算法等。某些PLD器件需要专用的编程器完成配置,而采用ISP或ICR技术的CPLD和FPGA只需一条编程下载电缆,即可从计算机的通信接口下载数据文件。编程电缆必须配有符合编程要求的接口电路,将计算机输出的编程数据流传输给可编程器件。编程时目标器件必须上电,编程器先检测编程对象,建立对话联系后才输出编程数据文件,完成配置后进行数据校验。进入配置模式后,可编程器件的所有I/O端口呈高阻状态,与用户目标系统中的电路脱离;完成配置后,器件自动进入工作状态,I/O端口呈配置后要求的特性。对于具有BST边界扫描能力(Bandary-Scan Teating)和在线编程能力的PLD器件,编程配置过程极其简便。