FPGA课设
fpga在线课程设计

fpga 在线课程设计一、教学目标本课程旨在通过FPGA(现场可编程门阵列)在线课程设计,让学生掌握FPGA的基本概念、原理及其在数字电路设计中的应用。
通过本课程的学习,学生将能够:1.知识目标:理解FPGA的工作原理、结构及编程方法;掌握FPGA在数字信号处理、通信、嵌入式系统等领域的应用。
2.技能目标:学会使用FPGA设计工具进行电路图绘制和编程;具备分析、解决实际工程问题的能力。
3.情感态度价值观目标:培养学生对电子技术的兴趣,提高创新意识和团队合作能力,使其意识到FPGA技术在现代社会中的重要性。
二、教学内容本课程的教学内容主要包括以下几个部分:1.FPGA基本概念:介绍FPGA的定义、发展历程、特点及应用领域。
2.FPGA结构和工作原理:讲解FPGA的内部结构、工作原理及其与外部电路的接口。
3.FPGA编程方法:介绍FPGA的编程语言、开发工具及编程过程。
4.FPGA应用案例分析:分析FPGA在数字信号处理、通信、嵌入式系统等领域的具体应用。
5.实践环节:安排学生进行FPGA设计实践,巩固所学知识,提高实际操作能力。
三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:讲解FPGA的基本概念、原理及其应用,使学生掌握相关理论知识。
2.案例分析法:通过分析实际案例,让学生了解FPGA在各个领域的应用,提高学生的实践能力。
3.实验法:安排实践环节,让学生亲自动手进行FPGA设计,培养学生的动手能力和创新意识。
4.讨论法:学生进行小组讨论,分享学习心得,提高团队合作能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的FPGA教材,为学生提供系统的理论知识。
2.参考书:提供相关的FPGA技术参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT、教学视频等多媒体资料,提高学生的学习兴趣。
4.实验设备:准备FPGA开发板、编程器等实验设备,为学生提供实践操作的机会。
fpga课程设计

fpga课程设计一、课程介绍:fpga课程设计是一门针对电子工程与计算机科学专业高年级本科生或研究生的专业课程。
其目的是使学生掌握FPGA的基本原理、设计和应用技能,培养学生解决实际工程问题的能力。
课程将理论学习与实践操作相结合,使学生能够深入了解FPGA技术,并在实际项目中应用FPGA进行数字电路设计。
通过本课程的学习,学生将具备以下能力:1.理解FPGA的基本原理和工作机制;2.熟练使用FPGA设计软件进行数字电路的设计和仿真;3.掌握FPGA硬件描述语言(如VHDL或Verilog)的编程方法;4.具备在实际项目中应用FPGA解决工程问题的能力。
随着现代电子技术的快速发展,FPGA(现场可编程门阵列)技术在数字电路设计领域得到了广泛应用。
作为一种高度集成的可编程硬件设备,FPGA具有灵活性高、开发周期短和成本低等优点,使得它在通信、工业控制、医疗设备等领域具有广泛的应用前景。
为了适应这一技术发展趋势,培养具有实际工程能力的优秀人才,我校特开设此门课程,使学生能够紧跟时代步伐,掌握前沿技术。
二、学习者分析:本课程的目标学员为电子工程与计算机科学专业的高年级本科生、研究生,以及其他对FPGA技术感兴趣的学生。
学员具备一定的数字电路基础知识,对硬件描述语言有一定的了解。
学员应具备以下先备知识:1.数字电路基本原理,如逻辑门、触发器、计数器等;2.计算机组成原理,如CPU、内存、接口等;3.硬件描述语言(如VHDL或Verilog)的基本语法和编程方法;4.微电子学基础知识,如半导体器件、集成电路等。
三、学习目标:1.掌握FPGA的基本原理、工作机制和应用领域;2.了解FPGA设计流程,包括需求分析、逻辑设计、仿真验证、硬件实现等;3.熟悉FPGA硬件描述语言的编程方法和技巧。
4.能够使用FPGA设计软件进行数字电路的设计和仿真;5.能够运用FPGA硬件描述语言编写符合要求的数字电路模块;6.具备在实际项目中应用FPGA解决工程问题的能力。
fpga技术课程设计

fpga技术课程设计一、教学目标本课程的教学目标分为三个维度:知识目标、技能目标和情感态度价值观目标。
1.知识目标:通过本课程的学习,学生将掌握FPGA技术的基本概念、原理和应用,了解FPGA技术的发展趋势及其在电子工程领域的广泛应用。
2.技能目标:学生将能够熟练使用FPGA开发工具,如ISE、Vivado等,掌握FPGA编程语言,如VHDL、Verilog等,并具备一定的FPGA硬件设计和验证能力。
3.情感态度价值观目标:培养学生对FPGA技术的兴趣和热情,使其认识到了解和掌握FPGA技术对于个人职业发展的重要性,树立正确的科学态度和创新精神。
二、教学内容教学内容将根据课程目标进行选择和,确保内容的科学性和系统性。
教学大纲如下:1.FPGA技术概述:介绍FPGA的基本概念、工作原理和分类,以及FPGA技术的发展历程和趋势。
2.FPGA硬件描述语言:讲解VHDL和Verilog两种主流的FPGA硬件描述语言,包括基本语法、语句结构和常用库函数。
3.FPGA设计与验证:介绍FPGA设计的基本流程,包括设计输入、综合、布局布线和仿真验证等环节。
4.FPGA应用案例:分析典型的FPGA应用案例,如数字信号处理、网络通信、嵌入式系统等,使学生了解FPGA技术在实际工程中的应用。
5.FPGA开发工具:介绍FPGA常用的开发工具,如ISE、Vivado等,以及这些工具的使用方法和技巧。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:教师通过讲解、演示和举例等方式,向学生传授FPGA技术的基本概念、原理和应用。
2.讨论法:学生针对FPGA技术的相关话题进行讨论,培养学生的思考能力和团队协作精神。
3.案例分析法:分析典型的FPGA应用案例,使学生了解FPGA技术在实际工程中的应用,提高学生的实践能力。
4.实验法:安排学生进行FPGA实验,让学生亲自动手操作,巩固所学知识,提高实际操作能力。
fpga语言的课程设计

fpga语言的课程设计一、课程目标知识目标:1. 理解FPGA的基本概念,掌握FPGA的设计流程和原理;2. 学习并掌握FPGA编程语言(如VHDL/Verilog)的基本语法和结构;3. 掌握FPGA设计中常用的逻辑元件和模块的使用方法;4. 了解FPGA在实际工程中的应用案例,理解其优势和局限性。
技能目标:1. 能够运用FPGA编程语言编写简单的程序代码,实现基本的数字逻辑功能;2. 能够使用FPGA设计软件进行电路设计、仿真和调试;3. 能够分析FPGA设计中的问题和错误,并进行相应的优化和修改;4. 培养学生的动手实践能力,使其能够独立完成简单的FPGA项目设计。
情感态度价值观目标:1. 培养学生对FPGA技术及电子工程的兴趣,激发其探索精神和创新意识;2. 培养学生团队合作意识,学会与他人共同解决问题,提高沟通与协作能力;3. 培养学生严谨、细致的学习态度,养成认真负责、精益求精的工作作风;4. 增强学生的国家意识,认识到FPGA技术在我国电子产业发展中的重要性,激发其为国家技术进步贡献力量的责任感。
二、教学内容1. FPGA基本概念:FPGA的原理、结构、优势与应用领域;教材章节:第一章 概述2. FPGA设计流程:设计输入、综合、布局布线、仿真与实现;教材章节:第二章 设计流程3. FPGA编程语言:VHDL/Verilog基本语法、程序结构、数据类型;教材章节:第三章 编程语言基础4. 常用逻辑元件与模块:逻辑门、触发器、计数器、寄存器等;教材章节:第四章 基本逻辑元件与模块5. 电路设计与仿真:使用FPGA设计软件进行电路设计、仿真和调试;教材章节:第五章 电路设计与仿真6. FPGA项目实践:分析案例,设计并实现简单的数字逻辑功能;教材章节:第六章 项目实践7. 优化与修改:分析FPGA设计中可能出现的问题,进行优化和修改;教材章节:第七章 优化与修改8. 动手实践:指导学生进行实际操作,培养动手实践能力;教材章节:第八章 动手实践教学内容按照以上大纲进行安排,确保课程的科学性和系统性,使学生能够逐步掌握FPGA的设计与应用。
基于fpga的简单课程设计

基于fpga的简单课程设计一、课程目标知识目标:1. 学生能理解FPGA的基本概念,掌握FPGA的基本结构和原理;2. 学生能描述数字电路的基本组成,了解数字电路在FPGA中的应用;3. 学生能掌握Verilog HDL语言的基本语法和编程方法,并运用其设计简单的数字电路。
技能目标:1. 学生能运用FPGA设计软件进行电路设计和仿真;2. 学生能通过Verilog HDL编程实现基本的数字电路功能;3. 学生能对设计的FPGA电路进行调试和优化,提高电路性能。
情感态度价值观目标:1. 培养学生积极主动探索新知识、新技术,增强其对电子工程领域的兴趣;2. 培养学生具备团队协作精神,学会与他人共同解决问题,提高沟通与表达能力;3. 培养学生具备工程素养,关注工程伦理,认识到科技发展对社会的重要意义。
课程性质:本课程为实践性课程,注重培养学生的动手能力和创新能力。
学生特点:学生具备一定的电子技术基础,对FPGA技术有一定了解,具备基本的计算机操作能力。
教学要求:教师需结合学生特点和课程性质,采用任务驱动、案例教学等方法,引导学生主动参与课堂实践,提高学生的实际操作能力。
同时,注重培养学生的自主学习能力和团队合作精神,提高学生的综合素质。
通过课程目标的分解与实施,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。
二、教学内容1. 数字电路基础- 数字逻辑基础:逻辑门、逻辑函数、逻辑代数;- 组合逻辑电路:编码器、译码器、多路选择器、算术逻辑单元;- 时序逻辑电路:触发器、计数器、寄存器。
2. FPGA基本原理- FPGA结构:逻辑单元、查找表、寄存器、布线资源;- FPGA编程原理:配置、重配置、上电配置;- FPGA设计流程:设计输入、综合、布局布线、仿真、下载。
3. Verilog HDL编程- 基本语法:模块、端口、信号、数据类型;- 语句结构:顺序语句、并行语句;- 基本数字电路设计:组合逻辑电路、时序逻辑电路、状态机。
FPGA课程设计Verilog

FPGA课程设计Verilog一、教学目标本课程的教学目标是使学生掌握FPGA的基本原理,熟练使用Verilog硬件描述语言进行FPGA设计和开发。
通过本课程的学习,学生应能够理解FPGA的工作原理,熟悉FPGA的编程环境和工具,掌握Verilog语言的基本语法和常用语句,能够编写符合要求的FPGA程序,并能够进行简单的FPGA电路设计和调试。
具体来说,知识目标包括:1.掌握FPGA的基本原理和结构。
2.熟悉Verilog硬件描述语言的基本语法和常用语句。
3.了解FPGA设计和开发的基本流程。
技能目标包括:1.能够使用Verilog语言编写简单的FPGA程序。
2.能够使用FPGA开发工具进行电路设计和仿真。
3.能够进行简单的FPGA电路调试和优化。
情感态度价值观目标包括:1.培养学生的创新意识和实践能力。
2.培养学生的团队合作意识和沟通能力。
3.培养学生的自主学习和解决问题的能力。
二、教学内容本课程的教学内容主要包括FPGA的基本原理、Verilog硬件描述语言、FPGA设计和开发流程。
具体包括以下几个方面:1.FPGA的基本原理和结构:介绍FPGA的工作原理、特点和应用领域,熟悉FPGA的基本结构和组成部件。
2.Verilog硬件描述语言:学习Verilog语言的基本语法、数据类型、运算符、控制语句等,掌握常用的Verilog模块编写方法。
3.FPGA设计和开发流程:了解FPGA设计的的基本流程,包括需求分析、逻辑设计、硬件描述语言编写、综合、布局布线、下载和调试等步骤。
4.FPGA编程和调试:学习如何使用FPGA编程工具进行编程,掌握常用的调试技巧和方法。
三、教学方法为了达到本课程的教学目标,将采用多种教学方法相结合的方式进行教学。
包括:1.讲授法:通过讲解FPGA的基本原理、Verilog语言的语法和FPGA设计的流程等内容,使学生掌握基本概念和理论知识。
2.案例分析法:通过分析具体的FPGA设计案例,使学生了解FPGA设计的实际应用,培养学生的实践能力。
fpga课程设计楼道灯

fpga课程设计楼道灯一、教学目标本节课的教学目标是让学生了解和掌握FPGA的基本知识和应用,通过设计“楼道灯”的控制系统,使学生能够理解并运用FPGA实现数字电路的设计与控制。
知识目标:使学生了解FPGA的基本概念、结构和原理,掌握FPGA的基本编程语言和开发环境。
技能目标:培养学生利用FPGA进行数字电路设计的能力,使学生能够独立完成简单的FPGA项目设计。
情感态度价值观目标:培养学生对新技术的兴趣和好奇心,增强学生的创新意识和实践能力,提高学生团队合作和解决问题的能力。
二、教学内容本节课的教学内容主要包括FPGA的基本概念、结构和原理,FPGA的编程语言和开发环境,以及利用FPGA设计数字电路的方法。
首先,介绍FPGA的基本概念,包括FPGA的定义、特点和应用领域。
然后,讲解FPGA的结构和工作原理,使学生了解FPGA的内部组成和运作方式。
接下来,介绍FPGA的编程语言,包括VHDL和Verilog,并通过实例讲解如何使用这些语言进行编程。
最后,以“楼道灯”控制系统的设计为例,引导学生掌握利用FPGA设计数字电路的方法和步骤。
三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法,包括讲授法、案例分析法和实验法。
首先,通过讲授法,向学生传授FPGA的基本知识和概念,使学生了解FPGA的原理和应用。
然后,通过案例分析法,分析实际项目中的FPGA应用实例,让学生了解FPGA的实际应用和设计方法。
最后,通过实验法,让学生动手设计并实现“楼道灯”控制系统,提高学生的实践能力和创新能力。
四、教学资源为了支持教学内容和教学方法的实施,本节课将准备以下教学资源:1.教材:选用《FPGA原理与应用》作为主教材,为学生提供系统的FPGA知识体系。
2.参考书:提供《FPGA设计实战指南》等参考书籍,为学生提供更多的学习资料和实践案例。
3.多媒体资料:制作PPT和教学视频,生动形象地展示FPGA的基本概念和设计方法。
fpga简单课程设计

fpga简单课程设计一、教学目标本课程旨在让学生了解FPGA(现场可编程门阵列)的基本概念、特性和应用,掌握FPGA的基本编程和设计方法,培养学生的创新意识和实践能力。
知识目标:使学生了解FPGA的基本原理、结构和工作原理,熟悉FPGA的编程语言和开发环境,掌握FPGA的基本设计方法和流程。
技能目标:培养学生使用FPGA相关软件进行简单程序设计和调试的能力,使学生具备分析和解决实际问题的能力。
情感态度价值观目标:培养学生对电子技术的热爱,激发学生创新和实践的兴趣,培养学生的团队合作意识和综合素质。
二、教学内容本课程的教学内容主要包括FPGA的基本概念、FPGA的编程语言和开发环境、FPGA的基本设计方法和流程、以及FPGA在实际应用中的案例分析。
具体包括以下几个部分:1.FPGA的基本概念:介绍FPGA的定义、特点和应用领域。
2.FPGA的编程语言:介绍VHDL和Verilog这两种常用的FPGA编程语言。
3.FPGA的开发环境:介绍FPGA开发过程中所使用的软件工具,如ISE、Altera等。
4.FPGA的基本设计方法:介绍FPGA设计的流程,包括硬件描述语言的编写、逻辑综合、布局布线、编程和调试等。
5.FPGA的应用案例:分析FPGA在实际应用中的案例,如数字信号处理、嵌入式系统等。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过教师的讲解,使学生了解和掌握FPGA的基本概念、原理和方法。
2.讨论法:引导学生针对实际问题进行思考和讨论,培养学生的创新意识和解决问题的能力。
3.案例分析法:分析FPGA在实际应用中的案例,使学生了解FPGA的应用领域和设计方法。
4.实验法:让学生动手进行FPGA的设计和调试,提高学生的实践能力和动手能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用国内外优秀的FPGA相关教材,为学生提供系统的理论知识和实践指导。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA课程设计—数字密码锁学院:专业班级:姓名:学号:页脚内容1FPGA基于Verilog HDL密码锁设计1. 摘要 (3)2. 题目来源: (4)3. 理论分析 (4)4. 实现过程 (5)4.1顶层模块 (5)4.2蜂鸣器模块 (7)4.3显示模块 (8)4.4控制模块 (13)5. 实验结果 (17)5.1顶层模块时序仿真: (17)5.2蜂鸣器时序仿真 (20)5.3显示模块时序仿真: (21)5.4控制模块时序仿真 (23)6. 总结 (27)7. 参考文献 (28)页脚内容21.摘要随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未来使用的趋势。
本设计使用FPGA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。
用Verilog HDL可以更加快速、灵活地设计出符合各种要求的密码锁。
本设计基于Verilog HDL语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为蜂鸣器模块、显示模块、控制模块、顶层模块进行了介绍,给出各个模块的主要代码,在对各个模块的功能进行仿真。
随着现代科技的日益发展,智能化,自动化技术的成熟将会代替以往的人工手动控制。
密码锁不仅可以有效地提高人们的生活效率,节约生活资源,而且十分安全可靠。
电子密码锁运用电子电路控制机械部分,使两者紧密结合,从而避免了因为机械部分被破坏而导致开锁功能失常.大大增加了密码锁得防盗功能。
同时因为电子密码锁不需要携带钥匙,弥补了钥匙极易丢失和仿造的缺陷,方便了锁具的使用。
关键字:页脚内容3密码锁Verilog HDL Quartus II2.题目来源:本设计以007为万能密码在忘记密码时开锁使用。
开始时密码锁处于关闭的状态,输入万能密码将锁打开。
在锁处于打开的状态时设计密码,此时指示灯处于亮的状态,说明锁处于开的状态。
设置好密码后按关闭拨码使锁关闭,指示灯处于灭的状态。
再输入三位数字进行开琐,如果输入的密码正确则指示灯亮,表示开琐成功,否则蜂鸣器发出响声,并持续五秒钟,表示开锁失败。
通过学习FPGA技术,应用于实践当中,掌握FPGA数字电路系统的开发流程,并且在自己的实践设计中熟练这门技术,同时排除和解决开发中遇到的问题,用Verilog语言编写设计所需要的实现的功能。
3.理论分析密码锁分为四个模块:①顶层模块、②显示模块、③蜂鸣器模块、④控制模块。
其中由顶层模块调其他分模块来实现密码锁功能。
密码锁功能:a.由12个拨码开关设置三位密码(0-9)b.再输入密码开锁,密码正确,指示灯亮开锁成功。
c.密码输入错误,蜂鸣器响五秒,表示开锁失败。
页脚内容4总体框图图1.0 总体框图4.实现过程4.1顶层模块实现几个模块的配合工作,它能实现对密码的设置和显示,同时在密码正确时时灯亮,在密码错误时蜂鸣器发出五秒钟的响声。
程序如下:页脚内容5module dingceng(n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,set,close,clk1,clk2,clk3,lock,alarm,Q,ss1,ss0);input n0,n1,n2,n3,n4,n5,n6,n7,n8,n9;input set,close;input clk1,clk2,clk3;output lock,alarm,ss1,ss0;output[6:0] Q;reg lock,alarm;reg ss0,ss1;reg[6:0] Q;wire[3:0] X1,X2,X3;wire X4,X5;codeu1(.lock(lock),.warning(X4),.num1(X1),.num2(X2),.num3(X3),.clk(clk1),.n0(n0),.n1(n1),.n2(n2),.n3(n3),.n4(n4),.n5(n 5),.n6(n6),.n7(n7),.n8(n8),.n9(n9),.set(set),.close(close));show u2(.A(X1),.B(X2),.C(X3),.clk(clk2),.Q(Q[6:0]),.ss1(ss1),.ss0(ss0));speaker u3(.ENA(X4),.CLK2(clk3),.COUT(alarm));endmodule页脚内容64.2蜂鸣器模块蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用各类电子产品中作发声器件。
如图为其原理图:图 1.1 蜂鸣器原理图结构蜂鸣器功能实现:程序共有两个输入信号分别为ENA和CLK2,,一个输出信号COUT。
当从信号输入模块检测到有开关输入时,信号ENA已置1,CLK2上升沿到来时,有程序使COUT为1,蜂鸣器发出报警信号,并且进入一个5秒钟的循环,时间到达时,跳出循环,蜂鸣器停止报警。
程序如下:module speaker(ENA,CLK2,COUT); //ENA为使能信号,CLK为时钟信号规定工作频率input ENA,CLK2;output COUT;reg COUT;reg[3:0] Q1;页脚内容7always@(posedge CLK2) //CLK2为敏感信号beginif(ENA&&Q1<6) //当ENA为1并且Q1小于6时执行下面的语句Q1=Q1+1;if(~ENA) //ENA为0时,执行下面的语句Q1=0;endalwaysbeginif(Q1==6||Q1==0)COUT='b0;elseCOUT='b1;endEndmodule4.3显示模块页脚内容8数码管常用于电子产品的显示部分,原理简单易于实现,将BCD码经译码后显示成十进制的数字显示模块功能实现:模块共有四个输入信号A、B、C、CLK,三个输出信号分别为Q、SS1、SS2。
SS1、SS2可对三个数码管进行片选,使它们分别亮。
A、B、C接段选,以控制数码管显示什么数字。
程序如下:module show(A,B,C,clk,Q,ss1,ss0);input[3:0] A,B,C;input clk;output[6:0] Q;output ss1,ss0;reg[1:0] M;reg ss0,ss1;reg[6:0] Q;always@(posedge clk)beginM=M+1;页脚内容9if(M=='b11)M<='b00;endalways@(posedge clk)beginif(M=='b00)beginss1<=0;ss0<=0;case(A)0:Q<='b0111111;1:Q<='b0000110;2:Q<='b1011011;3:Q<='b1001111;4:Q<='b1100110;5:Q<='b1101101;6:Q<='b1111101;页脚内容107:Q<='b0000111;8:Q<='b1111111;9:Q<='b1101111;endcaseendif(M=='b01)beginss1<=0;ss0<=1;case(B)0:Q<='b0111111;1:Q<='b0000110;2:Q<='b1011011;3:Q<='b1001111;4:Q<='b1100110;5:Q<='b1101101;6:Q<='b1111101;页脚内容117:Q<='b0000111;8:Q<='b1111111;9:Q<='b1101111;endcaseendif(M=='b10)beginss1<=1;ss0<=0;case(C)0:Q<='b0111111;1:Q<='b0000110;2:Q<='b1011011;3:Q<='b1001111;4:Q<='b1100110;5:Q<='b1101101;6:Q<='b1111101;页脚内容127:Q<='b0000111;8:Q<='b1111111;9:Q<='b1101111;endcaseendendEndmodule4.4控制模块控制模块用于密码的设置控制模块功能实现:模块可以通过程序的执行实现对密码进行设置和进行开琐,开始时锁处于关闭的状态,即为1,输入事先设置的万能密码开琐,在锁开的状态时设置密码,然后将锁关闭,再输入三位数字进行开锁,正确时为1既灯亮,否则为0为1,即蜂鸣器响。
控制模块程序如下:/*页脚内容13clk:时钟信号n0,n1,n2,n3,n4,n5,n6,n7,n8,n9:密码输入信号lock:状态显示信号close:关信号set:密码确认信号*/module code(lock,warning,num1,num2,num3,clk,n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,set,close);input n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,set,close,clk;output[3:0]num1,num2,num3;output lock,warning;reg lock,warning;reg[3:0]num1,num2,num3,temp;reg[11:0]code;always@(posedge clk)beginif({n0,n1,n2,n3,n4,n5,n6,n7,n8,n9}!=10'b0000000000)begin页脚内容14case({n9,n8,n7,n6,n5,n4,n3,n2,n1,n0})10'b0000000001:temp=1'd0;10'b0000000010:temp=1'd1;10'b0000000100:temp=1'd2;10'b0000001000:temp=1'd3;10'b0000010000:temp=1'd4;10'b0000100000:temp=1'd5;10'b0001000000:temp=1'd6;10'b0010000000:temp=1'd7;10'b010*******:temp=1'd8;10'b1000000000:temp=1'd9;endcasenum3<=num2;num2<=num1;num1<=temp;endif(close)页脚内容15beginnum1<=0;num2<=0;num3<=0;endendalways@(posedge clk)beginif(lock==0&&set)beginif(code=={num3,num2,num1})lock<=1;else if({num3,num2,num1}==16'b000000000111)lock<=1;else warning<=1;endif(lock==1&&close)页脚内容16lock<=0;if(close)warning<=0;endalways@(posedge clk)beginif(lock==1&&set)code<={num3,num2,num1};endEndmodule5.实验结果5.1顶层模块时序仿真:页脚内容17图1.2 万能密码开锁的波形页脚内容18图1.3 设置密码的波形页脚内容19图1.4 开锁失败的波形5.2蜂鸣器时序仿真图1.5:当ENA为1时且CLK2上升沿到来时,COUT被置1,即蜂鸣器开始发出响声页脚内容20图1.5 蜂鸣器功能波形5.3显示模块时序仿真:图1.6:SS0、SS1不断的进行片选使三个数码管分别显示所输入的密码,以实现对密码的动态显示页脚内容21图1.6 显示模块功能波形页脚内容225.4控制模块时序仿真图1.7:输入万能密码007,并使set置1,运行程序后lock被置1。