数码显示VHDL
更新时间:2023-09-09 13:53:01 阅读量: 教育文库 文档下载
实验五 数码显示电路的VHDL设计
一、实验目的
通过数码显示电路的设计,学习VHDL的CASE语句应用及多层次设计方法。
二、实验内容
1. 基本命题
设计一个如图5-1所示计数和7段数码显示译码电路,其中CNT4B为4输出二进制计数器,DECL7S为7段数码显示译码电路。
图5-1 计数器和译码器连接电路的顶层文件原理图
2. 扩展命题
设计一个8位数码显示器的扫描控制电路,控制如图5-2所示8个数码显示器逐一显示,以降低显示电路的功耗。
图5-2 8位数码显示器扫描控制电路
三、实验仪器与器材
计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套。
四、实验设计思路
1. 计数与7段数码显示电路 (1)4位二进制计数器CNT4B
参考实验一,将“10进制计数器”的VHDL程序改为“4位二进制计数器”。 (2)7段数码显示
7段数码显示是纯组合电路,通用的小规模专用IC,如74或4000系列的器件只能实现十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。但为了简化过程,首先完成7段BCD码译码器的设计。作为7段BCD码译码器,输出信号LED7S的7位分别接如图5-3数码管的7个段,高位在上,低位在下。例如当LED7S输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段点亮,于是数码管显示“5”。7段数码显示电路的参考程序如下:
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DECL7S IS
PORT ( A : IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; END ;
ARCHITECTURE one OF DECL7S IS BEGIN
PROCESS( A ) BEGIN
CASE A IS
WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \
图5-3 共阴数码管及其电路
WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN OTHERS => NULL ; END CASE ; END PROCESS ; END ; (3)设计提示
分别设计4位计数器CNT4B和7段数码显示译码器DECL7S,确认满足逻辑设计要求后,应用例化语句实现图5-1所示电路CNT_DECL的VHDL设计。引脚锁定及硬件测试方案建议选实验电路模式6,用数码8显示译码输出(PIO46-PIO40),其它输入、输出引脚自己定义,最后硬件验证译码器的工作性能。
2. 8位数码显示器扫描控制电路
在图5-2所示电路中,每个数码管的8个段:h、g、f、e、d、c、b、a(h是小数点)都分别连在一起,8个数码管的公共端分别由8个选通信号k1、k2?k8来选择。被选通的数码管显示数据,其余关闭。如在某时刻k3为高电平,其余选通信号为低电平,这是仅k3对应的数码管显示来自段信号的数据,其他7个数码管呈现关闭状态。如果希望在8个数码管显示预期的数据,就必须使得8个选通信号k1、k2?k8分别被单独选通,并同时在段信号输入口加上希望在该数码管显示的数据。于是随着选通信号的扫描(逐一轮流输出高电平),就能够实现扫描显示的目的。
在下面8位数码显示器扫描控制电路的参考程序中,clk是扫描时钟,SG为7段控制信号,由高位至低位分别接g、f、e、d、c、b、a 7个段,BT是位选择控制信号,接图5-1中的8个选通信号:k1、k2?k8。程序中的CNT8是一个3位计数器,产生扫描控制信号,由进程P2生成。进程P3是7段译码查表输出程序,与基本命题相同。进程P1是对8个数码管选通的扫描程序,例如当CNT8等于“001”时,k2对应数码管被选通,同时,A被赋值3,再由进程P3译码输出“1001111”,显示在数码管上即为“3”,当CNT8扫描时,数码管上显示数据:13579BDF。
8位数码显示器扫描控制电路的参考程序如下: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SCAN_LED IS PORT ( CLK : IN STD_LOGIC;
SG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); --段控制信号输出 BT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );--位控制信号输出 END;
ARCHITECTURE one OF SCAN_LED IS
SIGNAL CNT8 : STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL A : INTEGER RANGE 0 TO 15;
BEGIN
P1: PROCESS( CNT8 ) BEGIN
CASE CNT8 IS
WHEN \ BT <= \ WHEN \ BT <= \ WHEN \ BT <= \ WHEN \ BT <= \ WHEN \ BT <= \ WHEN \ BT <= \ WHEN \ BT <= \ WHEN \ BT <= \ WHEN OTHERS => NULL ; END CASE ; END PROCESS P1; P2: PROCESS(CLK) BEGIN
IF CLK'EVENT AND CLK = '1' THEN CNT8 <= CNT8 + 1; END IF;
END PROCESS P2 ; P3: PROCESS( A ) --译码电路 BEGIN
CASE A IS
WHEN 0 => SG <= \ WHEN 1 => SG <= \ WHEN 2 => SG <= \ WHEN 3 => SG <= \ WHEN 4 => SG <= \ WHEN 5 => SG <= \ WHEN 6 => SG <= \ WHEN 7 => SG <= \ WHEN 8 => SG <= \ WHEN 9 => SG <= \ WHEN 10 => SG <= \ WHEN 11 => SG <= \ WHEN 12 => SG <= \ WHEN 13 => SG <= \ WHEN 14 => SG <= \ WHEN 15 => SG <= \ WHEN OTHERS => NULL ; END CASE ; END PROCESS P3; END;
五、实验要求
根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和实验过程;设计程序、程序分析报告、仿真波形图及其分析报告。
1.基础命题
5.1 VHD代码 (1)4位二进制计数器
LIBRARY ieee;
USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.ALL; ENTITY cnt2 IS
PORT (clk, rst, en : IN std_logic; cq : OUT std_logic_vector(3 DOWNTO 0); cout : OUT std_logic);
END cnt2;
ARCHITECTURE behave OF cnt2 IS BEGIN
PROCESS (clk,rst,en)
VARIABLE cqi : std_logic_vector(3 DOWNTO 0); BEGIN
IF rst = '1' THEN cqi :=(OTHERS =>'0') ; -- 计算机异步复位
ELSIF clk'event AND clk='1' THEN -- 检测时钟上升沿
IF en='1' THEN -- 检测是否允许计数(同步使能) IF cqi < 15 THEN cqi := cqi +1; -- 允许计数,检测是否小于15 ELSE cqi := (OTHERS =>'0') ; -- 大于15,计数值清零
END IF; END IF; END IF;
IF cqi = 15 THEN cout <= '1'; -- 计数大于15,输出进位信号
ELSE cout <='0';
END IF;
cq <= cqi; -- 将计数值送往输出端口
END PROCESS;
END behave; (2)7段数码显示
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DECL7S IS
PORT ( A : IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ;--输出端
END ;
ARCHITECTURE one OF DECL7S IS BEGIN
PROCESS( A )
BEGIN
CASE A IS
WHEN \WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \WHEN \ LED7S <= \WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \ WHEN \ LED7S <= \WHEN \ LED7S <= \WHEN \ LED7S <= \ WHEN \ LED7S <= \WHEN \ LED7S <= \WHEN OTHERS => NULL ; END CASE; END PROCESS;
END;
(3)计数与7段数码显示电路 library ieee;
use ieee.std_logic_1164.all; entity cnt_led is
port(clk1,rst1,en1:in std_logic;
led6:out std_logic_vector(6 downto 0); cout1:out std_logic);
end entity cnt_led;
architecture behave of cnt_led is
component cnt2
PORT (clk, rst, en : IN std_logic;
cq : OUT std_logic_vector(3 DOWNTO 0); cout : OUT std_logic);
end component; component DECL7S
PORT (A: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
end component;
signal tmp:std_logic_vector(3 downto 0); begin
m1:cnt2
port map(clk=>clk1,rst=>rst1,en=>en1,cout=>cout1,cq=>tmp);--端口映射 m2:DECL7S
port map(A=>tmp,LED7S=>led6);--端口映射
end behave; 5.2仿真波形图
图 5.1仿真波形图
5.3引脚配置
图 5.2引脚配置
2扩展命题
5.4 程序设计:
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity SCAN_LED is port(clk:in std_logic; end;
architecture one of SCAN_LED is signal cnt8:std_logic_vector(2 downto 0); signal a:integer range 0 to 15; begin
p1:process(cnt8)--段选 begin
case cnt8 is
when \显示1 when \显示3 when \when \when \when \when \when \when others => NULL;
sg:out std_logic_vector(6 downto 0);--段选信号 bt:out std_logic_vector(7 downto 0));--位选信号
end case;
end process p1; p2:process(clk) begin
if clk'EVENT and clk='1' then cnt8<=cnt8+1;--位选 end if;
end process p2; p3:process(a)--译码电路 begin
case a is
when 0 => sg<=\
WHEN 2 => SG <= \ WHEN 3 => SG <= \WHEN 4 => SG <= \ WHEN 5 => SG <= \WHEN 6 => SG <= \ WHEN 7 => SG <= \WHEN 8 => SG <= \ WHEN 9 => SG <= \WHEN 10 => SG <= \ WHEN 11 => SG <= \WHEN 12 => SG <= \ WHEN 13 => SG <= \WHEN 14 => SG <= \ WHEN 15 => SG <= \WHEN OTHERS => NULL;
end case;
end process p3; end;
5.5仿真波形:
六、实验思考题
(1)思考如何实现计数器与译码器连接以及不同字母显示电路的设计?
设计计数器模块和译码器模块,通过模块调用,端口映射,将计数结果输送
到译码器的输入端口进行译码。
正在阅读:
数码显示VHDL09-09
工业三废09-27
用于银行贷款2013年通信原理基础实验箱项目可行性研究报告(甲级03-16
浙江省数字校园示范建设校验收自查报告01-16
深圳经济特区控制吸烟条例05-02
云雀的心愿课堂实录06-27
TITLE Symbolic Interpretation of Legacy Assembly Language04-30
证券基础模拟题05-25
我国自然湖泊旅游开发现状、问题及发展前景03-29
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 显示
- 数码
- VHDL
- 2017苏教版小学5年级信息技术下册教案scratch11-23课
- 江东区2009年教师暑期全员集中培训安排一览表
- 广东省成教英语学位讲座资料
- 7、 第17周 期末测试卷
- 2019年第学期教导处年终工作总结及明年工作计划(四篇)
- 墙体洞口封堵修补施工质量技术交底
- 心理辅导式班主任的探索
- 综合实践课《走进采访》教学案例
- 蒙牛牛奶市场调研分析报告
- 2011届山东高考生物训练卷13套1-8
- 2018年辽宁省铁岭市中考语文学业考试试题及参考答案(WORD版)
- 兰大《社会学概论》15秋在线作业3满分答案
- 两种不同水果糖酸比的比较分析
- 鸡兔同笼练习题及答案
- 计算机三级网络技术考点汇总
- 微免重点
- 2015年普通高等学校招生全国统一考试理综物理试题(安徽卷)
- 常见物质的密度
- 浅谈创新新华企业党建工作
- 听雨(600字)作文