EDA实验三 七段译码显示

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

河北科技大学

实验报告

2013级电信专业132 班学号130701213 2016年6月7日

姓名田继辉同组人指导教师于国庆

实验名称实验三七段译码显示成绩

实验类型设计型批阅教师

一、实验目的

(1)掌握VHDL语言的行为描述设计时序电路。

(2)掌握FPGA动态扫描显示电路设计方法。

(3)熟悉进程(process)和顺序语句的应用。

二、实验原理:

用4个开关作为加法器的一组输入变量,共4组输入变量;对每组变量进行译码,变换成0~F标准段码,段码中“1”表示段亮,“0”表示段灭。一位时钟输入作为扫描显示位扫时钟,四位位扫输出,依次输出高电平。8位段码输出,根据位选状态选择输出四组输入变量的相应译码结果。

四组输入采用试验箱K1~K16,时钟输入选择试验箱CP1或CP2;试验箱LED显示选择动态显示方式(CZ1开关ST选择OFF),段码、位码分别扫描输出,某个管的位码有效期间,将其对应的段码输出,各位码依次有效,实现循环扫描显示,将输入的16位二进制数,每4位一组,分别显示到4个数码管上(0~F)。

三、实验内容及步骤

1.打开MUXPLUS II VHDL编辑器,完成七段译码显示的设计。包括VHDL程序输入、编译、综合。

实验程序如下:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

ENTITY alpher IS

PORT(

clk : IN STD_LOGIC;

choice : OUT STD_LOGIC_VECTOR(7 downto 0);

data : OUT STD_LOGIC_VECTOR(7 downto 0)); END alpher;

ARCHITECTURE a OF alpher IS

SIGNAL count : STD_LOGIC_VECTOR(3 downto 0); SIGNAL temp : STD_LOGIC_VECTOR(3 downto 0);

BEGIN

choice<="10000000";

clk1_label:

PROCESS (clk)

BEGIN

IF clk'event and clk='1' THEN

count<=count+1;

END IF;

END PROCESS clk1_label;

WITH count select

data <= "11111100" WHEN "0000",

"01100000" WHEN "0001",

"11011010" WHEN "0010",

"11110010" WHEN "0011",

"01100110" WHEN "0100",

"10110110" WHEN "0101",

"10111110" WHEN "0110",

"11100000" WHEN "0111",

"11111110" WHEN "1000",

"11110110" WHEN "1001",

"11101110" WHEN "1010",

"00111110" WHEN "1011",

"10011100" WHEN "1100",

"01111010" WHEN "1101",

"10011110" WHEN "1110",

"10001110" WHEN OTHERS;

END a;

2、建立仿真波形文件,使用MAXPLUS II Simulator功能进行功能仿真。仿真结果如下:

3、目标器件选择与管脚锁定并重新编译、综合、适配。

FPGA型号:EP1K100QC208-3

引脚绑定:

4、下载并验证结果

7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD 译码器,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。实验采用动态扫描的方式进行输出译码结果,将引脚进行绑定与硬件配置后便可将程序下载到芯片中。通过按实验箱上的单步按键,即可手动实现数码管连续并循环显示数值0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F;如果将时钟脉冲相应的引脚连接上,即可实现间隔为2或4或8等等的数值跳变,这是自动显示方式。除此之外,默认只有数码管左边第一个显示数值,其余七位均不显示。如果要求第一个不显示,其余的七个亮,可以修改程序,将控制数码管位选的变量由10000000改为01111111;要显示别的内容,对七段数码管进行编码,让需要的位选端打开即可。

四、实验结果与总结

学习了7段数码显示译码器设计,学习了VHDL的CASE语句应用及多层次设计方法,使我们对EDA这门学科的认识更进了一个层次。在手忙脚乱而又充实的实验中,我们认真分析程序,弄清实验原理,在做实验时有耐心、认真,遇到问题争取自己解决。为了下次更好发挥,我们认真总结实验,分析波形,完成实验报告。通过此次实验,我们进一步熟悉了7段数码显示译码器的VHDL描述方法。对VHDL的使用有了更深入的了解。

通过这次设计我们了解并掌握VHDL硬件描述语言的设计方法和思想,使自己能将已学过的数字电子系统设计、VHDL程序设计等知识综合运用于电子系统的设计中,基本掌握了运用VHDL 设计电子系统的流程和方法,加强和培养了自己对电子系统的设计能力。我们也了解了VHDL

的一些知识,VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL 语言作为一种国际标准化的硬件描述语言,自1987年获得IEEE批准以来,经过了1993年和2001年两次修改,至今已被众多的国际知名电子设计自动化(EDA)工具研发商所采用,并随同EDA设计工具一起广泛地进入了数字系统设计与研发领域,目前已成为电子业界普遍接受的一种硬件设计技术。VHDL语言的运用提高了我们设计电子系统的效率,简单实用,也在此次设计中提升了我们自身运用所学知识的能力,也更加体会出作为团队中的一员要以团队思想为主题发展自己的思维。

相关文档
最新文档