可编程逻辑器件FPGA实验二
计数译码显示系统设计
一、 实验目的
1、 掌握中规模集成计数器的逻辑功能,以及任意进制计数器的设计方法
2、 熟悉显示译码器和数码管的原理及设计应用
3、 了解用数字可编程器件实现集成计数译码显示电路的方法
4、 学会分频器的使用
5、 进一步熟悉QUARTUS软件的基本使用方法
实验原理
1、 计数器
(简述设计中所用两种集成计数器功能原理)
2、 显示译码器和数码管
(简述显示译码器和数码管的分类)
3、 分频器
(简述分频器的功能)
二、 实验内容
1、 用74161设计一个十九进制的计数器
(1)原理图
(2)功能仿真波形
(3)时序仿真波形
2、用74190设计一个十二进制减法计数器
(1)原理图
(2)功能仿真波形
(3)时序仿真波形
三、 实验总结
1、 实验故障及解决方法
2、 实验体会
四、 思考题
1、 七段数码管分为共阴极和共阳极两类,本实验用的是哪一类?对两种数码管,各需选用
何种型号的译码器?
2、 在采用集成计数器构成任意N进制计数器时,常采用哪两种方法?各有何特点?
第二篇:实验报告2
内蒙古工业大学信息工程学院
实 验 报 告
课程名称: CPLD/FPGA应用开发技术
实验名称: 组合逻辑电路的设计
实验类型: 验证性□综合性□ 设计性■
实验室名称: 信息工程学院9楼机房
班级: 电子09-2班 学号:
姓名: 组别:
同组人: 成绩:
实验日期: 2012年5月2 日
实验报告成绩: 指导教师审核(签名): 年 月 日
一、实验目的
1、了解时序电路的 VHDL 语言设计方法。
2、了解同步计数器的使用方法。
3、理解时序电路和同步计数器加译码电路的联系,设计任意编码计数器。
二、实验设备
1、PC 机
2、EDA 实验箱(主芯片是ALTERA EPM7128SLC84-15)。
三、实验内容
1、用 VHDL 语言输入法设计一个同步四位二进制加法计数器和六进制同步计数器。
2、用 74LS161 两个宏连接成八位二进制同步计数器。
3、用 74LS161 宏,同时采用清零和置数法组成六进制和十二进制计数器。
四、实验步骤
1、采用文本编辑器输入 VHDL 语言源程序,或采用原理图输入法从MF 库中调用器件
74161,生成原理图,之后建立工程。
2、编译。
3、仿真。
4、对芯片进行编程。
5、根据管脚分配情况连线。
(1) 根据芯片特点,管脚分配时一般将时钟信号分配给83 脚,复位信号分配给
1 脚。若有使能信号,使能信号分配给84 脚。
(2) 时钟信号的连接:将实验板上提供的时钟与芯片的83 脚相连。
(3) 复位信号的连接:将实验板上的某按键开关输出与芯片的1 脚相连。
(4) 将计数器的输出端分别与LED 灯相连。
6、按动复位键,观察实验结果。
7、改变输入时钟信号的频率,观察实验结果。
五、实验程序
1、用 VHDL 语言输入法设计一个同步四位二进制加法计数器和六进制同步计数器。
(1)四位二进制加法计数器程序代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CN2 IS
PORT(CLK:IN STD_LOGIC;
CLR:IN STD_LOGIC;
OUT1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END CN2;
ARCHITECTURE SS OF CN2 IS
SIGNAL CNT: STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(CLK,CLR)
BEGIN
IF CLR='0' THEN OUT1<="0000";
ELSIF (CLK'EVENT AND CLK='1') THEN
IF CNT="1111" THEN CNT<="0000";
ELSE CNT<=CNT+'1';
END IF;
OUT1<=CNT;
END IF;
END PROCESS;
END SS;
仿真波形
(2)六进制同步计数器程序代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CN6 IS
PORT(CLK:IN STD_LOGIC;
CLR:IN STD_LOGIC;
OUT1:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));
END CN6;
ARCHITECTURE SS OF CN6 IS
SIGNAL CNT: STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
PROCESS(CLK,CLR)
BEGIN
IF CLR='0' THEN OUT1<="000";
ELSIF (CLK'EVENT AND CLK='1') THEN
IF CNT="101" THEN CNT<="000";
ELSE CNT<=CNT+'1';
END IF;
OUT1<=CNT;
END IF;
END PROCESS;
END SS;
仿真波形
2、用 74LS161两个宏连接成八位二进制同步计数器。
原理图:
结果分析:由仿真结果可知,计数器输出Q4,Q3,Q2,Q1,O4,O3,O2,O1组成的八位二进制数每计数六个清零一次,所以构成六进制同步计数器,符合设计要求。
输入数据:CLR为清零端,开始为零(有效),然后为1(无效)。CLK为时钟输入端,是周期为50s的方波,以观察输出知否正确。
管脚分配: CLK对应管脚83。CLR对应管脚84。Q4,Q3,Q2,Q1,O4,O3,O2,
仿真波形
3、 用 74LS161宏,同时采用清零和置数法组成六进制和十二进制计数器。
六进制
清零法原理图
结果分析:由仿真结果可知,计数器输出O1,O2,O3,O4组成的四位二进制数每计数六个置数一次,所以构成一个六进制同步计数器,计数范围为0010——1001,符合设计要求。
输入数据:CLR为清零端,开始为零(有效),然后为1(无效)。CLK为时钟输
仿真波形
置数法原理图
仿真波形
十二进制
清零法原理图
仿真波形
置数法原理图
仿真波形
六、实验心得体会
经过试验,很好地将理论与实践结合起来,不仅学会了VHDL语言,它很好的描述了数字电路系统设计,而且熟悉了MAX+plus2的基本用法,在使用软件调试的过程中能够快速有效的找出错误,提高了实验的效率,从仿真的结果也能够很直观的看出结果,这为我们以后自己编程序查找错误提供了很好的帮助。但是也有很多细节容易忽视,对软件运用不是很熟悉,以后多加练习进行加强。