第一篇:数字电路实验报告
组合逻辑电路的设计与调试
一、实验目的1、掌握用门电路设计组合逻辑电路的方法。
2、掌握组合逻辑电路的调试方法。
二、实验器材
数字电路实验箱一台、74LS00若干
三、实验内容
1、用与非门实现散人多数表决器电路
(1)真值表
(2)表达式化简及变形
(3)逻辑图
2、用与非门实现YAB
(1)真值表
(2)表达式化简及变形
(3)逻辑图
译码器应用电路的设计与测试
一、实验目的1、熟悉集成译码器的性能和使用方法
2、学会使用二进制译码器实现组合逻辑电路的方法
二、实验器材
数字电路实验箱一台、74LS138一片、74LS20一片
三、实验内容
1、用74LS138及74LS20实现三人多数表决器电路
(1)真值表
(2)表达式转换
(3)逻辑图
2、用74LS138及74LS20实现YAB
(1)表达式转换
(2)逻辑图
数据选择器的设计与调试
一、实验目的1、熟悉数据选择器的性能及使用方法
2、学会使用数据选择器进行逻辑设计的方法
二、实验器材
数字电路实验箱一台、74LS151一片
三、实验内容
1、用74LS151实现三人多数表决器
(1)真值表
(2)比较卡诺图求出Ai及Di
(3)逻辑图
2、用74LS151实现YABBCAC
(1)比较卡诺图求出Ai及Di
(2)逻辑图
N进制计数器的设计与测试
一、实验目的1、掌握集成技术器的测试方法
2、学会利用集成技术器构成N进制计数器
二、实验器材
数字电路实验箱一台、74LS161一片、74LS20一片
三、实验内容
1、用74LS161设计七进制计数器。
方法一:清零(0-6)
(1)逻辑图
(2)状态转换图
方法二:置数(1-7)
(1)逻辑图
(2)状态转换图
方法三:置数(9-15)(CO做反馈)
(1)逻辑图
(2)状态转换图
第二篇:数字电路与逻辑设计实验报告
实验 报告书
课程名称
数字电路与逻辑设计
专
业
计算机科学与技术
班
级
姓
名
刘
腾
飞
学
号
09030234
指导教师
王
丹
志
成绩
2010年 年 11月 月 10 日
实验题目:
译码器、数据选择器及其应用
一、实验目的 1、掌握中规模集成译码器与数据选择器的逻辑功能与使用方法
2、熟悉数码管的使用 3、学习用数据选择器构成组合逻辑电路的方法 二、实验原理 1 1、中规模集成译码器 74 LS 138
74LS138是集成3线-8线译码器,在数字系统中应用比较广泛。图-1是其引脚排列。其中 A2、A1、A0为地址输入端,0Y~ 7Y为译码输出端,S1、2S、3S为使能端。
图-1 74LS138真值表图-2如下:
图-2 74HC138工作原理为:当S1=1,S— 2+S — 3=0时,器件使能,电路完成译码功能,输出低电平有效。当S=0,S— 2+S — 3=X时,或S1=1, S— 2+S — 3=1,译码器被禁止,所有输出同时为1 2 2、双4 4 选1 1 数据选择器
74LS153 ?
所谓双4选1数据选择器就是在一块集成芯片上有两个4选1数据选择器。引脚排列如图-3所示,功能表如图-4所示。
图-3
输入 输出 S—
A1 A0 Q 1 0 0 0 0 X 0 0 1 1 X 0 1 0 1 0 D0 D1 D2 D3 图-4
1S—、2S — 为两个独立的使能端;A1、A0为两个公用的地址输入端;1D0~1D3和2D0~2D3分别为两个4选1数据选择器的数据输入端;Q1、Q2为两个输出端。
当使能端1S—(2S —)=1时,多路开关被禁止,无输出,Q=0。
当使能端1S—(2S —)=0时,多路开关正常工作,根据地址码A1、A0的状态,将相应的数据D0~D3送到输出端Q。3、8 8 选1 1 数据选择器 74LS151
74LS151为互补输出的8选1数据选择器,引脚排列如图-5所示,功能表如图-6所示。
图-5
图-6 选择控制端(地址端)为A2~A0,按二进制译码,从8个输入数据D0~D7中,选择一个需要的数据送到输出端Q,S— 为使能端,低电平有效。
使能端S— =1时,不论A2~A0状态如何,均无输出,多路开关被禁止。
使能端S— =0时,多路开关正常工作,根据地址码A2、A1、A0的状态选择D0~D7中某一个通道的数据输送到输出端Q。
三、实验设备及器件 ●
硬件:PC机一台 ●
软件:QuartusⅡ5.0集成开发环境 四、实验内容 1.使用74LS138实现逻辑函数 F=A’B’C’+AB’C’+ABC 2.使用74LS151实现逻辑函数 F=AB’+A’B+AB 3.使用74LS153实现逻辑函数 F=A’BC+AB’C+ABC’+ABC
五、实 验过程 1、使用74LS138实现逻辑函数 F=A’B’C’+AB’C’+ABC ① 由74LS138功能表(图-1)可知电路图连接如图-7所示
图-7 ② 经编译检查无错(图-8)
图-8
③ 对其进行仿真,设置好一定仿真时间区域与输入波形后启动仿真器得仿真结果如图-9
图-9 2、使用74LS151实现逻辑函数F=AB’+A’B+AB
①将输入变量C、B、A作为8选1数据选择器的地址码A2、A1、A0。使8选1数据选择器的各个数据输入D0~D7分别与函数F的输出值一一对应,即A2A1A0=CBA、D0=D2=D3=0、D0=D4=D5=D6=D7=1则输出Q便实现了函数AB’+A’B+AB接线图如图-10
图-10 ②经编译检查无错(图-11)
图-11 ③对其进行仿真,设置好一定仿真时间区域与输入波形后启动仿真器得仿真结果如图-12
图-12 3、使用74LS153实现逻辑函数 F=A’BC+AB’C+ABC’+ABC
①函数F有3个输入变量A、B、C,而数据选择器有2个地址端A1、A0少于数据函数输入变量个数,在设计时可任选A接A1,B接A0。接线如图-13
图-13
②经编译检查无错如图-14
图-14 ③对其进行仿真,设置好一定仿真时间区域与输入波形后启动仿真器得仿真结果如图-15
图-15 六、实验心得 通过这次试验,我熟练掌握了74LS138译码器、74LS151和74LS153数据选择器的使用特点和方法。加强了对这些知识的了解,熟练掌握了QuartusⅡ5.0集成开发环境的使用。
第三篇:北邮数字电路与逻辑设计实验报告
北京邮电大学数字电路与逻辑
设计实验报告
学院: 班级:
姓名:
学号:
实验一 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<=“011111”;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<=“ZZZZZZZ”;END CASE;END PROCESS;END encoder_arch;仿真波形图
仿真波形分析: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<=“0011”;WHEN“0001”=> B<=“0100”;WHEN“0010”=> B<=“0101”;WHEN“0011”=> B<=“0110”;WHEN“0100”=> B<=“0111”;WHEN“0101”=> B<=“1000”;WHEN“0110”=> B<=“1001”;WHEN“0111”=> B<=“1010”;WHEN“1000”=> B<=“1011”;WHEN“1001”=> B<=“1100”;WHEN OTHERS=> B<=“ZZZZ”;END CASE;END PROCESS;END trans_ex3;仿真波形图
仿真波形分析: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<=A XOR B;
n2<=n1 XOR C;
F<=n2 XOR D;END one;仿真波形图
仿真波形分析:当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 <=“0000”;ELSIF clk'EVENT AND clk='1' THEN IF q_temp=“1001” THEN q_temp <=“0000”;ELSE q_temp <=q_temp+1;END IF;END IF;END PROCESS;q<= q_temp;END a;仿真波形图
仿真波形图分析: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<=0;ELSIF clk'EVENT AND clk='1' THEN IF temp=11 THEN temp<=0;ELSE temp<=temp+1;END IF;END IF;END PROCESS p1;p2:PROCESS(temp)BEGIN IF temp<6 THEN clk_out<='0';ELSE clk_out<='1';END IF;END PROCESS p2;END a;仿真波形
仿真波形分析:分频器将频率分开,置零端正常工作,根据仿真波形可以看出来,分频器的功能得以正常实现。
组合电路
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<=0;clktmp<=NOT clktmp;
ELSE
temp<=temp+1;
END IF;
END IF;
END PROCESS;
clk_out<=clktmp;END behave;
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<=“0000”;elsIF(CLK'EVENT AND CLK='1')THEN
IF Q_TEMP=“1001”THEN
Q_TEMP<=“0000”;
ELSE
Q_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_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 c<=“011111”;CASE a IS WHEN“0000”=>b<=“01111110”;--0 WHEN“0001”=>b<=“00110000”;--1 WHEN“0010”=>b<=“01101101”;--2 WHEN“0011”=>b<=“01111001”;--3 WHEN“0100”=>b<=“00110011”;--4 WHEN“0101”=>b<=“01011011”;--5 WHEN“0110”=>b<=“01011111”;--6 WHEN“0111”=>b<=“01110000”;--7 WHEN“1000”=>b<=“01111111”;--8 WHEN“1001”=>b<=“01111011”;--9 WHEN OTHERS=>b<=“00000000”;END CASE;END PROCESS;END seg7_arch;
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
process(clk_in)begin
if clear='0' then status<=0;
elsif(clk_in'event and clk_in='1')then
if status=6 then status<=1;
else status<=status+1;
end if;
end if;
end process;
process(status)
begin case status is
when 1 => num<=“1111110”;cat<=“011111”;
when 2 => num<=“0110000”;cat<=“101111”;
when 3 => num<=“1101101”;cat<=“110111”;
when 4 => num<=“1111001”;cat<=“111011”;
when 5 => num<=“0110011”;cat<=“111101”;
when 6 => num<=“1011011”;cat<=“111110”;
when others =>num<=“0000000”;cat<=“000000”;
end case;
end process;
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:process(a)begin case a is when 0=>en<=“011111”;b<=c mod 12;when 1=>en<=“101111”;b<=(1+c)mod 12;when 2=>en<=“110111”;b<=(2+c)mod 12;when 3=>en<=“111011”;b<=(3+c)mod 11;when 4=>en<=“111101”;b<=(4+c)mod 12;when 5=>en<=“111110”;b<=(5+c)mod 12;when others=>null;end case;end process p1;
p2:process(clk)begin if clk'event and clk='1'then if a=5 then
a<=0;d<=1+d;else
a<=a+1;end if;if d=2999 then
d<=0;c<=c+1;end if;end if;end process p2;
p3:process(b)begin case b is when 0=> z<=“1111110”;--0 when 1=> z<=“0110000”;--1 when 2=> z<=“1101101”;--2 when 3=> z<=“1111001”;--3 when 4=> z<=“0110011”;--4 when 5=> z<=“1011011”;--5 when others=>z<=“0000000”;
end case;end process 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语言编程来设计电路,并可以通过仿真来验证我们的电路是否正确。我们通过绑定串口之后把程序下载到板子上可以实现我们的电路的功能,在下载之前注意要进行二次编译。而且在实验三里的第三个实验,我们在验收的时候,要熟练地可以拨动开关实现零到九的变换。
老师虽然对我们很严厉,但是我们这样才能学习到更多的东西,有了更多的进步空间。
第四篇:数字电路实验报告西北工业大学(译码器.编码器)-肖辉
数字电路技术实验报告
学号:2011302647
姓名:肖辉
日期:2013.5.7
一、实验目的:
(1)掌握中规模集成译码器的逻辑功能和使用方法.(2)掌握中规模集成编码器的逻辑功能和使用方法.(3)熟悉掌握集成译码器74LS138的应用方法.(4)掌握集成译码器的扩展方法
二、实验设备:(1)数字电路实验箱.(2)74LS20.(3)74LS138.三、实验原理:
译码器是一个多输入多输出的组合电路,它的作用是将输的具有特定含义的二进制代码翻译成输出信号的不同组合,实现电路的逻辑控制功能.译码器在数字领域中应用广泛,可用于代码转换,终端数字显示;数据的分配,存储器寻址的组合控制信号等等.译码器可以分为通用译码器和显示译码器两种变量译码器又称二进制译码器,表示n个变量可以产生2(n)个输入函数常用的有74LS755,74LS138,74LS154
四、实验内容:
(1)74LS138译码器逻辑功能的测试
(2)利用3—8译码器74LS138
和与非门
74LS20
实验函数:
(3)用两片74LS138组成4-16线译码器;
五、实验结果:
VCC1VCC5V1J11322Key = Space31U12VCC1J2132Key = Space312J31322123ABCKey = Space336G1GND4~G2A58~G2BGNDVCCY0Y1Y2Y3Y4Y5Y6Y716***09754107U212345671AVCC1B2DNC2C1CNC11D2B1Y2AGND2Y14***4LS138D874LS20NLED1AAKC91R1122330ΩGND1GND
VCC15VVCCVCCJ231321217U1123ABCG1~G2A~G2BGNDVCCY0Y1Y2Y3Y4Y5Y6Y716***097Key = SpaceJ***45881234567LED112345678A1234567816***0916***09Key = Space20J33113221174LS138D19U2123ABCG1~G2A~G2BGNDVCCY0Y1Y2Y3Y4Y5Y6Y716***097Key = Space***41516LED212345678A1234567816***0916***09J431321274LS138DKey = Space11VCC5VVCC5VLED1R1LED2J1U1Key = SpaceJ2123645ABCG1~G2A~G2BY0Y1Y2Y3Y4Y5Y6Y7***097330ΩR2330ΩR3330ΩR4330ΩR5330ΩR6330ΩR7330ΩR8330ΩLED3LED4LED5LED6LED7LED8Key = SpaceJ374S138DKey = SpaceGND
六、心得体会
本次试验要求通过实验的方法学习数据选择器的电路结构和特点;掌握数据选择器的逻辑功能及其基本应用。我们使用数字电路实验箱,74LS20,74LS128等设备完成了全加器的实现。虽然没有在规定时间内实现导弹发射问题,但业已分析出了问题的解法和电路的连接方法。在老师和同学的帮助下,我们排查开始时出现的故障(原来是74LS00接地端导线接头松动),比较顺利地完成了试验。
第五篇:数字电路总结
数字电路总结
第一章数制和编码
1. 能写出任意进制数的按权展开式;
2. 掌握二进制数与十进制数之间的相互转换;
3. 掌握二进制数与八进制、十六进制数之间的相互转换;
4. 掌握二进制数的原码、反码及补码的表示方法;
5. 熟悉自然二进制码、8421BCD码和余3 BCD码
6. 了解循环码的特点。
第二章 逻辑代数基础
1. 掌握逻辑代数的基本运算公式;
2.掌握代入规则,反演规则,对偶规则;
熟悉逻辑表达式类型之间的转换---“与或”表达式转化为“与非”表达式;
3. 熟悉逻辑函数的标准形式---积之和(最小项)表达式及和之积(最大项)式表达式。(最小项与最大项之间的关系,最小项表达式与最大项表达式之间的关系)。
4. 了解正逻辑和负逻辑的概念。
第三章:数字逻辑系统建模
1.熟悉代数法化简函数
(AABA,AABAB, ABACBCABAC, A+A=AAA=A)
2.掌握图解法化简函数
3.了解列表法化简函数(Q-M法的步骤)
4.能够解决逻辑函数简化中的几个实际问题。
a.无关项,任意项,约束项的处理;
b.卡诺图之间的运算。
5.时序逻辑状态化简
掌握确定状态逻辑系统的状态化简;
了解不完全确定状态逻辑系统的状态化简。
第四章:集成逻辑门
1. 了解TTL“与非”门电路的简单工作原理;
2. 熟悉TTL“与非”门电路的外特性:电压传输特性及几个主要参数,输出高电平,输出低电平、噪声容限、输入短路电流、扇出系数和平均传输延迟时间。
3. 熟悉集电集开路“与非”门(OC门)和三态门逻辑概念,理解“线与”的概念;
4. 掌握CMOS“与非”门、“或非”门、“非”门电路的形式及其工作原理。
5. 熟练掌握与、或、非、异或、同或的逻辑关系。
7.掌握R-S、J-K、D、T触发器的逻辑功能、特征方程、状态转换图、状态转换真值表。不要求深入研究触发器的内部结构,只要求掌握它们的功能,能够正确地使用它们;
8.了解触发器直接置 “0”端RD和直接置“1”端SD的作用。
9.了解边沿触发器的特点;
10.熟悉触发器的功能转换。
11.了解施密特电路、单稳态电路的功能用途;
212.了解ROM、PROM、EPROM,EPROM有何不同;
13.能用PLD(与或阵列)实现函数
第五章: 组合逻辑电路
1、熟悉组合逻辑电路的定义;
2、掌握组合电路的分析方法:根据电路写出输出函数的逻辑表达式,列出真值表,根
据逻辑表达式和真值表分析出电路的路基功能。
3、掌握逻辑电路的设计方法:根据设计要求,确定输入和输出变量,列出真值表,利
用卡诺图法化简逻辑函数写出表达式,画出电路图。
4、掌握常用组合逻辑部件74LS283)、74LS85)、74LS138)、四选一数据选择器和八选
一数据选择器74151的应用(利用138译码器、八选一数据选择器实现组合逻辑函数等)。
5、了解组合电路的竞争与冒险。
第六章: 同步时序电路
1. 了解时序电路的特点(定义);
2. 记住时序电路的分析步骤,掌握时序电路的分析方法,能够较熟练地分析同步时序
电路的逻辑功能。
3. 记住时序电路的设计步骤,掌握时序电路的设计方法,会同步时序电路的设计(含状
态化简)。
第七章: 常用时序逻辑部件
4. 了解常用的时序逻辑部件,如各种计数器(74LS161、74LS163、74LS193)、移位寄
存器(74LS194)及寄存器;不要求详尽的去研究其内部电路,但能够应用时序逻辑部件构成给定的逻辑功能。
5. 会看时序逻辑部件及组合逻辑部件的功能表,根据功能表掌握其逻辑功能、典型应
用及功能扩展
6. 掌握掌握连成任意模M同步计数器的三种方法:预置法,清0法,多次预置法;
7. 掌握序列码发生器的设计过程
第八章 了解A/D,D/A转换的基本原理。
思考题
1. BCD码的含义是什么?
2. 数字电路的特点是什么?
3. 三态门的特点是什么,说明其主要用途?
4. OC门的特点是什么,说明其主要用途?
5. TTL集成逻辑门的基本参数有哪几种?
6. 什么是“与”逻辑关系、“或”逻辑关系、“非”逻辑关系?
7. 什么是“同或”逻辑关系、“异或”逻辑关系?
8. 简化逻辑函数的意义是什么?
9. 几种数制如何进行相互转换?
10. 怎样取得二进制数的原码、反码和补码?
11. 将十进制数125编写成8421BCD码和余3BCD 码;
12. 什么是最小项及最小项表达式?
13. 怎样用代数法化简逻辑函数?
14. 怎样用卡诺图法化简逻辑函数?
简化后的逻辑表达式是。
A.唯一B.不唯一
C.不确定D.任意。
15. 什么是组合电路?什么是时序电路?各自的特点是什么?
16. 组合电路的表示形式有几种,是哪几种?
17. 组合电路的分析步骤是什么?
18. 组合电路的设计步骤是什么?
19. 半加器与全加器的功能有何区别?
20. 译码器、编码器、比较器如何进行级联?
21. 如何用数据选择器实现逻辑函数?
22. 竞争与冒险的起因是什么?
23. D触发器与J-K触发器的特征方程和状态转换图是什么?
24. 如何用J-K触发器实现T触发器?
25. 什么是同步时序电路和异步时序电路?其特点是什么?
26. 同步时序电路的分析步骤是什么?
27. 同步时序电路的设计步骤是什么?
28. 全面描述时序电路的方程有几个?是哪几个?
29. 状态化简的意义是什么?怎样进行状态化简?
30. 怎样用中规模同步集成计数器设计任意模值计数器?
31. 怎样用移位寄存器构成环形计数器?
32. 什么是ROM?什么是RAM?
33. PLD、PLA、GAL、PAL,FPGA、CPLD的含义是什么?
34. 画出ADC工作原理框图,写出三种ADC电路的名称。
35. 计算R-2R网络DAC的输出电压。
36. 欲将正弦信号转换成与之频率相同的脉冲信号,应用
(a)T’触发器;(b)施密特触发器;(c)A/D转换器(d)移位寄存器 37.