北邮数字电路与逻辑设计实验实验报告上.docx
- 文档编号:26875986
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:30
- 大小:225.33KB
北邮数字电路与逻辑设计实验实验报告上.docx
《北邮数字电路与逻辑设计实验实验报告上.docx》由会员分享,可在线阅读,更多相关《北邮数字电路与逻辑设计实验实验报告上.docx(30页珍藏版)》请在冰豆网上搜索。
北邮数字电路与逻辑设计实验实验报告上
北京邮电大学电路实验中心
<数字电路与逻辑设计实验(上)>
实
验
报
告
班 级:
xxx
学 院:
xxx
实验室:
xxx
审阅教师:
姓名(班内序号):
xxx)
学 号:
2xxx
实验时间:
xxxx
评定成绩:
目录
实验1QuartusII原理图输入法设计与实现3
一、实验目的3
二、实验所用器材3
三、实验任务要求3
四、实验原理图3
五、实验仿真波形图及分析4
实验2用VHDL设计与实现组合逻辑电路5
一、实验目的5
二、实验所用器材5
三、实验任务要求5
四、VHDL代码5
五、实验仿真波形图及分析7
实验3用VHDL设计与实现时序逻辑电路8
一、实验目的8
二、实验所用器材8
三、实验任务要求8
四、模块端口说明及连接图8
五、VHDL代码9
六、实验仿真波形图及分析10
实验4用VHDL设计与实现数码管动态扫描控制器10
一、实验目的10
二、实验所用器材11
三、实验任务要求11
四、模块端口说明及连接图11
五、VHDL代码11
六、实验仿真波形图及分析15
故障及问题分析16
总结和结论17
实验1QuartusII原理图输入法设计与实现
一、实验目的
(1)熟悉用QuartusII原理图输入法进行电路设计和仿真;
(2)掌握QuartusII图形模块单元的生成与调用;
(3)熟悉实验板的使用。
二、实验所用器材
(1)计算机;
(2)直流稳压电源;
(3)数字系统与逻辑设计实验开发板。
三、实验任务要求
(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。
(2)用
(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。
(3)用3线-8线译码器(74LS138)和逻辑门设计实现函数F=C̅B̅A̅+C̅BA̅+CB̅A̅+CBA,仿真验证其功能,并下载到实验板测试。
要求用拨码开关设定输入信号,发光二极管显示输出信号。
四、实验原理图
(1)半加器原理图
(2)全加器原理图
(3)函数F原理图
五、实验仿真波形图及分析
(1)半加器仿真波形图
仿真波形图分析:
根据仿真波形,可以确定电路实现了半加器的功能,其逻辑表达式为S=A⊕B,CO=AB。
但我们也可以发现输出S和CO出现了静态功能冒险,要消除该冒险可以加入相应的选通脉冲。
(2)全加器仿真波形图
仿真波形图分析:
根据仿真波形,可以确定电路实现了全加器的功能,其逻辑表达式为Si=Ai⊕Bi⊕Ci-1,Ci=AiBi+(Ai⊕Bi)Ci-1。
(3)函数F仿真波形图
仿真波形图分析:
F=C̅B̅A̅+C̅BA̅+CB̅A̅+CBA,当且仅当CBA输入为000、010、100、111时,F=1,可知电路实现了函数F=C̅B̅A̅+C̅BA̅+CB̅A̅+CBA。
实验2用VHDL设计与实现组合逻辑电路
一、实验目的
(1)熟悉用VHDL语言设计组合逻辑电路和时序电路的方法;
(2)熟悉用QuartusII文本输入法进行电路设计;
(3)熟悉不同的编码及其之间的转换。
二、实验所用器材
(1)计算机;
(2)直流稳压电源;
(3)数字系统与逻辑设计实验开发板。
三、实验任务要求
(1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能,并下载到实验板测试。
要求用拨码开关设定输入信号,7段数码管显示输出信号。
(2)用VHDL语言设计实现一个8421码转换为格雷码的代码转换器,仿真验证其功能,并下载到实验板测试。
要求用拨码开关设定输入信号,发光二极管显示输出信号。
(3)用VHDL语言设计实现一个4人表决器,多数人赞成决议则通过,否则决议不通过,仿真验证其功能,并下载到实验板测试。
要求用拨码开关设定输入信号,发光二极管显示输出信号。
四、VHDL代码
(1)7段数码管译码器
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYsmgymqIS
PORT(
A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
B:
OUTSTD_LOGIC_VECTOR(0TO6);
C:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDsmgymq;
ARCHITECTUREbehavioralOFsmgymqIS
BEGIN
PROCESS(A)BEGINC<="11111100";
CASEAIS
WHEN"0000"=>B<="1111110";--0
WHEN"0001"=>B<="0110000";--1
WHEN"0010"=>B<="1101101";--2
WHEN"0011"=>B<="1111001";--3
WHEN"0100"=>B<="0110011";--4
WHEN"0101"=>B<="1011011";--5
WHEN"0110"=>B<="1011111";--6
WHEN"0111"=>B<="1110000";--7
WHEN"1000"=>B<="1111111";--8
WHEN"1001"=>B<="1111011";--9
WHENOTHERS=>B<="0000000";
ENDCASE;
ENDPROCESS;
ENDbehavioral;
(2)8421码转换为格雷码的代码转换器
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYtransIS
PORT(
A:
INSTD_LOGIC_VECTOR(3downto0);
B:
OUTSTD_LOGIC_VECTOR(3downto0)
);
ENDtrans;
ARCHITECTUREtranOFtransIS
BEGIN
PROCESS(A)
BEGIN
CASEAIS
WHEN"0000"=>B<="0000";
WHEN"0001"=>B<="0001";
WHEN"0010"=>B<="0011";
WHEN"0011"=>B<="0010";
WHEN"0100"=>B<="0110";
WHEN"0101"=>B<="0111";
WHEN"0110"=>B<="0101";
WHEN"0111"=>B<="0100";
WHEN"1000"=>B<="1100";
WHEN"1001"=>B<="1101";
WHEN"1010"=>B<="1111";
WHEN"1011"=>B<="1110";
WHEN"1100"=>B<="1010";
WHEN"1101"=>B<="1011";
WHEN"1110"=>B<="1001";
WHEN"1111"=>B<="1000";
ENDCASE;
ENDPROCESS;
END;
(3)4人表决器
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYvoteIS
PORT(
A:
INSTD_LOGIC_VECTOR(3downto0);
B:
OUTSTD_LOGIC_VECTOR(0downto0)
);
ENDvote;
ARCHITECTUREvote1OFvoteIS
BEGIN
PROCESS(A)
BEGIN
CASEAIS
WHEN"1111"=>B<="1";
WHEN"1110"=>B<="1";
WHEN"1101"=>B<="1";
WHEN"1011"=>B<="1";
WHEN"0111"=>B<="1";
WHENOTHERS=>B<="0";
ENDCASE;
ENDPROCESS;
END;
五、实验仿真波形图及分析
(1)7段数码管译码器
仿真波形图分析:
根据仿真波形,可以确定电路实现了7段数码管译码器的功能,A端输入8421码,B[0]-B[6]对应数码管的a-g端,C端输出为“11111100”,对应点亮DISP1、DISP0。
但我们也可以发现输出B出现了静态功能冒险,要消除该冒险可以加入相应的选通脉冲。
(2)8421码转换为格雷码的代码转换器
仿真波形图分析:
根据仿真波形,可以确定电路实现了8421码转换为格雷码的代码转换器。
A端输入8421码,B端输出格雷码。
但我们也可以发现输出B出现了静态功能冒险,要消除该冒险可以加入相应的选通脉冲。
(3)4人表决器
仿真波形图分析:
根据仿真波形,可以确定电路实现了4人表决器的功能。
当A[3]-A[0]中有多于2个的高电平时,B端输出为高电平。
但我们也可以发现输出B出现了静态功能冒险,要消除该冒险可以加入相应的选通脉冲。
实验3用VHDL设计与实现时序逻辑电路
一、实验目的
(1)熟悉用VHDL语言设计时序逻辑电路的方法;
(2)熟悉用QuartusII文本输入法进行电路设计;
(3)熟悉计数器、分频器的设计与应用。
二、实验所用器材
(1)计算机;
(2)直流稳压电源;
(3)数字系统与逻辑设计实验开发板。
三、实验任务要求
(1)用VHDL语言设计实现一个分频系数为12,分频输出信号占空比为50%的分频器。
要求在QuartusII平台上设计程序并仿真验证设计。
(2)用VHDL语言设计实现一个带异步复位的十进制计数器,仿真验证其功能,并下载到实验板测试。
要求用时钟作为输入信号,7段数码管显示输出信号。
四、模块端口说明及连接图
(2)十进制计数器
本实验使用单一文件编写,未区分底层与顶层,未使用元件例化语句,没有连接图。
端口说明:
cp:
时钟输入端
clear:
异步复位端
A:
数码管选通端
B:
数码管显示信号
五、VHDL代码
(1)分频器
libraryieee;
useieee.std_logic_1164.all;
entityfenpinqi12is
port(clkin:
instd_logic;--时钟信号输入
clkout:
outstd_logic);--时钟信号输出
endfenpinqi12;
architecturearoneMHZoffenpinqi12is
signaldata:
integerrange0to10;
signalQ:
std_logic;
begin
process(clkin)
begin
ifrising_edge(clkin)then
if(data=5)then
data<=0;
Q<=notQ;
else
data<=data+1;
endif;
endif;
clkout<=Q;
endprocess;
endaroneMHZ;
(2)十进制计数器
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYBCDcoderIS
PORT(
cp,clear:
INSTD_LOGIC;
A:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
B:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDBCDcoder;
ARCHITECTUREaOFBCDcoderIS
SIGNALtemp:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALtmp:
INTEGERRANGE0TO49999999;
SIGNALclk_out:
STD_LOGIC;
BEGIN
A<="10111111";
P1:
PROCESS(cp)
BEGIN
IFcp'eventANDcp='1'THEN
IFtmp=49999999
THEN
tmp<=0;
ELSE
tmp<=tmp+1;
ENDIF;
IFtmp<=24999999
THEN
clk_out<='0';
ELSE
clk_out<='1';
ENDIF;
ENDIF;
ENDPROCESSP1;
P2:
PROCESS(clear,clk_out)
BEGIN
IFclear='1'THENtemp<="0000";
ELSIF(clk_out'eventandclk_out='1')THEN
IFtemp="1001"THEN
temp<="0000";
ELSE
temp<=temp+1;
ENDIF;
ENDIF;
ENDPROCESSP2;
P3:
PROCESS(temp)BEGIN
CASEtempIS
WHEN"0000"=>B<="1111110";--0
WHEN"0001"=>B<="0110000";--1
WHEN"0010"=>B<="1101101";--2
WHEN"0011"=>B<="1111001";--3
WHEN"0100"=>B<="0110011";--4
WHEN"0101"=>B<="1011011";--5
WHEN"0110"=>B<="1011111";--6
WHEN"0111"=>B<="1110000";--7
WHEN"1000"=>B<="1111111";--8
WHEN"1001"=>B<="1111011";--9
WHENOTHERS=>B<="0000000";
ENDCASE;
ENDPROCESSP3;
ENDa;
六、实验仿真波形图及分析
(1)分频器
仿真波形图分析:
根据仿真波形,可以确定电路实现了分频器的功能。
分频系数为12,占空比为50%。
(2)十进制计数器
仿真波形图分析:
为了仿真效率,将分频器的分频系数降低为2。
根据仿真波形,可以确定电路实现了十进制计数器的功能,cp端输入时钟信号,B[0]-B[6]对应数码管的a-g端,A端输出为“10111111”,对应点亮DISP6。
但我们也可以发现输出B出现了静态功能冒险,要消除该冒险可以加入相应的选通脉冲。
实验4用VHDL设计与实现数码管动态扫描控制器
一、实验目的
(1)熟悉用VHDL语言设计时序逻辑电路的方法;
(2)熟悉用QuartusII文本输入法进行电路设计;
(3)熟悉计数器、分频器的设计与应用。
二、实验所用器材
(1)计算机;
(2)直流稳压电源;
(3)数字系统与逻辑设计实验开发板。
三、实验任务要求
(1)用VHDL语言设计并实现八个数码管串行扫描电路,要求同时显示0、1、2、3、4、5、6、7这八个不同的数字图形到八个数码管上,仿真验证其功能,并下载到实验板测试。
(2)用VHDL语言设计并实现八个数码管滚动显示电路。
①循环左滚动,始终点亮八个数码管,左出右进。
状态为:
01234567→12345670→23456701→34567012→45670123→56701234→67012345→70123456→01234567
②向左滚动,用全灭的数码管充右边,直至全部变灭,然后再依次从右边一个一个地点亮。
状态为:
01234567→1234567X→234567XX→34567XXX→4567XXXX→567XXXXX→67XXXXXX→7XXXXXXX→XXXXXXXX→XXXXXXX0→XXXXXX01→XXXXX012→XXXX0123→XXX01234→XX012345→X0123456→01234567,其中‘X’表示数码管不显示。
四、模块端口说明及连接图
本实验使用单一文件编写,未区分底层与顶层,未使用元件例化语句,没有连接图。
(1)数码管串行扫描电路
端口说明:
cp:
时钟输入端
cat:
数码管选通信号
B:
数码管显示信号
(2)数码管滚动显示电路
①循环左滚动
端口说明:
cp:
时钟输入端
cat:
数码管选通信号
B:
数码管显示信号
②向左滚动
端口说明:
cp:
时钟输入端
cat:
数码管选通信号
B:
数码管显示信号
五、VHDL代码
(1)数码管串行扫描电路
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYshow0_7IS
PORT(
cp:
INSTD_LOGIC;
cat:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
B:
OUTSTD_LOGIC_VECTOR(0to6));
ENDshow0_7;
ARCHITECTUREaOFshow0_7IS
signalclk:
STD_LOGIC;
signaltemp:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALtmp:
INTEGERRANGE0TO49999;
begin
P1:
PROCESS(cp)
BEGIN
IFcp'eventANDcp='1'THEN
IFtmp=49999
THEN
tmp<=0;
ELSE
tmp<=tmp+1;
ENDIF;
IFtmp<=24999
THEN
clk<='0';
ELSE
clk<='1';
ENDIF;
ENDIF;
ENDPROCESSP1;
P2:
process(clk)
begin
IF(clk'eventandclk='1')THEN
IFtemp="0111"THEN
temp<="0000";
ELSE
temp<=temp+1;
ENDIF;
ENDIF;
ENDPROCESSP2;
P3:
process(temp)
begin
CASEtempIS
WHEN"0000"=>B<="1111110";--0
WHEN"0001"=>B<="0110000";--1
WHEN"0010"=>B<="1101101";--2
WHEN"0011"=>B<="1111001";--3
WHEN"0100"=>B<="0110011";--4
WHEN"0101"=>B<="1011011";--5
WHEN"0110"=>B<="1011111";--6
WHEN"0111"=>B<="1110000";--7
WHEN"1000"=>B<="1111111";--8
WHEN"1001"=>B<="1111011";--9
WHENOTHERS=>B<="0000000";
ENDCASE;
ENDPROCESSP3;
P4:
process(temp)
begin
CASEtempIS
WHEN"0000"=>cat<="11111110";--0
WHEN"0001"=>cat<="11111101";--1
WHEN"0010"=>cat<="11111011";--2
WHEN"0011"=>cat<="11110111";--3
WHEN"0100"=>cat<="11101111";--4
WHEN"0101"=>cat<="11011111";--5
WHEN"0110"=>cat<="10111111";--6
WHEN"0111"=>cat<="01111111";--7
WHENOTHERS=>cat<="11111111";
ENDCASE;
ENDPROCESSP4;
ENDa;
(2)数码管滚动显示电路
①循环左滚动
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYcycle0_7IS
PORT(
cp:
INSTD_LOGIC;
cat:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
B:
OUTSTD_LOGIC_VECTOR(0to6));
ENDcycle0_7;
ARCHITECTUREaOFcycle0_7IS
signalclk:
STD_LOGIC;
signaltemp:
INTEGERRANGE0TO7;
SIGNALtmp:
INTEGERRANGE0TO49999;
SIGNALtmp2:
INTEGERRANGE0TO999;
SIGNALround:
INTEGERRANGE0TO7;
begin
P1:
PROCESS(cp)
BEGIN
IFcp'eventANDcp='1'THEN
IFtmp=49999
THEN
tmp<=0;
ELSE
tmp<=tmp+1;
ENDIF;
IFtmp<=24999
THEN
clk<='0';
ELSE
clk<='1';
ENDIF;
ENDIF;
ENDPROCESSP1;
P5:
PROCESS(clk)
BEGIN
IFclk'eventANDclk='1'THEN
IFtmp2=999
THEN
tmp2<=0;
IFround=7
THEN
round<=0;
ELSE
round<=round+1;
ENDIF;
ELSE
tmp2<=tmp2+1;
ENDIF;
ENDIF;
ENDPROCESSP5;
P2:
process(clk)
begin
IF(clk'event
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字电路 逻辑设计 实验 报告