集成电路技术和计算机技术的发展使得数字系统的设计理(编辑修改稿)内容摘要:

S y s t e m CC / C + +算 法 和 构 架设 计 仿 真 工 具V H D LV e r i l o g H D LS y s t e m V e r i l o g设 计 输 入 工 具R T L 检 查 工 具验 证 工 具仿 真 工 具综 合 数 据 库S y s t e m V e r i l o g综 合 工 具时 序 分 析 工 具验 证 工 具仿 真 工 具等 效 性 检 查 工 具后 端 数 据 库布 局 布 线 和参 数 提 取 工 具S y s t e m V e r i l o g 验 证 仿 真 工 具 图 14 ASIC 设计流程和各个步骤所使用的软件工具 EDA 技术与 VHDL 程序开发基础教程 • 8 • CPLD/FPGA设计 CPLD(Complex Programmable Logic Device,复杂可编程逻辑器 件 )和 FPGA(Field Programmable Garry Array,现场可编程门阵列 )随着 EDA技术的发展已经成为电子设计领域的重要角色,其应用相当广泛,同时也是本书介绍的重点。 高集成度、高速度和高可靠性是CPLD/FPGA最明显的特点。 随着工艺的进步和特征尺寸的缩小,可编程器件的时钟延时已经小至 1ns甚至 ps 量级,加上结合并行工作的方式, CPLD/FPGA 在超高速应用领域和实时监控方面有着非常广阔的前景。 与 ASIC设计相比, CPLD/FPGA最显著的优势就是开发周期短、投资风险小、产品上市快和 硬件升级余地大。 图 15 给出了一个 CPLD/FPGA的简要设计流程,可以看出,对工程师而言其工序相对于 ASIC设计有明显的减少。 功 能 定 义( F u n c t i o n a l S p e c . )硬 件 描 述( H D L )布 局 和 布 线( P l a c e amp。 R o u t e )综 合( S y n t h e s i s )下 载 验 证( D o w n l o a d amp。 V e r i f i c a t i o n )行 为 仿 真( B e h a v i o r a l S i m u l a t i o n )时 序 分 析( S t a t i c T i m i n g A n a l y s i s ) 图 15 CPLD/FPGA 的一般设计流程 业内的一些美国 IT 公司认为,一个 ASIC 设计的 80%的功能可用于 IP 核的构建,而CPLD/FPGA仅仅是各类再应用逻辑与 IP 核的拼装,因而可以在很短时间内完成十分复杂的设计,使产品快速进入市场,抢占市场份额。 这些特性使它的发展前景一片光明。 EDA 工程的设计流程 一 个完整的 EDA工程通常涉及系统建模、逻辑综合、故障测试、功能仿真、时序分析、形式验证等内容。 而对于设计工程师而言,系统建模中的器件模型由生产厂商给出,工程师只需要完成系统设计、逻辑综合、布局布线、仿真验证和下载测试几个步骤。 第 1 章 EDA 概 述 • 9 • 设计输入 计算辅助设计的作用就是省去了大量的图纸并可以随时随地对当前设计进行更改,然后进行加工制造,所以“设计输入”是 EDA 技术中最基本也是非常重要的一环。 举一个简单的例子,假如有一栋楼房需要建造。 首先,建筑设计师需要用各种设计图纸把将要建造的建筑表示出来;之后,相关财务 根据设计进行建筑预算;然后,根据具体的建筑设计图纸和财务预算进行施工策划和融资;之后,建筑队根据最终的施工图进行建造;当然最后还要进行最重要的一项就是“验收”,以保证所建筑的房屋符合设计要求和安全性。 由上可知,对于目标器件为 FPGA/CPLD 的 EDA 工程设计,其设计流程也应该有相似的步骤。 首先,对描述具体电子系统的源程序进行“编辑输入和编译”,这些程序是用硬件描述语言编写,通过特定的逻辑表达手段将目标系统表示出来;然后, EDA会通过相关的算法对源程序进行“逻辑综合”,这个步骤可以理解为将第一步生成的逻辑表 达式进行一系列的分解和优化,以形成更加简单的逻辑表达式如“与或非”;接下来, EDA软件将“逻辑综合”生成的一系列逻辑表达式对应于目标器件 FPGA/CPLD 进行“布线和适配”,即利用网表表示在具体的逻辑器件中实现“逻辑综合”所生成的逻辑关系表达式;之后,工程师利用EDA软件提供的“编程下载”功能将前面生成的网表变成具体的电路,即物理实现;最后,和“验收”一样,工程师需要对实现的硬件系统进行硬件仿真和测试以检测所实现的系统能否满足设计需求。 值得注意的是,在设计过程中和设计完成后还要进行大量的“仿真测试”,尤其是 比较复杂且庞大的系统,其测试向量将会变得非常大,这样就会导致测试时间过长,工作量很可能超过一个人年。 所以测试方法学也是一个值得研究的方向,由于本书的局限性,请读者参考其他测试方法学相关的书籍。 图 14 给出了具体的 EDA 设计流程,接下来将以VHDL 为例按步骤详细介绍各个过程。 1. 源程序的编辑和编译 利用 EDA 技术进行工程设计,首先要做的就是将目标系统用文本方式或者图形方式表示出来,然后进行排错编译,变成工程师熟悉的 VHDL格式,为下一步的“逻辑综合”做准 备。 2. 常用的输入方法 常用的输入方法有三种,其 中原理图输入和文本输入为大多数 EDA 设计软件所支持;状态机输入方式比较有创意, EDA 软件可以直接将状态图自动转变成可编译下载的 VHDL程序,大大简化了状态机设计的步骤,非常流行。 值得一提的是原理图设计方法,当目标系统不是非常庞大时,这种设计方法很有帮助,易读性强,有利于提高工作效率。 但是,当目标系统变得很大时,这种设计方法会使设计图变得密密麻麻,走线也非常繁杂,反而降低了易读性,很难搞清电路的实际功能,从而导致EDA 技术与 VHDL 程序开发基础教程 • 10 • 相应设计移植、入档和交流都很困难,不利于团队合作。 因此,作者比较支持传统的文本输入方式,这种方式 最普遍,任何支持 VHDL 的 EDA工具都会支持文本方式的编辑和编译。 图 16 更加具体地描述了 VHDL 开发 FPGA/CPLD 电子系统的流程。 V H D L 仿 真 器( S i m u l a t o r )行 为 仿 真( B e h a v i o u r )功 能 仿 真( F u n c t i o n a l )时 序 仿 真( T i m i n g A n a l y s i s )文 本 编 辑 器( T e x t E d i t o r )图 形 编 辑 器( G r a p h E d i t o r )生 成 V H D L 源 程 序( V H D L S o u r c e C o d e )V H D L 综 合 器( S y n t h e s i s )综 合 / 优 化( O p t i m i z a t i o n )各 种 网 表 文 件 ,如 E D I F 、 X N F 、 V H D L 等( N e t l i s t s )F P G A / C P L D 布 线 和 适 配( P l a c e amp。 R o u t e )适 配 的 自 动 优 化( O p t i m i z a t i o n )门 级 仿 真 器 功 能 仿 真( P o s t S i m u l a t i o n )。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。