eda课设密码锁
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
摘要 (2)
引言 (3)
第1章设计说明 (4)
1.1 设计思路 (4)
1.2 真值表 (5)
第2章V erliog HD设计源程序 (6)
第3章波形仿真图 (9)
第4章管脚锁定及硬件连线 (10)
4.1 输入输出管脚的锁定 (10)
4.2 硬件显示符号 (11)
总结 (12)
参考文献 (12)
摘要
现代生活中,数字电路产品与我们接触的是越来越平凡了,包括计算机、电子表、智能仪器表及其它很多领域中,它给我们带来的不仅是工作上的方便,而且也给我们的生活娱乐添滋加彩。这次EDA课程设计中,我做的是密码锁,基于设计要求,本文主要是VHDL语言着手。
首先简单介绍一下EDA、VHDL等的有关知识,其次介绍了一下设计要求和整体设计思想,随后我对所使用的程序模块功能进行了介绍,再运用VHDL语言特点,写出各模块的程序代码和原理结构图和波形图,然后是引脚连接电路。最后是此次设计的心得体会和参考书。
引言
数字电路主要是基于两个信号(我们可以简单的说是有电压和无电压),用数字信号完成对数字量进行算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算和逻辑处理等功能,数字电路可分为组合逻辑电路和时序逻辑电路。
1 EDA简介
EDA(Electronics Design Automation)技术是随着集成电路和计算机技术的飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。它是为解决自动控制系统设计而提出的,从70年代经历了计算机辅助设计(CAD),计算机辅助工程(CAE),电子系统设计自动化(ESDA)3个阶段。前两个阶段的EDA产品都只是个别或部分的解决了电子产品设计中的工程问题;第三代EDA工具根据工程设计中的瓶颈和矛盾对设计数据库实现了统一管理,并提出了并行设计环境概念,提供了独立于工艺和厂家的系统级的设计工具。EDA关键技术之一就是采用硬件描述语言对硬件电路进行描述,且具有系统级仿真和综合能力。目前应用比较广泛的硬件描述语言就是Verilog HDL。
2 Verilog HDL简介
Verilog HDL和VHDL一样,是目前大规模集成电路设计中最具代表性、使用最广泛的硬件描述语言之一。Verilog HDL具有如下特点:
(1)能够在不同的抽象层次上,如系统级、行为级、RTL级、门级和开关级,对设计系统进行精确而简练的描述。
(2)能够在每个抽象层次的描述上对设计进行仿真验证,及时发现及时发现可能存在的错误,缩短设计周期,并保存整个设计过程的正确性。
(3)由于代码描述与工艺过程实现无关,便于设计标准化,提高设计的可重用性。如国有C语言的编程基础经验,只需很短的时间就能学会和掌握Verilog HDL,因此,Verilog HDL可以作为学习HDL设计方法的入门和基础。
第1章设计说明
1.1设计思路
本设计名称为密码锁,一个模块涉及蜂鸣、动态显示等设计所要实现的功能为:
1.手动用12个拨码开关设计三位密码(0-9)或开锁。
2. 再输入密码开锁,当密码输入正确时,指示灯亮,表示开锁成功。
3. 当密码输入错误时,蜂鸣器响五秒,表示开锁失败。
设计思想为:
本设计中在锁处于打开的状态是设计密码,此时要实现指示灯处于亮的状态,以说明此时锁处于开的状态。设置好密码后按关闭拨码使锁关闭,再输入三位数字进行开琐,如果输入的密码正确则指示灯亮,表示开琐成功,否则蜂鸣器发出响声,并间接响五秒钟,表示开锁失败。
在设计时要注意各模块时钟信号的频率,不然很难得到正确的结果。
1.2真值表
第2章Verilog HDL设计源程序
蜂鸣器简介:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
动态显示简介:动态显示技术让不同的的数码管分时点亮。即,某一个数码管的字段码从计算机的一个IO接口输出,通过SS0,SS1,ss2选通该数码管,让这个数码管显示自己的字符几个毫秒,然后将下一个数码管的字段码从计算机的同一个IO口输出。通过SS0,SS1,ss2选通下一个数码管,让下一个数码管显示自己的字符几个毫秒,一次循环。由于人眼响应较慢,最后的效果是每一个数码管都在显示各自的字符。
模块通过对程序的执行实现对密码进行设置和进行开锁,在锁开的时候对密码进行设置,然后将锁关闭,再输入三位数字进行开锁,密码正确灯亮,密码错误蜂鸣器响。
该模块程序为:
clk1,clk2:时钟控制信号
tm:蜂鸣器计数器
sign:动态数显位选信号
shuzi:动态数显段选信号
a,b,c:设置和输入密码的三位数字
d:设置密码确认信号
r:指示灯信号
w:蜂鸣器报警信号
module main(clk1,clk2,tm,sign,shuzi,a,b,c,d,r,w);
input clk1,clk2,d;
input[3:0] a,b,c;
output tm,sign,shuzi,r,w;
reg[3:0]tm;
reg r,w;
reg[3:0]e,f,g,q;
reg[2:0]sign;
reg[6:0]shuzi;
always@(posedge clk1)
begin
if(sign<3'b010)sign=sign+1; else sign=3'b000; end
always@(sign)
begin
case(sign)
000:q=a;
001:q=b;
010:q=c;
endcase
end
always@(q)
begin
case(q)
0:shuzi='b0111111;
1:shuzi='b0000110;
2:shuzi='b1011011;
3:shuzi='b1001111;
4:shuzi='b1100110;
5:shuzi='b1101101;
6:shuzi='b1111101;
7:shuzi='b0000111;
8:shuzi='b1111111;
9:shuzi='b1101111;