基于FPGA的数字图像处理【1.6】

本文介绍了半导体公司Lattice、Atmel和Actel的产品线,重点讨论了FPGA和PLD的用途,以及FPGA开发流程中的设计方法、典型步骤和面临的挑战,包括逻辑综合、静态时序分析和下载调试。
摘要由CSDN通过智能技术生成
2.4.3 Lattice

        Lattice 半 导 体 公 司 提 供 业 界 最 广 范 围 的 现 场 可 编 程 门 阵 列(FPGA)、可编程逻辑器件(PLD)及其相关软件,包括现场可编程系统芯片(FPSC)、复杂的可编程逻辑器件(CPLD),可编程混合信号产品和可编程数字互连器件。Lattice还提供业界领先的SERDES产品。FPGA和PLD是广泛使用的半导体元件,最终用户可以将其配置成特定的逻辑电路,从而缩短设计周期,降低开发成本。Lattice最终用户主要是通信、计算机、工业、汽车、医药、军事及消费品市场的原始设备生产商。Lattice带来一揽子最棒的东西,为当今系统设计提供全面的解决方案,包括能提供瞬时上电操作、安全性和节省空间的单芯片解决方案的一系列无可匹敌的非易失可编程器件。

2.4.4 Atmel

        Atmel公司在系统级集成方面所拥有的世界级专业知识和丰富的经验使其产品可以在现有模块的基础上进行开发,保证最小的开发延期和风险。凭借业界最广泛的知识产权(IP)组合,Atmel提供电子系统完整的系统解决方案。Atmel集成电路主要集中在消费,工业,安全,通信,计算机和汽车市场。
        Atmel公司是世界上高级半导体产品设计、制造和行销的领先者,产品包括了微处理器、可编程逻辑器件、非易失性存储器、安全芯片、混合信号及RF射频集成电路。通过这些核心技术的组合,Atmel生产出了各种通用目的及特定应用的系统级芯片,以满足当今电子系统设计工程师不断增长和演进的需求。Atmel在系统级集成方面所拥有的世界级专业知识和丰富的经验使其产品可以在现有模块的基础上进行开发,保证最小的开发延期和风险。
        通过分布于超过60个国家的生产、工程、销售及分销网络,Atmel承诺面向客户,为北美、欧洲和亚洲的电子市场服务。确保及时介绍产品及对客户持续的支持已经使Atmel的产品成为最新电子产品的核心器件。这些产品进而帮助最终用户完成更多的工作,享受更多的便利并保持与外界的沟通,不论身在何处。Atmel帮助客户设计更小、更便宜、更多特性的产品来领导市场。因此,那些领导全球革新的公司都选择Atmel的高性能产品来加快自身产品上市,并使自己的产品能够从竞争的产品之中区分出来,不论是传统的市场还是正在发展的市场。

2.4.5 Actel

        Actel公司成立于1985年,位于美国纽约。之前的20多年里,Actel一直效力于美国军工和航空领域,并禁止对外出售。国内一些特殊领域的企业都是采用其他途径购买军工级型号。目前Actel开始逐渐转向民用和商用,除了反熔丝系列,还推出可重复擦除的ProASIC3系列(针对汽车、工业控制、军事航空行业)。

2.5 FPGA开发流程

        FPGA的开发流程是利用EDA开发软件和编程工具对FPGA芯片进行开发的过程。本节首先介绍FPGA设计方法,其次给出典型FPGA开发流程,最后对基于FPGA的SOC所涉及方法和基于IP核的设计方法进行介绍。

2.5.1 FPGA设计方法

        由于FPGA作为可编程芯片,因此FPGA的设计方法包括硬件设计和软件设计两部分。硬件包括FPGA芯片电路、存储器、输入/输出接口电路及其他设备,软件即是相应的HDL程序及嵌入式C程序。硬件设计是基础,但其方法比较固定,本书主要介绍软件的设计方法。                                         总的来说,在FPGA设计中,一般有两种方法:自上向下设计或者自下向上设计。对较大规模的设计,一般采用前者,首先进行模块分割,把模块分割成子模块,然后再把子模块分割成下一级子模块,一次逐级划分。利用模块分割可以简化设计,提高程序的可读性、逻辑综合效率和程序的可移植性,从而便于理解设计所完成的功能,便于读懂程序及调试,有利于提高设计的性能和可靠性。
        目前微电子技术已经发展到SOC阶段,即集成系统阶段,相对于集成电路的设计思想有着革命性的变化。SOC是一个复杂的系统,它将一个完整产品的功能集成在一个芯片上,包括核心处理器、存储单元、硬件加速单元及众多的外部设备接口等,具有设计周期长、实现成本高的特点。因此,其设计方法必然是自顶向下的从系统级到功能级的软/硬件协同设计,达到软/硬件的无缝结合。
        这么庞大的工作量显然超出了单个工程师的能力,因此需要按照层次化、结构化设计方法来实施。先由总设计师将整个软件开发任务划分为若干个可操作的模块,并对其接口和资源进行评估,编制出相应的行为或结构模型,再将其分配个下一个层次的设计师。折旧允许多个设计者同时设计一个硬件系统中的不同模块,并为自己所设计的模块负责,然后由上层设计师对下层模块进行功能验证。
        自顶向下的设计流程从系统设计开始,划分为若干个二级单元,然后再把各个耳机单元划分为下一级的基本单元,直到能够使用基本模块或者IP核直接实现为止。目前流行的FPGA开发工具都提供了层次化管理,可以有效地梳理错综复杂的层次,能够方便地查看某一层次模块的源代码以便修改错误。
        在工程实践中,还存在软件编译时间很长的问题。由于大型设计往往包含多个复杂的功能模块,其时序手链与仿真验证复杂度很高。为了满足时序指标的要求,往往需要反复修改源文件,再对所修改的版本进行重新编译,直到满足所有要求为止。这里存在两个问题:首先,软件编译一次长达数小时甚至数天时间,这是开发所不能容忍的;其次,重新编译和布局不嫌后结果差异很大,会将已满足要求的时序电路破坏掉。因此必须提出一种有效提高设计性能、集成已有结果、便于团队管理的软件工具。FPGA厂商意识到这类需求,有次开发出了相应的逻辑锁定和增量设计的软件工具。

2.5.2 典型的FPGA开发流程

        FPGA开发流程一般包括设计定义、设计输入、功能仿真、综合优化、综合后仿真、实现、布线后仿真、板级仿真及芯片编程与调试等主要步骤。图2-1为FPGA设计流程图,图中各步骤涉及的工具说明如下:
(1)HDL语言指VHDL和Verilog HDL等。
(2)逻辑仿真器主要指ModelSim等。
(3)逻辑综合器主要指Synplify、FPGA Express/FPGA Compiler等。
(4)FPGA厂家工具指的是如Altera的Quartus II,Xilinx的Alliance和ISE等。

1.设计定义
        这是由系统概要涉及知道和详细涉及具体规定下的FPGA模块必须完成的功能,以及与外围器件的接口,包括接口信号规格、处理时钟频率、时序要求、管教分配锁定等,是对FPGA进行变成设定的依据。对涉及定义的要求是合理、清晰、准确。
2.设计输入
        设计输入是指将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入给EDA工具的过程。常用的方法有硬件描述语言与原理图输入两种方式。HDL设计方式是现今设计大规模数字集成电路的常用形式,除IEEE标准中VHDL与Verilog外,还有各自FPGA厂家推出的专用语言,如Altera公司推出的AHDL。HDL语言描述在状态机、控制逻辑、总线功能方面较强,使其描述的电路能在特定综合器作用下以具体硬件单元较好地实现。原理图输入方式是一种最直接的描述方式,在可编程芯片发展的早期应用比较广,它将所需的器件从元件库中调出来,画出原理图。原理图输入在顶层设计和手工最优化电路等方面具有图形化直观、单元接口简洁、功能明确等特点,但效率很低,且不易于维护,不利于构造和重用。更主要的缺点是可移植性差,当芯片升级后,所有的原理图都需要做一定的改动。
        目前的设计趋势是以HDL语言为主,原理图为辅,进行混合设计以发挥两者各自的长处。在HDL语言中,VHDL的数据类型丰富,对大型系统的描述能力强;Verilog对RTL和门级电路描述能力强,风格类似C语言。                                                                                                                  3.功能仿真
        功能仿真也称为前仿真,是在编译之前对用户所涉及的电路进行逻辑验证,此时的仿真没有延迟,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量,仿真结果将生成报告文件和输出波形,从中可以观察各个结点信号的变化。若发现错误,则返回设计修改逻辑设计。图2-2为FPGA典型的功能仿真流程。

                                                图2-2 FPGA典型的功能仿真流程
        从广义上来讲,设计验证包括功能与时序仿真和电路验证。仿真是指使用设计软件包对已实现的设计进行完整测试,模拟实际物理环境下的工作情况。前仿真是指仅对逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程没有加入时序信息,不涉及具体器件的硬件特性,如延时特性;而在布局布线后,提取有关的器件相应延迟、连线延迟等时序参数,并在此基础上进行的仿真称为后仿真,也称为时序仿真,它是最接近真实器件运行的仿真。Mentor公司的ModelSim被公认为最强大的最方便的仿真工具,它支持VHDL和Verilog两种语言混编仿真,并有清晰的图形显示供使用者观察仿真结果。                                                                                    4.逻辑综合
        综合就是针对给定的电路实现功能和实现此电路的约束条件,例如速度、功耗、成本及电路类型,通过计算机进行优化处理,获得一个能满足上述要求的电路设计方案。也就是说,被综合的文件是HDL文件(或相应的原理图文件),综合和依据是逻辑设计的描述和各种约束条件。综合的结果则是一个硬件电路的实现方案,该方案必须同时满足预期的功能和约束条件。对于综合来说,满足要求的方案可能有多个,综合器将产生一个最优的或接近最优的结果。因此,综合的过程也就是设计目标的优化过程,最后获得的结构与综合器的工作性能有关,图2-3为FPGA逻辑综合流程示意。

        综合时以HDL语言或原理图作为输入,输出网标文件供后续的“实现”使用。综合对设计实现后的FPGA性能有很重要的影响,同时又不与FPGA的内部硬件结构直接关联。因此,不仅FPGA制造厂商,例如Xilinx、Altera都投注了大量的研发力量开发良好的综合工具嵌入自己的设计软件中,还有很多并不出产FPGA芯片的公司也研究综合技术,开发了很强大的第三方综合工具,其性能甚至超过了制造商自己的综合工具,例如Synplify。
5.前仿真
一般认为这一步几乎等于功能仿真,但是它可用于检查综合有无问题。
6.布局布线
FPGA布局布线流程如图2-4所示。

        布局布线在FPGA设计中有时又称为设计“实现”。“实现”可理解为利用实现工具把逻辑映射到目标器件物理结构的资源中,决定逻辑的最佳布局,选择逻辑与输出功能连接的布线通道进行连线,并产生相应文件(如配置文件与相关报告)。“实现”的步骤其实不止包括布局布线,但是核心处理是FPGA片内的布局布线,“实现”中的大部分时间也都花在布局布线中,其他的步骤还包括转换、映射及产生配置文件。
        布局是指从映射去除定义的逻辑和输入/输出块,并把它们分配到FPGA内部的物理位置,通常基于某种先进算法,如最小分割、模拟退火和一般的受力方向张弛等来完成;布线是指利用自动布线软件使用布线资源选择路径完成所有的逻辑连接。最新的设计实现工具是时序驱动的,即在器件的布局布线器件对整个信号通道执行时序分析。因此,可以使用约束条件操作(不限软件),完成设计规定的性能要求,在布局布线过程中,可同时提取时序信息并形成报告。
7.后仿真(时序仿真)                                                                                                                             后仿真的重要性大于功能仿真,因为功能仿真仅仅验证了设计输入的逻辑是否符合要求,而后仿真不仅要保证逻辑上的正确,而且还要在加入了器件的物理延迟特性的前提下保证正确的时序关系。此外,仿真工具进行时序仿真所耗费的时间也远大于功能仿真。图2-5为后仿真流程示意。

8.静态时序分析
        在设计实现过程中,在映射后需要对一个设计的实际功能块的延时和估计的布线延时进行时序分析;而在布局布线后,也要对实际布局布线的功能块延时和实际布线延时进行静态时序分析。从某种程度上来说,静态时序分析可以说是整个FPGA设计中最重要的步骤,它允许设计者详细地分析所有关键路径并得出一个有次序的报告,而且报告中含有其他调试信息。例如,每个网络节点的删除或容性负载等。静态时序分析器可以用来检查设计的逻辑和时序,以便计算各通路的性能,识别可靠的踪迹,检测建立和保持时间的配合,时序分析器不要求产生输入激励或者测试向量。虽然Xilinx和Altera在FPGA开发套件上拥有时序分析工具,但是在拥有第三方的专门时序分析工具的情况下,可以利用FPGA厂家的设计工具进行布局布线,而使用第三方的专门时序分析工具。一般FPGA厂家在其设计环境下都有与第三方时序分析工具的接口。利用第三方分析工具查看关键路径或设计者感兴趣的通路时序,并对其进行分析,再次对原来的设计进行时序约束,可以提高工作效率和减少关键路径的延时。与综合过程相似,静态时序分析也是一个重要的过程,它与布局布线步骤紧密相连,这个操作通常要进行多次直到时序约束得到很好的满足。时序分析的难度很大,要求设计者不仅要对设计中的关键信号、关键时序有很清楚的认识,还要深入了解FPGA的内部物理结构和布线延时的影响。                                                                                                                     9.下载和调试
        下载是在功能仿真与时序仿真正确的前提下,将“实现”完成后形成的文件下载到板上的FPGA中,也称为芯片配置。FPGA设计有两种配置形式:一种是直接由计算机经过专用的下载电缆进行配置;另一种是由外围配置芯片进行上电视自动配置。掉电时FPGA具有信息丢失的特性,可在验证初期使用电缆直接下载,等到形成产品时再将配置文件烧录到配置芯片中。FPGA大多支持IEEE的JTAG标准,因此,使用芯片上的JTAG接口是最常用的下载方式。
        将文件下载到FPGA芯片内部后进行实际器件的物理测试即为电路验证,当得到与预期相符合的验证结果后就证明了设计的正确性。电路验证对FPGA投入生产具有最终的决定意义。
        调试验证的工具和方法包括示波器、逻辑分析仪和使用实施触发采样软件(如Xilinx公司与安捷伦合作开发的ChipScope)。现在看来实时触发采样软件的采用极大的方便了FPGA片内的所有信号,只须在设计时附附加测试模块,以及进行相关的引脚映射。最后调试通过后,再将测试模块从设计中去掉。从这个角度看,选择芯片和设计时应预留一定的逻辑资源余量,以便加入测试部分等。这也是硬件设计区别与软件设计的一个重要特征。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值