采用EDA工具如何实现FPGA的功能设计?
扫描二维码
随时随地手机看文章
FPGA(Field Programmable Gate Array)是现场可编程门阵列,它是在PAL(可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。
FPGA作为专用集成电路(ASIC)领域中的一种半定制电路而出现,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。它可以被认为是一个可以通过编程来改变内部结构的芯片。具体来说,FPGA的功能实现需要设计者通过硬件描述语言,经过EDA(电子设计自动化)工具编译、综合、布局布线成后转换为可烧录的文件,最终加载到FPGA器件中去,形成定制的硬件功能。
FPGA设计流程一般包括以下步骤:
设计输入。设计者使用硬件描述语言(如Verilog或VHDL)或者设计工具(如Quartus下的AHDL)进行设计输入。对于更复杂的系统,设计师可以采用自上而下的设计方法,将整个系统划分为多个子系统。
功能仿真。此阶段主要对设计的逻辑功能进行验证。仿真过程中不会考虑延迟信息,主要检测设计的初步功能是否有误。
综合。综合是将高级抽象层次的描述转换成较低层次的描述,由设计工具编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,从而优化所生成的逻辑连接,使层次设计平面化。
综合后仿真。这一步主要是检查综合结果与原设计是否一致,对仿真时把综合生成的标准延时文件反标注到综合仿真模型中,可以估计门延时带来的影响,但无法估计线延时和布局布线后的实际情况。
实现与布局布线。实现是将从生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中关键步骤。布局过程是将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部固有的硬件结构上;布线则是根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。
时序仿真与验证。时序仿真也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规。时序仿真包含的延迟信息最准确,能较好地反映芯片的实际工作情况。
板级仿真与验证。板级仿真主要应用于高速电路设计中,对高速心态的信号完整性、电磁干扰等特性进行分析。
芯片编程与调试。芯片编程是指产生使用的数据文件(比特流),然后将编程数据下载到FPGA芯片中,此时设计者可通过在线逻辑分析仪(ILA)进行系统调试和验证。
整个设计流程可能因为设计的复杂性和特定需求而有所不同,但以上步骤一般都会涵盖在FPGA设计过程中。
采用EDA工具实现FPGA的功能设计一般包括以下步骤:
功能定义/器件选型:在FPGA设计项目之前,根据系统需求,如系统的功能和复杂度,对工作速度和器件本身的资源、成本、以及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型。这一阶段通常需要把系统分成若干个基本单元,然后再把每个基本单元划分为下一个层次的基本单元,直到可以直接使用EDA元件库为止。
设计输入:将所设计的系统或电路以开发软件要求的某种要求表示出来,并输入给EDA工具的工程。
逻辑综合:将设计输入文件与器件选型及功能定义进行对比,实现逻辑综合。
布图布线:逻辑综合后,可以执行布图布线的操作。这一步骤中,FPGA芯片内的逻辑门将被映射成物理元素,包括可配置逻辑块与输入输出块及其它资源中的过程;布局是指从映射取出定义的逻辑和输入输出块,并把它们分配到FPGA内部的物理位置;布线是指利用自动布线软件使用布线资源选择路径试着完成所有的逻辑连接。
时序约束与仿真:在布局布线期间对整个信号通道执行时序分析,因此可以使用约束条件操作。
调试和验证:通过仿真测试等方法对设计进行调试和验证,确保设计的正确性和可靠性。
以上是采用EDA工具实现FPGA功能设计的一般步骤,需要根据具体的设计需求进行调整和完善。