资源描述
1 2 1 2 3 4 5 现代电子设计技术的核心就是 子设计自动化, 术。利用子设计师可以方便地实现 子电路设计和 3 4 广义的 除了狭义的 包括计算机辅助分析 如,印刷电路板计算机辅助设计 如。 在广义的 此它并 不能称为真正意义上的 5 狭义的 就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计开发工具的 本书讨论的对象专指狭义的 个层次 6 ( 1) ( 2)利用 ( 3) 7 ( 1) 高层综合与优化的理论与方法取得了很大的进展,其结果 大大缩短了复杂的 同时改进了设计质量; ( 2) 采用硬件描述语言来描述 10万门以上的设计,形成了国际通用的 们均支持不同层次的描述,使得 复杂 于传递、交流、保存与修改,并可建立独立的工艺设计文档,便于设计重用 ; 8 ( 3)开放式的设计环境(各厂家均适合); ( 4) 自顶向下的算法; ( 5)丰富的元器件模块库; ( 6)具有较好的人机对话界面与标准的 ( 7)建立并行设计工程框架结构的集成化设计环境,以适应当今 模大而复杂,数字与模拟电路并存,硬件与软件并存,产品上市更新快。 9 20世纪 70年代 计算机辅助设计 20世纪 80年代 计算机辅助工程设计阶段 20世纪 90年代 电子系统设计自动化阶段 10 (一)硬件描述语言 硬件描述语言( 各种描述方法中最能体现 所谓硬件描述语言,实际就是一个描述工具,其描述的对象就是 待设计电路系统的逻辑功能、实现该功能的算法、选用的电路结构以及其他各种约束条件 等。 通常要求 能描述系统的结构。 11 目前主要有以下两种 1 983年由 司首创的,主要用于数字系统的设计。 2 0世纪 80年代后期,出于军事工业的需要开发的。 12 级 描述语言,适用于电路高级建模,综合的效率和效果较好。 级 的描述语言,适用于描述门级电路, 容易控制电路资源,但其对系统的描述能力不如 13 (二)可编程逻辑器件 可编程逻辑器件(简称 一种由用户编程来实现某种逻辑功能的新型逻辑器件。 它不仅速度快、集成度高,能够完成用户定义的逻辑功能,还可以加密和重新定义编程,其允许编程次数可多达上万次。 使用可编程逻辑器件可大大简化硬件系统、降低成本、提高系统的可靠性、灵活性。 14 目前, 场可编程门阵列 )和 杂可编程逻辑器件 )两大类。 速度和高可靠性。由于它们的明显特点,可以应用于超高速领域和实时测控方面以及嵌入式领域等等。 15 (三) 目前在国内比较流行的 件工具主要有 AX+和 、四家公司的 16 表 0 厂商 软件适用器件系列 软件支持的描述方式 AX+ 逻辑图、波形图、 逻辑图、 逻辑图、 逻辑图、 逻辑图、 17 手工设计方法的缺点是: 1)复杂电路的设计 、 调试十分困难 。 2)如果某一过程存在错误 , 查找和修改十分不便 。 3)设计过程中产生大量文档 ,不易管理 。 4)对于集成电路设计而言 , 设计实现过程与具体生产工艺直接相关 , 因此可移植性差 。 5)只有在设计出样机或生产出芯片后才能进行实测 。 1)采用硬件描述语言作为设计输入 。 2)库 (引入 。 3)设计文档的管理 。 4)强大的系统建模 、 电路仿真功能 。 5)具有自主知识产权 。 6)开发技术的标准化 、 规范化以及 7)适用于高效率大规模系统设计的自顶向下设计方案 。 8)全方位地利用计算机自动设计 、 仿真和测试技术 。 9)对设计者的硬件知识和硬件经验要求低 。 10)高速性能好 。 11)纯硬件系统的高可靠性 。 18 8位 波器阶数 单位: 到相当速度所需 单位: 162432 104 101 103 105 832 1616 2472 3360 19 个层次 1、逻辑行为的实现 2、控制与信号传输功能的实现 3、算法的实现 如:译码器、红绿交通灯控制、表决器、显示扫描器、电梯控制、乒乓球等电路的设计,时钟频率一般低于 4如:各类信号发生器、 A/S/2通信、钟频率一般在 25 如:离散 字滤波器、浮点乘法器、高速宽位加法器、数字振荡器、数字锁相环、调制解调器、图象 钟频率一般在 50 20 电子 渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。 1 2 3 4 第 1章 21 要求 熟悉面向 知识点 理解可编程逻辑器件 掌握面向 掌握面向 理解硬件描述语言 重点和难点 软件包 硬件描述语言 22 23 第 1章 可编程逻辑器件 24 可编程逻辑器件 一、可编程逻辑器件概述 (一) 杂可编程逻辑器件 场可编程门阵列 上至高性能的 至简单的 74系列电路,都可以用 程师可以通过传统的原理图输入法或是硬件描述语言,自由的设计一个数字系统。 如何使用 数字电路基础,会使用计算机,有一定编程基础。 25 二、 可编程逻辑器件 ( P L D ) 简单 P L D 复杂 P L D P R O M P A L P L A G A L C P L D F P G A 26 27 三、 (一)基于乘积项( (二)乘积项结构 逻辑实现原理 (三)查找表( 原理与结构 (四)查找表结构的 28 与阵列(固定)或阵列(可编程)0例:用 29 30 查找表 31 接烧写程序 掉电后程序丢失 ;理论上擦写 100万次 以上;一般使用需要外挂 以达到几百万门电路 。 比如 接烧写程序 掉电后程序不会消失 ;一般可以擦写 几百次 ,并且一般宏单元在 512以下。(比如 000/7000/9000和 四、选择 32 输入的组合逻辑。 如果设计中使用到大量触发器,那么使用 往都是几千上万, 12个逻辑单元,而且如果用芯片价格除以逻辑单元数量, 33 面向 硬 件 测 试测 试 电 路仿真器功 能 仿 真行 为 仿 真时 序 仿 真 仿 真功 能 仿 真编程、下载编 程 器 / 下 载 电 缆V H D L / V e r i l o 图 、 S R A M 文件、自 动 优 化 、 布 局 、 布 线 / 适 配F P G A / C P L D 布 线 / 适 配 器( E D I F , X N F , V H D L )网 表 文 件程序逻 辑 综 合 、 优 化合器生成 程序图 形 编 辑 器文 本 编 辑 器34 1源程序的编辑和编译 常用的源程序输入方式有三种: (1) 原理图输入方式: (2) 状态图输入方式: (3) 35 利用 理图输入方式比较容易掌握,直观且方便。 ( 1)原理图输入方式: 36 (2) 状态图输入方式: 以图形的方式表示状态图进行输入。当填好时钟信号名、状态转换条件、状态机类型等要素后,就可以自动生成 种设计方式简化了状态机的设计,比较流行。 (3) 最一般化、最具普遍性的输入方法,任何支持 2逻辑综合和优化 逻辑综合,就是将电路的高级语言描述转换成低级的,可与 逻辑映射的过程,就是将电路的高级描述,针对给定硬件结构组件,进行编译,优化、转换和综合,最终获得 门级电路甚至更底层的电路描述文件。 而网表文件就是按照某种规定描述电路的基本组成及如何相互连接的关系的文件。 37 3目标器件的布线 /适配 所谓逻辑适配,就是将由综合器产生的网表文件针对某一具体的目标器件进行逻辑映射操作。其中包括底层器件配置、逻辑分割、逻辑优化、布线与操作等,配置于指定的目标器件中,产生最终的下载文件,如 38 4目标器件的编程 /下载 如果编译、综合、布线 /适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,即满足原设计的要求,则可以将由 适配器产生的配置 /下载文件通过编程器或下载电缆载入目标芯片 。 39 5设计过程中的有关仿真 设计过程中的仿真有三种,它们是: 行为仿真: 该仿真只是根据 具体电路没有关系。 功能仿真: 就是将综合后的 时序仿真: 该仿真已将器件特性考虑进去,因此可以得到精确的时序仿真结果。 40 6硬件仿真 /硬件测试 所谓 硬件仿真 ,就是在 利用 过后再将其 一过程称为硬件仿真。 所谓 硬件测试 ,就是针对 下载文件下载到 系统的设计进行的功能检测,这一过程称为硬件测试。 注意: ,固需要硬件仿真和测试。 41 二、 分析方法 基于 顶向下 进行设计的。 即首先采用可完全独立于目标器件芯片物理结构的硬件描述语言,在系统的基本功能或行为级上对设计的产品进行描述和定义,结合多层次的仿真技术,确保设计的可行性与正确性的前提下,完成功能确认。 然后利用 功能描述转换成某一具体目标芯片的网表文件,输出给该器件厂商的布局布线适配器,进行逻辑映射及布局布线,再利用产生的仿真文件进行包括功能和时序的验证,以确保实际系统的性能。 42 43 采用自顶向下的设计方法有如下优点 : (1) 自顶向下设计方法是一种模块化设计方法。符合常规的逻辑思维习惯; (2) 高层设计同器件无关,可以完全独立于目标器件的结构。 (3) 采用硬件描述语言,设计易于在各种集成电路工艺或可编程器件之间移植。 (4) 适合多个设计者同时进行设计。 三、表示方法 1、文本表示方式( 2、图形表示方式(原理图,状态图、波形图) 3、文本、图形混用方式 44 45 四、实现方法 1硬件描述语言编程实现法 2原理图设计实现法 3参数可设置兆功能块实现法 4软的或硬的 46 面向 目前世界上有十几家生产 大的三家是: 中 0%以上的市场份额。通常来说,在欧洲用 日本和亚太地区用 美国则是平分秋色。 可以讲 于 内很多人喜欢用 司I、 I,考虑到 以本书的 I。 47 设计流程图 48 设计输入文件类型 49 硬件描述语言 一 、 硬件描述语言 常用硬件描述语言有 面从使用方面将三者进行对比。 1逻辑描述层次 2设计要求 3综合过程 4对综合器的要求 5支持的 6国际化程度 50 本章小结 概 述 可编程逻辑器件 面向 面向 硬件描述语言 第 2章 设计法入门 51 作者 : 苏莉萍 陈东 廖超平 要求 掌握 I 器件编程 知识点 理解 理解 I 器件编程 重点和难点 52 作者 : 苏莉萍 陈东 廖超平 第 2章 设计法入门 应用数字逻辑电路的基本知识,使用用 可以把原有的使用中小规模的通用数字集成电路设计的数字系统移埴到 面以一个一位数值比较器的设计为例说明 一、建立工程文件夹 1新建一个文件夹作为工程项目目录 首先在计算机中建立一个文件夹作为工程项目目录,此工程目录不能是根目录,比如 D:,只能是根目录下的目录,比如D: 2建立工程项目 运行 执行 令 ,建立工程。如下图示。 在图 2 在所弹出的 写 中第一、第二、第三个文本框分别是工程项目目录、项目名称和项目顶层设计实体的名称。 按 现添加工程文件的对话框如图 若原来已有文件,可选择,这里直接按 择 在 据需要选择一种型号的 后在“ 中根据需要的 意在 显示所有的器件型号。再点击 现下面的对话框。 这是选择其它 们使用 此不作任何改动。按 1 建立原理图文件 执行 出新建文件对话框如图。 二、编辑设计图形文件 执行 把它另存为文件名是 文件后缀为 将 “ to 项选中 , 使该文件添加到刚建立的工程中去 。 如图下示 。 2编辑输入原理图文件 ( 1)元件的选择与放置 ( 2)连接各个元件符号 ( 3)设定各输入输出管脚名 完成原理图编辑输入后,保存设计图形文件,就可编译设计图形文件。执行 行编译。 编译结束后,会出现如下页图对话框,对话框会显示编译的错误和警告的情况。若有错误 , 则可先双击编译器界面下方出现的第一个错误提示,可使第一个错误处改变颜色。检查纠正第一个错误后保存再编译,如果还有错误,重复以上操作,直至最后通过。最后通过时应没有错误提示但可有警告提示。 三、编译设计图形文件 可以通过查看编译报告了解有关情况,比如定时分析情况,下图是编译报告中关于每个输出信号对输入信号的延迟时间的报告。 (1)新建用于仿真的波形文件 (2)添加需要的输入输出引脚 (3)设置仿真时间 (4)设置栅格的大小 (5)设置输入信号的波形 (6)保存文件,保存名为默认名 (7)进行功能仿真 四、时序仿真设计文件 执行 本设计电路封装生成一个元件符号,供以后在原理图编辑器下进行层次设计时调用。 五、生成元件符号 使用 I 软件成功编译工程之后,就可以对 件进行编程或配置,进而进行硬件测试。 I 块生成 I 以用编程文件与 程硬件一起对器件进行编程或配置。 还可以使用 I 独立版本对器件进行编程和配置。 2 2 I 器件编程 一、编程硬件与编程模式 所使用的 程硬件可以是 I 或 载电缆或 程单元 (国内许多开发板和实验箱使用 体情况请查看所使用的开发板和实验箱的有关所明。 有四种编程模式: 被动串行模式 ( 式、主动串行编程模式 (插座内编程模式( 被动串行和 程硬件对单个或多个器件进行编程。主动串行编程模式使用 行配置器件进行编程。 插座内编程模式使用 程硬件对单个 配置器件进行编程。 二、器件设置和引脚的锁定 1 器件的选择 2选择配置器件的工作方式(可不做) 3选择配置器件(使用 4选择闲置引脚的状态(可不做) 5引脚的锁定 三、编程下载设计文件 1 式编程下载 ( 1)硬件连接; ( 2)打开编程窗口、选择编程模式和配置文件; ( 3)设置编程器(若是初次安装时); ( 4)配置下载。 2 主动串行编程模式 ( ( 1) 硬件连接 ( 2) 打开编程窗口 ( 3) 选择编程模式和配置文件 ( 4) 设置编程器 ( 若是初次安装时 ) ( 5) 编程下载 四、设计电路硬件调试 下载成功后即可进行设计电路硬件调试。具体方法应考虑所设计电路功能和开发板或实验箱的具体情况,这里不做详细介绍。 本章小结 件编程 原理图输入法 建立工程文件夹 编辑设计图形文件 编译设计图形文件 时序仿真设计文件 生成元件符号 编程硬件与编程模式 器件设置和引脚的锁定 编程下载设计文件 设计电路硬件调试 要求 进一步掌握 知识点 原理图输入法中 原理图输入法中 原理图输入法中的层次化设计 重点和难点 原理图输入法中的层次化设计 第 3章 原理图输入法中 理图输入法中 理图输入法中的层次化设计 理图输入法中 在 供使用的元件库除了基本逻辑元件库以外,还有 要将设计文件保存至工程文件夹,并设置成 则,编译不成功; 线不实、不在工程文件夹下等; 建立波形文件的方法; 仿真之前,应先设置 便有足够长的仿真时间; 仿真变量的设置:只给输入变量加入,输出是结果,是用来验证电路正确与否的,故输出不能设值; 最好在全局范围内设值,否则,保存的波形不好看 . 原理图输入法常见错误 例 3 1 用 74151设计一个三人表决电路。 三人表决电路的真值表如下: a b c y 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 其最小项表达式是: 根据 可知道使用 74151设计的三人表决电路的原理图。 a b 同时,波形仿真结果如下: 例 3 2 用两块 74161设计一个五十进制的计数器。 74161是 4位二进制加法计数器 ,将两块 74161可得八位二进制加法计数器。其模是 256。如果计数器从开始 0计数,要构成五十进制的计数器,当计数器的值计到十进制数 49即二进制数 00110001时,要让两块 74161的同步置数端有效,使两块74161同时置零。根据此要求设计电路如下图。 其仿真波形如图: 在原理图输入法中,有三种元件之间的连线 : 节点( 总线( 一般的不是节点和总线的连线。 随着设计的数字系统越来越复杂,系统中每个模块都要从头开始设计是非常困难的。 知识产权的出现使得设计过程变得简单得多。 计成参数可修改的模块,让其他用户可以直接调用这些模块。 用户可以在自己的 少设计和调试时间,降低开发成本,提高开发效率。 3 2原理图输入法中 (种,在 一些内带的基本宏功能(供用户使用,本节主要介绍这些 本宏功能可在原理图设计输入法中使用,也可在 节介绍的是基本宏功能在原理图设计输入法中使用,后者在第五章再做介绍。 I/包括时钟数据恢复、锁相环、双数据速率、千兆位收发器块 I 储组件 存储器、移位寄存器宏模块和 例 3 4 函数应用 二、 基本宏功能应用实例 通过编译仿真,其仿真波形如图 : 例 3 5 函数应用 波形仿真结果: 例 3 6 函数应用 通过编译仿真,其仿真波形如下图。 例 3 7 函数应用 通过编译仿真,其仿真波形如图 : 层次化设计也称“ 自顶向下 ”设计方法,即将一个大的设计项目分解为若干子项目或若干层次来完成。 划分是从顶层由高往下,而设计则可先设计底层的电路,然后在高层次的设计中,逐级调用低层次的设计结果。原理图输入法可很方便地进行层次化设计。 一 般层次化设计法用于较大的项目 ,但由于篇幅的原因,下面用一个不是很大的项目来说明层次化设计法。 3 3原理图输入法中的层次化设计 例 3 8 用层次化设计设计一个两位二进制数乘法器。 1系统分析 两位二进制数相乘,最多可得四位二进制数,系统可分解为两个半加器和几个与门联结而成。 2底层电路半加器设计 半加器电路真值表 a b s c 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 由半加器的真值表可得,半加器的逻辑表达式如下: s = a b c = a b 根据半加器的逻辑表达式, 以此文件建立工程,编译通过,执行 成符号 3顶层电路两位二进制数乘法器设计 根据系统分析所得结论,可按后页图设计两位二进制数乘法器电路。 新建一个工程文件夹 建一个原理图文件,使用插入符号命令,出现选择符号的界面,选择 此文件新建工程。调出有关其他元件并按下图连线,保存、编译并通过仿真。 通过编译仿真,其仿真波形如图 : 本例的底层电路符号用原理图设计输入法设计后生成,还可以用以后介绍的文本设计输入法设计后生成,这样的设计方法称混合设计输入法。 本章小结 理图输入法中 原理图输入法中 原理图输入法中的层次化设计 109 要求 掌握 设计逻辑电路的基本方法 。 知识点 理解 理解 理解 理解 理解 重点和难点 110 11 书主要介绍 112 一、输入编辑 际操作) 1 建立工程项目 2 建立 3 编辑 二、编译仿真 1编译 2仿真 113 一个完整的 库 (程序包 (明 ; 实体 (明 ; 构造体 ( 配置 (。 114 一、库、程序包 1库与程序包的概念 程序包( 预先定义或设计好的数据类型、子程序和各种设计实体的集合; 库( 是用来存储已经完成的程序包等 库和程序包的引用声明放在设计文件的最前面。 115 2 常见的库: ( 1) : 是最常用的库,它包含: 些程序包包含有 其中 是许多其他程序包的基础。 ( 2) : 是符合 用时不需显式声明 ,它包含 116 ( 3) : 各公司提供的 ( 4) : 为现行作业库,存放设计者的 用户自己的库 。使用时不需显式声明,但必需在根目录下建立一个文件夹作为用户项目目录,这目录将被综合器默认为 ,但 并不以这个文件夹的名字为名字,它的名字是 ( 5) 用户自定义库: 用户自己定义的库 。 117 3、程序包的定义( 了解 ) 序包名 程序包首说明语句; 程序包名; 序包名 程序包体说明语句; 包集合名; 重点提示 程序包体为可选项,程序包首与程序包体名字应相同; 118 4、库与程序包的使用 除 他库与程序包使用前首先要声明。 格式如下: 名; 名 项目名; 名 最后的一个 119 例如: 库说明的作用范围从实体开始到其所属构造体、配置为止。 使用下面语句使用用户定义的程序包; 项目名; 120 实体 (以下摘自北师大出版社教材) 设计实体可以是整个系统,如像 可以是一个芯片、逻辑器件或者是一个最简单的门电路。 设计实体可以代表任何一个模块,它可以是某个层次中的一个元件,也可以是设计中的顶层模块。 121 二、实体 实体 (括 实体声明 和 结构体 两部分。 实体声明部分 描述所设计的电路与外部电路的接口,指定其输入 /输出端口或引脚。 结构体 则用来规定所设计电路的内部结构和输入与输出引脚间的逻辑关系。 122 体名 属表 );口表 );实体名; 123 放在端口声明之前,指定所设计电路所用到的类属参数, 如矢量位数、时间单位等 , 主要在进行考虑一般性的设计时用到,通过改变这些类属参数可适应不同情况要求。 例如: n:8); 124 描述所设计的电路与外部电路的接口,指定其输入 /输出端口或引脚。其格式如下: 口名 : 端口方向 端口数据类型 ; 端口名 : 端口方向 端口数据类型 ); 125 下面是一个实体声明的例子 (参照课本 S n:8); a:); f: 有 0和 1两个值, 126 结构体则用来规定所设计电路的内部结构和输入输出引脚间的逻辑关系。其格式如下: 构体名 体名 声明语句 功能描述语句 结构体名; 127 1、结构体内的声明语句 结构体的声明部分用来声明只能用于所设计电路内部的常数、数据类型、信号、元件和子程序。这些声明只能用于这个结构体中。 2、功能描述语句的类型 (1)进程语句,其内部为顺序语句 。 (2)并行过程调用语句 (3)并行的信号赋值语句包括 简单信号赋值语句、 条件信号赋值语句和选择信号赋值语句 。 (4)元件例化语句 (5)生成语句 128 下面是一个实体与结构体的具体例子: S ); F S a; 共阴数码管及其电路 并行语句( 顺序语句特点: 其中每一条语句在行为仿真时的执行顺序都是按照它们的书写顺序。 并行语句特点: 各个并行语句在行为仿真时的执行是同步进行的,其执行顺序与书写顺序无关。 135 顺序语句只能出现在进程 (函数 (过程 (。 进程语句是常用的顺序语句。其本身是并行语句。但其内部的语句却是顺序语句。 常见的顺序语句有 赋值语句、 还有一些其他不太常用的顺序语句。 136 赋值语句分 变量 赋值语句和 信号赋值语句。 变量赋值时间延迟为零; 信号赋值一定存在时间延迟。 137 1、变量赋值语句 例 :=9; B:=7; Z:=X+Y; 其中 A、 都是变量 , :=表示给变量赋值。 变量赋值语句的格式是: 目标变量 :=赋值源表达式 ; 138 2、信号赋值语句 例 y0 y0 y0 择值 =顺序语句; 顺序语句; 重点提示 157 例 158 S 1 ); la,lb,lc, ; a OF S
展开阅读全文