7段数码显示译码器设计

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

EDA 技术实验报告

实验项目名称:7段数码显示译码器设计

实验日期:2012年6月4日实验成绩:

实验评定标准:

一、实验目的

学习7段数码显示译码器设计;学习VHDL的CASE语句应用及多层次设计方法。

二、实验器材

电脑一台、GW48 EDA/SOPC试验箱。

三、实验内容(实验过程)

实验内容1:说明程序中各语句的含义,以及该程序的整体功能。在quartusII 上对该程序进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。步骤:1)打开软件,选择菜单file—>new,在弹出的new对话框中选择Device Design Files 的VHDL File项,按OK键后进入VHDL文本编辑方式。

根据给出的7段数码显示译码器的参考程序。

2)将其另存为与实体名一致的文件,以确保后续的编译能够正常进行。然后在将该文件置顶,并进行编译。

3)编译完成后,对其进行仿真,建立波形文件。再次进行编译(否则进行仿真的时候会报错),编译完成后即可进行仿真。分析得到的结果。

实验内容2:引脚锁定及硬件测试。选用GW48 系统的实验电路模式6 用数码8 显示译码输出(P1046-PI040),键8、键7、键6 和键5 四位控制输入,硬件验证译码器的工作性能。

实验内容3:用元件例化语句,按下图的方式连接成顶层设计电路(用VHDL 表述),图中CNT4B 是一个4 为二进制加法器(也可利用实验五的加法计数器的程序,在实验中则利用后者),模块DECL7S 即该实验实体元件重复以上实验过程。图中temp 是4 位总线,led 是7 位总线。对于引脚和实验用模式6 用数码8 显示译码输出用键3 作为时钟输入或直接接时钟信号clock0。

四、实验程序

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(6DOWNTO 0));

END DECL7S;

ARCHITECTURE one OF DECL7S IS BEGIN

PROCESS(A)

BEGIN

CASE A IS WHEN"0000"=>LED7S<="0111111"; WHEN"0001"=>LED7S<="0000110"; WHEN"0010"=>LED7S<="1011011"; WHEN"0011"=>LED7S<="1001111"; WHEN"0100"=>LED7S<="1100110"; WHEN"0101"=>LED7S<="1101101"; WHEN"0110"=>LED7S<="1111101"; WHEN"0111"=>LED7S<="0000111"; WHEN"1000"=>LED7S<="1111111"; WHEN"1001"=>LED7S<="1101111"; WHEN"1010"=>LED7S<="1110111"; WHEN"1011"=>LED7S<="1111100"; WHEN"1100"=>LED7S<="0111001";

WHEN"1101"=>LED7S<="1011110";

WHEN"1110"=>LED7S<="1111001"; WHEN"1111"=>LED7S<="1110001"; WHEN OTHERS=>NULL; END CASE; END PROCESS; END one;

实验五中加法计数器的代码

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; entity cnt10 is

port(

clk,rst,en :in std_logic;

cq :out std_logic_vector(3 downto 0);

cout :out std_logic);

end cnt10;

architecture behav of cnt10 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<9 then cqi:=cqi+1;

else

cqi:=(others=>'0');

end if;

end if;

end if;

if cqi =9 then cout<='1';

else cout<='0';

end if;

cq<=cqi;

end process;

end behav;

元件例化语句构成的顶层文件

library ieee;

use ieee.std_logic_1164.all; entity tan is

port(clock0:in std_logic;

rat0:in std_logic;

ena0:in std_logic;

led:out std_logic_vector (6 downto 0); cout0:out std_logic);

end tan;

architecture lang of tan is

signal tmp:std_logic_vector (3 downto 0);

component cnt10

port(

clk,rst,en :in std_logic;

相关文档
最新文档