数字电路第五版(康华光)第2章.ppt
2.逻辑代数与硬件描述语言基础,2.1 逻辑代数 2.2 逻辑函数的卡诺图化简法2.3 硬件描述语言Verilog HDL基础,就,1、熟练掌握逻辑代数的基本定律和规则;,2、熟练掌握逻辑函数的化简方法;,3、熟悉硬件描述语言Verilog HDL(自学),教 学 要 求,2.1.1 逻辑代数的基本定律和恒等式,2.1 逻辑代数,2.1.3 逻辑函数的变换及代数化简法,2.1.2 逻辑代数的基本规则,2.1 逻辑代数,逻辑代数又称布尔代数。它是分析和设计现代数字逻辑电路不可缺少的数学工具。逻辑代数有一系列的定律、定理和规则,用于对数学表达式进行处理,以完成对逻辑电路的化简、变换、分析和设计。,逻辑关系指的是事件产生的条件和结果之间的因果关系。在数字电路中往往是将事情的条件作为输入信号,而结果用输出信号表示。条件和结果的两种对立状态分别用逻辑“1”和“0”表示。,基本的逻辑运算,从三种基本的逻辑关系,可以得到以下逻辑运算:,0 0=0 1=1 0=0,1 1=1,0+0=0,0+1=1+0=1+1=1,一、基本运算规则,A+0=A A+1=1 A 0=0 A=0 A 1=A,2.1.1逻辑代数的基本定律和恒等式,二、基本代数规律,交换律,结合律,分配律,A+B=B+A,A B=B A,A+(B+C)=(A+B)+C=(A+C)+B,A(B C)=(A B)C,A(B+C)=A B+A C,A+B C=(A+B)(A+C),逻辑代数的基本定律,三、吸收律,A+AB=A,证明:,A+AB=A(1+B)=A1=A,利用吸收律可以对逻辑式进行化简。,例如:,1.原变量的吸收,吸收:多余(冗余)项、多余因子被消去。,逻辑代数的基本定律,2.反变量的吸收:,证明:,例:,DC,逻辑代数的基本定律,3.混合变量的吸收:,证明:,例:,四、摩根定理:,可以用列真值表的方法证明:,逻辑代数的基本定律,可推广到多变量:,四、摩根定理:,逻辑代数的基本定律,内容:将函数式 F 中所有的,变量与常数均取反,应用:实现互补运算(求反运算),新表达式:,(反函数),五、反演定理:,逻辑代数的基本定律,例1:,与或式,注意括号,注意括号,逻辑代数的基本定律,与或式,反号不动,反号不动,例2:,逻辑代数的基本定律,1、基本公式,2.1.1逻辑代数的基本定律和恒等式(P40),吸收律,2.1.2 逻辑代数的基本规则,代入规则,:在包含变量A逻辑等式中,如果用另一个函数式代入式中所有A的位置,则等式仍然成立。这一规则称为代入规则。,例:B(A+C)=BA+BC,,用A+D代替A,得,B(A+D)+C=B(A+D)+BC=BA+BD+BC,代入规则可以扩展所有基本公式或定律的应用范围,2.反演规则:,解:按照反演规则,得,对于任意一个逻辑表达式L,若将其中所有的与()换成或(+),或(+)换成与();原变量换为反变量,反变量换为原变量;将1换成0,0换成1;则得到的结果就是原函数的反函数。,例:逻辑函数 的对偶式为,3.对偶规则:,当某个逻辑恒等式成立时,则该恒等式两侧的对偶式也相等。这就是对偶规则。利用对偶规则,可从已知公式中得到更多的运算公式,例如,吸收律,对于任何逻辑函数式,若将其中的与()换成或(+),或(+)换成与();并将1换成0,0换成1;那么,所得的新的函数式就是L的对偶式,记作。,“或-与”表达式,“与非-与非”表达式,“与-或-非”表达式,“或非或非”表达式,“与-或”表达式,逻辑函数的代数法化简,1、逻辑函数的最简与-或表达式,在若干个逻辑关系相同的与-或表达式中,将其中包含的与项数最少,且每个与项中变量数最少的表达式称为最简与-或表达式。,2、逻辑函数的化简方法,化简的主要方法:公式法(代数法)图解法(卡诺图法),代数化简法:运用逻辑代数的基本定律和恒等式进行化简的方法。,并项法:,吸收法:,A+AB=A,消去法:,配项法:,逻 辑 函 数 的 化 简,把逻辑函数的输入、输出关系写成与、或、非等逻辑运算的组合式,称为逻辑函数式。逻辑函数式通常采用“与或”的形式。,比如:,逻 辑 函 数 的 化 简,利用逻辑代数的基本公式化简:,例1:,例2:,反演,逻 辑 函 数 的 化 简,合并,吸收,(最简与或式),课 堂 练 习,试化简:,(合并项),吸收消去,(最简与或式),课 堂 练 习,试化简:,添冗余项:,消冗余项,添冗余项:,(最简与或式),课 堂 练 习,试化简:,添冗余项:,(最简与或式),课 堂 练 习,试化简:,经过化简得最简与或式:,项数,因子数对应相同。,讨论:,或者:,化简结果不是唯一的!,课 堂 练 习,例2.1.8 已知逻辑函数表达式为,,要求:(1)最简的与-或逻辑函数表达式,并画出相应的逻辑图;(2)仅用与非门画出最简表达式的逻辑图。解:,),),解:,解:,例3 化简(或与式的化简),例4 化简逻辑函数:,(配项法),(利用A+AB=A),(利用),由上例可知,有些逻辑函数的化简结果不是唯一的。,解法1:,例5 化简逻辑函数:,(增加多余项),(消去一个多余项),(再消去一个多余项),解法2:,(增加多余项),(消去一个多余项),(再消去一个多余项),课 外 作 业,P64 2.1.3(3)2.1.4(6)(7)(9)(10)2.1.5(2),2.2 逻辑函数的卡诺图化简法,2.2.2 逻辑函数的最小项表达式,2.2.1 最小项的定义及性质,2.2.4 用卡诺图化简逻辑函数,2.2.3 用卡诺图表示逻辑函数,1.逻辑代数与普通代数的公式易混淆,化简过程要求对所有公式熟练掌握;2.代数法化简无一套完善的方法可循,它依赖于人的经验和灵活性;3.用这种化简方法技巧强,较难掌握。特别是对代数化简后得到的逻辑表达式是否是最简式判断有一定困难。卡诺图法可以比较简便地得到最简的逻辑表达式。,代数法化简在使用中遇到的困难:,n个变量X1,X2,Xn的最小项是n个因子的乘积,每个变量都以它的原变量或非变量的形式在乘积项中出现,且仅出现一次。一般n个变量的最小项应有2n个。,1.最小项的意义,2.2.1 最小项的定义及其性质,对于变量的任一组取值,全体最小项之和为1。,对于任意一个最小项,只有一组变量取值使得它的值为1;,对于变量的任一组取值,任意两个最小项的乘积为0;,三个变量的所有最小项的真值表,2、最小项的性质,3、最小项的编号,三个变量的所有最小项的真值表,m0,m1,m2,m3,m4,m5,m6,m7,最小项的表示:通常用mi表示最小项,m 表示最小项,下标i为最小项号。,逻辑函数的最小项表达式,为“与或”逻辑表达式;在“与或”式中的每个乘积项都是最小项。,=m7m6m3m5,逻辑函数的最小项表达式:,例2 将,化成最小项表达式,a.去掉非号,b.去括号,2.2.3 用卡诺图表示逻辑函数,1、卡诺图的引出,卡诺图:将n变量的全部最小项都用小方块表示,并使具有逻辑相邻的最小项在几何位置上也相邻地排列起来,这样,所得到的图形叫n变量的卡诺图。,逻辑相邻的最小项:如果两个最小项只有一个变量互为反变量,那么,就称这两个最小项在逻辑上相邻。,1,0,1,0,0,1,00,01,11,10,三变量卡诺图,四变量卡诺图,两变量卡诺图,2、卡诺图的特点:各小方格对应于各变量不同的组合,而且上下左右在几何上相邻的方格内只有一个因子有差别,这个重要特点成为卡诺图化简逻辑函数的主要依据。,3.已知逻辑函数画卡诺图,当逻辑函数为最小项表达式时,在卡诺图中找出和表达式中最小项对应的小方格填上1,其余的小方格填上0(有时也可用空格表示),就可以得到相应的卡诺图。任何逻辑函数都等于其卡诺图中为1的方格所对应的最小项之和。,例2 画出下式的卡诺图,2.填写卡诺图,2.2.4 用卡诺图化简逻辑函数,1、化简的依据,2、化简的步骤,用卡诺图化简逻辑函数的步骤如下:,(4)将所有包围圈对应的乘积项相加。,(1)将逻辑函数写成最小项表达式,(2)按最小项表达式填卡诺图,凡式中包含了的最小项,其对应方格填1,其余方格填0。,(3)合并最小项,即将相邻的1方格圈成一组(包围圈),每一组含2n个方格,对应每个包围圈写成一个新的乘积项。本书中包围圈用虚线框表示。,画包围圈时应遵循的原则:,例:用卡诺图法化简下列逻辑函数,(2)画包围圈合并最小项,得最简与-或表达式,解:(1)由L 画出卡诺图,(0,2,5,7,8,10,13,15),例:用卡诺图化简,圈0,圈1,F(A,B,C,D)=m(0,1,2,5,6,7,8,10,11,12,13,15),1,1,1,1,1,1,1,1,1,1,1,1,课 堂 练 习,F(A,B,C,D)=m(0,1,2,5,6,7,8,10,11,12,13,15),F(A,B,C,D)=m(0,1,2,5,6,7,8,10,11,12,13,15),化简结果不唯一!,F(A,B,C,D)=m(0,1,2,5,6,7,8,10,11,12,13,15),例:,1,1,刷项:,填公因子包含的项,例:,例:,F=1的项全部填完即可,不填者为“0”。,例:,A,B,D,C,1 1 1 1,1 1 1 1,1 1,1 1,D,例:,1 1 1 1,11,填图:,课 堂 练 习,1 1 1 1,11,1 1,填图:,课 堂 练 习,冗余项,划圈:,1 1,1 1,用公式化简法得到下式,问是否最简,若不是请化简之。,课 堂 练 习,填图:,1,1,填图:,课 堂 练 习,用公式化简法得到下式,问是否最简,若不是请化简之。,划圈:,课 堂 练 习,另一种划圈法:,课 堂 练 习,课 堂 练 习,含无关项的逻辑函数及其化简,1、什么叫无关项:,在真值表内对应于变量的某些取值下,函数的值可以是任意的,或者这些变量的取值根本不会出现,这些变量取值所对应的最小项称为无关项或任意项。,在含有无关项逻辑函数的卡诺图化简中,它的值可以取0或取1,具体取什么值,可以根据使函数尽量得到简化而定。,利用无关项化简逻辑函数,n个变量的2n种组合中有一些变量取值不会出现(或不允许出现),这些状态对应的最小项,称为无关项(任意项、约束项、随意项、无所谓状态)。,例:要求设计一个逻辑电路,能够判断一位十进制数是奇数还是偶数,当十进制数为奇数时,电路输出为1,当十进制数为偶数时,电路输出为0。,解:(1)列出真值表,(2)画出卡诺图,(3)卡诺图化简,1,1,1,1,1,例:,利用随意项化简逻辑函数,课 堂 练 习,逻辑代数:数字电路分析和设计的理论工具。,一、逻辑函数的表示方法(五种):,应能相互转换!,真值表,逻辑式,卡诺图,逻辑图,波形图。,小 结,逻辑代数:数字电路分析和设计的理论工具。,小 结,二、逻辑代数的基本定理、规则:,1.基本运算法则:结合律、交换律、分配律等;,2.几种形式的吸收律;,3.几个定理:德 摩根定理、反演定理。,三、逻辑函数的化简方法:,1.公式法布尔代数;,2.图形法卡诺图(n 4)。,逻辑代数:数字电路分析和设计的理论工具。,小 结,课 外 作 业,P65 2.1.7(3)2.2.1(3)2.2.3(1)(3)(5)(7)2.2.4(选做),2.2 逻辑函数的卡诺图化简法,2.2.2 逻辑函数的最小项表达式,2.2.1 最小项的定义及性质,2.2.4 用卡诺图化简逻辑函数,2.2.3 用卡诺图表示逻辑函数,1.逻辑代数与普通代数的公式易混淆,化简过程要求对所有公式熟练掌握;2.代数法化简无一套完善的方法可循,它依赖于人的经验和灵活性;3.用这种化简方法技巧强,较难掌握。特别是对代数化简后得到的逻辑表达式是否是最简式判断有一定困难。卡诺图法可以比较简便地得到最简的逻辑表达式。,代数法化简在使用中遇到的困难:,n个变量X1,X2,Xn的最小项是n个因子的乘积,每个变量都以它的原变量或非变量的形式在乘积项中出现,且仅出现一次。一般n个变量的最小项应有2n个。,1.最小项的意义,2.2.1 最小项的定义及其性质,对于变量的任一组取值,全体最小项之和为1。,对于任意一个最小项,只有一组变量取值使得它的值为1;,对于变量的任一组取值,任意两个最小项的乘积为0;,三个变量的所有最小项的真值表,2、最小项的性质,3、最小项的编号,三个变量的所有最小项的真值表,m0,m1,m2,m3,m4,m5,m6,m7,最小项的表示:通常用mi表示最小项,m 表示最小项,下标i为最小项号。,逻辑函数的最小项表达式,为“与或”逻辑表达式;在“与或”式中的每个乘积项都是最小项。,=m7m6m3m5,逻辑函数的最小项表达式:,例2 将,化成最小项表达式,a.去掉非号,b.去括号,2.2.3 用卡诺图表示逻辑函数,1、卡诺图的引出,卡诺图:将n变量的全部最小项都用小方块表示,并使具有逻辑相邻的最小项在几何位置上也相邻地排列起来,这样,所得到的图形叫n变量的卡诺图。,逻辑相邻的最小项:如果两个最小项只有一个变量互为反变量,那么,就称这两个最小项在逻辑上相邻。,1,0,1,0,0,1,00,01,11,10,三变量卡诺图,四变量卡诺图,两变量卡诺图,2、卡诺图的特点:各小方格对应于各变量不同的组合,而且上下左右在几何上相邻的方格内只有一个因子有差别,这个重要特点成为卡诺图化简逻辑函数的主要依据。,3.已知逻辑函数画卡诺图,当逻辑函数为最小项表达式时,在卡诺图中找出和表达式中最小项对应的小方格填上1,其余的小方格填上0(有时也可用空格表示),就可以得到相应的卡诺图。任何逻辑函数都等于其卡诺图中为1的方格所对应的最小项之和。,例2 画出下式的卡诺图,2.填写卡诺图,2.2.4 用卡诺图化简逻辑函数,1、化简的依据,2、化简的步骤,用卡诺图化简逻辑函数的步骤如下:,(4)将所有包围圈对应的乘积项相加。,(1)将逻辑函数写成最小项表达式,(2)按最小项表达式填卡诺图,凡式中包含了的最小项,其对应方格填1,其余方格填0。,(3)合并最小项,即将相邻的1方格圈成一组(包围圈),每一组含2n个方格,对应每个包围圈写成一个新的乘积项。本书中包围圈用虚线框表示。,画包围圈时应遵循的原则:,例:用卡诺图法化简下列逻辑函数,(2)画包围圈合并最小项,得最简与-或表达式,解:(1)由L 画出卡诺图,(0,2,5,7,8,10,13,15),例:用卡诺图化简,圈0,圈1,F(A,B,C,D)=m(0,1,2,5,6,7,8,10,11,12,13,15),1,1,1,1,1,1,1,1,1,1,1,1,课 堂 练 习,F(A,B,C,D)=m(0,1,2,5,6,7,8,10,11,12,13,15),F(A,B,C,D)=m(0,1,2,5,6,7,8,10,11,12,13,15),化简结果不唯一!,F(A,B,C,D)=m(0,1,2,5,6,7,8,10,11,12,13,15),例:,1,1,刷项:,填公因子包含的项,例:,例:,F=1的项全部填完即可,不填者为“0”。,例:,A,B,D,C,1 1 1 1,1 1 1 1,1 1,1 1,D,例:,1 1 1 1,11,填图:,课 堂 练 习,1 1 1 1,11,1 1,填图:,课 堂 练 习,冗余项,划圈:,1 1,1 1,用公式化简法得到下式,问是否最简,若不是请化简之。,课 堂 练 习,填图:,1,1,填图:,课 堂 练 习,用公式化简法得到下式,问是否最简,若不是请化简之。,划圈:,课 堂 练 习,另一种划圈法:,课 堂 练 习,课 堂 练 习,含无关项的逻辑函数及其化简,1、什么叫无关项:,在真值表内对应于变量的某些取值下,函数的值可以是任意的,或者这些变量的取值根本不会出现,这些变量取值所对应的最小项称为无关项或任意项。,在含有无关项逻辑函数的卡诺图化简中,它的值可以取0或取1,具体取什么值,可以根据使函数尽量得到简化而定。,利用无关项化简逻辑函数,n个变量的2n种组合中有一些变量取值不会出现(或不允许出现),这些状态对应的最小项,称为无关项(任意项、约束项、随意项、无所谓状态)。,例:要求设计一个逻辑电路,能够判断一位十进制数是奇数还是偶数,当十进制数为奇数时,电路输出为1,当十进制数为偶数时,电路输出为0。,解:(1)列出真值表,(2)画出卡诺图,(3)卡诺图化简,1,1,1,1,1,例:,利用随意项化简逻辑函数,课 堂 练 习,逻辑代数:数字电路分析和设计的理论工具。,一、逻辑函数的表示方法(五种):,应能相互转换!,真值表,逻辑式,卡诺图,逻辑图,波形图。,小 结,逻辑代数:数字电路分析和设计的理论工具。,小 结,二、逻辑代数的基本定理、规则:,1.基本运算法则:结合律、交换律、分配律等;,2.几种形式的吸收律;,3.几个定理:德 摩根定理、反演定理。,三、逻辑函数的化简方法:,1.公式法布尔代数;,2.图形法卡诺图(n 4)。,逻辑代数:数字电路分析和设计的理论工具。,小 结,课 外 作 业,P65 2.1.7(3)2.2.1(3)2.2.3(1)(3)(5)(7)2.2.4(选做),Verilog语言的基本语法规则 变量的数据类型 Verilog程序的基本结构 2.3.4 逻辑功能的仿真与测试,2.3 硬件描述语言Verilog HDL基础,概述,硬件描述语言HDL(Hardware Description Languag)类似于高级程序设计语言.它是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,复杂数字逻辑系统所的逻辑功能。HDL是高层次自动化设计的起点和基础.,2.3 硬件描述语言Verilog HDL基础,计算机对HDL的处理:,逻辑综合 是指从HDL描述的数字逻辑电路模型中导出电路基本元件列表以及元件之间的连接关系(常称为门级网表)的过程。逻辑综合的结果产生门级元件及其连接关系的数据库,根据这个数据库可以制作出集成电路或印刷电路板PCB。,逻辑仿真 是指用计算机仿真软件对数字逻辑电路的结构和行为进行预测.仿真器对HDL描述进行解释,以文本形式或时序波形图形式给出电路的输出。在仿真期间如发现设计中存在错误,就再要对HDL描述进行及时的修改。,#起源于美国国防部提出的超高速集成电路研究计划,目的是为了把电子电路的设计意义以文字或文件的方式保存下来,以便其他人能轻易地了解电路的设计意义。,1.HDL的产生,#随着集成电路的亚微米和深亚微米制造、设计技术的飞速发展,集成电路已进入片上系统SOC(System on a chip)时代。SOC通常是由硬件电路和运行其上的系统软件构成。硬件电路一般使用HDL进行描述.,概述,FPGA开发流程与软件,FPGA厂家工具:Altera的Max+PlusII、QuartusII,Xilinx的Foundation、ISE4.1等,VHDL 和Verilog的功能较强属于行为描述语言。两种HDL均为IEEE标准。特别是Verilog由于其句法根源出自C语言,它相对VHDL好用 好学,2.几种硬件描述语言,ABEL(Advanced Bolean Equation Language)VHDL(V-Very High Speed Integrated Circuit)Verilog HDL(简称Verilog),能力(capability),VHDL,3.常用VHDL与Verilog两种语言的比较,数据类型(data type),易学性(easiest to learn),Verilog,由于Verilog为直接仿真语言,数据类型较简单,语法很直观,故Verilog更易理解和好学。Verilog更像C,约有50的结构来自C,其余部分来自ADA。,2.3.1 Verilog语言的基本语法规则,为对数字电路进行描述,Verilog语言规定了一套完整的语法结构。,1间隔符:Verilog 的间隔符主要起分隔文本的作用,可以使文本错落有致,便于阅读与修改。间隔符包括空格符(b)、TAB 键(t)、换行符(n)及换页符。,2注释符:注释只是为了改善程序的可读性,在编译时不起作用。多行注释符(用于写多行注释):/*-*/;单行注释符:以/开始到行尾结束为注释文字。,为了表示数字逻辑电路的逻辑状态,Verilog语言规定了4种基本的逻辑值。,标识符:给对象(如模块名、电路的输入与输出端口、变量等)取名所用的字符串。以英文字母或下划线开始如,clk、counter8、_net、bus_A。关键词:用Verilog语言本身规定的特殊字符串定义语言的结构。例如,module、endmodule、input、output、wire、reg、and等都是关键词。关键词都是小写,关键词不能作为标识符使用。,4逻辑值集合,3标识符和关键词,5常量及其表示,实数型常量,;,Verilog允许用参数定义语句定义一个标识符来代表一个常量,称为符号常量。定义的格式为:parameter 参数名1常量表达式1,参数名2常量表达式2,;如 parameter BIT=1,BYTE=8,PI=3.14;,常量,整数型,例如:3b101、5o37、8he3,8b1001_0011,2.3.2 变量的数据类型,寄存器型,网络型,网络类:是指输出始终根据输入的变化而更新其值的变量,它一般指的是硬件电路中的各种物理连接.,例:wire L;/将上述电路的输出信号L声明为网络型变量 wire 7:0 data bus;/声明一个8-bit宽的网络型总线变量,寄存器型变量对应的是具有状态保持作用的电等路元件,如触发器寄存器。寄存器型变量只能在initial或always内部被赋值。,2、寄存器型,4种寄存器类型的变量,例:reg clock;/定义一个1位寄存器变量 reg 3:0 counter;/定义一个4位寄存器变量,2、每个模块先要进行端口的定义,并说明输入(input)和输出(output),然后对模块功能进行描述。,2.3.3 Verilog程序的基本结构,Verilog使用大约100个预定义的关键词定义该语言的结构,1、VerilogHDL程序由模块构成。每个模块的内容都是嵌在关键词module和endmodule两个语句之间。每个模块实现特定的功能。,3、除了endmodule语句外,每个语句后必须有分号。,4、可以用/*-*/和/.对VerilogHDL程序的任何部分做注释。,模块定义的一般语法结构如下:,module mux2to1(a,b,sel,out);input a,b,sel;/定义输入信号 output out;/定义输出信号 wire selnot;/定义内部节点信号数据类型/下面对电路的逻辑功能进行描述 not U1(selnot,sel);and U2(a1,a,selnot);and U3(b1,b,sel);or U4(out,a1,b1);endmodule,结构描述(门级描述),模块名,数据类型说明,例 用结构描述方式建立门电路Verloger模型,2.3.4 逻辑功能的仿真与测试,逻辑电路的设计块完成后,就要测试这个设计块描述的逻辑功能是否正确。为此必须在输入端口加入测试信号,而从其输出端口检测其结果是否正确,这一过程常称为搭建测试平台。根据仿真软件的不同,搭建测试平台的方法也不同。,图2.3.3 例的仿真输出波形,