实验一QuartusⅡ文本输入法设计组合逻辑电路.docx
《实验一QuartusⅡ文本输入法设计组合逻辑电路.docx》由会员分享,可在线阅读,更多相关《实验一QuartusⅡ文本输入法设计组合逻辑电路.docx(26页珍藏版)》请在冰点文库上搜索。
实验一QuartusⅡ文本输入法设计组合逻辑电路
实验一QuartusⅡ文本输入法设计组合逻辑电路
(1)实验目的:
熟悉QuartusⅡ的VHDL文本设计流程全过程,学习简单组合逻辑电路的设计、仿真和硬件测试。
(2)实验内容:
Ⅰ.利用QuartusⅡ完成2选1多路选择器的文本编辑输入、编译和仿真测试,给出仿真波形分析说明。
【参考程序】:
ENTITYmux21aIS
PORT(a,b,s:
INBIT;
y:
OUTBIT);
ENDENTITYmux21a;
ARCHITECTUREoneOFmux21aIS
BEGIN
PROCESS(a,b,s)
BEGIN
IFs=‘0'THENy<=a;
ELSEy<=b;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREone;
Ⅱ.对实验内容Ⅰ的电路进行引脚锁定及硬件下载测试。
建议选择实验电路模式5(参考附图2-7),用键1(PIO0,引脚号为1)控制s;a和b分别接clk5(引脚号为16)和clk0(引脚号为93);输出信号y接扬声器spker(引脚号为129)。
在实验箱通过短路帽选择clock5接1024Hz信号,clock0接256Hz信号。
最后进行编译、下载和硬件测试实验(通过键1控制s,可使扬声器输出不同音调)。
(3)实验报告:
1.实验Ⅰ的仿真波形报告分析说明。
2.实验Ⅱ硬件测试的详细实验说明。
实验二QuartusⅡ文本输入法设计时序逻辑电路
(1)实验目的:
熟悉QuartusⅡ的VHDL文本设计过程,学习简单时序逻辑电路的设计、仿真和硬件测试。
(2)实验内容:
Ⅰ.用VHDL设计一个带异步复位和同步时钟使能的D触发器,并利用QuartusⅡ进行编辑输入、编译、仿真及硬件测试。
建议使用实验电路模式5。
Ⅱ.用VHDL设计一个带异步清零的8位锁存器,并利用QuartusⅡ进行编辑输入、编译、仿真及硬件测试。
建议使用实验电路模式1,PIO7-PIO0接输入信号(键1、键2控制输入),PIO39-PIO32接输出信号,PIO48(键7)接清零信号,PIO49(键8)接锁存信号。
(3)实验报告:
1.给出实验Ⅰ的设计程序、仿真波形报告的分析说明及硬件测试的结果。
2.给出实验Ⅱ的设计程序、仿真波形报告的分析说明及硬件测试的结果。
3.分析比较两个实验的仿真和硬件测试结果,说明这两种电路的异同点。
实验三QuartusⅡ图形输入法设计逻辑电路
(1)实验目的:
熟悉使用QuartusII的原理图输入方法设计简单组合逻辑电路,掌握层次化原理图设计的方法。
(2)实验原理:
一个1位全加器可以由两个半加器和一个或门构成,其电路原理图如下:
图3-1半加器原理图
表3-1半加器真值表
a
b
so
co
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
图3-2全加器原理图
(3)实验内容
Ⅰ.完成半加器的设计,包括原理图输入、编译、仿真,并将此半加器电路设置成一个硬件符号入库。
Ⅱ.建立一个更高层次的原理图文件,利用以上获得的半加器构成1位全加器,并完成编译、仿真及硬件测试。
建议选择电路模式5,键1、键2、键3(PIO0/1/2)分别接ain、bin、cin,发光管D2、D1(PIO9/8)分别接sum和cout。
(4)实验报告
1.给出实验Ⅱ的仿真波形报告分析。
2.给出实验Ⅱ的硬件测试过程说明和结果分析。
实验四7段数码显示译码器设计
(1)实验目的:
学习7段数码显示译码器的设计;学习VHDL的CASE语句应用。
(2)实验原理:
7段数码显示译码器是纯组合逻辑电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。
图4-1是共阴七段数码管,译码器的输出信号的7位分别接数码管的7个段,高位在左,低位在右。
例如当输出信号为“”时,数码管的7个段:
g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发光,于是数码管显示“5”。
注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h,程序中的输出端应改为8位的标准逻辑位矢量。
图4-1共阴数码管及其电路
(3)实验内容:
Ⅰ.用VHDL中的CASE语句设计一个显示十六进制数的7段数码显示译码器,输入是从“0000”~“1111”16个4位二进制数,数码管显示的是从‘0’~‘F’16个字符。
在QuartusII上进行编辑、编译及仿真,给出其所有信号的时序仿真波形。
【部分参考程序】
…
PROCESS(A)
BEGIN
CASEAIS
WHEN"0000"=>LED7S<="";
…
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;
END;
提示:
仿真时可用输入总线的方式给出输入信号仿真数据,仿真波形示例图如图4-2所示。
图4-27段译码器仿真波形
Ⅱ.引脚锁定及硬件测试。
建议选用实验电路模式6,用数码管8显示译码输出(PIO46-PIO40),键8、键7、键6和键5四位控制输入数据,对译码器进行硬件测试。
(4)实验报告
1.给出实验Ⅰ的完整程序,说明程序中各语句的含义及其整体功能。
2.给出实验Ⅰ的时序仿真波形报告及其分析说明。
3.给出实验Ⅱ的硬件测试过程及结果的说明。
实验五数控分频器的设计
(1)实验目的:
学习数控分频器的设计方法。
(2)实验原理:
数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,数控分频器可用计数值可并行预置的加法计数器设计实现。
(3)实验内容:
Ⅰ.用VHDL设计一个数控分频器,利用QuartusⅡ进行编辑输入、编译及时序仿真。
仿真时输入不同的预置值D,给出如图5-1的时序波形。
图5-1当给出不同输入值D时,FOUT输出不同频率(CLK周期=50ns)
Ⅱ.引脚锁定及硬件测试。
建议选择实验电路模式1,键2和键1负责输入8位预置数D(PIO7-PIO0);时钟信号CLK由clock0输入,频率选65536Hz或更高(确保分频后落在音频范围);输出FOUT接扬声器(SPKER)。
编译下载后进行硬件测试:
改变键2/键1的输入值,可听到不同音调的声音。
(4)实验报告:
1.根据图5-1的波形提示,分析参考程序中的各语句功能、设计原理及逻辑功能,说明进程P_REG和P_DIV的作用。
2.给出时序仿真波形报告及其分析说明。
3.给出硬件测试的过程及结果的分析说明。
【参考程序】
LIBRARYIEEE;
USE_LOGIC_;
USE_LOGIC_;
ENTITYDVFIS
PORT(CLK:
INSTD_LOGIC;
D:
INSTD_LOGIC_VECTOR(7DOWNTO0);
FOUT:
OUTSTD_LOGIC);
END;
ARCHITECTUREoneOFDVFIS
SIGNALFULL:
STD_LOGIC;
BEGIN
P_REG:
PROCESS(CLK)
VARIABLECNT8:
STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFCNT8=""THEN
CNT8:
=D;--当CNT8计数计满时,输入数据D被同步预置给计数器CNT8
FULL<='1';--同时使溢出标志信号FULL输出为高电平
ELSECNT8:
=CNT8+1;
FULL<='0';
ENDIF;
ENDIF;
ENDPROCESSP_REG;
P_DIV:
PROCESS(FULL)
VARIABLECNT2:
STD_LOGIC;
BEGIN
IFFULL'EVENTANDFULL='1'THEN
CNT2:
=NOTCNT2;--如果溢出标志信号FULL为高电平,D触发器输出取反
IFCNT2='1'THENFOUT<='1';ELSEFOUT<='0';
ENDIF;
ENDIF;
ENDPROCESSP_DIV;
END;
实验六8位数码扫描显示电路设计
(1)实验目的:
学习扫描显示电路的设计。
(2)实验原理:
图6-1所示的是8位数码扫描显示电路,其中每个数码管的8个段:
h、g、f、e、d、c、b、a(h是小数点)都分别连在一起,8个数码管分别由8个选通信号k1、k2、…k8来选择。
被选通的数码管显示数据,其余关闭。
如在某一时刻,k3为高电平,其余选通信号为低电平,这时仅k3对应的数码管显示来自段信号端的数据,而其它7个数码管为关闭状态。
根据这种电路状况,如果要在8个数码管显示希望的数据,就必须使得8个选通信号k1、k2、…k8分别被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。
图6-18位数码扫描显示电路
参考程序中,clk是扫描时钟;SG为7段控制信号,由高位至低位分别接g、f、e、d、c、b、a7个段;BT是位选控制信号,接图6-1中的8个选通信号:
k1、k2、…k8。
程序中CNT8是一个3位计数器,作扫描计数信号,由进程P2生成;进程P3是7段译码查表输出程序;进程P1是对8个数码管选通的扫描程序,例如当CNT8等于"001"时,K2对应的数码管被选通,同时,A被赋值3,再由进程P3译码输出"",显示在数码管上即为“3”;当CNT8扫变时,将能在8个数码管上显示数据:
13579BDF。
(3)实验内容:
Ⅰ.用VHDL设计一个8位数码扫描显示电路,利用QuartusⅡ进行编辑输入、编译及时序仿真。
Ⅱ.引脚锁定及硬件测试。
将实验系统左上方(即8个数码管左边)的跳线开关选择向下插(注意:
实验结束后要恢复原位),这时实验系统的8个数码管构成图6-1的电路结构。
时钟CLK可选择clock0,通过跳线选择16384Hz信号。
SG的7个段控制信号SG(0)、SG
(1)、…、SG(6)分别与PIO49、PIO48、…、PIO43连接,BT的8个位选控制信号BT(0)、BT
(1)、…、BT(7)分别与PIO41、PIO40、…、PIO34连接。
(4)实验报告
1.说明程序中各语句的含义及其整体功能。
如要在扫变时显示“12468ACE”,应如何修改程序?
2.给出时序仿真波形报告及其分析说明。
3.给出硬件测试的过程及结果的分析说明。
【参考程序】
LIBRARYIEEE;
USE_LOGIC_;
USE_LOGIC_;
ENTITYSCAN_LEDIS
PORT(CLK:
INSTD_LOGIC;
SG:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);--段控制信号输出g~a
BT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));--位选控制信号输出k8~k1
ENDSCAN_LED;
ARCHITECTUREoneOFSCAN_LEDIS
SIGNALCNT8:
STD_LOGIC_VECTOR(2DOWNTO0);--扫描计数信号
SIGNALA:
INTEGERRANGE0TO15;
BEGIN
P1:
PROCESS(CNT8)--数码管选通
BEGIN
CASECNT8IS
WHEN"000"=>BT<="";A<=1;
WHEN"001"=>BT<="";A<=3;
WHEN"010"=>BT<="";A<=5;
WHEN"011"=>BT<="";A<=7;
WHEN"100"=>BT<="";A<=9;
WHEN"101"=>BT<="";A<=11;
WHEN"110"=>BT<="";A<=13;
WHEN"111"=>BT<="";A<=15;
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESSP1;
P2:
PROCESS(CLK)--扫描计数
BEGIN
IFCLK'EVENTANDCLK='1'THENCNT8<=CNT8+1;
ENDIF;
ENDPROCESSP2;
P3:
PROCESS(A)--译码电路
BEGIN
CASEAIS
WHEN0=>SG<="";WHEN1=>SG<="";
WHEN2=>SG<="";WHEN3=>SG<="";
WHEN4=>SG<="";WHEN5=>SG<="";
WHEN6=>SG<="";WHEN7=>SG<="";
WHEN8=>SG<="";WHEN9=>SG<="";
WHEN10=>SG<="";WHEN11=>SG<="";
WHEN12=>SG<="";WHEN13=>SG<="";
WHEN14=>SG<="";WHEN15=>SG<="";
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESSP3;
END;
附录一GW48EDA系统实验电路结构图信号名与芯片引脚对照表
结构图上的信号名
EP1K100QC208
EP20K200/300EQC240
EP1K30/20/50TQC144
EP1C3T144
引脚号
引脚名称
引脚号
引脚名称
引脚号
引脚名称
引脚号
引脚名称
PIO0
7
I/O
224
I/O0
8
I/O0
1
I/O0
PIO1
8
I/O
225
I/O1
9
I/O1
2
I/O1
PIO2
9
I/O
226
I/O2
10
I/O2
3
I/O2
PIO3
11
I/O
231
I/O3
12
I/O3
4
I/O3
PIO4
12
I/O
230
I/O4
13
I/O4
5
I/O4
PIO5
13
I/O
232
I/O5
17
I/O5
6
I/O5
PIO6
14
I/O
233
I/O6
18
I/O6
7
I/O6
PIO7
15
I/O
234
I/O7
19
I/O7
10
I/O7
PIO8
17
I/O
235
I/O8
20
I/O8
11
DPCLK1
PIO9
18
I/O
236
I/O9
21
I/O9
32
VREF2B1
PIO10
24
I/O
237
I/O10
22
I/O10
33
I/O10
PIO11
25
I/O
238
I/O11
23
I/O11
34
I/O11
PIO12
26
I/O
239
I/O12
26
I/O12
35
I/O12
PIO13
27
I/O
2
I/O13
27
I/O13
36
I/O13
PIO14
28
I/O
3
I/O14
28
I/O14
37
I/O14
PIO15
29
I/O
4
I/O15
29
I/O15
38
I/O15
PIO16
30
I/O
7
I/O16
30
I/O16
39
I/O16
PIO17
31
I/O
8
I/O17
31
I/O17
40
I/O17
PIO18
36
I/O
9
I/O18
32
I/O18
41
I/O18
PIO19
37
I/O
10
I/O19
33
I/O19
42
I/O19
PIO20
38
I/O
11
I/O20
36
I/O20
47
I/O20
PIO21
39
I/O
13
I/O21
37
I/O21
48
I/O21
PIO22
40
I/O
16
I/O22
38
I/O22
49
I/O22
PIO23
41
I/O
17
I/O23
39
I/O23
50
I/O23
PIO24
44
I/O
18
I/O24
41
I/O24
51
I/O24
PIO25
45
I/O
20
I/O25
42
I/O25
52
I/O25
PIO26
113
I/O
131
I/O26
65
I/O26
67
I/O26
PIO27
114
I/O
133
I/O27
67
I/O27
68
I/O27
PIO28
115
I/O
134
I/O28
68
I/O28
69
I/O28
PIO29
116
I/O
135
I/O29
69
I/O29
70
I/O29
PIO30
119
I/O
136
I/O30
70
I/O30
71
I/O30
PIO31
120
I/O
138
I/O31
72
I/O31
72
I/O31
PIO32
121
I/O
143
I/O32
73
I/O32
73
I/O32
PIO33
122
I/O
156
I/O33
78
I/O33
74
I/O33
PIO34
125
I/O
157
I/O34
79
I/O34
75
I/O34
PIO35
126
I/O
160
I/O35
80
I/O35
76
I/O35
PIO36
127
I/O
161
I/O36
81
I/O36
77
I/O36
PIO37
128
I/O
163
I/O37
82
I/O37
78
I/O37
PIO38
131
I/O
164
I/O38
83
I/O38
83
I/O38
PIO39
132
I/O
166
I/O39
86
I/O39
84
I/O39
PIO40
133
I/O
169
I/O40
87
I/O40
85
I/O40
PIO41
134
I/O
170
I/O41
88
I/O41
96
I/O41
PIO42
135
I/O
171
I/O42
89
I/O42
97
I/O42
PIO43
136
I/O
172
I/O43
90
I/O43
98
I/O43
PIO44
139
I/O
173
I/O44
91
I/O44
99
I/O44
PIO45
140
I/O
174
I/O45
92
I/O45
103
I/O45
PIO46
141
I/O
178
I/O46
95
I/O46
105
I/O46
PIO47
142
I/O
180
I/O47
96
I/O47
106
I/O47
PIO48
143
I/O
182
I/O48
97
I/O48
107
I/O48
PIO49
144
I/O
183
I/O49
98
I/O49
108
I/O49
PIO60
202
I/O
223
I/O60
137
I/O60
131
I/O60
PIO61
203
I/O
222
I/O61
138
I/O61
132
I/O61
PIO62
204
I/O
221
I/O62
140
I/O62
133
I/O62
PIO63
205
I/O
220
I/O63
141
I/O63
134
I/O63
PIO64
206
I/O
219
I/O64
142
I/O64
139
I/O64
PIO65
207
I/O
217
I/O65
143
I/O65
140
I/O65
PIO66
208
I/O
216
I/O66
144
I/O66
141
I/O66
PIO67
10
I/O
215
I/O67
7
I/O67
142
I/O67
PIO68
99
I/O
197
I/O68
119
I/O68
122
I/O68
PIO69
100
I/O
198
I/O69
118
I/O69
121
I/O69
PIO70
101
I/O
200
I/O70
117
I/O70
120
I/O70
PIO71
102
I/O
201
I/O71
116
I/O71
119
I/O71
PIO72
103
I/O
202
I/O72
114
I/O72
114
I/O72
PIO73
104
I/O
203
I/O73
113
I/O73
113
I/O73
PIO74
111
I/O
204
I/O74
112
I/O74
112
I/O74
PIO75
112
I/O
205
I/O75
111
I/O75
111
I/O75
PIO76
16
I/O
212
I/O76
11
I/O76
143
I/O76
PIO77
19
I/O
209
I/O77
14
I/O77
144
I/O77
PIO78
147
I/O
206
I/O78
110
I/O78
110
I/O78
PIO79
149
I/O
207
I/O79
109
I/O79
109
I/O79
SPKER
148
I/O
184
I/O
99
I/O50
129
I/O
CLK0
182
I/O
185
I/O
126
INPUT1
93
I/O
CLK2
184
I/O
181
I/O
54
INPUT3
17
I/O
CLK5
78
I/O
151
CLKIN
56
I/O53
16
I/O
CLK9
80