数字电子技术基础-第一章-逻辑代数与EDA技术的基础知识_第1页
数字电子技术基础-第一章-逻辑代数与EDA技术的基础知识_第2页
数字电子技术基础-第一章-逻辑代数与EDA技术的基础知识_第3页
数字电子技术基础-第一章-逻辑代数与EDA技术的基础知识_第4页
数字电子技术基础-第一章-逻辑代数与EDA技术的基础知识_第5页
已阅读5页,还剩130页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

李文娟

数字电子技术课程性质:通信、控制等专业必修课程,属于技术基础课,且为主干课程。先修课程:《电路》《模拟电子技术》后续课程:《微机接口与通信》《单片机》《嵌入式系统》课程任务:1、掌握数字逻辑与系统的工作原理和分析方法,能对主要的逻辑部件进行分析和设计。

2、学会使用标准的集成电路和高密度可编程逻辑器件。

3、掌握数字系统的基本设计方法,为进一步学习各种超大规模数字集成电路的系统设计打下基础。参考教材:

1、《数字电路与系统》刘宝琴高等教育出版社

2、《电子技术基础》阎石高等教育出版社

3、《电子技术基础》康华光高等教育出版社

4、《数字电路逻辑设计》王毓银高等教育出版社教材:《数字电子技术基础简明教程》主编余孟尝学时:48学时成绩:考试成绩80%,平时成绩20%实验:独立设课16学时一、模拟信号和数字信号

电子电路中的信号可以分为两大类:模拟信号和数字信号。

模拟信号——时间连续、数值也连续的信号。对模拟信号进行传输、处理的电子线路称为模拟电路。概述

数字信号——时间上和数值上均是离散的信号。

※数字信号只有两个离散值,常用数字0和1来表示。注意,这里的0和1没有大小之分,只代表两种对立的状态,称为逻辑0和逻辑1,也称为二值数字逻辑。二、正逻辑与负逻辑两种逻辑体制:

(1)正逻辑体制规定:高电平为逻辑1,低电平为逻辑0。

(2)负逻辑体制规定:低电平为逻辑1,高电平为逻辑0。如果采用正逻辑,图1.1.1所示的数字电压信号就成为如图1.1.2所示逻辑信号。三、数字信号的主要参数一个理想的周期性数字信号可用以下参数来描绘:

Vm——信号幅度。它表示电压波形变化的最大值。

T——信号的重复周期。信号的重复频率f=1/T。

tw——脉冲宽度。它表示脉冲的作用时间。

q——占空比。它表示脉冲宽度tw占整个周期T的百分比,其定义为:

四、数字电路

传递与处理数字信号的电子电路称为数字电路。

1、数字电路与模拟电路相比主要有下列优点:

(1)数字电路是以二值数字逻辑为基础的,只有0和1两个基本数字,易于用电路来实现。(2)由数字电路组成的数字系统工作可靠,精度较高,抗干扰能力强。(3)数字电路不仅能完成数值运算,而且能进行逻辑判断和运算,这在控制系统中是不可缺少的。(4)数字信息便于长期保存,比如可将数字信息存入磁盘、光盘等长期保存。(5)数字集成电路产品系列多、通用性强、成本低。

2、数字电路的分类(1)按电路结构不同:分立元件电路和集成电路两大类。(2)按所用器件制作工艺的不同:数字电路可分为双极型(TTL型)和单极型(MOS型)两类。(3)按照电路的结构和工作原理的不同:数字电路可分为组合逻辑电路和时序逻辑电路两类。3、数字电路的学习方法(1)逻辑代数是分析和设计数字电路的重要工具,应熟练掌握。(2)重点掌握各种常用数字逻辑电路的逻辑功能、外部特性及典型应用。对其内部电路结构和工作原理不必过于深究。(3)掌握基本的分析方法。(4)本课程实践性很强。应重视习题、基础实验和综合实训等实践性环节。(5)注意培养和提高查阅有关技术资料和数字集成电路产品手册的能力。本章重点1、数制的转换2、逻辑代数的特殊定理、逻辑函数的公式化简3、利用卡诺图化简逻辑函数4、逻辑函数间的转换一、逻辑代数(布尔代数、开关代数)逻辑:事物因果关系的规律逻辑函数:

逻辑自变量和逻辑结果的关系逻辑变量取值:0、1

分别代表两种对立的状态一种状态另一状态高电平低电平真假是非有无……1001二、二进制数表示法1.十进制数(Decimal)--逢十进一计数基数:0~9第i位的位权:2.二进制数(Binary)--逢二进一计数基数:0,1第i位的位权:3.二进制数的缩写形式—八进制数和十六进制数基数:0~7位权:(2)十六进制数

(Hexadecimal)--逢十六进一基数:0~9,A(10),B(11),C(12),D(13),E(14),F(15)位权:任意(N)进制数展开式的普遍形式:—第i位的系数—第i位的权(1)八进制数(Octal)--逢八进一4.几种常用进制数之间的转换(1)二-十转换:将二进制数按位权展开后相加(2)十-二转换:降幂比较法—

要求熟记20∼210

的数值。2021222324252627282921012481632641282565121024157128291685272413快速转换法:拆分法(26)10=16+8+2=24+23+21=(11010)2411168

4

2

1(2)十-二转换:降幂比较法2322200※整数部分的转换:除基取余法用目标数制的基数(R=2)去除十进制数,第一次相除所得余数为目的数的最低位K0,将所得商再除以基数,反复执行上述过程,直到商为“0”,所得余数为目的数的最低位。十-二转换:方法二(157)10=(?)2※小数部分的转换:乘基取整法用小数乘以目标数制的基数(R=2),第一次相乘结果的整数部分为目的数的最高位K-1,将其小数部分再乘基数依次记下整数部分,反复进行下去,直到小数部分为“0”或满足要求的精度为止。2-6例:将十进制数0.723转换成精度不大于的二进制数。(3)二-八转换:57(4)八-二转换:每位8进制数转换为相应3

位二进制数011001.100111每3位二进制数相当一位8进制数011111101.1101000002341.062(5)二-十六转换:每4

位二进制数相当一位16进制数A1(6)十六-二转换:每位16进制数换为相应的4位二进制数

将十进制数转换成八进制或十六进制数,怎么转换?思考:编码:用二进制数表示文字、符号等信息的过程。二进制代码:编码后的二进制数。用二进制代码表示十个数字符号0~9,又称为BCD

码(BinaryCoded

Decimal)。几种常见的BCD代码:8421码余

3码2421码5211码余

3循环码三、二进制代码二-十进制代码:0十进制数1234567898421码余3码2421(A)码5211码余3循环码00000001001000110100010101100111100010010011010001010110100010011010101111000000000100100011010010111100110111101111011100000001010001000101010101111000100111001101110111111111001001100111110011101010权842124215211几种常见的BCD代码四、EDA技术(ElectronicsDesignAutomation)

一种以计算机作为工作平台,以EDA软件工具为开发环境,以VHDL

为设计语言,以可编程逻辑器件为实验载体,以ASIC、SoC芯片为目标器件,以数字系统设计为应用方向的电子产品自动化设计技术。VHDL

是一种硬件描述语言,用软件编程语言形式描述硬件电路功能,比原理图方式更方便、更高效地反映电路的功能。1.1.1基本和常用逻辑运算一、三种基本逻辑运算1.基本逻辑关系举例功能表1.1逻辑代数基本概念、公式和定理灭灭灭亮断断断合合断合合与逻辑关系开关A开关B灯Y电源ABY(1)电路图:或逻辑关系开关A开关B灯Y电源功能表灭亮亮亮断断断合合断合合ABY非逻辑关系开关A灯Y电源R亮灭断合AY功能表(2)真值表:经过设定变量和状态赋值后,得到的反映输入变量与输出变量之间因果关系的数学表达形式。功能表灭灭灭亮断断断合合断合合ABY与逻辑关系真值表(Truthtable)000100011011ABY功能表灭亮亮亮断断断合合断合合ABY亮灭断合AY功能表真值表011100011011ABY或逻辑关系非逻辑关系真值表1001AY

与逻辑:当决定一事件的所有条件都具备时,事件才发生的逻辑关系。(3)三种基本逻辑关系:

或逻辑:决定一事件结果的诸条件中,只要有一个或一个以上具备时,事件就会发生的逻辑关系。

非逻辑:只要条件具备,事件便不会发生;条件不具备,事件一定发生的逻辑关系。真值表逻辑函数式与门(ANDgate)逻辑符号(1)与运算:ABY&000100011011ABY2.基本逻辑运算(2)或运算:或门(ORgate)真值表逻辑函数式逻辑符号011100011011ABYABY≥1(3)非运算:真值表1001AY逻辑函数式逻辑符号非门(NOTgate)AY1二、逻辑变量与逻辑函数及常用复合逻辑运算1.逻辑变量与逻辑函数在逻辑代数中,用英文字母表示的变量称为逻辑变量。在二值逻辑中,变量的取值不是1

就是0

。逻辑函数:如果输入逻辑变量A、B、C∙∙∙的取值确定之后,输出逻辑变量Y的值也被唯一确定,则称Y

是A、B、C∙∙∙的逻辑函数。并记作原变量和反变量:字母上面无反号的称为原变量,有反号的叫做反变量。逻辑变量:(1)与非运算

(NAND)(2)或非运算

(NOR)(3)与或非运算

(AND–OR–INVERT)(真值表略)111000011011AB&10002.几种常用复合逻辑运算ABY1Y2Y1、Y2的真值表AB≥1AB&CD≥1(4)异或运算(Exclusive—OR)(5)同或运算(Exclusive—NOR)(异或非)AB=1011000011011AB=1=A⊙BABY4100100011011ABY5三、基本和常用逻辑运算的逻辑符号曾用符号美国符号ABYABYABYAAY国标符号AB&A1ABYAB≥1国标符号曾用符号美国符号AB&ABYABYABYAB=1ABABYABYAB≥1或:0+0=01+0=11+1=1

与:0·

0=00·

1=01·

1=1

非:二、变量和常量的关系(变量:A、B、C…)或:A+0=AA+1=1与:A·

0=0A·

1=A

非:1.1.2公式和定理一、常量之间的关系(常量:0和1)三、与普通代数相似的定理交换律结合律分配律[例1.1.1]

证明公式[解]方法一:公式法[例1.1.1]

证明公式方法二:真值表法

(将变量的各种取值代入等式两边,进行计算并填入表中)

ABC0000010100111001011101110001000100011111000111110011111101011111相等[解]四、逻辑代数的一些特殊定理同一律A+A=AA·

A=A还原律[例1.1.2]

证明:德摩根定理AB0001101100011110110010101110011110001000相等相等德摩根定理

将Y式中“.”换成“+”,“+”换成“.”

“0”换成“1”,“1”换成“0”

原变量换成反变量,反变量换成原变量五、关于等式的两个重要规则1.代入规则:等式中某一变量都代之以一个逻辑函数,则等式仍然成立。例如,已知(用函数

A+C代替

A)则2.反演规则:不属于单个变量上的反号应保留不变运算顺序:括号乘加注意:例如:已知反演规则的应用:求逻辑函数的反函数则

将Y式中“.”换成“+”,“+”换成“.”

“0”换成“1”,“1”换成“0”

原变量换成反变量,反变量换成原变量已知则运算顺序:括号与或不属于单个变量上的反号应保留不变六、若干常用公式推广公式(4)证明:推论公式(5)证明:即=A⊙B同理可证A⊙B一、标准与或表达式1.2逻辑函数的化简方法1.2.1逻辑函数的标准与或式和最简式标准与或式标准与或式就是最小项之和的形式最小项最简式[例1.2.1]1.最小项的概念:

包括所有变量的乘积项,每个变量均以原变量或反变量的形式出现一次。(

2变量共有

4个最小项)(

4变量共有

16个最小项)(

n变量共有

2n

个最小项)……(

3变量共有

8个最小项)对应规律:1

原变量

0

反变量2.最小项的性质:0000000100000010000001000000100000010000001000000100000010000000000001010011100101110111ABC(1)任一最小项,只有一组对应变量取值使其值为

1

;ABC

001ABC

101(2)任意两个最小项的乘积为

0

;(3)全体最小项之和为

1

。变量A、B、C全部最小项的真值表3.最小项是组成逻辑函数的基本单元

任何逻辑函数都是由其变量的若干个最小项构成,都可以表示成为最小项之和的形式。[例1.2.2]

写出下列函数的标准与或式:[解]相同最小项合并

标准与或表达式是唯一的,一个函数只有一个最小项之和的表达式。函数的标准与或式也可以由其真值表直接写出:例如,已知Y=A+BC

的真值表ABC00000101001110010111011100011111函数的标准与或式4.最小项的编号:

把与最小项对应的变量取值当成二进制数,与之相应的十进制数,就是该最小项的编号,用mi表示。对应规律:原变量

1

反变量

000000101001110010111011101234567m0m1m2m3m4m5m6m7[例]

写出下列函数的标准与或式:m7m6m5m4m1m0m8m0与前面m0相重二、逻辑函数的最简表达式1.最简与或式:乘积项的个数最少,每个乘积项中相乘的变量个数也最少的与或表达式。例如:2.最简与非–

与非式:非号最少,每个非号下面相乘的变量个数也最少的与非-与非式。[例1.2.3]

写出下列函数的最简与非-与非式:[解]3.最简或与式:括号个数最少,每个括号中相加的变量的个数也最少的或与式。[例1.2.4]

写出下列函数的最简或与式:[解]4.最简或非–

或非式:非号个数最少,非号下面相加的变量个数也最少的或非–或非式。[例1.2.5]

写出下列函数的最简或非–或非式:[解]5.最简与或非式:非号下面相加的乘积项的个数最少,每个乘积项中相乘的变量个数也最少的与或非式。[例1.2.6]

写出下列函数的最简与或非式:[解]结论:只要得到函数的最简与或式,再用摩根定理进行适当变换,就可以获得其它几种类型的最简式。而最简与或式一般需要经过化简才能求得。已知1.2.2逻辑函数的公式化简法一、并项法:[例1.2.7][例](与或式最简与或式)公式定理二、吸收法:[例1.2.8][例][例]三、消去法:[例1.2.9][例][例]四、配项消项法:或或[例1.2.10][例1.2.11]冗余项冗余项综合练习:1.2.3逻辑函数的图形化简法一、逻辑变量的卡诺图(Karnaughmaps)卡诺图:1.二变量的卡诺图最小项方格图(按循环码排列)(四个最小项)ABAB0101AB01012.变量卡诺图的画法三变量的卡诺图:八个最小项ABC01000110111110卡诺图的实质:逻辑相邻几何相邻逻辑不相邻逻辑相邻逻辑相邻紧挨着行或列的两头对折起来位置重合逻辑相邻:两个最小项只有一个变量不同逻辑相邻的两个最小项可以合并成一项,并消去一个因子。如:m0m1m2m3m4m5m6m7五变量的卡诺图:四变量的卡诺图:十六个最小项ABCD0001111000011110当变量个数超过六个以上时,无法使用图形法进行化简。ABCDE00011110000001011010110111101100以此轴为对称轴(对折后位置重合)m0m1m2m3m4m5m6m7m12m13m14m15m8m9m10m11m0m1m2m3m8m9m10m11m24m25m26m27m16m17m18m19m6m7m4m5m14m15m12m13m30m31m28m29m22m23m20m21几何相邻几何相邻几何相邻三十二个最小项3.变量卡诺图的特点:用几何相邻表示逻辑相邻(1)几何相邻:相接—

紧挨着相对—

行或列的两头相重—

对折起来位置重合(2)逻辑相邻:例如两个最小项只有一个变量不同化简方法:卡诺图的缺点:函数的变量个数不宜超过6个。逻辑相邻的两个最小项可以合并成一项,并消去一个因子。4.变量卡诺图中最小项合并的规律:(1)两个相邻最小项合并可以消去一个因子ABC01000111100432ABCD00011110000111101946(2)四个相邻最小项合并可以消去两个因子ABCD000111100001111004128321011ABCD0001111000011110571315BD02810(3)八个相邻最小项合并可以消去三个因子ABCD000111100001111004128321011ABCD0001111000011110571315B02810151394612142n个相邻最小项合并可以消去n个因子。总结:二、逻辑函数的卡诺图①根据函数的变量个数画出相应的卡诺图。②在函数的每一个乘积项所包含的最小项处都填1,其余位置填0或不填。1.逻辑函数卡诺图的画法2.逻辑函数卡诺图的特点用几何位置的相邻,形象地表达了构成函数的各个最小项在逻辑上的相邻性。优点:缺点:当函数变量多于六个时,画图十分麻烦,其优点不复存在,无实用价值。[例1.2.12]画出函数的卡诺图3.逻辑函数卡诺图画法举例[解]①根据变量个数画出函数的卡诺图ABCD0001111000011110②根据函数的每个乘积项确定函数的最小项,并在相应的位置上填

1。m0、m1、m2、m31111m12、m13、m14、m151111m0、m4、m8、m1211[例1.2.13]画出函数的卡诺图[解]①根据变量个数画出函数的卡诺图ABCD0001111000011110②根据函数的每个乘积项确定函数的最小项,并在相应的位置上填

1。m4、m51111m9、m11三、用卡诺图化简逻辑函数化简步骤:①画出函数的卡诺图②合并最小项:画包围圈③写出最简与或表达式[例1.2.14]ABCD000111100001111011111111[解]ABCD000111100001111011111111画包围圈的原则:①先圈孤立项,再圈仅有一种合并方式的最小项。②圈越大越好,但圈的个数越少越好。③最小项可重复被圈,但每个圈中至少有一个新的最小项。④必需把组成函数的全部最小项圈完,并做认真比较、检查才能写出最简与或式。不正确的画圈[例][解]①画函数的卡诺图ABCD000111100001111011111111②合并最小项:画包围圈③写出最简与或表达式多余的圈注意:先圈孤立项利用图形法化简函数利用图形法化简函数[例][解]①画函数的卡诺图ABCD00011110000111101111111111②合并最小项:画包围圈③写出最简与或表达式[例]用图形法求反函数的最简与或表达式[解]①画函数的卡诺图ABC010001111011110000②合并函数值为0

的最小项③写出Y的反函数的最简与或表达式1.2.4具有约束的逻辑函数的化简一、约束的概念和约束条件(1)约束:输入变量取值所受的限制例如,逻辑变量A、B、C,分别表示电梯的

升、降、停命令。A=1

表示升,B=1

表示降,C=1

表示停。ABC的可能取值(2)约束项:不会出现的变量取值所对应的最小项。不可能取值0010101000000111011101111.约束、约束项、约束条件(3)约束条件:②在逻辑表达式中,用等于0的条件等式表示。000011101110111由约束项相加所构成的值为0的逻辑表达式。约束项:约束条件:或2.约束条件的表示方法①在真值表和卡诺图上用叉号(╳)表示。例如,上例中

ABC的不可能取值为二、具有约束的逻辑函数的化简

化简具有约束的逻辑函数时,如果充分利用约束条件,可以使表达式大大化简。1.约束条件在化简中的应用(1)在公式法中的应用:

可以根据化简的需要加上或去掉约束项。[例]化简函数Y=ABC,约束条件[解]问题:当函数较复杂时,公式法不易判断出哪些约束项应该加上,哪些应该去掉。(2)在图形法中的应用:

根据卡诺图的特点(逻辑相邻,几何也相邻),在画包围圈时包含或去掉约束项,使函数最简。[例]化简函数Y=ABC,约束条件[解]①画出三变量函数的卡诺图ABC0100011110②先填最小项,再填约束项,其余填0或不填。1000③利用约束项合并最小项,使包围圈越大越好,但圈的个数越少越好。④写出最简与或式2.变量互相排斥的逻辑函数的化简互相排斥的变量:在一组变量中,只要有一个变量取值为1,则其他变量的值就一定是0。ABC01000111101011①画出该函数的卡诺图②画包围圈,合并最小项③写出最简与或表达式[例1.2.16]

函数Y

的变量A、B、C是互相排斥的,试用图形法求出Y

的最简与或表达式。[解]根据题意可知约束条件[例]化简逻辑函数化简步骤:①画函数的卡诺图,顺序为:ABCD0001111000011110先填1

0111000000②合并最小项,画圈时╳

既可以当1,又可以当0③写出最简与或表达式[解]╳三、化简举例[例]

化简逻辑函数约束条件[解]①画函数的卡诺图ABCD00011110000111101111②合并最小项③写出最简与或表达式合并时,究竟把╳

作为

1还是作为

0应以得到的包围圈最大且个数最少为原则。包围圈内都是约束项无意义(如图所示)。注意:1.3逻辑函数的表示方法及其相互之间的转换1.3.1几种表示逻辑函数的方法一、真值表将变量的各种取值与相应的函数值,以表格的形式一一列举出来。1.列写方法ABCY00000101001110010111011100010111例如函数2.主要特点优点:直观明了,便于将实际逻辑问题抽象成数学表达式。缺点:难以用公式和定理进行运算和变换;变量较多时,列函数真值表较繁琐。三、逻辑表达式优点:书写简洁方便,易用公式和定理进行运算、变换。缺点:逻辑函数较复杂时,难以直接从变量取值看出函数的值。二、卡诺图ABC010001111011110000优点:便于求出逻辑函数的最简与或表达式。缺点:只适于表示和化简变量个数比较少的逻辑函数,也不便于进行运算和变换。真值表的一种方块图表达形式,要求变量取值必须按照循环码的顺序排列。用与、或、非等运算表示函数中各个变量之间逻辑关系的代数式子。例如四、逻辑图ABYC&&优点:最接近实际电路。缺点:不能进行运算和变换,所表示的逻辑关系不直观。&≥1用基本和常用的逻辑符号表示函数表达式中各个变量之间的运算关系。[例1.3.1]画出函数的逻辑图五、波形图输入变量和对应的输出变量随时间变化的波形。ABY优点:形象直观地表示了变量取值与函数值在时间上的对应关系。缺点:难以用公式和定理进行运算和变换,当变量个数增多时,画图较麻烦。1.3.2几种表示方法之间的转换一、真值表函数式逻辑图[例]

设计一个举重裁判电路。在一名主裁判(A)和两名副裁判(B、C)中,必须有两人以上(必有主裁判)认定运动员的动作合格,试举才算成功。①真值表函数式

将真值表中使逻辑函数Y=1的输入变量取值组合所对应的最小项相加,即得Y的逻辑函数式。ABCY00000101001110010111011100000111函数式卡诺图化简ABC010001111011010000②函数式逻辑图ABY&C&≥1真值表函数式二、逻辑图0110ABY00011011BA&&&&

1.4EDA技术的基础知识1.4.1VHDL语言基础一、VHDL的主要构件基本设计单元VHDL—

超高速硬件描述语言(VeryHighSpeedHardwareDescriptionLanguage)实体(Entity)结构体(Architecture)程序包(Package)库(Library)配置(Configration

)--描述设计单元的外部接口信号--描述设计单元内部结构和行为--存放各设计模块共享的数据类型、常数、子程序等--专门存放程序包--指定实体所要配置的结构体1.实体功能:实现设计单元的端口说明。语法结构:ENTITY实体名ISPORT(端口名{,端口名}:端口模式数据类型;端口名{,端口名}:端口模式数据类型);END实体名;用英文字母赋予每个引脚的名称定义引脚上数据传输的方向常用端口模式方向说明IN输入到实体OUT从实体输出INOUT双向数据传输BUHHER从实体输出(但可反馈到实体内部)[例1.4.1]2输入与门的实体说明。ENTITYand2ISPORT(a,b:INSTD_LOGIC;

y:OUTSTD_LOGIC);ENDand2;设计单元端口结果:And2aby2.结构体功能:描述设计单元内部结构和行为,建立输入输出关系。语法结构:ARCHITECTURE结构体名OF实体名IS[结构体说明语句]BEGIN[功能描述语句]END结构体名;描述结构体内部“功能描述语句”中要用到的的内部信号、常数、数据类型、函数。(无时可省略)用并行语句形式描述设计单元功能并行语句类型进程语句(PROCESS)块描述语句(BLOCK)信号赋值语句子程序调用语句元件例化语句ARCHITECTURE结构体名OF实体名IS[结构体说明语句]BEGIN[功能描述语句]END结构体名;[例1.4.2]2输入与门的结构体描述。ARCHITECTUREoneOFand2ISBEGINy<=aandbENDARCHITECTUREone

;为并行语句,执行顺序与其书写顺序无关,在实际电路中所有并行语句功能同时实现。3.库、程序包和配置(1)库功能:存储和放置设计单元(元件、程序包等)。VHDL库IEEE库STD库ASIC库WORK库用户自定义库常用资源库含IEEE认可和某些公司提供的如:STD_LOGIC_1164程序包STD_LOGIC_ARITH算术运算包VHDL标准库存放:STANDARD的程序集合集合定义了多种常用的数据类型资源库存放:和各种逻辑门一一对应的实体当前作业库存放:当前设计项目生成的全部文件目录资源库存放:用户自己创建定义的非标准程序包集合和实体。库说明语句格式:LIBRARY库名;如:LIBRARYIEEE;(2)程序包存放各设计模块共享的数据类型、常数、子程序等。功能:语法格式:USELIBRARY库名.程序包名.项目名;[例]对IEEE库的1164程序包中所有项目的说明。USEIEEE.STD_LOGIC_1164.ALL;(3)配置CONFIGURATION配置名OF实体名ISFOR被选结构体名

ENDFOR;END配置名;--为实体指定所要配置的结构体功能:语法格式:[例1.4.3]配置语句举例ENTITYequ2ISPORT(a,b:INSTD_LOGIC_VECTOR(1DOWNTO0);

equ:OUTSTD_LOGIC);ENDequ2;ARCHITECTUREequationOFequ2IS--结构体一

……ENDequation;ARCHITECTUREcon_behaveOFequ2IS--结构体二

……ENDcon_behave

;ARCHITECTUREseq_behaveOFequ2IS--结构体三

……ENDseq_behave

实体equ2拥有三个结构体:equation、con_behave

seq_behave,可以用配置语句选择与实体对应的结构体。如选用结构体con_behave,可用以下语句实现:CONFIGURATIONaequbOFequ2ISFORcon_behaveENDFOR;

ENDCONFIGURATION;二、VHDL的数据对象和数据类型1.VHDL数据对象VHDL数据对象信号变量常量(1)常量常量:不变的量,定义时进行赋值,在整个程序中保持不变。语法格式:CONSTANT常量名:数据类型:=表达式;[例1.4.4]常量定义举例CONSTANTV:INTEGER:=8;(2)变量语法格式:VARIABLE变量名:数据类型[:=表达式];VARIABLEy:INTEGER;[例1.4.5]变量定义举例(3)信号信号:定义电路中的连线和元件的端口的数据对象。语法格式:SIGNAL信号名:数据类型;SIGNALA:INTEGER;[例1.4.6]信号定义举例2.VHDL数据类型(1)整数数据类型(INTEGER)

取值范围:-2147483547~2147483546(2)实数数据类型(REAL)

取值范围:-1.0E38~1.0E38(3)位数据类型(BIT)

属于枚举数据类型,取值为‘1’和‘0’。(4)位矢量数据类型(BIT_VECTOR)

用双引号括起来的一组位数据,如“10011”,通常用来表示数据总线。(5)布尔数据类型(BOOLEAN)(6)字符数据类型(CHARACTER)ASCII码的128个字符,书写时用单引号,区分大小写,如‘a’、‘A’等。(7)字符串数据类型(STRING)

双引号括起来的一串字符,如“abgh”。

属于枚举数据类型,取值为‘TRUE’和‘FALSE’。常用来表示关系运算和关系运算结果。(8)STD_LOGIC数据类型

属于枚举数据类型,取值有以下九种:

‘U’

初始值‘X’

不定

‘0’0‘1’1

‘Z’

高阻‘W’

弱信号不定

‘L’

弱信号0‘H’

弱信号1

‘-’不可能情况(9)STD_LOGIC_VECTOR数据类型

用双引号括起来的一组STD_LOGIC数据,如“101011”,通常用来表示数据总线。注意:使用STD_LOGIC、STD_LOGIC_VECTOR

数据类型时必须在库、程序包说明区进行说明。二、VHDL的操作符和表达式(1)算术操作符和算术表达式操作符说明+

加-

减*

乘/

除**

乘方mod

求模rem

求余abs

绝对值A+B-CX*Y/Z[例1.4.8]算术表达式举例(2)逻辑操作符和逻辑表达式操作符说明and

与or

或nand

与非nor

或非xor

异或xnor

同或not

逻辑非AANDBNOT

Z[例1.4.9]逻辑表达式举例(3)关系操作符和关系表达式操作符说明=

等于/=

不等于<

小于<=

小于等于>

大于>=

大于等于Y>=GA=B[例1.4.10]关系表达式举例(4)并置操作符和并置表达式

并置操作符“&”主要用来将操作数或数组组合起来,以形成新的操作数。例“10”&“11”结果为“1011”。二、VHDL基本语句VHDL基本语句顺序语句并行语句顺序信号赋值语句IF语句CASE语句LOOP语句EXITNEXT块语句进程语句并行信号赋值语句并行过程调用语句变量赋值语句子程序和子程序调用语句NULL元件声明例化语句生成语句1.顺序描述语句(1)顺序信号赋值语句(2)变量赋值语句目标信号<=表达式;目的变量:=表达式;Y<=AANDB;[例1.4.11]顺序信号赋值语句举例Y:=A+B;[例1.4.12]变量赋值语句举例格式:格式:执行顺序与书写顺序一致,只用于进程和子程序中。格式二:IF条件表达式THEN

顺序语句;ELSE

顺序语句;ENDIF;(3)IF语句(条件控制语句)格式一:IF条件表达式THEN

顺序语句;ENDIF;IFa=‘1’THENc<=b;ENDIF;[例]格式三:IF条件表达式THEN

顺序语句;ELSIF条件表达式THEN

顺序语句;……ELSE

顺序语句;ENDIF;语法格式:CASE表达式ISWHEN选择值=>顺序语句;WHEN选择值=>顺序语句;…[WHENOTHERS=>顺序语句;]ENDCASE;(3)CASE语句“选择值”的取值应“选择唯一,覆盖全集”。“选择值”的具体表示形式有以下四种:WHEN值=>顺序语句;WHEN值|值|…|值=>顺序语句;WHEN值TO值=>顺序语句;WHENOTHERS=>顺序语句;SIGNALs:STD_LOGIC_VECTOR(1DOWNTO0);…CASEsISWHEN“00”=>z<=a;WHEN“01”=>z<=b;WHEN“10”=>z<=c;WHEN“11”=>z<=d;WHENOTHERS=>z<=‘X’;ENDCASE;[例1.4.13]用CASE语句设计4选1数据选择器的程序片段无条件LOOP语句语法格式:[LOOP标号:]LOOP

顺序语句;ENDLOOP[LOOP标号];(5)LOOP语句FOR…LOOP语句语法格式:[LOOP标号:]FOR循环变量IN循环次数范围LOOP

顺序语句;ENDLOOP[LOOP标号];临时变量,不必事先定义。规定顺序语句的执行次数,从循环变量初值开始每执行一次递增1,直至最大值。WHILE…LOOP语句语法格式:[LOOP标号:]WHILE条件表达式LOOP

顺序语句;ENDLOOP[LOOP标号];需引入其它控制语句才能退出循环,如exit、next等。abcd:WHILE(i<10)LOOPsun:=i+sum;i=i+1;ENDLOOPabcd;[例1.4.14]WHILE…LOOP应用举例(6)NEXT语句NEXT[WHEN条件];loop2:LOOPb:=b+1;NEXTWHENb<10;…ENDLOOPloop2;[例1.4.15]NEXT语句举例格式:满足条件时中止当前循环,开始下一次循环。(7)EXIT语句EXIT[标号][WHEN条件];FORiIN1DOWNTO0LOOPIF(a(i)=‘1’ANDb(i)=‘0’)THENa_less_than_b<=false;EXIT;ELSIF(a(i)=‘0’ANDb(i)=‘1’)THENa_less_than_b<=true;EXIT;ELSENULL;ENDIF;ENDLOOP;[例1.4.16]EXIT语句在比较器中的应用格式:满足条件时提前退出循环。函数定义语句的语法格式:FOUNCTION<函数名>(参数表)RETURN<数据类型>ISBEGIN

顺序语句;RETURN[返回变量名];END<函数名>;(3)子程序和子程序调用语句VHDL子程序过程(PROCEDURE)函数(FOUNCTION)函数调用语句的语法格式:函数名(实际参数表);FOUNCTIONmin(x,y:INTEGER)RETURNINTEGERISBEGINIFx<yTHENRETURNx;ELSERETURNy;ENDIF;ENDmin;[例1.4.17]比较器函数形式的程序设计实例

函数的参数只能是方式为IN的输入信号,函数只能有一个返回值。

过程的参数可以为IN、OUT和INOUT方式,在进行参数说明时除了说明其名称、数据类型,还要说明其端口方式。过程定义语句的语法格式:PROCEDURE<过程名>(参数表)ISBEGIN

顺序语句;END<过程名>;过程调用语句的语法格式:过程名(实际参数表);PROCEDUREswap(data:INOUTdata_array;low,high:ininteger)ISVARIABLEtmp:data_element;BEGINIF(data(low)>data(high))THENtmp:=data(low);data(low):=data(high);data(high):=tmp;ENDIF;ENDswap;[例1.4.18]比较器过程形式的程序设计实例[例1.4.19]用过程调用语句调用过程swapswap(datain,1,2);1.并行语句[块标号:]BLOCK[(块保护表达式)][块说明语句;]BEGIN并行语句;ENDBLOCK[块标号];(1)BLOCK语句

当满足条件时,多个语句同时被执行,与书写顺序无关。

功能:将一大段并行语句划分为若干子模块,提高了程序的可读性。BLOCK语句的语法格式:块保护表达式是布尔表达式,当其为真时,该块中的语句被执行。ARCHITECTUREconnectOFmuxISSIGNALtmp1,tmp2,tmp3:BIT;BEGINBLOCKBEGINtmp1<=d0ANDnotsel;tmp2<=d1OR(notsel);tmp3<=tmp1ORtmp2;q<=tmp3;ENDBLOCK;ENDconnect;[例1.4.20]用BLOCK语句设计2选1数据选择器。(2)进程语句(PROCESS)[进程名:]PROCESS(敏感信号表)[说明语句;]BEGIN顺序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论