已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章分析与设计数字电路的工具 2 2卡诺图化简法 2 3VHDL硬件描述语言基础 2 1逻辑代数 引言设计一个数字电路或数字系统 就像做一个建筑工程 它不仅需要砖瓦 预制件等这些建筑材料 还需要有效的工具和合理的工艺 本章介绍的是分析与设计数字电路的工具 首先介绍一种数学工具 逻辑代数和卡诺图 它的作用是化简和转换逻辑函数 以方便数字电路的分析和设计 然后介绍一种硬件描述语言工具 VHDL 用它和可编程逻辑器件及电子设计自动化 EDA 软件配合 可设计出功能更强大的数字电路 对于工具的学习 我们要先熟悉它 掌握使用它的基本要领 然后在以后的章节中通过反复的使用 不断的练习 逐步达到熟练掌握 得心应手的境地 2 1逻辑代数 一 逻辑代数的基本公式 2 1逻辑代数 公式的证明方法 1 用简单的公式证明略为复杂的公式 例2 1 1证明吸收律 证 例2 1 2用真值表证明反演律 1110 1110 2 用真值表证明 即检验等式两边函数的真值表是否一致 2 1逻辑代数 二 逻辑代数的基本规则 1 代入规则对于任何一个逻辑等式 以某个逻辑变量或逻辑函数同时取代等式两端任何一个逻辑变量后 等式依然成立 例如 在反演律中用BC去代替等式中的B 则新的等式仍成立 2 对偶规则将一个逻辑函数L进行下列变换 0 1 1 0 所得新函数表达式叫做L的对偶式 用表示 对偶规则的基本内容是 如果两个逻辑函数表达式相等 那么它们的对偶式也一定相等 基本公式中的公式l和公式2就互为对偶式 2 1逻辑代数 3 反演规则 利用反演规则 可以非常方便地求得一个函数的反函数 解 解 将一个逻辑函数L进行下列变换 0 1 1 0 原变量 反变量 反变量 原变量 所得新函数表达式叫做L的反函数 用表示 例2 1 3求函数的反函数 例3 1 4求函数的反函数 在应用反演规则求反函数时要注意以下两点 1 保持运算的优先顺序不变 必要时加括号表明 如例2 1 3 2 变换中 几个变量 一个以上 的公共非号保持不变 如例2 1 4 2 1逻辑代数 三 逻辑函数的代数化简法 1 逻辑函数式的常见形式一个逻辑函数的表达式不是唯一的 可以有多种形式 并且能互相转换 例如 与 或表达式 或 与表达式 与非 与非表达式 或非 或非表达式 与 或 非表达式 其中 与 或表达式是逻辑函数的最基本表达形式 2 1逻辑代数 2 逻辑函数的最简 与 或表达式 的标准 3 用代数法化简逻辑函数 1 并项法 运用公式将两项合并为一项 消去一个变量 例 1 与项最少 即表达式中 号最少 2 每个与项中的变量数最少 即表达式中 号最少 2 1逻辑代数 2 吸收法 3 消去法 运用吸收律A AB A 消去多余的与项 例 例 运用吸收律消去多余因子 先通过乘以或加上 增加必要的乘积项 再用以上方法化简 例 4 配项法 2 1逻辑代数 例2 1 6化简逻辑函数 利用A AB A 利用 在化简逻辑函数时 要灵活运用上述方法 才能将逻辑函数化为最简 2 1逻辑代数 例2 1 7化简逻辑函数 利用 利用A AB A 配项法 利用A AB A 利用 2 1逻辑代数 代数化简法的优点 不受变量数目的限制 缺点 没有固定的步骤可循 需要熟练运用各种公式和定理 需要一定的技巧和经验 不易判定化简结果是否最简 2 1逻辑代数 2 2卡诺图化简法 一 最小项与最小项表达式1 最小项 n个变量的逻辑函数中 包含全部变量的乘积项称为最小项 n变量逻辑函数的全部最小项共有2n个 最小项的基本性质 1 对于任意一个最小项 只有与之对应的一组变量取值使它的值为1 而其余各组变量取值均使它的值为0 两变量 2 对于变量的任一组取值 全体最小项的和为1 2 2卡诺图化简法 最小项表达式 与或式中的每一个与项均为最小项 任一逻辑函数可以展开为最小项表达式 例 2 逻辑函数的最小项表达式 2 2卡诺图化简法 解 m7 m6 m3 m5 m 3 5 6 7 例2 将函数转换成最小项表达式 2 2卡诺图化简法 二 卡诺图及其逻辑函数的卡诺图表示法 1 相邻最小项如果两个最小项中只有一个变量互为反变量 其余变量均相同 则称这两个最小项为逻辑相邻 简称相邻项 如果两个相邻最小项出现在同一个逻辑函数中 可以合并为一项 同时消去互为反变量的那个量 如最小项ABC和就是相邻最小项 如 2 卡诺图一个小方格代表一个最小项 然后将这些最小项按照相邻性排列起来 即用小方格几何位置上的相邻性来表示最小项逻辑上的相邻性 2 2卡诺图化简法 卡诺图的结构 1 二变量卡诺图 2 三变量卡诺图 2 2卡诺图化简法 卡诺图具有很强的相邻性 1 直观相邻性 只要小方格在几何位置上相邻 不管上下左右 它代表的最小项在逻辑上一定是相邻的 2 对边相邻性 即与中心轴对称的左右两边和上下两边的小方格也具有相邻性 3 四变量卡诺图 2 2卡诺图化简法 3 用卡诺图表示逻辑函数 解 该函数为三变量 先画出三变量卡诺图 然后根据真值表将8个最小项L的取值0或者1填入卡诺图中对应的8个小方格中即可 1 1 1 1 1 从真值表到卡诺图例2 2 3已知某逻辑函数的真值表 用卡诺图表示该逻辑函数 2 2卡诺图化简法 2 从逻辑表达式到卡诺图 a 如果表达式为最小项表达式 则可直接填入卡诺图 解 写成简化形式 解 直接填入 例2 2 4用卡诺图表示逻辑函数 然后填入卡诺图 例2 2 5用卡诺图表示逻辑函数 b 如不是最小项表达式 应先将其先化成最小项表达式 再填入卡诺图 也可由 与 或 表达式直接填入 2 2卡诺图化简法 三 卡诺图化简法 2 4个相邻的最小项可以合并 消去2个取值不同的变量 1 1 卡诺图化简逻辑函数的原理 1 2个相邻的最小项可以合并 消去1个取值不同的变量 2 2卡诺图化简法 3 8个相邻的最小项可以合并 消去3个取值不同的变量 总之 2n个相邻的最小项可以合并 消去n个取值不同的变量 2 2卡诺图化简法 2 用卡诺图合并最小项的原则 画圈的原则 1 卡诺图中所有取值为1的方格均要被圈过 即不能漏下取值为1的最小项 2 尽量画大圈 但每个圈内只能含有2n n 0 1 2 3 个相邻项 要特别注意对边相邻性和四角相邻性 3 圈的个数尽量少 4 在新画的包围圈中至少要含有1个末被圈过的1方格 否则该包围圈是多余的 3 用卡诺图化简逻辑函数的步骤 1 画出逻辑函数的卡诺图 2 合并相邻的最小项 即根据前述原则画圈 3 写出化简后的表达式 每一个圈写一个最简与项 规则是 取值为l的变量用原变量表示 取值为0的变量用反变量表示 将这些变量相与 然后将所有与项进行逻辑加 即得最简与 或表达式 2 2卡诺图化简法 解 1 由表达式画出卡诺图 2 画包围圈 合并最小项 得简化的与 或表达式 例2 2 6化简逻辑函数 L A B C D m 0 2 3 4 6 7 10 11 13 14 15 2 2卡诺图化简法 解 1 由表达式画出卡诺图 注意 图中的绿色圈是多余的 应去掉 例2 2 7用卡诺图化简逻辑函数 2 画包围圈合并最小项 得简化的与 或表达式 2 2卡诺图化简法 解 1 由真值表画出卡诺图 由此可见 一个逻辑函数的真值表是唯一的 卡诺图也是唯一的 但化简结果有时不是唯一的 a 写出表达式 b 写出表达式 例2 2 8已知某逻辑函数的真值表 用卡诺图化简该函数 2 画包围圈合并最小项 有两种画圈的方法 2 2卡诺图化简法 4 卡诺图化简逻辑函数的另一种方法 圈0法 2 用圈0法 得 解 1 用圈1法 得 对L取非得 例2 2 9已知逻辑函数的卡诺图如图示 分别用 圈1法 和 圈0法 写出其最简与 或式 2 2卡诺图化简法 2 2卡诺图化简法 1 无关项 在有些逻辑函数中 输入变量的某些取值组合不会出现 或者一旦出现 逻辑值可以是任意的 这样的取值组合所对应的最小项称为无关项 任意项或约束项 例2 2 10 在十字路口有红绿黄三色交通信号灯 规定红灯亮停 绿灯亮行 黄灯亮等一等 试分析车行与三色信号灯之间逻辑关系 四 具有无关项的逻辑函数的化简 解 设红 绿 黄灯分别用A B C表示 且灯亮为1 灯灭为0 车用L表示 车行L 1 车停L 0 列出该函数的真值 显而易见 在这个函数中 有5个最小项为无关项 带有无关项的逻辑函数的最小项表达式为 L m d 如本例函数可写成 L m 2 d 0 3 5 6 7 2 具有无关项的逻辑函数的化简 考虑无关项时 表达式为 例2 2 10 不考虑无关项时 表达式为 要充分利用无关项可以当0也可以当1的特点 尽量扩大卡诺圈 使逻辑函数更简 2 2卡诺图化简法 如果不考虑无关项 写出表达式为 3 写出逻辑函数的最简与 或表达式 2 合并最小项 注意 1方格不能漏 方格根据需要 可以圈入 也可以放弃 例2 2 11 用卡诺图法化简逻辑函数 输入是8421BCD码 L A B C D m 1 4 5 6 7 9 d 10 11 12 13 14 15 解 1 填卡诺图 2 2卡诺图化简法 2 3VHDL硬件描述语言基础 VHDL Very High SpeedIntegratedCircuitHardwareDescriptionLanguage 是目前最流行的硬件描述语言之一 它诞生于1982年 已成为IEEEStd 1076标准 许多公司的EDA设计工具都提供了对VHDL的支持 因此它得到了广泛的应用 VHDL有以下几个主要特点 1 具有很强的电路描述和建模能力 能从多个层次对数字系统进行建模和描述 从而大大简化了硬件设计任务 提高了设计效率和可靠性 2 编程与工艺无关 设计者可以专心致力于其功能的实现 而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力 3 语言标准 规范 易于共享 设计技术齐全 方法灵活 支持广泛 一 VHDL的基本结构 定义元器件库 定义电路的输入 输出引脚 描述电路的内部功能 VHDL描述的最小和基本的逻辑结构中一般包含标准库及程序包 实体和结构体三部分 2 3VHDL硬件描述语言基础 举例 用VHDL语言描述一半加器的功能 逻辑表达式是 VHDL程序如下 LIBRARYieee ieee标准库说明USEieee std logic 1164 ALL 程序包说明ENTITYadderIS adder是实体名称PORT a b INstd logic 定义输入 输出端口信号的类型c s OUTstd logic ENDENTITYadder ARCHITECTUREex1OFadderIS ex1是结构体名称BEGINs aXORb 赋值语句c aANDb ENDARCHITECTUREex1 2 3VHDL硬件描述语言基础 实体的基本格式为 ENTITY实体名ISPORT 端口名称1 输入 输出状态数据类型 端口名称2 输入 输出状态数据类型 END实体名 输入 输出状态有以下几种状态 1 IN 输入量 信号进入电路单元 2 OUT 输出量 信号从电路单元输出 3 INOUT 信号是双向的 既可以进入电路 也可以从电路输出 4 BUFFER 反馈量 常用的端口数据的类型有位型 BIT 位向量型 BIT VECTOR 标准逻辑位型 STD LOGIC 及标准逻辑位向量型 STD LOGIC VECTOR等几种 1 VHDL的实体 ENTITY 说明语句 2 3VHDL硬件描述语言基础 结构体的基本格式为 ARCHITECTURE结构体名OF实体名IS说明语句BEGIN电路描述语句END结构体名 2 结构体 ARCHITECTURE 说明语句 库是经编译后的数据集合 库的作用是使设计者共享编译过的设计结果 类似于传统设计中的元器件库 库的说明要放在程序最前面 库的调用语句格式为 LIBRARY库名 如对标准库IEEE的调用语句为 LIBRARYIEEE 3 库 LIBRARY 与程序包 PACKAGE 2 3VHDL硬件描述语言基础 两个标准库STD和IEEE中包含的程序包 常用库与程序包调用语句 LIBRARYieee USEieee std logic 1164 ALL USEieee std logic arith ALL USEieee std logic signed ALL 2 3VHDL硬件描述语言基础 二 VHDL的语言元素 1 标识符与保留字标识符是VHDL语言中符号书写的一般规则 用来表示常量 变量 信号 子程序 结构体和实体等的名称标识符组成的规则如下 1 标识符由26个英文字母和10个数字 0 9 及下划线 组成 2 标识符必须以英文字母开头 最长可以是32个字符 3 标识符中不能有两个连续的下划线 标识符的最后一个字符不能是下划线 4 标识符中的英文字母不区分大小写 例如 CP DAT1 wr 1 counter A等都是合法的标识符 保留字是具有特殊意义的标识符号 用户不能用保留字作为标识符 在例2 3 1中LIBRARY USE ENTITY IS OF ARCHITECTURE BEGIN END XOR AND等都是保留字 2 3VHDL硬件描述语言基础 2 客体类型在VHDL中可以赋值的对象称为客体 客体包括信号 变量和常量 客体类型 2 3VHDL硬件描述语言基础 3 数据类型 1 标准数据类型 2 3VHDL硬件描述语言基础 2 IEEE预定义标准数据类型在IEEE的程序包STD LOGIC 1164中定义了两个非常重要的数据类型 STD LOGIC 工业标准的逻辑位类型 取值 0 强0 1 强1 Z 高阻态 X 强未知的 W 弱未知的 L 弱0 H 弱1 忽略 U 未初始化的 STD LOGIC VECTOR 工业标准的逻辑位向量 STD LOGIC的组合 在使用这两种数据类型时 在程序中必须有库及程序包说明语句 即LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL 这两句在程序中必不可少 2 3VHDL硬件描述语言基础 3 用户定义的数据类型 枚举类型 用来表示实际生活中的某些事物所具有的特定性质 格式为 TYPE数据类型名IS 元素1 元素2 例如TYPEstate mIS s0 s1 s2 s3 s4 TYPEwenkIS sun mon tue wed thu fri sat 整数类型和实数类型 是VHDL语言中已经存在的标准数据类型的子集 定义格式为 TYPE数据名IS数据类型RANGE数值TO数值 例如TYPEdigitISintegerRANGE0TO9 TYPEsignal levelISrealRANGE 10 00TO 10 00 数组类型 具有相同的数据类型的元素集合 格式为 TYPE数组名ISARRAY范围OF数据类型 例如TYPEaISARRAY 0TO3 OFbit TYPEromISARRAY 0TO7 0TO7 OFbit 2 3VHDL硬件描述语言基础 2 3VHDL硬件描述语言基础 4 运算符 1 并行语句VHDL设计中的结构体 一般是由一个以上的并行语句构成的 所有的并行语句在结构体中都是同时执行的 与它们在程序中排列的先后顺序无关 1 并行赋值语句其功能是将一个数据或一个表达式的运算结果传送给一个数据对象 这个数据对象可以是内部信号 也可以是预定义的端口信号 其格式为 赋值目标 表达式 例 s aXORbc aANDbtmp 0 y tmp 三 VHDL的基本语句 2 3VHDL硬件描述语言基础 2 条件赋值语句WHEN ELSE其格式为 赋值目标 表达式1WHEN赋值条件1ELSE表达式2WHEN赋值条件2ELSE 表达式N 例2 3 2用WHEN ELSE语句描述异或门LIBRARYieee 库说明语句USEIEEE std logic 1164 ALL 调用库ENTITYxor2IS xor2是实体名称PORT a b INbit 定义输入量a b是标准位类型f OUTbit 定义输出量f是标准位类型ENDENTITYxor2 ARCHITECTUREex2OFxor2IS ex2是结构体名称SIGNALs bit vector 1DOWNTO0 定义内部信号s为2位位向量BEGINs a 用 将a和b连接成2位位向量赋值给sf 0 WHENs 00 ELSE 当ab 00时 f 0 1 WHENs 01 ELSE 当ab 01时 f 1 1 WHENs 10 ELSE 当ab 10时 f 1 0 当ab取其它值时 f 0ENDex2 2 3VHDL硬件描述语言基础 3 选择信号赋值语句WITH SELECT其格式为 WITH选择信号XSELECT赋值目标 表达式1WHEN选择信号值1 表达式2WHEN选择信号值2 表达式NWHENOTHERS 例2 3 3用WITH SELEC语句描述二输入端或门LIBRARYieee USEieee std logic 1164 ALL ENTITYor2ISPORT a b INstd logic f OUTstd logic ENDENTITYor2 ARCHITECTUREex3OFor2ISSIGNALs std logic vector 1DOWNTO0 BEGINs aWITHsSELECTf 0 WHEN 00 当ab 00时 f 0 1 WHENOTHERS 当ab 除了00以外的值时 f 1ENDex3 2 3VHDL硬件描述语言基础 4 进程语句PROCESS是结构体中常用的一种模块描述语句 一个结构体可以包含多个进程 各进程之间是同时执行的 但一个进程主要是由一组顺序语句组成的 进程语句不仅可以描述组合逻辑电路 还可以描述时序逻辑电路 进程语句的格式为 进程名称 PROCESS 敏感信号表 进程说明语句 BEGIN顺序语句 ENDPROCESS 进程名称 注意 敏感信号表是进程语句所特有的 只有当表中所列的某个信号发生变化时 才能启动该进程的执行 执行完后 进入等待状态 直到下一次某一敏感信号变化的到来 2 3VHDL硬件描述语言基础 例2 3 4用进程语句描述一个半加器 LIBRARYieee USEIEEE std logic 1164 ALL ENTITYadderISPORT a b INstd logic 定义输入量a b是工业标准的逻辑位类型c s OUTstd logic 定义输出量c s是工业标准的逻辑位类型ENDENTITYadder ARCHITECTUREex4OFadderISBEGINproc s PROCESS a b 定义一个名为proc s的带敏感表的进程BEGINs aXORb 赋值语句ENDPROCESS proc c PROCESS a b 定义一个名为proc c的带敏感表的进程BEGINc aANDb 赋值语句ENDPROCESS ENDex4 2 3VHDL硬件描述语言基础 1 IF语句IF语句用于实现两种或两种以上的条件判断 有三种形式 其格式如下 IF布尔表达式1THEN顺序语句ENDIF IF布尔表达式1THEN顺序语句1ELSE顺序语句2 ENDIF IF布尔表达式1THEN顺序语句1 ELSIF布尔表达式2THEN顺序语句2 ENDIF 2 顺序语句 2 3VHDL硬件描述语言基础 例2 3 5用IF语句描述异或门 LIBRARYieee USEIEEE std logic 1164 ALL ENTITYxor2ISPORT a b INstd logic f OUTstd logic ENDENTITYxor2 ARCHITECTUREex5OFxor2ISBEGINPROCESS a b BEGINIF a b THENf 0 IF语句ELSEf 1 ENDIF ENDPROCESS ENDex5 2 3VHDL硬件描述语言基础 2 CASE语句CASE语句用于两路或多路分支判断结构 它以一个多值表达式为判断条件 依条件式的取值不同而实现多路分支 其格式为 CASE表达式ISWHEN值1 顺序语句1 WHEN值2 顺序语句2 WHEN值N 顺序语句N WHENOTHERS 顺序语句N 1 ENDCASE 2 3VHDL硬件描述语言基础 例2 3 6用CASE语句描述半加器 LIBRARYieee USEIEEE std logic 1164 ALL ENTITYadderISPORT a b INstd logic c s OUTstd logic ENDENTITYadder ARCHITECTUREex7OFadderISSIGNALabc std logic vector 1DOWNTO0 定义内部信号abcBEGINabcs相当于THEN的作用 不是运算符WHEN 01 sssNULL NULL为空语句ENDCASE ENDPROCESS ENDARCHITECTUREex7 2 3VHDL硬件描述语言基础 3 LOOP语句LOOP语句用于循环控制 与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 草坪使用合同范本
- 年度智能人体秤竞争策略分析报告
- 2025届上海市SOEC高三物理第一学期期末教学质量检测模拟试题含解析
- 2025届吉林省长春九台师范高中物理高一第一学期期中检测模拟试题含解析
- 2025届安徽省太和县民族中学高三上物理期中综合测试试题含解析
- 2025届福建省安溪第六中学物理高二第一学期期中学业水平测试试题含解析
- 河北省乐亭二中2025届高三上物理期中预测试题含解析
- 湖南省长沙市湖南师大附中2025届高一物理第一学期期末经典试题含解析
- 内蒙古自治区阿拉善盟2025届物理高二上期末监测试题含解析
- 2025届吉林省长春市德惠市九校物理高二第一学期期中复习检测试题含解析
- 20200310公园安全风险辨识清单
- 华中科技大学官方信纸
- 60立方油罐容积细表
- WI-QA-02-034A0 灯具成品检验标准
- 农业信息技术 chapter5 地理信息系统
- 部编版六年级上语文阅读技巧及解答
- 斯派克max操作手册
- 项目四 三人表决器ppt课件
- 结合子的机械加工工艺规程及铣槽的夹具设计
- 林武樟 完整阳宅讲义 笔记版[方案]
- 《会滚的汽车》ppt课件
评论
0/150
提交评论