复杂可编程逻辑器件指导书.docx
《复杂可编程逻辑器件指导书.docx》由会员分享,可在线阅读,更多相关《复杂可编程逻辑器件指导书.docx(20页珍藏版)》请在冰豆网上搜索。
复杂可编程逻辑器件指导书
复杂可编程逻辑器件
及数字系统设计
王晓飞编著
北京机械工业学院
电子信息工程系
二零零四年六月
第六章
实验内容
本章提供了多个层次不同的实验,实验中应注意掌握实现方法和技巧,并运用实验装置进行功能验证。
实验一熟悉软硬件环境及使用
一、实验目的
1.学习QuartusⅡ软件的基本操作;
2.学习原理图和VHDL两种设计输入方法;
3.初步掌握器件设计输入、编译、仿真、下载的过程;
4.学习实验装置的使用方法。
二、实验要求
选用课上或书中的例题,按照第二章所述练习QuartusⅡ软件的使用:
分别选用原理图输入方式和VHDL输入方式进行电路功能设计;掌握FPGA的开发步骤——设计输入、设计实现、设计验证;按照第五章所述了解实验装置的工作原理和使用方法。
实验二组合逻辑电路的设计
一、实验目的
1.设计8段译码器、两路4位二进制比较器,并在实验装置上验证所设计的电路;
2.学习用AHDL语句进行逻辑描述。
二、实验要求
用AHDL中真值表的设计方法设计8段译码器、用布尔方程的设计方法设计两路4位二进制比较器,对CPLD器件进行配置及下载来验证自己的设计,验证电路的外围器件可选用按键输入、指示灯输出。
8段译码器的逻辑功能
输入
输出
in[3..0]
dp
g
f
e
d
c
b
a
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
2
0
1
0
1
1
0
1
1
3
0
1
0
0
1
1
1
1
4
0
1
1
0
0
1
1
0
5
0
1
1
0
1
1
0
1
6
0
1
1
1
1
1
0
1
7
0
0
0
0
0
1
1
1
8
0
1
1
1
1
1
1
1
9
0
1
1
0
1
1
1
1
A
0
1
1
1
0
1
1
1
B
0
1
1
1
1
1
0
0
C
0
0
1
1
1
0
0
1
D
0
1
0
1
1
1
1
0
E
0
1
1
1
1
0
0
1
F
0
1
1
1
0
0
0
1
两路4位二进制比较器逻辑功能
输入
输出
a[3..0]
b[3..0]
H
L
E
a[3..0]>b[3..0]
1
0
0
a[3..0]
0
1
0
a[3..0]=b[3..0]
0
0
1
实验三时序逻辑电路的设计
一、实验目的
1.设计8位锁存器、60分频器,并在实验装置上验证所设计的电路;
2.了解时序逻辑电路的设计特点。
二、实验要求
用原理图输入方式设计8位锁存器、用VHDL输入方式设计60分频器。
验证电路的外围器件可选用按键输入、数码管输出。
思考题:
如何消除险象竞争?
实验四数字电路系统实验——设计交通灯控制器
一、实验目的
1.设计一个简易交通灯控制器,并在实验装置上验证所设计的电路;
2.学习层次化设计方法。
二、实验要求
位于十字路口的交通灯,在A方向和B方向各有红、黄、绿三盏灯,亮灭顺序如表所示,1表示亮,0表示灭,假设灯亮灭时间均为1S。
本实验设计输入方法、验证器件不限,最终需建立一个元件符号。
A方向
B方向
红灯
黄灯
绿灯
红灯
黄灯
绿灯
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
思考题:
如何实现各灯亮灭时间可调?
实验五数字电路系统实验——设计一个方波信号输出电路
一、实验目的
1.设计一个方波信号产生电路,并在实验装置上验证所设计的电路;
2.建立自顶向下的设计思路。
二、实验要求
设计一个占空比为20%、周期为1S的方波信号,并用末位数码管进行指示——当方波信号为高电平时,数码管显示2;当方波信号为低电平时,数码管显示8。
实验六数字电路系统实验——设计两人掷骰子比较点大小的游戏电路
一、实验目的
1.设计一个游戏电路并在实验装置上验证所设计的电路;
2.建立自顶向下的设计思路。
二、实验要求
A、B两人玩掷骰子的游戏,当A的点数大于B的点数时,输出H=“1”、L=E=“0”;
当A的点数小于B的点数时,输出L=“1”、H=E=“0”;
当A的点数等于B的点数时,输出E=“1”、H=L=“0”;
并同时用两个数码管显示A、B两人的点数。
实验七数字电路系统实验——设计一个CPU计数比较系统
一、实验目的
1.设计一个计数比较系统,并在实验装置上验证所设计的电路;
2.建立自顶向下的设计思路。
二、实验要求
cp1和cp2为两个时钟输入端,keep=1时启动2个8位计数器,keep=0时,计数器停止计数并保持当前计数值。
/R=0时,CPU读入数据。
C=0时,CPU读入A口值;C=1时,CPU读入B口值。
完成虚框以外的电路的设计。
思考题:
1.若CPU的写信号参与控制,并口的D7~0将成为双向口,如何设计?
2.不读不写时如何使并口的D7~0呈高阻态?
实验八数字电路系统实验——设计CPU接口电路
一、实验目的
1.设计一个CPU接口电路,并在实验装置上验证所设计的电路;
2.了解CPU接口电路的工作原理;
3.掌握自顶向下的设计方法。
二、实验要求
如图示一个微机系统接口电路芯片:
D7~D0与CPU数据线相连,A、RD、WR来自CPU控制线。
当RD=0时,CPU通过D7~D0读入IN7~IN0的数据;当WR=O时,CPU通过D7~D0将数据写入OUT7~OUT0。
当A=0时,输出OUT7~OUT0呈高阻态。
设计框内电路。
思考题:
三态门、缓冲器、锁存器的使用场合?
第五章CPLD实验电路系统
CPLD实验电路系统主要包括以下几个部分:
下载电路——用于将计算机中的二进制位码流文件下载至CPLD芯片中,以使CPLD按照所设计的电路功能工作;系统的输入——时钟、键、A/D等;系统的输出——指示灯、数码管、LCD、D/A等;CPU接口。
5.1下载电路
图5.1.1下载电路
如图5.1.1所示,左侧为PC机的并口,74LS244为驱动芯片,右侧为与CPLD连接的接插件,注意接插件上的电源VCC和GND要与74LS244驱动芯片及CPLD的供电电源一致。
5.2CPLD管脚的分配
本节以FLEX10K10TC144为例,介绍CPLD与外围其它元器件的连接,连接的元器件种类繁多,主要包括键——自锁按键、拨码开关、脉冲按键、小键盘;指示灯——红黄绿发光二极管、点阵式显示器;数码管;LCD显示器;声报警——蜂鸣器;时钟输入电路;单片机——8051;A/D和D/A等。
图5.2.1为FLEX10K10TC144管脚对外围电路的分配。
图5.2.1FLEX10K10TC144管脚连接图
5.3开关输入
该电路包含8个带指示灯的自锁按键和16个拨码开关。
按键没有按下时,指示灯处于熄灭状态,表明输入CPLD的电平为“0”,按键按下时,指示灯发光,表明输入CPLD的电平为“1”。
拨码开关拨至“OFF”时,输入CPLD的电平为“0”;拨码开关拨至“ON”时,输入CPLD的电平为“1”。
图5.3.1开关电路
5.4脉冲输入
PS1~PS4为四个带指示灯的复位按键。
PS1、PS2没有按下时,对应于按键的指示灯发光,输入到CPLD中的PS1点和PS2点的电位由上拉电阻嵌位在高电平;当按键按下时,指示灯熄灭,CPLD中的PS1点和PS2点的电位为低电平;放开按键后,该点电位又变成低电平,至此为CPLD输入了一个负脉冲。
同样的道理,使用PS3和PS4会为CPLD输入正脉冲。
DOWN、UP为不带指示灯的复位按键,工作原理同上。
图5.4.1脉冲输入电路
5.5键盘
通常状态下,CPLD回读键盘的列线值为“111”。
由CPLD依次扫描输出C1C2C3C4=“0111”、“1011”、“1101”、“1110”,当某行线为“0”,回读某列线也为“0”时,即可知道此键的位置。
比如CPLD输出C1C2C3C4=“1011”、而回读列线RK2为“0”时,表明键“2”按下。
图5.5.1键盘电路
5.6指示灯电路
CPLD输出管脚通过电流驱动电路和限流电阻接指示灯的阳极端,这里指示灯的阴极端同样受CPLD的控制,当然也可直接接地。
图5.6.1指示灯电路
5.78×8点阵式发光二极管
该发光二极管阵列由8个红色和8个绿色发光二极管组成,每个点由一红一绿两个发光二极管组成,两者共阴极,由CPLD控制。
当某点的红绿发光二极管同时点亮时,该点就可呈黄色显示。
图5.7.18×8点阵式发光二极管电路
5.8蜂鸣器电路
BUZZER与CPLD连接,当BUZZER为“1”时,蜂鸣器发声。
图5.8.1蜂鸣器电路
5.9CPU接口电路
图中给出了CPLD与8051单片机及ADC0804模数转换器和AD7528数模转换器的连接电路,通过该电路可实现模拟量的采集、运算、闭环控制等。
图5.9.1CPU接口电路
5.10数码管显示电路
图5.10.1数码管显示电路
5.11CPLD管脚分配表
实验装置的面板如图5.11.1所示,各输入输出器件与CPLD管脚连接如表511.1所示。
图5.11.1实验装置面板图
表5.11.1输入输出器件与CPLD管脚连接表
外围器件名称
外围器件符号
CPLD管脚号
说明
红色指示灯
L1
7
黄色指示灯
L2
8
绿色指示灯
L3
9
红色指示灯
L4
10
黄色指示灯
L5
11
绿色指示灯
L6
12
红色指示灯
L7
13
黄色指示灯
L8
14
绿色指示灯
L9
17
红色指示灯
L10
18
黄色指示灯
L11
19
绿色指示灯
L12
20
141
L1~L12的共阴极,高电平有效
6个数码管
a
23
b
26
c
27
d
28
e
29
f
30
g
31
dp
32
74138
A(DE1)
33
74138的输出y0~y5分别接数码管的共阴极c1~c6(c6为低位)
B(DE2)
36
C(DE3)
37
蜂鸣器
BUZZER
46
红骰子指示灯
L13
7
L14
8
L15
9
L16
10
L17
11
L18
12
L19
13
绿骰子指示灯
L20
14
L21
17
L22
18
L23
19
L24
20
L25
21
L26
22
142
L134~L26的共阴极,高电平有效
液晶显示器
EN
130
RS
122
RW
128
D0
131
D1
132
D2
133
D3
135
D4
136
D5
137
D6
138
D7
140
黄色时钟指示灯
L27(10MHZ)
23
L28(1MHZ)
26
L29(100KHZ)
27
L30(10KHZ)
28
L31(1KHZ)
29
L32(100HZ)
30
L33(10HZ)
31
L34(1HZ)
32
74138
a
33
74138的输出y6为L27~L34的共阴极
b
36
c
37
UP键
121
按下时接低电平,放开时接高电平
DOWN键
125
OSC
55
10MHZ晶振频率
88点阵式LED显示器
Row1
88
阳极公共端
Row2
89
Row3
90
Row4
91
Row5
92
Row6
95
Row7
96
Row8
97
CR1
98
红色阴极端,高电平有效
绿色阴极端,高电平有效
CR2
99
CR3
100
CR4
101
CR5
102
CR6
109
CR7
110
CR8
111
CG1
112
CG2
113
CG3
114
CG4
116
CG5
117
CG6
118
CG7
119
CG8
120
8051CPU
P0.0
131
P0.1
132
P0.2
133
P0.3
135
P0.4
136
P0.5
137
P0.6
138
P0.7
140
P1.0
17
P1.1
18
P1.2
19
P1.3
20
P1.4
21
P1.5
22
P1.6
141
P1.7
142
P2.0
7
P2.1
8
P2.2
9
P2.3
10
P2.4
11
P2.5
12
P2.6
13
P2.7
14
P3.0
41
P3.1
144
P3.2
98
P3.3
99
P3.4
100
P3.5
101
P3.6
122
P3.7
128
按键
SW1
47
按键按下时接高电平,放开时接低电平
SW2
48
SW3
49
SW4
51
SW5
59
SW6
60
SW7
62
SW8
63
拨码开关
SW9
64
拨至ON接高电平
SW10
65
SW11
67
SW12
68
SW13
69
SW14
70
SW15
72
SW16
73
SW17
78
SW18
79
SW19
80
SW20
81
SW21
82
SW22
83
SW23
86
SW24
87
脉冲按键
PS1
54
PS1、PS2按下接低电平,放开接高电平;PS3、PS4按下接高电平,放开接低电平
PS2
56
PS3
124
PS4
126
键盘
RK1
42
键盘电路如图5.2.2所示,C1~C4为74138的输出端y0~y3
RK2
43
RK3
44
ADC0804
DB0
131
DB1
132
DB2
133
DB3
135
DB4
136
DB5
137
DB6
138
DB7
140
/CS
38
/RD
128
AD_INTR
143
AD_WR
接74138的y6
DA7528
DB0
131
DB1
132
DB2
133
DB3
135
DB4
136
DB5
137
DB6
138
DB7
140
/CS
39
/WR
128
/DACA
122