数电课后答案 - 范文中心

数电课后答案

09/07

第一章 开关理论基础

1. 将下列十进制数化为二进制数和八进制数

十进制 二进制 八进制

49 110001 61 53 110101 65 127 1111111 177 635 1001111011 1173 7.493 111.1111 7.74 79.43 10011001.0110111 231.334

2. 将下列二进制数转换成十进制数和八进制数

二进制 十进制 八进制 1010 10 12 111101 61 75 1011100 92 134 0.10011 0.59375 0.46 101111 47 57 01101 13 15

3. 将下列十进制数转换成8421BCD 码

1997=0001 1001 1001 0111

65.312=0110 0101.0011 0001 0010 3.1416=0011.0001 0100 0001 0110 0.9475=0.1001 0100 0111 0101

4. 列出真值表,写出X 的真值表达式

A B C X 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1

1 1 1 1 X=BC+AC+AB+ABC

5. 求下列函数的值

当A,B,C 为0,1,0时: B+BC=1

(A+B+C)(++)=1 (B+A)B=1 当A,B,C 为1,1,0时: B+BC=0

(A+B+C)(++)=1 (B+A)B=1 当A,B,C 为1,0,1时: B+BC=0

(A+B+C)(++)=1 (B+A)B=0

6. 用真值表证明下列恒等式

(1) (A⊕B) ⊕C=A⊕(B⊕C)

A B C 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 所以由真值表得证。 (2)⊕⊕=A⊕⊕C

A B C 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 7. 证明下列等式

(1) A+B=A+B

证明:左边= A+B =A(B+)+B =AB+A+B =AB+A+AB+A =A+B =右边

(2) ABC+AC+AB=AB+AC

证明:左边= ABC+AC+AB = ABC+AC+AB+ABC

(A⊕B) ⊕C A ⊕(B⊕C) 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1

⊕⊕ A ⊕⊕C 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0

=AC(B+)+AB(C+) =AB+AC =右边

(3) A +A +CD +(+) E =A+CD+E 证明:左边=A +A +CD +(

+) E =A+CD+A+CD E =A+CD+CD E =A+CD+E =右边

(4) +A +B =++ 证明:左边=+A +B

=(+) +AB +B =++=右边

8. 用布尔代数化简下列各逻辑函数表达式

9. 将下列函数展开为最小项表达式 (1) F(A,B,C) = Σ(1,4,5,6,7)

(2) F(A,B,C,D) = Σ(4,5,6,7,9,12,14) 10. 用卡诺图化简下列各式

(1)F =AC +BC +C +AB

化简得F=

(2)F

=A CD +AB +A +A +A

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

化简得F=A +

A

化简得F=+

C +BC +C +BC

(4) F(A,B,C,D)=∑m (0,13,14,15)+∑

ϕ(1,2,3,9,10,11)

化简得F=+AD +AC

11. 利用与非门实现下列函数,并画出逻辑图。

(1) F=AB +A =A ∙1 F

A

C

1

(2) F=(A +B )(C +D ) =()()

(3) F(A,B,C,D)=∑m(0,1,2,4,6,10,14,15)=(C ) ()()()

C

D

A D

A

B

C A

B C

12. 已知逻辑函数X =A B +B C +C A ,试用以下方法表示该函数

真值表:

A B C X 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0

卡诺图:

AB C 0 1

00 01 11 10

1

1 1

1

1 1

逻辑图:

A B B C

A

波形图

A B

C F

VHDL 语言

X

13. 根据要求画出所需的逻辑电路图。

A B C

Y

(a )

A B

C

Y

(b )

14.. 画出F1,F2的波形

A B C F1

解:

F2 = F1⊕C

F2

关闭

第二章 组合逻辑

1. 分析图中所示的逻辑电路,写出表达式并进行化简

B

2. 分析下图所示逻辑电路,其中S3、S2、S1、S0为控制输入端,列出真值表,说明 F 与 A、B 的关系。

F1= F2=

ABS +A S

1

2

3

A +BS +S 0

1

3. 分析下图所示逻辑电路,列出真值表,说明其逻辑功能。

解:

F1=A C 真值表如下:

+AB +BC +=C +B +ABC

A B C0 0 00 0 10 1 00 1 11 0 01 0 11 1 0

F 01100001

1 1 1

当B ≠C 时, F1=A 当B=C=1时, F1=A 当B=C=0时, F1=0

F2=++=AB +BC +AC

真值表如下:

A B C0 0 00 0 10 1 00 1 11 0 01 0 11 1 0

F 00010111

当A 、B 、C 三个变量中有两个及两个以上同时为“1”时,F2 = 1 。

1 1 1

4. 图所示为数据总线上的一种判零电路,写出F 的逻辑表达式,说明该电路的逻辑功能。

解:F=A 0A 1A 2A 3+A 4A 5A 6A 7+A 8A 9A 10A 11+A 12A 13A 14A 15

只有当变量A0~A15全为0时,F = 1;否则,F = 0。 因此,电路的功能是判断变量是否全部为逻辑“0”。

5. 分析下图所示逻辑电路,列出真值表,说明其逻辑功能

解: F =A 1A 0X 0+A 1A 0X 1+A 1A 0X 2+A 1A 0X 3 真值表如下:

因此,这是一个四选一的选择器。

6. 下图所示为两种十进制数代码转换器,输入为余三码,输出为什么代码?

解:

W= AB+ACD

这是一个余三码 至8421 BCD 码转换的电路

7. 下图是一个受 M 控制的4位二进制码和格雷码的相互转换电路。M=1 时,完成自然二进制码至格雷码转换;M=0 时,完成相反转换。请说明之

解:Y3=X3

当M=1时 Y3=X3

Y2=X2⊕X3 Y1=X1⊕X2 Y0=X0⊕X1 当M=0时 Y3=X3

Y2=X2⊕X3

Y1=X1⊕Y2=X1⊕X2⊕X3 Y0=X0⊕Y1=X0⊕X1⊕X2⊕X3

Y 2=X 2⊕X 3

Y 1=X 1⊕(MX 2+2) Y 0=X 0⊕(MX 1+1)

M= 1 的真值表

由真值表可知:M=1 时,完成8421 BCD码到格雷码的转换;

M=0 时,完成格雷码到8421 BCD码的转换。

8. 已知输入信号A,B,C,D 的波形如下图所示,选择适当的集成逻辑门电路,设计产生输出 F 波形的组合电路(输入无反变量)

解:

列出真值表如下:

F =A +D +B +B ()

9. 用红、黄、绿三个指示灯表示三台设备的工作情况:绿灯亮表示全部正常;红灯 亮表示有一台不正常;黄灯亮表示有两台不正常;红、黄灯全亮表示三台都不正常。列出控制电路真值表,并选出合适的集成电路来实现。

解:

设:三台设备分别为 A 、B 、C : “1”表示有故障,“0”表示无故障;红、黄、绿灯分别为Y1、Y2、Y3:“1”表示灯亮;“0”表示灯灭。据题意列出真值表如下:

Y 1=A ⊕B ⊕C

Y 2=BC +A (B ⊕C )

于是得:Y 3==A +B +C

10. 用两片双四选一数据选择器和与非门实现循环码至8421BCD 码转换。

解:(1)函数真值表、卡诺图如下;

(2)画逻辑图:

11. 用一片74LS148和与非门实现8421BCD 优先编码器

0123

12. 用适当门电路,设计16位串行加法器,要求进位琏速度最快,计算一次加法时间。

解:全加器真值表如下

=+BC +A +AB S =+BC ++AB C =A B +A C -1+B C -1

要使进位琏速度最快,应使用“与或非”门。具体连接图如下。 若“与或非”门延迟时间为t1,“非门”延迟时间为t2,则完成一次16位加法运算所需时间为:

t =(16-1) t 1+(t 1+t 2)

A 2

B 2

13. 用一片4:16线译码器将8421BCD 码转换成余三码,写出表达式 解:

W (A , B , C , D ) =∑(5, 6, 7, 8, 9) X (A , B , C , D ) =∑(

1, 2, 3, 4, 9) Y (A , B , C , D ) =∑(0, 3, 4, 7, 8) Z (A , B , C , D ) =∑(0, 2, 4, 6, 8)

Y 6

4:16线译码器B

Y 8

Y 2Y 4Y 3

12A 2B

Y 7Y 2Y 6

14. 使用一个4位二进制加法器设计8421BCD 码转换成余三码转换器: 解:

8421BCD 码

1100

S 0S 1S 2S 3

余三码

O

15. 用74LS283加法器和逻辑门设计实现一位8421 BCD码加法器电路。 解:

进位

加6判断修正

和BCD 码

16. 设计二进制码/格雷码转换器 解:真值表

G 3=B 3

G 2=B 2⊕B 3

G 1=B 1⊕B 2

得:G 0=B 0⊕B 1

17. 设计七段译码器的内部电路,用于驱动共阴极数码管。解:七段发光二极管为共阴极电路,各段为“1”时亮。

七段译码器真值表如下:

3

a =1

2

2

b =++A A

2

1

1

c =A ++A

2

1

2

1

d =+A +A +A A

2

1

2

1

e =+A 2

1

3

1

f =A ++A +A 2

1

2

g =A +A +A +A 3

1

2

1

2

1

18. 设计一个血型配比指示器。解: 用XY 表示供血者代码,MN 表示受血者代码。代码设定如下:

XY = 00 A型 MN = 00 A型 01 B型 01 B型 10 AB型 10 AB型 11 O 型 11 O 型

得:F 1 = Σ(0,2,5,6,10,12,13,14,15)

F2=F1

19. 设计保密锁。

解: 设A,B,C 按键按下为1,F 为开锁信号(F=1为打开),G 为报警信号(G=1为报警)。 F 的卡诺图:

AB C 0 1

00 01 11 10

1 1

1

化简得:

G 的卡诺图

F =AB +AC

AB C 0 1

00 01 11 10

1

1 1

化简得:G

=B +

关闭

第三章 时序逻辑

1. 写出触发器的次态方程,并根据已给波形画出输出 Q 的波形。

Q =(b +c ) +Q

n +1

n

解:+=1

2. 说明由RS 触发器组成的防抖动电路的工作原理,画出对应输入输出波形

解:

3. 已知JK 信号如图,请画出负边沿JK 触发器的输出波形(设触发器的初态为0)

4. 写出下图所示个触发器次态方程,指出CP 脉冲到来时,触发器置“1”的条件。

解:(1)

D =A B +A B ,若使触发器置“1”,则A 、B 取值相异。

(2)J =K =

A ⊕B ⊕C ⊕D ,若使触发器置“1”,则A 、B 、C 、D 取值为奇数个1。

5. 写出各触发器的次态方程,并按所给的CP 信号,画出各触发器的输出波形(设初态为0)

解:

6. 设计实现8位数据的串行→并行转换器。

CP QA QB QC QD QE QF QG QH

0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 2 D0 1 0 0 0 0 0 0 3 D1 D0 1 0 0 0 0 0 4 D2 D1 D0 1 0 0 0 0 5 D3 D2 D1 D0 1 0 0 0 6 D4 D3 D2 D1 D0 1 0 0 7 D5 D4 D3 D2 D1 D0 1 0 8 D6 D5 D4 D3 D2 D1 D0 1 9 D7 D6 D5 D4 D3 D2 D1 D0

7. 分析下图所示同步计数电路

解:先写出激励方程,然后求得状态方程 Q n +1n 3=Q 2

Q n +

1n

2=Q 1Q n +1=Q n n n 12Q n 1+Q 3Q 1

状态图如下:

该计数器是循环码五进制计数器,可以自启动。 8. 作出状态转移表和状态图,确定其输出序列。 解:求得状态方程如下

n +

1n Q 3=Q 2

n +1Q 2=Q 1n n n Q 1n +1=Q 2Q 3

故输出序列为:00011

9. 用D 触发器构成按循环码(000→001→011→111→101→100→000) 规律工作的六进制同步计数器

解:先列出真值表,然后求得激励方程

化简得:

n

Z =Q 2Q 0n

n +1n Q 2=Q 1n +Q 2Q 0n n Q 1n +1=Q 2Q 0n

2

n Q 0n +1=Q 2+Q 1n

n +

1

n

n

2

1

2

D =Q =Q +Q Q D =Q =n +

1

n

1

1

2

n 0

n

n

D =Q

n +1

=+Q

n 2

1

逻辑电路图如下:

10. 用D 触发器设计3位二进制加法计数器,并画出波形图。 解: 真值表如下

化简得:

D 2=Q 2Q 0+(Q 2⊕Q 1) Q 0D 1=Q 1⊕Q 0D 0=Q 0Z =Q 2Q 1Q 0

11. 用下图所示的电路结构构成五路脉冲分配器,试分别用简与非门电路及74LS138集成译码器构成这个译码器,并画出连线图。

解:先写出激励方程,然后求得状态方程 n n

Q 1n +1=Q 1n +Q 3Q 1n +

1n n Q 2=Q 2+Q 1n Q 2n +1n n n Q 3=Q 1n Q 3+Q 2Q 3

得真值表

得状态图

若用与非门实现,译码器输出端的逻辑函数为:

Y 0=Q 3Q 2Y 1=Q 3Q 2Y 2=Q 2Q 1Y 3=Q 3Q 1

若用译码器74LS138实现, 译码器输出端的逻辑函数为:

Y 4=Q 3Q 2

Y 0=Q 3Q 2Q 1Y 1=

Q 3Q 2Q 1Y 2=Q 3Q 2Q 1Y 3=Q 3Q 2Q 1Y 4=Q 3Q 2Q 1

12 若将下图接成12进制加法器,预置值应为多少?画出状态图及输出波形图。 解:预置值应C=0,B =1,A =1。

0000 →0011 →0100 →0101 →0110 →0111

1111 ←1110 ←1101 ←1100 ←1011 ←1000

13. 分析下图所示同步时序逻辑电路,作出状态转移表和状态图,说明它是Mealy 型电路还是Moore 型电路以及电路的功能。 解: 电路的状态方程和输出方程为:

Q Q

n +1

1n +12

=Q

n

n

1

n

n

n

n 2

=(X ⊕Q ) Q +(X ⊕Q ) Q

1

2

1

n 2

1

Z =Q Q

该电路是Moore 型电路。

当X=0时,电路为模4加法计数器; 当X=1时,电路为模4减法计数器

14. 分析下图所示同步时序逻辑电路,作出状态转移表和状态图,说明这个电路能对何种

序列进行检测?

解:电路的状态方程和输出方程为:

Q 2n Q 1n 0 00 11 01 1

Q 2n+1 Q 1n+1/ ZX =000 / 000 / 100 / 000 / 1

X =101 / 011 / 011 / 011 / 0

由此可见,凡输入序列 “110”, 输出就为“1” 。

15. 作“101”序列信号检测器的状态表,凡收到输入序列101时,输出为 1 ;并规定检测的101序列不重叠。

解: 根据题意分析,输入为二进制序列x ,输出为Z ;且电路应具有3个状态: S0、S1、S2。列状态图和状态表如下:

PS

NS / Z

X =0 X =1

16. 某计数器的波形如图示。 解:(1)确定计数器的状态

计数器循环中有7个状态。 (2)真值表如下

(3)得状态方程、激励方程

Q =D =Q

n +13

3

n +12

2

n +1

n 2n

n

n

n

n

n

Q =D =+Q Q +3

1

2

1

2

1

Q =D =+n

n

1

1

3

2

n

1

17. 对状态表进行编码,并做出状态转移表,用D 触发器和与非门实现。 解:{B,F },{D,E }为等价状态,化简后的状态表为

,C=10,D=11,则

电路的状态方程和输出方程为

n

Z =Q 1n X +Q 2X

n +

1n n D 2=Q 2=Q 2Q 1n +Q 1n X +Q 2X n D 1=Q 1n +1=Q 1n X +Q 2Q 1n X

18. 某时序机状态图如下图所示。请用“一对一法”设计其电路解:

D 0=Q

n +1

=Q K +Q K

n 0n 3

D 1=Q 1n +1=Q 0n K +Q 1n K

n +1n

D 2=Q 2=Q 2K +Q 1n K n D 3=Q 3n +1=Q 2K +Q 3n K

19.某时序机状态图如下所示,用“计数器法”设计该电路 解:

若编码为: S0=00 S1=01 S2=11 S3=10: 则

Q 1n Q 2n 0 00 11 11 0

Q 1n+1 Q 2n+1k =000011010

k =101111100

Q 1

n

+1n +1

=1+KQ 2

n

n n

n

n

Q 次态方程为: 2=K Q 1+KQ 2+Q 1Q 2

n

关闭

第四章 习题答案

1. 设计4个寄存器堆。 解:

寄存器组

2. 设计具有4个寄存器的队列。 解:

入数据输出数据

3.设计具有4个寄存器的堆栈

解:可用具有左移、右移的移位寄存器构成堆栈。

栈顶

输入数据

SR 1

SR 2

输出数据

SR 3

压入弹出

4.SRAM 、DRAM 的区别

解:DRAM 表示动态随机存取存储器,其基本存储单元是一个晶体管和一个电容器,是一种以电荷形式进行存储的半导体存储器,充满电荷的电容器代表逻辑“1”,“空”的电容器代表逻辑“0”。数据存储在电容器中,电容存储的电荷一般是会慢慢泄漏的,因此内存需要不时地刷新。电容需要电流进行充电,而电流充电的过程也是需要一定时间的,一般是0.2-0.18微秒(由于内存工作环境所限制,不可能无限制的提高电流的强度),在这个充电的过程中内存是不能被访问的。DRAM 拥有更高的密度,常常用于PC 中的主存储器。

SRAM 是静态的,存储单元由4个晶体管和两个电阻器构成,只要供电它

就会保持一个值,没有刷新周期,因此SRAM 比DRAM 要快。SRAM 常常用于高速缓冲存储器,因为它有更高的速率;

5. 为什么DRAM 采用行选通和列选通

解:DRAM 存储器读/写周期时,在行选通信号RAS 有效下输入行地址,在列选通信号CAS 有效下输入列地址。如果是读周期,此位组内容被读出;如果是写周期,将总线上数据写入此位组。由于DRAM 需要不断刷新,最常用的是“只有行地址有效”的方法,按照这种方法,刷新时,是在RAS 有效下输入刷新地址,存储体的列地址无效,一次选中存储体中的一行进行刷新。每当一个行地址信号RAS 有效选中某一行时,该行的所有存储体单元进行刷新。

6. 用ROM 实现二进制码到余3码转换 解: 真值表如下:

8421码 余三码

B 3B 2B

G 3G

2

G

1

B 0

1

G 0

0 0 0

0 0 1

1

0 0 0 0 1 0 1

0 0 1 0 1 0 0

1

0 0 1 0 1 1 1

0 1 0 0 1 1 0

1

0 1 0 1 0 0 1

0 1 1 1 0 0 0

1

0 1 1 1 0 1 1

1 0 0 1 0 1 0

1

1 0 0 1 1 0 1

最小项表达式为: G

3

=

∑(5, 6, 7, 8, 9)

G

2

=

∑(1, 2, 3, 4, 9)

G

1

=

∑(0, 3, 4, 7, 8) ∑(0, 2, 4, 6, 8)

G

=

阵列图为:

B 321B 0

G 3G 2G 1G 0

7. 用ROM 实现8位二进制码到8421码转换

解:输入为8位二进制数,输出为3位BCD 码,12位二进制数,所以,所需ROM 的容量为:2*12=3072

8.ROM 、EPROM 和EEPROM 的区别

解:ROM 指的是“只读存储器”,即Read-Only Memory 。这是一种线路最简单半导体电路,通过掩模工艺, 一次性制造,其中的代码与数据将永久保存(除非坏掉) ,不能进行修改。

EPROM 指的是“可擦写可编程只读存储器”,即Erasable Programmable Read-Only Memory。是采用浮栅技术生产的可编程存储器,它的存储单元多采用N 沟道叠栅MOS 管,信息的存储是通过MOS 管浮栅上的电荷分布来决定的,编程过程就是一个电荷注入过程。编程结束后,由于绝缘层的包围,注入到浮栅上的电荷无法泄漏,因此电荷分布维持不变,EPROM 也就成为非易失性存储器件了。当外部能源(如紫外线光源)加到EPROM 上时,EPROM 内部的电荷分布才会被破坏,此时聚集在MOS 管浮栅上的电荷在紫外线照射下形成光电流被泄漏掉,使电路恢复到初始状态,从而擦除了所有写入的信息。这样EPROM 又可以写入新的信息。

EEPROM 指的是“电可擦除可编程只读存储器”,即Electrically Erasable Programmable Read-Only Memory。也是采用浮栅技术生产的可编程ROM ,但是构成其存储单元的是隧道MOS 管,隧道MOS 管也是利用浮栅是否存有电荷来存储二值数据的,不同的是隧道MOS 管是用电擦除的,并且擦除的速度要快的多(一般为毫秒数量级)。它的最大优点是可直接用电信号擦除,也可用电信号写入。E 2PROM 的电擦除过程就是改写过程,它具有ROM 的非易失性,又具备类似RAM 的功能,可以随时改写(可重复擦写1万次以上)。目前,大多数E 2PROM 芯片内部都备有升压电路。因此,只需提供单电源供电,便可进行读、擦除/写操作,这为数字系统的设计和在线调试提供了极大方便。

9. flash存储器的特点

8

解: Flash也是一种非易失性的内存,属于EEPROM 的改进产品。FLASH 是结合EPROM 和EEPROM 技术达到的,FLASH 使用雪崩热电子注入方式来编程。主要特点是,FLASH 对芯片提供大块或整块的擦除,而EEPROM 则可以一次只擦除一个字节(Byte)。这就降低了设计的复杂性,它可以不要EEPROM 单元里多余的晶体管,所以可以做到高集成度,大容量,另FLASH 的浮栅工艺上也不同,写入速度更快。

10. 用256K ×8芯片实现256K ×32的ROM 解:需要4片256K ×8的存储器,进行位扩展。

地A0

︰址

线数据线

D0︰

︰︰︰︰

11. 用1M ×4芯片实现1M ×16的SRAM 解:需要4片1M ×4的存储器,进行位扩展。

12 用256K ×4芯片实现1M ×8的DRAM

解:需8片1M ×4的存储器,进行字位同时扩展。

13.用1M ×8芯片实现4M ×8的DRAM 解:需4片1M ×8的存储器,进行字扩展。

14.用64K ×4芯片实现64K ×16的ROM 解:需4片64K ×4的存储器,进行位扩展。

地A0

︰址

︰线

数据线

D0︰

︰︰15.用1M ×8芯片实现4M ×16的ROM

解:需8片1M ×8的存储器,进行字位同时扩展。

关闭

第五章 习题答案

1. 画出与阵列编程点 解:

---

2. 画出或阵列编程点 解:

----

X 1X 2X 3X 4

3. 与、或阵列均可编程,画出编程点。 解;

A B B --12F 3

4. 4变量LUT 编程 解:

SOP 输出

A 0A 1A 2

A 3

5. 用VHDL 写出4输入与门 解: 源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY and4 IS

PORT (a,b ,c ,d :IN STD_LOGIC; x :OUT STD_LOGIC); END and4;

ARCHITECTURE and4_arc OF and4 IS BEGIN

x <=a AND b AND c AND d; END and4_arc;

6. 用VHDL 写出4输入或门 解: 源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY or4 IS

PORT (a,b ,c ,d :IN STD_LOGIC; x :OUT STD_LOGIC); END or4;

ARCHITECTURE or4_arc OF or4 IS BEGIN

x <=a OR b OR c OR d; END or4_arc;

7. 用VHDL 写出SOP 表达式 解: 源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY sop IS

PORT (a,b ,c ,d ,e ,f :IN STD_LOGIC; x :OUT STD_LOGIC); END sop ;

ARCHITECTURE sop_arc OF sop IS BEGIN

x <=(a AND b) OR (c AND d) OR (e AND f); END sop_arc;

8. 用VHDL 写出布尔表达式 解: 源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY boolean IS

PORT (a,b ,c :IN STD_LOGIC; f :OUT STD_LOGIC); END boolean ;

ARCHITECTURE boolean_arc OF boolean IS BEGIN

f <=(a OR (NOT b) OR c) AND (a OR b OR (NOT c)) AND ((NOT a) OR (NOT b) OR (NOT c)); END boolean_arc;

9. 用VHDL 结构法写出SOP 表达式 解: 源代码:

――三输入与非门的逻辑描述 LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY nand3 IS

PORT (a,b ,c :IN STD_LOGIC; x :OUT STD_LOGIC); END nand3;

ARCHITECTURE nand3_arc OF nand3 IS BEGIN

x <=NOT (a AND b AND c); END nand3_arc;

――顶层结构描述文件 LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY sop IS PORT (in1,in2,in3,in4,in5,in6,in7,in8,in9:IN STD_LOGIC; out4:OUT STD_LOGIC); END sop ;

ARCHITECTURE sop_arc OF sop IS COMPONENT nand3

PORT (a,b ,c :IN STD_LOGIC; x :OUT STD_LOGIC); END COMPONENT;

SIGNAL out1,out2,out3:STD_LOGIC; BEGIN

u1:nand3 PORT MAP (in1,in2,in3,out1) ; u2:nand3 PORT MAP (in4,in5,in6,out2) ; u3:nand3 PORT MAP (in7,in8,in9,out3) ; u4:nand3 PORT MAP (out1,out2,out3,out4) ;

END sop;

10. 用VHDL 数据流法写出SOP 表达式

解: 源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY sop IS

PORT (in1,in2,in3,in4,in5,in6,in7,in8,in9:IN STD_LOGIC; out4:OUT STD_LOGIC);

END sop ;

ARCHITECTURE sop_arc OF sop IS

BEGIN

out4<=(in1 AND in2 AND in3) OR (in4 AND in5 AND in6 ) OR (in7 AND in8 AND in9);

END sop_arc;

13. 用VHDL 设计3-8译码器

解: 源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY decoder_3_to_8 IS

PORT (a ,b ,c ,g1,g2a ,g2b :IN STD_LOGIC;

y :OUT STD_LOGIC _VECTOR(7 downto 0)); END decoder_3_to_8;

ARCHITECTURE rt1 OF decoder_3_to_8 IS

SIGNAL indata :STD_LOGIC _VECTOR(2 downto 0); BEGIN

indata <=c & b & a;

PROCESS (indata ,g1,g2a ,g2b )

BEGIN

IF (g1=′1′ AND g2a =′0′ AND g2b=′0′)THEN CASE indata IS

WHEN "000"=>y <="11111110" ;

WHEN "001"=>y <="11111101" ;

WHEN "010"=>y <="11111011" ;

WHEN "011"=>y <="11110111" ;

WHEN "100"=>y <="11101111" ;

WHEN "101"=>y <="11011111" ;

WHEN "110"=>y <="10111111" ;

WHEN others =>y <="01111111" ;

END CASE;

ELSE

y <="11111111" ;

END IF;

END PROCESS ;

END rt1;

14. 用VHDL 设计七段显示译码器

解: 源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY segment7 IS

PORT (xin :IN STD_LOGIC _VECTOR(3 downto 0); lt ,rbi :IN STD_LOGIC;

yout :OUT STD_LOGIC _VECTOR(6 downto 0);

birbo :INOUT STD_LOGIC);

END segment7;

ARCHITECTURE seg7448 OF segment7 IS

SIGNAL sig_xin: STD_LOGIC _VECTOR(3 downto 0); BEGIN

sig_xin<=xin ;

PROCESS (sig_xin,lt ,rbi ,birbo )

BEGIN

IF (birbo =′0′)THEN

yout <="0000000" ;

ELSIF (lt =′0′)THEN

yout <="1111111" ;

birbo <=′1′;

ELSIF (rbi =′0′ AND sig_xin="0000" )THEN yout <="0000000" ;

birbo <=′0′;

ELSIF (rbi =′1′ AND sig_xin="0000" )THEN yout <="1111110" ;

birbo <=′1′;

ELSE

birbo <=′1′;

CASE sig_xin IS

WHEN "0001"=>yout <="0110000" ; WHEN "0010"=>yout <="1101101" ; WHEN "0011"=>yout <="1111001" ; WHEN "0100"=>yout <="0110011" ; WHEN "0101"=>yout <="1011011" ; WHEN "0110"=>yout <="0011111" ; WHEN "0111"=>yout <="1110000" ; WHEN "1000"=>yout <="1111111" ;

WHEN "1001"=>yout <="1110011" ; WHEN others =>yout <="0100011" ; END CASE;

END IF;

END PROCESS ;

END seg7448;

15. 用VHDL 设计8/3优先编码器

解: 源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY priorityencoder IS

PORT (din :IN STD_LOGIC _VECTOR(7 downto 0); ei :IN STD_LOGIC;

yout :OUT STD_LOGIC _VECTOR(2 downto 0);

eo ,gs :OUT STD_LOGIC);

END priorityencoder ;

ARCHITECTURE cod74148 OF priorityencoder IS

BEGIN

PROCESS (ei ,din )

BEGIN

IF (ei =′1′)THEN

yout <="111" ;

eo <=′1′;

gs <=′1′;

ELSE

IF (din(7)=′0′ ) THEN

yout <="000" ;

eo <=′1′;

gs <=′0′;

ELSIF (din(6)=′0′ ) THEN

yout <="001" ;

eo <=′1′;

gs <=′0′;

ELSIF (din(5)=′0′ ) THEN

yout <="010" ;

eo <=′1′;

gs <=′0′;

ELSIF (din(4)=′0′ ) THEN

yout <="011" ;

eo <=′1′;

gs <=′0′;

ELSIF (din(3)=′0′ ) THEN

yout <="100" ;

eo <=′1′;

gs <=′0′;

ELSIF (din(2)=′0′ ) THEN

yout <="101" ;

eo <=′1′;

gs <=′0′;

ELSIF (din(1)=′0′ ) THEN

yout <="110" ;

eo <=′1′;

gs <=′0′;

ELSIF (din(0)=′0′ ) THEN

yout <="111" ;

eo <=′1′;

gs <=′0′;

ELSIF (din="11111111") THEN

yout <="111" ;

eo <=′0′;

gs <=′1′;

END IF;

END IF;

END PROCESS ;

END cod74148;

16. 用VHDL 设计BCD 码至二进制码转换器。

解: 源代码:

library ieee;

use ieee.std_logic_1164.all;

entity bcdtobi is

port (

bcdcode : IN STD_LOGIC_VECTOR(7 DOWNTO 0);

start: in std_logic;

qbit : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)

);

end;

architecture behavioral of bcdtobi is

begin

process(start,bcdcode)

begin

if start='0' then

case bcdcode(7 downto 0) is

when "00000000"=>qbit(3 downto 0)

when "00000001"=>qbit(3 downto 0)

when "00000010"=>qbit(3 downto 0)

when "00000011"=>qbit(3 downto 0)

when "00000100"=>qbit(3 downto 0)

when "00000101"=>qbit(3 downto 0)

when "00000110"=>qbit(3 downto 0)

when "00000111"=>qbit(3 downto 0)

when "00001000"=>qbit(3 downto 0)

when "00001001"=>qbit(3 downto 0)

when "00010000"=>qbit(3 downto 0)

when "00010001"=>qbit(3 downto 0)

when "00010010"=>qbit(3 downto 0)

when "00010011"=>qbit(3 downto 0)

when "00010100"=>qbit(3 downto 0)

when "00010101"=>qbit(3 downto 0)

when others=>qbit(3 downto 0)

end case;

else

qbit(3 downto 0)

end if;

end process;

end behavioral;

17. 用VHDL 设计4位寄存器

解: 异步复位

源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY register_4 IS

PORT (clk ,r :IN STD_LOGIC;

din :IN STD_LOGIC _VECTOR(3 downto 0);

qout :OUT STD_LOGIC _VECTOR(3 downto 0)); END register_4;

ARCHITECTURE rge_arc OF register_4 IS

SIGNAL q_temp:STD_LOGIC _VECTOR(3 downto 0); BEGIN

PROCESS (clk ,r )

BEGIN

IF (r =′1′)THEN

q_temp<="0000" ;

ELSIF (clk′event AND clk =′1′ ) THEN

q_temp<=din ;

END IF;

qout <=q_temp;

END PROCESS ;

END rge_arc;

18. 用VHDL 设计4位双向移位寄存器

解: s1、s0控制工作方式,dsl 为左移数据输入,dsr 为右移数据输入。

源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY shiftreg IS

PORT (clk ,r ,dsr ,dsl :IN STD_LOGIC;

s1,s0:IN STD_LOGIC;--function select

din :IN STD_LOGIC _VECTOR(3 downto 0);--data in

qout :OUT STD_LOGIC _VECTOR(3 downto 0));--data out END shiftreg ;

ARCHITECTURE ls74194 OF shiftreg IS

SIGNAL iq : STD_LOGIC _VECTOR(3 downto 0);

SIGNAL s :STD_LOGIC _VECTOR(1 downto 0);

BEGIN

s <=s1 & s0;

PROCESS (clk ,r )

BEGIN

IF (r =′0′)THEN

iq <="0000" ;

ELSIF (clk′event AND clk =′1′ ) THEN

CASE s IS

WHEN "00"=>null ;

WHEN "01"=>iq <=dsr & din(3 downto 1);--right WHEN "10"=>iq <=din (2 downto 0)& dsl;--left WHEN "11"=>iq <=din ;--load

WHEN others =>null ;

END CASE;

END IF;

END PROCESS ;

qout <=iq ;

END ls74194;

19. 用VHDL 设计8421码十进制加法计数器

解: 异步清零,同步置数

源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

USE IEEE . STD_LOGIC_ARITH. ALL ;

USE IEEE . STD_LOGIC_UNSIGNED. ALL ;

ENTITY count10 IS

PORT (clk ,clr ,load :IN STD_LOGIC;

din :IN STD_LOGIC _VECTOR(3 downto 0); co :OUT STD_LOGIC;

qout :OUT STD_LOGIC _VECTOR(3 downto 0)); END count10;

ARCHITECTURE count10_arch OF count10 IS

SIGNAL iq : STD_LOGIC _VECTOR(3 downto 0); BEGIN

PROCESS (clr ,clk ,load )

BEGIN

IF (clr =′0′)THEN

i q <="0000" ;

ELSIF (clk′event AND clk =′1′ ) THEN

IF (load =′0′)THEN

iq <=din ;

ELSIF (iq =9)THEN

iq <="0000" ;

ELSE

iq <=iq+1;

END IF;

END IF;

END PROCESS ;

qout <=iq ;

co <=′1′ WHEN iq="1001" ELSE

′0′;

END count10_arch;

20.用VHDL 设计可逆格雷码计数器

解: 源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY gray_count IS

PORT (clk ,y :IN STD_LOGIC;

qout :OUT STD_LOGIC _VECTOR(2 downto 0)); END gray_count;

ARCHITECTURE arch_gray OF gray_count IS

SIGNAL iq : STD_LOGIC _VECTOR(2 downto 0);

BEGIN

PROCESS (clk )

BEGIN

IF (clk′event AND clk =′1′ ) THEN

IF (y =′1′)THEN

CASE iq IS

WHEN "000" =>iq <="001" ; WHEN "001" =>iq <="011" ; WHEN "011" =>iq <="010" ; WHEN "010" =>iq <="110" ; WHEN "110" =>iq <="111" ; WHEN "111" =>iq <="101" ; WHEN "101" =>iq <="100" ; WHEN others =>iq <="000" ; END CASE;

END IF;

IF (y =′0′)THEN

CASE iq IS

WHEN "000" =>iq <="100" ; WHEN "100" =>iq <="101" ; WHEN "101" =>iq <="111" ; WHEN "111" =>iq <="110" ; WHEN "110" =>iq <="010" ; WHEN "010" =>iq <="011" ; WHEN "011" =>iq <="001" ; WHEN others =>iq <="000" ; END CASE;

END IF;

END IF;

END PROCESS ;

qout <=iq ;

END arch_gray;

21. 用VHDL 设计有限状态机

解: 源代码:

LIBRARY IEEE ;

USE IEEE . STD_LOGIC_1164. ALL ;

ENTITY asm IS

PORT (clk ,k ,reset :IN STD_LOGIC;

qout :OUT STD_LOGIC _VECTOR(1 downto 0)); END asm ;

ARCHITECTURE asm_arch OF asm IS

TYPE asm_st IS (s0,s1,s2,s3);

SIGNAL current_state,next_state:asm_st;

BEGIN

reg : PROCESS (clk ,reset )

BEGIN

IF (reset=′1′ ) THEN

current_state<=s0;

ELSIF (clk′event AND clk =′1′ ) THEN

current_state<=next_state; END IF;

END PROCESS ;

com : PROCESS (current_state,k )

BEGIN

CASE current_state IS

WHEN s0=>qout <="00" ;

IF (k=′0′ ) THEN

next_state<=s1;

ELSE

next_state<=s0;

END IF;

WHEN s1=>qout <="01" ;

IF (k=′0′ ) THEN

next_state<=s1;

ELSE

next_state<=s2;

END IF;

WHEN s2=>qout <="10" ;

IF (k=′0′ ) THEN

next_state<=s3;

ELSE

next_state<=s2;

END IF;

WHEN s3=>qout <="11" ;

IF (k=′0′ ) THEN

next_state<=s3;

ELSE

next_state<=s0;

END IF;

WHEN others => next_state<=s0; END CASE;

END PROCESS ;

END asm_arch;

关闭


相关内容

  • [金融风险管理]课后习题答案
    <金融风险管理>课后习题答案 第一章课后习题答案 一.重要名词 答案略 二.单项选择 1-5 C B D A A 6-10 C A C C C 11-15 D A B D A 16-20 B C D D D 21-25 B B ...
  • 大学课后题答案
    不用买参考书了!大学课本答案大全!--爱死你了!( 为什么大四才发现啊) 2008-12-18 16:50 | (分类:) 注册可用 公共课程 http://www.10xiao.com/forum-6-1.html 新视野大学英语读写教程 ...
  • 在创新发展方面做合格的共产党员课后测试
    课后测试 如果您对课程内容还没有完全掌握,可以点击这里再次观看. 观看课程 测试成绩:100.0分. 恭喜您顺利通过考试! 单选题 1. 党的十八大报告中提出的要全面加强党的"五大建设"是( ). √ C 思想建设.组织 ...
  • 流程优化的必要性-课后测试
    流程优化的必要性 课后测试 测试成绩:100.0分. 单选题 1. 流程优化的必要性不包括: √ A应对外部市场变化 B应对客户需求变化 C企业自身求新求变 D流程使用时间过长 正确答案: D 2. 客户需求一般不包括: √ A快 B狠 C ...
  • 企业手机银行课后测试
    课后测试 如果您对课程内容还没有完全掌握,可以点击这里再次观看. 观看课程 测试成绩:70.0分.恭喜您顺利通过考试! 多选题 1. 柜面办理企业手机银行相关业务要注意的风险点包括 √ A 客户提交的申请资料和证件是否真实.有效.合规.齐全 ...
  • C15004课后测验十大对冲基金案例
    C15004课后测验 十大对冲基金案例 一.单项选择题 1. Simons成立的大奖章基金最初主要涉及( ). A. 股票多空仓策略 B. 并购基金 C. 事件套利 D. 期货交易 您的答案:D 题目分数:10 此题得分:10.0 批注: ...
  • 目标管理的正确认知 课后测试
    测试成绩:100.0分.恭喜您顺利通过考试! 单选题 1. 目标管理的提出者是: √ A 约翰•科特 B 亨利•明茨伯格 C 哈林顿•埃默森 D 彼得•德鲁克 正确答案: D 2. 企业实施目标管理,目的是要把企业战略转化为( )战略. √ ...
  • [金融理论与实务]课后试题及答案
    1 第一章 货币与货币制度 1.马克思是怎样用完整的劳动价值理论富有逻辑地论证货币产生的客观性的? 参考答案:按照马克思的货币起源学说,货币是伴随着商品价值形式的不断发展变化而最终产生的.商品价值形式经历了四个不同的发展变化阶段: 1)简单 ...
  • 从问题到程序--裘宗燕--课后习题部分答案(第九章)
    第9章习题参考答案 1. 新建图形窗口,设置其标题为"对数函数的图像",在该窗口中绘制对数函数 flnx在0x10的图像 参考答案: >> figure,title('对数函数的图像'),plot(0: ...
  • 创新大学英语第一单元课后题参考答案
    第一单元课后题参考答案 Language Focus V ocabulary 1. available; face; handled; due; persist; essentials; concern; constant; major; ...