EDA技术与VHDL编程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4.1 设计输入

计算机辅助设计的作用就是省去了大量的图纸并可以随时随地地对当前设计进行更改,然后进行加工制造,所以“设计输入”是 EDA 技术中最基本也是非常重要的一环。举一个简单的例子,假如有一栋楼房需要建造。首先,建筑设计师需要用各种设计图纸把将要建造的建筑表示出来;其次,相关财务根据设计进行建筑预算;然后,根据具体的建筑设计图纸和财务预算进行施工策划和融资;之后,建筑工程队根据最终的施工图进行建造;当然最后还要进行最重要的一项就是“验收”,以保证所建筑的房屋符合设计要求和安全性。

由上可知,对于目标器件为 FPGA/CPLD 的 EDA 工程设计,其设计流程也应该有相似的步骤。首先,对描述具体电子系统的源程序进行“编辑输入和编译”,这些程序就是用硬件描述语言通过特定的逻辑表达手段将目标系统表示出来;然后,EDA 会通过相关的算法对源程序进行“逻辑综合”,这个步骤可以理解为将第一步生成的逻辑表达式进行一系列的分解和优化,以形成更加简单的逻辑表达式如“与或非”;接下来,EDA 软件将“逻辑综合”生成的一系列逻辑表达式对应于目标器件 FPGA/CPLD 进行“布线和适配”,即利用网表表示在具体的逻辑器件中实现“逻辑综合”所生成的逻辑关系表达式;之后,工程师利用EDA 软件提供的“编程下载”功能将前面生成的网表变成具体的电路,即物理实现;最后,和“验收”一样,工程师需要对实现的硬件系统进行硬件仿真和测试以检测所实现的系统能否满足设计需求。值得注意的是,在设计过程中和设计完成后还要进行大量的“仿真测试”,尤其是比较复杂且庞大的系统,其测试工作量将会变得非常大,这样就会导致测试时间过长,很可能超过一个人年。所以测试方法学也是一个值得研究的方向,由于本书的局限性,请读者参考其他测试方法学相关的书籍。图1-4 给出了具体的 ASIC 设计流程,接下来将以VHDL为例按步骤详细介绍各个过程。

1.源程序的编辑和编译

利用 EDA 技术进行工程设计,首先要做的就是将目标系统用文本方式或者图形方式表示出来,然后进行排错编译,变成工程师熟悉的 VHDL 格式,为下一步的“逻辑综合”做准备。

2.常用的输入方法

常用的输入方法有三种,其中原理图输入和文本输入为大多数 EDA 设计软件所支持,状态机输入方式比较有创意,EDA 软件可以直接将状态图自动转成可编译下载的 VHDL 程序,大大简化了状态机设计的步骤,非常流行。

值得一提的是原理图设计方法,当目标系统不是非常庞大时,这种设计方法很有帮助,易读性强,有利于提高工作效率。但是,当目标系统变得很大时,这种设计方法会使设计图变得密密麻麻,走线也非常繁杂,反而降低了易读性,很难搞清电路的实际功能,从而导致相应设计移植、入档和交流都很困难,不利于团队合作。因此,笔者比较支持传统的文本输入方式,这种方式最普遍,任何支持VHDL的 EDA工具都会支持文本方式的编辑和编译。如图1-6所示,更加具体地描述了VHDL开发FPGA/CPLD电子系统的流程。

图1-6 VHDL开发FPGA/CPLD电子系统的流程