逻辑代数与硬件描述语言基础_第1页
逻辑代数与硬件描述语言基础_第2页
逻辑代数与硬件描述语言基础_第3页
逻辑代数与硬件描述语言基础_第4页
逻辑代数与硬件描述语言基础_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

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

文档简介

1、第 2章逻辑代数与硬件描述语言基础电子技术基础(数字部分) 2.1 逻辑代数的基本定律和规则 2.2 逻辑函数表达式的形式 2.3 逻辑函数的代数化简法 2.4 逻辑函数的卡诺图化简法 2.5 硬件描述语言Verilog HDL基础 2 .逻辑代数与硬件描述语言基础 熟悉逻辑代数常用基本定律、恒等式和规则。 掌握逻辑代数的变换和卡诺图化简法。 熟悉硬件描述语言Verilog HDL本章学习学习重点2 .逻辑代数与硬件描述语言基础2.1 逻辑代数 逻辑代数又称布尔代数。它是分析和设计现代数字逻辑电路不可缺少的数学工具。逻辑代数有一系列的定律、定理和规则,用于对逻辑表达式进行处理,以完成对逻辑电路

2、的化简、变换、分析和设计。A + A = 1A A = 0A A = AA + A = A1、基本公式交换律:A + B = B + AA B = B A结合律:A + B + C = (A + B) + C A B C = (A B) C 分配律:A + BC = ( A + B )( A + C )A ( B + C ) = AB + AC A 1 = AA 0 = 0A + 0 = AA + 1 = 10、1律:2.1.1 逻辑代数的基本定律和恒等式2.1 逻辑代数反演律:AB = A + B A + B = A B吸收律 其它常用恒等式 ABACBCAB + ACABACBCDAB +

3、 AC1、基本公式2.1.1 逻辑代数的基本定律和恒等式2.1 逻辑代数2、基本公式的证明例 证明,列出等式左边、右边的函数值的真值表(真值表证明法)011 = 001+1=00 01 1110 = 101+0=00 11 0101 = 100+1=01 00 1100 = 110+0=11 10 0A+BA+BA B A B2.1.1 逻辑代数的基本定律和恒等式2.1 逻辑代数证:A+1=1 A A=A.常用的恒等式可以用其它的基本定律证明2、基本公式的证明2.1.1 逻辑代数的基本定律和恒等式2.1 逻辑代数常用的恒等式可以用其它的基本定律证明2、基本公式的证明2.1.1 逻辑代数的基本定

4、律和恒等式2.1 逻辑代数 :在包含变量A的逻辑等式中,如果用另一个函数式代入式中所有A的位置,等式仍然成立。这一规则称为代入规则。 2.1.2 逻辑代数的基本规则 代入规则 例:B (A +C) = BA+BC,用A + D代替A,得B (A +D ) +C = B (A +D ) + BC = BA + BD + BC代入规则可以扩展所有基本公式或定律的应用范围2.1 逻辑代数 对于任意一个逻辑表达式L,若将其中所有的与( )换成或(+),或(+)换成与();原变量换为反变量,反变量换为原变量;将1换成0,0换成1;则得到的结果就是原函数的反函数。2. 反演规则:例2.1.2 试求 的反函

5、数解:按照反演规则,得 2.1.2 逻辑代数的基本规则 2.1 逻辑代数 (1)保持原来的运算优先级,即先进行与运算,后进行或运算,并注意优先考虑括号内的运算。例2.1.3 试求 的反函数解:按照反演规则,得 (2) 对于反变量以外的非号应保留不变。 运用反演规则时,必须注意以下两个原则:2. 反演规则: 2.1.2 逻辑代数的基本规则 2.1 逻辑代数 对于任何逻辑函数式,若将其中的与( )换成或(+),或(+)换成与();并将1换成0,0换成1;那么,所得的新的函数式就是L的对偶式,记作例: 逻辑函数 的对偶式为3. 对偶规则:当某个逻辑恒等式成立时,则该恒等式的对偶式也成立。这就是对偶规

6、则。利用对偶规则,可从已知公式中得到更多的运算公式。 2.1.2 逻辑代数的基本规则 2.1 逻辑代数 2.2.1 逻辑函数表达式的基本形式2.2 逻辑函数表达式的形式1. 与-或表达式与-或表达式是指由若干与项进行或逻辑运算构成的表达式。2. 或-与表达式或-与表达式是指由若干或项进行与逻辑运算构成的表达式。“与非-与非”表达式 “或非或非” 表达式 2.2.2 最小项与最小项表达式2.2 逻辑函数表达式的形式1. 最小项的定义与性质对于含有n个变量X1, X2, , Xn的逻辑函数,若有一个乘积项包含了全部的n个变量,每个变量都以它的原变量或非变量的形式在乘积项中出现,且仅出现一次,这个乘

7、积项就被称为该逻辑函数的最小项。、 、A(B+C)等则不是最小项。例如,A、B、C三个逻辑变量的最小项分别为: 、一般n个变量的逻辑函数其最小项应有2n个。 对于变量的任一组取值,全体最小项之和为1。对于任意一个最小项,只有一组变量取值使得它的值为1;对于变量的任一组取值,任意两个最小项的乘积为0;0001000000000101000000010001000001000000100001100010000101000001001100000001011100000001 2.2.2 最小项与最小项表达式2.2 逻辑函数表达式的形式1. 最小项的定义与性质 2.2.2 最小项与最小项表达式2.

8、2 逻辑函数表达式的形式1. 最小项的定义与性质最小项的表示、也可以用mi表示,m 表示最小项,下标i为最小项的编号,用十进制数表示(最小项中的原变量用1表示,非变量用0表示,即可得到最小项编号的十进制数值。) 、m0m1m2m3m4m5m6m7 2.2.2 最小项与最小项表达式2.2 逻辑函数表达式的形式2. 逻辑函数的最小项表达式 是由若干最小项相或构成的逻辑表达式,也称为标准的与或表达式。例2.2.1 将化成最小项表达式= m7m6m3m1 例2.2.2 将 化成最小项表达式 a.去掉非号b.去括号 2.2.2 最小项与最小项表达式2.2 逻辑函数表达式的形式c.配项 2.2.3 最大项

9、与最大项表达式2.2 逻辑函数表达式的形式1. 最大项的定义与性质对于含有n个变量X1 , X2 , , Xn的逻辑函数,若有一个或项包含了全部的n个变量,每个变量都以它的原变量或非变量的形式在或项中出现,且仅出现一次,则称该或项是逻辑函数的最大项。一般n个变量的逻辑函数其最大项应有2n个。 也可以用Mi表示,M 表示最大项,下标i为最大项的编号,用十进制数表示(最大项中的原变量取0,非变量取1表示,即可得到最大项编号的十进制数值。) 行号变量取值最小项最大项A B C00 0 010 0 120 1 030 1 141 0 051 0 161 1 071 1 1 2.2.3 最大项与最大项表

10、达式2.2 逻辑函数表达式的形式最大项的性质 2.2.3 最大项与最大项表达式2.2 逻辑函数表达式的形式1. 最大项的定义与性质对于变量的任一组取值,全体最大项之积为0。 对于任意一个最大项,只有一组变量取值使得它的值为0,而在变量取其它各组值时,这个最大项的值都是1;对于变量的任一组取值,任意两个不同的最大项之和1;相同变量构成的最小项和最大项之间存在互补关系,即: 2.2.3 最大项与最大项表达式2.2 逻辑函数表达式的形式2. 最小项和最大项的关系 例2.2.2 将 化成最大项之积的形式 2.2.3 最大项与最大项表达式2.2 逻辑函数表达式的形式2. 最小项和最大项的关系 例2.2.

11、2 将 化成最大项之积的形式 2.2.3 最大项与最大项表达式2.2 逻辑函数表达式的形式2. 最小项和最大项的关系 例2.2.4 一个逻辑电路有三个输入逻辑变量A、B、C,它的真值表如下表所示 ,试写出该逻辑函数的最小项表达式和最大项表达式。 2.2.3 最大项与最大项表达式2.2 逻辑函数表达式的形式2. 最小项和最大项的关系00000010101111011000011101001110ABYC步骤:1)写出使函数值为1的各行所对应的最小项2)将这些最小项相加,即得到最小项表达式。 例2.2.4 一个逻辑电路有三个输入逻辑变量A、B、C,它的真值表如下表所示 ,试写出该逻辑函数的最小项表

12、达式和最大项表达式。 2.2.3 最大项与最大项表达式2.2 逻辑函数表达式的形式2. 最小项和最大项的关系00000010101111011000011101001110ABYC步骤:1)写出使函数值为0的各行所对应的最大项2)将这些最大项相乘,即得到最大项表达式。 根据逻辑函数表达式,可以画出相应的逻辑图。然而,直接根据某种逻辑要求写出来的逻辑函数表达式往往不是最简的形式,这就需要对逻辑函数表达式进行化简。利用化简后的逻辑函数表达式构成逻辑电路图时,可以节省器件,降低成本,提高数字系统的可靠性。2.3 逻辑函数的代数化简法“或-与”表达式“与非-与非”表达式 “与-或-非”表达式“或非或非

13、” 表达式“与-或” 表达式 在若干个逻辑关系相同的与-或表达式中,若其中包含的与项(乘积项)数最少,且每个与项中变量数最少,这样的表达式称为最简与-或表达式。 2.3.1 逻辑函数的最简形式2.3 逻辑函数的代数化简法1、逻辑函数的化简 化简的主要方法:() 公式法(代数法)() 图解法(卡诺图法)代数化简法: 运用逻辑代数的基本定律和恒等式进行化简的方法。 并项法: () 2.3.2 逻辑函数的代数化简法2.3 逻辑函数的代数化简法(2) 吸收法: A + AB = A (3)消去法: A+AB=A+B 2.3.2 逻辑函数的代数化简法2.3 逻辑函数的代数化简法1、逻辑函数的化简 (4)

14、配项法: 2.3.2 逻辑函数的代数化简法2.3 逻辑函数的代数化简法1、逻辑函数的化简 2.3.2 逻辑函数的代数化简法2.3 逻辑函数的代数化简法1、逻辑函数的化简化简逻辑函数要求:(1)求最简的与-或逻辑函数表达式。 (2)画出仅用与非门实现的最简的逻辑图。解:例2.3.6 已知逻辑函数表达式为 2.3.2 逻辑函数的代数化简法2.3 逻辑函数的代数化简法2、逻辑函数形式的变换要求:(1)求最简的与-或逻辑函数表达式。 (2)画出仅用与非门实现的最简的逻辑图。解:例2.3.6 已知逻辑函数表达式为 2.3.2 逻辑函数的代数化简法2.3 逻辑函数的代数化简法2、逻辑函数形式的变换将与或表

15、达式变换成与非与非表达式时,首先对与或表达式取两次非,然后按照摩根定理分开下面的非号即可。例2.3.7 试对逻辑函数表达式进行变换,仅用或非门画出该表达式的逻辑图。解: 2.3.1 逻辑函数的代数化简法2.3 逻辑函数的代数化简法2、逻辑函数形式的变换将与或表达式变换成或非或非表达式时,首先对与或表达式中的每个乘积项单独取两次非,然后按照摩根定理分开下面的非号即可。1.逻辑代数与普通代数的公式易混淆,化简过程要求对所有公式熟练掌握;2.代数法化简无一套完善的方法可循,它依赖于人的经验和灵活性;3.用这种化简方法技巧强,较难掌握。特别是对代数化简后得到的逻辑表达式是否是最简式判断有一定困难。卡诺

16、图法可以比较简便地得到最简的逻辑表达式。代数法化简在使用中遇到的困难: 2.1.3 逻辑函数的代数法化简1、卡诺图 卡诺图:和n变量逻辑函数的全部最小项一一对应的方格阵图,并使具有逻辑相邻的最小项在几何位置上也相邻地排列起来,这样所得到的方格阵图叫n变量逻辑函数的卡诺图。逻辑相邻的最小项也应该几何相邻2.4.1 用卡诺图表示逻辑函数2.4 逻辑函数的卡诺图化简法逻辑相邻与几何相邻逻辑相邻:两个最小项,只有一个变量的取值不同,其余的都相同。逻辑相邻的最小项可以合并。如最小项m6=ABC、与m7 =ABC 在逻辑上相邻m7m61、卡诺图2.4.1 用卡诺图表示逻辑函数2.4 逻辑函数的卡诺图化简法

17、几何相邻:一是相邻紧挨的;二是相对任一行或一列的两头;AB10100100011110三变量卡诺图两变量卡诺图m0m1m2m3BCA m0 m1 m2 m3 m4 m5 m6 m7在卡诺图的行和列分别标出变量及其取值状态。二进制数对应的十进制数编号1、卡诺图2.4.1 用卡诺图表示逻辑函数2.4 逻辑函数的卡诺图化简法任意两个相邻最小项之间只有一个变量的 状态改变 m0 m1 m2 m3 m4 m5 m6 m7 m12 m13 m14 m15 m8 m9 m10 m110001111000011110ABCD四变量卡诺图2、卡诺图的特点:各小方格对应于各变量不同的组合,而且上下左右在几何上相邻

18、的方格内只有一个因子有差别,这个重要特点成为卡诺图化简逻辑函数的主要依据。 1、卡诺图2.4.1 用卡诺图表示逻辑函数2.4 逻辑函数的卡诺图化简法3. 已知逻辑函数画卡诺图 当逻辑函数为最小项表达式时,在卡诺图中找出和表达式中最小项对应的小方格填上1,其余的小方格填上0(有时也可用空格表示),就可以得到该逻辑函数相应的卡诺图。任何逻辑函数都等于其卡诺图中为1的方格所对应的最小项之和。2.4.1 用卡诺图表示逻辑函数2.4 逻辑函数的卡诺图化简法例2.4.1:画出逻辑函数L(A, B, C, D)=(0, 1, 2, 3, 4, 8, 10, 11, 14, 15)的卡诺图 m0 m1 m2

19、m3 m4 m5 m6 m7 m12 m13 m14 m15 m8 m9 m10 m110001111000011110ABCDL3. 已知逻辑函数画卡诺图2.4.1 用卡诺图表示逻辑函数2.4 逻辑函数的卡诺图化简法例2.4.2 画出下面逻辑函数式的卡诺图解(1). 将逻辑函数化为最小项表达式(2). 填写卡诺图3. 已知逻辑函数画卡诺图2.4.1 用卡诺图表示逻辑函数2.4 逻辑函数的卡诺图化简法 m0 m1 m2 m3 m4 m5 m6 m7 m12 m13 m14 m15 m8 m9 m10 m110001111000011110ABCDL00000(2) 填写卡诺图3. 已知逻辑函数

20、画卡诺图2.4.1 用卡诺图表示逻辑函数2.4 逻辑函数的卡诺图化简法 2.4.2 用卡诺图化简逻辑函数 1、化简的依据2.4 逻辑函数的卡诺图化简法2、化简的步骤步骤如下:(4) 将所有包围圈对应的乘积项相加。(1) 将逻辑函数写成最小项表达式(2) 按最小项表达式填卡诺图,凡式中包含了的最小项,其对应方格填1,其余方格填0。(3) 合并最小项,将相邻为1的方格圈成一组(包围圈),每一组含2n个方格,对应每个包围圈写成一个乘积项。本书中包围圈用虚线框表示。 2.4.2 用卡诺图化简逻辑函数 2.4 逻辑函数的卡诺图化简法(1)包围圈内的方格数一定是2n个。(2)循环相邻特性包括上下底相邻,左

21、右边相邻和四角相邻。(3)同一方格可以被不同的包围圈重复包围多次,但新增 的包围圈中一定要有原有包围圈未曾包围的方格。(4)一个包围圈的方格数要尽可能多,包围圈的数目要可能少。画包围圈时应遵循的原则 2.4.2 用卡诺图化简逻辑函数 2.4 逻辑函数的卡诺图化简法例2.4.3 :用卡诺图法化简下列逻辑函数(2)画包围圈合并最小项,得最简与-或表达式解:(1) 由L 画出卡诺图(0,2,5,7,8,10,13,15) 2.4.2 用卡诺图化简逻辑函数 2.4 逻辑函数的卡诺图化简法2、化简的步骤例2.4.4 :用卡诺图法化简下列逻辑函数解:(1) 将逻辑表达式变换,得到与或表达式 2.4.2 用

22、卡诺图化简逻辑函数 2.4 逻辑函数的卡诺图化简法2、化简的步骤(2) 由表达式得到卡诺图 2.4.2 用卡诺图化简逻辑函数 2.4 逻辑函数的卡诺图化简法2、化简的步骤(2) 由表达式得到卡诺图 2.4.2 用卡诺图化简逻辑函数 2.4 逻辑函数的卡诺图化简法2、化简的步骤(2) 由表达式得到卡诺图(3) 画包围圈,合并最小项。0111111111111110例2.4.5: 用卡诺图化简0111111111111110圈0圈1 2.4.2 用卡诺图化简逻辑函数 2.4 逻辑函数的卡诺图化简法3.含无关项的逻辑函数的化简什么叫无关项: 在真值表内对应于变量的某些取值下,函数的值可以是任意的,或

23、者这些变量的取值根本不会出现,这些变量取值所对应的最小项称为无关项或任意项。 在含有无关项逻辑函数的卡诺图化简中,它的值可以取0或取1,具体取什么值,可以根据使函数尽量得到简化而定。 2.4.2 用卡诺图化简逻辑函数 2.4 逻辑函数的卡诺图化简法例: 要求设计一个逻辑电路,能够判断一位十进制数是奇数还是偶数,当十进制数为奇数时,电路输出为1,当十进制数为偶数时,电路输出为0。11111110110111001011101011001010001011100110101010010010011000101000100000LABCD解:(1)列出真值表(2)画出卡诺图(3) 卡诺图化简2.4

24、逻辑函数的卡诺图化简法3.含无关项的逻辑函数的化简 2.4.2 用卡诺图化简逻辑函数 2.5.1 Verilog语言的基本语法规则 2.5.2 变量的数据类型 2.5.3 运算符及其优先级 2.5.4 Verilog内部的基本门级电路 2.5.5 Verilog程序的基本结构 2.5.6 逻辑功能的仿真与测试2.5 硬件描述语言Verilog HDL基础什么是Verilog HDL?Verilog HDL是一种以文本形式来描述数字系统硬件的结构和行为的语言,可以表示逻辑电路图、逻辑表达式,还可以表示更复杂的数字逻辑系统所完成的逻辑功能(即行为)。被建模的数字系统对象的复杂性可以介于开关级电路(

25、例如pmos/nmos)、简单的门电路和完整的复杂数字电子系统之间(例如CPU)Verilog HDL语言与C语言很相似,从C语言中继承了多种操作符和结构,其核心子集非常易于学习和使用对大多数建模应用来说这已经足够。计算机对HDL的处理逻辑综合:从HDL描述的数字逻辑电路模型中导出电路基本元件列表以及元件之间的连接关系(常称为门级网表)的过程。类似对高级程序语言设计进行编译产生目标代码的过程。产生门级元件及其连接关系的数据库,根据这个数据库可以制作出集成电路或印刷电路板PCB。逻辑仿真:用计算机仿真软件对数字逻辑电路的结构和行为进行预测。仿真器对HDL描述进行解释,以文本形式或时序波形图形式给

26、出电路的输出。在仿真期间如发现设计中存在错误,就再对HDL描述进行及时的修改。Verilog HDL的历史最初是于1 9 8 3年由Gateway Design Automation 公司(后被Cadence Design Systems公司收购)为其模拟器产品开发的硬件建模语言。那时它只是一种专用语言,由于他们的模拟、仿真器产品的广泛使用,Verilog HDL 作为一种便于使用且实用的语言逐渐为众多设计者所接受。Verilog HDL语言于1990年被推向公众领域。Open Verilog International(OVI)是促进Verilog发展的国际性组织,1 9 9 2年, OVI

27、决定致力于推广Verilog OVI标准成为IEEE标准。这一努力最后获得成功, Verilog 语言于1 9 9 5年成为IEEE标准,称为IEEE Std1 3 6 41 9 9 5。完整的标准在Verilog硬件描述语言参考手册中有详细描述。Verilog HDL vs. VHDLVerilog HDL 和VHDL 都是用于逻辑设计的硬件描述语言并且都已成为IEEE 标准。VHDL 是在1987 年成为IEEE 标准,Verilog HDL 则在1995 年才正式成为IEEE 标准。Verilog HDL 和VHDL 共同的特点:能形式化地抽象表示电路的行为和结构支持逻辑设计中层次与范围

28、的描述,可借用高级语言的精巧结构来简化电路行为的描述具有电路仿真与验证机制以保证设计的正确性支持电路描述由高层到低层的综合转换硬件描述与实现工艺无关,有关工艺参数可通过语言提供的属性包括进去,便于文档管理,易于理解和设计重用。Verilog HDL vs. VHDL (cont.)Verilog HDL 和VHDL 又各有其自己的特点:Verilog HDL 拥有更广泛的设计群体,成熟的资源也远比VHDL 丰富Verilog HDL 是一种非常容易掌握的硬件描述语言(类C语言),而掌握VHDL 设计技术就相对比较困难(类Ada语言)。一般认为Verilog HDL 在系统级抽象方面比VHDL

29、略差一些,而在门级开关电路描述方面比VHDL 强得多大学、研究机构更多使用VHDL,而工业界更多使用Verilog HDL2.5.1 Verilog语言的基本语法规则对数字电路进行描述,常称为建模,为了对数字电路进行描述,Verilog语言规定了一套完整的语法结构。1间隔符: Verilog 的间隔符主要起分隔文本的作用,可以使文本错落有致,便于阅读与修改。间隔符包括空格符(b)、TAB 键(t)、换行符(n)及换页符。2注释符:注释只是为了改善程序的可读性,在编译时不起作用。多行注释符(用于写多行注释): /* - */;单行注释符 :以/开始到行尾结束,为注释文字。为了表示数字逻辑电路的逻

30、辑状态,Verilog语言规定了4种基本的逻辑值。 0逻辑0、逻辑假 1逻辑1、逻辑真 x或X不确定的值(未知状态) z或Z高阻态标识符:给对象(如模块名、电路的输入与输出端口、变量等)取名所用的字符串。以英文字母或下划线开始。如,clk、counter8、_net、bus_A 。区分大、小写。关键词:是Verilog语言本身规定的特殊字符串,用来定义语言的结构。例如,module、endmodule、input、output、wire、reg、and等都是关键词。关键词通常是小写,关键词不能作为标识符使用 。4逻辑值集合3标识符和关键词2.5.1 Verilog语言的基本语法规则5常量及其表

31、示实数型常量十进制记数法 如: 0.1、2.0、5.67常量十进制数形式:表示有符号常量。如:30、2整数型例如:3b101、5o37、8he3,8b1001_0011 2.5.1 Verilog语言的基本语法规则在程序运行过程中,其值不能被改变的量称为常量。带基数的形式: 格式为:科学记数法 如: 23_5.1e2、5E4增加可读性 为了将来修改程序的方便和改善程序的可读性,Verilog允许用参数定义语句定义一个标识符来代表一个常量,称为符号常量。定义的格式:parameter 参数名1常量表达式1,参数名2常量表达式2,例如:parameter BIT=1, BYTE=8, PI=3.1

32、4;6字符串:字符串是双撇号内的字符序列。5常量及其表示2.5.1 Verilog语言的基本语法规则在程序运行过程中,其值不能被改变的量称为常量。Verilog HDL 中变量的数据类型有两大类。线网类型。net type 是硬件电路中元件之间实际连线的抽象。它的值由驱动元件的值决定,例如连续赋值或门的输出。如果没有驱动元件连接到线网,线网的缺省值为z(高阻)。寄存器类型。register type表示一个抽象的数据存储单元,它只能在always语句和initial语句中被赋值,并且它的值从一个赋值到另一个赋值被保存下来。寄存器类型的变量具有x的缺省值。2.5.2 变量的数据类型线网类型: w

33、ire tri, wor, trior, wand, triand, trireg, tri1, tri0wire型变量的定义格式例如:wire rdy, finish; /2个1位的连线。 wire 3:0 result1, result2; /2个4位的连线 wire 32:1 busA,busB;/2个32位的连线使用assign赋值,例如:assign rdy = a & b; /rdy赋值为a和b的与操作结果assign #20 result = a * b; /result经过20个时间单位后赋值为a*b2.5.2 变量的数据类型寄存器类型: reg integer 一般相当于32

34、位的reg(可能更多),但不允许作为位向量访问,用于高层次建模。 time, real。reg型变量的定义格式: 例如:reg rdy, finish; /2个1位的寄存器reg 3:0 result; /1个4位的寄存器。寄存器类型表示一个抽象的数据存储单元,它具有状态保持作用,只是一个保存数值的变量。寄存器型变量只能在initial或always内部被赋值。2.5.2 变量的数据类型寄存器类型: reg integer 一般相当于32位的reg(可能更多),但不允许作为位向量访问,用于高层次建模。 time, real。Integer型变量用于对整数型常量进行存储和运算,是有符号的数,不能

35、使用位矢量进行定义。real型变量用于对实数型常量进行存储和运算,实数不能定义范围,其默认值为零。当实数值被赋给一个integer型变量时,只保留整数部分的值,小数点后面的值被截掉。time型变量主要用于存储仿真的时间,只存储无符号数。2.5.2 变量的数据类型2.5.2 变量的数据类型real delta; /声明一个实数型变量;initial begin delta=4e10; /给delta赋值 delta2.13; endinteger i; /声明一个整型变量; initial idelta; 线网类型使用assign语句赋值,称为连续赋值寄存器使用“=”或”=“赋值,并只能用于in

36、itial、always、task和function块内!注意两者区别: a = b; /执行到此语句后a的值马上更新为b,称为阻塞性赋值。 a = 关系 =等于= = !=缩位& &| | 逻辑&| 条件?:2、运算符的优先级2.5.3 运算符及优先级优先级的顺序从下向上依次增加,位于顶部行的运算符的优先级最高,在最底部行的优先级最低。列在同一行的运算符的优先级相同。所有运算符在表达式中都是从左向右结合的,使用圆括号可以改变运算符的先后顺序。Verilog内置的12个基本门级元件 元件符号功能说明元件符号功能说明andorxor多输入端的与门多输入端的或门多输入端的异或门nandnorxno

37、r多输入端的与非门多输入端的或非门多输入端的异或非门buf多输出端的缓冲器not多输出端的反相器bufif1bufif0控制信号高电平有效的三态缓冲器控制信号低电平有效的三态缓冲器notif1notif0控制信号高电平有效的三态反相器控制信号低电平有效的三态反相器多输入门多输出门三态门2.5.4 Verilog内部的基本门级元件Verilog 基本门级元件 and n-input AND gate nand n-input NAND gate or n-input OR gate nor n-input NOR gate xor n-input exclusive OR gate xnor n

38、-input exclusive NOR gate buf n-output buffer not n-output inverter bufif0 tri-state buffer; Io enable bufif1 tri-state buffer; hi enable notif0 tri-state inverter; Io enable notif1 tri-state inverter; hi enable1、多输入门只允许有一个输出,但可以有多个输入(and、nand、or、nor、xor、xnor)。 and A1(out,in1,in2,in3); 输入2xxx1zxxx1x

39、xx01111110zx10 输入1nand nand真值表X- 不确定状态Z- 高阻态 and真值表x0zx0 xx10100000zX10 输入1and输入2xxxxx调用名(可省略)多输入门的调用格式2.5.4 Verilog内部的基本门级元件XX1XZXX1XX11111XX100ZX10 输入1 or输入2 or真值表输入2XXXXZXXXXXXX011XX100ZX10 输入1 xorxor真值表1、多输入门多输入门的输出不可能是高阻态。2.5.4 Verilog内部的基本门级元件2、多输出门允许有多个输出,但只有一个输入(buf、not)。 Not N1(out1,out2,in

40、);xx10zx10 输 入buf输 出 buf真值表 输 出xx01zx10 输 入notnot真值表 Buf B1(out1,out2,in);out1inout2outNout1inout2outN2.5.4 Verilog内部的基本门级元件3、三态门有一个输出、一个数据输入和一个输入控制。如果输入控制信号无效,则三态门的输出为高阻态z。bufif1、bufif0、notif1、notif0 bufif1 B1(out1,in,ctrl);bufif0 B0(out1,in,ctrl);notif1 N1(out1,in,ctrl);noif0 N1(out1,in,ctrl);一般调用形式: 2.5.4 Verilog内部的基本门级元件bufif1真值表xxxzzxxxzx1/z1z10/z0z0zx10控制输入bufif1数据输入0/z1/zxxxzzxxxzx0/z0/z0z11/z1/z10zzx10控制输入notif1

温馨提示

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

评论

0/150

提交评论