FPGA是可编程芯片,因而FPGA的规划办法包含硬件规划和软件规划两部分。硬件包含FPGA芯片电路、 存储器、输入输出接口电路以及其他设备,软件便是相应的HDL程序以及最新才盛行的嵌入式C程序。
现在微电子技能现已开展到SOC阶段,即集成体系(Integrated System)阶段,相对于集成电路(IC)的规划思维有着革命性的改变。SOC是一个杂乱的体系,它将一个完好产品的功用集成在一个芯片上,包含中心处理器、存储单元、硬件加速单元以及很多的外部设备接口等,具有规划周期长、完结本钱高档特征,因而其规划办法必定是自顶向下的从体系级到功用模块的软、硬件协同规划,到达软、硬件的无缝结合。
这么巨大的作业量明显超出了单个工程师的才能,因而需求依照层次化、结构化的规划办法来施行。首要由总规划师将整个软件开发使命区分为若干个可操作的模块,并对其接口和资源进行评价,编制出相应的行为或结构模型,再将其分配给下一层的规划师。这就答应多个规划者一起规划一个硬件体系中的不同模块,并为自己所规划的模块担任;然后由上层规划师对基层模块进行功用验证。
自顶向下的规划流程从体系级规划开端,区分为若干个二级单元,然后再把各个二级单元区分为下一层次的根本单元,一向下去,直到能够运用根本模块或许IP核直接完结停止,盛行的FPGA开发东西都供给了层次化办理,能够有用地整理错综杂乱的层次,能够方便地检查某一层次模块的源代码以修正过错。
在工程实践中,还存在软件编译时长的问题。因为大型规划包含多个杂乱的功用模块,其时序收敛与仿真验证杂乱度很高,为了满意时序方针的要求,往往需求重复修正源文件,再对所修正的新版本进行从头编译,直到满意要求停止。这里边存在两个问题:首要,软件编译一次需求长达数小时乃至数周的时刻,这是开发所不能容忍的;其次,从头编译和布局布线后成果差异很大,会将已满意时序的电路损坏。因而有必要提出一种有用进步规划功用,承继已有成果、便于团队化规划的软件东西。FPGA厂商意识到这类需求,由此开发出了相应的逻辑确定和增量规划的软件东西。例如,赛灵思公司的解决方案便是PlanAhead。
Planahead答应高层规划者为不同的模块区分相应FPGA芯片区域,并答应底层规划者在所给定的区域内独登时进行规划、完结和优化,等各个模块都正确后,再进行规划整合。假如在规划整合中呈现过错,独自修正即可,不会影响到其它模块。Planahead将结构化规划办法、团队化协作规划办法以及重用承继规划办法三者完美地结合在一起,有用地进步了规划功率,缩短了规划周期。
不过从其描绘能够看出,新式的规划办法对体系顶层规划师有很高的要求。在规划初期,他们不只要评价每个子模块所耗费的资源,还需求给出相应的时序联系;在规划后期,需求依据底层模块的完结状况完结相应的修订。
4.1 典型FPGA开发流程与注意事项
FPGA的规划流程便是运用EDA开发软件和编程东西对FPGA芯片进行开发的进程。典型FPGA的开发流程一般如图4.1.1所示,包含功用界说/器材选型、规划输入、功用仿真、归纳优化、归纳后仿真、完结、布线后仿真、板级仿真以及芯片编程与调试等首要进程。
1、功用界说/器材选型
在FPGA规划项目开端之前,有必要有体系功用的界说和模块的区分,其他便是要依据使命要求,如体系的功用和杂乱度,对作业速度和器材自身的资源、本钱、以及连线的可布性等方面进行权衡,挑选适宜的规划方案和适宜的器材类型。 一般都选用自顶向下的规划办法,把体系分红若干个根本单元,然后再把每个根本单元区分为下一层次的根本单元,一向这样做下去,直到能够直接运用EDA元件库停止。
2、 规划输入
规划输入是将所规划的体系或电路以开发软件要求的某种办法表示出来,并输入给EDA东西的进程。常用的办法有硬件描绘言语(HDL)和原理图输入办法等。原理图输入办法是一种最直接的描绘办法,在可编程芯片开展的前期运用比较广泛,它将所需的器材从元件库中调出来,画出原理图。这种办法尽管直观并易于仿真,但功率很低,且不易保护,不利于模块结构和重用。更首要的缺陷是可移植性差,当芯片晋级后,一切的原理图都需求作必定的改动。现在,在实践开发中运用最广的便是HDL言语输入法,运用文本描绘规划,能够分为一般HDL和行为HDL。一般HDL有ABEL、CUR等,支撑逻辑方程、真值表和状态机等表达办法,首要用于简略的小型规划。而在中大型工程中,首要运用行为HDL,其干流言语是Verilog HDL和VHDL。这两种言语都是美国电气与电子工程师协会(IEEE)的规范,其一起的杰出特征有:言语与芯片工艺无关,利于自顶向下规划,便于模块的区分与移植,可移植性好,具有很强的逻辑描绘和仿真功用,并且输入功率很高。 除了这IEEE规范言语外,还有厂商自己的言语。也能够用HDL为主,原理图为辅的混合规划办法,以发挥两者的各自特征。
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厂家自己推出的归纳开发东西。