当前位置:首页 > 演讲稿 > 布尔代数与逻辑函数化简|逻辑函数化简
 

布尔代数与逻辑函数化简|逻辑函数化简

发布时间:2019-07-16 21:07:39 影响了:

2010.9

第二章 逻辑代数(Boolean Algepa)基础 逻辑代数基本定律与规则 基本形式与标准形式 逻辑函数化简

公式化简法 卡诺图形化简法 表格化简法

Bai Tianrui

Verilog HDL

2010.9

教学基本要求

Bai Tianrui

熟悉逻辑代数常用基本定律、恒等式和规则。 掌握逻辑代数的变换和卡诺图化简法; 熟悉硬件描述语言Verilog HDL

2010.9

2.1 逻辑代数的基本定律和规则

Bai Tianrui

基本定律

结合律、交换律 摩根定律

基本规则

代入规则、反演规则 对偶规则、展开规则

对偶规则:Duality 摩根变换: DeMorgan Symbol Equivalence 代数运算:Algepaic Manipulation

2010.9

1. 基本定律

Bai Tianrui

一致性

幂等性 回旋性 互补性

交换律 结合律 分配律 吸收律

2010.9

N-variable Theorems

Bai Tianrui

幂等性

摩根定律

先农展开

基本等式的对偶性: T 和 T’中,0-1互换,“与”-“或”互换,等式仍然成立--对偶规则 X + (X × Y) = X (T9) X × (X + Y) = X (T9’) dual (X×Y)+(X×Z) = X(Y+Z) (T8) (X+Y) ×(X+Y) = X+YZ (T8’) dual

2010.9

2. 基本规则

Bai Tianrui

1. 代入规则:任何一个含有变量X的等式,将所有出现 X的地方换成一个逻辑式,等式仍然成立。 2. 反演规则:对任何一个表达式,将“·”和“+” 、原变量 和反变量互换, 0-1互换,所得表达式是原式的反。

例如:F = ABC + B C ⋅D + ( A + C ) B 利用反演规则得: F = A+ B +C) B + C + D ) ⋅ ( AC + B ) ( ( ⋅

3. 对偶规则:对任何表达式,将“·”和“+” 互换, 0-1互 换,可得到一个新的表达式,此式是原式的对偶式。 4. 展开规则(先农展开): f ( x1 , x 2 ,..., x n ) = xi f ( x1 , x 2 ,...,1,..., x n ) + xi f ( x1 , x 2 ,..., 0,..., x n ) f ( x1 , x 2 ,..., x n ) = [xi + f ( x1 , x 2 ,..., 0,..., x n ) ]⋅ xi + f ( x1 , x 2 ,...,1,..., x n )

[

]

2010.9

异或和同或运算中的常用公式

F=A⊕B F=A☉B

A☉A=0 A☉A=1 A☉1=A A☉0=A A☉B=B☉A

Bai Tianrui

A⊕A=1 A⊕A=0 A⊕0=A A⊕1=A A⊕B=B⊕A A⊕(B⊕C)=(A⊕B)⊕C A(B⊕C)=AB⊕AC

A☉(B☉C)=(A☉B)☉C A+(B☉C)=(A+B)☉(A+C)

2010.9

2.2 基本形式和标准形式

Bai Tianrui

基本形式 最小项和最大项 最小项和最大项的性质 两种标准形式

最小项之和形式 最大项之积形式

其它常用形式和相互转换

Discussion

2010.9

1. 基本形式

Bai Tianrui

两种基本形式: 乘积项之和(先与后或, SOP—Sum of products ) :

F1 = AB + B C + AB C

和项之积(先或后,POS—Product of sums :

F2 = ( A + B )( B + C )( A + C )

2010.9

2. 最小项和最大项

Bai Tianrui

最小项(Minterms) :在n变量逻辑函数中,如果mi是包含 n个变量的乘积项,且这n个变量均以原变量或反变量 的形式在mi中出现且仅出现一次,则mi被称 为n个变量的最小项。

A B C = m2

A B C D = m9

大项(Maxterms) :在n变量逻辑函数中,如果Mi是n个变量 之和项,且这n个变量均以原变量或反变量的形式在 Mi中出现且仅出现一次,则Mi被称 为n个变量的最大项。

A + B +C = M 5

A+ B+ C + D = M 6

相同编号的最小项与最大项互反

2010.9

Bai Tianrui

序号 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

最小项

ABC D ABCD A BC D

A B CD AB C D

最大项 m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 m11 m12 m13 m14 m15

A+ B +C + D

M0 M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15

四 变 量 所 有 最 小 项 和 最 大 项

A+ B +C + D A+ B +C + D

A+ B +C + D

A+ B +C + D A+ B +C + D A+ B +C + D

AB C D A BC D A BCD ABC D ABCD A BC D A B CD AB C D AB C D ABC D

A+ B +C + D A+ B +C + D A+ B + B + D

A+ B +C + D

A+ B +C + D

A+ B +C + D A+ B +C + D A+ B +C + D A+ B +C + D

ABCD

2010.9

3. 最小项和最大项的性质

Bai Tianrui

最小项性质: 1. 任何取值下仅有一个 最小项为1

最大项性质: 1. 任何取值下仅有一个 最大项为0 互为 对偶

2. mi ⋅ m j = 0(i ≠ j )

3.

2. M i + M j = 1(i ≠ j )

mi = 1

3.

∏M

i

=0

4. 任何函数均可表示为 最小项之和形式 5. 相邻的两个最小项可合 并为一项,并消去一个 因子

4. 任何函数均可表示为 最大项之积形式 5. 相邻的两个最大项可合 并为一项,并消去一个 因子

2010.9

4. 两种标准形式—最小项之和形式

Bai Tianrui

最小项之和形式(Sum of Minterms) : 用A · 1=A和A+ A =1可将任何函数展开成最小项之和形式

F ( A, B, C , D) = ABC + A B D = ABC ( D + D ) + A B (C + C ) D = ABCD + ABC D + A BC D + AB C D = m15 + m14 + m6 + m4 =

∑ m(4,6,14,15)

2010.9

两种标准形式—最大项之积形式

Bai Tianrui

例如:F ( A, B, C , D) = ABCD + ABC D + A BC D + AB C D = m15 + m14 + m6 + m4 = ∑ m of Maxterms) : 最大项之积形式(Product (4,6,14,15) 根据Y + Y = 1得: 如果函数Y是最小项之和形式,据Y+Y=1可知,Y等于从全部最 F ( A,Y ,所包含的最小项后剩下的最小项之和(一次求反) B C , D ) = ∑ m(0,2,5,7,9, , , , ) 1, 3, 8,10 11 12 13 小项中去掉 F ( A, B, C , D ) = ∑ m(0,2,5,7,9, , , , ) 1, 3, 8,10 11 12 13 M 即如果 Y = =mi 0M1M 2MYM 5M 7 M8kM 9M10)M11M12M13 则 3 = m (k ≠ i = ∏ M (0,1,2,3,5,7,8,9,10,11,12,13)

根据摩根定律

Y=

∑)m = ∏) M ( (

k k ≠i k ≠i

k

(二次求反)

所以,只要能写出函数的最小项之和的形式,根据上 述方法就可得到最大项之积的形式

2010.9

5. 逻辑函数表达式的常用形式

表 达 式 举 例 F=AB+AC F=(A+B)(A+C) F=ABC+ABC+ABC+ABC

Bai Tianrui

名 称 与或式 或与式 最小项表达式 最大项表达式 与非与非式 或非或非式 与或非式

特 点 由各与项相或组成 由各或项相与组成 由最小项相或组成

F=(A+B+C)(A+B+C)(A+B+C)(A+B+C) 由最大项相与组成 全部是与非

运算 F=AB AC F=(A+B)+(A+C) F=AB+AC 全部是或非运算 与或非运算

2010.9

常用形式间的相互转换

Bai Tianrui

(1)代数法

与或式

两次求反 或与式 两次求反 两次求反保留 外面的长非号 或非或非式 脱去短非号

两次求反保留 外面的长非号 与非与非式

与或非式

2010.9

常用形式间的相互转换

Bai Tianrui

(2)卡诺图法 与或式

填入卡诺图后,圈0格 填入卡诺图 后,圈1格 最简与 或式

两次 求反

或与式 最简与 非式 最小项 表达式 最大项 表达式

两次 求反

填入卡诺图后,将所 有1格的最小项相或 填入卡诺图后,将所 有0格的最大项相与 填入卡诺 图后,圈 0 填入卡诺图后,圈 0,写出F的与或式 或与式

最简或 非式

求出F的与 或非式

2010.9

Discussion

Bai Tianrui

In the previous sections of the course we studied the Exclusive-OR (XOR) gate, which we already know can be implemented in the following form:

Question: Is there another way in which we can implement the same logical function? YES!

A B

Q

2010.9

2.3 逻辑函数化简

最简与或式:与项最少,与项中变量个数最少。

Bai Tianrui

公式化简法 (Algepaic Manipulation of Boolean Expressions) 卡诺图化简法

卡诺图 (Karnaugh Maps) 化简规则和步骤 不完全确定逻辑函数化简 多输出函数的化简

表格化简法 (Tabular Method of Minimisation)

2010.9

2.3.1 公式化简法

Bai Tianrui

例如:L = AB + ACAB+AB BC + B D + BD + ADE ( F + G ) + BC + =A 1. 并项法: = AB A + + + B + + B D + + A + ADE 例如:L = C BCBCABC C AC = AC BD C = A ( F + G ) ( F + G) + = A+ 2. 吸收法: ADEA+AB=A BC + BC + B D + BD = A + BC ( ABC + + BC + B = C + AC ( B + 例如:L = AC + D + D)AC ( D + F )D(AC+ C ) + D D F ) = AC = A + B A+AB=A+B 3. 消因子法: CD + BC D + BC + BC D + BC D + BD 例如:L = BC ++ C D AC = BC + ABC = A + BC = A + BC AB + + BD 4. 消项法: AB+AC+BC=AB+AC

5. 配项法: A=A(B+B) A+A=A

2010.9

2.3.2 卡诺图形化简法

Bai Tianrui

卡诺图 化简规则和步骤 不完全确定逻辑函数的化简 多输出函数的化简

2010.9

1. 卡诺图(Karnaugh Map )

Bai Tianrui

卡诺图:n变量的全体最小项(2n )组成的几何图,特 点是几何位置上相邻的最小项逻辑上也相邻

CD 00 AB

01

m1

11

m3

10

ABC D

四 变 量 卡 诺 图

A B C D A B C D A B CD

00 01 11 10

m0

m2

ABC D ABC D ABC D ABC D

m4

m5

m7

m6

ABC D ABC D ABC D ABC D

m12 m8

m13 m9

m15 m11

m14 m10

ABC D ABC D ABC D ABC D

2010.9

卡诺图

Bai Tianrui

Three-variable map Four-variable map

AB C 0 1 00 01 11 10

1 11 1

2010.9

2. 化简规则和步骤

Bai Tianrui

化简规则:

1. 2m个最小项可合并成一项,并消去m个因子(m

化简步

骤:

1. 将函数展开成最小项之和的形式 2. 将各最小项逐一填入卡诺图中(用1表示) 3. 按化简规则开始化简

2010.9

卡诺图化简实例1

Bai Tianrui

例1:化简函数 F ( A, B , C , D ) = ABC D + B C + AD 解:(1)化成最小项之和形式:

CD AB 00 01 11 10 00 01 11 10

F ( A, B, C , D ) = ABC D + ( A + A) BC ( D + D) + A( B + B )(C + C ) D = m(4,5,9,11,12,13,14,15)

1 1 1 1 1 1 1 1

(2)用卡诺图表示 (3)化简

F ( A, B, C , D ) = AB + BC + AD AB BC AD

2010.9

卡诺图化简实例2

Bai Tianrui

例2:化简函数为最简或—与式:

F ( A, B, C , D ) =

∑ m(0,1,2,3,4,6,8,9,10,11,15)

解:作卡诺图,圈0化简得 F:

即 F = ( A + B + D)

CD AB 00 01 11 10 F = ABD + BC D + AB D 00

• ( B + C + D) • ( A + B + D)

01 11 0 10

0 0

0 0

直接写成乘积项之和,和 项中对应取值为0写成原变 量,取值为1写成反变量,

2010.9

卡诺图化简实例3

Bai Tianrui

例3:化简函数为最简与—或式:

F ( A, B, C , D ) = ∏ M (0,2,3,4,6,8,10,11,12,13,14)

CD 解:将函数改写为最小项 之和形式: AB 00 01 11 10 1 00 F ( A, B, C , D ) = m(1,5,7,9,15)

作卡诺图,并化简:

01 11 10

1 1

1 1

F ( A, B, C , D) = A C D + BCD + B C D

2010.9

根据函数直接填卡诺图的方法

Bai Tianrui

F ( A, B , C , D ) = ABC D + B C + AD + B D + A D

CD 00 AB 00 1 01 11 10

1 1

01

1 1 1 1

11

1

10

1 1

1 1

1

2010.9

3. 不完全确定逻辑函数的化简

Bai Tianrui

不确定状态:在有些实际问题中,某些输入状态是永 远不会出现或不允许出现的,这些状态 对应的逻辑取值我们可以任意假设, 用d或x表示。 有时不确定状态以约束条件形式给出。 化简时根据情况将d/x作0或1使用。 这些不确定状态也叫做无关项( Don’t Cares )。

2010.9

不完全确定逻辑函数的化简实例1

Bai Tianrui

例1:化简函数为最简与—或式:

F ( A, B, C , D) = m(2,4,6,9,13,14) +

∑ d (0,1,3,8,11,15)

CD AB 00 01 11 10 00 d d d 1 01 1 11 10 d

1 1 d d 1 1

解:用卡诺图表示函数并化简

F ( A, B, C , D) = A D

+ AD + BC D

2010.9

不完全确定逻辑函数的化简实例2

Bai Tianrui

例2:化简函数为最简与—或式:

F ( A, B, C , D ) = BC + ABD + AB D + A B C D

约束条件 : A BD + A B D = 0

解:用卡诺图表示函数并化简

F ( A, B, C , D) = A D + BC + AC + AD

CD AB 00 01 11 10 d d 00 01 11 10

1 1 d 1 1 1 1 1 d

2010.9

3. 多输出函数的化简

Bai Tianrui

化简原则:

1. 所有函数中包含的与项最少 2. 在满足上述条件下个与项中的因子最少

关键:充分利用各函数间可供使用的共用部分

2010.9

Bai Tianrui

多输出函数的化简实例

例 : 化简多输出函数 : F1 ( A, B, C , D) = m(2,3,5,7,8,9,10,11,13,15)

∑ F ( A, B, C , D) = ∑ m(2,3,5,6,7,10,11,14,15) F ( A, B, C , D) = ∑ m(6,7,8,9,13,14,15)

2 3

单独化简结果:

F1 ( A, B , C , D )

= BD + A B + B C F2 ( A, B , C , D ) = A BD + C F3 ( A, B , C , D ) = BC + ABD + A B C

无共用项,共8个与项,18个因子

2010.9

多输出函数的化简实例

CD AB 00 01 11 10 3 2 00 01 11 10

Bai Tianrui

CD AB 00 01 11 10 3 2 00 01 11 10 8

CD AB 00 01 11 10 00 01 11 10 8

5 9

7 11 10

5 7

6

7 6 13 15 14 9

F3 F

2

13 15

15 14 11 10

F22 F

F F11

例 : 化简多输出函数 考虑共用部分的化简结果 :

F ( ) B C, D = m( ,3,5C + B C F1 ( A, B, C ,1DA,= ,A BD)+ ABD +2A B ,7,8,9,10,11,13,15) F2 ( A B C , D = F2 ( A, B, C , D ),= ,A BD)+ C = m(BD,5,6,7,10,11,14,15)共5个与 A 2,3 + BC + B C 项,13个因 F3 ( A, B, C ,3D ),= ,BC D)ABD + A6B C ,9,13,14,15) + = F ( A B C, m( ,7,8 子

∑ ∑ ∑

2010.9

2.3.3 表格化简法

Bai Tianrui

化简方法和步骤 步骤1:表示成二进制 步骤2:整理成表格 步骤3:寻找相邻最小项并将其合并 步骤4:作最小项-本源蕴涵项表 步骤5:选择化简结果

2010.9

表格化简法方法和步骤

Bai Tianrui

步骤: 1. 将函数展开成最小项之和的形式,并将mi的下标用 二进制表示;

2. 按最小项中包含1的个数整理成表以便检查其相邻性 3. 寻找相邻最小项并将其合并 4. 将所有最小项和本源蕴涵项列成本源蕴涵表 5. 选择一个最小的本源蕴涵项组合作为化简结果 代数法:列表达式以选取最简式所需的各项; 行列消去法: 行消去: 列消去:

2010.9

Bai Tianrui

化简实例—步骤1:表示成二进制

例1:用表格法化简函数:

F ( A, B , C , D ) =

∑ m (0,4,6,8,10 ,11,13 ,14 ,15 )

解:步骤1:表示成二进制

F ( A, B, C , D) = m(0,4,6,8,10,13,14,15) = 0000 + 0100 + 0110 + 1000 + 1010 + 1011 + 1101 + 1110 + 1111

2010.9

化简实例—步骤2:整理成表格

Bai Tianrui

组号 最小项 ABCD 相邻性 0 0 0000 √ √ 1 4 0100 8 1000 √ 2 6 0110 √ 10 1010 √ 1011 3 11 √ 1101 13 √ 1110 14 √ 4 15 1111 √

2010.9

化简实例—步骤3:寻找相邻最小项并将其合并

Bai Tianrui

比较相邻组内的最小项,如果相邻则合并,将消去的码 元用“—”表示,并在这两个最小项侧标记“√”,重复直到找不到 相邻项合并,最后得到的未标记“√”的项(标记为pi )就是本源蕴涵 项。 合并过程请看下一页!

2010.9

合并过程

组号 0 1 2 最小项 0,4 0,8 4,6 8,10 6,14 10,14 10,11 11,15 13,15 14,15 最小项 10,11 14,15 10,14 11,15 ABCD 0- 00 -000 01-0 10-0 -110 1-10 1011-11 11-1 111ABCD 1 -1 1 -1 -

Bai Tianrui

组号 最小项 ABCD 相邻性 0 0 0000 √ √ 1 4 0100 8 1000 √ 2 6 0110 √ 10 1010 √ 3 11 1011 √ 13 1101 √ 14 1110 √ 4 15 1111 √

3

相邻性 p1 p2 p3 p4 p5 √ √ √ p7 √ 相邻性 p8

组号 2

2010.9

化简实例—步骤4:作最小项-本源蕴涵项表

m 0 m 4 m 6 m 8 m 10 X X X X X X X X X X m 11 m 13 m 14

Bai Tianrui

p1 P2 P3 P4 P5 P7 P8

m 15

X X X X X X

2010.9

化简实例—步骤5

:选择化简结果-方法一

Bai Tianrui

方法一:代数法 从本源蕴涵表列出逻辑表达式,从中选取最简式所必 须的基本本源蕴涵项。 例如,要覆盖m4,可选p1或p3,记为 p1+p3 要覆盖m6,可选p3或p5,记为 p3+p5 要同时覆盖m4和m6,可用(p1+p3)(p3+p5)=p3+p1p5表示 所以,要同时覆盖m4和m6有两个方案: 选p3或同时选p1p5,显然前一种简单。 最后结果:F

= p 2 + p 3 + p 7 + p8

= BC D+ A B D+ A B D+ AC

2010.9

化简实例—步骤5:选择化简结果-方法二

Bai Tianrui

方法二:行列消去法 行消去法:如果本源蕴涵表中有两行pi和pj(i≠j),pi 行的“×”全部包含在pj行中,则pi行可以从 表中删除。 列消去法:如果mi列中标有“×”的各行,在mj (i≠j)列 中也标有“×”,即mi列完全包含在mj列中, 则mj列可删除。 行列消去要反复进行,直到没有可删除的行、列为止。

2010.9

化简实例—行列消去的过程和结果

Bai Tianrui

p1 P2 P3 P4 P5 P7 P8

m0 m4 m6 m8 m10 m11 m13 X X X X X X P4,P2→P4 X X P5,P3→P5 X X X X

m6,m4→m4 m8,m0→m0 m11,m10→m10

m14

m15

X X X X

m13,m15→m15 m11,m14→m14

最后结果: F = p 2 + p3 + p7 + p8

= BC D+ A B D+ A B D+ AC

2010.9

Program

Bai Tianrui

根据表格化简法原理,设计一逻辑函数计算 机化简软件。 要求:结果正确,界面友好。 三人一组自由组合。

2010.9

2.4 硬件描述语言Verilog HDL基础

Bai Tianrui

Verilog语言的基本语法规则 变量的数据类型 Verilog程序的基本结构 逻辑功能的仿真与测试

2010.9

Verilog

Bai Tianrui

HDL ---- Hardware Description Language Verilog ---- Verilog HDL Originated at Automated Integrated Design Systems (later renamed as Gateway Design Automation) in 1985 VHDL ---- Very High Speed Intergrated Circuit HDL originated from the United States government"s very high-speed integrated circuit (VHSIC) program in 1980 . ABEL ---- Advanced Bolean Equation Language

2010.9

Introduction

Bai Tianrui

Verilog HDL is a hardware description language used to design and document electronic systems. It is the most widely used HDL and is one of the HDL languages available in the industry for hardware designing. Verilog HDL allows designers to design at various levels of abstraction. It allows us to design a Digital design at Behavior Level, Register Transfer Level (RTL), Gate level and at switch level. Verilog allows hardware designers to express their designs with behavioral constructs, deferring the details of implementation to a later stage in the final design. By using a HDL, one can describe any hardware at any level. One can describe a simple Flip flop, as well as a complicated design having 1 million gates.

2010.9

Verilog Abstraction Levels

Bai Tianrui

Behavioral level This level describes a system by concurrent algorithms (Behavioral). Each algorithm itself is sequential, that means it consists of a set of in

structions that are executed one after the other. Functions, Tasks and Always blocks are the main elements. Register-Transfer Level Designs using the Register-Transfer Level specify the characteristics of a circuit by operations and the transfer of data between the registers. An explicit(外在的) clock is used. RTL design contains exact timing bounds: operations are scheduled to occur at certain times. Modern RTL code definition is (\n)及换页符 注释符:改善程序的可读性,在编译时不起作用 多行注释符: /* --- */; 单行注释符 : // 标识符:给对象(模块名、电路输入与输出端口、变量等) 取名所用的字符串。以英文字母或下划线开始,如,clk、 counter8、_net、bus_A 。

2010.9

Verilog语言的基本语法规则

Bai Tianrui

关键词:是Verilog本身规定的特殊字符串,用来定义语 言的结构。例如,module、endmodule、input、 output、wire、reg、and等都是关键词。关键词都是小 写,关键词不能作为标识符使用 。 逻辑值集合 为了表示数字逻辑电路的逻辑状态,Verilog语言规 定了4种基本的逻辑值

0 1 x或X z或Z 逻辑0、逻辑假 逻辑1、逻辑真 不确定的值(未知状态) 高阻态

2010.9

Verilog语言的基本语法规则

整数型

Bai Tianrui

常量及其表示

十进制数的形式的表示方法:表示有符号常量 例如:30、-2 带基数的形式的表示方法: 表示常量 格式为:’

常量 实数型常量

例如:3’b101、5’o37、8’he3,8’b10010011 十进制记数法 如: 0.1、2.0、5.67 科学记数法 如: 235.1e2、5E-4 23510.0、 0.0005

Verilog允许用参数定义语句定义一个标识符来代表一个常量, 称为符号常量。定义的格式为: parameter 参数名1=常量表达式1,参数名2=常量表达式2,…; parameter BIT=1, BYTE=8, PI=3.14; 如 字符串:字符串是双撇号内的字符序列

2010.9

变量的数据类型

Bai Tianrui

线网类型:是指输出始终根据输入的变化而更新其值的变量, 它一般指的是硬件电路中的各种物理连接 例:线网型变量L的值由与门的驱动 信号a和b所决定,即L=a&b。a、 b的值发生变化,线网L的值会立即 跟着变化。 a b & L

常用的线网类型由关键词wire定义 wire型变量的定义格式如下: wire [n-1:0] 变量名1,变量名2,…,变量名n; 变量宽度 例:wire L; //将上述电路的输出信号L声明为网络型变量 wire [7:0] data_bus; //一个8-bit宽的网络型总线变量

2010.9

变量的数据类型

Bai Tianrui

寄存器型 寄存器型变量对应的是具有状态保持作用的电路元件,如 触发器寄存器。寄存器型变量只能在initial或always内部 被赋值 4种寄存器类型的变量 寄存器类型 功能说明 抽象描述, 不对应具 体硬件 reg integer real time 常用的寄存器型变量 32位带符号的整数型变量 64位带符号的实数型变量 64位无符号的时间变量

例: reg clock;//定义一个1位寄存器变量 reg [3:0] counter; //定义一个4位寄存器变量

2010.9

Verilog程序的基本结构

Bai Tianrui

Verilog使用大约100个预定义的关键词定义该语言的结构 VerilogHDL程序由模块构成。每个模块的内容都是嵌在关键 词module和endmodule两个语句之间。每个模块实现特定的

功能。 每个模块先要进行端口的定义,并说明输入(input)和输出 (output),然后对模块功能进行描述 除了endmodule语句外,每个语句后必须有分号 可以用/* --- */和//…..对VerilogHDL程序的任何部分做注释

2010.9

Verilog程序的基本结构 模块定义的一般语法结构如下:

Bai Tianrui

module 模块名(端口名1, 端口名2, 端口名3,…); 端口类型说明(input, outout, inout); 说明部分 参数定义(可选); 数据类型定义(wire, reg等); 实例化低层模块和基本门级元件; 连续赋值语句(assign); 过程块结构(initial和always) 行为描述语句; endmodule

逻辑功能描 述部分,其 顺序是任意的

2010.9

Verilog程序的基本结构

Bai Tianrui

用结构描述方式建立门电路Verilog模型 //Gate-level description of simple circuit module mux2to1(a, b, sel, out); input a, b, sel; //定义输入信号 output out; //定义输出信号 wire selnot, a1, b1 ; //定义内部节点信号数据类型 //下面对电路的逻辑功能进行描述 not U1(selnot, sel); a and U2(a1, a, selnot); selnot & a1 and U3(b1, b, sel); 1 sel U2 or U4(out, a1, b1); endmodule U1

& b U3 b1

≥ U4

out

2010.9

Bai Tianrui

A simple Flip flop

1 // D flip-flop Code 2 module d_ff ( d, clk, q, q_bar); 3 Input d ,clk; 4 output q, q_bar; 5 wire d ,clk; 6 reg q, q_bar; 7 8 always @ (posedge clk) 9 begin 10 q

2010.9

逻辑功能的仿真与测试

Bai Tianrui

逻辑电路的设计块完成后,就要测试这个设计块描述的逻辑 功能是否正确。为此必须在输入端口加入测试信号,而从其 输出端口检测其结果是否正确,这一过程常称为搭建测试平 台。根据仿真软件的不同,搭建测试平台的方法也不同

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3