EDA课设论文
- 格式:docx
- 大小:1.20 MB
- 文档页数:17
第一篇:eda课程设计数字钟一、设计要求设计一个数字钟,具体要求如下:1、具有时、分、秒计数显示功能,以24小时循环计时。
2、具有清零、校时、校分功能。
3、具有整点蜂鸣器报时以及LED花样显示功能。
二、设计方案根据设计要求,数字钟的结构如图8-3所示,包括:时hour、分minute、秒second计数模块,显示控制模块sel_clock,七段译码模块deled,报时模块alert。
三、VHDL程序library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; useIEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM;--use UNISIM.VComponents.all;entityddz is port(rst,clk: in std_logic; hour_h: out std_logic_vector( 6 downto 0); hour_l: outstd_logic_vector( 6 downto 0); min_h: out std_logic_vector( 6 downto 0);min_l: out std_logic_vector( 6 downto 0);sec_h: out std_logic_vector( 6 downto 0);sec_l: out std_logic_vector( 6 downto 0)); endddz;architecture Behavioral of ddz is signalcnt: std_logic_vector(15 downto 0); signalsec_h_in: std_logic_vector( 3 downto 0); signalsec_l_in: std_logic_vector( 3 downto 0); signalmin_h_in: std_logic_vector( 3 downto 0); signalmin_l_in: std_logic_vector( 3 downto 0); signalhour_h_in: std_logic_vector(3 downto 0); signalhour_l_in: std_logic_vector(3 downto 0);signalclk_s,clk_m,clk_h: std_logic; begin process(rst,clk) begin if rst='0' then sec_h_in'0');sec_l_in'0');clk_msec_l_inifsec_h_in=5 thensec_h_inclk_melsesec_h_inclk_mend if; else sec_l_inclk_mend if; end if; end process;process(rst,clk_m) begin if rst='0' then-- min_h_in'0');min_l_in'0'); -- clk_hmin_l_inmin_h_inclk_mend if; else min_l_inend if; end if; end process;process(rst,clk_n) begin if rst='0' then-- hour_h_in'0');hour_l_in'0'); -- clk_hhour_l_inhour_h_inclk_nend if; else hour_l_inend if; end if; end process;process(sec_l_in) begin casesec_l_in iswhen "0000" =>sec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lprocess(sec_h_in) begin casesec_h_in iswhen "0000" =>sec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hprocess(min_l_in) begin casemin_l_in iswhen "0000" =>min_lmin_lmin_lwhen "0011" =>min_lmin_lmin_lmin_lmin_lmin_lmin_lmin_lprocess(min_h_in) begin casemin_h_in iswhen "0000" =>min_hmin _h min _hmin _hmin _h min _hmin _hmin _hmin _hmin _hmin _hend case; end process;process(hour_l_in) begin casehour_l_in iswhen "0000" =>hour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lprocess(hour_h_in) begin casehour_h_in iswhen "0000" =>hour_hhour_hhour_hhour_h hour _h hour _h hour _h hour _h hour _hhour_h hour _h四、VHDL仿真结果五、课程设计心得通过这次课程设计,有效得巩固了课本所学的知识,而且通过上机仿真不断发现问题并及时改正,加深了我们对该课程设计的印象。
数字电子技术课程设计实验报告一、实验目的本产品具有机、电、声、光、磁结合的特点,通过制作本产品完成从仿真到安装实践的全程训练过程。
由学生完成从电路原理仿真验证,到元器件检测、焊接、安装、测试产品的全过程,达到培养同学们工程实践能力的目的。
二、工作原理 1.基本框图2. 555构成的单稳态触发电路的工作原理555定时器的功能主要由两个比较器C 1和C 2决定,比较器的参考电压由分压器提供,在电源和地之间加V CC 电压,并让V M 悬空时,上比较器C 1的参考电压为2/3V CC ,下比较器C 2为1/3V CC 。
单稳态触发器特点:·两个工作状态:稳态和暂稳态2/3 V CC1/3 V CC·在外界触发脉冲作用下,能从稳态翻转到暂稳态,在暂稳态维持一段时间后,在自动返回稳态。
·暂稳态维持时间的长短取决于电路本身的参数,与触发脉冲的宽度和幅度无关。
a 单稳态触发电路b 工作波形暂稳态输出的宽度W t =RCln3≈1.1RC⎩⎨⎧→=→==开始充电截止则降至只要触发时C T Q V V V V V D C C CC I I ,101,3121⎩⎨⎧=→==→→→=→=→=→→=⎩⎨⎧=→===→→==>=保持放电导通充电至截止若通电后保持导通若通电后即可,稳态时,无触发信号:0110032101100)131(1211212Q V V C T Q V V V C T Q Q V V V T Q V V V C C D C CCC D C C C D C CCI)已经回到高于时(假定此时充至当CC I CC C V V V V 3132保持开始放电至导通则0110,0102121=⎩⎨⎧==⎩⎨⎧→=→==Q V V C T Q V V C C D C C 3ln 320lnRC V V V RC t CCCC CC w =--=3.机器猫工作原理(1)该装置主要由声控检测电路、光控检测电路、磁控检测电路、触发电路、单稳态电路、开关组成。
EDA课程设计论文论文题目:EDA概述及计数器设计设计者: 牟俸呈指导老师:包明学号:专业班级:中国•重庆2011 年 4月目录1.摘要,关键字 (3)2.正文 (4)2.1 EDA技术的基本特征 (4)2.2EDA技术的基本设计方法 (5)2.3设计任务及要求 (7)2.4程序的编辑 (7)2.5用QUARTUS II软件进行模拟仿真 (8)2.6收获体会、存在问题和进一步的改进意见等 (8)3.参考文献 (8)EDA概述及VHDL语言实现计数器的设计[摘要]:随着基于PLD的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机应用等领域的重要性日益突出。
本文详细介绍EDA课程设计任务——计数器的设计的详细设计过程及结果,并总结出心得体会。
[关键字]:EDA技术;VHDL语言;计数器EDA技术作为现代电子设计技术的核心,它依赖强大的计算机,在EDA 工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑简化、逻辑分割、逻辑综合,以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
介绍在QUARTUS II软件环境下开发基于VHDL语言计数器的设计。
2.1 EDA技术的基本特征EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子设计方法。
下面介绍与EDA基本特征有关的几个概念。
1.“自顶向下”的设计方法10年前,电子设计的基本思路还是选用标准集成电路“自底向上”地构造出一个新的系统,这样的设计方法就如同一砖一瓦建造金字塔,不仅效率低、成本高而且容易出错。
高层次设计是一种“自顶向下”的全新设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。
eda课程设计论文4位全加器一、教学目标本课程的目标是让学生理解并掌握全加器的工作原理和设计方法,能够运用数字逻辑设计出功能完整的全加器。
知识目标:使学生了解全加器的功能和作用,理解其内部电路的工作原理,掌握全加器的真值表和布尔表达式。
技能目标:培养学生运用数字逻辑设计简单电路的能力,能够独立完成全加器的设计和仿真。
情感态度价值观目标:培养学生对电子技术的兴趣,提高学生解决问题的能力,培养学生的创新精神和团队协作精神。
二、教学内容本课程的教学内容主要包括全加器的功能和工作原理、全加器的真值表和布尔表达式、全加器的设计和仿真。
首先,讲解全加器的功能和作用,通过具体的实例让学生了解全加器在计算机中的重要性。
然后,讲解全加器的内部电路工作原理,使学生理解全加器是如何实现加法的。
接下来,介绍全加器的真值表和布尔表达式,让学生掌握全加器的工作原理。
最后,讲解全加器的设计和仿真方法,培养学生运用数字逻辑设计电路的能力。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。
首先,通过讲授法向学生传授全加器的理论知识,使学生了解全加器的基本概念和工作原理。
然后,通过讨论法引导学生进行思考和讨论,提高学生的理解能力。
接下来,通过案例分析法分析实际案例,使学生了解全加器在计算机中的应用。
最后,通过实验法让学生动手设计和仿真全加器,提高学生的实践能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源,包括教材、参考书、多媒体资料和实验设备。
教材:选用《数字逻辑设计》作为主教材,系统地介绍全加器的理论知识。
参考书:推荐《计算机组成原理》等参考书,供学生深入学习和参考。
多媒体资料:制作全加器的原理讲解和设计过程的视频,通过动画和图像等形式直观地展示全加器的工作原理。
实验设备:准备数字逻辑设计实验室,提供全加器的设计和仿真实验所需设备。
引言:
随着科技的飞速发展,电子设计自动化(EDA)技术在当今的电子产业中发挥着越来越重要的作用。
EDA课程设计作为培养学生实践能力和创新思维的重要环节,具有举足轻重的地位。
本课程设计的目标是帮助学生掌握现代电子系统设计的基本原理和方法,培养其在实际项目中运用EDA工具的能力,为未来的电子系统设计和研究打下坚实的基础。
在这个信息化、智能化的时代,电子设备已经深入到人们生活的方方面面,从手机、电视到航空航天,无处不见其身影。
电子设备的设计与制造离不开EDA技术的支持。
通过本课程设计的学习,学生将了解和掌握先进的EDA设计方法和工具,培养其在实际项目中运用EDA技术的能力,为未来的电子系统设计和研究打下坚实的基础。
本课程设计的课程内容丰富多样,包括电路原理图设计、电路仿真、布局与布线、可编程逻辑器件设计等。
我们将以实际项目为载体,通过案例分析、实践操作等方式,使学生深入理解EDA技术在电子系统设计中的应用。
同时,本课程设计还将注重培养学生的团队协作和沟通能力,以适应未来职场的需求。
通过本课程设计的学习,学生将能够掌握先进的EDA技术和工
具,具备电子系统设计的基本能力。
这将对他们的未来发展产生积极的影响,使他们能够在电子产业中发挥更大的作用,为推动我国电子产业的进步做出贡献。
摘要《EDA技术》是电子信息科学与技术专业学生在电子技术实验技能方面综合性质的实验训练课程,其目的和任务是通过一周的时间,让学生掌握EDA的基本方法,熟悉一种EDA软件(VHDL),并能利用EDA软件设计一个电子技术综合问题,为以后进行工程实际问题的研究打下设计基础。
关键词:EDA;VHDL;实验设计Abstract"EDA technology" is the electronic Information Science and Technology students test the integrated nature of training courses in electronic technology experiment skills, their purpose and mission through the week, so that students master the basic method of EDA, a familiar EDA software (VHDL ), and can use EDA software to design an integrated electronic technical issues, and lay the foundation for future research designed to make practical engineering problems.Keywords: EDA; VHDL; experimental design目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 概述 (1)1.2 课题设计主要内容 (1)第2章开发工具简介 (2)2.1 EDA、VHDL简介 (2)2.2 方案论证 (3)2.2.1 乒乓游戏机的功能 (3)2.2.2 乒乓游戏机设计思路 (3)2.3 乒乓球各模块的设计 (4)2.3.1 控制模块的设计 (4)2.3.2 送数据模块的设计 (8)2.3.3 产生数码管片选信号模块的设计 (9)2.3.4 7段译码器模块的设计 (10)第3章设计结果与分析 (12)3.1 系统的波形仿真 (12)3.2 乒乓游戏机顶层电路图 (13)结论 (15)参考文献 (16)第1章绪论1.1 概述20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
武汉职业技术学院《EDA技术》课程结业论文论文题目:按键输入电路设计姓名:付昊所在院系:电子信息工程学院班级:电信12304班学号:12012830指导教师:虞沧武汉职业技术学院二〇一四年六月目录第一章EDA技术简介与VHDL语言第二章设计方法与步骤第三章设计程序及说明第四章程序仿真和验证摘要人类文明已进入到高度发达的信息化社会。
信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。
电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。
实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDElectronic Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。
为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。
目前,在国内电子技术教学和产业界的技术推广中已形成“EDA 热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。
本设计主要利用VHDL硬件描述语言在EDA平台Quartus II上设计一个4×4阵列键盘扫描电路,将行扫描信号输入阵列键盘,读取列信号的值,输出按键编码,从而判断出按键按下的位置。
并且使用Modelsim软件进行模拟仿真,下载到EDA实验箱进行硬件证。
关键词:EDA VHDL语言 4×4阵列键盘扫描第一章EDA技术简介与VHDL语言1.1 EDA技术简介1.1.1 EDA技术含义EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
目录1 绪论 (1)2 方案论证 (1)2.1程序设计的任务要求 (1)2.2方案选择 (2)3 单元模块 (5)3.1程序中使用的信号介绍: (5)3.2子模块功能介绍: (6)4 整体电路 (13)5 仿真及实物图 (13)5.2 实物图 (14)6心得 (17)参考文献 (18)附录 (18)源程序 (18)1.绪论EDA课程教会了我们如何运用电脑辅助我们进行数字电路的设计。
还教会了我们用于对FPGA进行编程的VHDL语言。
我十分喜欢FPGA的编程,也觉得这次课程设计是一次实践的好机会。
由于在之前我已经写过一些FPGA的程序,所以在拿到这个题目时我的思路还是比较清晰的。
2.方案论证2.1程序设计的任务要求2.1.1初始条件:设计一个交通灯控制器,有一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、黄、绿三色箭头信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。
2.1.2要求完成的主要任务:2.1.2.1主干道和支干道构成的十字路口上有车辆交替运行,主干道每次直行通行时间为30s,左转通行时间为25s,支干道每次直行通行时间为20s,左转通行时间为15s。
2.1.2.2每次绿灯变红灯时,黄灯先亮5s,才能变换运行车道。
上述时间设置可修改。
2.1.2.3十字路口有数码管显示灯亮时间,要求灯亮时间以秒为单位进行减计数。
2.2方案选择2.2.1方案一只使用一个计时器完成所有计时工作,通过计数到不同的数值时发出不同的脉冲信号告诉系统相应的计时值已到。
该方案的优势在于占用资源少,只用使用一个计时器就可完成5种不同的计时。
但不管是在哪一个状态都会调用该计时器,一旦该计时器出错,整个系统都会受影响,不利于系统的维护和模块化编程的思想。
2.2.2方案二使用5个计时器进行计时。
在某个状态时,系统会调用相应的计时器开始计时,并且只检测相应计时器的计时完成脉冲信号。
该方案的缺点在于占用FPGA 资源多,但由于FPGA上资源足够,这个缺陷不影响系统工作。
摘要音乐节拍器作为音乐初学者必备的辅助器材可以帮助演奏者在练习期间能将音符表达的更贴切,避免演奏难度及音乐情绪干扰演奏速度影响表演效果因此,节拍器的精度及质量至关重要。
而传统基于机械时钟的节拍器要制作出高质量的成品成本很高,故制作工艺简单,体积小,功能全面,而且时钟稳定,无需维护的电子音节节拍器应运而生。
随着电子技术的发展, 应用系统向着的应用引起电子产品及系统开发的革命性变革。
和其他的电子技术相比,VHDL 语言作为可编程逻辑器件的标准语言描述能力强, 覆盖面广, 抽象能力强, 在实际应用中越来越广泛。
在这个阶段,人们开始追求贯彻整个系统设计的自动化,可以从繁重的设计工作中彻底解脱出来,把精力集中在创造性的方案与概念构思上,从而可以提高设计效率,缩短产品的研制周期。
作为一种工业标准硬件描述语言。
本文为广大的电子爱好者及音乐学习者提供了一份不同于传统音乐节开启的设计方案,利用向着小型化、快速化、大容量、重量轻的方向发展的EDA 技术阐述了完整全面的设计方法及结果,从概念模型设计到详细的系统设计均图文并茂的展示了设计的思路与方式,并附ALTERA电子公司专用仿真设计环境QYARTUS II的波形仿真图及全部源码(VHDL语言),目录引言............................................................ - 1 -1.系统的设计要求................................................ - 1 -2.系统分析...................................................... - 1 -2.1 系统构成................................................ - 1 -2.2 系统实现过程............................................ - 2 -3.具体模块设计.................................................. - 3 -3.1数控分频电路TimeCLK..................................... - 3 -3.2数码管驱动显电路LED8.................................... - 3 -3.3声光输出电路OutputTem................................... - 3 -4.程序设计...................................................... - 4 -4.1数控分频电路TimeCLK源代码.............................. - 4 -4.2数码管驱动显电路LED8源代码............................. - 4 -4.4 顶层文件设计模块........................................ - 2 -5.运行结果与分析................................................ - 2 -5.1数控分频电路TimeCLK..................................... - 2 -5.2数码管驱动显电路LED8.................................... - 2 -5.3声光输出电路OutputTem................................... - 2 -6.结束语........................................................ - 2 -参考文献........................................................ - 3 -引言随着当前科学技术的发展以及人民的思想愈加开放,使用电子产品不再是一种可以谋生的特殊技术,相反技术走进生活成为新时代的口号和发展动向,越来越多的人致力于设计出更巧妙的电子产品以帮助我们更好的生活、工作、学习。
EDA技术在电子工程设计中的应用论文随着时代的进步,科技网络等不断的发展,人类进入到信息高速发展的时代,电子产品成为人们必须具备的生活用品,电子产品以及各项附加的功能让人们的生活变得更加精彩,以下是“EDA技术在电子工程设计中的应用论文”希望能够帮助的到您!1.EDA技术的概念和特点1.1EDA技术的概述EDA技术,简称电子设计自动化技术,所指的就是以计算机为工作的主要载体,把计算机技术、信息处理技术、应用电子技术以及信息智能化技术等技术发展中的最高研究效果充分运用到工作领域中,实现自动设计完成电子产品。
最初在发展中并没有EDA技术的概念,它是由可编程逻辑器件发展而来的,可以说,EDA技术是可编程逻辑器件的发展和延伸。
在EDA技术的历史发展过程中,最初是通过技术人员手动完成设计、布线等集成电路的工作,当然,这也是历史的局限性造成的,在手工完成集成电路的年代,电子集成电路相对要简单很多,然后,在二十世纪七十年代时,科技人员开始试图进行电子设计自动化的初步开发,在不断的实践中,终于实现了电子设计自动化技术的初步运用,随后在五年的时间中,电子设计自动化完成了重要的创新和,逐渐取得了重大的进步,在不断的发展中,电子设计自动化技术逐步被应用形成了商业化的应用,并在电子工程设计中取得了很大的成就。
时至今日,电子设计自动化技术在电子工程设计的'过程中,出现错误的频率不断降低,促进了电子工程设计的不断发展。
EDA技术的在不断的发展过程中,不仅仅在电子工程设计中取得了重大的成就,在航空航天、机械、化工等许多领域,都实现了EDA技术的应用,并且取得的成就也非常的令人瞩目,鉴于EDA技术应用的广泛性,必须主动研究在电子工程设计中运用EDA技术,促进电子工程设计不断发展,有效实现电子女工程设计水平的提升。
1.2EDA技术的主要特点2.EDA技术在电子工程设计中的应用2.1在电路性能优化中运用EDA技术现阶段,EDA技术在电子工程设计以及各个领域都取得了重大的进展,应用的领域也不局限于传统的范畴,在许多新型的行业中,EDA技术也取得一些进展,根据目前的情况分析,EDA技术在电子工程设计领域取得的成就非常令人瞩目,下面主要分析电子工程领域中EDA技术的不断应用,促进了电路性能的不断优化,电子产品之所以能够在众多的产品中脱颖而出,是由于它能够不断实现不同功能的应用,但是实现这些不同功能应用归根结底是由于EDA技术有效实现了电路性能的不断优化。
河南科技大学课程设计说明书课程名称EDA综合设计题目__电子密码锁设计__学院___电气工程学院____班级_____学生姓名_________学号_______指导教师__日期_2015年6月26日_课程设计任务书课程设计名称EDA综合设计学生姓名胡慧芳专业班级电信科122设计题目电子密码锁设计一、课程设计目的1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;2、结合理论知识,考察阅读参考资料、文献、手册的能力;3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;4、锻炼撰写研究报告、研究论文的能力;5、通过本实践环节,培养科学和严谨的工作作风。
二、设计内容、技术条件和要求1、设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;2、在锁的控制电路中储存一个可以修改的4位二进制代码,当开锁按钮开关的输入代码等于储存代码时,开锁;3、从第一个按钮触动后的30秒内若未将锁打开,则电路长报警30S,若输入密码错误1或2次,则每次短报警5S,若输错三次密码则长报警。
三、时间进度安排1周:(1) 完成设计准备,确定实施方案;(2) 完成电路文件的输入和编译;(4) 完成功能仿真。
2周:(1) 完成文件至器件的下载,并进行硬件验证;(2) 撰写设计说明书。
四、主要参考文献(1)谭会生、瞿遂春,《EDA技术综合应用实例与分析》,西安电子科技大学出版社,2004(2)高有堂,《EDA技术及应用实践》,清华大学出版社,2006(3)亿特科技,CPLD/FPGA应用系统设计与产品开发》,人民邮电出版社,2005(4)曹昕燕、周凤臣等,《EDA技术实验与课程设计》,清华大学出版社,2006 指导教师签字:2015年6月15日电子密码锁设计摘要:随着现代电子技术的迅猛发展,相信电子密码锁将会逐渐取代普通的机械密码锁。
主要是由于电子密码锁拥有几个普通机械密码锁不可能替代的优点:保密系能好、安全度高、即防盗性能强,不需要使用钥匙、即记住密码就可开锁等等。
本文主要阐述了一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法。
用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。
而且由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA 中即可,无需更改外部电路的设计,大大提高了设计的效率。
因此,采用FPGA 开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。
此设计采用EDA技术,利用MAX+PLUSⅡ工作平台和VHDL硬件描述语言,设计了一种电子密码锁,并通过本学院的实验箱FPGA芯片实现关键词:电子密码锁仿真 VHDL语言模块化设计一.VHDL和FPGA1.1 FPGA1.1.1 FPGA简介FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB (Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
1.1.2 FPGA基本工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)[2]和内部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。
FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA 所能实现的功能,FPGA允许无限次的编程。
1.2 VHDL1.2.1 VHDL简介VHDL语言是一种用于电路设计的高级语言。
它在80年代的后期出现。
最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。
VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。
它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。
当然在一些实力较为雄厚的单位,它也被用来设计ASIC。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
1.1.2 VHDL特点▪功能强大、设计灵活▪支持广泛、易于修改▪强大的系统硬件描述能力▪独立于器件的设计、与工艺无关▪很强的移植能力▪易于共享和复用二,设计要求1、设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;2、在锁的控制电路中储存一个可以修改的4位二进制代码,当开锁按钮开关的输入代码等于储存代码时,开锁;3、 从第一个按钮触动后的30秒内若未将锁打开,则电路长报警30S ,若输入密码错误1或2次,则每次短报警5S ,若输错三次密码则长报警。
三,总体设计思路根据设计要求,该电子密码锁主要具有设置密码,30秒时间输入密码(即第一个按键按下后的30秒内输入密码),报警(即若输入密码错误1或2次,则每次短报警5S ,若输错三次密码或30S 内没有开锁则长报警),开锁(对应的指示灯发生变换)的功能。
四、电路图4.1系统时钟产生4.1.1利用锁相环产生输出信号的设置如下图所示是扫描时钟的电路图;从中可看到inclk0是输入口,PLL 的输入inckl0时钟是50Mhz ;c0的时钟频率为50MHz ,相位差为0ns ;PLL 输出时钟c2的时钟频率为50MHZ,相位差为10ns 4.1.2时钟产生模块电路4.2 按键去抖4.2.1 重要性通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。
为了使按键信息正确地输出,即消除因为按键抖动而引起输出不必要的错误和保证键入信息通过传输不出错,按键去抖电路是按键4.3按键综合与按键计数模块4.4密码存储与报警电路4.4.1密码存储变量为pwo【3;0】,密码输入存储变量为pwto【3;0】。
当输入密码与存储密码相等时,输出right为高电平,error为低电平,密码正确。
此时的开发板上D5亮。
当输入密码与存储密码相等时,输出right为低电平,error为高电平,密码错误。
此时的开发板上D4亮。
4.5 系统控制电路输入错误信号后Ctrl电路30S计时,并给出5S报警信号和30S报警信号第一次输入错误报警5S;第二次输入错误报警30S;4.6报警电路的实现当EN为低电平时beep1k持续输出1KHZ的占空比百分之五十的脉冲信号,从而驱动蜂鸣器。
五,心得体会这次的课程设计安排在了考试以后,上学期的VHDL语言已经有些生疏了,这给编程带来了一些难度,但是经过复习还是重新熟悉了编程的方法和技巧。
在写程序的时候有时候不注意仿真,犯了想当然的毛病,认为程序会实现想象中的逻辑功能,但实际不然,所以在编程过程中,不能单凭想象来做,必须写完一部分后就进行一次仿真,及时发现问题,及时改正,避免可在写完程序之后才发现错误,这时再修改就会很麻烦了。
这次的课程设计标题是密码锁设计,通过在查阅资料的过程中了解了电子密码锁的发展前景和FPGA的广泛应用,在日常生活中会有许多的电子设备都与FPGA有关,因此学好EDA技术对自己的以后的发展会有很大的帮助。
六、实物图将程序和电路下载到试验箱上我们可以直接的看到它的硬件实现功能情况。
按键8代表电路图中的enter_1(设置密码确认键),按键7代表enter_2(输入密码确认键),按键3到按键6代表四位二进制密码输入键。
D8设置为绿灯,D7设置为红灯七、参考文献【1】谭会生、瞿遂春,《EDA技术综合应用实例与分析》,西安电子科技大学出版社,2004【2】高有堂,《EDA技术及应用实践》,清华大学出版社,2006【3】亿特科技,CPLD/FPGA应用系统设计与产品开发》,人民邮电出版社,2005【4】曹昕燕、周凤臣等,《EDA技术实验与课程设计》,清华大学出版社,2006 八,源代码因为有了这么多帮助我的人,我才能走到今天。
衷心地祝福每个人事事顺心,幸福。
module beep(input en,input CLK,output beep1k);integer DIV_KHZ = 48_000;reg[31:0]cnt_khz;reg clk_1k;always@(posedge CLK)beginif(en==0)beginif(cnt_khz == DIV_KHZ/2)begincnt_khz <= 32'b0;clk_1k = !clk_1k;endelse cnt_khz <= cnt_khz + 1'b1;Endend assign beep1k = clk_1k;Endmodulemodule cnt(input flag5s,input flag30s,input clk,output finsh);parameter integer clkf=1_000_000;integer number5s;integer number30s;reg finshq=0;always@(posedge clk)beginif(flag5s==1&&flag30s!=1)beginif(number5s==5*clkf-1)beginnumber5s<=0;finshq<=1;endelsebeginnumber5s<=number5s+1;finshq<=0;end endif(flag30s==1)beginif(number30s==30*clkf-1)beginnumber30s<=0;finshq<=1;endelsebeginnumber30s<=number30s+1;finshq<=0;End endif((flag30s==0)&&(flag5s==0)) finshq<=0;Endassign finsh=finshq;endmodulemodule compare ( input [1:0]key , input [2:0]timep, input clk, input savepw, output error, output right, output [3:0]pwtooutput [3:0]pwo);reg [3:0]pw=0;reg [3:0]pwt=0;reg errorq =0;reg rightq =0; reg savepwt;always @ (posedge clk)beginif((key!=0)&&(savepw==0))begincase (timep[2:0])3'b001:begin pwt[0]<=key[1];end3'b010:begin pwt[1]<=key[1];end3'b011:begin pwt[2]<=key[1];end3'b100:begin pwt[3]<=key[1];endendcaseEndif((key!=0)&&(savepw!=0))begincase (timep[2:0])3'b001:begin pw[0]<=key[1];end3'b010:begin pw[1]<=key[1];end3'b011:begin pw[2]<=key[1];end3'b100:begin pw[3]<=key[1];endendcaseendendalways @ (posedge clk)beginif(key!=0) savepwt<=savepw;if((pwt!=pw)&&(timep==3'b100)&&(savepwt==0))begin rightq<=0;errorq<=1; endelse if((pwt==pw)&&(timep==3'b100)&&(savepwt==0))begin rightq<=1;errorq<=0; endelse begin rightq<=0;errorq<=0; endendassign error=errorq;assign right=rightq;assign pwto[3:0] = pwt[3:0];assign pwo [3:0] = pw [3:0];Endmodulemodule ctrl(input error,input right,input clk,input finish,input count30s,output flag5s,output flag30s);reg [1:0]errorn=0;reg flag_error;reg flag_errorb;reg flag5sq=0;reg flag30sq=0;reg count30sb;reg count30sq2;integer number30s;integer clkf=1_000_000;initialbeginflag_error<=0;flag_errorb<=0;endalways@(posedge clk)beginflag_error<=error;if((flag_errorb==0)&&(flag_error==1'b1)&&(right==0)) beginerrorn<=errorn+1;flag5sq<=1;flag_errorb<=flag_error;endelse flag_errorb<=flag_error;if(errorn==2'b11)beginflag30sq<=1;errorn<=0;endif(finish!=0)beginflag30sq<=0;flag5sq<=0;endif(count30s==1)beginif(number30s==30*clkf-1)beginnumber30s<=0;flag30sq<=1;errorn<=0;endelsenumber30s<=number30s+1;if(right==1'b1) number30s<=0;endendassign flag5s = flag5sq;assign flag30s = flag30sq;endmodulemodule enable (input flag5s,input flag30s,input clk,output en);reg enq;always@(posedge clk)beginif ((flag5s==0)&&(flag30s==0))enq<=1'b1;elseenq<=0;endassign en=enq;Endmodulemodule keytansform( input key1,input key2,input key3,input key4,input clk,input en,input flag_30s,output [1:0]keyout,output [2:0]timep,output savepw,output count30s );reg [2:0]timepq=0; reg [1:0]keyq=0;reg [1:0]keyqb=0;reg key3q;reg savepwq;reg savepwqb;reg count30sq;always@(posedge clk )beginif (en==1'b1) keyq<={key2,key1};if ((en==1'b1)&&(key3!=0)) savepwq<=1;if ((en==1'b1)&&(key4!=0)) savepwq<=0;endassign count30s =count30sq;assign savepw = savepwq;assign timep = timepq;assign keyout[1:0]=keyq[1:0];endmodulemodule signal (input right,input clk,output open,output shut);reg openq;reg shutq;always@(posedge clk )beginif(right)beginopenq<=1;shutq<=0;endelsebeginopenq<=0;shutq<=1;endendassign open = openq;assign shut = shutq; Endmodulemodule fenpin (input clk50M,output clk1M);reg [4:0]number;reg Q1M;always @ (posedge clk50M) beginif (number == 5'b11001)begin Q1M<=!Q1M;number<=0;endelse number <=number+1; endassign clk1M = Q1M; Endmodule九,整体电路图。