下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE1 西华大学实验报告第组.第组实验报告(计算机类)开课学院及实验室:实验时间:年月日学生姓名学号成绩学生所在学院年级/专业/班课程名称EDA技术(机械)课程代码实验项目名称数字锁项目代码指导教师项目学分一、实验目的1.了解VHDL语言编程方法,学会熟练运用quartus软件2.了解数字锁的运作原理3.了解如何使用VHDL设计一个数字锁二、内容与设计思想1.数字锁即电子密码锁,锁内有若干密码,所用密码可由用户自己选定。2.数字锁有两类:一类是并行接收数据称为并行锁;另一类是串行接收数据,称为串行锁。如果输入代码与锁内密码一致,锁被打开;否则封闭开锁电路并发出警报。3.设计一个8位串行数字锁:(1)开锁代码为8位二进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁,方可开锁,并点亮指示灯LT。否则系统进入“错误状态”并发出警报信号。(2)开锁程序由设计者确定,并要求锁内给定的密码是可调的,且预置方便,保密性好。(3)串行数字锁的报警方式是点亮指示灯LF,并使喇叭鸣叫报警,直到按下复位键,报警才停止。此时,数字锁自动进入等待下一次开锁状态。三、使用环境winXP或win7Quartusii编程环境核心代码及调试过程数字锁分频模块——占空比1:10000方波,用于消除抖动libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityfenisport(clk:instd_logic;clk1:outstd_logic);endfen;architecturebhvoffenisbeginprocess(clk)variablecnt:integerrange0to9999;beginifclk'eventandclk='1'thenifcnt=9999thencnt:=0;clk1<='1';elsecnt:=cnt+1;clk1<='0';endif;endif;endprocess;endbhv;消抖同步模块libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityxiaoproisport(a,clk1:instd_logic;b:outstd_logic);endxiaopro;architecturebhv1ofxiaoproissignaltmp1:std_logic;beginprocess(clk1,a)variabletmp2,tmp3:std_logic;beginifclk1'eventandclk1='0'thentmp1<=a;tmp2:=tmp1;tmp3:=nottmp2;endif;b<=tmp1andtmp3andclk1;endprocess;endbhv1;逻辑功能模块——程序核心libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityCORNAAisport(clk,clr,k0,k1,load:instd_logic;clr用于清除报警信号和关锁,k1,k0代表1和0的按键开关,load为设置密码的开关lt:inoutstd_logic; lamp:outstd_logic_vector(7downto0);lamp接发光二极管,用于显示已经输入密码的个数lf,alm:outstd_logic);endCORNAA;architecturebhv2ofCORNAAissignalshift,lock:std_logic_vector(7downto0);signallam:std_logic_vector(7downto0);signalla:std_logic;beginprocess(clk,clr)beginifclr='0'thenla<='0';elsifclk'eventandclk='1'thenifload='0'thenla<='1';endif;endif;endprocess;process(clk,clr)variablea:integerrange0to8;beginifclr='0'thenlam<="00000000";shift<="00000000";a:=0;lt<='0';lf<='0';alm<='0';elsifclk'eventandclk='1'theniflt='0'then ifa/=8then ifk1='0'then shift<='1'&shift(7downto1);输入一位密码"1" lam<='1'&lam(7downto1);显示输入了一位密码 a:=a+1; elsifk0='0'then shift<='0'&shift(7downto1);输入一位密码"0" lam<='1'&lam(7downto1); a:=a+1; endif;else a:=0; ifshift=lockthenlt<='1';--密码正确else lf<='1';--密码错误 alm<='1';endif;endif;elsifla='1'thenifk1='0'thenlock<='1'&lock(7downto1);lam<='0'&lam(7downto1);elsifk0='0'thenlock<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论