浅析电子设计自动化技术
2019-12-09陈宏
陈宏
摘要:本文介绍了电子设计自动化的概念,涉及需要学习的主要内容,以及自动化设计的设计流程。
关键词:EDA;定义;主要内容;流程
一、什么是EDA
EDA是电子设计自动化的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CRE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
广义定义:以计算机硬件和系统软件为基本工作平台,继承和借鉴前人在电路和系统、数据库、图形学、图论和拓扑逻辑、计算数学、优化理论等多学科的最新科技成果而研制的商品化EDA通用支撑软件和应用软件包。
一般的定义:EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方法设计电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。
EDA技术不仅具有电子系统设计的能力,而且能提供独立于工艺和厂家的系统级设计能力,具有高级抽象的设计构思手段。设计工具完全集成化,可以实现以HDL语言为主的系统级综合与仿真,从设计输入到版图的形成,几乎不需要人工干预,因此整个流程实现自动化。该阶段的EDA的发展还促进设计方法的转变,由传统的自底向上的设计方法逐渐转变为自顶向下的设计方法。EDA技术的出现,极大地提高了电路设计的效率,减轻了设计者的劳动强度。
二、EDA技术的主要内容
(1)可编程逻辑器件。(Programmable Logic Device,简称PLD)它是一种由用户编程以实现某种逻辑功能的逻辑器件。
可编程逻辑器件中应用最广泛的是:现场可编程门阵列(Field Programmable Gate Arrays,简称FPGA)和复杂可编程逻辑器件(Complex Programmable Logic Device,简称CPLD)。
FPGA/CPLD的集成规模非常大,可利用先進的EDA工具进行电子系统设计和产品开发。由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件的硬件结构没有关系,因而设计开发的各类逻辑功能块软件具有很好的兼容性和可移植性。 它几乎可用于任何型号和规模的FPGA/CPLD中,从而使得产品设计效率大幅度提高。
(2)硬件描述语言。HDL是电子系统硬件行为描述、结构描述、数据流描述的语言。硬件描述的语言种类很多,有的从PASCAL发展而来,也有一些从C语言发展而来。有些HDL已成为IEEE标准,但大部分是本企业标准。
目前常用的硬件描述语言有:
VHDL语言: 作为IEEE的工业标准硬件描述语言,在电子工程领域,已成为通用硬件描述语言
Verilog语言:支持的EDA工具较多,适用于RTL级和门电路级的描述,其综合过程较VHDL稍简单,但其在高级描述方面不如VHDL。
ABEL语言:一种支持各种不同输入方式的HDL,被广泛用于各种可编程逻辑器件的逻辑功能设计,由于其语言描述的独立性,因而能够适用于各种不同规模的可编程器件的设计。
(3)软件开发工具。EDA工具在EDA技术应用中占据及其重要的地位。EDA工具大致可以分为五个模块:设计输入编辑器、 HDL综合器、仿真器、适配器(或布局布线器)、下载器。
(4)实验开发系统。实验开发系统包括芯片下载电路及EDA实验/开发的外围资源(类似于用于单片机开发的仿真器),供硬件验证用。
三、EDA技术设计流程
完整地了解EDA技术的设计流程,对于正确选择和使用EDA软件、优化设计项目、提高设计效率十分有益。一个完整的EDA设计流程既是自顶向下设计方法的具体实施途径,也是EDA工具软件本身的组成结构。在实践中进一步了解支持这一设计流程的诸多设计工具,有效地排除设计中出现的问题,提高设计质量及总结经验。
设计流程如下:
(1)设计输入(原理图/HDL等)。利用EDA技术进行一项工程设计,首先需要利用EDA工具的文本编辑器或图形编辑器将设计工程用文本方式或图形方式表达出来,进行排错编译,为进一步的逻辑综合作准备。常用的源程序输入方式有三种:①原理图输入方式; ②HDL程序的文本输入方式; ③状态图(波形图)输入方式。
(2)逻辑综合和优化。综合就是把某些东西结合到一起,把抽象层次上的一种表述方式转换到另一种表述的过程。在电子设计领域,综合的概念可以理解为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。
(3)目标器件的适配。逻辑综合通过后必须利用适配器将综合后的网表文件针对某一具体的目标器进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布线与操作,适配完成后可以利用适配所产生的仿真文件作精确的时序仿真。
适配器的功能是将由综合器产生的网表文件配置于指定的目标器件中,产生最终的下载文件,如JEDEC格式的文件。适配所选定的目标器件(FPGA/CPLD芯片)必须属于原综合器指定的目标器件系列。对于一般的可编程模拟器件所对应的EDA软件来说,一般仅需包含一个适配器就可以了,如Lattice的PAC-DESIGNER。通常,EDA软件中的综合器可由专业的第三方EDA公司提供,而适配器则需由FPGA/CPLD供应商自己提供,因为适配器的适配对象直接与器件结构相对应。
(4)器件编程下载。如果编译、综合、适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,即满足原设计的要求,则可以将由FPGA/CPLD适配器产生的配置/下载文件通过编程器或下载电缆载入目标芯片FPGA或CPLD中。通常,将对CPLD器件的下载称为“编程”(Program),对FPGA器件中的SRAM的下载称为“配置”(Configure)。
(5)硬件仿真/硬件测试。硬件仿真和硬件测试的目的,是为了在更真实的环境中检验VHDL设计的运行情况。许多设计中的因素可能会导致设计与结果的不一致。所以,VHDL设计的硬件仿真和硬件测试是十分必要的。一般的FPGA/CPLD器件都支持JTGA技术,具有边界扫描测试能力BST(Board Scan Test)和在线编程ISP(In System Programing)能力,测试起来非常方便。