欢迎来到天天文库
浏览记录
ID:27562425
大小:74.50 KB
页数:7页
时间:2018-12-03
《eda数字系统设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、EDA数字系统设计实验报告——密码锁的设计丁海龙02075112张顺020750372009.12.137一、实验目的1、加深对数字电路的理解2、进一步熟悉常用仪器的使用及调试3、加深计算机辅助分析及设计的概念4、进一步掌握VHDL语言以及利用其进行系统设计与仿真5、培养我们发现问题、分析问题的创新能力二、实验要求设计一个2位的密码锁。要求如下:1、开锁代码为2位十进制并行码。2、当输入的密码与锁内的密码一致时,绿灯亮,开锁;当输入的密码与锁内的密码不一致时,红灯亮,不能开锁。3、密码可由用户自行设置。三、实验内容及步骤1、总体设计框图根据设计要求,我们可以将系统分为三部分:数据
2、输入、数据检测、数据输出。数据输入由2位并行码及密码确认开关组成;数据检测由密码检验开关及存储密码构成;数据输出则由数码管及指示灯组成。密码锁的总体设计框图如下图所示。71、器件选择共阴极七段数码管、发光二极管、按键开关、电阻、电容等。2、VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_signed.all;entitylockisport(a:instd_logic_vector(9downto0);--十位输入端。b:instd_logic_vector(9downto0);--个位输入端。en,
3、clk:instd_logic;--EN为密码确认开关。en1:instd_logic;--EN1为密码检验开关。o:outstd_logic_vector(6downto0):="0111111";--输出七段数码管的控制。d:outstd_logic_vector(6downto0):="0111111";k:outstd_logic;m:outstd_logic);endlock;architecturebehaveoflockissignale:std_logic_vector(3downto0);signalf:std_logic_vector(3downto0);si
4、gnalg:std_logic_vector(3downto0);signalh:std_logic_vector(3downto0);signalcount1,count2:std_logic:='0';signals:std_logic:='0';7beginprocess(a,e)--十位的数据转换。beginif(a(9downto0)="0000000000")theno(6downto0)<="0111111";elsif(a(0)='1')thene<="0000";o(6downto0)<="0111111";elsif(a(1)='1')thene<="0001
5、";o(6downto0)<="0000110";elsif(a(2)='1')thene<="0010";o(6downto0)<="1011011";elsif(a(3)='1')thene<="0011";o(6downto0)<="1001111";elsif(a(4)='1')thene<="0100";o(6downto0)<="1100110";elsif(a(5)='1')thene<="0101";o(6downto0)<="1101101";elsif(a(6)='1')thene<="0110";o(6downto0)<="1111100";elsif(a(
6、7)='1')thene<="0111";o(6downto0)<="0000111";elsif(a(8)='1')thene<="1000";o(6downto0)<="1111111";elsif(a(9)='1')thene<="1001";o(6downto0)<="1100111";endif;endprocess;process(b,f)--个位的数据转换。beginif(b(9downto0)="0000000000")thend(6downto0)<="0111111";elsif(b(0)='1')thenf<="0000";d(6downto0)<="011
7、1111";elsif(b(1)='1')thenf<="0001";d(6downto0)<="0000110";elsif(b(2)='1')thenf<="0010";d(6downto0)<="1011011";elsif(b(3)='1')thenf<="0011";d(6downto0)<="1001111";elsif(b(4)='1')thenf<="0100";d(6downto0)<="1100110";elsif(b(5)='1')thenf<="0101"
此文档下载收益归作者所有