实验目的
掌握七段译码器
实验设备
quartus II 5.0
实验内容
library ieee;
use ieee.std_logic_1164.all;
entity qdymq is
port(a:in std_logic_vector(3 downto 0);
led:out std_logic_vector(7 downto 0));
end qdymq;
architecture one of qdymq is
begin
with a select
led<="00111111"when"0000",
"00000110"when"0001",
"01011011"when"0010",
"01001111"when"0011",
"01100110"when"0100",
"01101101"when"0101",
"01111101"when"0110",
"00000111"when"0111",
"01111111"when"1000",
"01101111"when"1001",
"ZZZZZZZZ"when others;
end one;
总结
七段译码器原理图功能正确。
第二篇:七段译码器实验报告
综合实验一 七段译码器
班级 —— 姓名 —— 学号————
一、实验目的
用VHDL语言设计七段译码器
二、实验内容
观察七段数码管的真值表,用VHDL语言设计七段译码器
三、实验方法
采用基于FPGA进行数字逻辑电路设计的方法。
采用的软件工具是MaxplusⅡ软件仿真平台,采用的硬件平台是Altera
EPF10K20TI144_4的FPGA实验箱。
四、实验步骤
1. 输入源代码。打开Maxplus ,点击File -> Project -> Name ,新建工程名为“se7_decoder”,完成点击OK。然后点击File -> New ,选择Text Editor file ,完成点击OK。最后输入七段译码器的VHDL源代码并保存为当前工程名。
2.调试编译。选择芯片类型:点击Assign -> Device ,选择芯片类型为EPF10K20TI144-4 ,完成点击OK。再点击MAX+plusII下的Compiler ,直到调试成功如图 :
3.波形仿真。点击MAX+plusII -> waveform editor -> Node -> Enter nodes from SNF -> List -> => -> OK,右击各引脚,设置输入信号值、周期和结束时间,点击存盘,点击MAX+plusII -> Simulator完成波形仿真。
4.时序分析。点击MAX+plusII下的Timing Analyzer ,完成时序分析如图所示:
5. 引脚锁定。点击Assign -> Pin/Location/Chip,添加各引脚信息,再对文件重新编译一次。
6. 编程下载。连接好计算机和实验箱,打开电源。点击MAX+plusII -> Programer →Configure完成下载,验证。
实验小结:总体来说,这次实验完成的还算顺利,初步了解了一点VHDL代码的编写,好像这个代码和真值表密切相关,把他们之间的对应关系找出来就行了,其他不在范围的要用强制规定一下,应该是起排除干扰的作用吧,或者像C++抛出异常也应该可以。这样思路是很清晰,但是过程有点繁琐,不过初学者还是先做这个吧,呵呵。在波形仿真的时候遇到了一点小问题,之前的波形和真值表始终对应不上(虽说仿真成功了),最初以为是延时造成的暂时性冒险,后来发现哪段都对不上。改了好几组输入波形,都失败了。后来点开时序分析,才发现它们的延时是十几纳秒,和我设置的周期很接近。立马调大输入信号周期(改为了上百纳秒),再进行仿真,果然,问题得以解决,波形和真值表符合的很好。以前忽略了这个细节,对波形注意不够,今后应该多多重视。更要善于发现问题、解决问题。