资源描述
实验一 EDA工具基本操作与应用
一、实验目的
1、通过一个简单的D触发器的设计,让学生掌握QUARTUSII设计工具进行电子设计的基本流程。
2、初步了解可编程器件设计的全过程。
二、主要仪器设备
EDA实验系统一台,EDA/SOPC实验系统一台
三、 实验步骤
QUARTUSII软件的基本操作与应用
1、运行QUARTUSII软件。
2、选择File/New Project Wizard,新建一个工程,并点击Next。
图:1-1
3、指定工作目录及工程顶层设计实体名称,如图1-1所示,并点击2次Next。
4、选择FPGA器件,如图1-2所示,并点击Finish,工程文件建立结束。
图:1-2
5、点击File/New,新建一个VHDL文件,如图1-3所示。
图:1-3
6、点击Ok,并保存,无需任何修改,点击Ok即可。
7、按照自己的想法在新建的VHDL文件中编写VHDL程序,如D触发器程序代码,如图1-4所示。
图:1-4
8、代码书写结束后,选择Processing/Start Compilation对编写的程序代码进行编译,直至编译通过,否则对程序代码进行修改。
9、编译通过后,选择File/New,在弹出的对话框中点击Other Files,选择Vector Waveform File,并点击OK,建立一个波形文件,如图1-5所示,保存波形文件。
图:1-5
10、在波形文件加入输入输出端口,如图1-6所示。
图:1-6
11、对加入到波形文件中的输入端口进行初始值设置,并点击Processing/Start Simuliation进行仿真。查看仿真结果是否符合要求。
12、仿真无误后,选择Assignments/Assing Pins对实验中用到的管脚进行绑定分配,如图1-7所示。
图1-7
13、对于复用的引脚,需做进一步处理,使其成为通用I/O。
14、最后再编译一次,编译无误后,用下载电缆通过JTAG接口将对应的dff2.sof文件下载到FPGA中。
15、在实验系统中正确连线,观察实验结果是否与仿真结果相吻合。
四、实验报告
根据以上实验内容写出实验报告,包括设计流程,仿真结果及分析等内容。
实验二 一般计数器设计
一、实验目的
1、加深对计数器的认识
2、了解用VHDL语言实现计数器的过程
3、掌握EDA开发的基本流程
二、主要仪器设备
EDA实验系统1台
PC机
三、实验内容
1、运用VHDL设计1个4位二进制计数器,计数范围从0000计到1111。
2、在1的基础上增加时钟使能作用及异步清零功能
3、在2的基础上实现计数器的计数范围控制,如从0000计到1001。
四、实验报告
根据以上实验内容写出实验报告,包括程序设计,软件编译,仿真结果及分析,硬件测试等内容。
实验三 移位寄存器设计
一、实验目的
1、掌握移位寄存器的设计方法
2、掌握VHDL的简单控制实现
二、主要仪器设备
EDA实验系统1台
PC机
三、实验内容
运用VHDL设计1个带并行置数功能可以循环左移和右移的8位移位寄存器。
四、实验报告
根据以上实验内容写出实验报告,包括程序设计,软件编译,仿真结果及分析,硬件测试等内容。
实验四 8421BCD码计数器设计及显示
一、实验目的
1、掌握8421BCD码计数器的设计方法
2、会用VHDL语言完成数码显示工作
二、主要仪器设备
EDA实验系统1台
PC机
三、实验内容
1、运用VHDL设计1个模为24的8421BCD码加法计数器。
2、将计数结果在数码管上显示
四、实验报告
根据以上实验内容写出实验报告,包括程序设计,软件编译,仿真结果及分析,硬件测试等内容。
实验五 四人抢答器设计
一、实验目的
1、熟悉四人抢答器的工作原理
2、加深对VHDL语言的理解
二、主要仪器设备
EDA实验系统一台
三、实验原理
抢答器在各类竞赛性质的场合得到了广泛地应用,它的出现,消除了原来由于人眼的误差而未能正确判断最先抢答的人的情况。
抢答器的原理比较简单,首先必须设置一个抢答允许标志位,目的就是为了允许或者禁止抢答者按按钮:如果抢答允许位有效,那么第一个抢答者按下的按钮就将允许标志位清除,同时记录按钮的序号,也就是对应的按按钮的人,这样做的目的是为了禁止后面再而有人按下按钮的情况出现。总的说来,抢答器的目的就是在抢答允许位有效后,第一个按下按钮的人将其清除以禁止再有按钮按下,同时记录清除抢答允许位的按钮的序号并显示出来,这就是抢答器的基本原理。
四、实验内容
1.本实验的任务就是用VHDL语言设计一个四人抢答器,用按键如S1做抢答允许位按钮,用S2—S5来表示1号到4号抢答者,同时LED模块分别表示抢答者对应的位子。具体要求是按下一次S1,允许一次抢答,这时S2—S5中第一个按下的按键将抢答允许位清除,同时将对应的LED点亮,用来表示对应的按键抢答成功。
2.(选做内容)将抢答选手的编号用数码管显示出来。
五、实验报告
根据以上实验内容写出实验报告,包括程序设计,软件编译,仿真结果及分析,硬件测试等内容。
实验六 正弦信号发生器设计
一、实验目的
1、熟悉基于DDS的正弦信号发生器的基本工作原理
2、设计出一个频率可变的正弦信号发生器号源。
二、主要仪器设备
EDA/SOPC实验系统1台,示波器1台
三、实验原理
如图6-1所示为基本DDS结构,由相位累加器、相位调制器、正弦ROM查找表、D/A构成。相位累加器是整个DDS的核心,完成相位累加运算。相位累加器的输入是相位增量,又由于与输出频率呈线性关系:,因此相位累加器的输入又可称为频率字输入。
相位调制器接收相位累加器的相位输出,加上一个相位偏移量,用于信号的相位调制,不用时可以去掉,或者加一固定值。
正弦ROM查找表完成的查表转换,也就是相位到幅度的转换,它的输入是相位调制器的输出,事实上就是ROM的地址。
图6-1 DDS原理框图
四、实验内容
1、本实验要完成任务就是设计一个正弦信号发生器,用VHDL设计出同步寄存器、相位累加器等,正弦ROM查找表建议采用定制器件的方法完成,正弦ROM数据文件可以用C代码完成。
2、(选做内容)改变ROM存放数据格式,使之为方波或三角波,设计出可以输出包括正弦、三角及方波的DDS信号源。
五、实验报告
根据以上实验内容写出实验报告,包括仿真结果及分析、硬件实现、硬件测试等内容。
实验七 有限状态机的设计
一、实验目的
1、掌握有限状态机设计方法
2、掌握多进程描述方法
二、主要仪器设备
EDA实验系统1台
PC机
三、实验内容
运用VHDL设计1个含至少4个状态的有限状态机,可以是MEALY或MOORE型的状态机,状态图自行设计。
四、实验报告
根据以上实验内容写出实验报告,包括程序设计,软件编译,仿真结果及分析,硬件测试等内容。
选做实验一 交通灯控制器设计
一、实验目的
1、了解交通灯的燃灭规律。
2、了解交通灯控制器的工作原理。
3、熟悉VHDL 语言编程,了解实际设计中的优化方案。
二、主要仪器设备
EDA/SOPC实验系统1台
三、实验原理
交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车子如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。
要完成本实验,首先必须了解交通路灯的燃灭规律。本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。其交通灯的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。在实验中使用8 个七段码管中的任意两个数码管显示时间。东西路和南北路的通车时间均设定为20s。数码管的时间总是显示为19、18、17……2、1、0、19、18……。在显示时间小于3 秒的时候,通车方向的黄灯闪烁。
四、实验内容
本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块和七段码管中的任意两个来显示。系统时钟选择时钟模块的1KHz 时钟,黄灯闪烁时钟要求为2Hz,七段码管的时间显示为1Hz 脉冲,即每1s 中递减一次,在显示时间小于3 秒的时候,通车方向的黄灯以2Hz的频率闪烁。系统中用S1 按键进行复位。
五、实验报告
根据以上实验内容写出实验报告,包括程序设计,软件编译,仿真结果及分析,硬件测试等内容。
选做实验二 数字钟设计
一、实验目的
1、了解数字钟工作原理,设计出一个具有时、分、秒并可调时的数字钟。
2、进一步熟悉用VHDL 语言编写驱动七段码管显示的代码。
二、主要仪器设备
EDA/SOPC实验系统1台
三、实验原理
多功能数字钟应该具有的功能有:显示时-分-秒、整点报时、小时和分钟可调等基本功能。首先要知道钟表的工作机理,整个钟表的工作应该实在1Hz 信号的作用下进行,这样每来一个时钟信号,秒增加1 秒,当秒从59 秒跳转到00 秒时,分钟增加1 分,同时当分钟从59 分跳转到00 分时,小时增加1 小时,但是需要注意的是,小时的范围是从0~23 时。
在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,所以可以用一个3 位的二进制码显示十位,用一个四位的二进制码(BCD码)显示个位,对于小时因为它的范围是从0~23,所以可以用一个2 位的二进制码显示十位,用4 位二进制码(BCD 码)显示个位。
实验中由于七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz时钟信号,但是扫描确需要一个比较高频率的信号,因此为了得到准确的1Hz 信号,必须对输入的系统时钟进行分频。
对于报警信号,由于实验箱上只有一个小的扬声器,而要使扬声器发生,必须给其一定频率的信号进行驱动,频率越高,声音越尖。另外由于人耳的听觉范围是300Hz~10KHz 左右,所以设计时也要选择恰当的发声频率。
四、实验内容
本实验的任务就是设计一个多功能数字钟,要求显示格式为 小时-分钟-秒钟,整点报时,报时时间为10 秒,即从整点前10 秒钟开始报警,且前五次报警的声音频率较低,最后一次报警声音的频率较高,类似于收音机整点报时,即从xx-59-50 秒开始,依次为嘀、嘀、嘀、嘀、嘀、嗒。系统时钟选择时钟模块的10KHz,要得到1Hz 时钟信号,必须对系统时钟进行10,000 次分频。调整时间的的按键用按键模块的S1 和S2,S1 调节小时,每按下一次,小时增加一个小时,S2 调整分钟,每按下一次,分钟增加一分钟。报时的喇叭采用实验箱的扬声器模块,整点报时时嘀声用1.25KHz(对10KHz 信号进行8 分频),嗒声用2.5KHz(对10KHz 信号进行4 分频)。另外用S8 按键作为系统时钟复位,复位后全部显示00-00-00。
五、实验报告
根据以上实验内容写出实验报告,包括程序设计,软件编译,仿真结果及分析,硬件测试等内容。
选做实验三 出租车计费器设计
一、实验目的
1.了解出租车计费器的工作原理。
2.学会用VHDL 语言编写正确的七段码管显示程序。
3.数量掌握用VHDL 编写复杂功能模块。
4.掌握电机测速、显示电器、计数电路的设计方法。
5.熟悉状态机在数字系统设计中的应用
二、主要仪器设备
EDA/SOPC实验系统1台
三、实验原理
出租车计费器一般都是按公里计费,通常是起步价xx 元(xx 元可以行走2 公里),然后再是xx 元/公里。所以要完成一个出租车计费器,就要有两个计数单位,一个用来计公里,另外一个用来计费用。通常在出租车的轮子上都有传感器,用来记录车轮转动的圈数,而车轮子的周长是固定的,所以知道了圈数自然也就知道了里程。在这个实验中,就要模拟出租车计费器的工作过程,用直流电机模拟出租车轮子,通过传感器,可以得到电机每转一周输出一个脉冲波形。结果的显示用8 个七段码管,前四个显示里程,后四个显示费用。
在设计VHDL 程序时,首先在复位信号的作用下将所有用到的寄存器进行清零,然后开始设定到起步价记录状态,在此状态时,在起步价规定的里程里都一直显示起步价,直到路程超过起步价规定的里程时,系统转移到每公里计费状态,此时每增加一公里,计费器增加相应的费用。
为了便于显示,在编写过程中的数据用BCD 码来显示,这样就不存在数据格式转换的问题。比如表示一个三位数,那么就分别用四位二进制码来表示,当个位数字累加大于9
时,将其清零,同时十位数字加1,依此类推。
四、实验内容
本实验要完成的任务就是设计一个简单的出租车计费器,要求是起步价3 元,准行1 公里,以后1 元/公里。显示部分的七段码管扫描时钟选择时钟模块的1KHz,电机模块的跳线选择GND 端,这样通过旋钮电机模块的电位器,即可达到控制电机转速的目的。另外用按键模块的S1 来作为整个系统的复位按钮,每复位一次,计费器从头开始计费。直流电机用来模拟出租车的车轮子,没转动一圈认为是行走1 米,所以每旋转1000 圈,认为车子前进1 公里。系统设计是需要检测电机的转动情况,每转一周,计米计数器增加1。七段码管显示要求为前4 个显示里程,后3 个显示费用。
五、实验报告
根据以上实验内容写出实验报告,包括程序设计,软件编译,仿真结果及分析,硬件测试等内容。
选做实验四 频率计的设计
一、实验目的
1. 了解频率计的工作原理。
2. 体会FPGA 在数字系统设计方面的灵活性。
3. 掌握VHDL 在测量模块设计方面的技巧。
二、主要仪器设备
EDA/SOPC实验系统1台、信号源1台
三、实验原理
所谓频率就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T(也称闸门时间)内测得这个周期性信号的重复变化次数为N,则其频率可表示为
f=N/T
由上面的表示式可以看到,若时间间隔T 取1s,则f=N,但是这种频率计仅能测出频率大于或者等于1Hz 的情况,且频率越高,精度也越高。实际应用中,频率计的闸门时间十个可变量,当频率小于1Hz 是,闸门时间就要适当放大。
本实验中为了简化实验代码,闸门时间固定为1s,闸门信号是一个0.5Hz 的方波,在闸门有效(高电平)期间,对输入的脉冲进行计数,在闸门信号的下降沿时刻,所存当前的计数值,并且清零所有的频率计数器。由于闸门时间是1s(0.5Hz 方波),所以显示的频率是1s 钟更新一次,且显示的内容是闸门下降沿时锁存的值。
在设计频率计的时候,八个七段码管最多可以显示99,999,999Hz,因此在设计时候用八个4 位二进制码(BCD 码)来表示,另外还必须有同样的八个4 位二进制码来对输入的频率进行计数,在闸门下降沿的时候,将后者的值锁存到前者的8 个寄存器中。另外为了读数方便,在显示时需要进行判断,假如频率的值小于1KHz 并且大于100Hz,那么只显示三位有效值,其他高位全部不显示。
四、实验内容
本实验要完成的任务就是设计一个频率计,系统时钟选择实验箱时钟模模块的1KHz 时钟,闸门时间为1s(0.5Hz,需要对系统时钟进行2000 分频),在闸门为高电平期间,对输入的频率进行计数,当闸门变低的时候,记录当前的频率值,并将频率计数器清零,频率的显示每过2 秒刷新一次。频率计的输入从实验箱的观察模块的探针输入。
五、实验报告
根据以上实验内容写出实验报告,包括程序设计,软件编译,仿真结果及分析,硬件测试等内容。
附 录——FPGA接口对照表
复位信号
信号名称
对应FPGA引脚
RESET
240
串行接口(RS-232)
信号名称
对应FPGA引脚
RXD1
195
TXD1
128
RXD2
223
TXD2
222
VGA接口
信号名称
对应FPGA引脚
R
219
G
218
B
217
HS
216
VS
215
PS/2接口
信号名称
对应FPGA引脚
CLOCK
214
DATA
213
USB接口模块
信号名称
对应FPGA引脚
DB0
228
DB1
233
DB2
234
DB3
235
DB4
236
DB5
237
DB6
238
DB7
239
A0
227
WR
224
RD
225
CS
208
INT
207
SUSPEND
206
LCD显示模块
信号名称
对应FPGA引脚
DB0
228
DB1
233
DB2
234
DB3
235
DB4
236
DB5
237
DB6
238
DB7
239
C/D
227
WR
224
RD
225
CS
226
以太网接口模块
信号名称
对应FPGA引脚
SA0
96/38
SA1
95
SA2
94
SA3
93
SA4
88
SA5
87
SA6
86
SA7
85
SA8
84
SA9
83
SD0
98
SD1
100
SD2
41
SD3
104
SD4
106
SD5
108
SD6
114
SD7
116
SD8
99
SD9
101
SD10
47
SD11
105
SD12
107
SD13
113
SD14
115
SD15
117
RD
82
WR
23
AEN
79
INT
39
RESET
21
LED显示模块
信号名称
对应FPGA引脚
D1_1
98
D1_2
99
D1_3
100
D1_4
101
D1_5
41
D1_6
47
D1_7
104
D1_8
105
D2_1
106
D2_2
107
D2_3
108
D2_4
113
D2_5
114
D2_6
115
D2_7
116
D2_8
117
拨档开关
信号名称
对应FPGA引脚
K1
153
K2
57
K3
56
K4
55
K5
54
K6
53
K7
50
K8
49
按键模块
信号名称
对应FPGA引脚
S1
66
S2
65
S3
64
S4
63
S5
62
S6
61
S7
60
S8
59
键盘阵列模块
信号名称
对应FPGA引脚
ROW0
66
ROW1
65
ROW2
64
ROW3
63
COL0
62
COL1
61
COL2
60
COL3
59
七段码显示模块
信号名称
对应FPGA引脚
A
219
B
218
C
214
D
213
E
217
F
216
G
215
DP
42
SEL0
43
SEL1
44
SEL2
45
交通灯显示模块
信号名称
对应FPGA引脚
R1
20
Y1
19
G1
18
R2
17
Y2
16
G2
15
高速DA和高速AD模块
信号名称
对应FPGA引脚
DB0
3
DB1
4
DB2
5
DB3
6
DB4
7
DB5
8
DB6
11
DB7
12
AD_CLK
1
AD_OE
2
DA_CLK
13
存储器模块
信号名称
对应FPGA引脚
A0
187
A1
186
A2
185
A3
184
A4
183
A5
170
A6
169
A7
168
A8
167
A9
166
A10
132
A11
196
A12
197
A13
58
A14
126
A15
200
A16
201
A17
131
A18
188
A18
203
A20
202
DB0
181
DB1
180
DB2
179
DB3
178
DB4
177
DB5
176
DB6
175
DB7
174
DB8
143
DB9
141
DB10
140
DB11
139
DB12
138
DB13
137
DB14
136
DB15
135
DB16
118
DB17
119
DB18
120
DB19
121
DB20
122
DB21
123
DB22
124
DB23
125
DB24
165
DB25
164
DB26
163
DB27
162
DB28
161
DB29
160
DB30
159
DB31
158
SRAM_RD
194
SRAM_WR
173
SRAM_BE0
134
SRAM_BE1
133
SRAM_BE2
156
SRAM_BE3
144
SRAM_CS
182
FLASH_RD
127
FLASH_WR
193
FLASH_CS
206
音频CODEC模块
信号名称
对应FPGA引脚
SDIN
77
SCLK
78
CS
76
BCLK
75
DIN
74
LRCIN
73
LRCOUT
67
DOUT
68
时钟源模块
信号名称
对应FPGA引脚
CLOCK
28
扬声器模块
信号名称
对应FPGA引脚
SPERKER
46
直流电机模块
信号名称
对应FPGA引脚
PWM
14
SPEED
29
输入输出探测模块
信号名称
对应FPGA引脚
INPUT
152
OUTPUT
48
展开阅读全文