曹新.docx
《曹新.docx》由会员分享,可在线阅读,更多相关《曹新.docx(8页珍藏版)》请在冰豆网上搜索。
曹新
EDA课程设计
数
字
密
码
锁
所在院系:
电信学院
班级:
信息102
姓名:
曹新
学号:
201000484221
指导教师:
董秀洁黄杰
设计日期:
2013-1-11
目录
一、课程设计任务………………………………3
二、电路功能分析………………………………3
三、电路组成……………………………………4
四、心得体会…………………………………14
一、课程设计任务
1、14位数字密码分成高7位(DH6….DH0)和低7位(DL6….DL0),用数字逻辑开关预置,输出信号out为1表示开锁,否则关闭。
2、14位数字密码分时操作,先预置高7位,然后再置入低7位,(顶层电路可参考图1)。
3、要求电路工作可靠,保密性强,开锁出错立即报警,(用声光两种形式同时报警)。
4、利用MAXPLUS2软件进行设计、编译、并在FPGA芯片上实现。
5、14位密码自己设定。
密码为10+自己学号后三位二进制数。
二、电路功能分析
Ic9a是用来锁存译码,用来解锁14位密码器的电路图。
D触发器控制clk,同时用来控制声报警,
另外D触发器用来控制开锁功能
三、电路组成
1、顶层电路组成
CLK为时钟控制信号,CLR为清零信号,D6-D0为7位密码输入端,CLK2为开锁键。
输入密码时,先置CLR为0进行清零,然后将高7位密码置入D6-D0,然后给CLK一个脉冲,高7位密码被锁存,然后再把低7位置入D6-D0,然后给开锁键,CLK2一个脉冲,如果密码正确的话OUT2输出为1进行开锁,如果密码错误则OUT4和OUT3输出为1,进行声光报警
2.密码模块IC9A设计:
编程如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYREGIS
PORT(D:
INSTD_LOGIC_VECTOR(6DOWNTO0);
CLK,CLR:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDREG;
ARCHITECTUREARTOFREGIS
BEGIN
PROCESS(CLR,CLK)
BEGIN
IF(CLR='0')THEN
Q<="0000000";
ELSIF(CLK'EVENTANDCLK='1')THEN
Q<=D;
ELSENULL;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART;
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYSHM2IS
PORT(INPUT1:
INSTD_LOGIC_VECTOR(6DOWNTO0);
INPUT2:
INSTD_LOGIC_VECTOR(6DOWNTO0);
COUNT:
OUTSTD_LOGIC);
ENDSHM2;
ARCHITECTUREARTOFSHM2IS
SIGNALSEL:
STD_LOGIC_VECTOR(13DOWNTO0);
BEGIN
SEL<=INPUT1&INPUT2;
WITHSELSELECT
COUNT<='1'WHEN"10000011001011",
'0'WHENOTHERS;
ENDARCHITECTUREART;
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYIC9AIS
PORT(QL:
INSTD_LOGIC_VECTOR(6DOWNTO0);
CLK,CLR:
INSTD_LOGIC;
OUT2:
OUTSTD_LOGIC);
ENDIC9A;
ARCHITECTUREARTOFIC9AIS
COMPONENTREGIS
PORT(CLK,CLR:
INSTD_LOGIC;
D:
INSTD_LOGIC_VECTOR(6DOWNTO0);
Q:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDCOMPONENT;
COMPONENTSHM2IS
PORT(INPUT1:
INSTD_LOGIC_VECTOR(6DOWNTO0);
INPUT2:
INSTD_LOGIC_VECTOR(6DOWNTO0);
COUNT:
OUTSTD_LOGIC);
ENDCOMPONENT;
SIGNALSEL:
STD_LOGIC_VECTOR(6DOWNTO0);
BEGIN
U1:
REGPORTMAP(CLK,CLR,QL,SEL);
U2:
SHM2PORTMAP(SEL,QL,OUT2);
ENDARCHITECTUREART;
时序仿真如下:
3.分频器:
编程如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYDIV32IS
PORT(CLK:
INSTD_LOGIC;
CLKOUT:
OUTSTD_LOGIC);
ENDDIV32;
ARCHITECTUREARTOFDIV32IS
SIGNALCNT:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALN_T,N_1:
STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
N_1<="00011111";
N_T<="00010000";
PROCESS(CLK)
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
IF(CNT>=N_1)THEN
CNT<="00000000";
ELSE
CNT<=CNT+1;
ENDIF;
IF(CNTCLKOUT<='0';
ELSE
CLKOUT<='1';
ENDIF;
ENDIF;
ENDPROCESS;
ENDART;
时序仿真如下:
4.D锁存器:
编程如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYDCFIS
PORT(D,CLK,R:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC);
ENDDCF;
ARCHITECTUREARTOFDCFIS
BEGIN
PROCESS(CLK)
BEGIN
IF(R='0')THEN
Q<='0';
ELSIF(CLK'EVENTANDCLK='1')THEN
Q<=D;
ELSENULL;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART;
时序仿真如下:
四、心得体会
十八周我们进行了EDA课程设计,我们设计了十四位数字密码器,首先老师给我们讲解了实验中可能出现的问题,同时老师也讲解了我们应该如何自己动手设计程序,让我们了解EDA的重要性,也是为了更好地检验我们的掌握程度如何。
我本来是不知道如何设计程序的,后来在老师的讲解下,我逐渐理清了设计的思路。
该电路最重要的就是ic9a模块的设计。
该部分是一个密码所存和译码部分。
应该分为两部分及密码所存部分和译码部分。
每次输入七位密码,为了提高密码的安全性。
高七位锁存后不能改变,第七位可以多次输入。
但是实际操作中总是出现各种各样的问题,比如在书写程序时,仿真结果不正确等。
在绘制原理图时很多原件不知道到哪里去找,就减慢了画图的速度。
后来经过老师的悉心指导,才知道是D触发器引脚连接有错误,本来应该接置位端,我却接成了清零端,所以才会出现这种错误。
后来我改正之后,在电脑上再次仿真,终于出现正确结果。
这次课设确实让我学到了不少东西。
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.
最重要的就是基于课本,当遇到不知道的东西是就要去善于去找资料。
在已有的知识上寻找解决办法。
要善于灵活运用基本的vhdl语言,比如顺序语句并行语句,原件的例化,及调用。
还有就是思路决定出路,没有正确的思路,不可能完成设计。
要多思考,开放思维。
这次课程设计让我明白了我有很多不足,我以前经常觉得我已经学会了很多,但是这次设计我了解到了眼高手低。
老师严谨细致、一丝不苟的作风一直是我学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次课程设计的每个实验细节和每个数据,都离不开老师您的细心指导。