您的位置 首页 测评

听大神聊FPGA规划:恍然大悟

FPGA是可编程芯片,因此FPGA的设计方法包括硬件设计和软件设计两部分。硬件包括FPGA芯片电路、存储器、输入输出接口电路以及其他设备,软件即是相应的HDL程序以及最新才流行的嵌入式C程序。硬件

  FPGA是可编程芯片,因而FPGA的规划办法包含硬件规划和软件规划两部分。硬件包含FPGA芯片电路、存储器、输入输出接口电路以及其他设备,软件便是相应的HDL程序以及最新才盛行的嵌入式C程序。硬件规划是根底,但其办法比较固定,本书将在第4节对其进行详细介绍,本节首要介绍软件的规划办法。

  现在微电子技能现已开展到SOC阶段,即集成体系(Integrated System)阶段,相关于集成电路(IC)的规划思维有着革命性的改动。SOC是一个杂乱的体系,它将一个完好产品的功用集成在一个芯片上,包含中心处理器、存储单元、硬件加速单元以及许多的外部设备接口等,具有规划周期长、完结本钱高档特色,因而其规划办法必定是自顶向下的从体系级到功用模块的软、硬件协同规划,到达软、硬件的无缝结合。

  这么巨大的作业量明显超出了单个工程师的才能,因而需求依照层次化、结构化的规划办法来施行。首要由总规划师将整个软件开发使命区分为若干个可操作的模块,并对其接口和资源进行评价,编制出相应的行为或结构模型,再将其分配给下一层的规划师。这就答应多个规划者一起规划一个硬件体系中的不同模块,并为自己所规划的模块担任;然后由上层规划师对基层模块进行功用验证。

  自顶向下的规划流程从体系级规划开端,区分为若干个二级单元,然后再把各个二级单元区分为下一层次的根本单元,一向下去,直到能够运用根本模块或许IP核直接完结停止,如图1-6所示。盛行的FPGA开发东西都供给了层次化办理,能够有用地整理错综杂乱的层次,能够方便地查看某一层次模块的源代码以修正过错。

    

  图1-6 自顶向下的FPGA规划开发流程

  在工程实践中,还存在软件编译时长的问题。因为大型规划包含多个杂乱的功用模块,其时序收敛与仿真验证杂乱度很高,为了满意时序方针的要求,往往需求重复修正源文件,再对所修正的新版本进行从头编译,直到满意要求停止。这里边存在两个问题:首要,软件编译一次需求长达数小时乃至数周的时刻,这是开发所不能容忍的;其次,从头编译和布局布线后成果差异很大,会将已满意时序的电路损坏。因而有必要提出一种有用进步规划功用,承继已有成果,便于团队化规划的软件东西。FPGA厂商意识到这类需求,由此开发出了相应的逻辑确定和增量规划的软件东西。例如,Xilinx公司的处理计划便是PlanAhead。

  Planahead 答应高层规划者为不同的模块区分相应FPGA芯片区域,并答应底层规划者在在所给定的区域内独登时进行规划、完结和优化,等各个模块都正确后,再进行规划整合。假如在规划整合中呈现过错,独自修正即可,不会影响到其它模块。Planahead将结构化规划办法、团队化协作规划办法以及重用承继规划办法三者完美地结合在一起,有用地进步了规划功率,缩短了规划周期。

  不过从其描绘能够看出,新式的规划办法对体系顶层规划师有很高的要求。在规划初期,他们不只要评价每个子模块所耗费的资源,还需求给出相应的时序联系;在规划后期,需求依据底层模块的完结状况完结相应的修订。

  典型FPGA开发流程

  FPGA的规划流程便是运用EDA开发软件和编程东西对FPGA芯片进行开发的进程。FPGA的开发流程一般如图1-7所示,包含电路规划、规划输入、功用仿真、归纳优化、归纳后仿真、完结、布线后仿真、板级仿真以及芯片编程与调试等首要进程。

    

  图1-7 FPGA开发的一般流程

  1. 电路规划

  在体系规划之前,首要要进行的是计划证明、体系规划和FPGA芯片挑选等准备作业。体系工程师依据使命要求,如体系的方针和杂乱度,对作业速度和芯片自身的各种资源、本钱等方面进行权衡,挑选合理的规划计划和适宜的器材类型。一般都选用自顶向下的规划办法,把体系分红若干个根本单元,然后再把每个根本单元区分为下一层次的根本单元,一向这样做下去,直到能够直接运用EDA元件库停止。

  2. 规划输入

  规划输入是将所规划的体系或电路以开发软件要求的某种办法表示出来,并输入给EDA东西的进程。常用的办法有硬件描绘言语(HDL)和原理图输入办法等。原理图输入办法是一种最直接的描绘办法,在可编程芯片开展的前期运用比较广泛,它将所需的器材从元件库中调出来,画出原理图。这种办法尽管直观并易于仿真,但功率很低,且不易保护,不利于模块结构和重用。更首要的缺点是可移植性差,当芯片晋级后,一切的原理图都需求作必定的改动。现在,在实践开发中运用最广的便是HDL言语输入法,运用文本描绘规划,能够分为一般HDL和行为HDL。一般HDL有ABEL、CUR等,支撑逻辑方程、真值表和状态机等表达办法,首要用于简略的小型规划。而在中大型工程中,首要运用行为HDL,其干流言语是Verilog HDL和VHDL。这两种言语都是美国电气与电子工程师协会(IEEE)的规范,其一起的杰出特色有:言语与芯片工艺无关,利于自顶向下规划,便于模块的区分与移植,可移植性好,具有很强的逻辑描绘和仿真功用,而且输入功率很高。

  3. 功用仿真

  功用仿真,也称为前仿真,是在编译之前对用户所规划的电路进行逻辑功用验证,此刻的仿真没有推迟信息,仅对开端的功用进行检测。仿真前,要先运用波形编辑器和HDL等树立波形文件和测验向量(行将所关怀的输入信号组合成序列),仿真成果将会生成陈述文件和输出信号波形,从中便能够调查各个节点信号的改动。假如发现过错,则回来规划修正逻辑规划。常用的东西有Model Tech公司的ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog以及NC-VHDL等软件。

  4. 归纳优化

  所谓归纳便是将较高档笼统层次的描绘转化成较低层次的描绘。归纳优化依据方针与要求优化所生成的逻辑衔接,使层次规划平面化,供FPGA布局布线软件进行完结。就现在的层次来看,归纳优化(Synthesis)是指将规划输入编译成由与门、或门、非门、RAM、触发器等根本逻辑单元组成的逻辑衔接网表,而并非实在的门级电路。实在详细的门级电路需求运用FPGA制造商的布局布线功用,依据归纳后生成的规范门级结构网表来发生。为了能转换成规范的门级结构网表,HDL程序的编写有必要契合特定归纳器所要求的风格。因为门级结构、RTL级的HDL程序的归纳是很老练的技能,一切的归纳器都能够支撑到这一级其他归纳。常用的归纳东西有Synplicity公司的Synplify/Synplify Pro软件以及各个FPGA厂家自己推出的归纳开发东西。

  5. 归纳后仿真

  归纳后仿真查看归纳成果是否和原规划共同。在仿真时,把归纳生成的规范延时文件反标注到归纳仿真模型中去,可估量门延时带来的影响。但这一进程不能估量线延时,因而和布线后的实践状况还有必定的距离,并不非常准确。现在的归纳东西较为老练,关于一般的规划能够省掉这一步,但假如在布局布线后发现电路结构和规划目的不符,则需求回溯到归纳后仿真来承认问题之地点。在功用仿真中介绍的软件东西一般都支撑归纳后仿真。

  6. 完结与布局布线

  完结是将归纳生成的逻辑网表装备到详细的FPGA芯片上,布局布线是其间最重要的进程。布局将逻辑网表中的硬件原语和底层单元合理地装备到芯片内部的固有硬件结构上,而且往往需求在速度最优和面积最优之间作出挑选。布线依据布局的拓扑结构,运用芯片内部的各种连线资源,合理正确地衔接各个元件。现在,FPGA的结构非常杂乱,特别是在有时序约束条件时,需求运用时序驱动的引擎进行布局布线。布线结束后,软件东西会主动生成陈述,供给有关规划中各部分资源的运用状况。因为只要FPGA芯片出产商对芯片结构最为了解,所以布局布线有必要挑选芯片开发商供给的东西。

  7. 完结与布局布线

  时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到规划网表中来检测有无时序违规(即不满意时序约束条件或器材固有的时序规矩,如树立时刻、坚持时刻等)现象。时序仿真包含的推迟信息最全,也最准确,能较好地反映芯片的实践作业状况。因为不同芯片的内部延时不一样,不同的布局布线计划也给延时带来不同的影响。因而在布局布线后,经过对体系和各个模块进行时序仿真,剖析其时序联系,估量体系功用,以及查看和消除竞赛冒险对错常有必要的。在功用仿真中介绍的软件东西一般都支撑归纳后仿真。

  8. 板级仿真与验证

  板级仿真首要运用于高速电路规划中,对高速体系的信号完好性、电磁搅扰等特征进行剖析,一般都以第三方东西进行仿真和验证。

  9. 芯片编程与调试

  规划的最终一步便是芯片编程与调试。芯片编程是指发生运用的数据文件(位数据流文件,Bitstream Generation),然后将编程数据下载到FPGA芯片中。其间,芯片编程需求满意必定的条件,如编程电压、编程时序和编程算法等方面。逻辑剖析仪(Logic Analyzer,LA)是FPGA规划的首要调试东西,但需求引出许多的测验管脚,且LA价格昂贵。现在,干流的FPGA芯片出产商都供给了内嵌的在线逻辑剖析仪(如Xilinx ISE中的ChipScope、Altera QuartusII中的SignalTapII以及SignalProb)来处理上述对立,它们只需求占用芯片少数的逻辑资源,具有很高的有用价值。

  依据FPGA的SOC规划办法

  依据FPGA的SOC规划理念将FPGA可编程的长处带到了SOC范畴,其体系由嵌入式处理器内核、DSP单元、大容量处理器、吉比特收发器、混合逻辑、IP以及原有的规划部分组成。相应的FPGA规划大都在百万门以上,适合于许多范畴,如电信、计算机等职业。

  体系规划办法是SOC常用的办法学,其优势在于,可进行重复修正并对体系架构完结进行验证,包含SOC集成硬件和软件组件之间的接口。不过,现在仍存在许多问题,最大的问题便是没有通用的体系描绘言语和体系级归纳东西。跟着FPGA渠道的融入,将 SOC逐渐地面向了有用。SOC渠道的中心部分是内嵌的处理内核,其硬件是固定的,软件则是可编程的;外围电路则由FPGA的逻辑资源组成,大都以IP 的办法供给,例如存储器接口、USB接口以及以太网MAC层接口等,用户依据自己需求在内核总线上增加,并能自己订制相应的接口IP和外围设备。

  依据FPGA的典型SOC开发流程为:

  1.芯片内的考虑

  从规划生成开端,规划人员需求从硬件/软件协同验证的思路下手,以找出只能在体系集成阶段才会被发现的软、硬件缺点。然后挑选适宜的芯片以及开发东西,在归纳进程得到优化,随后进行准确的完结,以满意实践需求。因为规划规划越来越大,作业频率也到了数百兆赫兹,布局布线的推迟将变得非常重要。为了确保满意时序,需求在布局布线后进行静态时序剖析,对规划进行验证。

  2.板级验证

  在芯片规划结束后,需求再进行板级验证,以便在印刷电路板(PCB)上确保与开始规划功用共同。因而,PCB布局以及信号完好性测验应被归入规划流程。因为芯片内规划所做的任何改动都将反映在下流的规划流程中,各个进程之间的数据接口和办理也有必要是无误的。估计SOC体系以及一切必要的额定进程将使数据的大小成指数增加,因而,办理各种数据集自身是急剧挑战性的使命。

 

 

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/158707.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部