《分析与设计数字电路的工具PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《分析与设计数字电路的工具PPT讲稿.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、分析与设计数字电路的工具第1页,共55页,编辑于2022年,星期五 引 言 设计一个数字电路或数字系统,就像做一个建筑工程,它不仅需要砖设计一个数字电路或数字系统,就像做一个建筑工程,它不仅需要砖瓦、预制件等这些建筑材料,还需要有效的工具和合理的工艺。本章介瓦、预制件等这些建筑材料,还需要有效的工具和合理的工艺。本章介绍的是分析与设计数字电路的工具。首先介绍一种数学工具绍的是分析与设计数字电路的工具。首先介绍一种数学工具逻辑代数逻辑代数和卡诺图。它的作用是化简和转换逻辑函数,以方便数字电路的分析和和卡诺图。它的作用是化简和转换逻辑函数,以方便数字电路的分析和设计。然后介绍一种硬件描述语言工具设
2、计。然后介绍一种硬件描述语言工具VHDL。用它和可编程逻辑。用它和可编程逻辑器件及电子设计自动化(器件及电子设计自动化(EDA)软件配合,可设计出功能更强大)软件配合,可设计出功能更强大的数字电路。对于工具的学习,我们要先熟悉它,掌握使用它的基的数字电路。对于工具的学习,我们要先熟悉它,掌握使用它的基本要领,然后在以后的章节中通过反复的使用,不断的练习,逐步本要领,然后在以后的章节中通过反复的使用,不断的练习,逐步达到熟练掌握、得心应手的境地。达到熟练掌握、得心应手的境地。第2页,共55页,编辑于2022年,星期五2.1 逻辑代数一、逻辑代数的基本公式一、逻辑代数的基本公式吸收律吸收律反演律反
3、演律分配律分配律结合律结合律交换律交换律重叠律重叠律互补律互补律公公 式式 101律律对合律对合律名名 称称 公公 式式 2基基 本本 公公 式式 2.1逻辑代数 第3页,共55页,编辑于2022年,星期五公式的证明方法:(1 1)用简单的公式证明略为复杂的公式。)用简单的公式证明略为复杂的公式。例例2.1.12.1.1 证明吸收律证明吸收律 证:证:A B0 00 11 01 1例例2.1.22.1.2 用真值表证明反演律用真值表证明反演律11101110(2 2)用真值表证明,即检验等式两边函数的真值表是否一致。)用真值表证明,即检验等式两边函数的真值表是否一致。2.1逻辑代数 第4页,共
4、55页,编辑于2022年,星期五二、逻辑代数的基本规则二、逻辑代数的基本规则1.1.代入规则代入规则 对于任何一个逻辑等式,以某个逻辑变量或逻辑函数同时取代等式两端任何一对于任何一个逻辑等式,以某个逻辑变量或逻辑函数同时取代等式两端任何一个逻辑变量后,等式依然成立。个逻辑变量后,等式依然成立。例如,在反演律中用例如,在反演律中用BCBC去代替等式中的去代替等式中的B B,则新的等式仍成立:,则新的等式仍成立:2.2.对偶规则对偶规则 将一个逻辑函数将一个逻辑函数L L进行下列变换:进行下列变换:,0 1 0 1,1 01 0所得新函数表达式叫做所得新函数表达式叫做L L的的对偶式对偶式,用,用
5、 表示。表示。对对偶偶规规则则的的基基本本内内容容是是:如如果果两两个个逻逻辑辑函函数数表表达达式式相相等等,那那么么它它们们的的对对偶偶式式也一定相等。也一定相等。基本公式中的公式基本公式中的公式l l和公式和公式2 2就互为对偶就互为对偶 式。式。吸收律吸收律反演律反演律分配律分配律结合律结合律交换律交换律重叠律重叠律互补律互补律公式公式1 10 01 1律律对合律对合律名称名称公式公式2 2 2.1逻辑代数 第5页,共55页,编辑于2022年,星期五3.反演规则反演规则 利用反演规则,可以非常方便地求得一个函数的反函数利用反演规则,可以非常方便地求得一个函数的反函数 解:解:解:解:将一
6、个逻辑函数将一个逻辑函数L进行下列变换:进行下列变换:,;0 1,1 0;原变量原变量 反变量,反变量,反变量反变量 原变量。原变量。所得新函数表达式叫做所得新函数表达式叫做L的的反函数反函数,用,用 表示。表示。例例2.1.3 求函数求函数 的反函数:的反函数:例例3.1.4 求函数求函数 的反函数:的反函数:在应用反演规则求反函数时要注意以下两点:在应用反演规则求反函数时要注意以下两点:(1)保持运算的优先顺序不变,必要时加括号表明,如例)保持运算的优先顺序不变,必要时加括号表明,如例2.1.3。(2)变换中,几个变量(一个以上)的公共非号保持不变。如例)变换中,几个变量(一个以上)的公共
7、非号保持不变。如例2.1.4。2.1逻辑代数 第6页,共55页,编辑于2022年,星期五三、逻辑函数的代数化简法1 1逻辑函数式的常见形式逻辑函数式的常见形式一个逻辑函数的表达式不是唯一的,可以有多种形式,并且能互相转换。一个逻辑函数的表达式不是唯一的,可以有多种形式,并且能互相转换。例如:例如:与与或表达式或表达式或或与表达式与表达式与非与非与非表达式与非表达式或非或非或非表达式或非表达式与与或或非表达式非表达式其中,与其中,与或表达式是逻辑函数的最基本表达形式。或表达式是逻辑函数的最基本表达形式。2.1逻辑代数 第7页,共55页,编辑于2022年,星期五2 2逻辑函数的最简逻辑函数的最简“
8、与与或表达式或表达式”的标准的标准 3 3用代数法化简逻辑函数用代数法化简逻辑函数(1 1)并项法:)并项法:运用公式运用公式 将两项合并为一项,消去一个变量。将两项合并为一项,消去一个变量。例:例:(1 1)与项最少,即表达式中)与项最少,即表达式中“+”号最少。号最少。(2 2)每个与项中的变量数最少,即表达式中)每个与项中的变量数最少,即表达式中“”号最少。号最少。2.1逻辑代数 第8页,共55页,编辑于2022年,星期五(2 2)吸收法:)吸收法:(3 3)消去法:)消去法:运用吸收律运用吸收律 A+AB=A,消去多余的与项。消去多余的与项。例:例:例:例:运用吸收律运用吸收律 消去多
9、余因子。消去多余因子。先先通通过过乘乘以以 或或加加上上 ,增增加加必必要要的的乘乘积积项项,再用以上方法化简。再用以上方法化简。例:例:(4 4)配项法:)配项法:2.1逻辑代数 第9页,共55页,编辑于2022年,星期五例例2.1.62.1.6 化简逻辑函数:化简逻辑函数:解:解:(利用(利用 )(利用(利用A+AB=A)(利用(利用 )在化简逻辑函数时,要灵活运用上述方法,才能将逻辑函数化为最简。在化简逻辑函数时,要灵活运用上述方法,才能将逻辑函数化为最简。2.1逻辑代数 第10页,共55页,编辑于2022年,星期五例例2.1.7 2.1.7 化简逻辑函数:化简逻辑函数:解:解:(利用反
10、演律(利用反演律)(利用(利用 )(利用(利用A+AB=A)(配项法)(配项法)(利用(利用A+AB=A)(利用(利用 )2.1逻辑代数 第11页,共55页,编辑于2022年,星期五代数化简法的优点:代数化简法的优点:不受变量数目的限制。不受变量数目的限制。缺点:缺点:没没有有固固定定的的步步骤骤可可循循;需需要要熟熟练练运运用用各各种种公公式式和和定定理理;需需要要一一定定的的技技巧巧和和经经验验;不不易易判判定定化化简简结结果是否最简。果是否最简。2.1逻辑代数 第12页,共55页,编辑于2022年,星期五2.2 卡诺图化简法卡诺图化简法 A B C0 0 00 0 10 1 00 1 1
11、1 0 01 0 11 1 01 1 1变变 量量 取取 值值最最 小小 项项m0m1m2m3m4m5m6m7编编 号号 三变量函数的最小项三变量函数的最小项一、一、最小项与最小项表达式最小项与最小项表达式 1.1.最小项最小项n个变量的逻辑函数中,包含全部变量的乘积项称为最小项。个变量的逻辑函数中,包含全部变量的乘积项称为最小项。n变量变量逻辑函数的全部最小项共有逻辑函数的全部最小项共有2n个。个。第13页,共55页,编辑于2022年,星期五最小项的基本性质最小项的基本性质100000001 1 1010000001 1 0001000001 0 1000100001 0 000001000
12、0 1 1000001000 1 0000000100 0 1000000010 0 0A B Cm7m6m5m4m3m2m1m0变量(1 1)对于任意一个最小项,只有与之对应的一组变量取值使它的值为)对于任意一个最小项,只有与之对应的一组变量取值使它的值为1 1,而其余各组变量取值均使它的值为而其余各组变量取值均使它的值为0 0。两变量:两变量:(2 2)对于变量的任一组取值,全体最小项的和为)对于变量的任一组取值,全体最小项的和为1 1。2.2 卡诺图化简法第14页,共55页,编辑于2022年,星期五最小项表达式最小项表达式与或式中的每一个与项均为最小项。与或式中的每一个与项均为最小项。任
13、一逻辑函数可以展开为最小项表达式。任一逻辑函数可以展开为最小项表达式。例:例:2.逻辑函数的最小项表达式逻辑函数的最小项表达式2.2 卡诺图化简法第15页,共55页,编辑于2022年,星期五 解:解:=m7+m6+m3+m5=m(3,5,6,7)例例2:将函数将函数 转换成最小项表达式。转换成最小项表达式。2.2 卡诺图化简法第16页,共55页,编辑于2022年,星期五二、卡诺图及其逻辑函数的卡诺图表示法二、卡诺图及其逻辑函数的卡诺图表示法 1相邻最小项相邻最小项 如果两个最小项中只有一个变量互为反变量,其余变量均相同,则称这两如果两个最小项中只有一个变量互为反变量,其余变量均相同,则称这两个
14、最小项为逻辑相邻,简称个最小项为逻辑相邻,简称相邻项相邻项。如果两个相邻最小项出现在同一个逻辑函数中,可以合并为一项,同时消去互为如果两个相邻最小项出现在同一个逻辑函数中,可以合并为一项,同时消去互为反变量的那个量。反变量的那个量。如最小项如最小项ABC 和和 就是相邻最小项。就是相邻最小项。如:如:2.2.卡诺图卡诺图 一一个个小小方方格格代代表表一一个个最最小小项项,然然后后将将这这些些最最小小项项按按照照相相邻邻性性排排列列起起来来。即即用用小小方方格格几几何何位位置置上上的的相相邻邻性性来来表表示示最最小小项项逻逻辑辑上上的的相相邻邻性。性。2.2 卡诺图化简法第17页,共55页,编辑
15、于2022年,星期五卡诺图的结构卡诺图的结构(1 1)二变量卡诺图)二变量卡诺图 A Bm0m1m3m2 AB 00 01 11 10m0m1m3m2m4m5m7m6 A B Cm0m1m3m2m4m5m7m6 BC 00 01 11 10 A 01(2 2)三变量卡诺图)三变量卡诺图 2.2 卡诺图化简法第18页,共55页,编辑于2022年,星期五m0m1m3m2m4m5m7m6m12m13m15m14m8m9m11m10 C DAB CD 00 01 11 10 AB 00 01 11 10卡诺图具有很强的相邻性:卡诺图具有很强的相邻性:(1 1)直直观观相相邻邻性性,只只要要小小方方格格
16、在在几几何何位位置置上上相相邻邻(不不管管上上下下左左右右),它它代代表表的的最最小小项项在在逻逻辑辑上一定是相邻的。上一定是相邻的。(2 2)对对边边相相邻邻性性,即即与与中中心心轴轴对对称称的的左左右右两两边边和和上上下下两两边边的的小小方方格格也也具具有有相邻性。相邻性。(3 3)四变量卡诺图)四变量卡诺图2.2 卡诺图化简法第19页,共55页,编辑于2022年,星期五3.3.用卡诺图表示逻辑函数用卡诺图表示逻辑函数解解:该该函函数数为为三三变变量量,先先画画出出三三变变量量卡卡诺诺图图,然然后后根根据据真真值值表表将将8 8个个最最小小项项L L的的取值取值0 0或者或者1 1填入卡诺
17、图中对应的填入卡诺图中对应的8 8个小方格中即可。个小方格中即可。0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1A B C00010111L 真值表真值表ABC0000111110 A B C11110000(1 1)从真值表到卡诺图)从真值表到卡诺图例例2.2.32.2.3 已知某逻辑函数的真值表,用卡诺图表示该逻辑函数。已知某逻辑函数的真值表,用卡诺图表示该逻辑函数。2.2 卡诺图化简法第20页,共55页,编辑于2022年,星期五(2 2)从逻辑表达式到卡诺图)从逻辑表达式到卡诺图(a a)如果表达式为最小项表达式,则可直接填入卡诺图。)如果表达式为最小项
18、表达式,则可直接填入卡诺图。解:解:写成简化形式:写成简化形式:解:解:直接填入:直接填入:例例2.2.42.2.4 用卡诺图表示逻辑函数用卡诺图表示逻辑函数:然后填入卡诺图:然后填入卡诺图:例例2.2.52.2.5 用卡诺图表示逻辑函数:用卡诺图表示逻辑函数:C D A B GF F BCBC 0000 0101 1111 1010 A A 0 01 11 11 11 11 10 00 00 00 01 11 11 11 11 11 10 00 00 00 00 00 00 00 00 00 0(b b)如如不不是是最最小小项项表表达达式式,应应先先将将其其先先化化成成最最小小项项表表达达式
19、式,再再填填入入卡卡诺诺图图。也也可可由由“与与或或”表表达达式式直接填入。直接填入。2.2 卡诺图化简法第21页,共55页,编辑于2022年,星期五三、卡诺图化简法三、卡诺图化简法(2 2)4 4个相邻的最小项可以合并,消去个相邻的最小项可以合并,消去2 2个取值不同的变量。个取值不同的变量。C A B D1111111 C A B D111111111 1卡诺图化简逻辑函数的原理卡诺图化简逻辑函数的原理 :(1 1)2 2个相邻的最小项可以合并,消去个相邻的最小项可以合并,消去1 1个取值不同的变量。个取值不同的变量。2.2 卡诺图化简法第22页,共55页,编辑于2022年,星期五(3 3
20、)8 8个相邻的最小项可以合并,消去个相邻的最小项可以合并,消去3 3个取值不同的变量。个取值不同的变量。总之,总之,2 2n n个相邻的最小项可以合并,消去个相邻的最小项可以合并,消去n n个取值不同的变量。个取值不同的变量。C A B D1111111111112.2 卡诺图化简法第23页,共55页,编辑于2022年,星期五2用卡诺图合并最小项的原则(画圈的原则)(1)卡诺图中所有取值为)卡诺图中所有取值为1的方格均要被圈过,即不能漏下取值为的方格均要被圈过,即不能漏下取值为1的最小项。的最小项。(2)尽量画大圈,但每个圈内只能含有)尽量画大圈,但每个圈内只能含有2n(n=0,1,2,3)
21、个相邻项。要特别注意对边相邻性)个相邻项。要特别注意对边相邻性和四角相邻性。和四角相邻性。(3)圈的个数尽量少。)圈的个数尽量少。(4)在新画的包围圈中至少要含有)在新画的包围圈中至少要含有1个末被圈过的个末被圈过的1方格,否则该包围圈是多余的。方格,否则该包围圈是多余的。3 3用卡诺图化简逻辑函数的步骤:用卡诺图化简逻辑函数的步骤:(1 1)画出逻辑函数的卡诺图。)画出逻辑函数的卡诺图。(2 2)合并相邻的最小项,即根据前述原则画圈。)合并相邻的最小项,即根据前述原则画圈。(3 3)写写出出化化简简后后的的表表达达式式。每每一一个个圈圈写写一一个个最最简简与与项项,规规则则是是,取取值值为为
22、l l的的变变量量用用原原变变量量表表示示,取取值值为为0 0的的变变量量用用反反变变量量表表示示,将将这这些些变变量量相相与与。然然后后将将所所有有与与项项进进行行逻逻辑辑加加,即即得得最最简简与与或或表表达式。达式。2.2 卡诺图化简法第24页,共55页,编辑于2022年,星期五解解:(1 1)由表达式画出卡诺图。)由表达式画出卡诺图。(2 2)画包围圈,合并)画包围圈,合并最小项,得简化的最小项,得简化的与与或表达式或表达式:C A B D1111111111100000例例2.2.6 化简逻辑函数:化简逻辑函数:L(A,B,C,D)=m(0,2,3,4,6,7,10,11,13,14,
23、15)2.2 卡诺图化简法第25页,共55页,编辑于2022年,星期五解解:(1 1)由表达式画出卡诺图。)由表达式画出卡诺图。注意:图中的绿色圈注意:图中的绿色圈是多余的,应去掉是多余的,应去掉 。例例2.2.72.2.7 用卡诺图化简逻辑函数:用卡诺图化简逻辑函数:(2 2)画包围圈合并最小项,)画包围圈合并最小项,得简化的与得简化的与或表达式或表达式:C A B D11111111000000002.2 卡诺图化简法第26页,共55页,编辑于2022年,星期五解:解:(1 1)由真值表画出卡诺图。)由真值表画出卡诺图。由此可见,一个逻辑函数的真值表是唯一的,卡诺图也是唯一的,但化简结果有
24、时不由此可见,一个逻辑函数的真值表是唯一的,卡诺图也是唯一的,但化简结果有时不是唯一的。是唯一的。(a):写出):写出表达式:表达式:(b b):写出表达式:):写出表达式:0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1A B C01111110 L 真值表真值表10110111 A B C L10110111 A B C L例例2.2.82.2.8 已知某逻辑函数的真值表,用卡诺图化简该函数。已知某逻辑函数的真值表,用卡诺图化简该函数。(2 2)画包围圈合并最小项。)画包围圈合并最小项。有两种画圈的方法:有两种画圈的方法:2.2 卡诺图化简法第27页,共55
25、页,编辑于2022年,星期五4 4卡诺图化简逻辑函数的另一种方法卡诺图化简逻辑函数的另一种方法圈圈0 0法法(2 2)用圈)用圈0 0法,得:法,得:解解:(1 1)用圈)用圈1 1法,得:法,得:对对L L取非得:取非得:C A B D1101111011111111 C A B D1101111011111111例例2.2.92.2.9 已知逻辑函数的卡诺图如图示,分别用已知逻辑函数的卡诺图如图示,分别用“圈圈1 1法法”和和“圈圈0 0法法”写出写出其最简与其最简与或式。或式。2.2 卡诺图化简法第28页,共55页,编辑于2022年,星期五2.2 卡诺图化简法1 1无无关关项项在在有有些
26、些逻逻辑辑函函数数中中,输输入入变变量量的的某某些些取取值值组组合合不不会会出出现现,或或者者一一旦旦出出现现,逻辑值可以是任意的。这样的取值组合所对应的最小项称为无关项、任意项或约束项。逻辑值可以是任意的。这样的取值组合所对应的最小项称为无关项、任意项或约束项。例例2.2.102.2.10:在在十十字字路路口口有有红红绿绿黄黄三三色色交交通通信信号号灯灯,规规定定红红灯灯亮亮停停,绿绿灯灯亮亮行行,黄灯亮等一等,试分析车行与三色信号灯之间逻辑关系。黄灯亮等一等,试分析车行与三色信号灯之间逻辑关系。四、具有无关项的逻辑函数的化简四、具有无关项的逻辑函数的化简解:解:设红、绿、黄灯分别用设红、绿
27、、黄灯分别用A、B、C表示,且灯亮为表示,且灯亮为1,灯灭为,灯灭为0。车用车用L表示,车行表示,车行L=1,车停,车停L=0。列出该函数的真值。列出该函数的真值。显而易见,在这个函数中,有显而易见,在这个函数中,有5 5个最小项为无关项。个最小项为无关项。带有无关项的逻辑函数的最小项表达式为:带有无关项的逻辑函数的最小项表达式为:L=m()+d()如本例函数可写成如本例函数可写成:L=m(2)+d(0,3,5,6,7)0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1红灯红灯A 绿灯绿灯B 黄灯黄灯C010 车车L 真值表真值表第29页,共55页,编辑于2022
28、年,星期五2 2具有无关项的逻辑函数的化简具有无关项的逻辑函数的化简考考虑虑无无关关项项时时,表表达达式式为为:例例2.2.10:010ABC0000111110 A B C010ABC0000111110 A B C不考虑无关项时,表达式为:不考虑无关项时,表达式为:要充分利用无关项可以当要充分利用无关项可以当0 0也可以当也可以当1 1的特点,尽量扩大卡诺圈,的特点,尽量扩大卡诺圈,使逻辑函数更简。使逻辑函数更简。2.2 卡诺图化简法第30页,共55页,编辑于2022年,星期五如果不考虑无关项,写出表达式为:如果不考虑无关项,写出表达式为:C A B D1111110000 C A B D
29、1111110000(3 3)写出逻辑函数的最简与)写出逻辑函数的最简与或表达式或表达式:(2 2)合合并并最最小小项项。注注意意,1 1方方格格不不能能漏漏。方方格格根根据据需需要要,可可以以圈圈入入,也也可可以以放弃。放弃。例例2.2.112.2.11:用卡诺图法化简逻辑函数用卡诺图法化简逻辑函数(输入是(输入是8421BCD8421BCD码)码)L(A A,B B,C,D)=m(1,4,5,6,7,91,4,5,6,7,9)+d(10,11,12,13,14,1510,11,12,13,14,15)解:解:(1 1)填卡诺图。)填卡诺图。2.2 卡诺图化简法第31页,共55页,编辑于20
30、22年,星期五2.3 VHDL硬件描述语言基础硬件描述语言基础 VHDL(Very-High-Speed Integrated Circuit HardwareDescription Language)是目前最流行的硬件描述语言之一。是目前最流行的硬件描述语言之一。它诞生于它诞生于1982年,已成为年,已成为IEEEStd_1076标准。许多公司的标准。许多公司的EDA设计工设计工具都提供了对具都提供了对VHDL的支持,因此它得到了广泛的应用。的支持,因此它得到了广泛的应用。VHDL有以下几个主要特点:有以下几个主要特点:(1)具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述
31、,从而)具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。大大简化了硬件设计任务,提高了设计效率和可靠性。(2 2)编程与工艺无关。设计者可以专心致力于其功能的实现,而不需要对不影响功)编程与工艺无关。设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。能的与工艺有关的因素花费过多的时间和精力。(3 3)语言标准、规范,易于共享。设计技术齐全、方法灵活、支持广泛。)语言标准、规范,易于共享。设计技术齐全、方法灵活、支持广泛。第32页,共55页,编辑于2022年,星期五一、VHDL的基
32、本结构 定义元器件库定义电路的输入/输出引脚描述电路的内部功能 VHDL描述的最小和基本的逻辑结构中一般包含标准库及程序包、实体和结构体三部分。2.3 VHDL硬件描述语言基础第33页,共55页,编辑于2022年,星期五举例:用VHDL语言描述一半加器的功能。逻辑表达式是:VHDL程序如下:程序如下:LIBRARY ieee;-ieee标准库说明 USE ieee.std_logic_1164.ALL;-程序包说明ENTITY adder IS -adder是实体名称PORT(a,b:IN std_logic;-定义输入/输出端口信号的类型 c,s:OUT std_logic);END ENT
33、ITY adder;ARCHITECTURE ex1 OF adder IS -ex1是结构体名称BEGIN sa XOR b;-赋值语句 ca AND b;END ARCHITECTURE ex1;程序包程序包实体实体结构体结构体2.3 VHDL硬件描述语言基础第34页,共55页,编辑于2022年,星期五实体的基本格式为:实体的基本格式为:ENTITY 实体名实体名 ISPORT(端口名称端口名称1:输入:输入/输出状态输出状态 数据类型;数据类型;端口名称端口名称2:输入:输入/输出状态输出状态 数据类型;数据类型;END 实体名;实体名;输入输入/输出状态有以下几种状态:输出状态有以下几
34、种状态:(1)IN输入量,信号进入电路单元。输入量,信号进入电路单元。(2)OUT输出量,信号从电路单元输出。输出量,信号从电路单元输出。(3)INOUT信号是双向的,既可以进入电路,也可以从电路输出。信号是双向的,既可以进入电路,也可以从电路输出。(4)BUFFER反馈量。反馈量。常用的端口数据的类型有位型(常用的端口数据的类型有位型(BIT)、位向量型()、位向量型(BIT_VECTOR)、标准逻辑位型)、标准逻辑位型(STD_LOGIC)及标准逻辑位向量型()及标准逻辑位向量型(STD_LOGIC_VECTOR等几种。等几种。1 1VHDLVHDL的实体(的实体(ENTITYENTITY
35、)说明语句)说明语句2.3 VHDL硬件描述语言基础第35页,共55页,编辑于2022年,星期五结构体的基本格式为:结构体的基本格式为:ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS 说明语句说明语句BEGIN 电路描述语句电路描述语句END 结构体名;结构体名;2 2结构体(结构体(ARCHITECTURE)说明语句)说明语句 库是经编译后的数据集合,库的作用是使设计者共享编译过的设计结果,类似库是经编译后的数据集合,库的作用是使设计者共享编译过的设计结果,类似于传统设计中的元器件库。库的说明要放在程序最前面。于传统设计中的元器件库。库的说明要放在程序最前面。库的调用语
36、句格式为:库的调用语句格式为:LIBRARY 库名;库名;如对标准库如对标准库IEEE的调用语句为:的调用语句为:LIBRARY IEEE;3 3库(库(LIBRARY)与程序包()与程序包(PACKAGE)2.3 VHDL硬件描述语言基础第36页,共55页,编辑于2022年,星期五两个标准库两个标准库STDSTD和和IEEEIEEE中包含的程序包中包含的程序包库名程序包名定义的内容 STDSTANDAEDTEXTIO定义VHDL的数据类型,如BIT、BIT_VECTOR等。定义了对文本文件的读写控制数据类型和子程序等。IEEESTD_LOGIC_1164定义STD_LOGIC、STD_LOG
37、IC_VECTOR等STD_LOGIC_ARITH定义有符号与无符号数据类型,基于这些数据类型的算术运算符,如“+”、“”、“*”、“/”、SHL、SHR等。STD_LOGIC_SIGNED定义了基于STD_LOGIC与STD_LOGIC_VECTOR数据类型上的有符号的算术运算。STD_LOGIC_UNSIGNED定义了基于STD_LOGIC与STD_LOGIC_VECTOR数据类型上的无符号的算术运算。常用库与程序包调用语句:常用库与程序包调用语句:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_ arith.ALL;
38、USE ieee.std_logic_ signed.ALL;2.3 VHDL硬件描述语言基础第37页,共55页,编辑于2022年,星期五二二.VHDL的语言元素的语言元素 1标识符与保留字标识符与保留字 标识符是标识符是VHDL语言中符号书写的一般规则,用来表示常量、变量、信号、子程语言中符号书写的一般规则,用来表示常量、变量、信号、子程序、结构体和实体等的名称标识符组成的规则如下:序、结构体和实体等的名称标识符组成的规则如下:(1)标识符由)标识符由26个英文字母和个英文字母和10个数字(个数字(09)及下划线()及下划线(_)组成。)组成。(2)标识符必须以英文字母开头。最长可以是)标识
39、符必须以英文字母开头。最长可以是32个字符。个字符。(3)标识符中不能有两个连续的下划线,标识符的最后一个字符不能是下划)标识符中不能有两个连续的下划线,标识符的最后一个字符不能是下划线。线。(4)标识符中的英文字母不区分大小写。)标识符中的英文字母不区分大小写。例如,例如,CP、DAT1、wr_1、counter_A等都是合法的标识符。等都是合法的标识符。保留字是具有特殊意义的标识符号。用户不能用保留字作为标识符。在例保留字是具有特殊意义的标识符号。用户不能用保留字作为标识符。在例2.3.1中中LIBRARY、USE、ENTITY、IS、OF、ARCHITECTURE、BEGIN、END、X
40、OR、AND等都是保留字。等都是保留字。2.3 VHDL硬件描述语言基础第38页,共55页,编辑于2022年,星期五 2.客体类型客体类型在在VHDL中可以赋值的对象称为客体,客体包括信号、变量和常量。中可以赋值的对象称为客体,客体包括信号、变量和常量。客体类型客体类别SIGNALVARABLECONSTANT含义信号 全局量变量 局部量常量 全局量使用场合结构体、进程、块进程、函数、过程 结构体、进程、块、函数、过程物理意义类似于实际电路的“端口”,可用于进程之间的通信。暂存某些信号,在运行过程中可以改变。运行过程中不能改变,如电源、地、时间等。2.3 VHDL硬件描述语言基础第39页,共5
41、5页,编辑于2022年,星期五 3.数据类型数据类型(1)标准数据类型)标准数据类型数据类型含 义整数(INTEGER)32位带符号的整数,21474836472147483647(2311)(2311)自然数(NATURAL)和正整数(POSITIVE)是整数的一个子类型。自然数是指0及以上正整数,取值范围在0(2311)之间。正整数的取值范围在1(2311)之间。实数(REAL)带符号位的浮点数,在1.0e+381.0e+38之间位(BIT)0或1 位矢量(BIT_VECTOR)用双引号括起来的一组二进制位数据,用于表示总线的状态等。布尔量(BOOLEAN)逻辑值true或false字符(
42、CHARACTER)ASC字符。要用单引号括起来,如A、b、3等。字符类型中的大小写是有区别的,如A和a不同字符串(STRING)用双引号括起来的一个字符数组,如“11001”。常用于程序的提示和说明时间(TIME)表示时间的数据,其单位为ps、ns、s、ms、sec、min和hr错误等级(SEVERITY LEVEL)表示系统的状态,有note(注意)、warning(警告)、error(错误)和failure(失败)四种状态2.3 VHDL硬件描述语言基础第40页,共55页,编辑于2022年,星期五(2 2)IEEEIEEE预定义标准数据类型预定义标准数据类型在在IEEEIEEE的程序包的
43、程序包STD_LOGIC_1164STD_LOGIC_1164中定义了两个非常重要的数据类型。中定义了两个非常重要的数据类型。STD_LOGICSTD_LOGIC:工业标准的逻辑位类型,:工业标准的逻辑位类型,取值:取值:0 0(强(强0 0)、)、1 1(强(强1 1)、)、Z Z(高阻态)、(高阻态)、X X(强未知的)、(强未知的)、W W(弱未知的)、(弱未知的)、L L(弱(弱0 0)、)、H H(弱(弱1 1)、)、(忽略)、(忽略)、U U(未初始化的)。(未初始化的)。STD_LOGIC_VECTORSTD_LOGIC_VECTOR:工业标准的逻辑位向量,:工业标准的逻辑位向量
44、,STD_LOGICSTD_LOGIC的组合。的组合。在使用这两种数据类型时,在程序中必须有库及程序包说明语句,即在使用这两种数据类型时,在程序中必须有库及程序包说明语句,即LIBRARY IEEELIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALLUSE IEEE.STD_LOGIC_1164.ALL;这两句在程序中必不可少。;这两句在程序中必不可少。2.3 VHDL硬件描述语言基础第41页,共55页,编辑于2022年,星期五(3 3)用户定义的数据类型)用户定义的数据类型枚举类型。用来表示实际生活中的某些事物所具有的特定性质。格式为:枚举类型。用来表示实际生活中
45、的某些事物所具有的特定性质。格式为:TYPE 数据类型名数据类型名 IS(元素(元素1,元素,元素2,););例如例如 TYPE state_m IS(s0,s1,s2,s3,s4););TYPE wenk IS(sun,mon,tue,wed,thu,fri,sat););整数类型和实数类型。是整数类型和实数类型。是VHDL语言中已经存在的标准数据类型的子集。定义格式为:语言中已经存在的标准数据类型的子集。定义格式为:TYPE 数据名数据名 IS 数据类型数据类型 RANGE 数值数值 TO 数值;数值;例如例如 TYPE digit IS integer RANGE 0 TO 9;TYPE
46、 signal_level IS real RANGE 10.00 TO+10.00;数组类型。具有相同的数据类型的元素集合。格式为:数组类型。具有相同的数据类型的元素集合。格式为:TYPE 数组名数组名 IS ARRAY 范围范围 OF 数据类型;数据类型;例如例如 TYPE a IS ARRAY(0 TO 3)OF bit;TYPE rom IS ARRAY(0 TO 7,0 TO 7)OF bit;2.3 VHDL硬件描述语言基础第42页,共55页,编辑于2022年,星期五2.3 VHDL硬件描述语言基础优先级顺序运算符类型运算符运算符功能操作数类型 最高 最低逻辑运算符NOT取非BIT
47、、BOOLEAN、STD_LOGIC算术运算符ABS*REMMOD取绝对值乘方取余求模整数*除法乘整数、实数(包括浮点数)+负(减)正(加)整数并置&并置一维数组移位运算符RORROLSRASRLSLASLL逻辑循环右移逻辑循环左移算术右移逻辑右移算术左移逻辑左移BIT或BOOLEAN型一维数组关系运算符 大于等于 小于等于(赋值)大于 小于 枚举和整数及 对应的一维数组 不等于等于 任何类型逻辑运算符XORNORNANDORAND异或或非与非或与BIT、BOOLEAN、STD_LOGIC4 4运运算算符符第43页,共55页,编辑于2022年,星期五 1并行语句并行语句 VHDL设计中的结构体
48、,一般是由一个以上的并行语句构成的。所有的并行语句设计中的结构体,一般是由一个以上的并行语句构成的。所有的并行语句在结构体中都是同时执行的,与它们在程序中排列的先后顺序无关。在结构体中都是同时执行的,与它们在程序中排列的先后顺序无关。(1)并行赋值语句)并行赋值语句 其功能是将一个数据或一个表达式的运算结果传送给一个数据对象,其功能是将一个数据或一个表达式的运算结果传送给一个数据对象,这个数据对象可以是内部信号,也可以是预定义的端口信号。其格式为:这个数据对象可以是内部信号,也可以是预定义的端口信号。其格式为:赋值目标表达式;赋值目标表达式;例:例:s=a XOR b c=a AND b tm
49、p=0;y=tmp;三三.VHDL的基本语句的基本语句2.3 VHDL硬件描述语言基础第44页,共55页,编辑于2022年,星期五(2)条件赋值语句)条件赋值语句WHENELSE 其格式为:其格式为:赋值目标赋值目标=表达式表达式1 WHEN 赋值条件赋值条件1 ELSE 表达式表达式2 WHEN 赋值条件赋值条件2 ELSE 表达式表达式N;例例2.3.2 用用WHENELSE语句描述异或门语句描述异或门LIBRARY ieee;-库说明语句库说明语句 USE IEEE.std_logic_1164.ALL;-调用库调用库ENTITY xor2 IS -xor2是实体名称是实体名称PORT(
50、a,b:IN bit;-定义输入量定义输入量a、b是标准位类型是标准位类型 f:OUT bit);-定义输出量定义输出量f是标准位类型是标准位类型END ENTITY xor2;ARCHITECTURE ex2 OF xor2 IS -ex2是结构体名称是结构体名称SIGNAL s:bit_vector(1 DOWNTO 0);-定义内部信号定义内部信号s为为2位位向量位位向量BEGIN s=a&b;-用用&将将a和和b连接成连接成2位位向量赋值给位位向量赋值给s f=0 WHEN s=“00”ELSE -当当ab=00时,时,f=01 WHEN s=“01”ELSE -当当ab=01时,时,