您的当前位置:首页正文

(完整word版)eda实验1:七段数码显示译码器设计

2023-03-22 来源:汇智旅游网
电子设计自动化实验报告 姓名:路传涛 学号:201215728 时间 11-12 第四大节 地点S-5B208

七段数码显示译码器设计

1.实验目的:

学习7段数码显示译码器设计,学习VHDL的多层次设计方法。

2. 实验原理:

七段数码管由8个(a,b,c,d,e,f,g,dp)按照一定位置排列的发光二极管构成,通常采取共阴极或者共阳极的设计,将8个二极管的同一极接在一起,通过分别控制另外的8个电极的电平,使二极管导通(发光)或截止(不发光)。 七段数码显示译码器的功能就是根据需要显示的字符,输出能够控制七段数码管显示出该字符的编码。

3. 实验仪器:

EDA6000通用实验开发系统,P4电脑

4. 实验内容:

1)用VHDL设计7段数码管显示译码电路,并在VHDL描述的测试平台下对译码器进行功能仿真,给出仿真的波形。 程序: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY SMG IS

PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));

---------------------------------------------------------------------

电子设计自动化实验报告 姓名:路传涛 学号:201215728 时间 11-12 第四大节 地点S-5B208

END;

ARCHITECTURE ONE OF SMG 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;

仿真波形:

电子设计自动化实验报告 姓名:路传涛 学号:201215728 时间 11-12 第四大节 地点S-5B208

2)数码管显示电路设计

利用以上设计的译码器模块,设计一个8位的显示电路。

利用时分复用的方式快速轮流点亮8个数码管,在视觉上形成8个数码管同时显示的效果(尽管实际上同一时间只有一个数码管被点亮)。

要实现以上功能,就必须按照一定时钟节拍,轮流使译码器输出所需要字符的编码;同时控制数码管的公共电极电平,轮流点亮数码管。

备注:在新试验箱中可酌情减少位数实现,新试验箱中管脚查阅教材中附录。 程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY VHDL42 IS PORT(CLK:IN STD_LOGIC;

S:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); D:IN STD_LOGIC_VECTOR(3 DOWNTO 0); A:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END VHDL42;

电子设计自动化实验报告 姓名:路传涛 学号:201215728 时间 11-12 第四大节 地点S-5B208

ARCHITECTURE ONE OF VHDL42 IS

SIGNAL C:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN

P1:PROCESS(CLK) BEGIN

IF CLK'EVENT AND CLK='1'THEN IF C<\"111\"THEN C<=C+1;ELSE C<=\"000\"; END IF; END IF; S<=C;

END PROCESS P1; P2:PROCESS(D) BEGIN CASE D IS

WHEN \"0000\"=> A<=\"0111111\";WHEN \"0001\"=> A<=\"0000110\"; WHEN \"0010\"=> A<=\"1011011\";WHEN \"0011\"=> A<=\"1001111\"; WHEN \"0100\"=> A<=\"1100110\";WHEN \"0101\"=> A<=\"1101101\"; WHEN \"0110\"=> A<=\"1111101\";WHEN \"0111\"=> A<=\"0000111\"; WHEN \"1000\"=> A<=\"1111111\";WHEN \"1001\"=> A<=\"1101111\"; WHEN \"1010\"=> A<=\"1110111\";WHEN \"1011\"=> A<=\"1111100\"; WHEN \"1100\"=> A<=\"0111001\";WHEN \"1101\"=> A<=\"1011110\"; WHEN \"1110\"=> A<=\"1111001\";WHEN \"1111\"=> A<=\"1110001\"; WHEN OTHERS=> NULL; END CASE; END PROCESS P2; END;

仿真波形:

电子设计自动化实验报告 姓名:路传涛 学号:201215728 时间 11-12 第四大节 地点S-5B208

管脚锁定:

信号 clk rst ena A(6) A(5) A(4) A(3) A(2) A(1) A(0) S(2) S(1) S(0)

旧试验箱 管脚号 连接的器件 43 Clk1 35 开关2 30 开关1 11 SEG g 10 9 8 7 6 5 80 79 78 SEG f SEG e SEG d SEG c SEG b SEG a 三-八译码器 的控制输入端 新试验箱No.2 管脚号 连接的器件 153 CLK2 234 键2 233 键1 167 SEG g 166 165 164 163 162 161 SEG f SEG e SEG d SEG c SEG b SEG a 5. 实验心得:

通过本次实验,更好的掌握了Verilog,并学会了使用quartusII软件。实验中因知识的不足,遇到了不少问题,在老师的帮助下,得到了很好的解决,增强了自己对该门课的兴趣。

因篇幅问题不能全部显示,请点此查看更多更全内容