北邮-数字电路与逻辑设计实验-实验报告(上)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京邮电大学电路实验中心<数字电路与逻辑设计实验(上)>
实
验
报
告
班级: xxxx
学院: xxx
实验室: xxx 审阅教师:姓名(班内序号): xxx 学号: xxx
实验时间: xxx
评定成绩:
目录
实验1 Quartus II 原理图输入法设计与实现 (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)
实验1 Quartus II 原理图输入法设计与实现
一、实验目的
(1)熟悉用Quartus II原理图输入法进行电路设计和仿真;
(2)掌握Quartus II 图形模块单元的生成与调用;
(3)熟悉实验板的使用。
二、实验所用器材
(1)计算机;
(2)直流稳压电源;
(3)数字系统与逻辑设计实验开发板。
三、实验任务要求
(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。
(2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。
(3)用3线-8线译码器(74LS138)和逻辑门设计实现函数F=C ̅B ̅A ̅+C ̅B A ̅+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 ̅B A ̅+CB ̅A ̅+CBA,当且仅当CBA输入为000、010、100、111时,
F=1,可知电路实现了函数F=C ̅B ̅A ̅+C ̅B A ̅+CB ̅A ̅+CBA。
实验2 用VHDL 设计与实现组合逻辑电路
一、实验目的
(1)熟悉用VHDL语言设计组合逻辑电路和时序电路的方法;
(2)熟悉用Quartus II文本输入法进行电路设计;
(3)熟悉不同的编码及其之间的转换。
二、实验所用器材
(1)计算机;
(2)直流稳压电源;
(3)数字系统与逻辑设计实验开发板。
三、实验任务要求
(1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,7段数码管显示输出信号。
(2)用VHDL语言设计实现一个8421码转换为格雷码的代码转换器,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。
(3)用VHDL语言设计实现一个4人表决器,多数人赞成决议则通过,否则决议不通过,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。
四、VHDL代码
(1)7段数码管译码器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY smgymq IS
PORT(
A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B:OUT STD_LOGIC_VECTOR(0 TO 6);
C:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END smgymq;
ARCHITECTURE behavioral OF smgymq IS BEGIN
PROCESS(A) BEGIN C<="11111100";
CASE A IS
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
WHEN OTHERS=> B<="0000000"; END CASE;
END PROCESS;
END behavioral;
(2)8421码转换为格雷码的代码转换器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY trans IS
PORT(
A:IN STD_LOGIC_VECTOR(3 downto 0); B:OUT STD_LOGIC_VECTOR(3 downto 0) );
END trans;
ARCHITECTURE tran OF trans IS BEGIN
PROCESS(A)
BEGIN
CASE A IS
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";
END CASE;
END PROCESS;
END;
(3)4人表决器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY vote IS
PORT(
A:IN STD_LOGIC_VECTOR(3 downto 0); B:OUT STD_LOGIC_VECTOR(0 downto 0) );
END vote;
ARCHITECTURE vote1 OF vote IS BEGIN
PROCESS(A)