电子设计自动化(EDA)技术是新一代电子设计工程师及从事电子技术开发和研究人员的必备技能,也是电子技术类专业学生学习的重要内容。
EDA以功能强大的计算机为工具,在EDA工具软件平台上,根据设计文件(硬件描述语言 Hardware Description Language为系统的主要逻辑描述手段),自动完成编译、仿真、综合、优化、适配(或布局布线)以及下载,实现既定的电子线路系统功能。
典型的EDA工具应包括:编译器、仿真器、综合器、适配器和下载器。
HDL(Hardware Description Language)是硬件描述语言的缩写,是用于设计硬件电子系统的计算机语言,它描述系统的逻辑功能、电路结构和连接方式,是EDA技术应用中最主要的设计输入方法之一。
当前常用的HDL主要有:ABEL-HDL、VHDL和VERILOG-HDL。
逻辑器件:门、触发器;
逻辑功能部件:由逻辑器件构成,能执行某个单一功能的电路,如计数器、译码器、加法器等;
数字系统:由若干逻辑部件组成,能实现复杂功能的电路
通常说来,系统与部件之间的区别在于功能是否单一:一个存储器尽管规模很大,可达数兆字节,但因其功能单一,只能称为部件;而只需几片MSI器件即可实现的数字锁控制电路却应称之为系统
近年来,数字系统的设计大多仿效计算机组成方式,将整个系统分为控制器和受控器二部分(或分成控制器、处理器和存储器三个部分)。
在这种结构下,系统与部件的区别就在于其中有无控制器:一个数字电路,无论其规模大小,必须具有控制器才可称之为系统。
分层次的:
先做顶层设计(概念设计、总体框图,抽象级别较高 的设计)
后做底层设计(子系统、子电路,接近物理实现的设 计)
每一层次,都要进行描述、划分、综合、验证
(1)系统层次划分/画出系统框图
按照“自顶向下”的设计方法对系统进行划分(确定系统由那些模块构成,个模块又由哪些子模块构成)
(2)编码
写出VHDL代码。
(3)编译
编译器会对VHDL程序进行语法检测,还会产生用于仿真的一些内部信息。这一步通常由编译器自动完成,无需我们干预。如果VHDL语法有错误,需要回到第(2)步修改程序。
(4)功能仿真
VHDL仿真器允许定义输入并应用到设计中去,不必生成实际电路就可以观察输出。此仿真功能只要用于检测系统功能设计的正确性,不涉及具体器件的硬件特性。
(5)综合
利用综合器对VHDL代码进行综合优化处理,生成门级描述的网表文件,这是将VHDL语言描述转化为硬件电路的关键步骤。这一步通常由综合器自动完成,但设计者可以设定一些技术上的约束条件(如限定逻辑层次的最大数等)来“帮助”综合器。
(6)适配
利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化、布局布线等。此步骤将产生多项设计结果:
(7)时序仿真
根据适配后的仿真模型,可以进行时序仿真。因为这时已经得到目标器件的实际硬件特性(如时延特性等),所以仿真结果能比较精确地预期芯片的实际性能。如果仿真结果达不到设计要求,就需要修改VHDL源代码或选择不同的目标器件,甚至要重构整个系统(看到图1- 1里那个虚线的箭头了吗?这是所有设计者极力避免出现的情况)。
(8)下载到CPLD/FPGA
如果时序仿真通过,那么可以将‘适配”时产生的器件编程文件下载到CPLD或FPGA中。(FPGA的编程通常被称为“配置”)。虽然流程图中未标出从此步“往回走”的箭头,但事实上,实际的结果有可能与仿真结果有差异(可能是设计时未考虑到外部硬件的实际情况;也可能是由于仿真时测试的条件不够多,没有发现其中隐藏的错误),这时,必须再回头重新找出问题所在。
PLD的应用和发展简化了电路设计、降低了成本,提高了系统的可靠性和保密性,推动了EDA工具的发展,而且改变了数字系统的设计方法。
PLD(可编程逻辑器件)的基本结构有两种:与或阵列结构和查找表结构
任何一个逻辑函数都可以用与—或逻辑式表示,亦即用一个与—或阵列来实现。
使用多路开关实现,其基本原理是将多路开关的数据输入端接固定电平,将其地址输入作为函数的输入,多路开关的输出为逻辑函数值。