数电EDA简易电子琴Verilog设计
eda电子设计使用verilog语言电子琴实验报告
![eda电子设计使用verilog语言电子琴实验报告](https://img.taocdn.com/s3/m/15104a4317fc700abb68a98271fe910ef12dae3d.png)
电子设计自动化课程设计报告院系:信息工程学院专业:电子信息工程学号:姓名:指导教师:2013 年月日目录1设计目的 (3)2题目描述与要求 (3)3课程设计报告内容 (3)3.1设计原理与思路 (3)3.2操作过程 (4)3.3设计和调试过程中出现的问题及解决方法 (7)4设计总结和心得体会 (8)一、课程设计目的使用VerilogHDL语言进行前端设计,并使用Quaruts软件在实验箱上实现仿真,实现硬件电子琴。
电子琴要求有8个音阶,使用外部时钟信号32MHz,能同步显示音阶。
二、课程设计题目描述和要求题目:简易电子琴的设计主要功能:(1)设计一个八音电子琴。
(2)由键盘输入控制音响,同时可自动演奏乐曲。
(3)用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或者已存入的乐曲。
三、课程设计报告内容3.1设计原理与思路系统由数控分频器、乐曲存储模块以及发声模块组成。
数控分频器对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。
乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。
由发声模块产生音符对应的频率的信号来使扬声器发音。
(1)模块automusic模块automsic由auto信号来选择发声的方式,auto=0时系统自动播放内置的音乐,auto=1时由键盘来手动演奏音乐。
(2)模块TONE模块Tone是音阶发生器,当8位发声控制输入Index中某一位为高电平时,则对应某一音阶的数值将从端口Tone输出,作为获得该音阶的分频预置值;同时由Code输出对应该音阶简谱的显示数码,如‘5’,并由High输出指示音阶高8度显示。
(3)模块Speaker模块Speaker中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器构成,当模块Speaker由端口Tone获得一个2进制数后,将以此值为计数器的预置数,对端口Clk12MHZ输入的频率进行分频,之后由Spkout向扬声器输出发声。
eda课程设计简易电子琴
![eda课程设计简易电子琴](https://img.taocdn.com/s3/m/89738402bf23482fb4daa58da0116c175e0e1e52.png)
eda课程设计简易电子琴一、课程目标知识目标:1. 让学生了解EDA(电子设计自动化)的基本概念,掌握简易电子琴的设计原理;2. 使学生掌握电子琴电路的组成、工作原理和编程方法;3. 帮助学生理解电子琴音调、音量调节的电路实现方式。
技能目标:1. 培养学生运用EDA工具进行电路设计和编程的能力;2. 提高学生动手实践、团队合作和问题解决的能力;3. 让学生学会使用电子琴演奏简单曲目,培养音乐素养。
情感态度价值观目标:1. 激发学生对电子设计的兴趣和热情,培养创新精神和实践能力;2. 培养学生严谨、认真、负责的学习态度,养成良好的学习习惯;3. 引导学生关注科技发展,认识电子技术在生活中的应用,增强社会责任感。
课程性质:本课程为实践性较强的课程,结合理论知识,注重培养学生的动手能力和创新能力。
学生特点:学生处于初中阶段,具有一定的物理、数学基础,对新鲜事物充满好奇心,但可能缺乏实际操作经验。
教学要求:结合学生特点,采用任务驱动法,引导学生主动探究、实践,注重理论与实践相结合,提高学生的综合能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 理论知识:- 电子元件基本原理:电阻、电容、二极管、三极管等;- 电子琴工作原理:振荡器、分频器、放大器、键盘扫描电路等;- EDA软件使用:原理图绘制、PCB设计、仿真测试等。
2. 实践操作:- 简易电子琴电路搭建:指导学生动手搭建电子琴电路;- EDA软件操作:教授学生使用EDA软件进行原理图绘制和PCB设计;- 编程与调试:教授学生编程方法,对电子琴进行调试。
3. 教学大纲:- 第一周:电子元件基本原理学习;- 第二周:电子琴工作原理学习;- 第三周:EDA软件使用教学;- 第四周:简易电子琴电路搭建与调试;- 第五周:总结与展示,学生进行作品展示,分享心得。
4. 教材章节:- 《电子技术基础》中关于电子元件、电路原理的相关章节;- 《电子设计自动化》中关于EDA软件使用的相关章节;- 《电子琴设计与制作》中关于电子琴工作原理和制作过程的相关章节。
基于EDA的简易电子琴设计-鲍亚文
![基于EDA的简易电子琴设计-鲍亚文](https://img.taocdn.com/s3/m/77cbc2f6bcd126fff6050b1d.png)
基于EDA的简易电子琴设计鲍亚文(安庆师范大学物理与电气工程学院安徽安庆 246011)指导老师:郑江云摘要:本设计是一个简易的七音符电子琴,该电子琴可以通过按键输入来控制音调,也可对预置乐曲的自动演奏,同时由数码管显示即时音符。
系统的实现是基于EDA技术,在Quartus软件平台上,借助FPGA目标器件,用硬件描述语言Verilog HDL进行编程并仿真验证。
本设计中的电子琴可操作性好,音符显示直观,声音优美。
关键词:电子琴,电子设计自动化,Verilog HDL语言引言科技发展的日新月异,催生了一系列新奇实用的电子产品。
在这些电子产品中,电子琴早已成为电子乐器行列中的重要一员。
电子琴是人类仿制常规乐器的代表之一,其发明问世极大地丰富了人们的听觉感受,推动了音乐的普及和发展。
在信息化与电子化交织的今天,电子琴作为社会科技与文明的产物,正扮演着音乐领域中不可或缺的角色。
EDA技术的快速发展和成熟,FPGA等数字可编程器件的出现和进步,基于EDA技术的设计也变得愈加简单可行。
基于EDA技术的设计不仅系统可靠性较高,而且能实现较为复杂的功能。
运用EDA软件可方便地在计算机平台上实现设计与仿真,本设计中的电子琴便是基于EDA技术,运用Verilog HDL 语言设计完成的。
1 EDA概述与音乐知识1.1 EDA技术1.1.1 EDA的发展EDA(Electronic Design Automation,电子设计自动化)可以认识为在计算机工作平台上,以EDA 软件为开发环境,以PLD器件或ASIC专用集成电路为目标器件来设计实现电路系统的一门技术。
EDA 技术在逐渐进步,其大致经历了3个发展阶段:CAD阶段(20世纪70年代至80年代初)、CAE阶段(20世纪80年代初至90年代初)、EDA阶段(20世纪90年代以后)。
[1]EDA技术在进入21世纪后,得到了不小的进步和发展,突出表现在以下几个方面:[2](1)不断推出在仿真验证和设计两方面都支持标准硬件描述语言的EDA软件,功能更加强大且验证更加高效;(2) EDA技术使得电子设计成果以自主知识产权(IP)的方式予以确认,提高了设计成果的可重用性;(3)EDA技术使得电子领域各学科之间的界限更加模糊,互为包容,如模拟和数字、软件和硬件、系统和器件、ASIC和FPGA等;(4)SoPC(可编程芯片系统)进入实用化阶段;(5)高速数字信号处理算法可基于FPGA的DSP技术实现。
edaverilog课程设计
![edaverilog课程设计](https://img.taocdn.com/s3/m/3068b1b06394dd88d0d233d4b14e852459fb3947.png)
eda verilog 课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握Verilog硬件描述语言的基本语法与结构。
2. 学生能够运用Verilog语言设计简单的数字电路,并了解其仿真过程。
3. 学生了解数字电路的基本测试方法,并能够运用Verilog进行基本测试代码的编写。
技能目标:1. 学生能够使用EDA工具进行Verilog代码的编写、编译和仿真。
2. 学生通过实际操作,掌握数字电路设计中常见的模块搭建和调试技巧。
3. 学生能够通过小组合作,完成一个小型的数字系统设计项目,提高实践操作能力。
情感态度价值观目标:1. 培养学生积极探索、勤于实践的科学态度,激发学生对电子设计领域的兴趣。
2. 培养学生的团队协作精神,提高沟通与表达能力,增强解决问题的信心。
3. 通过课程学习,使学生认识到电子技术在现代社会中的重要作用,培养学生的创新意识和责任感。
二、教学内容本课程教学内容主要包括以下几部分:1. EDA与Verilog基础知识:介绍EDA的基本概念、发展历程及Verilog硬件描述语言的基本语法、结构。
- 教材章节:第一章 EDA技术概述,第二章 Verilog基础知识。
- 内容安排:讲解EDA工具的使用,Verilog基本语法、数据类型、运算符等。
2. 数字电路设计基础:学习组合逻辑电路、时序逻辑电路的设计方法,以及常用数字电路模块的Verilog描述。
- 教材章节:第三章 组合逻辑电路设计,第四章 时序逻辑电路设计。
- 内容安排:介绍组合逻辑电路与时序逻辑电路的设计原理,通过实例讲解Verilog代码编写。
3. 数字电路仿真与测试:学习数字电路的仿真方法,编写测试代码,进行功能验证。
- 教材章节:第五章 数字电路仿真,第六章 数字电路测试。
- 内容安排:讲解仿真工具的使用,编写测试代码,进行电路功能验证。
4. 实践项目:小组合作完成一个小型数字系统设计项目,包括设计、仿真、测试等环节。
数字电子EDA课程设计八音电子琴
![数字电子EDA课程设计八音电子琴](https://img.taocdn.com/s3/m/b6deedeccf2f0066f5335a8102d276a201296040.png)
数字电子EDA课程设计八音电子琴第一篇:数字电子EDA课程设计八音电子琴燕山大学EDA课程设计实验报告院系:信息科学与工程学院姓名:班级:学号:日期:[实验名称] 八音电子琴[实验要求] 1.能发出1.2.3.4.5.6.7.i八个音2.用按键作为键盘3.C调至B调对应频率如下表音调 C(高音)B A G F E D C频率(Hz)261.63x2 493.88 440.00 392.00 349.23 329.63 293.66 261.63 [实验电路设计] 1.命题分析根据命题的要求,要使扬声器发音,需要在其输入信号端连接一个对应频率的方波信号.实验使用的信号源可以提供从几Hz到几兆Hz不等的信号频率,自然可以想到本实验命题的关键是一个具有相应分频比的分频器.考虑到硬件(按钮)在实际工作过程中会因元件的接触产生一些不可避免的抖动脉冲电平,会对实验造成影响,因此需要在按键接入线路中安装防抖动电路.2.设计过程1>分频器为了取得合适的电路复杂度和可接受的误差范围,分频器的时钟信号选取为器件所提供的JPCK—1(3MHz音频信号).然后通过计算,用时钟信号频率除以各发音频率,得到的分频比如下表:分频比(16进制)5DEE 6384 6F84 7D62 8ADE 951C A760 BBDE频率(Hz)高C:261.63x2 B:493.88 A:440.00 G:392.00 F:349.23 E:329.63 D:293.66 C:261.63 利用四片十六进制计数器74LS161就可以连接成适用的分频器.分频器连接完成后会产生一个预定频率的周期脉冲.但是实验要求的方波其占空比应该为1:1,因此在输出脉冲端加装一个T触发器,每次脉冲到达触发器的时候输出便会跳变电平,这就达到了驱动扬声器的条件.但是在应用了T触发器后输出方波的周期比预定的扩大了一倍,也就是说频率减至原来的二分之一.此时应重新选择时钟信号,令其为原来2倍即可.根据实验指导书,最终确定选择的时钟信号为6MHz.2>防抖动电路利用D触发器的电压跟随特性可以用一个频率较低的时钟信号驱动,达到防止按键抖动的目的.电路较简单,见图3.图1.时钟分频电路(downway)图2.CP为375K时上图的B4输出波形由于设计的原因,本电路只能支持单音节输入.当同时键入两个以上的音阶时,分频比较小的(比较高的音阶)优先发声.图3.按键输入防抖动电路3>电路组合组合后的电路模块如图4.共有11个输入端和1个输出端.其中,CP_6M为整个电路的主频,使用电路板上的6MHz信号输出端;CP_1US为防抖动电路中触发器所使用的时钟,要求频率不高,选择电路板提供的CLK3-3(12Hz);KEYCa-B是电子琴的输入按键接口,依次是从低音到高音.Speaker是电路的输出端,接入扬声器,为其产生相应音阶的频率.实际电路如图4.连接完成后,对该电路进行仿真测试,如图5,令其CP_6M为6MHz,CP_1US为一个较低频率脉冲,设臵KEYB(音节B)为有效电平,在speaker上得到的输出频率为493,与实际音节的频率相同.图4.八音电子琴图5.电子琴完成品的仿真波形T触发器2分频电路[硬件测试] [实习心得] 第一感觉,数字电子技术EDA实习很有意思.我们可以有充分的时间去思考怎么做出一个东西,这个东西的用处也许不大甚至几乎没有,但重要的是思考的过程:从它的用途总结出它的特性,从它的特性构思出它的原理,从原理到构建模型,再到模型的实现,利用已有的知识,可用的元件,最终组合出一个具有高度逻辑性的组合电路,这和我们小时候玩搭积木差不多.把积木一块块的搭成一座城堡,中间缺少任何一层甚至任何一块,城堡都可能会倒塌.同理,在我们构建命题所给的元器件时任何一个逻辑错误都可能是致命的,导致最后无法出现正确结果或者干脆不能用.因此,实习,有意思的同时还不能大意.这是一个锻炼逻辑思维和思维严谨性的极好的机会,我和我的同学们在这次工作中受益非浅.大家都积极思思考,查找资料,集思广益来解决现有的问题。
(最新整理)veriloghdl—电子琴课程设计
![(最新整理)veriloghdl—电子琴课程设计](https://img.taocdn.com/s3/m/8e489522fab069dc502201fb.png)
veriloghdl—电子琴课程设计
military song the broadcast, but also has shows the sound the function。 Designs the simple electric piano to have in the hardware。 The program has seven modules, including main module, fractional frequency module and so on. Keyboard with keys to play the function and replace the keys to play function。 Key has seven sound, automatic playback function with three in song, were the two tiger ”, "the sky city” and ”kangding love songs. Software has its merit. It is perfect in the software Verilog HDL. The original frequency is divided into different frequencys. The piano makes sound by the buzzer with different frequencys。
【关键词】Verilog HDL 电子琴 模块 分频
ABSTRACT
This article introduced the simple electric piano’s design。 It realizes through the software and hardware union。 The hardware system includes a director, 9 keys, LEDs and a buzzer. The software design uses Verilog HDL。 Emulation uses Quartus II. It can broadcast the system establishment the corresponding note, and can complete a
eda电子琴课程设计
![eda电子琴课程设计](https://img.taocdn.com/s3/m/48ce924c876fb84ae45c3b3567ec102de3bddf47.png)
eda电子琴课程设计一、课程目标知识目标:1. 学生能够理解并掌握EDA电子琴的基本结构和工作原理;2. 学生能够运用电子琴演奏简单的旋律,并识别不同音符的音高和时值;3. 学生能够了解并运用基本的音乐理论知识,如音阶、和弦等;4. 学生掌握音乐创作的基本方法,能够创作简单的电子琴曲目。
技能目标:1. 学生能够熟练操作EDA电子琴,进行基本演奏;2. 学生能够运用所学音乐理论知识,进行简单的曲目分析和创作;3. 学生能够在团队合作中,与他人共同演奏和创作音乐作品;4. 学生能够运用电子琴进行即兴演奏,提高音乐表现力。
情感态度价值观目标:1. 学生培养对音乐的热爱,提高音乐素养,树立正确的审美观念;2. 学生在学习和创作过程中,培养创新精神和实践能力;3. 学生通过团队合作,培养协作精神和沟通能力;4. 学生通过音乐学习,增强自信,勇于展示自我。
本课程针对小学四年级学生,结合电子琴教学实际,以趣味性和实用性为导向,注重培养学生的动手操作能力、音乐素养和团队协作精神。
通过本课程的学习,使学生能够在轻松愉快的氛围中掌握电子琴演奏技巧,提高音乐创作能力,激发学生对音乐的热爱和兴趣。
同时,课程目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 电子琴基础知识:介绍EDA电子琴的结构、功能键及操作方法,使学生了解电子琴的基本构成和演奏方式。
- 教材章节:第一章 电子琴概述- 内容列举:电子琴结构、功能键、演奏操作2. 音乐理论基础:学习基本的音乐符号、音阶、和弦等知识,为演奏和创作打下基础。
- 教材章节:第二章 音乐理论基础- 内容列举:五线谱、音符、音阶、和弦3. 电子琴演奏技巧:教授基本演奏技巧,如指法、音色选择、节奏控制等,提高学生的演奏能力。
- 教材章节:第三章 电子琴演奏技巧- 内容列举:指法、音色、节奏、动态4. 简单曲目演奏:选取适合学生程度的曲目,指导学生进行演奏练习,巩固所学知识。
数电EDA简易电子琴Verilog设计
![数电EDA简易电子琴Verilog设计](https://img.taocdn.com/s3/m/3ed88021876fb84ae45c3b3567ec102de2bddfb2.png)
数电EDA简易电子琴Verilog设计数字电子技术课程设计--简易电子琴设计专业班级:电子姓名:学号:一、日期:设计任务用Verilog HDL语言设计简易电子琴。
(1)单独从左至右按下S1-S7每个按键后能够各自对应发出“哆来咪发唆啦西”的音乐声;(2)按下最右边按键(S8),同时再配合按下S1-S7键后,发高八度的对应音;(3)按键需要进行“消抖”处理;(4)外部输入脉冲信号频率为1mhz;(5)扩展要求:自主设计(增加低8度功能)。
二、实验目的1、学习verilogHDL语言的基本运用,能够利用其进行简单编程;2、学习使用QuartusⅡ的基本操作,能够利用其进行简单的设计;3、结合实践加深对理论知识的理解。
三、设计原理1)喇叭的振动频率不同,导致产生不同的声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐。
题目中音乐基本音的“哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz。
低8度音:基本音频率/2,例如低音1的频率为523/2=。
高8度音:基本音频率×2,例如高音1的频率为523×2=1046Hz.。
不同的频率产生利用给定的时钟脉冲来进行分频实现。
(2)消抖的原理:按键默认输入逻辑‘1’,当有按键按下时对应的输入为逻辑‘0’(但会存在抖动),当FPGA开始检测到该引脚从‘1’变为‘0’后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为‘0’则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程的消抖处理和按下时原理一样。
(3)原理框图四、程序设计消抖模块module xiaodou(key_in,key_out,clk);input key_in;input clk;output key_out;reg key_out;reg [2:0]presta;integer q;parameter s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100,s5=3'b101,s6=3'b110,s7=3'b111;always@(posedge clk)begincase(presta)s0:beginkey_out<=0;q<=0;if(key_in==1)presta<=s0; elsepresta<=s1; ends1:beginkey_out<=0; if(q>9999) presta<=s2; elseq<=q+1; ends2:beginkey_out<=0; q<=0;if(key_in==1) presta<=s0; elsepresta<=s3; ends3:beginkey_out<=1; q<=0;if(key_in==0) presta<=s3; elsepresta<=s4; ends4:beginkey_out<=1;if(q>44444)presta<=s5;elseq<=q+1;ends5:beginq<=0;if(key_in==1)presta<=s0;elsepresta<=s3;ends6:beginpresta<=s0;ends7:beginpresta<=s0;endendcaseendend module按键模块module anjian(a,b,c,d,e,f,g,h,i,qout); input a,b,c,d,e,f,g,h,i;output [10:0] qout;reg [8:0] q;reg [10:0] qout;always@(a or b or c or d or e or f or g or h or i) begin q[0]=i;q[1]=h;q[2]=g;q[3]=f;q[4]=e;q[5]=d;q[6]=c;q[7]=b;q[8]=a;endalways@(q)begincase(q)9'b000000011:qout<=11'b00000000000;9'b000000001:qout<=11'b00000000000;9'b000000000:qout<=11'b00000000000;9'b000000010:qout<=11'b00000000000;default:qout<=qout;endcaseendendmodule分频模块module fenpin(clk_1M,yuzhi,pl_out);input clk_1M;input [10:0]yuzhi;reg [10:0]q;output pl_out;reg pl_out;always@(posedge clk_1M)beginif(yuzhi>0)beginif(q<yuzhi)< p="">beginq<=q+1;pl_out<=0;endelsebeginq<=11'b00000000000;pl_out<=1;endendelsebeginq<=11'b00000000000;pl_out<=1;endendendmodule五、原理图及仿真波形图六、心得体会由于之前对本次设计所需知识了解较少,所以在实验过程中遇到了很多的困难,真的很难,但是同样在解决各种困难的过程中也有所收获。
Verilog hdl—简易电子琴设计
![Verilog hdl—简易电子琴设计](https://img.taocdn.com/s3/m/4a509d4f52d380eb62946d9d.png)
文理学院简易电子琴设计专业:自动化学号:2012118064:一天虹影实验目的使用VerilogHDL语言进行前端设计,并使用Quaruts软件在GW48-PK2实验上实现仿真,实现硬件电子琴。
电子琴要求有8个音阶,使用外部时钟信号3MHz,能同步显示音阶。
1、 设计一个简易电子琴。
要求能演奏的音域为D 调的do 到E 调do 。
2、 用GW48-PK2中的8个按键作为琴键。
3、 GW48-PK2中有蜂鸣器。
4、 可以使用GW48-PK2上的12MHz 作为输入时钟信号设计思路通过可编程逻辑器件(PLD )和VHDL 硬件描述语言来实现电子琴的基本要求。
设计的主体是数控分频器,对输入的频率按照与每个音阶对应的分频系数进行分频,得到各个音阶对应的频率分别在蜂鸣器和数码管上以声音和频率数值的形式作为输出。
设计组成与原理下图为系统的工作原理框图。
分频置 数按 键分 频器12MHZ蜂 鸣 器数码管显示1.音名与频率的关系音乐的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。
在2个八度音之间,又可分为12个半音。
灵位,音符A(简谱中的低音6)的频率为440HZ,音符B到C之间、E到F之间为半音,其余为全音。
由此可以计算出简谱中所有的音符的频率,在这我们只需计算出中音1到高音1的频率即可。
如下所示:表一简谱音名与频率的对应关系由于各音符对应的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。
若分频器时钟频率过低,则由于分频系数过小,四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。
实际的设计应综合考虑两方面的因素,在尽量减少频率误差的前提下取合适的时钟频率。
本实验要求用12MHZ的时钟脉冲信号,所以不必考虑这方面的因素。
实际上,只要各个音符间的相对频率关系不变,弹奏出来的音调听起来是不会走调的。
2.分频系数与初始值(预置数)本例设计的音乐电子琴选取12MHZ的系统时钟频率。
数电EDA简易电子琴Verilo
![数电EDA简易电子琴Verilo](https://img.taocdn.com/s3/m/49f1b902312b3169a451a480.png)
数电EDA简易电子琴Verilog- 设计.数字电子技术课程设计--简易电子琴设计专业班级:电子姓名:学号:日期: 2015.6.5一、设计任务用Verilog HDL语言设计简易电子琴。
(1)单独从左至右按下S1-S7每个按键后能够各自对应发出“哆来咪发唆啦西”的音乐声;(2)按下最右边按键(S8),同时再配合按下S1-S7键后,发高八度的对应音;(3)按键需要进行“消抖”处理;(4)外部输入脉冲信号频率为1mhz;(5)扩展要求:自主设计(增加低8度功能)。
二、实验目的1、学习verilogHDL语言的基本运用,能够利用其进行简单编程;2、学习使用QuartusⅡ7.0的基本操作,能够利用其进行简单的设计;3、结合实践加深对理论知识的理解。
三、设计原理1)喇叭的振动频率不同,导致产生不同的声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐。
题目中音乐基本音的“哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz。
低8度音:基本音频率/2,例如低音1的频率为523/2=261.5Hz。
高8度音:基本音频率×2,例如高音1的频率为523×2=1046Hz.。
不同的频率产生利用给定的时钟脉冲来进行分频实现。
(2)消抖的原理:按键默认输入逻辑‘1',当有按键按下时对应的输入为逻辑‘0'(但会存在抖动),当FPGA开始检测到该引脚从‘1'变为‘0'后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为‘0'则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程的消抖处理和按下时原理一样。
)原理框图3(.四、程序设计消抖模块module xiaodou(key_in,key_out,clk); input key_in;input clk;output key_out;reg key_out;reg [2:0]presta;integer q;parameter s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100,s5=3'b101,s6=3'b110,s7=3'b111;always@(posedge clk)begincase(presta)s0:beginkey_out<=0;q<=0;if(key_in==1)presta<=s0;elsepresta<=s1;ends1: beginkey_out<=0;if(q>9999)presta<=s2;elseq<=q+1;ends2:beginkey_out<=0;q<=0;if(key_in==1)presta<=s0;elsepresta<=s3;ends3:beginkey_out<=1;q<=0;if(key_in==0)presta<=s3;elsepresta<=s4;ends4:beginkey_out<=1;if(q>44444)presta<=s5;elseq<=q+1;ends5:beginq<=0;if(key_in==1)presta<=s0;elsepresta<=s3;ends6:beginpresta<=s0;ends7:beginpresta<=s0;endendcaseendend module按键模块module anjian(a,b,c,d,e,f,g,h,i,qout); input a,b,c,d,e,f,g,h,i;output [10:0] qout;reg [8:0] q;reg [10:0] qout;always@(a or b or c or d or e or f or g or h or i) beginq[0]=i;q[1]=h;q[2]=g;q[3]=f;q[4]=e;q[5]=d;q[6]=c;q[7]=b;q[8]=a;endalways@(q)begincase(q)9'b100000000:qout<=11'b01110111100;9'b010000000:qout<=11'b01101010011;9'b001000000:qout<=11'b010********;9'b000100000:qout<=11'b010********;9'b000010000:qout<=11'b010********;9'b000001000:qout<=11'b010********;9'b000000100:qout<=11'b00111110101;9'b100000010:qout<=11'b00111011110;9'b010000010:qout<=11'b00110101010;9'b001000010:qout<=11'b00101111011;9'b000100010:qout<=11'b00101100110; 9'b000010010:qout<=11'b00100111111; 9'b000001010:qout<=11'b00100011100; 9'b000000110:qout<=11'b00011111011;9'b100000001:qout<=11'b11101111000; 9'b010000001:qout<=11'b11010100110; 9'b001000001:qout<=11'b10111101110; 9'b000100001:qout<=11'b10110011000; 9'b000010001:qout<=11'b10011111100; 9'b000001001:qout<=11'b10001110000; 9'b000000101:qout<=11'b01111101010;9'b000000011:qout<=11'b00000000000; 9'b000000001:qout<=11'b00000000000; 9'b000000000:qout<=11'b00000000000; 9'b000000010:qout<=11'b00000000000; default:qout<=qout;endcaseendendmodule分频模块module fenpin(clk_1M,yuzhi,pl_out); input clk_1M;input [10:0]yuzhi;reg [10:0]q;output pl_out;reg pl_out;always@(posedge clk_1M)beginif(yuzhi>0)beginif(q<yuzhi)beginq<=q+1;pl_out<=0;endelsebeginq<=11'b00000000000;pl_out<=1;endendelsebeginq<=11'b00000000000; pl_out<=1;endendendmodule五、原理图及仿真波形图六、心得体会由于之前对本次设计所需知识了解较少,所以在实验过程中遇到了很多的困难,真的很难,但是同样在解决各种困难的过程中也有所收获。
eda简易电子琴课程设计
![eda简易电子琴课程设计](https://img.taocdn.com/s3/m/dc12d66e0a4c2e3f5727a5e9856a561252d32134.png)
eda简易电子琴课程设计一、课程目标知识目标:1. 学生能理解并掌握EDA简易电子琴的基本组成结构及其工作原理。
2. 学生能掌握基础电子元件的使用,如电阻、电容、二极管、三极管等,并能运用到电子琴的制作中。
3. 学生能理解并运用基础的电子音乐理论知识,如音符、音阶、和弦等。
技能目标:1. 学生能够独立完成EDA简易电子琴的组装和调试。
2. 学生能够通过编程实现对电子琴音调的控制,具备初步的编程能力。
3. 学生能够运用所学的电子琴知识创作简单的音乐作品,提高动手实践能力。
情感态度价值观目标:1. 学生通过动手实践,培养对电子科技的兴趣,提高创新意识和团队合作精神。
2. 学生在创作过程中,体验科技与艺术的结合,培养审美观念和艺术修养。
3. 学生在课程学习过程中,树立正确的价值观,认识到科技发展对生活的改善,增强社会责任感。
课程性质:本课程为实践性较强的课程,结合电子技术与音乐艺术,旨在培养学生的动手能力、创新意识和团队合作精神。
学生特点:六年级学生具备一定的认知能力和动手能力,对新鲜事物充满好奇,喜欢动手实践。
教学要求:教师需注重理论与实践相结合,关注学生的个体差异,鼓励学生主动探究,培养学生的创新思维和解决问题的能力。
同时,注重课程目标的分解与落实,确保学生能够达到预期学习成果。
二、教学内容根据课程目标,教学内容分为以下三个部分:1. 电子琴基础知识- 了解EDA简易电子琴的组成结构,包括键盘、主控板、音源、功放等。
- 学习基础电子元件(电阻、电容、二极管、三极管等)的功能和选型。
- 掌握基础的电子音乐理论知识,如音符、音阶、和弦等。
教学内容关联教材章节:第二章 电子元件与电路基础2. 电子琴制作与调试- 学习使用面包板进行电路搭建,掌握EDA简易电子琴的组装方法。
- 学习编程控制电子琴音调,实现不同音符的演奏。
- 学习调试电子琴,解决制作过程中遇到的问题。
教学内容关联教材章节:第三章 数字电路与编程基础、第四章 电子琴设计与制作3. 音乐创作与展示- 运用所学知识创作简单的音乐作品,进行小组内分享与评价。
edaVerilog课程设计
![edaVerilog课程设计](https://img.taocdn.com/s3/m/e05c7415842458fb770bf78a6529647d272834b5.png)
eda Verilog课程设计一、课程目标知识目标:1. 学生能理解EDA工具的基本原理和使用方法,掌握Verilog硬件描述语言的基本语法和结构;2. 学生能运用Verilog语言编写简单的数字电路模块,并进行功能仿真;3. 学生了解数字电路的设计流程,理解硬件描述语言在电路设计中的应用。
技能目标:1. 学生能够使用EDA工具进行Verilog代码的编写、编译和仿真;2. 学生能够分析并解决简单的数字电路设计问题,具备基本的故障排查能力;3. 学生能够通过团队合作,完成一个小型的数字电路设计项目。
情感态度价值观目标:1. 学生培养对电子设计自动化技术的兴趣,增强对科技创新的热情;2. 学生树立正确的工程观念,注重实践操作,培养动手能力和创新精神;3. 学生在团队合作中,学会沟通、协作和分享,培养团队精神和责任心。
课程性质:本课程为实践性较强的课程,以培养学生的实际操作能力和创新精神为核心。
学生特点:学生具备一定的电子技术基础和计算机操作能力,对新技术充满好奇,喜欢动手实践。
教学要求:结合课程性质和学生特点,注重理论与实践相结合,强调实际操作和团队协作,提高学生的综合能力。
通过分解课程目标为具体的学习成果,为后续的教学设计和评估提供依据。
二、教学内容1. EDA工具介绍:介绍EDA工具的基本概念、发展历程和主要功能,使学生了解其在数字电路设计中的应用。
教学内容关联教材章节:第一章 电子设计自动化概述2. Verilog语言基础:讲解Verilog的基本语法、数据类型、运算符、赋值语句等,为学生编写数字电路模块打下基础。
教学内容关联教材章节:第二章 Verilog语言基础3. 数字电路设计方法:介绍数字电路设计的基本流程、设计方法和仿真技术,使学生掌握设计数字电路的基本步骤。
教学内容关联教材章节:第三章 数字电路设计方法4. Verilog模块编写与仿真:教授如何使用Verilog语言编写简单的数字电路模块,并进行功能仿真。
基于verilog语言简易电子琴设计 数字电子技术课程设计报告
![基于verilog语言简易电子琴设计 数字电子技术课程设计报告](https://img.taocdn.com/s3/m/ec6f624f770bf78a652954fa.png)
数字电子技术课程设计报告基于verilog HDL 语言地简易电子琴设计学院:__信息与控制工程学院________专业班级:___电气11级四班______________姓名:___商玉玺________________________学号:___11053421_____________________指导教师:___________________________________一、实验目地语言地基本运用,能够利用其进行简单编程;verilogHDL1、学习地基本操作,能够利用其进行简单地设计;Ⅱ7.0、学习使用2Quartus. 3、结合实践加深对理论知识地理解二、设计题目.语言设计简易电子琴用verilogHDl 三、题目要求(1)单独从左至右按下S1-S7每个按键后能够各自对应发出“哆来咪发唆啦西”地音乐声;键后,发高八度地对应音;),同时再配合按下S1-S72()按下最右边按键(S8处理;消抖”(3)按键需要进行“;)外部输入脉冲信号频率为1mhz(4).8度功能,自动播放一段音乐(5)扩展要求:自主设计(增加低四、设计原理(1)喇叭地振动频率不同,导致产生不同地声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐.题目中音乐基本音地“哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz.2=261.5Hz./1地频率为523低8度音:基本音频率/2,例如低音523×2=1046Hz..1地频率为,例如高音高8度音:基本音频率×2.不同地频率产生利用给定地时钟脉冲来进行分频实现(2)消抖地原理:按键默认输入逻辑‘1',当有按键按下时对应地输入为逻辑‘0'(但会存在抖动),当FPGA开始检测到该引脚从‘1'变为‘0'后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为‘0'则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程地消抖处理和按下时原理一样.)原理框图3(.四、管脚对应表说明对应信号名称FPGA管脚名L21MHz基准时钟F3OU音频输出F8S1A14S2F10S3B16S基本功能按F1SB1SF1SB1SMBTMBT扩展功能按U1BTU1BT4五、实验过程、设计按键防抖模块1)设计程序1(。
EDA课程设计电子琴
![EDA课程设计电子琴](https://img.taocdn.com/s3/m/510d6fe95ef7ba0d4a733ba1.png)
EDA课程设计自动电子琴专业:电子信息工程班级:学号:姓名:组员:指导老师:完成时间:2010-11-26目录一、课程设计目的 (2)二、课程设计内容 (2)三、课程设计原理 (2)四、EDA、VHDL简介 (3)五、简易电子琴的设计过程 (3)六、结束语 (5)七、参考文献 (6)八、附录 (6)九、评分表 (9)一、课程设计目的本课程设计主要是基于VHDL文本输入法设计乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,通过自动演奏已存入的歌曲。
系统由乐曲自动演奏模块组成。
系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲。
二、课程设计内容(1)设计一个简易的八音符电子琴,它可自动演奏已存入的歌曲。
(2)能够自动演奏多首乐曲,且乐曲可重复演奏。
三、课程设计原理本课程设计目的在于灵活运用EDA技术编程实现一个简易电子琴的乐曲演奏,它要求在实验箱上构造一个电子琴电路,不同的音阶对应不同频率的正弦波。
系统的整体组装设计原理图如图所示。
系统的整体组装设计原理图四、 EDA、VHDL简介EDA技术是以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
EDA可提供文本输入以及图形编辑的方法将设计者的意图用程序或者图形方式表达出来,而我们经常用到的VHDL 语言便是用于编写源程序所需的最常见的硬件描述语言(HDL)之一。
1、EDA技术EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD、CAM、CAT和CAE的概念发展而来的。
EDA技术是电子设计的发展趋势,利用EDA 工具可以代替设计者完成电子系统设计中的大部分工作。
EDA工具从数字系统设计的单一领域,发展到今天,应用范围已涉及模拟、微波等多个领域,可以实现各个领域电子系统设计的测试、设计方针和布局布线等。
verilog简易电子琴课程设计
![verilog简易电子琴课程设计](https://img.taocdn.com/s3/m/f6016fe4c67da26925c52cc58bd63186bdeb9270.png)
verilog简易电子琴课程设计一、课程目标知识目标:1. 理解Verilog硬件描述语言的基本概念和语法结构;2. 掌握利用Verilog设计简易电子琴的基本原理和方法;3. 学习并掌握数字信号处理中音调生成的基础知识;4. 了解电子琴音阶与频率的关系,能够运用Verilog进行编码实现。
技能目标:1. 能够运用Verilog编写程序代码,实现简易电子琴的基本功能;2. 能够利用仿真工具对Verilog代码进行测试和验证,确保电子琴设计的正确性;3. 能够运用已学知识解决实际电子琴设计中的问题,具备一定的创新和实际操作能力。
情感态度价值观目标:1. 培养学生对数字电路设计和硬件描述语言的兴趣,激发学习热情;2. 培养学生的团队协作能力,提高沟通与交流技巧;3. 培养学生面对问题时的耐心和毅力,形成积极向上的学习态度;4. 增强学生的创新意识,培养敢于尝试、勇于实践的精神。
课程性质:本课程为电子信息技术专业高年级选修课,旨在让学生在实际操作中掌握Verilog硬件描述语言,提高数字电路设计能力。
学生特点:学生具备一定的电子基础和编程能力,对硬件描述语言有一定了解,具有较强的学习能力和实践欲望。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的主观能动性,提高学生的实际操作能力。
通过本课程的学习,使学生能够独立完成简易电子琴的设计与实现。
二、教学内容1. Verilog基础知识回顾:- 数据类型与运算符;- 顺序与并行语句;- 模块与端口定义;- 基本时序控制。
2. 简易电子琴设计原理:- 电子琴音阶与频率关系;- 音色生成与合成方法;- MIDI协议简介;- 电子琴硬件架构。
3. Verilog代码编写与实现:- 音符产生模块设计;- 音调控制模块设计;- 声音合成与输出模块设计;- 整体程序框架搭建。
4. 仿真与测试:- ModelSim仿真工具使用;- 仿真测试用例编写;- 功能验证与调试;- 性能评估与优化。
edaVerilog课程设计
![edaVerilog课程设计](https://img.taocdn.com/s3/m/5826d4693868011ca300a6c30c2259010202f322.png)
edaVerilog课程设计一、教学目标本课程旨在通过edaVerilog的学习,让学生掌握数字电路设计的基本原理和方法,学会使用eda工具进行电路设计和仿真,培养学生分析和解决实际问题的能力。
具体的教学目标如下:1.知识目标:使学生了解edaVerilog的基本语法和数字电路设计的基本概念,掌握常用的电路设计方法和技巧。
2.技能目标:培养学生能够熟练使用eda工具进行电路设计和仿真,能够独立完成简单的数字电路设计任务。
3.情感态度价值观目标:培养学生对电子技术学科的兴趣和热情,培养学生勇于探索、创新的精神,使学生认识到电子技术在现代社会中的重要地位和作用。
二、教学内容本课程的教学内容主要包括edaVerilog的基本语法、数字电路设计的基本概念和常用方法。
具体的教学内容如下:1.edaVerilog的基本语法:包括数据类型、运算符、语句等基本概念和用法。
2.数字电路设计的基本概念:包括逻辑门、逻辑函数、逻辑电路等基本概念。
3.常用的电路设计方法:包括组合逻辑电路设计、时序逻辑电路设计、数字系统设计等常用方法。
三、教学方法为了实现本课程的教学目标,我们将采用多种教学方法进行教学,包括讲授法、案例分析法、实验法等。
具体的教学方法如下:1.讲授法:通过教师的讲解,使学生掌握edaVerilog的基本语法和数字电路设计的基本概念。
2.案例分析法:通过分析典型的电路设计案例,使学生掌握常用的电路设计方法和技巧。
3.实验法:通过实验操作,使学生熟练使用eda工具进行电路设计和仿真,培养学生独立完成数字电路设计任务的能力。
四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备多种教学资源,包括教材、参考书、多媒体资料、实验设备等。
具体的教学资源如下:1.教材:选用合适的edaVerilog教材,为学生提供系统、全面的学习资料。
2.参考书:推荐学生阅读一些相关的参考书籍,以丰富学生的知识储备。
3.多媒体资料:制作课件、视频等多媒体资料,为学生提供直观、生动的学习内容。
数电实验简易电子琴的设计报告
![数电实验简易电子琴的设计报告](https://img.taocdn.com/s3/m/c2de465ae87101f69e3195fc.png)
数电实验简易电子琴的设计报告班级:学号:1、项目概况选题目的,为了进一步巩固之前学到的知识,将课本的知识结合趣味性,让自己得到更好的提高。
项目构思,模型要做一个能成功实现的简易电子琴,包括按键按下后蜂鸣器会根据相应的频率准确发出相应音阶的声音,7段数码管会显示出按键的简谱,输出端H可以表示音的高低。
要用到计数器,触发器分频器,7段数码显示器等元件。
2、方案设计系统框图为:系统简介如下:1、系统框图2、系统端口(2个输入口3个输出口)(1) CLK,频率1MHz。
用于提供时钟脉冲信号。
(2) DIN[7、、0]。
琴键输入的8个音符,8位中只有一位是低电平即每次只能按一个键。
(3) SPK。
用于驱动蜂鸣器,输出频率fB与蜂鸣器发出的音调与电子琴各音阶基频有对应关系。
(4) LED。
接数码管,用于显示对应的简谱码,H显示音调高低。
3、工作原理(1)编码器CODE3。
将输入的8位琴键信号进行编码,输出一个4位码,最多能对应16个音符(若有16个键)。
按下的琴键的电平为低。
例:8’b :KEY<=4’b0001 输入第一位琴键“哆”此时编译成4位二进制数2^0=1 传入译码器INX2CODE。
(2)译码器INX2CODE。
将键盘输入的编码信号译码成数控分频器SPK0输出信号的频率控制字。
例:1 :F_CODE <=11’H305 刚才编码器编码传入的琴键“哆”的1此时被译码为数控分频器SPK0的输出信号的频率控制字305H。
(3) SPK0。
计数器CNT11B是一个LPM宏模块,利用同步加载控制sload避免来自进位信号cout中可能的毛刺影响,反相器和D 触发器使得进位信号延迟半个时钟周期,过滤掉可能的毛刺,使得加载更加可靠。
例:经过编译的305H被置入模块SPK0的11位可预置计数器中计数器不断以此值为计数起始值,直至全为1。
以305H计数起始,计数器成为一个模为1270(7FFH-305H=4F6H=1270)的计数器。
verilog-hdl-简易乐曲设计
![verilog-hdl-简易乐曲设计](https://img.taocdn.com/s3/m/17a44288af45b307e9719770.png)
指导教师:日期:EDA技术课程设计题目: EDA技术及其应用——简易电子琴设计姓名:院系:电子信息工程学系专业:通信工程班级: 091班级学号:指导教师:2012年1 月EDA技术课程设计报告——简易电子琴的设计(电子信息工程学系指导教师:)摘要在现代的电子设计中,EDA技术已经成为一种普遍的工具,它在电子信息、通信、自动控制用计算机等领域的重要性日益突出。
本课程设计主要采用EDA技术设计一个简易的八音符电子琴,它采用EDA作为开发工具,Verilog HDL 语言为硬件描述语言,MAX + PLUS II作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现了设计目标。
本程序使用的硬件描述语言Verilog HDL,既能进行面向综合的电路设计,又可用于电路的模拟仿真,能够在多层次上对所设计的系统加以描述,易学易用,语言功能强。
关键词课程设计;EDA;Verilog HDL;电子琴1.课程设计的目的系统实现是用硬件描述语言verilog按模块化方式进行设计,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲。
巩固和运用所学课程,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力,通过对一个简易的八音符电子琴的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。
巩固所学课堂知识,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力。
2.课程设计的要求(1)设计一个简易的八音符电子琴,它可通过按键输入来控制音响。
(2)演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲。
(3)能够自动演奏多首乐曲,且每首乐曲可重复演奏。
3. EDA技术EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字电子技术课程设计
--简易电子琴设计
专业班级:电子
姓名:
学号:
日期: 2015.6.5
一、设计任务
用Verilog HDL语言设计简易电子琴。
(1)单独从左至右按下S1-S7每个按键后能够各自对应发出“哆来咪发唆啦西”的音乐声;
(2)按下最右边按键(S8),同时再配合按下S1-S7键后,发高八度的对应音;(3)按键需要进行“消抖”处理;
(4)外部输入脉冲信号频率为1mhz;
(5)扩展要求:自主设计(增加低8度功能)。
二、实验目的
1、学习verilogHDL语言的基本运用,能够利用其进行简单编程;
2、学习使用QuartusⅡ7.0的基本操作,能够利用其进行简单的设计;
3、结合实践加深对理论知识的理解。
三、设计原理
1)喇叭的振动频率不同,导致产生不同的声音;振动频率越低,声音越低沉,振动频率越高,声音越尖锐。
题目中音乐基本音的“哆”对应频率为523Hz 、“来”对应频率为587Hz 、“咪”对应频率为659Hz 、“发”对应频率为698Hz 、“唆”对应频率为784Hz 、“啦”对应频率为880Hz 、“西”对应频率为998Hz。
低8度音:基本音频率/2,例如低音1的频率为523/2=261.5Hz。
高8度音:基本音频率×2,例如高音1的频率为523×2=1046Hz.。
不同的频率产生利用给定的时钟脉冲来进行分频实现。
(2)消抖的原理:按键默认输入逻辑‘1’,当有按键按下时对应的输入为逻辑‘0’(但会存在抖动),当FPGA开始检测到该引脚从‘1’变为‘0’后开始定时(按键抖动时间大约10ms),定时时间结束后若该引脚仍然为‘0’则表示确实发生按键按下,否则视为抖动而不予以理会;按键松开过程的消抖处理和按下时原理一样。
(3)原理框图
四、程序设计
消抖模块
module xiaodou(key_in,key_out,clk); input key_in;
input clk;
output key_out;
reg key_out;
reg [2:0]presta;
integer q;
parameter s0=3'b000,
s1=3'b001,
s2=3'b010,
s3=3'b011,
s4=3'b100,
s5=3'b101,
s6=3'b110,
s7=3'b111;
always(posedge clk)
begin
case(presta)
s0:
key_out<=0;
q<=0;
if(key_in==1)
presta<=s0;
else
presta<=s1;
end
s1:
begin
key_out<=0;
if(q>9999)
presta<=s2;
else
q<=q+1;
end
s2:
begin
key_out<=0;
q<=0;
if(key_in==1)
presta<=s0;
else
presta<=s3;
end
s3:
begin
key_out<=1;
q<=0;
if(key_in==0)
presta<=s3;
else
presta<=s4;
end
s4:
begin
key_out<=1;
if(q>44444)
presta<=s5;
else
q<=q+1;
end
s5:
q<=0;
if(key_in==1)
presta<=s0;
else
presta<=s3;
end
s6:
begin
presta<=s0;
end
s7:
begin
presta<=s0;
end
endcase
end
end module
按键模块
module anjian(a,b,c,d,e,f,g,h,i,qout);
input a,b,c,d,e,f,g,h,i;
output [10:0] qout;
reg [8:0] q;
reg [10:0] qout;
always(a or b or c or d or e or f or g or h or i) begin
q[0]=i;
q[1]=h;
q[2]=g;
q[3]=f;
q[4]=e;
q[5]=d;
q[6]=c;
q[7]=b;
q[8]=a;
end
always(q)
begin
case(q)
9'b100000000:qout<=11'b;
9'b010000000:qout<=11'b;
9'b001000000:qout<=11'b;
9'b000100000:qout<=11'b;
9'b000010000:qout<=11'b;
9'b000001000:qout<=11'b;
9'b000000100:qout<=11'b;
9'b100000010:qout<=11'b;
9'b010000010:qout<=11'b;
9'b001000010:qout<=11'b;
9'b000100010:qout<=11'b;
9'b000010010:qout<=11'b;
9'b000001010:qout<=11'b;
9'b000000110:qout<=11'b;
9'b100000001:qout<=11'b;
9'b010000001:qout<=11'b;
9'b001000001:qout<=11'b;
9'b000100001:qout<=11'b;
9'b000010001:qout<=11'b;
9'b000001001:qout<=11'b;
9'b000000101:qout<=11'b;
9'b000000011:qout<=11'b;
9'b000000001:qout<=11'b;
9'b000000000:qout<=11'b;
9'b000000010:qout<=11'b;
default:qout<=qout;
endcase
end
endmodule
分频模块
module fenpin(clk_1M,yuzhi,pl_out); input clk_1M;
input [10:0]yuzhi;
reg [10:0]q;
output pl_out;
reg pl_out;
always(posedge clk_1M)
begin
if(yuzhi>0)
begin
if(q<yuzhi)
begin
q<=q+1;
pl_out<=0;
end
else
begin
q<=11'b;
pl_out<=1;
end
end
else
begin
q<=11'b;
pl_out<=1;
end
end
endmodule
五、原理图及仿真波形图
六、心得体会
由于之前对本次设计所需知识了解较少,所以在实验过程中遇到了很多的困难,真的很难,但是同样在解决各种困难的过程中也有所收获。
从书本上获得的知识跟实践之间具有很大的差距,这要求我们要加强锻炼自己的实际操作能力。
首先,在课程设计之前,要先了解我们要完成什么功能,否则做的任何努力都是无用功。
其次,,在编写程序过程中,要有耐心,端正态度,积极思考,认真对待。
另外,遇到问题首先要自己思考,但是实在无法解决的时候一定要细心地向别人请教或是在网上查找资料。
最后要对自己之前的操作和执行进行纠错和总结经验,提升自己。
在以后的学习中要注意培养自主学习的能力和文献查阅的能力,以及很重要的动手能力。