基于FPGA的数字电路系统设计952_第1页
基于FPGA的数字电路系统设计952_第2页
基于FPGA的数字电路系统设计952_第3页
基于FPGA的数字电路系统设计952_第4页
基于FPGA的数字电路系统设计952_第5页
已阅读5页,还剩947页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

绪论

1.集成逻辑器件的发展

从20世纪50年代以来,由于半导体技术的飞速发展,集成器件的更新换代几乎以10年的周期跃进,发展进程可以粗略地用图0-1表示。图0-1半导体集成器件的发展历程小规模集成电路(SSI)是资源密度仅几十门的集成逻辑门,如与门、或门、异或门或触发器等。中规模集成电路(MSI)是资源密度为几百门的标准功能模块,如计数器、寄存器、译码器、数据选择器。SSI、MSI的产量高、价格低,但当系统功能复杂时,需要的器件量大且类型复杂,构成的设备体积庞大,功耗增加。由于芯片和芯片、芯片和印制板之间的连接点、连接线比较多,出现故障的概率上升,器件的平均失效时间提前,系统的可靠性相应下降。而且对于高频数字信号系统,印制板连线引起的干扰可能会严重影响系统运行。

大规模、超大规模集成通用器件LSI、VLSI的资源密度在上千门至百万门之间,如存储器、单片微处理器、DSP数字信号处理器,嵌入式片上系统(SystemOnChip,SOC)等。这些通用器件的硬件功能强大,但逻辑功能固定不可更改。对于功能千变万化的数字系统,可能硬件资源不能充分利用或仍需要多片不同的器件实现。因此,在很多控制复杂的场合,采用微处理器的软硬件结合方案或专用集成电路ASIC的全硬件方案实现。微处理器以软件程序和外围电路配合,可以在有限的硬件资源基础上辅以广泛的软件支持来实现复杂的控制功能。微处理器硬件结构变化不大,软件程序修改方便,所以初期开发时承担的风险较小。但微处理器系统的处理速度受到软件程序执行时间的限制,同时有抗干扰能力和保密性较差等问题。

专用集成电路(ASIC)是专为满足某种特殊需要设计和生产的单片集成器件。一个复杂的数字系统只要几片甚至一片ASIC即可实现,因而硬件资源利用率高,制成的设备体积小,重量轻,功耗低。由于ASIC是全硬件电路,处理速度快,抗干扰能力强且保密性好。但ASIC的功能设计专用性很强,应用面相应很窄。

ASIC的设计过程一般是由用户在个人计算机或工作站平台上开发,而制作ASIC的方法可粗略分为两类:一类是掩膜法,即向集成电路厂商定制流片;另一类则是现场编程法,即由用户利用PLD自行制作。前者要求系统设计非常成熟,且研究开发初期投资费用巨大,设计周期较长,但产品投产后的成本较低,适用于芯片需求量很大的场合。后者设计、重构方便,开发时间短,初期费用低,一个不太大的系统可能只需数天即可完成,但生产成本略高,适用于产量不大,升级换代迅速的产品。目前电子产品已渗透到几乎所有的消费领域。针对不同的市场产品需求,器件的专用性越来越强,而产品的升级换代速率快使专用器件的使用周期不断缩短。半导体产业界为降低器件制造成本,希望采用标准化技术生产通用器件,因而推出了超大规模通用可编程逻辑器件(ProgrammableLogicDevice,PLD),以解决市场需求专用化与器件功能标准化的

矛盾。

可编程逻辑器件的出现使数字系统设计从电路级深入到了芯片级,系统的可靠性因此大为提高。可编程器件允许用户在印制线路板上编辑和修改器件逻辑功能,使硬件功能的重构与软件设计一样方便,用户可以在不修改硬件电路的条件下重构系统功能升级产品性能。因此,产品的开发周期大大缩短,开发成本显著下降。目前,可编程器件的工作频率和片上逻辑资源都以极快的速度发展,工作频率可达数百兆赫兹,片上逻辑资源已达数百万门,可以嵌入功能强大的32位微处理器构成片上可编程系统SOPC

(SystemOnProgrammableChip)。

2.可编程逻辑器件简介

目前主要的PLD制造商有Altera公司、Xilinx公司、AMD公司、Lattice公司和Actel公司等。PLD的内部资源结构主要分为阵列型和单元型;互连线方式分为集总型和分布型;编程信息存储主要依赖于EEMOS或RAM,每个存储元载入编程配置数据中的一位。根据逻辑资源结构、互连方式和编程工艺不同,可编程器件一般可分为复杂的可编程器件(ComplexProgrammableLogicDevice,CPLD)和现场可编程门阵列(FieldProgrammableGateArray,FPGA)。

CPLD的基本结构一般基于含可编程与—或阵列和触发器的宏逻辑块(LogicArrayBlock,LAB)。每个逻辑块有数十个输入端,十几个输出端。逻辑块之间的互连一般采用集总(确定)连线方式,通过集中在一个全局布线区PIA的可编程互连线结构组成更大规模的PLD。集总(确定)型互连方式的连线资源采用长度确定的金属线串联各逻辑单元。由于各逻辑块间的信号传递路径固定,与布局无关,系统的信号延迟时间可预测。CPLD具有较强的时序控制能力,适宜实现控制密集型的数字系统。

CPLD的I/O端口通过端口控制块(I/OControlBlock,IOC)可以与任意的逻辑块相连。图0-2是Altera公司MAX系列CPLD的内部结构框图。CPLD的逻辑资源密度较相同芯片面积的FPGA低,配置采用在系统可编程(InSystemProgrammable)技术,编程数据由电可擦除只读存储器EEPROM保存,芯片失电后配置数据不会丢失。图0-2CPLD的内部结构框图

FPGA以基于查找表结构的可编程逻辑元构成庞大的阵列。每个逻辑元的规模不大,输入端不足10个,输出仅1~2个。可编程的连线分布在逻辑元与逻辑元之间的布线区。分布(统计)型互连方式的连线资源是分段的,利用长度不同的金属线沿传输路径连接逻辑元。片内互连方式灵活,可人为干预,但信号路径与系统布局有关,布线延时是累加的,不可预测。FPGA的集成度更高,资源更丰富,适于实现运算能力较强的数据密集型数字系统。FPGA内部阵列的配置一般采用在电路可重构(InCircuitRe-config)技术,编程数据由静态存储器SRAM保存。当FPGA器件失电时,SRAM中的配置数据消失。

FLEX10K、Cyclone、CycloneII都是Altera公司推出的FPGA系列器件,三者的资源特性如表0-1~表0-3所示。FLEX10K采用钢铝布线的先进CMOS工艺,具有低耗高速特性。Cyclone和CycloneⅡ器件采用了1.5V、0.13μm全铜的SRAM工艺。Cyclone具有中等容量的片内存储器,支持低、中速的I/O接口和存储器接口。CycloneⅡ器件可通过内嵌的专用接口电路实现与双数据率(DDR)SDRAM和FCRAM及单数据速率(SDR)SDRAM器件进行快速可靠的数据交换,最高速率可达668Mb/s。内置的增强型锁相环,可提供高性能的时钟管理功能,如频率合成、可编程相移、片外时钟输出、可编程占空比、失锁检测及高速差分时钟信号的输入和输出等。

3.FLEX10KE的内部结构

FLEX10KE和FLEX10K的内部结构类似,包含嵌入式阵列块(EmbeddedArrayBlock,EAB),逻辑阵列块(LogicArrayBlock,LAB),由列互连(ColumnInterconnect)、行互连(RowInterconnect)、局部互连(LocalInterconnect)构成的快速互连通道(FastInterconnectTrack,FIT)和输入/输出单元(I/OElement,IOE)4个主要部分,原理结构如图0-3所示。片内由LAB构成阵列,每行的中间有一个EAB。每个LAB包含若干逻辑元(LogicElement,LE)。

LAB和EAB由快速通道连接,IOE位于快速通道连线的行和列的两端,为外部封装引脚与LAB、EAB提供了可编程的接口。另外,器件具有6个专用输入端口,其中4个为全局信号端,可通过专用的布线通道控制片内触发器,具有比快速通道更短的信号延迟和更小的失真偏移。图0-3FLEX10KE内部结构框图

1)嵌入式阵列块EAB

每个EAB可提供100~600个有效门用以单独或组合实现乘法器、微控制器、状态机等复杂逻辑,也可构造RAM、ROM、FIFO或双口RAM等各种存储器实现诸如数字信号处理、微处理器、数据传输等逻辑系统。

EAB的结构是具有输入/输出寄存功能的变形RAM。一个FPGA芯片中所有的EAB可以级联成一个RAM。Altera的PLD开发软件QuartusⅡ能够自动组合EAB实现设计者指定的存储器。EAB的输入、输出信号有专用时钟(DedicatedClock)、专用输入与全局信号(DedicatedInputs&GlobalSignals)、数据总线(date)、读地址总线(rdaddress)、写地址总线(wraddress)、外部时钟使能(outclocken)、内部时钟使能(inclocken)、读使能控制(rden)、写使能控制(wren)等。

EAB对时钟驱动和控制提供了灵活的选项,EAB的输入和输出可以使用不同的时钟。每个EAB的输出可以同时驱动两个行互连通道和两个列互连通道。寄存器能被独立插入EAB数据总线、地址总线或使能控制线。

2)逻辑阵列块LAB

LAB可实现普通逻辑功能,如计数器、加法器、状态机、多路选择器等。FLEX10K的LAB结构如图0-4所示。每个LAB包含8个LE、一些进位链及级联链、控制信号选择器和局部互连结构。8个LE可以构成一个中规模的逻辑块,如8位计数器、地址译码器和状态机。多个LAB组合起来可以构成更大的逻辑块。图0-4LAB内部结构示意图每个LAB为8个LE提供了4个可编程的控制信号。其中两个可作为时钟,另两个用作清除/置位控制(Clear/PresetLogic)。LAB时钟和清除/置位信号可以由器件的专用时钟输入信号、I/O信号、全局信号或经过LAB局部互连的内部逻辑信号直接驱动。全局控制信号由LAB中的一个或多个LE形成,因其在器件内部传输时失真很小,通常作为全局时钟及异步控制信号的首选。

3)逻辑元LE

每个LE含有一个4输入查找表(Look-UpTable,LUT)、一个可编程寄存器(ProgrammableRegister)、一个进位链(CarryChain)和级联链(CascadeChain)及若干选择信号的多路选择器MUX,内部结构如图0-5所示。LUT通过数据存储表方式可实现一个4变量输入的快速逻辑发生器。可编程寄存器可以配置成D、T、JK、RS等激励功能。寄存器的时钟和清除/置位控制可由全局信号、I/O信号或任何内部逻辑信号驱动。如果将寄存器旁路,由LUT直接驱动LE输出,可实现组合逻辑函数。图0-5LE逻辑结构示意图

LUT的4个输入date1~date4来自LAB的局部互连。每个LE另外还有7个输入:局部控制信号labctrl1~labctrl4,芯片级复位(ChipWideReset),来自前级进位链输入和级联链输入。芯片级复位特性在设计输入时建立,该信号有效时使器件内所有寄存器复位或置位。

LE有两个驱动互连通道的输出信号,一个驱动局部互连(LABLocalInterconnect),另一个驱动行或列的快速通道互连(FastTrackInterconnect),两个信号可以分别单独控制。例如,可以利用LUT驱动局部互连,而以触发器驱动快速互连。

LE可编程寄存器的清除/置位控制逻辑(Clear/PresetLogic)有6种模式:异步清除(AsynchronousClear)、异步置位(AsynchronousPreset)、异步清除及置位(AsynchronousClearandPreset)、带清除的异步加载(AsynchronousLoadWithClear)、带置位的异步加载(AsynchronousLoadWithPreset)、无清除或置位的异步加载(AsynchronousLoadWithoutClearorPreset)。可编程寄存器清除与置位功能由输入到LE的labctrl1、labctrl2和ChipWideReset信号控制,data3输入异步加载数据。其中ChipWideReset信号在任何清除/置位模式中都优先控制,除异步置位模式使寄存器置位外,其他模式都使寄存器清除。QuartusⅡ的编译器能够自动选择最优的信号实现清除/置位控制,并会将未用的控制端置无效电平。

LE的工作模式有4种:标准模式(NormalMode)、运算模式(ArithmeticMode)、加/减计数模式(Up/DownCounterMode)和可清除计数模式(ClearableCounterMode),每种模式使用的LE资源不同。QuartusⅡ的编译器能为计数器、加法器、乘法器等一般逻辑功能块或lpm参数化逻辑功能块自动选择合适的工作模式。设计者也可根据需要指定LE的工作模式以优化系统性能。标准模式的结构如图0-6所示,其中LUT和寄存器可以分别单独使用,适合于一般的逻辑应用和各种译码功能。LUT的4个输入中3个来自data1、date2和data4,另一个由QuartusⅡ的编译器从data3或进位链中选择。LUT的输出信号可以与级联输入相与后通过级联输出形成级联链,以发挥级联优势。LE的date4输入也可以直接驱动寄存器,使LUT实现3输入的组合逻辑函数。图0-6LE标准工作模式逻辑结构运算模式结构提供两个3输入LUT。其中一个实现3输入组合逻辑函数,另一个形成进位链,适合产生加法器、累加器和比较器等逻辑功能。例如图0-7中,LE配置成一个全加器。三个加数输入中data1、data2来自LAB局部互连,Carry-In来自低位LE的进位链。两个LUT中一个直接通过LE-Out输出加运算的和,另一个输出Carry-Out通过进位链送往高位的LE。图0-7LE运算模式逻辑结构图0-8是由n个全加运算模式的LE串接成的n位加法器。

加/减计数模式提供计数器使能、时钟使能、加/减控制和数据加载选择。这些控制信号是来自LAB局部互连的数据输入或进位输入以及可编程寄存器的输出反馈信号。LE中两个3输入LUT,一个产生计数数据,一个产生快速进位。多路选择器可以提供同步加载数据,也可以不用LUT资源,借助寄存器的清除和置位功能异步加载数据。

可清除计数模式类似于加/减计数模式,但没有加/减计数选择信号,增加同步清除控制信号,所以支持同步清除功能而无加/减控制特性。图0-8n位加法器结构示意图

4)输入/输出单元IOE

IOE单元可对FPGA封装的I/O端口进行组态,包含一个双向I/O缓冲器、一个既可编程为输入寄存器也可编程为输出寄存器的触发器、一个独立的三态输出使能控制、若干多路选择器和漏极开路配置选项(OpenDrainOption)等。每个IOE控制FPGA的一个封装引脚组构成输入、输出或是双向端口。I/O端口可被组态配置成输入(三态缓冲器禁止)、输出(三态缓冲器选通)或双向端口(三态缓冲器由使能控制)。配置成输入端口时,建立时间小于1.6μs,可以选择端口输入信号是直接还是经寄存后向LE传送。配置成输出端口时,建立时间小于5.3μs,可选择信号摆幅大小、三态或漏极开路输出形式。每个IOE的时钟脉冲、清除控制、时钟使能和输出使能信号由来自I/O控制网络的外部控制总线提供。外部控制总线使用高速驱动器以使信号失真最小。当IOE配置为输入功能时,可以驱动两个独立的行通道或两个独立的列通道;当配置为输出功能时,可以由两个多路选择器分别选择不同的行信号或不同的列信号。每个行通道最多可以连接8个IOE,每个列通道的两端各连接2个IOE,如图0-9所示。图0-9IOE的互连结构示意结构

5)进位链和级联链

器件内部信号的互连和器件I/O引出端之间信号的互连由快速通道(FastTrack)连线提供。如图0-10所示,FastTrack互连是一系列贯通器件水平行和垂直列的连续式布线通道,每条行互连承载进出这一行中LAB的信号,驱动I/O引出端或馈送信号到其他的LAB。列互连在列和I/O引出端之间馈送信号。

每条行通道可以通过多路选择器从一个LE输出和3条列输出中选择一个信号传输,连接到LE的多路选择器可以实现列通道信号驱动行通道。每个LAB列由一个专用列互连承载。列互连信号可以来自LE的输出或I/O引出端的输入。连接IOE或EAB的每一个行通道信号都可以驱动一个特定的列通道。列互连可以驱动I/O引出端或把信号通过行互连馈送到其他LAB。

为提高布通率,行互连包括全长直通线和半长线。直通线连接一行中所有的LAB,而半长线连接一行中一半的LAB。EAB可由一行中的左半长线或直通线驱动,输出驱动直通线。图0-9也表示了FLEX10KE的行、列、局部互连以及进位链、级联链与相邻LAB、EAB之间的互连关系,每个LAB的标识中字母表示行序、数字表示列序。图0-10LAB的行、列互连结构示意图

LE的进位链和级联链是两种类型的专用高速数据通道,可以不通过局部互连通道直接连接同一行中所有相邻的LAB及其所有LE,因此可有效提高信号传输速度,但会影响布局布线的灵活性,降低逻辑资源利用率。

进位链在LE之间提供快速(0.2ns左右)的向前进位功能,可以实现快速加法器、计数器和任意位数比较器。当进位超出一个LAB的范围时,采用半长线构成长进位链。长进位链跳跃交错连接一行中两个间隔相邻的LAB,但不能跨越每行中间的EAB。长进位链是成对存在的,一条连接奇数序的LAB,另一条连接偶数序LAB。级联链采用与逻辑或者利用摩根反演率获得的或逻辑连接相邻LE的输出,如图0-11所示。级联链可以在最小延时的情况下构成多输入逻辑函数,实现高速多信号扇入(Fan-In)功能。当相邻的LUT同时并行完成函数运算时,级联链可以串接各LUT运算的中间信号。每增加1个LE,函数的输入变量可以增加4个,但信号延时大约增加0.7ns。当级联链多于8级时,也采用半长线构成长级联链在行间跳跃交错连接LAB。同长进位链一样,每行的长级联链也有一对,各被EAB分为两段。级联链串接相邻LE形成的多扇入结构如图0-11所示。n个LE通过与逻辑级联或者或逻辑级联可以实现4n个变量的逻辑函数。LE的延时约1.6μs,级联链延时约0.7μs,实现一个n级级联逻辑函数的总延迟时间约为1.6+0.7n(μs)。图0-11级联链形成的多扇入结构

QuartusⅡ的编译器在进行设计处理时会为一般逻辑功能块或lpm参数化逻辑功能块自动生成进位链或级联链,设计者也可在设计输入期间进行人工干预。

4.数字系统设计方法发展

早期的数字系统多采用试凑法设计,没有固定的套路可循。设计人员在产品研发过程中,首先要根据系统要求选择合适的集成芯片。设计者主要凭经验进行设计,需要考虑器件间的级联和扩展。对把握不大的设计方案要在面包板上连接电路做单元小样试验。硬件试验费时费力,往往因接线紊乱和接触不良带来各类麻烦。所用器件越多,电路连接难度越大。当系统复杂到一定程度,硬件试验可能无法进行,系统的不可靠性因而大为增加。如果试验通过,需要画电路设计图纸,制作印刷电路板,焊接芯片实现系统并调试。如果发现设计有误或需要进行功能调整,必须重新设计印制板。所以产品开发周期很长,初成本也较高,互通利用和修改调整都很不方便。随着计算机技术的发展,数字系统设计的复杂过程可以通过计算机辅助实现。EDA技术使得电子系统的分析设计手段有了深刻的变革,电路设计、模拟仿真等烦琐的工作都可以脱离具体对象,在构筑于计算机平台上的虚拟环境中自动实现。由于计算机的强大运算处理能力,采用EDA技术设计数字系统不需考虑逻辑化简问题,硬件试验也被功能仿真所取代。设计者只要将根据系统功能要求在开发平台中建立起系统模型,然后输入合适的测试码或测试序列,EDA软件就会自动对系统模型进行测试,并以波形图或文本方式给出测试结果供设计者分析系统功能是否符合预期的设计要求。如需要修改设计,通常只需对设计文件作适当调整,并无牵一发动全身之虑。EDA技术使数字系统的设计周期显著缩短,设计流程大为简化,生产成本有效降低。

5.可编程逻辑器件的设计开发

可编程逻辑器件的设计开发依赖于计算机技术的辅助,利用EDA软件平台和编程工具实现。各PLD的制造商都推出了支持本公司PLD产品的软件开发平台,如Altera公司的MAX_PlusⅡ和QuartusⅡ;Xilinx公司的Fundation和ISE;Lattice公司的isp-ExpertSystem等。各公司的产品不兼容,软件操作界面也完全不同,但是操作平台的基本要素相似,主要由编辑器(Editor)、编译器(Compiler)、仿真器(Simulator)、适配器(FitDesign)和编程器(Programmer)构成。

PLD设计开发主要分源文件编辑、源文件综合编译、逻辑功能仿真、器件资源适配、下载编程等几个步骤。设计开发一般以项目(Project)形式进行,软件平台的所有操作都面向当前项目。

用户可以在开发平台上用逻辑图或硬件描述语言设计系统,并进行逻辑仿真。设计完成后由计算机进行器件资源匹配,产生PLD器件内部的布局布线编程文件,下载入器件即实现所设计的系统。如果系统在运行中发现问题或希望修改设计要求,可以重新对器件进行配置重构。

1)设计准备

设计人员首先根据任务要求进行设计分析,按系统复杂程度划分功能单元。然后进行方案论证,权衡系统工作速度、PLD器件资源、产品成本及连线的布通率等,选择合适的设计方案和性价比高的PLD器件。

设计以项目工程的形式进行,新建项目时可指定项目的存放路径和目录、设置工程名称以及最高层设计实体的名称、指定目标器件的系列和型号,最后工程向导会给出设置

报告。

2)设计输入

设计人员在编辑器中建立源文件阐述设计要求。源文件可以是原理图方式或文本方式。原理图方式是用逻辑符号组构电路,对于具有数字逻辑和数字电路基础的设计者而言,图形设计输入的方法类似于画电路原理图,容易理解与掌握。开发软件平台除提供功能强大的各类器件库外(如逻辑门、触发器、组合功能部件、时序功能部件、存储器等等),还允许用户自己建立特殊的器件符号。文本方式是采用硬件描述语言HDL(HardwareDescriptionLanguage)描述电路的输入、输出关系及逻辑功能。硬件描述语言有多种,普通的有支持逻辑方程、真值表、状态机等简单描述的ABEL、CUR、LFM和AHDL(AlteraHDL)。VHDL和VeriogelHDL语言是两个IEEE标准的支持行为描述的硬件描述语言,具有很强的逻辑描述和仿真功能。采用硬件描述语言设计数字系统,输入效率高,便于实现大规模系统的设计;设计人员可以不需要熟悉系统的底层电路和PLD的内部结构,通过逻辑描述就能确立设计方案的可行性;不同输入形式的设计文件可相互转换,可重复利用。

3)分析与综合

分析与综合是PLD开发软件对设计文件进行处理的第一步骤。首先由编译器分析检验设计输入是否符合规范,包括逻辑规则检验、网络连接检验、信号来源和流向检验等等。比如图形设计文件中信号线有无漏接、信号有无双重来源,元件端口属性是否匹配;文本设计文件中有无关键字、逻辑语法或结构等错误。检验通过后编译器对设计文件进行优化和综合,化简逻辑方程式以减少设计占用的资源,并综合成一个网表文件形成系统逻辑模型。

4)功能仿真(Simulator)

功能仿真可验证系统模型是否满足设计功能要求。仿真的测试码或测试序列可以通过建立矢量波形文件、矢量文件和矢量表输出文件设置。其中矢量波形文件以设计文件的输入、输出时序波形直观显示设计对象的逻辑关系,与数字电子技术基础中的时序波形图相似,适用于具有重复状态变化特性的逻辑函数。在波形编辑器中,一般可以选择需要观察的输入、输出节点,对输入信号赋值、改变信号状态的显示方式等。只要给定各测试输入信号的时序关系或逻辑电平,仿真器就能以信号波形图或仿真报告文件的形式给出逻辑仿真结果甚至信号的传输时间供设计者分析。如果逻辑功能不符合设计要求,设计者可以修改设计直至要求满足。

5)时序仿真

由于不同器件的不同布局对系统信号延时有不同的影响,因此在对器件适配完成后可以进行时序仿真,分析信号传输延时,检查和消除竞争冒险现象,估计系统设计性能。

6)编译适配

编译器将经过分析综合后的优化逻辑关系与器件中逻辑单元和输入、输出单元适配,把设计分割成多个逻辑小块映射到器件各相应的单元,确定各单元的组态和互连关系。当设计超过一片芯片的资源容量时可以映射到同一系列的多片器件。逻辑分割可以由开发软件全自动完成,也可由用户部分或全部进行人工干预和控制,使器件的数量和相互间的信号引出最少。由于FPGA或CPLD的I/O端口属性可以被任意指定为输入、输出或双向端口,所以若对器件引脚没有约束时,可以由编译器根据信号路径、扇出能力等优化原则选择设计端口的FPGA封装引脚。如果用户系统的电路连接关系已经确定,目标器件的引脚分配就受到用户电路的硬件限制,必须指定设计文件各输入、输出端口的引脚编号,即干预IOC或IOB的组态。完成适配后,编译器以最优方式对PLD器件进行布局布线,将器件、逻辑单元和引脚分配信息转换为该器件的编程图像,产生报告文件及器件编程信息的数据文件。PLD器件的编程文件为熔丝图数据形式,FPGA器件的编程文件为位流数据形式。器件资源使用率在50%以下的一般绝对能通过适配布局(除非引脚分配有误),而使用率在80%以上的适配布局就难以通过,所以器件资源使用率在70%~80%之间比较合适。设计人员可以检查适配布局的结果,根据报告修改源文件的逻辑错误,或在器件底层编辑器中修改物理层的局部布局、布线,直至适配正确通过并符合布局要求。

7)器件编程配置

PLD设计开发的最后步骤就是对目标器件编程配置。编程配置需要满足器件生产厂家规定的条件,比如编程电压、编程模式、编程时序和编程算法等。某些PLD器件需要专用的编程器完成配置,而采用ISP或ICR技术的CPLD和FPGA只需一条编程下载电缆,即可从计算机的通信接口下载数据文件。编程电缆必须配有符合编程要求的接口电路,将计算机输出的编程数据流传输给可编程器件。编程时目标器件必须上电,编程器先检测编程对象,建立对话联系后才输出编程数据文件,完成配置后进行数据校验。进入配置模式后,可编程器件的所有I/O端口呈高阻状态,与用户目标系统中的电路脱离;完成配置后,器件自动进入工作状态,I/O端口呈配置后要求的特性。对于具有BST边界扫描能力(Bandary-ScanTeating)和在线编程能力的PLD器件,编程配置过程极其简便。第1章QuartusⅡ应用入门1.1QuartusⅡ安装1.2QuartusⅡ的项目和文件管理1.3图形设计源文件编辑1.4设计文件综合和仿真1.5端口分配、项目编译适配和器件编程1.6SignalTapⅡ嵌入式逻辑分析仪应用QuartusⅡ开发基于可编程器件的数字电路或系统的过程如下:

(1)新项目工程创建(NewProjectWizard)建立新工程并指定目标器件或器件系列。

(2)使用原理图编辑器(BlockEditor)或文本编辑器(TextEditor)建立流程图、原理图设计文件或硬件描述语言设计文件。

(3)使用资源分配编辑器(AssignmentEditor)、参数设置选项(Settings)、底层编辑器(FloorplanEditor)、逻辑锁定器(LogicLock™)功能指定初始设计的约束条件。

(4)使用片上可编程系统构建平台(SOPCBuilder)或数字信号处理器构建平台(DSPBuilder)建立系统级设计。

(5)使用软件构建平台(SoftwareBuilder)为器件处理内核(Excalibur™)或嵌入式处理内核(Nios®)建立控制软件编程文件。

(6)使用分析综合工具(Analysis&Synthesis)对设计文件进行分析综合。

(7)使用仿真工具(SimulatorTool)对设计文件进行功能仿真或时序仿真。

(8)使用编译工具(CompilerTool)对设计文件进行分析综合(Analysis&Synthesis)、物理层适配(Fitter)、布局布线优化组合(Assembler),底层信号传输时间分析(TimingAnalyzer),产生下载编程文件。

(9)使用编程器Programmer下载设计文件对器件进行编程,或将编程文件转换为其他文件格式供嵌入式处理器等其他系统使用。

(10)若有需要,使用SignalTap®ⅡLogicAnalyzer、SignalProbe™功能对设计进行硬件实时调试。

(11)若有需要,使用ChipEditor、ResourcePropertyEditor和ChangeManager进行工程更改管理。

对于一般的数字电路或系统设计,QuartusⅡ应用基本流程可简化为如图1-0-1所示。如果FPGA或CPLD安装在用户系统或开发装置上,在项目编译前必须规划引脚分配,否则可由QuartusⅡ任意分配输入、输出端口引脚。图1-0-1QuartusⅡ应用基本流程

1.1QuartusⅡ安装

1.1.1安装QuartusⅡ5.1软件

QuartusⅡ5.1的安装步骤:

(1)将QuartusⅡ5.1安装光盘放入计算机光驱,安装程序将自动启动,出现如图1-1-1所示的4个选项。

(2)选择第一项“InstallQuartusⅡandRelatedSoftware”,进入QuartusⅡ软件的安装向导界面。选择“QuartusⅡ5.1”,然后按照安装向导的提示经过一系列的确认操作,即可完成QuartusⅡ5.1软件的安装。图1-1-1QuartusⅡ软件安装初始界面1.1.2指定授权文件

QuartusⅡ软件安装完成后,必须指定Altera公司的授权文件(License.dat)才能正常使用。在Windows2000或WindowsXP系统下指定授权文件的操作步骤如下:

(1)在开始菜单中选择“设置”⇒“控制面板”,用鼠标左键双击控制面板上的“系统”图标;或用鼠标右键单击“我的电脑”⇒“属性”。在弹出的“系统属性”对话框中选择“高级”页面,如图1-1-2所示。图1-1-2“系统属性”对话框

(2)点击“环境变量”按钮,在弹出的对话框中单击“×的用户变量”(×为用户PC名)栏下的“新建”按钮,弹出“新建用户变量”对话框,如图1-1-3所示。在变量名栏中输入“LM_LICENSE_FILE”;在变量值栏中输入“c:\flexlm\license.dat”,点击确定退出。

图1-1-3“环境变量”对话框

(3)将从Altera公司申请得到的授权文件license.dat粘贴在c:\flexlm目录下。

(4)启动QuartusⅡ软件,选择“Tools”⇒“LicenseSetup”命令,弹出如图1-1-4所示的“Options”对话框,在此页面的“LicenseSetup”下的“Licensefile”栏中选择“c:\flexlm\license.dat”,点击“OK”按钮,结束授权。图1-1-4“Options”对话框的“LicenseSetup”页面1.1.3安装编程硬件驱动程序

在QuartusⅡ环境中可以通过计算机数据通信接口把系统编程文件下载到目标器件中。如果使用计算机并行接口下载编程文件,则需要安装Altera公司的编程硬件驱动程序。以WindowsXP平台为例,安装步骤如下:

(1)打开控制面板。在控制面板中双击“添加硬件”图标,弹出“添加硬件向导”对话框,点击“下一步”,弹出如图1-1-5所示的对话框,选择第一项“是,我已经连接了此硬件”。图1-1-5“添加硬件向导”对话框2

(2)点击“下一步”,弹出如图1-1-6所示的对话框,在“已安装的硬件”栏目中选择“添加新的硬件设备”。图1-1-6“添加硬件向导”对话框3

(3)点击“下一步”,弹出如图1-1-7所示的对话框,选择第二项“安装我手动从列表选择的硬件(高级)”。图1-1-7“添加硬件向导”对话框4

(4)点击“下一步”,弹出如图1-1-8所示的对话框,在“常见硬件类型”栏目中选择“声音、视频和游戏控制器”。图1-1-8“添加硬件向导”对话框5

(5)点击“下一步”,弹出如图1-1-9所示的对话框;点击“从磁盘安装”按钮,弹出如图1-1-10所示的“从磁盘安装”对话框;点击“厂商文件复制来源”文件查找框旁的“浏览”按钮,在弹出的文件集中查找QuartusⅡ系统安装目录下的驱动文件“C:\altera\quartus51\drivers\win2000”(设QuartusⅡ系统安装在C盘根目录下),点击“确定”按钮。图1-1-9“添加硬件向导”对话框6图1-1-10“从磁盘安装”对话框

(6)如果出现相容性警告,则选择“仍然继续”,弹出如图1-1-11所示的对话框,在“型号”栏中选择“AlteraByteBlaster”;点击“下一步”,弹出“添加硬件向导”界面末页,等待硬件驱动安装完毕后点击“完成”按钮,计算机自动重启后硬件驱动程序生效。图1-1-11“添加硬件向导”对话框7

(7) QuartusⅡ的硬件驱动程序生效后,若在计算机控制面板中双击“系统”图标,选择“硬件”标签页,点击“设备管理器”按钮,在设备管理器界面中打开“声音、视频和游戏控制器”选项,会看到添加的设备名称“AlteraByteBlaster”,如图1-1-12所示。图1-1-12查看编程器硬件驱动安装结果

1.2QuartusⅡ的项目和文件管理

1.2.1QuartusⅡ的开发环境

QuartusⅡ的开发环境如图1-2-1所示,项目路径和项目名一般显示在窗口上方。QuartusⅡ的主菜单与一般视窗软件的主菜单相似,有文件管理(File)、编辑(Edit)、视图(View)、项目管理(Project)、资源分配(Assignements)、设计处理(Processing)、工具(Tools)、视窗(Window)、帮助(Help)等9个选项。图1-2-1QuartusⅡ设计环境

ProjectNavigator、Status和Message窗口可以进行显示和隐藏操作。具体方法是点击主菜单“View”项,在下拉选项框中选择第一项实用视窗“UtilityWindows”,右方弹出如图1-2-2的选项框,点击相应的窗口名可以切换显示/隐藏功能。图1-2-2QuartusⅡ常用窗显示选择

QuartusⅡ设计环境中各平台的界面参数可以根据用户爱好设置,比如文字信息的字体、颜色,处理平台的参数默认值,工具条是否显示等。具体方法是点击主菜单“Tools”项,在下拉选项框中选择倒数第二项“Options…”,弹出如图1-2-3的选项框。图1-2-3QuartusⅡ的环境参数设置1.2.2新项目的创建

新项目创建步骤:

(1)启动QuartusⅡ5.1后,打开“File”菜单,选择“NewProjectWizard…”(新建项目向导),如图1-2-4所示。弹出如图1-2-5所示的对话框。图1-2-4新建项目向导命令图1-2-5指定项目路径、创建项目目录

(2)在对话框第一栏内键入盘符、子目录和项目目录。一般子目录存放在除C盘外其他盘的根目录下,子目录命名具有个人的特征,每个项目分别建立一个具有实义的项目目录。比如,D:/学号/项目目录名。也可点击栏右边的浏览按钮选择已经存在的路径。建议为每个项目单独建立一个项目目录。

(3)在对话框第二栏内键入项目名称,第三栏内会自动出现与项目名同名的顶层设计文件名。项目名不能与QuartusⅡ自带的元件名同名,最好采用不多于8个字符的数字和英文字母,不要使用中文字符,也不要有空格。

(4)点击“Next>”,如果项目目录原来不存在,则弹出提示框,提醒是否要创建这个目录。点击“是”按钮,QuartusⅡ会自动创建新目录,并弹出图1-2-6所示的添加文件选项框。如果需要导入其他路径下已存在的源文件或用户库,可点击“Filename”栏旁的浏览按钮进行查找选择。图1-2-6添加设计文件、用户库

(5)点击“Next>”,弹出如图1-2-7所示的选项框,其右方适配参数“Filters”下3个约束选项框(封装形式Package、引脚数目Pincount和速度Speedgrade)均可选默认项“Any”。如果3个选项中有约束参数,则器件型号的供选项被限制。比如,选项“Pin”设置了“144”,则其左方供选器件(Availabledevices)滚动框中只包含144个引脚的器件型号供选择。图1-2-7选择目标器件系列和型号

(6)根据用户设计载体选择目标器件的系列和型号。比如,DE2开发板上的FPGA器件为CycloneⅡ系列的EP2C35F672C6,而LP—2900开发装置的FPGA器件有两种:FLEX10K系列的EPF10K10TC144—4和Cyclone系列的EP1C3T144C8。根据所用的目标器件,在系列(Family)下拉栏中选择器件系列,在“Availabledevices”滚动框中选择器件型号。需要注意的是,若项目设置的器件系列和型号与用户系统中的可编程器件系列、型号不同,则设计编程文件不能下载到器件中。

(7)点击“Next>”,出现添加第三方EDA工具的选项框。一般情况下不需选择直接进入下一步。项目参数设置完毕后显示所建项目的信息汇总,比如项目路径、项目目录、项目名、顶层设计文件名、加入的文件和用户库数量、目标器件的系列和型号、支持的EDA工具等。检查设置无误后点击“Finish”,项目创建完成,在QuartusⅡ窗口的左上方显示本项目的目录和项目名。

(8)新项目创建也可以在如图1-2-5所示的项目目录和顶层文件名后点击“Finish”完成。其他项目设置可随时在如图

1-2-8所示的Settings选项框进行。在QuartusⅡ环境中弹出“Settings”(项目设置)框的方法有以下几种:

①直接点击主工具条中的按钮。

②选择主菜单命令“Assignments”,点击其中的“Settings…”选项。

③选择“ProjectNavigator”(项目导航)栏中“Entity”框内的顶层文件图标或顶层文件名,点击鼠标右键,在弹出的选项框中点击“Settings…”项。图1-2-8QuartusⅡ设置选项框“Settings”选项框中包含了所有有关QuartusⅡ的设置,其中与项目设置相关的类型及功能如表1-2-1所示。

(9)如果在未建项目或未打开项目时建立新的设计文件,保存文件时会出现“是否需要创建新项目”的提示,点击“是”按钮,弹出如图1-2-4所示的项目创建向导,引导设计者在保存文件之前先创建新项目。1.2.3项目管理

1.打开一个已经创建的项目

启动QuartusⅡ后,点击“File”⇒“OpenProject…”,出现图1-2-9所示的选项框。文件类型一般默认为项目文件。下拉“查找范围”栏,查找项目所在路径和目录,选择项目目录下显示的项目文件(*.qpf),点击“打开”按钮或双击图标,打开项目。也可在项目目录中直接双击项目文件图标打开项目工程。特别需要注意的是,个别初学者会因习惯于计算机视窗平台的操作,在进入Quartus后直接采用命令“File”⇒“Open…”,打开设计文件。由于项目工程尚未打开,QuartusⅡ的所有处理功能,包括综合分析、仿真、编译、下载等操作全部被禁止,相应的命令和快捷键都呈灰色,不能激活。图1-2-9打开已经存在的项目文件

2.项目导航管理

1)项目导航器(ProjectNavigator)

图1-2-10是QuartusⅡ的项目导航器界面。导航窗口下方有3个可以互相切换的标签,分别表示层次(Hierarchy)、文件(Files)和设计单元(DesignUnits)。图1-2-10项目导航窗中的文件层次页面点击“Hierarchy”图标,出现实体窗口Entity,显示当前项目设计实体所选的目标器件型号和顶层文件名。点击顶层文件名,可以拉出其下的各层文件。项目中的文件排列呈树形结构,反映了项目中的文件层次关系。每个设计文件中使用的逻辑单元(LogicCells)和存储元数(LCRegisters)也在窗口中列出。

Files窗口中显示3个文件夹。当前项目下的所有设计源文件按类型归在器件设计文件夹(DeviceDesignFiles)、软件程序文件夹(SoftwareFiles)和其他文件夹(OtherFiles)中。当文件夹中有文件时,文件夹名前出现“+”号,点击“+”号可以展开文件夹,列表显示其中的所有文件名,如图1-2-11所示。DesignUnits窗口中显示当前项目下的所有设计单元。图1-2-11文件列表页面

2)修改文件层次

由于QuartusⅡ的逻辑分析综合、编译、仿真等处理功能都是面向顶层文件,当需要对某个底层文件进行处理时,需要将该文件暂时设置为顶层文件。设置顶层文件的方法是:

选择项目导航器下方栏中的文件(Files)标签,列出所有文件的层次关系。选中需要处理的文件名,点击鼠标右键,在弹出框中选“SetasTop-LevelEntity”。 1.2.4快捷键工具栏

QuartusⅡ的各处理平台或编辑器都有相应的快捷按钮,可以根据需要切换显示或隐藏快捷工具栏。点击QuartusⅡ主菜单中的“Tools”项,在下拉框中选择倒数第三项“Customize…”,弹出如图1-2-12所示的对话框。选择标签“Toolbars”,出现工具条选项框。框中每一选项对应QuartusⅡ一类处理功能的快捷工具栏。在打开相应的编辑器时,若选项前打钩,工具栏显示,否则工具栏隐藏。当编辑器或处理平台关闭时,工具栏自动隐藏,选项前的钩消失。图1-2-12快捷工具条选择

工具条选项框的第一项为QuartusⅡ的通用工具栏。通用工具栏中间的下拉框中显示的是项目名,框左各快捷键主要针对文件编辑,其图标和功能都与视窗中的文件编辑快捷键相同。项目名框右方各快捷键的图标和功能如图

1-2-13所示。图1-2-13常用工具条部分图标说明1.2.5QuartusⅡ的文件管理

1.新建文件

点击新建文件快捷图标或主菜单“File”

“New…”命令,出现如图1-2-14所示的新文件类型选项框,点击选项框上方的类型标签可切换新建文件的类型,选择不同的文件格式。双击文件格式或选择文件名后按确认按钮可在文件编辑区打开新文件。图1-2-14文件类型选项框

2.文件格式说明

器件设计文件(DeviceDesignFiles)是针对可编程器件的逻辑设计源,包含了6种文件格式,如图1-2-14所示。其中面向图形设计和文本设计两种输入方式的4种源文件格式和扩展名如表1-2-2所示。其他文件(OtherFiles)主要为项目设计提供辅助性的或处理过程需要的文件格式,共有10个选项,如图1-2-15中所示。其中比较常用的有仿真处理需要的矢量波形图文件(VectorWaveformFile),用于建立片上逻辑分析仪的(SignalTapⅡFile)以及数个针对不同应用的文件格式。存储器数据初始化文件(MemoryInitializationFile)和Intel格式的十六进制数据文件(Hexadecimsal[Intel-Format]File)都可以建立数据表文件。图1-2-15其他文件类型选项

3.文件打开与关闭

点击快捷图标或项目导航器Files窗口中的文件名或执行主菜单“File”

“Open…”命令,可以打开文件。被打开的文件同时在QuartusⅡ的主窗口显示。需要注意的是,器件设计源文件必须在项目工程下打开。如果在项目未建或未打开时直接打开设计文件,则除了编辑功能外,QuartusⅡ的其他处理功能都无效。

点击文件右上方“×”符或主菜单“File”

“Close”命令,可以关闭文件。

4.在项目中添加其他路径下的文件或移出本项目的文件

若当前项目的设计文件需要使用其他项目自建的元件符号,则必须将创建该元件的设计文件(图形文件*.bdf或文本文件*.tdf、*.v、*.vhd)添加到当前项目中;如果当前项目不需要某个设计文件,则必须把它移出项目。添加文件和移出文件的操作方法是:执行“Project”

“Add/RemoveFilesinProject…”命令,弹出“Settings”页面,页面右方是类似图1-2-6的项目文件添加或移出对话框(Files)。若需添加文件,则点击“Filename:”栏旁的浏览按钮进行搜索,找到文件后双击文件名,点击“Add”按钮,文件被加入项目。若需移出文件,则在对话框下方的Filename区域中选择文件名,点击“Remove”,文件被移出项目。例1

在D盘“2007”目录下创建“test”项目,并在项目中建立一个数据文件,以BCD码表示一个等差级数,数据范围为0~500,级数为64。

解(1)按1.2.2节的步骤创建新项目,设下载设计文件的可编程器件系列选择FLEX10K,器件型号选择EPF10K10TC144-4。

(2)点击快捷图标或执行主菜单“File”

“New…”命令,打开如图1-2-14的新建文件窗口,点击“OtherFiles”标签,在如图1-2-15的选项框中选择“MemoryInitializationFile”或“Hexadecimal(Intel-Format)File”。

(3)点击“OK”确认,弹出如图1-2-16所示的字数(Numberofwords)、字长(Wordsize)对话框。

其中字数表示存储信息个数或数据个数,字长表示二进制存储信息或数据的位数。根据本例的等差级数确定字数为64。因为数据需要3组BCD码表示,所以字长为12。图1-2-16存储数据文件的参数设定

(4)填入字数和字长后按“OK”确认,弹出数据文件编辑页面,如图1-2-17所示,默认数据内容为全0。页面的左上角显示文件名,新建文件默认名为扩展名后加数序。MemoryInitializationFile格式的文件扩展名为 .mif,Hexadecimal(Intel-Format)File格式的文件扩展名为 .hex。图1-2-17数据文件页面

(5)数据文件的显示格式可以通过菜单“View”选择,各有关选项说明如图1-2-18所示。图1-2-17的文件显示形式为每行8个单元,地址为十六进制码,数据格式为二进制。图1-2-18数据文件的显示方式选择

(6)如果数据文件中的数据关系没有规律,则每个单元的内容一般通过按键设置。如果数据具有函数关系,则可以通过Excel、Matlab等辅助计算工具产生函数数据文件。数据按地址顺序排列,两个数据间至少间隔一个空格。比如,本例等差级数的64个数据计算式为采用Matlab计算64个y值的方法是:启动Matlab,在命令窗中输入与运算关系相应的函数命令行:

y=round(linspace(0,63,64)*500/63);

reshape(y,8,8)’

值域设置函数linspace确定了x的取值范围(0~63)和取值个数(64),round函数对运算结果取整数。reshape(y,a,b)’命令行是指定函数值y的显示方式:每行a个数据,共b行,a×b必须等于y数据的个数。若命令行有后缀符号“’”,则表示y数据按行依序排列;否则,按列依序排列。命令执行后Matlab命令窗中显示函数y的64个整数值,8行8列,每个数据之间以空格间隔,如表1-2-3所示。拷贝所有数据,切回QuartusⅡ的数据文件编辑窗。将鼠标定位在第一个单元,点击“粘贴”命令,所有数据就被依序粘贴到数据文件的各单元中。由于计算结果是3位十进制数,而设计要求的数据是用3组BCD码表示。每组BCD码是4位二进制数,可用一位十六进制数代替。所以在粘贴数据之前,必须将文件的数据格式设定为十六进制(Hexadecimal),粘贴后的数据文件如图1-2-19所示,若转换成二进制后则呈现的是BCD码格式。图1-2-19举例数据文件

(7)数据信息输入完成后保存文件。与视窗文件操作相同,可选择主菜单“File”⇒“Save”或“SaveAs…”命令,或者直接点击快捷工具,弹出保存文件对话框,如图1-2-20所示。一般默认文件保存在当前项目目录下,默认文件名与项目名相同,并默认文件添加到当前项目中(Addfiletocurrentprojec)。若文件保存路径不同或文件名与项目名不同或不需要添加在项目中,则可修改选项,然后单击保存按钮即可。当“Addfiletocurrentproject”项被选择时,文件保存后项目导航器中出现所建文件名。图1-2-20保存新文件或另存文件对话框

1.3图形设计源文件编辑

1.3.1图形设计输入窗口

根据1.2.5节的文件新建方法,可以选择“File”⇒“New…”命令或者点击工具栏中新建文件图标,在弹出的新文件类型选择窗口“New”中选择“DeviceDesignFiles”页下的结构图/原理图文件(BlockDiagram/SchematicFile),确认后出现可以带有栅格的图形设计输入编辑区和图形编辑快捷工具栏,如图1-3-1所示。默认文件名为“Blockx.bdf”(x为数序),在编辑区上方显示。如果图形编辑工具栏被隐藏,按1.2.4节的方法在如图1-2-12所示窗口的“Block&SymbolEditors”选项前打钩。图1-3-1图形设计文件编辑窗口

1.图形编辑器的环境参数设置

图形设计窗口可以按1.2.1节的方法通过如图1-2-3所示的Options窗口中Block/SymbolEditor选项进行背景和符号颜色(Colors)、文字字体和大小(Fonts)修改,也可切换编辑区栅格显示/隐藏(Showguidelines)、设置栅格间距(GuidelineSpacing)、引脚分配显示/隐藏(Showpinandlocationassignments)等。

2.快捷工具说明

使用图形编辑快捷工具可以方便地输入设计内容,常用快捷键功能如图1-3-1所示。

(1)选择文字输入功能后可直接在编辑区输入文字注释。

(2)选择符号输入功能可打开元件库选择需要的逻辑符号放入编辑区。

(3)选择模块输入功能可在编辑区置放一个逻辑模块,模块内容另行定义。

(4)选择连接导线、总线或导管功能可在不同的逻辑符号或模块间连接信号传输路径。

(5)若橡筋功能被激活,文件中被选择的对象移动,则对象与电路其他部分的连线同时移动,类似橡筋拉伸的效果。

(6)选择断线功能(橡筋功能被禁止),被选择对象与电路其他部分断开独立移动。

(7)选择放大缩小功能后,在编辑区中单击鼠标左键,可以使显示内容放大;单击鼠标右键,可缩小显示内容。单击选择箭头,才能退出放大、缩小操作。

(8)选择编辑对象后点击翻转或旋转功能,可使对象翻转或逆时针旋转90°。

(9)工具条的最后4项是绘图功能,可以画矩形框、椭圆圈、直线和弧线,线段不参与设计处理,只起辅助说明的作用。1.3.2元件输入和电路连线

元件输入和电路连接是图形设计编辑的主要工作。元件符号导入的方法有3种:①在图形输入编辑区的空白位置中双击鼠标左键;②点击工具栏中的图标;③顺序点击主菜单“Edit⇒InsertSymbol…”命令。执行上述任何一种操作,都弹出如图1-3-2所示的“Symbol”对话框。“Symbol”框的左上方“Libraries”是“Altera”的元件库列表,库目录中包含了宏功能模块库(megafunctions)、其他元件库(others)和基本元件库(primitives)。图1-3-2“Symbol”对话框

1.元件符号导入

需要导入的元件名称可以在Symbol框左方的Name栏输入,被搜索元件名称直接出现在元件列表中。如果不了解元件名称,则可以根据元件属性选择相应的子库,用鼠标左键点击库前的加号(+),使库中的元件以列表的方式显示,搜索所需要的元件。若需要使用其他项目中的自建元件符号,可以点击Name栏右侧的浏览按钮,在相应的项目目录下搜索元件符号文件 *.bsf。当键入符号名称或在列表中或在其他项目中选择了导入对象时,被选符号的图标就显示在Symbol框的右方,点击“OK”按钮或在符号列表中双击符号名称,所选元件的符号出现在图形编辑区并粘在光标上,可根据放置方向按快捷键翻转或旋转,拖放到合适的位置后点击鼠标左键,元件即被放置在编辑区中。每个放置在编辑区中的元件都有一个实例名称(如inst1),可以理解为元件在设计文件中的编号。当Symbol框左下方的Insertsymbolasblock选项有效时,others库或megafunctions库中的元件符号在图中以模块形式显示;否则,与primitives库中的元件符号一样,以图形方式显示;两者的区别如图1-3-3所示。图1-3-3选择以块形式插入复选框

2.重复放置或复制相同的元件符号。

当Symbol框左下方重复输入(Repeat-insertmode)项有效时,元件符号放置后,鼠标上会自动出现新的符号,可以反复放置直到按下“Esc”键或点击快捷图标或点击鼠标右键,执行“Cancel”命令,取消重复放置符号操作。

在图形编辑区复制元件符号的另一种方法是:将鼠标放在所选元件符号上,同时按住“Ctrl”键和鼠标左键,使光标右下角出现一个“+”号。拖曳鼠标到合适位置,松开鼠标左键,元件符号就被复制在鼠标所在位置。

3.电路连线

元件符号之间的信号通过单导线或数据总线传递,图形设计文件中的连线有多种方式。

(1)点击图标或或,将鼠标放在需要连线的逻辑符号端口处,当光标呈“十”字形时,按住鼠标左键拖动到连线终点释放鼠标左键即可。

(2)当橡筋功能有效时,把两个需要相连的元件符号端口碰在一起后再拉开,两个端口之间就自动连上了导线。

(3)同大多数EDA工具相同,QuartusⅡ也支持引线或端口命名设置网标的功能,即命名相同的引线和端口在电路中相连。

引线命名的方法是:在需要命名的引线上点击一下鼠标左键,引线两端出现小方块,此时引线处于被选中状态,然后输入网标名称。名称可以是字母、字母组合或字母与数字组合的形式,如A、EN、B1等。若两个需要相连端口为位宽不同的总线,则可采用方括号以升序或降序的形式说明各端口或总线的位宽。比如位宽为n,网标名为A,则命名可以是A[n-1..0]或A[0..n-1]。端口是每个设计文件的对外信号,端口符号是基本元件库(primitives)的pin子库中的bidir、input和output。端口命名的方法是:选中端口符号,双击其默认名称“pin_name”,键入该端口名称。也可双击输入、输出端口符号,弹出端口属性(PinProperties)对话框,在Pinname[s]处输入端口名称。端口也分为单信号或多位宽总线端口,命名规则与引线相同。图1-3-4是一个信号控制电路的图形设计文件。图中有3个元件符号:异或门XOR、输入端口INPUT、输出端口OUTPUT。输入端口以降序命名x[3..0],输出端口以升序命名y[0..2]。异或门的一个输入引线为单线,命名“x3”,另一个输入引线为总线,命名为“x[2..0]”。所以,电路中实际有4个输入端口、3个输出端口、3个异或门。输入信号x3同时控制三个异或门的一个输入,x0、x1、x2分别控制3个异或门的另一个输入。电路功能是:当x3为低电平时,yi=xi,(i=0,1,2);当x3为高电平时,yi=。图1-3-4引线、端口命名举例1.3.3图形编辑器的元件库介绍

元件命名具有以下特点:

(1)当逻辑门或功能元件名称前加“n”时,表示逻辑门反相输出或功能元件低电平输出有效。

(2)当逻辑门或触发器名称前加“b”时,表示逻辑门或触发器的输入反相。

(3)当逻辑门或触发器名称前加“d”时,表示逻辑门或触发器有两个互补的输出。

(4)当逻辑门或触发器名称前加“t”时,表示逻辑门或触发器为三态输出。

(5)当功能模块名称后加“b”时,表示输入、输出信号以总线形式表示。

(6)当74系列信号后加“m”或“o”时,表示符号为芯片上的一个元件。比如,74153m是双四选一数据选择器74153中的一个选择器,74112o是双JK触发器74112中的一个JK触发器。

1.基本元件库(primitives)

基本元件库划分为缓冲器(buffer)、逻辑门(logic)、其他符号(other)、端口(pin)、触发器(storage)5个子库。其中端口(pin)子库中有3种类型的端口:数据可以输入/输出的双向端口(bidir)、数据只能输入的端口(input)和数据只能输出的端口(output)。另外4个库的常用元件及名称见表1-3-2。

2.其他元件库(others)

others库中主要包含了与Altera的可编程器件初级开发平台maxplus2兼容的所有逻辑器件,包括逻辑门、触发器和一些中规模功能元件,还包括了几乎所有74系列的数字逻辑器件,设计者可以根据需要输入型号调出元件。比如,输入“74138”调出3—8线译码器,如图1-3-3所示。表1-3-3列出了部分元件的名称。

3.宏功能函数库megafunctions

宏功能函数库中包含了很多可修改参数的宏功能模块。模块由Altera的技术人员开发,用户可以使用MegaWizardPlug-InManager功能自定义变量将它们实例化,创建符合设计需要的自定义模块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论