EDA技术与VHDL语言课程设计
- 格式:doc
- 大小:114.00 KB
- 文档页数:22
eda技术与vhdl设计答案eda技术与vhdl设计答案【篇一:eda技术与vhdl复习练习题】/p> 一、填空题1、pld的中文含义是:________。
2、asic的中文含义是:________。
3、“与-或”结构的可编程逻辑器件主要由四部分构成:________、________、____________和____________。
4、可编程逻辑器件结构图中一般用“x”表示此编程单元为________。
6、可编程逻辑器件结构图中无任何标记表示此编程单元为________。
7、可编程逻辑器件按规模的大小一般分为________和_________。
8、低密度可编程逻辑器件的主要有________和_________。
9、gal器件________取代全部pal器件。
10、pal器件只能________次编程。
11、gal器件能________次编程。
12、gal器件________取代ttl器件。
13、gal器件采用________擦除。
14、pal和gal器件________在系统编程。
15、pal和gal器件需要使用________编程。
二、选择题1、可编程逻辑器件pld的基本结构形式是_______:a:与——与b:与——或c:或——与d:或——或2、可以多次编程的器件是_______:a:prom b:plac:pal d:gal3、pld器件未编程时_______:a:有逻辑功能 b:没有逻辑功能c:pal器件有逻辑功能d:gal 器件有逻辑功能 4、gal器件可以用擦除:a:普通光 b:紫外线c:红外线 d:电5、gal16v8器件的输出引脚最多有______:a:16b:4 c:8 d:206、pal16v8器件的输入引脚最多有_______:a:16 b:4 c:8 d:207、gal16v8不能取代_________:a:pal16v b:74ls138c:74ls373 d:isplsi1032e-70plcc848、gal16v8的_______不可编程:a:与阵列b:或阵列c:输出逻辑宏单元olmc d:a、b都三、判断题1、gal器件的输出逻辑宏单元olmc不能实现pal器件的所有输出形式。
EDA技术-VHDL-四选⼀数据选择器程序设计与仿真实验四选⼀数据选择器程序设计与仿真实验1 实验⽬的(1) 熟悉在QuartusⅡ软件平台上建⽴⼯作库⽂件和编辑设计⽂件的⽅法。
(2) 熟悉创建⼯程⽂件⽅法。
(3) 熟悉编译前设置和启动全程编译设置的⽅法。
(4) 熟悉波形编辑器的使⽤⽅法(5) 熟悉在QuartusⅡ软件平台上对设计进⾏仿真的操作全过程(6) 会⽤VHDL语⾔设计⼀个四选⼀数据选择器。
2 实验原理数据选择器⼜叫“多路开关”。
数据选择器在地址码(或叫选择控制)电位的控制下,从⼏个数据输⼊中选择⼀个并将其送到⼀个公共的输出端。
数据选择器的功能类似⼀个多掷开关,如图3.2.1所⽰,图中有四路数据a、b、c、d输⼊,通过选择控制信号 s1、s2(地址码)从四路数据中选中某⼀路数据送⾄输出端y。
逻辑功能如表3.2.1所⽰。
图3.2.1 四选1数据选择器⽰意图表3.2.1 四选⼀数据选择器逻辑功能表从表3.2.1中可知使能端en=1时,不论a~c输⼊状态如何,均⽆输出(y=1,因为所⽤器件的显⽰电路是共阳极),多路开关被禁⽌。
使能端en=0时,多路开关正常⼯作,根据地址码s2、s1的状态选择a~c输⼊信号中某⼀个通道的数据输送到输出端y。
3 实验内容(1) 建⽴⼀个四选⼀数据选择器的⽂件夹。
(2) 在定义好的VHDL模型中完成四选⼀数据选择器的描述,并创建⼯程。
(3) 设计完成后进⾏全程编译,检查源程序编写是否正确。
(4) 建⽴波形编辑⽂件并对输⼊波形进⾏编辑。
(5) 启动仿真器进⾏仿真,并分析仿真结果。
4 实验预习与思考(1) 进⼀步学习在QuartusⅡ软件平台上建⽴⼯作库⽂件和编辑设计⽂件的⽅法。
(2) 进⼀步学习建⽴波形编辑器⽂件编辑输⼊波形的⽅法。
(3) VHDL语⾔的结构体在整个程序中起什么作⽤。
5 VHDL仿真实验(1)新建⼀个⽂件夹。
本例中⽂件夹名为mux。
(2)输⼊源程序,打开计算机桌⾯上图标。
eda课程设计报告一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握EDA工具的使用方法。
2. 学生能运用EDA软件进行电路设计与仿真,理解并掌握数字电路的设计原理。
3. 学生了解并掌握基础的硬件描述语言(如VHDL/Verilog),能完成简单的数字系统设计。
技能目标:1. 学生通过EDA软件的操作,培养电子电路设计、仿真与验证的实际操作能力。
2. 学生通过小组合作完成设计项目,提高团队协作与沟通技巧。
3. 学生能够运用所学知识解决实际问题,具备一定的创新意识和动手能力。
情感态度价值观目标:1. 学生在EDA课程学习中,培养对电子科学技术的兴趣和探究精神。
2. 学生通过课程实践,增强自信心和成就感,激发进一步学习的动力。
3. 学生在学习过程中,树立正确的工程伦理观念,认识到技术发展对社会的责任和影响。
课程性质:本课程为电子信息工程及相关专业高年级学生的专业核心课程,旨在通过理论与实践相结合的教学,提高学生的电子设计能力。
学生特点:学生已具备一定的电子技术基础,具有较强的学习能力和实践欲望,对新技术和新工具充满好奇心。
教学要求:结合学生特点,注重培养实际操作能力,鼓励学生创新思维,提高解决实际问题的能力。
通过课程目标分解,确保学生在知识、技能和情感态度价值观方面的全面成长。
后续教学设计和评估将以此为基础,关注学生的学习成果。
二、教学内容根据课程目标,教学内容分为以下三个模块:1. EDA基本概念与工具使用- 教材章节:第一章 EDA技术概述,第二章 EDA工具简介- 内容列举:EDA发展历程,常用EDA软件介绍,软件安装与配置,基本操作流程。
2. 数字电路设计与仿真- 教材章节:第三章 数字电路设计基础,第四章 仿真技术- 内容列举:数字电路设计原理,EDA软件电路设计流程,仿真参数设置,波形分析与验证。
3. 硬件描述语言与数字系统设计- 教材章节:第五章 硬件描述语言,第六章 数字系统设计实例- 内容列举:硬件描述语言基础,VHDL/Verilog语法要点,简单数字系统设计方法,设计实例分析与实操。
1.8.1填空1.EDA的英文全称是Electronic Design Automation2.EDA技术经历了计算机辅助设计CAD阶段、计算机辅助工程设计CAE阶段、现代电子系统设计自动化EDA阶段三个发展阶段3. EDA技术的应用可概括为PCB设计、ASIC设计、CPLD/FPGA设计三个方向4.目前比较流行的主流厂家的EDA软件有Quartus II、ISE、ModelSim、ispLEVER5.常用的设计输入方式有原理图输入、文本输入、状态机输入6.常用的硬件描述语言有VHDL、Verilog7.逻辑综合后生成的网表文件为EDIF8.布局布线主要完成将综合器生成的网表文件转换成所需的下载文件9.时序仿真较功能仿真多考虑了器件的物理模型参数10.常用的第三方EDA工具软件有Synplify/Synplify Pro、Leonardo Spectrum11.2000年推出的Pentium4微处理器芯片的集成度达(4200 )万只晶体管。
12.在EDA发展的(CAD )阶段,人们只能借助计算机对电路进行模拟、预测,以及辅助进行集成电路版图编辑、印刷电路板(PCB)布局布线等工作。
13.在EDA发展的(CAE )阶段,人们可以将计算机作为单点设计工具,并建立各种设计单元库,开始用计算机将很多单点工具集成在一起使用。
14.EDA设计输入主要包括图形输入、HDL文本输入和状态机输入。
15.时序仿真是在设计输入完成之后,选择具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为功能仿真。
16.VHDL的数据对象包括变量、常量和信号,它们是用来存放各种类型数据的容器。
17.图形文件设计结束后一定要通过仿真,检查设计文件是否正确。
18.以EDA方式设计实现的电路设计文件,最终可以编程下载到FPGA 和CPLD芯片中,完成硬件设计和验证。
19.MAX+PLUS的文本文件类型是(后缀名).VHD 。
20.在PC上利用VHDL进行项目设计,不允许在根目录下进行,必须在根目录为设计建立一个工程目录(即文件夹)。
《VHDL语言程序设计》课程教学大纲课程简介课程简介:本课程为软件工程专业嵌入式专业方向的专业课,是开发基于FPGA/CPLD嵌入式系统的必备基础。
主要内容包括FPGA/CPLD目标器件的结构和工作原理、EDA技术和工作流程、VHDL基础知识、VHDL实用方法和设计深入、原理图输入法、LPM宏功能模块实用方法、状态机设计以及EDA优化设计。
目的是为后续课程的学习和嵌入式系统的设计作必须的基础准备。
课程大纲一、课程的性质与任务:本课程是软件工程专业的专业方向课程。
教学任务主要包括使学生了解EDA技术的工作流程,正确使用开发平台,掌握以VHDL为代表的硬件描述语言的基本知识、编程实用方法和工程设计方法,掌握原理图设计法、状态机设计法,能够正确使用IP Core和LPM等宏功能模块。
本课程是软件工程专业嵌入式专业方向的第一门专业方向课,是后续课程的必备基础,具有较重要的地位。
二、课程的目的与基本要求:本课程涉及到的学科基础知识面广,要求软硬件兼备,需要较好的学科基础。
通过本课程的学习,最终达到能够设计基于FPGA/CPLD的ASIC,并能进行EDA优化的目的。
三、面向专业:软件工程四、先修课程:《计算系统基础》五、本课程与其它课程的联系:本课程的先行课程是计算系统基础。
服务的主要后续课程包括基于FPGA的嵌入式软件开发、基于ARM的嵌入式软件开发等。
六、教学内容安排、要求、学时分配及作业:第一章概述(2学时)1.1 EDA技术及其发展(C)1.2 硬件描述语言硬件描述语言种类、自顶向下设计方法、EDA工程设计流程。
(A)1.3 面向FPGA/CPLD的开发流程设计输入、分析综合、布局布线、仿真、下载和硬件测试。
(A)1.4 IP Core 及EDA技术发展趋势。
(C)第二章 FPGA硬件特性与编程技术(8学时)2.1 PLD发展历程及其分类(c)2.2 低密度PLD工作原理PROM、PLA、PAL、GAL。
GDOU-B-11-213《VHDL语言程序设计》课程教学大纲课程简介课程简介:本课程为软件工程专业嵌入式专业方向的专业课,是开发基于FPGA/CPLD嵌入式系统的必备基础。
主要内容包括FPGA/CPLD目标器件的结构和工作原理、EDA技术和工作流程、VHDL基础知识、VHDL实用方法和设计深入、原理图输入法、LPM宏功能模块实用方法、状态机设计以及EDA优化设计。
目的是为后续课程的学习和嵌入式系统的设计作必须的基础准备。
课程大纲一、课程的性质与任务:本课程是软件工程专业的专业方向课程。
教学任务主要包括使学生了解EDA技术的工作流程,正确使用开发平台,掌握以VHDL为代表的硬件描述语言的基本知识、编程实用方法和工程设计方法,掌握原理图设计法、状态机设计法,能够正确使用IP Core和LPM等宏功能模块。
本课程是软件工程专业嵌入式专业方向的第一门专业方向课,是后续课程的必备基础,具有较重要的地位。
二、课程的目的与基本要求:本课程涉及到的学科基础知识面广,要求软硬件兼备,需要较好的学科基础。
通过本课程的学习,最终达到能够设计基于FPGA/CPLD的ASIC,并能进行EDA优化的目的。
三、面向专业:软件工程四、先修课程:《计算系统基础》五、本课程与其它课程的联系:本课程的先行课程是计算系统基础。
服务的主要后续课程包括基于FPGA的嵌入式软件开发、基于ARM的嵌入式软件开发等。
六、教学内容安排、要求、学时分配及作业:第一章概述(2学时)1.1 EDA技术及其发展(C)1.2 硬件描述语言硬件描述语言种类、自顶向下设计方法、EDA工程设计流程。
(A)1.3 面向FPGA/CPLD的开发流程设计输入、分析综合、布局布线、仿真、下载和硬件测试。
(A)1.4 IP Core 及EDA技术发展趋势。
(C)第二章 FPGA硬件特性与编程技术(8学时)2.1 PLD发展历程及其分类(c)2.2 低密度PLD工作原理PROM、PLA、PAL、GAL。
东华理工大学机械与电子工程学院基于VHDL语言的8位数字密码锁设计一、摘要:数字控制的电子密码锁已经广泛应用在办公室、公司、宾馆、小区住宅等场所。
EDA技术的应用引起了电子产品系统开发的革命性变革。
利用先进的EDA工具,基于硬件描述语言,可以进行系统级数字逻辑电路的设计。
本文简述了VHDL语言的功能及其特点,并以8位串行数字锁设计为例,介绍了在QUARTUS II 6.0开发软件下,利用VHDL硬件描述语言设计数字逻辑电路的过程和方法。
关键词: QUARTUS II 6.0 EDA 电子密码锁(电子设计自动化) VHDL语言语言设计串行密码锁硬件描述语言数字逻辑电路Based on VHDL language 8 digits combination lock design Digital control of electronic locks has widely used in office, companies, hotels, residential area and etc.EDA technology application caused a electronic product development system of the revolutionary transformation. Using advanced EDA tools, hardware based description language, can undertake system in digital logic circuit design. This paper describes the function and characteristics of VHDL language, and eight serial number lock design as an example, this paper introduces QUARTUS II 6.0 software development in of VHDLhardware design of digital logic circuit process and method.Keywords: QUARTUS II 6.0, EDA (electronic design automation), electronic locks and VHDL language, language design, serial, locks and hardware description language, digital logic circuit二、引言:电子密码锁系统主要由电子锁体、电子密匙等部分组成,一把电子密匙里能存放多组开锁密码,用户在使用过程中能够随时修改开锁密码,更新或配制钥匙里开锁密码。
EDA技术与VHDL实验指导书电气中心实验室编制2011-9前言《EDA技术与VHDL实验指导书》是与理论课程《EDA技术与VHDL》配套开出的,是电子信息工程等专业的一门专业选修课程,对电子信息工程等专业的学生具有非常重要的作用。
本实验课与理论课同时进行,与理论课有着较密切的联系。
因此学生在做本实验之前必须具备1.一定的C语言基础;2.电路与电子技术的基础知识;3.计算机辅助设计的基本操作能力;4.理论联系实践的自学能力。
学生学习完本实验课后,应具有1.能熟练使用Quartus II等EDA开发工具软件;2.掌握CPLD/FPGA芯片的基本使用方法,能用现代数字系统的设计方法进行基本的数字系统设计;3.掌握图形编辑和VHDL文本编辑两种设计方法,重点是VHDL文本编辑;4.具备基本的开发能力,为后续学习打下坚实的基础等方面能力。
从70 年代第一片可编程逻辑器件PROM的诞生到现在的CPLD/FPGA,数字系统的设计发生了本质的变化。
基于CPLD/FPGA和EDA(电子设计自动化)工具进行数字系统的设计与开发。
它代表了数字电信领域的最高水平,给数字电路的设计带来了革命性的变化。
从传统的对电路板的设计到现在的基于芯片的设计,使得数字系统设计的效率大大提高,产品更新速度大大加快,设计周期大大变短。
所以本科生学习本课程有着非常重要的意义。
本实验不同于其它实验,其实验手段和实验方法都有重大的变化,要求实验前提交预习报告,检查通过后方可实验,设计与综合实验环节。
本实验是在PC 平台上,用原理图或文本进行输入,然后进行编译,通过之后再进行波形仿真,如有缺陷,对源文件进行修改。
利用ISP技术、采用EDA工具、应用PLD 器件,在PC及EDA开发平台上进行。
实验一组合逻辑电路设计实验学时:3学时实验类型:验证实验要求:必做一、实验目的1.熟练掌握QuartusII开发工具软件;2.掌握门电路VHDL语言程序设计方法;3.掌握选择器VHDL语言程序设计方法;4.掌握加法器VHDL语言程序设计方法;5.熟悉VHDL编程的基本方法;二、实验原理1.二输入与门二输入与门是我们数字电路中的一个基础逻辑门电路,是最基本的逻辑门电路之一,也是最简单的逻辑门之一。
姓名:课程名称:EDA技术与VHDL院(系):电子信息与电气工程学院专业/年级:实训六数控分频器的设计一、实验目的:学习数控分频器的设计、分析和测试方法。
二、实验内容1、在QuartusⅡ上对数控分频器的程序进行编辑、编译、综合、适配、仿真。
说明例中各语句功能、设计原理及逻辑功能,详述进程P_REG和P_DIV的作用,并画出该程序的RTL电路图。
2、给出其时序仿真波形。
三、实验仪器电脑。
四、实验原理数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可五、实验内容:程序设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF ISPORT ( CLK : IN STD_LOGIC;D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);FOUT : OUT STD_LOGIC );END;ARCHITECTURE one OF DVF ISSIGNAL FULL : STD_LOGIC;BEGINP_REG: PROCESS(CLK)V ARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF CLK'EVENT AND CLK = '1' THENIF CNT8 = "11111111" THENCNT8 := D;FULL <= '1';ELSE CNT8 := CNT8 + 1; FULL <= '0';END IF;END IF;END PROCESS P_REG ;P_DIV: PROCESS(FULL)V ARIABLE CNT2 : STD_LOGIC;BEGINIF FULL'EVENT AND FULL = '1' THEN CNT2 := NOT CNT2;IF CNT2 = '1' THEN FOUT <= '1'; ELSE FOUT <= '0'; END IF;END IF;END PROCESS P_DIV ;END;软件编译仿真分析。
摘要音乐节拍器作为音乐初学者必备的辅助器材可以帮助演奏者在练习期间能将音符表达的更贴切,避免演奏难度及音乐情绪干扰演奏速度影响表演效果因此,节拍器的精度及质量至关重要。
而传统基于机械时钟的节拍器要制作出高质量的成品成本很高,故制作工艺简单,体积小,功能全面,而且时钟稳定,无需维护的电子音节节拍器应运而生。
随着电子技术的发展, 应用系统向着的应用引起电子产品及系统开发的革命性变革。
和其他的电子技术相比,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技术与VHDL第五版教学设计前言EDA技术(Electronic Design Automation)是现代电子工程中不可或缺的技术手段。
EDA技术主要是指借助EDA(Electronic Design Automation)软件工具来进行电子系统及芯片的设计、生产和测试等各个环节中所需的CAD技术。
而VHDL(VHSIC Hardware Description Language)则是用来描述数字系统的硬件特性的一种表示语言。
本文将针对EDA技术和VHDL第五版的教学内容进行简要讨论。
EDA技术EDA技术的应用范围非常广泛,包括模拟电路和数码电路的设计、布局、验证和测试等各个环节。
EDA技术的使用可以大大简化电路设计的过程,提高电路设计的效率和准确性。
目前市面上主流的EDA软件有Altium Designer、Protel、PADS、Eagle、OrCAD等。
EDA技术在电子工程教育中的意义非常重要,对于培养学生的电路设计能力和实践能力有着重要作用。
在课堂教学中,可以通过以下几个方面来进行EDA技术的教学:1.EDA软件的基本操作首先,需要对常用的EDA软件进行介绍。
学生需要了解如何打开、创建和保存项目,如何进行电路设计和模拟,如何进行元器件库的管理等。
其中最重要的是掌握软件的快捷键和常用操作。
2.电路设计流程其次,需要讲解电路设计的流程,包括电路分析、元器件选型、电路设计、仿真和测试等各个环节。
通过实践操作,使学生掌握电路设计的基本流程和步骤。
3.实验实践最后,对于EDA技术的实验实践也是非常重要的一环。
学生可以通过设计一些小的实验电路,并进行仿真和测试,来巩固自己的掌握程度。
比如设计一个简单的加法器,然后通过仿真来验证电路的正确性。
VHDL第五版VHDL是一种常用的数字电路设计语言,它可以用来描述数字电路中各种电路的行为与结构。
VHDL第五版是目前最新版的VHDL标准。
学习VHDL第五版对于培养学生的数字电路实践能力具有非常重要的作用。
EDA课程设计——基于VHDL 语言的数字时钟设计(可编辑)(文档可以直接使用,也可根据实际需要修改使用,可编辑推荐下载)一、设计要求 0二、设计原理及框图 01、设计原理 02、结构框图 0三、设计过程 (1)1、模块化设计 (1)2、顶层文件生成 (2)四、仿真调试过程 (3)1、各模块时序仿真图 (3)2、仿真过程中遇到的问题 (4)五、设计体会及收获 (4)一、设计要求1、稳定的显示时、分、秒。
2、当电路发生走时误差时,要求电路有校时功能。
3、电路有整点报时功能。
报时声响为四低一高,最后一响高音正好为整点。
二、设计原理及框图1、设计原理系统框图由六个模块组成,分别为:秒、分、时计数模块,整点报时模块,LED动态显示扫描模块,调时控制模块组成。
其工作原理是:基准脉冲输入信号同时加到秒、分、时、分隔符的脉冲输入端,采用并行计数的方式,秒的进位接到分的使能端上,秒的使能借到分隔符的使能上,分得接到时的使能端上,完成秒、分、时和分隔符的循环计数。
整点报时是根据分的A、B输出同时为0时,整点报时模块输出高电平控制报时。
LED显示扫描模块根据输入的扫描信号CKDSP轮流选通秒、分、时、分隔符的8位八段数码管,LED显示译码器完成计数器输出的BCD的译码。
2、结构框图三、设计过程1、模块化设计(1)秒计时模块秒计时模块由一个60位计数器为主体构成,其输入输出端口组成为:Clk:计时时钟信号Reset:异步清零信号Setmin:分钟设置信号Enmin:使能输出信号Daout[6:0]:BCD码输出(2)分计时模块分计时模块由一个60位计数器为主体构成,其输入输出端口组成为:Clk、clk1:计时时钟信号Reset:异步清零信号Sethour:小时设置信号Enmin:使能输出信号Daout[6:0]:BCD码输出(3)时计时模块时计时模块由24位计数器为主体构成,其输入输出端口组成为:Clk:计时时钟信号Reset:异步清零信号Daout[6:0]:BCD码输出(4)显示模块系统时间输出由六个七段数码管显示。
课程设计任务书课程设计报告课程:EDA技术与VHDL 学号:姓名:班级:教师:设计名称:看门狗设计日期:2009年12月28日设计内容:1.看门狗电路时电子系统,是嵌入式系统中常用的抗干扰措施之一,其作用是在程序“跑飞”后强制系统复位。
2.看门狗实际上是一个计数器,它需要在一定时间内被清零,否则,看门狗将产生一个复位信号使系统重新启动。
3. 系统主要由3个功能模块构成:1)计数比较模块;2)分频模块;3)复位计时模块;设计目的与要求:(1)根据“自顶向下、模块化”的设计方法,设计一种基于可编程逻辑器件的看门狗电路,要求体现自顶向下的VHDL设计思路和方法。
(2)有较高的实用价值。
(3)喂狗周期可以由用户定制。
(4)喂狗脉冲宽度较窄。
(5)复位脉冲宽度不小于12ms。
(6)看门狗启动后,除非重新上电,否则不能停止工作。
设计环境或器材、原理与说明:PC机一台、QuartusII 4.2 软件、TD—EDA实验箱一台、SOPC开发板一块设计过程(步骤)或程序代码:1、运行QuartusII软件,分别建立新工程,选择File—>New菜单,创建VHDL描述语言设计文件,分别wdcmp.vhd ,wdclock.vhd,wddelay.vhd的源程序。
分别完成其功能。
2、模块设计与实现2.1计数比较模块在分频时钟的作用下计数,将计数值与预置值比较,若相等,则输出复位信号。
复位信号有效时,将分频时钟屏蔽,计数比较模块停止计数,直至复位计时模块将其清零,重新计数。
--描述计数比较模块的VHDL程序,图2-1为计数比较模块的仿真波形图。
--wdcmp.vhd----LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY wdcmp ISPORT(--使能信号start :IN STD_LOGIC;--清零信号clr :IN STD_LOGIC;--时钟信号clk :IN STD_LOGIC;--写信号wr :IN STD_LOGIC;--数据输入data :IN STD_LOGIC_VECTOR(7 DOWNTO 0);--复位信号reset :OUT STD_LOGIC);END wdcmp;ARCHITECTURE behave OF wdcmp IS--定义状态TYPE statetype IS (notwatch,watch);SIGNAL state : statetype;--定义信号SIGNAL pr : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL start_delay : STD_LOGIC;SIGNAL wr_delay : STD_LOGIC;BEGINDELAY_PROC:PROCESS(clk)BEGINIF rising_edge(clk) THENstart_delay <= start;wr_delay <= wr;END IF;END PROCESS;PR_PROC:PROCESS(clk)BEGINIF rising_edge(clk) THENIF start= '1' AND start_delay<='0' THENstate <= watch;IF pr = "00000000" THENpr <= "11111111";END IF;ELSIF state = notwatch AND wr = '0' AND wr_delay = '1' THENpr <= data;END IF;END IF;END PROCESS;RESET_PROC: PROCESS(clk,clr)V ARIABLE cnt : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";BEGINIF clr = '1' THENcnt := "00000000";reset <= '0';ELSIF rising_edge(clk) THENIF state = watch THENIF cnt = pr THENreset <= '1';ELSEcnt := cnt + '1';END IF;ELSEreset <= '0';END IF;END IF;END PROCESS;END behave;2.2分频模块分频模块的作用是将输入时钟分频,得到计数比较模块和复位计时模块需要的时钟。
EDA技术与VHDL语言课程设计课程设计EDA技术与VHDL语言课程设计报告班级: 电信11-2班姓名: 董元伟学号: 1106110205指导教师: 李铁成绩:电子与信息工程学院信息与通信工程系- 2 - 课程设计;数字密码锁目录摘要 ..................................................................... .......................................... - 3 - 一、设计目的 ..................................................................... ............................ - 4 - 二、设计内容和要求 ..................................................................... .................. - 4 -1、用户开锁 ..................................................................... ......................... - 5 -2、管理员解除警报 ..................................................................... .............. - 5 -3、管理员修改密码 ..................................................................... .............. - 5 -4、定时返回 ..................................................................... ......................... - 6 - 三、设计思路和系统结构...................................................................... ............ - 6 -1、设计模块 ..................................................................... ......................... - 6 -2、系统结构和数字密码锁原理图 .............................................................. - 7 -3、设计思路 ..................................................................... ......................... - 8 - 四、实验设计程序如 ..................................................................... ................... - 9 - 五、创建测试平台仿真结果 ..................................................................... ....... - 21 - 参考文献 ..................................................................... ................................... - 24 -- 2 -- 3 - 课程设计;数字密码锁摘要本文介绍一种利用 EDA 技术和 VHDL 语言,在 MAX+PLUS?环境下,设计了一种新型的智能密码锁。
它体积小、功耗低、价格便宜、安全可靠,维护和升级都十分方便,具有较好的应用前景。
随着社会物质财富的日益增长,安全防盗已成为全社会问题。
人们对锁的要求越来越高,既要安全可靠地防盗,又要使用方便。
弹子锁由于结构上的局限已难以满足当前社会管理和防盗要求,特别是在人员经常变动的公共场所,如办公室、宾馆等地方。
电子密码锁由于其自身的优势,越来越受到人们的青睐,但是目前使用的电子密码锁大部分是基于单片机用分离元件实现的,其成本较高且可靠性得不保证。
本文采用先进的 EDA 技术,利用 MAX +PLUX?工作平台和 VHDL 语言,设计了一种新型的智能密码锁。
该密码锁具有密码预置和误码报警等功能,用一片FPGA 芯片实现,从而大大简化了系统结构,降低了成本,提高了系统的保密性和可靠性。
采用这种器件开发的数字系统,其升级与改进极其方便。
- 3 -- 4 - 电子与信息董元伟 1106110205 一、设计目的1.掌握VHDL语言的使用,学会用VHDL语言来编程解决实际问题。
2.学会使用EDA开发软件设计小型综合电路,掌握仿真的技巧。
3.学会应用开发系统实现数字密码锁的设计。
二、设计内容和要求用VHDL语言设计一个密码锁,用波形仿真验证其功能后,实现到GW48实验系统。
1、功能描述:用于模仿密码锁的工作过程。
完成密码锁的核心控制功能。
2、功能要求:设计一个密码锁,平时处于等待状态。
管理员可以设置或更改密码。
如果不预置密码,密码缺省为“1234”。
用户如果需要开锁,按相应的按键进入输入密码状态,输入4位密码,按下确定键后,若密码正确,锁打开;若密码错误,将提示密码错误,要求重新输入,三次输入都错误,将发出报警信号。
报警后,只有管理员作相应的处理才能停止报警。
用户输入密码时,若输入错误,在按下确定键之前,可以通过按取消键重新输入。
正确开锁后,用户处理完毕后,按下确定键,系统回到等待状态。
系统操作过程中,只要密码锁没有打开,如果60秒没有对系统操作,系统回到等待状态。
要求密码在输入过程中被依次显示,即先输入的为密码的第一位,总是显示在最左边。
用两个发光二极管模拟显示,其中一个显示当前的工作模式,灭表示用户模式,亮表示管理员模式;另- 4 -- 5 - 课程设计;数字密码锁外一个指示锁的状态,灭表示锁处于锁定,亮表示锁被开启。
注意:用两个按键实现密码输入,Key1选择输入的是第几位密码,KEY2输入密码数字。
3、功能描述: 初始状态:初次使用密码锁时,要先用Reset键初始化。
初始状态下,用户密码为“1234”,管理员密码为“0000”。
(1)用户开锁:默认情况下,密码锁处于用户使用状态。
如果当前为管理员状态,则按下user 键回到用户状态。
用户开锁时,输入四位数用户密码,可以从out_code6的输出状态确定密码输入状态。
如输入错误则按下clear清除前一位输入。
输入完毕后按enter,如果密码正确,则开锁,否则重新输入密码。
开锁后再次按下enter键则关锁,回到等待状态。
三次密码输入错误,警报器alarming为1。
要管理员输入管理员密码解除警报。
此时哪怕用户再输对密码也没用。
(2)管理员解除警报:当用户三次密码输入错误的时候,alarming为1,此时,只要管理员密码输入正确后,按下clear键,alarming为0,报警取消。
(3)管理员修改密码:在非警报和为开锁状态下,任何时候按admin键进入管理员状态。
按chgcode选择修改密码,先选择修改的是用户密码还是管理员密码。
修改用户密码则按user键,修改管理员密码则按admin键。
然后分别输入旧密码,新密码,新密码要输入两次。
旧密码与所要修改的密码对应。
如旧密码输入错误,则无法修改;当验证不成功即两次新密- 5 -- 6 - 电子与信息董元伟 1106110205码不相同时,修改密码失败。
返回等待状态。
成功后也返回等待状态。
(4)定时返回:用户在未开锁状态下,60s没有按键输入,则返回等待状态,但不包括alarming状态。
只要是alarming,则只有管理输入管理员密码才能解锁并按下clear消除警报。
三、设计思路和系统结构1、设计模块设计密码锁时,采用自顶向下的设计方法。
将整个系统分成几个子模块:输入输出模块,控制模块,按键设置模块和60s计时器模块。
控制模块是整个程序的主要部分,采用状态循环的办法,以用户每按下一次按键为计量单位,划分状态,以实现各种功能。
60s计时器模块是完成60s没有按键则返回等待状态这一功能的主要模块。
这个模块的核心思想是一个变量numtime计数。
变量numtime的初始值为0,在无报警为开锁的情况下,时钟每秒发出一个上升沿信号,计数一次,如有按键则numtime清零,否则计数到60即“111100”则返回信号back变为1,返回等待状态。
按键设置模块是将各种功能按键用高低电平赋值,便于调用。
- 6 -- 7 - 课程设计;数字密码锁2、系统结构和数字密码锁原理图结合实际实验板的资源分配和考虑到数字密码锁的实现较为简易,故整个系统的设计根据功能要求,将系统分为 keyread、stating、showing 三个进程,系统结构图大概如下图所示:Clk时钟输入进程keyread拨码开关输入codeLed-7数码管输出进程showingLed-list数码管位选进程startingControl led灯输出Alam蜂鸣器输出- 7 -- 8 - 电子与信息董元伟 1106110205 数字密码锁原理图如下:3、设计思路利用实验本上的四个按键实现四个密码数列的输入以及密码输入的最终确认,这部分功能的实现由进程 keyread 实现完成;利用实验本上四个拨码开关的不同组合区分密码锁的不同功能状态,包括密码重置、密码重置清除、密码输入、密码输入清除、密码锁锁闭、钥匙插入开锁,这部分由进程 stating 实现,进程 stating 还实现了相应状态下,蜂鸣器、数码管、led 灯控制信号的输出以实现相应提示和显示。
- 8 -- 9 - 课程设计;数字密码锁四、实验设计程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;entity lock isPORT(clk,user,admin,clear,enter,chgcode,res,numenter ,number:IN STD_L OGIC;openlock:buffer std_logic;alarming,model:OUT STD_LOGIC;shuma2,shuma1,shuma0:out std_logic_vector(6 downto 0));end lock;architecture Behavioral of lock isTYPE STATES IS (sw,s1,s2,s3,s4,s5,s6,s7); SIGNAL state:STATES;SIGNAL one_key,code0,code1,code2:STD_LOGIC_VECTOR(3 DOWNTO- 9 -- 10 - 电子与信息董元伟 11061102050);SIGNAL user_code,admin_code:STD_LOGIC_VECTOR(11 DOWNTO 0); SIGNAL temp_code,old_code:STD_LOGIC_VECTOR(11 DOWNTO 0);SIGNAL key:std_logic_vector(3 downto 0);signal alarm,ifnum,s_model,chg_c,c_ua:std_logic; signalk :std_logic_vector(3 downto 0);begintemp_code<=code2&code1&code0;model<=s_model;alarming<=alarm;main:PROCESS(res,admin,user,clear,chgcode,number,numenter,enter)variable n,m:std_logic_vector(1 downto 0):="00";variable new1_code,new2_code:std_logic_vector(11 downto 0); BEGIN if (res='1') thenstate<=s1;--出厂状态user_code<="001000010001";--211admin_code<="001000010000";--210n:="00";s_model<='0';c_ua<='0';chg_c<='0';K<="0000";- 10 -- 11 - 课程设计;数字密码锁openlock<='0';alarm<='0';shuma2<="0000000";shuma1<="0000000";shuma0<="0000000";ifnum<='0';elseif (number='1') thenk<=k+1;Elsif numenter='1' thenifnum<='1';End if;case state iswhen s1=>if ( admin='1' and chg_c='0' )thens_model<='1';state<=s1;elsif (user='1' and chg_c='0' and alarm='0') then s_model<='0';state<=s1;- 11 -- 12 - 电子与信息董元伟 1106110205elsif (ifnum='1' and alarm='0' and chg_c='0' ) then code2<=k;ifnum<='0';CASE k ISWHEN"0000"=>shuma2<="0111111";WHEN"0001"=> shuma2 <="0000110"; WHEN"0010"=> shuma2<="1011011";WHEN"0011"=> shuma2<="1001111";WHEN"0100"=> shuma2<="1100110";WHEN"0101"=> shuma2<="1101101";WHEN"0110"=> shuma2<="1111101";WHEN"0111"=> shuma2<="0000111";WHEN"1000"=> shuma2<="1111111";WHEN"1001"=> shuma2<="1101111";WHEN OTHERS=> shuma2<="0000000";END CASE;k<="0000";state<=s2;elsif (ifnum='1' and c_ua='0' and chg_c='1' ) then old_code<=user_code;code2<=k;- 12 -- 13 - 课程设计;数字密码锁ifnum<='0';CASE k ISWHEN"0000"=>shuma2<="0111111";WHEN"0001"=> shuma2 <="0000110"; WHEN"0010"=> shuma2<="1011011"; WHEN"0011"=> shuma2<="1001111"; WHEN"0100"=> shuma2<="1100110"; WHEN"0101"=> shuma2<="1101101"; WHEN"0110"=> shuma2<="1111101"; WHEN"0111"=> shuma2<="0000111"; WHEN"1000"=> shuma2<="1111111"; WHEN"1001"=> shuma2<="1101111";WHEN OTHERS=> shuma2<="0000000";END CASE;k<="0000";state<=s2;elsif (ifnum='1' and alarm='1' and s_model='1' and chg_c='0' ) then code2<=k;ifnum<='0';CASE k ISWHEN"0000"=>shuma2<="0111111";WHEN"0001"=> shuma2 <="0000110";WHEN"0010"=> shuma2<="1011011";WHEN"0011"=> shuma2<="1001111";WHEN"0100"=> shuma2<="1100110";- 13 -- 14 - 电子与信息董元伟 1106110205WHEN"0101"=> shuma2<="1101101";WHEN"0110"=> shuma2<="1111101";WHEN"0111"=> shuma2<="0000111";WHEN"1000"=> shuma2<="1111111";WHEN"1001"=> shuma2<="1101111";WHEN OTHERS=> shuma2<="0000000";END CASE;k<="0000";state<=s2;elsif (ifnum='1' and c_ua='1' and chg_c='1' ) thenold_code<=admin_code;code2<=k;ifnum<='0';CASE k ISWHEN"0000"=>shuma2<="0111111"; WHEN"0001"=> shuma2 <="0000110"; WHEN"0010"=> shuma2<="1011011"; WHEN"0011"=> shuma2<="1001111"; WHEN"0100"=> shuma2<="1100110"; WHEN"0101"=> shuma2<="1101101"; WHEN"0110"=> shuma2<="1111101"; WHEN"0111"=> shuma2<="0000111"; WHEN"1000"=> shuma2<="1111111"; WHEN"1001"=> shuma2<="1101111";WHEN OTHERS=> shuma2<="0000000";END CASE;- 14 -- 15 - 课程设计;数字密码锁k<="0000";state<=s2;elsif (clear='1')then --clearstate<=s1;end if;when s2=>if (user='1' and chg_c='0') then --users_model<='0';state<=s1;elsif (admin='1' and chg_c='0') then --admin s_model<='1';state<=s1;elsif(ifnum='1')thencode1<=k;ifnum<='0';CASE k ISWHEN"0000"=>shuma1<="0111111"; WHEN"0001"=> shuma1<="0000110"; WHEN"0010"=> shuma1<="1011011"; WHEN"0011"=> shuma1<="1001111"; WHEN"0100"=> shuma1<="1100110"; WHEN"0101"=> shuma1<="1101101"; WHEN"0110"=> shuma1<="1111101"; WHEN"0111"=> shuma1<="0000111";- 15 -- 16 - 电子与信息董元伟 1106110205 WHEN"1000"=> shuma1<="1111111"; WHEN"1001"=> shuma1<="1101111";WHEN OTHERS=> shuma1<="0000000";END CASE;k<="0000";state<=s3;elsif (clear='1')then --clearstate<=s1;end if;when s3=>if(user='1' and chg_c='0') thens_model<='0';state<=s1;elsif (admin='1' and chg_c='0') then s_model<='1';state<=s1;elsif (ifnum='1')thencode0<=k;ifnum<='0';CASE k ISWHEN"0000"=>shuma0<="0111111"; WHEN"0001"=> shuma0<="0000110"; WHEN"0010"=> shuma0<="1011011";- 16 -- 17 - 课程设计;数字密码锁WHEN"0011"=> shuma0<="1001111"; WHEN"0100"=> shuma0<="1100110"; WHEN"0101"=> shuma0<="1101101"; WHEN"0110"=> shuma0<="1111101";WHEN"0111"=> shuma0<="0000111";WHEN"1000"=> shuma0<="1111111";WHEN"1001"=> shuma0<="1101111";WHEN OTHERS=> shuma0<="0000000";END CASE;k<="0000";state<=s4;elsif(clear='1')thenstate<=s2;end if;when s4=>if (enter='1' and chg_c='0')then --enterstate<=s5;elsif (enter='1' and chg_c='1'and m="00")then --enter if (old_code=temp_code) thenm:="01";state<=s1;else state<=sw;- 17 -- 18 - 电子与信息董元伟 1106110205end if;elsif (enter='1' and chg_c='1'and m="01")then --enter new1_code:=temp_code;m:="10";state<=s1;elsif (enter='1' and chg_c='1'and m="10")then --enter new2_code:=temp_code;if (new1_code=new2_code and c_ua='0') thenuser_code<=new2_code;state<=sw;elsif(new1_code=new2_code and c_ua='1')thenadmin_code<=new2_code;state<=sw;elsif(new1_code/=new2_code) thenstate<=sw;end if;elsif(clear='1')thenstate<=s3;end if;when s5=>if (s_model='0' and temp_code=user_code) then openlock<='1';state<=s6;elsif (s_model='0'and temp_code/=user_code) then- 18 -- 19 - 课程设计;数字密码锁n:=n+1;if n="11" thenalarm<='1';state<=s1;elsestate<=s1;end if;elsif (s_model='1' and temp_code=admin_code) then state<=s6;elsif(s_model='1' and temp_code/=admin_code) then state<=sw;end if;when s6=>if(enter='1')then--enterstate<=sw;elsif(clear='1' and alarm='1') then --clearalarm<='0';state<=sw;elsif(chgcode='1') thenchg_c<='1';state<=s7;end if;when s7=>- 19 -- 20 - 电子与信息董元伟 1106110205m:="00";if(user='1')thenc_ua<='0';old_code<=user_code; state<=s1elsif(admin='1')then c_ua<='1';old_code<=admin_code; state<=s1;end if;when sw=>alarm<='0';s_model<='0';c_ua<='0';m:="00";n:="00";openlock<='0';chg_c<='0';shuma2<="0000000"; shuma1<="0000000"; shuma0<="0000000"; state<=s1;end case;END if;END PROCESS main;end Behavioral;- 20 -- 21 - 课程设计;数字密码锁五、创建测试平台仿真结果:1、输入密码,期间有清除,并且密码输入正确。