北邮数字电路与逻辑设计实验报告_北邮数字逻辑实验报告

2020-02-27 其他范文 下载本文

北邮数字电路与逻辑设计实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“北邮数字逻辑实验报告”。

北京邮电大学数字电路与逻辑

设计实验报告

学院: 班级:

姓名:

学号:

实验一 Quartus II原理图输入法设计与实现

一、实验目的:

(1)熟悉Quartus II原理图输入法进行电路设计和仿真;(2)掌握Quartus II 图形模块单元的生成与调用;(3)熟悉实验板的使用;

二、实验所用器材:

(1)计算机;

(2)直流稳压电源;

(3)数字系统与逻辑设计实验开发板。

三、实验任务要求

(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。

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

(3)用3线-8线译码器(74LS138)和逻辑门设计实现函数 ,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。

四、实验原理图及仿真波形图

(1)半加器

半加器原理图

仿真波形

仿真波形图分析:根据仿真波形对比半加器真值表,可以确定电路实现了半加器的功能。但我们也可以发现输出SO出现了静态功能冒险,要消除该冒险可以加入相应的选通脉冲。

(2)全加器

全加器原理图

仿真波形

仿真波形图分析 :根据仿真波形对比半加器真值表,可以确定电路实现了全加器的功能

(2)

74138 3线-8线译码器 原理图

仿真波形图

仿真波形图分析;当且仅当ABC输入为000、010、100、111时,F=1,可知电路实现了函数。

实验二 用VHDL设计与实现组合逻辑电路

一、实验目的:

(1)熟悉用VHDL语言设计时序逻辑电路的方法;(2)熟悉用Quartus II文本输入法进行电路设计;(3)熟悉不同的编码及其之间的转换。

二、实验所用器材:

(1)计算机;

(2)直流稳压电源;

(3)数字系统与逻辑设计实验开发板。

三、实验任务要求

(1)用 VHDL语言设计实现一个共阴极7段数码管译码器;(2)用VHDL语言设计一个8421码转余三码的代码转换器;(3)用VHDL语言设计设计一个四位2进制奇校验器。

四、实验代码及仿真波形图

数码管译码器 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY shumaguanyimaqi IS

PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

B:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);

C:OUT STD_LOGIC_VECTOR(5 DOWNTO 0));END shumaguanyimaqi;

ARCHITECTURE encoder_arch OF shumaguanyimaqi IS BEGIN

PROCESS(A)BEGIN

C

WHEN“0000”=> B B B B B B B B B B B

仿真波形分析:A是输入,A0-A3是由低位到高位变化,B是数码管的各个部分,随着A输入的变化,B数码管对应译码出相应的数字显示出来。

8421码转余三码 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY jxhyusanma IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

B:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END jxhyusanma;

ARCHITECTURE trans_ex3 OF jxhyusanma IS BEGIN

PROCESS(A)BEGIN CASE A IS

WHEN“0000”=> B B B B B B B B B B B

仿真波形分析:8421码转换余三码,由0111转换成为了1010可以看出功能已经实现,仿真验证了代码功能正确。奇校验

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;ENTITY jxhjijiaoyan IS PORT(A:STD_LOGIC;

B:STD_LOGIC;

C:STD_LOGIC;

D:STD_LOGIC;

F:OUT STD_LOGIC);END jxhjijiaoyan;

ARCHITECTURE one OF jxhjijiaoyan IS

SIGNAL n1,n2 : STD_LOGIC;BEGIN

n1

n2

F

仿真波形分析:当ABCD为1111时,输出F为0,ABCD为1110时,输出F为1,可见奇校验功能得以实现。

实验三 用VHDL设计与实现时序逻辑电路

一、实验目的:

(1)熟悉用VHDL语言设计时序逻辑电路的方法;(2)熟悉用Quartus II文本输入法进行电路设计;(3)熟悉不同的编码及其之间的转换。

二、实验所用器材:

(1)计算机;

(2)直流稳压电源;

(3)数字系统与逻辑设计实验开发板。

三、实验任务要求

(1)用 VHDL语言设计实现一个8421十进制计数器;(2)用VHDL语言设计一个分频器;(3)将(1)、(2)和数码管译码器3个电路进行连接,并下载到实验板显示计数结果。

四、实验代码及仿真波形图

8421十进制计数器 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jxhshijinzhijishuqi IS PORT(clk,reset:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END jxhshijinzhijishuqi;ARCHITECTURE a OF jxhshijinzhijishuqi IS SIGNAL q_temp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(clk,reset)BEGIN IF reset='0' THEN q_temp

仿真波形图分析:8421十进制计数器随着时钟的信号进行计数,restart是复位,当复位为零的时候计数器重新计数。根据仿真结果来看,8421十进制计数器功能得以实现。

分频器

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jxhfenpinqi IS PORT(clk:IN STD_LOGIC;clear:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END jxhfenpinqi;ARCHITECTURE a OF jxhfenpinqi IS SIGNAL temp:INTEGER RANGE 0 TO 11;BEGIN p1:PROCESS(clear,clk)BEGIN IF clear='0'THEN temp

仿真波形分析:分频器将频率分开,置零端正常工作,根据仿真波形可以看出来,分频器的功能得以正常实现。

组合电路

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jxhfenpinqi IS PORT(clk:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END jxhfenpinqi;ARCHITECTURE behave OF jxhfenpinqi IS SIGNAL temp:INTEGER RANGE 0 TO 24999999;SIGNAL clktmp:STD_LOGIC;BEGIN

PROCESS(clk)

BEGIN

IF clk'event AND clk='1' THEN

IF temp=24999999 THEN

temp

ELSE

temp

END IF;

END IF;

END PROCESS;

clk_out

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY jxhshijinzhi IS

PORT(CLK,CLEAR:IN STD_LOGIC;

Q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

END jxhshijinzhi;

ARCHITECTURE A OF jxhshijinzhi IS SIGNAL Q_TEMP:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(CLK,clear)BEGIN IF CLEAR='1'THEN

Q_TEMP

IF Q_TEMP=“1001”THEN

Q_TEMP

ELSE

Q_TEMP

END IF;END IF;END PROCESS;Q

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jxhshumaguan IS PORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

b:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

c:OUT STD_LOGIC_VECTOR(5 DOWNTO 0));

END jxhshumaguan;ARCHITECTURE seg7_arch OF jxhshumaguan IS BEGIN PROCESS(a)BEGIN cbbbbbbbbbbb

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY jxhzuhedianlu IS PORT(ain:IN STD_LOGIC;bin:IN STD_LOGIC;cout:OUT STD_LOGIC_VECTOR(7 downto 0);cat:OUT STD_LOGIC_VECTOR(5 downto 0));end jxhzuhedianlu;ARCHITECTURE behave OF jxhzuhedianlu IS COMPONENT jxhfenpinqi PORT(clk:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END COMPONENT;COMPONENT jxhshijinzhi PORT(clk,clear:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 downto 0));END COMPONENT;COMPONENT jxhshumaguan PORT(a:IN STD_LOGIC_VECTOR(3 downto 0);b:OUT STD_LOGIC_VECTOR(7 downto 0);c:OUT STD_LOGIC_VECTOR(5 downto 0));end COMPONENT;SIGNAL d:STD_LOGIC;SIGNAL f:STD_LOGIC_VECTOR(3 downto 0);BEGIN u1:jxhfenpinqi PORT MAP(clk=>ain,clk_out=>d);u2:jxhshijinzhi PORT MAP(clk=>d,clear=>bin,q=>f);u3:jxhshumaguan PORT MAP(a=>f,b=>cout,c=>cat);END behave;端口的绑定:

端口分析:Ain是时钟信号的输入绑定了18串口,bin是置零信号绑定了20 串口,cat5-0是每个数码管各自的绑定,根据板子上的串口数字绑定,cout7-0是数码管的每一个亮的部分,根据板子上的提示串口进行绑定,根据编程可以实现让数码管显示不同的数字。电路图:

代码中是使用PORT MAP 进行连接的u1:jxhfenpinqi PORT MAP(clk=>ain,clk_out=>d);u2:jxhshijinzhi PORT MAP(clk=>d,clear=>bin,q=>f);u3:jxhshumaguan PORT MAP(a=>f,b=>cout,c=>cat);在此图中可以看出ain接分频器的clk,分频器的clk_out接十进制译码器的CLK,bin接十进制译码器的CLEAR,十进制译码器的Q接数码管的a,数码管的b,c分别接count和cat。

实验四 数码管扫描显示控制器设计与实现

一、实验目的:

1.掌握VHDL语言的语法规范,掌握时序电路描述方法。

2.掌握多个数码管动态扫描现实的原理及设计方法。

二、实验所用器材:

1.计算机:装有Quartus软件,为VHDL语言提供操作场所。

2.直流稳压电源:通过USB接口实现,为实验开发板提供稳定电源。3.数字系统与逻辑设计实验开发板:使试验结果下载到开发板上,实现整个实验的最终结果。

三、实验任务要求

1.用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示0、1、2、3、4、5这6个不同的数字图形到6个数码管上。

2.用VHDL语言设计并实现六个数码管滚动显示电路。

(1)循环左滚动,始终点亮6个数码管,左出右进。状态为:012345→123450→234501→345012→450123→501234→012345(2)向左滚动,用全灭的数码管填充右边,直至全部变灭,然后再一次从右边一个一个的点亮。状态为012345→12345X→2345XX→345XXX→45XXXX→5XXXXX→XXXXXX→XXXXX0→XXXX01→XXX012→XX0123→X01234→012345,其中“X”表示数码管不显示。

四、实验原理

多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环依次点亮多个数码管,利用人眼的视觉暂留现象,只要扫描的频率大于50HZ,将看不到闪烁现象。如下图10-1,是多个数码管动态扫描显示的电路连接图。

当闪烁显示的发光二极管闪烁频率较高时我们将观察到持续点亮的现象。同理,当多个数码管依次显示,当切换速度够快时,我们将观察到所有数码管都是同事在显示。一个数码管要稳定显示要求显示频率>50hz,那么6个数码管则需要50*6=300hz以上才能看到持续稳定点亮的现象。

cat1~cat6是数码管选通控制信号,分别对应于6个共阴极数码管的公共端,当catn=’0’时,其对应的数码管被点亮。因此,通过控制cat1~cat6,就可以控制6个数码管循环依次点亮。

五、代码及仿真波形图

1.实现六个数码管串行扫描电路的思路及代码: 串行数码管 library ieee;

use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jxhchuanxing is port(clear,clk_in:in std_logic;

num:out std_logic_vector(6 downto 0);

cat:out std_logic_vector(5 downto 0));end jxhchuanxing;

architecture one of jxhchuanxing is

signal status:integer range 0 to 6;begin

proce(clk_in)begin

if clear='0' then status

elsif(clk_in'event and clk_in='1')then

if status=6 then status

else status

end if;

end if;

end proce;

proce(status)

begin case status is

when 1 => num

when 2 => num

when 3 => num

when 4 => num

when 5 => num

when 6 => num

when others =>num

end case;

end proce;

end one;仿真波形:

仿真波形分析:由仿真波形可以看出数码管的串行显示得以实现,置零正常。随着时钟输入的变化,数码管进行串行显示。电路图:

端口连接:

Clk_in接18口,是时钟输入,cat5-0是每个数码管各自的绑定,根据板子上的串口数字绑定,num7-0是数码管的每一个亮的部分,根据板子上的提示串口进行绑定,根据编程可以实现让数码管显示不同的数字。

2.六个数码管滚动电路的思路及代码: 数码管滚动显示 library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity jxhgundong is port(clk:in STD_LOGIC;en: out STD_LOGIC_VECTOR(5 downto 0);z: out STD_LOGIC_VECTOR(6 downto 0));end jxhgundong;architecture quanmiegundong of jxhgundong is signal a:INTEGER RANGE 0 to 6;signal b:INTEGER RANGE 0 to 20;signal c:INTEGER RANGE 0 to 3000;signal d:INTEGER RANGE 0 to 3000;begin

p1:proce(a)begin case a is when 0=>enenenenenennull;end case;end proce p1;

p2:proce(clk)begin if clk'event and clk='1'then if a=5 then

a

a

d

p3:proce(b)begin case b is when 0=> z z z z z zz

end case;end proce p3;

end;仿真波形:

仿真波形分析:有图可以看出,数码管滚动显示功能得以正常实现。随着时钟的输入,数码管的输出进行着滚动式变化。电路图:

端口连接图:

Clk接18口,是时钟输入,en5-0是每个数码管各自的绑定,根据板子上的串口数字绑定,z6-0是数码管的每一个亮的部分,根据板子上的提示串口进行绑定,根据编程可以实现让数码管显示不同的数字。

五、故障及问题分析

实验一

在本次实验中,由于实验较为简单,只要认真听老师讲课,细心实验,基本没有大的故障出现。出现的问题主要为 当输入频率较高时,输出结果易受器件延迟时间影响。此外,对于多输入的电路,静态功能冒险还是会存在的,在某些情况下应该加入选通脉冲来消除静态功能冒险。实验二

1.注意VHDL文件名与实体名一致,会导致编译的错误。我在实验的过程中发生过这种错误。2.在仿真波形的时候,没有合适的取好输入信号的周期,导致最终的波形超过了一个半有效周期,经老师指出进行了修改。

3.下载到板子上程序之前需要绑定串口,绑定完串口之后需要二次编译,否则功能不能实现。实验三

1.每次实验中都应该注意到VHDL的文件名应与实体名一致,如果不一致编译会报错。我在实验过程中虽然原理图设计名与工程名相同,但在其后某程序名上犯了错误,导致出错。2.在仿真波形的观察中,一定要调节好zoom一选项,缩放出便于观察的波形。3.在命名过程一定要注意规范,不要出现非法字符。4.在做10进制计数器时,由于板的固有频率为晶振的频率50兆赫兹,所以当以微秒级的时钟去自动跳变太快根本无法看清,应该加一段程序令时钟在微秒级跳变25兆次时外部时钟输出,从而令外部时钟变为秒级的,才能看见自动跳变现象。实验四

1.注意VHDL文件名和各个名字一致否则会出现编译错误。

2.板子的固有频率是50m,所以需要进行分频,数码管的实验的时候频率的高低会导致数码管显示结果的不同,要根据实际情况适当的调高调低。我在做实验的时候频率选择不合适,数码管显示不好。

3.时钟信号是高频有效还是低频有效,需要注意,我实验的时候没有太搞清楚。

4.数码管的滚动显示的时候总是出错,经过检查,是下载之前绑定串口有误,还有分频并不合适。最终实验时候时间有限,验收的是数码管的串行。

六、总结和结论

总结:

实验一:实验一是进行了简单的图形连接来进行电路的实现,总体来说较为简单,但是要注意元器件的调用,还有连接的规范,使得连接出来的电路清晰明了,简单美观。仿真的时候注意总时间的选取和输入变量的周期。

实验二:实验二是第一次进行VHDL编程,需要注意的是文件名和各个实体名一致否则会导致编译的错误。然后在仿真的时候注意总时间的选取和输入变量的周期,还有就是要会看出来自己的仿真波形是否是正确的。在下载到板子上程序之前注意串口的绑定和绑定之后逇二次编译,这次实验让我们了解了VHDL语言以及其数字电路的实现。

实验三:实验三是十进制计数器和分频器,这两个实验较为简单,由于有之前的基础在,所以比较容易实现,就是注意文件名要一致,仿真的时候注意总时间的选择以及各个变量的周期。而最后的组合电路比较难,注意上层的设置。将三个分别得电路组合在一起注意连接函数PORT MAP,还有各个端口的连接,最后下载到板子上注意串口的绑定,还有绑定之后的二次编译。最后实现功能的时候要知道时钟信号的有效频率还有就是复位。

实验四:经过之前的基础,实验四比较难,代码需要更加用心的编写。还有频率的设定需要经过实验时候的情况进行调整。这次实验我做的并不是那么的顺利,经过反省,我了解数码管有关的知识,还有串行和滚动的代码,经过努力,可以实现实验的内容。在实验的时候注意文件名的一致,仿真时候的总时间和各个变量的周期,最后下载的时候注意串口的绑定还有绑定之后的二次编译。这次最终的实验收获良多,还要虚心进行学习。老师的指责也是正确的,要对实验严谨认真。

结论: 数电实验是有关于模块的链接,VHDL的编程能力的锻炼,经过这次试验,我了解了Quartus II的使用,图形工具的使用以及VHDL的编程能力得到了很好的历练。

在这个实验课程中,经过老师的悉心教导,我们学习到了软件的使用,经过四次的实验,我们可以较为熟练的运用Quartus II的图形和VHDL语言编程来设计电路,并可以通过仿真来验证我们的电路是否正确。我们通过绑定串口之后把程序下载到板子上可以实现我们的电路的功能,在下载之前注意要进行二次编译。而且在实验三里的第三个实验,我们在验收的时候,要熟练地可以拨动开关实现零到九的变换。

老师虽然对我们很严厉,但是我们这样才能学习到更多的东西,有了更多的进步空间。

数字电路与逻辑设计教学大纲

《数字电路与逻辑设计》教学大纲适用专业:通信工程、信息工程、自动化、测控技术与仪器、电气工程及其自动化 课程类别:专业基础课 先修课程:电路原理 总 学 时:66 学分:3 考核方......

《数字电路与逻辑设计》考试大纲

《数字电路与逻辑设计》考试大纲(一)基本要求1.掌握二进制、八进制、十进制、十六进制及其转换方法,掌握常用编码及其表示十进制数的方法,掌握逻辑代数的逻辑运算、公式和规则,掌......

修订版《数字电路与逻辑设计》教学大纲

《数字电路与逻辑设计》课程本科教学大纲3 Digital Circuit And Logic Design一、课程编号:010131二、课程类型: 课程性质:必修课适用专业:通信工程、电子信息工程、电子信息科......

数字电路与逻辑设计课程设计指导书

数字逻辑设计 课程设计指导书适用专业:计算机大类目录一、课程设计目的 ....................................................................................................

《数字电路与逻辑设计》(网络)教学大纲

《脉冲与数字电路》教学大纲 (计算机类)一、课程性质、地位和作用《脉冲与数字电路》是通信专业、电子工程专业的一门重要专业技术基础课,属核心必修课。本课程理论严谨、实践......

《北邮数字电路与逻辑设计实验报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
北邮数字电路与逻辑设计实验报告
点击下载文档
相关专题 北邮数字逻辑实验报告 实验报告 逻辑设计 北邮 北邮数字逻辑实验报告 实验报告 逻辑设计 北邮
[其他范文]相关推荐
[其他范文]热门文章
下载全文