2016年北邮数电实验报告

合集下载

北邮数字电路综合实验报告

北邮数字电路综合实验报告

数字电路综合实验报告简易智能密码锁一、实验课题及任务要求设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。

基本要求:1、密码设置:通过键盘进行4 位数字密码设定输入,在数码管上显示所输入数字。

通过密码设置确定键(BTN 键)进行锁定。

2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。

输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。

3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。

闭锁状态下不能清除密码。

4、用点阵显示开锁和闭锁状态。

提高要求:1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。

2、密码锁的密码位数(4~6 位)可调。

3、自拟其它功能。

二、系统设计2.1系统总体框图2.2逻辑流程图2.3MDS图2.4分块说明程序主要分为6个模块:键盘模块,数码管模块,点阵模块,报警模块,防抖模块,控制模块。

以下进行详细介绍。

1.键盘模块本模块主要完成是4×4键盘扫描,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。

键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出高电平,在读入输出的行值时,通常高电平会被低电平拉低,当当前位置为高电平“1”时,没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。

同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。

北邮数字电路综合实验报告

北邮数字电路综合实验报告

数字电路综合实验报告简易智能密码锁一、实验课题及任务要求设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。

基本要求:1、密码设置:通过键盘进行 4 位数字密码设定输入,在数码管上显示所输入数字。

通过密码设置确定键(BTN 键)进行锁定。

2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。

输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。

3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。

闭锁状态下不能清除密码。

4、用点阵显示开锁和闭锁状态。

提高要求:1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。

2、密码锁的密码位数(4~6 位)可调。

3、自拟其它功能。

二、系统设计2.1系统总体框图2.2逻辑流程图2.3MDS图2.4分块说明程序主要分为6个模块:键盘模块,数码管模块,点阵模块,报警模块,防抖模块,控制模块。

以下进行详细介绍。

1.键盘模块本模块主要完成是4×4键盘扫描,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。

键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出高电平,在读入输出的行值时,通常高电平会被低电平拉低,当当前位置为高电平“1”时,没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。

同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。

北邮2016通信原理硬件实验报告

北邮2016通信原理硬件实验报告

北邮2016通信原理硬件实验报告电子工程学院通信原理硬件实验报告指导教师:实验日期:目录实验一双边带抑制载波条幅 (3)实验二:具有离散大载波的双边带调幅 (8)实验六:眼图 (13)实验七:采样、判决 (14)实验八:二进制通断键控 (17)实验十二:低通信号的采样与重建 (20)实验总结 (24)实验一双边带抑制载波条幅(DSB-SC AM)一、实验目的(1)了解DSB-SC AM信号的产生以及相干解调的原理和实现方法;(2)了解DSB-SC AM信号波形以及振幅频谱特点,并掌握其测量方法;(3)了解在发送DSB-SC AM 信号加导频分量的条件下,收端用锁相环提取载波的原理及其实现方法;(4)掌握锁相环的同步带和捕捉带的测量方法,掌握锁相环提取载波的调试方法。

二、实验原理AM信号的产生及相干解调原理框图如图1.1(输出图1.1由图知,锁相环乘法器的输出为:经过锁相环反馈,相干解调时与恢复载波想成,则,经过LPF、隔直流后,输出为.四、实验步骤SC-DSB 信号的数学表达式为s(t)=Acm(t)cos(Wct),这个实验产生SC-DSB 的方法很简单,就是用载波跟调制信号直接相乘,其中载波是由主振荡器产生为幅度为1V,频率为100KHZ的正弦波,而调制信号由音频振荡器产生的正弦信号再经缓冲放大器组成,幅度为1V,频率为1KHZ。

1)按照图连接,将音频振荡器输出的模拟音频信号及主振荡器输出的100KHz模拟载频信号分别用连接线连至乘法器的两个输出端;2)用示波器观看音频输出信号的信号波形的幅度以及振荡频率,调整音频信号的输出频率为10kHz,作为均值为0的调制信号m(t);3)用示波器观看主振荡器输出信号的幅度以及振幅频谱;4)用示波器观看乘法器的输出波形,并注意已调信号波形的相位翻转与已调信号波形;5)测量已调信号的波形频谱,注意其振幅频谱的特点;6)调整增益G=1:将加法器的B 输出端接地,A 输入端接已调信号,用示波器观看加法器的输出波形以及振幅频谱,使加法器输入与加法器输出幅度一致;7)调整增益g;加法器A 端接已调信号,B 接导频信号。

北邮数电实验报告

北邮数电实验报告

北邮数电实验报告北邮数电实验报告一、引言数电实验是电子信息类专业学生必修的一门实验课程,通过实践操作,帮助学生巩固理论知识,培养实际动手能力。

本次实验旨在通过设计和搭建一个简单的数字电路,来理解数字电路的基本原理和工作方式。

二、实验目的本次实验的目的是设计一个4位二进制加法器,实现两个4位二进制数的相加运算。

通过实验,我们可以加深对于数字电路的理解,掌握数字电路的设计和搭建方法。

三、实验原理1. 二进制加法器二进制加法器是一种用于计算二进制数相加的数字电路。

它由若干个逻辑门和触发器组成,可以实现二进制数的加法运算。

在本次实验中,我们将设计一个4位二进制加法器,即可以计算两个4位二进制数的相加结果。

2. 逻辑门逻辑门是数字电路中常用的基本元件,用于实现逻辑运算。

常见的逻辑门有与门、或门、非门、异或门等。

在本次实验中,我们将使用与门和异或门来构建4位二进制加法器。

四、实验步骤1. 设计4位二进制加法器的电路图根据实验要求,我们需要设计一个能够计算两个4位二进制数相加的电路。

首先,我们可以将两个4位二进制数分别用D0~D3和E0~E3表示,其中D0和E0分别为最低位。

然后,我们需要使用与门和异或门来实现加法器的功能。

通过逻辑运算,我们可以得到每一位的和以及进位。

最后,将每一位的和连接起来,即可得到最终的结果。

2. 搭建电路根据电路图,我们可以开始搭建实验电路。

首先,将所需的逻辑门和触发器连接起来,形成一个完整的电路。

然后,将所需的输入信号和电源连接到电路上。

最后,使用示波器等工具检查电路的工作状态,确保电路正常运行。

3. 进行实验测试在搭建好电路后,我们可以进行实验测试。

首先,将两个4位二进制数的输入信号连接到电路上。

然后,通过观察输出信号,判断电路是否正确计算了两个二进制数的相加结果。

如果输出信号与预期结果一致,说明电路设计和搭建成功。

五、实验结果与分析在进行实验测试后,我们可以得到实验结果。

通过观察输出信号,我们可以判断电路是否正确计算了两个二进制数的相加结果。

北邮-数电实验报告

北邮-数电实验报告

北邮-数电实验报告数字电路实验报告学院:信息与通信工程专业:信息工程班级:2013211125学号:2013210681姓名:袁普实验一:QuartusⅡ原理图输入法设计与实现一:实验要求①:用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。

②:用实验一生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。

③:用3线—8线译码器和逻辑门设计实现函数F,仿真验证其功能,下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

二:报告内容①:实验一(2)的原理图用两个已经生成的半加器图形模块单元和一个双输入或门即可实现全加器②:仿真波形图以及分析波形图:波形分析:通过分析ab ci三个输入在8中不同组合下的输出,发现与全加器的真值表吻合,说明实现了全加器的逻辑功能。

同时看见波形中出现了毛刺(冒险),这也与事实一致。

③:故障及问题分析第一次在做全加器的时候发现找不到已经生成的半加器模块,后来发现是因为在建立工程时这两个项目没有建在同一个文件夹里,在调用的时候就找不到。

后来我将全加器工程建在同一个文件夹里解决了此问题。

实验二:用VHDL设计和实现组合逻辑电路一:实验要求①:用VHDL设计一个8421码转换为格雷码的代码转换器,仿真验证其功能。

②:用VHDL设计一个4位二进制奇校验器,要求在为奇数个1时输出为1,偶数个1时输出为0,仿真验证其功能。

③:用VHDL设计一个数码管译码器,仿真验证其功能,下载到实验板测试,要求用拨码开关设定输入信号,数码管显示输出信号,并且只使一个数码管有显示,其余为熄灭状态。

二:故障及问题分析在刚开始实现让一个数码管显示的时候,我本来准备再设置6个输入和输出,通过实验板上的拨码来输入信息分别控制不同的数码管的的开闭状态,但是后来发现这样效率很低而且实验板上的拨码开关数量根本不够。

北邮数电综合实验报告

北邮数电综合实验报告

北邮数电综合实验报告综合实验报告:基于北邮数电实验的电子门禁系统设计与实现摘要:本次实验通过使用北邮数电实验室提供的器件和设备,设计并实现了一个简易的电子门禁系统。

该系统能够通过输入正确的密码或使用合法的身份卡,实现对门禁的控制和管理。

本文将详细介绍系统设计的原理、实验过程和结果,并对实验进行了总结和评价。

一、引言电子门禁系统是当前社会中广泛应用的一种重要安全保障设施。

它通过使用密码、身份卡等识别方式,对人员出入进行控制和管理。

本实验旨在通过北邮数电实验的学习和实践,学习和掌握电子门禁系统的设计与实现。

二、实验器材与原理实验器材:1.键盘2.蜂鸣器3.LCD显示屏4.数码安全码锁5.单片机开发板6.电源模块7.连线模块实验原理:该电子门禁系统的基本原理如下:1.用户通过键盘输入密码或刷合法的身份卡;2.单片机接收到输入的密码或读取身份卡信息;3.单片机对输入的密码或身份卡信息进行核对;5. 若核对失败,则控制蜂鸣器发出门禁错误提示音,并在LCD显示屏上显示“Access Denied”等拒绝信息。

三、实验过程与结果1.按照实验器材的接线要求,将键盘、蜂鸣器和LCD显示屏与开发板连接好;2.根据实验原理,编写相应的控制程序,并将程序烧录到单片机中;3.打开电源模块,开启电子门禁系统;4.用户通过键盘输入密码或刷合法的身份卡;5.系统接收到用户输入并进行核对;7. 核对失败时,蜂鸣器发出门禁错误提示音,LCD显示屏上显示“Access Denied”等拒绝信息。

实验结果显示,该电子门禁系统能够根据用户输入的密码或身份卡信息,进行核对并作出相应的操作。

当核对成功时,系统会解锁门禁并显示欢迎信息;当核对失败时,系统会发出错误提示并拒绝门禁。

四、实验总结本次实验通过设计和实现基于北邮数电实验的电子门禁系统,使得我们更加深入地了解了电子门禁系统的原理和应用。

通过实验,我们学会了利用键盘、蜂鸣器和LCD显示屏等器材,通过单片机控制,实现了一个简易的电子门禁系统。

2016年北邮数电实验报告 (1)

2016年北邮数电实验报告 (1)

数字电路与逻辑设计实验报告学院:电子工程学院班级:姓名:学号:班内序号:目录(一)实验名称及实验任务要求 (1)(二)模块端口说明及连接图 (2)1.1实验三(3)模块端口说明 (2)1.2实验三(3)连接图 (2)2.1实验四模块端口说明 (2)2.2实验四连接图 (2)(三)原理图或VHDL代码 (3)1.实验一(2)原理图 (3)2.实验三(3)VHDL代码 (4)3.实验四VHDL代码 (7)(四)仿真波形 (10)1.实验一(2)仿真波形 (10)2.实验三(3)仿真波形 (11)3.实验四仿真波形 (11)(五)仿真波形分析 (11)1.实验一(2)仿真波形分析 (11)2.实验三(3)仿真波形分析 (11)3.实验四仿真波形分析 (11)(六)故障及问题分析 (12)(七)总结和结论 (13)(一)实验名称及实验任务要求实验一名称:QuartusII原理图输入法设计与实现实验任务要求:EDA基础实验1(1)、(2)、(3)必做,选做VHDL 实现加法器。

实验二名称:用VHDL设计与实现组合逻辑电路实验任务要求:四人表决器、8421码转格雷码、数码管译码器(下载测试)。

实验三名称:用VHDL设计与实现时序逻辑电路实验任务要求:分频器、8421十进制计数器、将分频器/8421十进制计数器/数码管译码器3个电路进行连接并下载。

实验四名称:用VHDL设计与实现相关电路实验任务要求:数码管动态扫描控制器、点阵扫描控制器。

(二)模块端口说明及连接图1.1实验三(3)模块端口说明cp:时钟信号输入;rst:8421十进制计数器异步置位;c[6...0]:七段二极管数码管显示;cat[7...0]:数码管显示。

1.2实验三(3)连接图2.1实验四模块端口说明cp:时钟信号输入;rst:8421计数器异步复位;lgt[6...0]:七段二极管数码管显示;cat[7...0]:数码管显示。

2.2实验四连接图(三)原理图或VHDL代码1.实验一(2)原理图半加器:全加器:2.实验三(3)VHDL代码//分频器部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity div_12 isport(cp: in std_logic;clk1: out std_logic);end div_12;architecture a of div_12 issignal tmp: integer range 0 to 11;beginprocess (cp)beginif (cp'event and cp='1') thenif tmp=11 then tmp<=0;else tmp<=tmp+1;end if;if tmp<=5 then clk1<='0';else clk1<='1';end if;end if;end process;end a;//8421十进制加法器部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity jisuqi8421 isport(clk2,rst: in std_logic;q : out std_logic_vector(3 downto 0));end jisuqi8421;architecture a of jisuqi8421 issignal q_temp:std_logic_vector (3 downto 0); beginprocess(clk2,rst)beginif (rst='1') thenq_temp<="0000";elsif (clk2'event and clk2='1') thenif q_temp>="1001" then q_temp<="0000";elseq_temp<=q_temp+1;end if;end if;end process;q<=q_temp;end a;//译码管部分LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY yimaguan ISPORT(a: IN STD_LOGIC_VECTOR (3 downto 0);b: OUT STD_LOGIC_VECTOR (6 downto 0);cat: out std_logic_vector(7 downto 0));end yimaguan;ARCHITECTURE seg7_1_arch OF yimaguan ISBEGINPROCESS(a)BEGINCASE a ISWHEN"0000" => b <="1111110"; --0WHEN"0001" => b <="0110000"; --1WHEN"0010" => b <="1101101"; --2WHEN"0011" => b <="1111001"; --3WHEN"0100" => b <="0110011"; --4WHEN"0101" => b <="1011011"; --5WHEN"0110" => b <="1011111"; --6WHEN"0111" => b <="1110000"; --7WHEN"1000" => b <="1111111"; --8WHEN"1001" => b <="1111011"; --9WHEN OTHERS => b <="0000000";END CASE;END PROCESS;cat<="11101111";END;//整体显示library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity display isport(cp,rst: in std_logic;c:out std_logic_vector(6 downto 0);cat: out std_logic_vector(7 downto 0));end display;architecture r of display iscomponent div_12port(cp:in std_logic;clk1:out std_logic);end component;component jisuqi8421port(clk2,rst:in std_logic;q:out std_logic_vector(3 downto 0));end component;component yimaguanport(a:in std_logic_vector(3 downto 0);b:out std_logic_vector(6 downto 0);cat: out std_logic_vector(7 downto 0));end component;signal x:std_logic;signal y:std_logic_vector(3 downto 0);beginu1:div_12 port map(cp=>cp,clk1=>x);u2:jisuqi8421 port map(clk2=>x,rst=>rst,q=>y); u3:yimaguan port map(a=>y,b=>c,cat=>cat);end r;3.实验四VHDL代码//分频器分频部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity div isport(cp: in std_logic;clk1: out std_logic);end div;architecture a of div issignal tmp: integer range 0 to 49; beginprocess (cp)beginif (cp'event and cp='1') thenif tmp=49 then tmp<=0;else tmp<=tmp+1;end if;if tmp<=25 then clk1<='0';else clk1<='1';end if;end if;end process;end a;//计数器计数部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity count isport(clk,rst: in std_logic;q : out std_logic_vector(3 downto 0));end count;architecture a of count issignal temp:std_logic_vector (3 downto 0); beginprocess(clk,rst)beginif (rst='1') thentemp<="0000";elsif (clk'event and clk='1') thenif temp>="0101" then temp<="0000";elsetemp<=temp+1;end if;end if;end process;q<=temp;end a;//译码管显示部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity yimaqi isport(a:in std_logic_vector(3 downto 0);led:out std_logic_vector(6 downto 0);cat:out std_logic_vector(7 downto 0));end entity;architecture rtl of yimaqi isbeginprocess(a)begincase a iswhen "0000"=>led<="1111110"; cat<="11111110"; --0when "0001"=>led<="0110000"; cat<="11111101"; --1when "0010"=>led<="1101101"; cat<="11111011"; --2when "0011"=>led<="1111001"; cat<="11110111"; --3when "0100"=>led<="0110011"; cat<="11101111"; --4when "0101"=>led<="1011011"; cat<="11011111"; --5when others=>led<="0000000"; cat<="11111111";end case;end process;end;//合成数码管显示library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity show isport(cp:in std_logic;rst:in std_logic;lgt:out std_logic_vector(6 downto 0);cat:out std_logic_vector(7 downto 0));end entity;architecture rtl of show iscomponent divport(cp : in std_logic;clk1: out std_logic);end component;signal x:std_logic;component countport(clk,rst: in std_logic;q : out std_logic_vector(3 downto 0));end component;signal y:std_logic_vector(3 downto 0);component yimaqiport(a :in std_logic_vector(3 downto 0);led:out std_logic_vector(6 downto 0);cat:out std_logic_vector(7 downto 0));end component;beginu0:div port map (cp=>cp,clk1=>x);u1:count port map(clk=>x,rst=>rst,q=>y);u2:yimaqi port map(a=>y,cat=>cat,led=>lgt); end rtl;(四)仿真波形1.实验一(2)仿真波形2.实验三(3)仿真波形3.实验四仿真波形(五)仿真波形分析1.实验一(2)仿真波形分析a,b,ci均为输入信号,s,co为输出信号其逻辑功能为:s=a xor b xor cico=( ( a xor b ) and ci ) or (a and b ) 2.实验三(3)仿真波形分析rst,cp均为输入信号,c,cat为输出信号。

北邮数电实验报告

北邮数电实验报告

北京邮电大学实验报告实验名称: 数电电路与逻辑设计实验学院:信息与通信工程学院班 级: 姓 名: 学 号: 班内序号:日期:一. 实验一:QuartusII 原理图输入法设计1. 实验名称和实验任务要求(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块 元。

(2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号入信号。

(3)用3线-8线译码器(74LS138)和逻辑门设计实现函数F=A B C +A B C +AB C +A B C 。

2.实验原理图及波形图(1)半加器(2)全加器(3)74LS383.仿真波形图分析(1)半加器:输入为a,b,输出S,CO(进位)。

当ab都为0时,半加和s=0,进位端co=0。

当ab都为1时,半加和s=0,进位端co=1。

当a=1,b=0或a=0,b=1时,半加和s=1,进位端co=0。

(2)全加器:输入a,b,输出S,CO(进位),ci(低进位)。

当a=0,b=0,ci=0,输出s=0,co=0。

当a=0,b=1或a=1,b=0又ci=0,输出s=1,co=0。

当a=0,b=0,ci=1,输出s=1,co=0。

(3)74LS138输入A,B,C,输出为3。

四个输出对应F中的四个最小项,Y0、Y2、Y4、Y7,以实现函数功能。

二.实验二:用VHDL设计与实现组合逻辑电路1.实验名称和实验任务要求(1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能。

要求用拨码开关设定输入信号,7段数码管显示输出信号。

(2)用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

(3)用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个’1’时,输出为’1’,否则输出’0’,仿真验证其功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字电路与逻辑设计实验报告学院:电子工程学院班级:姓名:学号:班内序号:目录(一)实验名称及实验任务要求 (1)(二)模块端口说明及连接图 (2)1.1实验三(3)模块端口说明 (2)1.2实验三(3)连接图 (2)2.1实验四模块端口说明 (2)2.2实验四连接图 (2)(三)原理图或VHDL代码 (3)1.实验一(2)原理图 (3)2.实验三(3)VHDL代码 (4)3.实验四VHDL代码 (7)(四)仿真波形 (10)1.实验一(2)仿真波形 (10)2.实验三(3)仿真波形 (11)3.实验四仿真波形 (11)(五)仿真波形分析 (11)1.实验一(2)仿真波形分析 (11)2.实验三(3)仿真波形分析 (11)3.实验四仿真波形分析 (11)(六)故障及问题分析 (12)(七)总结和结论 (13)(一)实验名称及实验任务要求实验一名称:QuartusII原理图输入法设计与实现实验任务要求:EDA基础实验1(1)、(2)、(3)必做,选做VHDL 实现加法器。

实验二名称:用VHDL设计与实现组合逻辑电路实验任务要求:四人表决器、8421码转格雷码、数码管译码器(下载测试)。

实验三名称:用VHDL设计与实现时序逻辑电路实验任务要求:分频器、8421十进制计数器、将分频器/8421十进制计数器/数码管译码器3个电路进行连接并下载。

实验四名称:用VHDL设计与实现相关电路实验任务要求:数码管动态扫描控制器、点阵扫描控制器。

(二)模块端口说明及连接图1.1实验三(3)模块端口说明cp:时钟信号输入;rst:8421十进制计数器异步置位;c[6...0]:七段二极管数码管显示;cat[7...0]:数码管显示。

1.2实验三(3)连接图2.1实验四模块端口说明cp:时钟信号输入;rst:8421计数器异步复位;lgt[6...0]:七段二极管数码管显示;cat[7...0]:数码管显示。

2.2实验四连接图(三)原理图或VHDL代码1.实验一(2)原理图半加器:全加器:2.实验三(3)VHDL代码//分频器部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all; entity div_12 isport(cp: in std_logic;clk1: out std_logic);end div_12;architecture a of div_12 issignal tmp: integer range 0 to 11;beginprocess (cp)beginif (cp'event and cp='1') thenif tmp=11 then tmp<=0;else tmp<=tmp+1;end if;if tmp<=5 then clk1<='0';else clk1<='1';end if;end if;end process;end a;//8421十进制加法器部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity jisuqi8421 isport(clk2,rst: in std_logic;q: out std_logic_vector(3 downto 0));end jisuqi8421;architecture a of jisuqi8421 issignal q_temp:std_logic_vector (3 downto 0); beginprocess(clk2,rst)beginif (rst='1') thenq_temp<="0000";elsif (clk2'event and clk2='1') thenif q_temp>="1001" then q_temp<="0000";elseq_temp<=q_temp+1;end if;end if;end process;q<=q_temp;end a;//译码管部分LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY yimaguan ISPORT(a: IN STD_LOGIC_VECTOR (3 downto 0);b: OUT STD_LOGIC_VECTOR (6 downto 0);cat: out std_logic_vector(7 downto 0));end yimaguan;ARCHITECTURE seg7_1_arch OF yimaguan ISBEGINPROCESS(a)BEGINCASE a ISWHEN"0000" => b <="1111110"; --0WHEN"0001" => b <="0110000"; --1WHEN"0010" => b <="1101101"; --2WHEN"0011" => b <="1111001"; --3WHEN"0100" => b <="0110011"; --4WHEN"0101" => b <="1011011"; --5WHEN"0110" => b <="1011111"; --6WHEN"0111" => b <="1110000"; --7WHEN"1000" => b <="1111111"; --8WHEN"1001" => b <="1111011"; --9WHEN OTHERS => b <="0000000";END CASE;END PROCESS;cat<="11101111";END;//整体显示library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity display isport(cp,rst: in std_logic;c:out std_logic_vector(6 downto 0);cat: out std_logic_vector(7 downto 0));end display;architecture r of display iscomponent div_12port(cp:in std_logic;clk1:out std_logic);end component;component jisuqi8421port(clk2,rst:in std_logic;q:out std_logic_vector(3 downto 0));end component;component yimaguanport(a:in std_logic_vector(3 downto 0);b:out std_logic_vector(6 downto 0);cat: out std_logic_vector(7 downto 0));end component;signal x:std_logic;signal y:std_logic_vector(3 downto 0);beginu1:div_12 port map(cp=>cp,clk1=>x);u2:jisuqi8421 port map(clk2=>x,rst=>rst,q=>y); u3:yimaguan port map(a=>y,b=>c,cat=>cat); end r;3.实验四VHDL代码//分频器分频部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity div isport(cp: in std_logic;clk1: out std_logic);end div;architecture a of div issignal tmp: integer range 0 to 49;beginprocess (cp)beginif (cp'event and cp='1') thenif tmp=49 then tmp<=0;else tmp<=tmp+1;end if;if tmp<=25 then clk1<='0';else clk1<='1';end if;end if;end process;end a;//计数器计数部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity count isport(clk,rst: in std_logic;q: out std_logic_vector(3 downto 0));end count;architecture a of count issignal temp:std_logic_vector (3 downto 0); beginprocess(clk,rst)beginif (rst='1') thentemp<="0000";elsif (clk'event and clk='1') thenif temp>="0101" then temp<="0000";elsetemp<=temp+1;end if;end if;end process;q<=temp;end a;//译码管显示部分library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity yimaqi isport(a:in std_logic_vector(3 downto 0);led:out std_logic_vector(6 downto 0);cat:out std_logic_vector(7 downto 0));end entity;architecture rtl of yimaqi isbeginprocess(a)begincase a iswhen "0000"=>led<="1111110"; cat<="11111110"; --0when "0001"=>led<="0110000"; cat<="11111101"; --1when "0010"=>led<="1101101"; cat<="11111011"; --2when "0011"=>led<="1111001"; cat<="11110111"; --3when "0100"=>led<="0110011"; cat<="11101111"; --4when "0101"=>led<="1011011"; cat<="11011111"; --5when others=>led<="0000000"; cat<="11111111";end case;end process;end;//合成数码管显示library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity show isport(cp:in std_logic;rst:in std_logic;lgt:out std_logic_vector(6 downto 0);cat:out std_logic_vector(7 downto 0));end entity;architecture rtl of show iscomponent divport(cp : in std_logic;clk1: out std_logic);end component;signal x:std_logic;component countport(clk,rst: in std_logic;q: out std_logic_vector(3 downto 0));end component;signal y:std_logic_vector(3 downto 0); component yimaqiport(a :in std_logic_vector(3 downto 0);led:out std_logic_vector(6 downto 0);cat:out std_logic_vector(7 downto 0));end component;beginu0:div port map (cp=>cp,clk1=>x);u1:count port map(clk=>x,rst=>rst,q=>y);u2:yimaqi port map(a=>y,cat=>cat,led=>lgt); end rtl;(四)仿真波形1.实验一(2)仿真波形2.实验三(3)仿真波形3.实验四仿真波形(五)仿真波形分析1.实验一(2)仿真波形分析a,b,ci均为输入信号,s,co为输出信号其逻辑功能为:s=a xor b xor cico=( ( a xor b ) and ci ) or (a and b )2.实验三(3)仿真波形分析rst,cp均为输入信号,c,cat为输出信号。

相关文档
最新文档