基于FPGA的多功能电子琴设计与实现

合集下载

基于FPGA的电子琴

基于FPGA的电子琴

Page 10
Page 11
功能详述 ——弹奏
弹奏也是在复位后自动开始的。首先,用某一拨码开关作 为复位按钮,复位有效时,丌执行任何功能,并使各模块 回复到初始状态。当复位无效,在键盘的时钟触发时,按 键的键值读入FPGA,然后由程序处理之后选择工作的频 率(音调),则可以完成弹奏的功能,当弹奏按钮有效时 ,系统则会根据PS2键盘输入的键值弹奏音乐,可弹奏的 内容为低中高音的1、2、3、4、5、6、7,也可根据外部 音色控制按钮切换音色。
●设计目的
以此项目加强自己对FPGA的理解
对verilog语言的熟悉
熟悉数字电路和模拟电路的结合 选择电子琴这种可以激发同学兴趣的项目,而且其具有较 丰富的扩展功能,可以一循序渐进的提升
●功能概述
一、 自动演奏功能 4首已存储歌曲的播放、暂停/继续功能
包含(最多)8种音色的选择
二、 弹奏功能
P循序渐进,先是查阅资料,再是完成了最基 本的自动播放功能了解了音频输出的基础,然后再陆续加 上弹奏部分、音色包络、键盘输入、VGA显示等扩展功能 。大家在这一步步的扩展过程中也丌断的加强自己的认识 ,也对各种相关知识有了更深入的学习,逐步攻克难题达 成目标。
PS2键盘输入,包拪低、中、高各7种音调
三、VGA显示功能 实时显示当前播放的音名 可以记录之前播放的7个音名
功能详述 ——自动播放
自动演奏是在复位后自动开始,然后可以根据开关开控制 所加的音色戒者丌加音色。
首先,用某一拨码开关作为复位按钮,复位有效时,丌执 行任何功能,并使各模块回复到初始状态。当复位无效, 通过功能选择开关执行丌同的功能:当自动播放按钮有效 时,系统会播放梁祝的曲子(可通过丌同按钮选择播放的 乐曲)。

基于FPGA的电子琴设计

基于FPGA的电子琴设计

研究生课程论文课程名称FPGA及片上系统SOPC应用授课学期2013 学年至2014 学年第一学期学院电子工程学院专业电子与通信学号姓名任课教师宋树祥专题基于FPGA的电子琴设计交稿日期2014年01月09日成绩阅读教师签名日期广西师范大学研究生学院1、引言电子琴作为音乐与科技的产物,在电子化和信息化的时代,为音乐的大众化做出了很大的贡献,歌曲的制作大多数都要由电子琴来完成,然后通过媒介流传开来,电视剧和电影的插曲、电视节目音效、甚至你的手机铃声,都很可能包含电子琴的身影。

1.1课题分析随着电子技术的高速发展,由于FPGA/CPLD具有高速、高可靠性、串并行工作方式等突出优点,所以在电子设计中受到广泛的应用,并且它代表着未来EDA设计的方向。

FPGA/CPLD的设计采用了高级语言,例如VHDL语言,AHDL语言。

从而进一步打破了软硬件之间的界限,加速了产品的开发过程,缩短了设计周期。

所以采用FPGA/CPLD取代传统的标准集成电路、接口电路已经成为电子技术发展的必然趋势。

EDA(电子设计自动化) 代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片集成电路(FPGA/CPLD) 实现。

电子琴是数字电路中的一个典型应用。

在实际的硬件设计中用到的器件非常多,连线比较复杂,同时会产生比较大的延时,从而造成测量误差较大,可靠性不好。

以EDA工具作为开发手段,运用VHDL硬件描述语言将使整个系统大大简化,提高了电子琴整体的性能和可靠性。

1.2 VHDL语言和QUARTUS II环境简介1.2.1 VerilogHDL语言简介Verilog HDL是目前应用最为广泛的硬件描述语言.Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。

V erilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述.Verilog HDL进行设计最大的优点是其工艺无关性.这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路.Verilog HDL是一种硬件描述语言(hardware description language),为了制作数字电路而用来描述ASICs和FPGA的设计之用。

基于FPGA的电子琴设计课程设计

基于FPGA的电子琴设计课程设计

课程设计摘要乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。

实现方法有许多种。

现用可编程逻辑器件(PLD)来完成该设计。

核心是一数控分频器,对输入的脉冲进行分频,得到每个音阶对应的频率,由此实现简易电子琴的发音功能。

电子琴可演奏由键盘输入的音阶,同时在数码管上显示对应音节的频率。

本设计基于超高速硬件描述语言VHDL在Altera公司的CycloneⅡ系列的EP2C5T144C8芯片上编程实现;经仿真,调试基本能够达到技术指标,仿真结果基本正确。

关键词音乐译码电路模块,VHDL,数控分频,电子琴基于FPGA的电子琴设计AbstractMusic performances are widely used in automatic answering devices, cell phone ring tones, the Group phones, smart instrumentation and equipment。

The design is accomplished using a programmable logic device (PLD). The core is a numerical control frequency divider, the input pulse frequency, the frequency of each scale corresponding to the frequency, thus achieving the function of simple electronic piano. The electronic piano can be played by the keyboard input of the scale, while in the digital tube display the corresponding syllable frequency. The design based on ultra high speed hardware description language VHDL on Altera's cyclone II Series ep2c5t144c8 chip programming; the simulation and debugging can basically meet the technical indicators, and the result of simulation is correct.Keywords Music decoder circuit module,VHDL,Numerical control pointing frequency modules,electronic organ沈阳工程学院课程设计目录摘要 (I)Abstract ................................................................................................................................................................ I I1 引言 (1)2 VHDL简述及应用 (2)2.1VHDL简述 (2)2.2 VHDL的应用 (2)3 FPGA的简述 (3)3.1 FPGA的介绍 (3)3.2 FPGA的整体结构 (3)3.3 Altera公司的FPGA (3)4 电子琴演奏系统设计原理分析 (4)4.1电子琴演奏设计的基本要求 (4)4.2电子琴演奏原理 (4)4.3音名与频率的关系 (5)4.4控制音长的节拍发生器 (6)5 电子琴硬件演奏电路的层次化设计方案 (8)5.1按键控制模块 (8)5.2自动演奏模块 (8)5.3自动播放控制模块 (9)5.4数控分频模块设计 (9)5.5数码管译码显示 (10)5.6音频驱动模块 (10)结论 (12)致谢 (13)参考文献 (14)附录1 (15)附录2 (16)基于FPGA的电子琴设计1 引言我们生活在一个信息高速发达的时代,各种各样电子产品层出不穷。

基于FPGA的简易电子琴实现

基于FPGA的简易电子琴实现

基于FPGA的简易电子琴实现李全摘要本系统是采用EDA技术设计的一个简易的八音符电子琴,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制音响。

多功能电子琴的设计是在原有普通电子琴的基础上进行扩充的一个设计。

该电子琴的设计大体可以由三个模块构成,分别是电子琴音调发生器模块、数控分频模块和自动演奏模块。

用超高速硬件描述语言VHDL编程可以实现各个模块的功能。

能够实现弹琴和自动演奏的功能。

系统实现是用硬件描述语言VHDL按照模块化方式进行设计,然后进行编程、时序仿真、总体整合。

本系统的功能比较齐全,有一定的现实使用的价值。

本文中介绍了电子琴系统的整体的设计,并基于超高速硬件描述语言VHDL在相关的芯片上编程实现的。

关键字电子琴;EDA;现场可编程逻辑器件FPGA;超高速硬件描述语言VHDL;音调发生;数控分频;1引言我们生活在一个信息高速发达的时代,各种各样电子产品层出不穷。

对于广大老百姓来说,电子琴可以说已经不再是什么“新鲜玩意”了,它现在作为一种休闲和娱乐的产品早就推出市面,面向百姓,进入了我们的生活。

作为一个电子信息科学与技术专业的学生,了解这些电子产品的基本的组成和设计原理是十分必要的,我们学习过了计算机组成的理论知识,而我所做的课程设计正是对我学习的理论进行实践和巩固。

本设计主要介绍的是一个用超高速硬件描述语言VHDL设计的一个具有若干功能的简易电子琴;集科学性,先进性,创新性,实用性于一体,其理论基础源自于计算机组成原理的时钟分频器。

1.1 设计的目的本次设计的目的就是在掌握计算机组成原理理论相关的基础上,了解EDA技术,掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL 语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,例如本课程设计就是基于所学的计算机原理中的时钟分频器和定时器的基础之上的,通过本课程设计,达到巩固和综合运用计算机原理中的知识,理论联系实际,巩固所学理论知识,并且提高自己通过所学理论分析、解决计算机相关的实际问题的能力。

基于FPGA的简易电子琴设计

基于FPGA的简易电子琴设计

简易电子琴的设计学生姓名:王春指导老师:郑大腾摘要本系统是采用EDA技术设计的一个简易的八音符电子琴,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制音响。

多功能电子琴的设计是在原有普通电子琴的基础上进行扩充的一个设计。

该电子琴的设计大体可以由三个模块构成,分别是电子琴发声模块、存储器模块和选择控制模块。

用超高速硬件描述语言VHDL编程可以实现各个模块的功能。

不仅能实现弹琴和演奏的功能,它还能实现“复读”的功能,就是可以存储任意一段音乐,并且可以即时的播放出来。

系统实现是用硬件描述语言VHDL 按照模块化方式进行设计,然后进行编程、时序仿真、总体整合。

本系统的功能比较齐全,有一定的现实使用的价值。

本文中介绍了电子琴系统的整体的设计,并基于超高速硬件描述语言VHDL在相关的芯片上编程实现的。

关键字电子琴;EDA;VHDL;音调发生;现场可编程逻辑器件FPGA;超高速硬件描述语言VHDL;电子琴系统;AbstractThis system is designed using EDA technology a simple eight-note keyboard, the system clock divider based on the principle of the computer, using top-down design methodology to implement, it can be controlled through the key input audio. Multi-function keyboard is designed to be an ordinary keyboard in the original expansion on the basis of a design. The design of the keyboard in general consists of three modules, namely the keyboard soundmodules, memory modules and select the control module. Ultra high-speed hardware description language VHDL programming function of each module. Not only can realize the function of playing and playing, it can achieve "repeat" function, which can store any piece of music, and real-time play out. System implementation is to use hardware description language VHDL modular way by design, then programming, timing simulation, integration. The system features a relatively complete, there is a certain value. This paper introduces the overall design of the keyboard system, and based on high speed hardware description language VHDL in Xilinx's Spartan Ⅱ series 2sc200PQ208-5 chip programming.KeywordKeyboard; EDA; VHDL; tone occurred;field programmable logic device FPGA;ultra high-speed hardware description language VHDL; organ systems;皖西学院毕业论文设计第3页共36页目录1 引言..................................................................1.1设计的目的...........................................................1.2设计的基本内容.......................................................2 FPGA、EDA、VHDL简介....................................................2.1FPGA工作原理 ........................................................2.1.2 FPGA的基本特点....................................................2.2EDA技术...............................................................2.3硬件描述语言——VHDL ...................................................2.3.1 VHDL的简介.......................................................2.3.2 VHDL语言的特点...................................................2.3.3VHDL语言上机操作条件.............................................2.3.4 VHDL的设计流程...................................................3 音乐知识介绍............................................................4 简易电子琴设计..........................................................4.1系统设计的总思路.....................................................4.2程序设计的流程图.....................................................4.3简易电子琴的工作流程图...............................................4.4简易电子琴中各模块的设计.............................................4.4.1 乐曲自动演奏模块...................................................4.4.2 音调发生模块.......................................................4.4.3 数控分频模块.......................................................4.4.4 顶层设计...........................................................5 系统仿真.................................................................6 结束语..................................................................第3页致谢..................................................................... 参考文献................................................................. 附录.....................................................................1 引言我们生活在一个信息高速发达的时代,各种各样电子产品层出不穷。

基于FPGA的乐曲演奏电路设计_毕业设计论文

基于FPGA的乐曲演奏电路设计_毕业设计论文

毕业设计基于FPGA的乐曲演奏电路设计摘要设计了一种基于FPGA的电子琴,该电子琴由用VHDL硬件描述语言设计的核心部件和适当的外围电路构成,可从琴键上进行演奏也可自动进行乐曲演奏。

基于FPGA(现场可编程门阵列)芯片,利用VHDL语言,介绍了一种通用乐曲演奏电路的设计,可实现多个八度音阶的乐曲演奏,与简谱的对应关系简单,编程方便,占用资源少,通用性好,可作为IP core模块引用,构成复杂的SOPC系统.关键词:电子琴;现场可编程门阵列(FPGA);智力产权核(IP core);超高速集成电路硬件描述语言(VHDL);乐曲AbstractAn electronic piano is designed based on FPGA,which consists of core paris that designed by using VHDL hardware description languages,as well as some periphery circuits.The musical perform ance can be donenot only by keys but also with automatic type in the electronic piano.Based on FPGA,by VHDL language,this paper introduces a universal music circuit design,it can play high,middle and low multiple tonality,simple corresponding relation with simple musical notation,which programs easily using little resource.It can be used universally for IP core in making complicated SOPC system.Key words:electronic piano;Field Programmable Gate Array(FPGA);Intelligence Property core(IP core) ;Very-High-Speed Integrated Circuit Hardware Description Language(VHDL);music目录1.简易电子琴与音乐发生器设计的介绍 (4)1.1简易电子琴设计介绍 (4)1.2音乐发生器设计介绍 (4)2.F P G A功能与使用简介 (6)2.1F P G A简介 (6)2.1.1F P G A的产生 (6)2.1.2F P G A的基本结构 (7)2.1. 3 MAX+PLUSII (7)2.2硬件描述语言V H D L (10)2.2.1V H D L语言的优点 (10)2.2.2利用V H D L语言设计数字系统的特点 (11)2.2.3V H D L语言的基本结构 (13)2.2.4V H D L的设计流3.简易电子琴设计及程序 (16)3.1简易电子琴设计总体框图 (16)3.2模块设计 (16)3.2.1模块Q I N设计 (16)3.2.2模块F A N A设计 (17)4.音乐发生器设计及程序 (20)4.1使用的乐谱 (20)4.2音乐发生器设计及程序 (20)4.2.1音乐发生器总框图 (20)4.2.2可变分频器设计 (20)4.2.3到计时模块设计 (31)5.仿真 (3)45.1概述 (34)5.2仿真验证与实5.2.1电子琴电路的仿真 (35)5.2.2音乐发生器仿真 (35)6.结论 (3)77.致谢 (3)88.参考文献 (39)1.简易电子琴与音乐发生器设计的介绍1.1简易电子琴设计介绍电子琴因其操作简单,且能模拟各种传统乐器的音色,而深受消费者喜爱。

FPGA电子琴设计论文

FPGA电子琴设计论文

FPGA电子琴设计论文摘要:随着计算机科技和数字电子技术的飞速发展,人们对于音乐创作和表演的需求也变得越来越高。

FPGA电子琴作为一种新型的电子乐器,具备音色丰富、音色可编程等特点,受到了广大音乐爱好者的喜爱。

本论文以FPGA电子琴的设计为研究对象,对其硬件结构和软件程序进行详细分析和设计,最终通过实验验证了其性能和功能的可行性。

关键词:FPGA电子琴;硬件设计;软件设计;性能验证1.引言电子琴是一种以电子技术为基础的乐器,与传统的钢琴相比,电子琴具有音色丰富、音色可编程、体积小、便携等优势。

随着计算机科技和数字电子技术的飞速发展,FPGA电子琴作为一种新型的电子琴,受到了广大音乐爱好者的关注。

2.硬件设计FPGA电子琴的硬件设计主要包括音频输入输出模块、键盘模块、音源模块和主控模块。

音频输入输出模块用于将琴键按下的信号转换成电信号,并输出到音源模块进行音乐合成。

键盘模块主要用于检测琴键按下的信号,并将信号传递给音频输入输出模块。

音源模块用于根据输入的信号进行音乐合成,并将合成后的音乐信号传递给音频输出模块进行音频输出。

主控模块用于控制整个电子琴系统的工作。

3.软件设计FPGA电子琴的软件设计主要包括音频输入输出控制程序、键盘控制程序、音源合成程序和主控程序。

音频输入输出控制程序用于控制音频输入输出模块的工作,包括信号转换和音频输出等功能。

键盘控制程序用于检测琴键按下的信号,并将信号传递给音频输入输出控制程序。

音源合成程序用于根据输入的信号进行音乐合成,包括音色选择、节拍控制等功能。

主控程序用于控制整个电子琴系统的工作,包括琴键的扫描和音乐的播放等功能。

4.性能验证通过实验对设计的FPGA电子琴进行性能验证,验证结果表明,设计的FPGA电子琴具备音色丰富、音色可编程等特点,音乐合成效果良好,满足了音乐创作和表演的需求。

5.结论本论文以FPGA电子琴的设计为研究对象,对其硬件结构和软件程序进行了详细分析和设计,通过实验验证了其性能和功能的可行性。

基于FPGA的电子琴设计

基于FPGA的电子琴设计

基于FPGA的电子琴设计电子琴由于操作相对比较简单,并且能够模拟几乎所有传统乐器的音色,因而深受广大消费者的喜爱。

近年来,在数字系统的设计领域融入了一种新型的设计技术:数字系统设计的自动化技术EDA (Electronic Design Automation)。

该技术优越之处在于系统设计的效率高、保密性强、集成度好、易于修改和实现等。

因此,一跃成为当下数字系统设计领域的主流技术,并被越来越广泛地应用到相关领域中,其中,被应用到电子琴的设计与实现中去就是一个相当重要的尝试及应用。

本文所设计的电子琴基于一种可编程逻辑控制器件:FPGA(Field Programmable Logical Device)芯片,首先采用Visual Basic来设计上位机琴键的控制界面程序,再利用VHDL硬件描述语言设计系统的核心部件(演奏电路)以及配合使用一些适当和必要的外围电路,并且,核心部件的模块通过QUARTUS II这个平台,自顶而下地进行下载到Altera芯片上,其中,上位机经RS232串行口能够直接和FPGA进行通信,从而完成数据的交换工作。

该演奏电路由琴键控制界面直接进行音调的输入,并通过RS232的通信方式来控制从而可以发出DO、RE、MI等共计8个音调,经由蜂鸣器出声,顺利行使完成演奏功能。

可从琴键上手动直接进行演奏各种电路,亦可自动开始乐曲演奏,而且能够模拟笛子、小号、风琴、单簧和双簧等传统乐器。

同通常所见到的电了琴的设计一样,该电子琴采用总计61个按键,共划分为5个音区,每个音区包含12个琴键,即7个白色的琴键与5个黑色的琴键(为半音键),在进行演奏的时候能够动态显示各音名。

1 系统设计为了使电子琴的演奏电路完美实现8个音键的控制和顺利播放已经编好的音乐,对系统的设计就应有所要求。

根据各个音调的频率差异来实现当演奏者按不同的音键时从而发出的声音又了差别。

当八位发声控制键的输入中有一位是高电平时,那么,对应这一音阶其初始计数值被作为获得此音阶分频的预置值而将送至预制数计数器,而后预制数计数器就会输出相应的频率,同时输出的还有对应音阶简谱的显示代码,然后,该频率通过二分频器被送至扬声器,在扬声器处能够发出相对应该音符的声音,与此同时,该音名将显示在数码管上。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西南科技大学电子专业综合设计报告设计名称:基于FPGA的多功能电子琴的设计与实现姓名:学号:班级:指导教师:起止日期: 2013年11月22日-2013年12月10 日西南科技大学信息工程学院制综合设计任务书学生班级:电子1001 学生姓名:学号:设计名称:基于FPGA的多功能电子琴的设计与实现起止日期:2013.11.22-2013.12.10 指导教师:综合设计学生日志基于FPGA的多功能电子琴的设计与实现摘要:随着科学技术的日新月异,人们的生活也在发生在变化,电子产品也随之增多,比如现在流行的电子琴,已经逐渐代替了曾经的手动风琴了。

文章中所介绍的多功能电子琴的设计在Quartus II平台上,采用Verilog HDL 语言和模块化的设计方法,设计出一个能够通过按键控制不同的音符,同时也可以通过按键进行演奏已经存储的曲子的多功能电子琴。

本系统主要由五个个模块组成:顶层模块,曲目1模块,曲目2模块,按键模块,曲目循环播放模块。

关键词: FPGA;电子琴; Verilog HDL;音符FPGA-based design and implementation of multi-organAbstract:With the development of science and technology, also occurs in people's lives change, electronic products also increase, such as the now popular organ, has replaced the former manual organ. Multifunction keyboard design as described in the article on the Quartus II platform, using Verilog HDL language and modular design method, design a button control through different note, you can also play music already stored by keys multifunction keyboard. The system consists of five modules: the top-level module, a module tracks, track 2 modules, key module, track loop module.Key words: FPGA, Keyboard, Verilog HDL, Note一、设计目的和意义目的:1.1、在掌握计算机组成原理理论相关的基础上,了解 EDA技术,掌握 Verilog HDL 硬件描述语言的设计方法和思想;1.2、培养综合运用知识和独立开展实践创新的能力;1.3、深入学习Verilog HDL,了解其编程环境;1.4、学会运用Quartus II等编程仿真软件;1.5将硬件语言编程与硬件实物功能演示相结合,加深理解Verilog HDL的学习。

意义:电子琴由于操作相对比较简单,并且能够模拟几乎所有传统乐器的音色,因而深受广大消费者的喜爱。

近年来,在数字系统的设计领域融入了一种新型的设计技术:数字系统设计的自动化技术EDA(Electronic Design Automation)。

该技术优越之处在于系统设计的效率高、保密性强、集成度好、易于修改和实现等。

因此,一跃成为当下数字系统设计领域的主流技术,并被越来越广泛地应用到相关领域中,其中,被应用到电子琴的设计与实现中去就是一个相当重要的尝试及应用。

二、控制要求2.1、软件:Quartus II等编程仿真软件;2.2、硬件:FPGA开发板。

三、设计方案论证方案一:采用单片机实现,通过软件编程,仿真后将程序用编程器写入到单片机芯片上,该方案成本低,稳定度也比较好,但外围电路多,特别是播放音乐时需要用到大容量的外部存储器,这样就增加了编程难度,调试不够直观,也不够灵活方便。

方案二:采用可编程逻辑器件(FPGA)制作,将所有器件集成在一块芯片上,大大减小了电子琴的体积,用Verilog HDL编程实现时更加方便,而且易于进行功能扩展,并可调试仿真。

综上,本次课程设计选择方案二四、系统设计1、总体实现方案:1.1简易电子琴的设计通过软硬件结合实现,硬件系统包括主控器芯片、9个按键、蜂鸣器等,软件资源包括编写Verilog HDL程序的仿真软件Quartus II。

电子琴有按键代替琴键的弹奏功能、自动播放功能、循环播放功能。

1.2整个程序总共分5个模块:顶层模块,曲目1:bell模块,曲目2:bell2模块,按键模块:buzzer,曲目循环播放模块:bell_bell2,整个方案总共用了9个按键(k2-k8),按键k2-k8作为琴键,通过这七个按键键入不同的音阶。

主模块中k9、k10两个按键用于选择是自动播放还是弹奏曲目,令mm=(k10、k9),用mm值的不同选择调用不同模块。

如果mm=11,则程序调用按键模块;如果mm=01,则调用曲目1模块,播放曲目1;如果mm=10,则调用曲目2模块,播放曲目2;如果mm=00,则调用循环模块。

2、原理框图out49个按键:k2-k10;k2-k8控制按键buzzer模块,k10、k9是选择按键,当k10k9=11,选择buzzer模块,输出out3;当k10k9=01,选择bell模块,输出out1;当k10k9=10,选择bell2模块,输出out2;当k10k9=00,选择bell_bell2模块,输出out4。

3、输入输出4、音符与音频乐曲中不同的音符实质上表示的是不同频率的声音。

只要产生不同频率的脉冲,再通过喇叭等播放出来即可。

又由于方波容易用定时器产生,故使用方波脉冲。

4.1要产生音频脉冲:1、算出某一音频的脉冲的周期(1/频率)2、然后将此周期除以2,即为半周期的时间。

3、利用定时器,计时这个半周期的时间,每当计时到后,就将输出脉冲的I/O反相。

4、重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。

例如,频率为523Hz,其周期为1/523 S=1912uS,因此只要令计数器计时956,在每计数956次时就将I/O反接,就可得到中音Do(532Hz)。

4.2音阶及其对应频率五、设计结果及分析5.1功能仿真5.2所有引脚锁定音阶 频率/Hz 周期/us 半周期/us 分频数 中音1 523 1912 956 11472 2 578 1684 842 103803 659 1518 759 9104 4 698 1432 716 8595 5 784 1276 638 7653 6 880 1136 568 6818 7988101250660735.3总体电路图+<00000buzzer:m1bell:m2bell2:m3mmAdd0clk_6MLessThan0outclk~0outclk~1outclk~2outclk~3inclk outclkk2k3k4k5k6k7k8k9k10c[3..0]c~[3..0]bell_bell2:m45.3分析仿真结果;设置输入信号k2-k10为低电平有效,因此,当不按下按键时,所有的按键均为高电平。

此时k10~key9=11,即mm=11,即在按键模块,输出out3连接输出端outclk ;当按下k10时,即mm=01,此时选择曲目1模块,输出out1连接到输出端outclk ;当按下k9时,即mm=10,此时选择曲目2模块,输出out2连接输出端outclk ;当同时按下k9k10时,输出out4连接输出端outclk。

5.3.1硬件测试结果:在时序验证后下载,通过硬件测试,实验达到预期效果,当mm(k10-k9)=11时,通过k2-k8这7个按键的键入蜂鸣器可以发出Do、re、mi、fa、so、la、xi的七个音阶的音,即表示了电子琴的按键弹奏功能;当mm=01时,播放了第一首歌;mm=10时,播放了第二首歌;当mm=00时,循环播放。

通过硬件的测试,所有的设计目标均实现。

5.3.2对结果和结论的问题讨论:实验过程中,程序刚一下载,蜂鸣器就开始发声音,后来,经过查证,蜂鸣器的驱动是低电平有效,因此,最开始时,将蜂鸣器初始化为高电平。

实验结果中七个音节的区分不是特别明显,因为音节的频率都相差不是很大。

结束语通过这近一个月天的学习和努力,让我收获颇多。

刚开始的时候还不知道如何下手,并且对所用的软件QuartusⅡ不熟悉,因为之前所用的软件是Xilinx ISE,但是通过一次次的努力和摸索,发现其实这两款软件还是有很多共同的地方,自己对新的软件应用也越来越得心应手了。

此外,在这次的课程设计中,我越来越认识到一点,编程对项目实现有着至关重要的作用,我们在硬件开发的过程中必须重视编程,将编程看作是完善开发的不可缺少的一部分。

在一次次的反复设计、论证和测试中,不仅提高了逻辑分析能力、全面分析问题的能力,还提升了发现问题、解决问题的能力,不懂的地方在经过思考还是无果的情况下,就要向他人请教了,他人一点小小的点拨,会为你带来灵感,这也将是问题的解决方法。

虽然设计过程比较繁琐,大大小小也出现了许多问题,但这却磨练了我的意志。

通过各方面的学习,使我的知识面进一步拓宽了。

通过这次课程设计,我不但熟悉了quartusII软件,也了解了开发的最基本流程和方法,也进一步加深了对Verilog HDL编程语言的理解,最重要的是锻炼了我独立思考和分析的逻辑能力,通过至顶向下的设计方法,一步步实现,然后将整个设计串套起来,是我对设计的流程以及编程有了很大的提高。

同时,通过本次课程设计,我也发现了自己的不足,例如:逻辑分析能力不突出,编程能力不足,解决问题的能力不足,不是特别细心,这些使我认识到在以后的学习中在这些方面要多加努力,加以改进,提升自我能力。

我相信通过这次课程设计的学习,对我以后的学习和工作都有着十分重要的影响和作用。

参考文献(递增引用,引用相关内容)【1】刘桂华. 《基于FPGA的现代数字系统设计》. 西安电子科技大学出版社第1-101页【2】袁海林. 基于FPGA的具有存储功能的电子琴的设计[J]. 中国信息科技,2007.19:88-89【3】曹曼. 基于FPGA的电子琴设计. 科技传播, 2012-03-08【4】张亮. 基于FPGA的电子琴的设计[J]. 电子技术,2007,(2)【5】华清远见嵌入式培训中心编著《FPGA应用开发入门与典型实例》人民邮电出版社第145-161页附录(程序、电路图等)1、顶层模块程序:module dianziqin(inclk,outclk,k2,k3,k4,k5,k6,k7,k8,k9,k10);input inclk;input k2,k3,k4,k5,k6,k7,k8,k9,k10;output outclk;reg outclk,clk_6M;reg [3:0]c;wire out1,out2,out3;wire[1:0] key;reg [1:0]mm;assign key = {k10,k9}; //由按键拼键为变量key//调用子调块buzzer m1(.inclk(inclk),.k2(k2),.k3(k3),.k4(k4),.k5(k5),.k6(k6),.k7(k7),.k8(k8),.beep3(out3));bell m2(.inclk(inclk),.beep1(out1));bell2 m3(.inclk(inclk),.beep2(out2));bell_bell2 m4( .inclk(inclk),.beep4(out4));always@(posedge inclk)beginif(c<4'd8)c<=c+4'd1;elsebeginc <= 4'd0;clk_6M <= ~clk_6M;endendalways @(posedge clk_6M) //在时钟的上升沿检测是否有按键按下beginif(key == 2'b01)mm <= 2'b01;else if(key==2'b10)mm <= 2'b10;else if(key==2'b11)mm <= 2'b11;else if(key==2’b00)mm <= 2'b00;else mm<=2’bzz;endalways @(mm) //按键响应beginif(mm == 2'b01)outclk <= out1;else if(mm == 2'b10)outclk <= out2;else if (mm==2'b11)outclk <= out3;else if (mm==2’b00)outclk<=out4;else outclk<=0;endendmodule2、按键模块:module buzzer(inclk,k2,k3,k4,k5,k6,k7,k8,beep3);input inclk, k2,k3,k4,k5,k6,k7,k8;output beep3;wire [6:0] key_code;reg [3:0] c;reg clk_6M;reg beep_r;reg [15:0] count;reg [15:0] count_end;parameter Do = 7'b1111110;re = 7'b1111101;mi = 7'b1111011;fa = 7'b1110111;so = 7'b1101111;la = 7'b1011111;si = 7'b0111111;assign ke y_code ={k8,k7,k6,k5,k4,k3,k2};assign beep3 = beep_r; //输出音乐always@(posedge inclk)beginif(c<4'd8)c<=c+4'd1;elsebeginc <= 4'd0;clk_6M <= ~clk_6M;endendalways@(posedge clk_6M) //分频模块,得出乐谱begincount <= count + 16'd1;if (count_end==0)beep_r<=1; //计数器加1else if(count == count_end)begincount <=16'd0; //计数器清零beep_r <= !beep_r;endendalways@(posedge clk_6M) //状态机,根据按键状态,选择不同的音符输出begincase(key_code)Do: count_end <= 16'd3822;re: count_end <= 16'd3405;mi: count_end <= 16'd3034;fa: count_end <= 16'd2865;so: count_end <= 16'd7802;la: count_end <= 16'd6802;si: count_end <= 16'd6060;default:count_end <= 16'h0;endcaseendendmodule3、曲目1模块:module bell(inclk,beep1);input inclk; //系统时钟output beep1; //蜂鸣器输出端reg [3:0]high,med,low;reg [15:0]origin;reg beep_r; //寄存器reg [7:0]state;reg [15:0]count;assign beep1=beep_r; //输出音乐reg clk_6MHz; //时钟频率6MHzreg [2:0] cnt1;always@(posedge inclk)beginif(cnt1<3'd8)cnt1<=cnt1+3'b1;elsebegincnt1<=3'b0;clk_6MHz<=~clk_6MHz;endendreg clk_4Hz; //时钟频率4Hzreg [24:0] cnt2;always@(posedge inclk)beginif(cnt2<25'd1*******)//cnt2<=cnt2+25'b1;elsebegincnt2<=25'b0;clk_4Hz<=~clk_4Hz;endendalways @(posedge clk_6MHz)begincount <= count + 1'b1; //计数器加1if(count == origin)begincount <= 16'h0; //计数器清零beep_r <= !beep_r; //输出取反endendalways@(posedge clk_4Hz)begincase({high,med,low})12'b000000010000:origin=11466;//mid112'b000000100000:origin=10216;//mid212'b000000110000:origin=9101; //mid312'b000001000000:origin=8590; //mid412'b000001010000:origin=7653; //mid512'b000001100000:origin=6818; //mid612'b000000000101:origin=14447;//low5endcaseendalways @(posedge clk_4Hz) //歌曲1beginif(state ==63) state = 0;//计时,以实现循环演奏elsestate = state + 1;case(state)0,1: {high,med,low}=12'b000000010000;//mid1 2,3: {high,med,low}=12'b000000100000;//mid2 4,5: {high,med,low}=12'b000000110000;//mid3 6,7: {high,med,low}=12'b000000010000;//mid1 8,9: {high,med,low}=12'b000000010000;//mid1 10,11: {high,med,low}=12'b000000100000;//mid2 12,13: {high,med,low}=12'b000000110000;//mid3 14,15: {high,med,low}=12'b000000010000;//mid1 16,17: {high,med,low}=12'b000000110000;//mid3 18,19: {high,med,low}=12'b000001000000;//mid420,21,22,23: {high,med,low}=12'b000001010000;//mid5 24,25: {high,med,low}=12'b000000110000;//mid3 26,27: {high,med,low}=12'b000001000000;//mid4 28,29,30,31: {high,med,low}=12'b000001010000;//mid5 32: {high,med,low}=12'b000001010000;//mid5 33: {high,med,low}=12'b000001100000;//mid6 34: {high,med,low}=12'b000001010000;//mid5 35: {high,med,low}=12'b000001000000;//mid4 36,37: {high,med,low}=12'b000000110000;//mid3 38,39: {high,med,low}=12'b000000010000;//mid1 40: {high,med,low}=12'b000001010000;//mid5 41: {high,med,low}=12'b000001100000;//mid6 42: {high,med,low}=12'b000001010000;//mid5 43: {high,med,low}=12'b000001000000;//mid4 44,45: {high,med,low}=12'b000000110000;//mid3 46,47: {high,med,low}=12'b000000010000;//mid1 48,49: {high,med,low}=12'b000000100000;//mid2 50,51: {high,med,low}=12'b000000000101;//low5 52,53,54,55: {high,med,low}=12'b000000010000;//mid1 56,56: {high,med,low}=12'b000000100000;//mid2 57,58: {high,med,low}=12'b000000000101;//low5 59,60,61,62,63: {high,med,low}=12'b000000010000;//mid1 default : {high,med,low}=12'bx;endcaseendendmodule4、曲目2模块:module bell2 (inclk,beep2);input inclk; //系统时钟output beep2; //蜂鸣器输出端reg [3:0]high,med,low;reg [15:0]origin;reg beep_r; //寄存器reg [7:0]state;reg [15:0]count;assign beep2=beep_r; //输出音乐//时钟频率6MHzreg clk_6MHz;reg [2:0] cnt1;always@(posedge inclk)beginif(cnt1<3'd8)cnt1<=cnt1+3'b1;elsebegincnt1<=3'b0;clk_6MHz<=~clk_6MHz;endend//时钟频率4MHzreg clk_4Hz;reg [24:0] cnt2;always@(posedge inclk)beginif(cnt2<25'd1*******)//cnt2<=cnt2+25'b1;elsebegincnt2<=25'b0;clk_4Hz<=~clk_4Hz;endendalways @(posedge clk_6MHz)begincount <= count + 1'b1; //计数器加1 if(count == origin)begincount <= 16'h0; //计数器清零beep_r <= !beep_r; //输出取反endendalways@(posedge clk_4Hz)begincase({high,med,low})'b000000000001:origin=22900; //低1'b000000000010:origin=20408; //低2'b000000000011:origin=18181; //低3'b000000000100:origin=17142; //低4'b000000000101:origin=15267; //低5'b000000000110:origin=13605; //低6'b000000000111:origin=12121; //低7'b000000000111:origin=11472; //中1'b000000100000:origin=10216; //中2'b000000110000:origin=9101; //中3'b000000111000:origin=8571; //中4'b000001010000:origin=7653; //中5'b000001100000:origin=6818; //中6'b000010000000:origin=6060; //中7'b000100000000:origin=5733; //高1'b001000000000:origin=5108; //高2'b001100000000:origin=4551; //高3'b001010000000:origin=4294; //高4'b010*********:origin=3826; //高5'b011000000000:origin=3409; //高6'b010*********:origin=3050; //高7endcaseendalways @(posedge clk_4Hz)beginif(state ==195)state = 0;elsestate = state + 1; //kang ding qing gecase(state)0: {high,med,low}='b000001100000;//中6 1: {high,med,low}='b000010000000;//中7 2,3,4: {high,med,low}='b000100000000;//高1 5: {high,med,low}='b000010000000;//中7 6,7: {high,med,low}='b000100000000;//高1 8,9: {high,med,low}='b001100000000;//高3 10,11,12,13,14,15: {high,med,low}='b000010000000;//中7 16,17: {high,med,low}='b000000110000;//中3 18,19,20: {high,med,low}='b000001100000;//中6 21: {high,med,low}='b000001010000;//中5 22,23: {high,med,low}='b000001100000;//中6 24,25: {high,med,low}='b000000000111;//中1 26,27,28,29,30,31: {high,med,low}='b000001010000;//中5 32: {high,med,low}='b000000110000;//中3 33: {high,med,low}='b000000110000;//中3 34,35,36: {high,med,low}='b000000111000;//中4 37: {high,med,low}='b000000110000;//中3 38: {high,med,low}='b000000111000;//中4 39,40,41: {high,med,low}='b000100000000;//高1 42,43,44: {high,med,low}='b000000110000;//中3 45,46,47: {high,med,low}='b000100000000;//高1 48,49,50: {high,med,low}='b000010000000;//中7 51,52,53: {high,med,low}='b000000111000;//中4 54,55,56,57,58,59,60,61: {high,med,low}='b000010000000;//中7 62: {high,med,low}='b000001100000;//中6 63: {high,med,low}='b000010000000;//中7 64,65,66: {high,med,low}='b000100000000;//高1 67: {high,med,low}='b010*********;//高768,69: {high,med,low}='b000100000000;//高170,71: {high,med,low}='b001100000000;//高372,73,74: {high,med,low}='b000010000000;//中775,76: {high,med,low}='b000000110000;//中377,78,79: {high,med,low}='b000001100000;//中680: {high,med,low}='b000000000101;//中581,82: {high,med,low}='b000001100000;//中683,84: {high,med,low}='b000000000111;//中185,86,87,88,89,90: {high,med,low}='b000001010000;//中591: {high,med,low}='b000000110000;//中3 92: {high,med,low}='b000000110000;//中3 93,94: {high,med,low}='b000000111000;//中4 95: {high,med,low}='b000100000000;//高1 96,97,98: {high,med,low}='b000010000000;//中7 99,100: {high,med,low}='b000100000000;//高1 101,102: high,med,low}='b001000000000;//高2 103: {high,med,low}='b001100000000;//高3 104,105,106,107,108,109: {high,med,low}='b000100000000;//高1 110: {high,med,low}='b000010000000;//中7 111,112: {high,med,low}='b000001100000;//中6 113,114: {high,med,low}='b000010000000;//中7 115,116: {high,med,low}='b000001010000;//中5 117,118,119,120,121,122: {high,med,low}='b000001100000;//中6 123,124: {high,med,low}='b000000000111;//中1 125: {high,med,low}='b001000000000;//高2 126,127,128: {high,med,low}='b001100000000;//高3 129: {high,med,low}='b001000000000;//高2 130,131: {high,med,low}='b001100000000;//高3 132,133: {high,med,low}='b010*********;//高5 134,135,136,137,138,139: {high,med,low}='b001000000000;//高2 140,141: {high,med,low}='b000001010000;//中5 142,143,144: {high,med,low}='b000100000000;//高1 145: {high,med,low}='b000010000000;//中7 146,147: {high,med,low}='b000100000000;//高1 148,149,150,151,152,153,154,155:{high,med,low}='b001100000000;//高3 156,157: {high,med,low}='b000001100000;//中6 158,159: {high,med,low}='b000010000000;//中7 160,161,162,163: {high,med,low}='b000100000000;//高1 164,165: {high,med,low}='b000010000000;//中7 166,167: {high,med,low}='b000100000000;//高1 168,169: {high,med,low}='b001000000000;//高2 170,171,172: {high,med,low}='b000100000000;//高1 173,174,175,176,177,178: {high,med,low}='b000001010000;//中5 179,180: {high,med,low}='b001010000000;//高4181,182: {high,med,low}='b001100000000;//高3 183,184,185: {high,med,low}='b001000000000;//高2 186,187: {high,med,low}='b000100000000;//高1 188,189,190,191,192,193,194,195:{high,med,low}='b001100000000;//高3 endcaseendendmodule4、循环模块module bell_bell2(inclk,beep4);input inclk; //系统时钟output beep4; //蜂鸣器输出端reg [3:0]high,med,low;reg [15:0]origin;reg beep_r; //寄存器reg [7:0]state;reg [15:0]count;assign beep4=beep_r; //输出音乐//时钟频率6MHzreg clk_6MHz;reg [2:0] cnt1;always@(posedge inclk)beginif(cnt1<3'd8)cnt1<=cnt1+3'b1;elsebegincnt1<=3'b0;clk_6MHz<=~clk_6MHz;endend//时钟频率4MHzreg clk_4Hz;reg [24:0] cnt2;always@(posedge inclk)beginif(cnt2<25'd1*******)//cnt2<=cnt2+25'b1;elsebegincnt2<=25'b0;clk_4Hz<=~clk_4Hz;endendalways @(posedge clk_6MHz)begincount <= count + 1'b1; //计数器加1 if(count == origin)begincount <= 16'h0; //计数器清零beep_r <= !beep_r; //输出取反endendalways@(posedge clk_4Hz)begincase({high,med,low})12'b000000010000:origin=11466;//mid112'b000000100000:origin=10216;//mid212'b000000110000:origin=9101; //mid312'b000001000000:origin=8590; //mid412'b000001010000:origin=7653; //mid512'b000001100000:origin=6818; //mid612'b000000000101:origin=14447;//low5'b000000000001:origin=22900; //低1'b000000000010:origin=20408; //低2'b000000000011:origin=18181; //低3'b000000000100:origin=17142; //低4'b000000000101:origin=15267; //低5'b000000000110:origin=13605; //低6'b000000000111:origin=12121; //低7'b000000000111:origin=11472; //中1'b000000100000:origin=10216; //中2'b000000110000:origin=9101; //中3'b000000111000:origin=8571; //中4'b000001010000:origin=7653; //中5'b000001100000:origin=6818; //中6'b000010000000:origin=6060; //中7'b000100000000:origin=5733; //高1'b001000000000:origin=5108; //高2'b001100000000:origin=4551; //高3'b001010000000:origin=4294; //高4'b010*********:origin=3826; //高5'b011000000000:origin=3409; //高6'b010*********:origin=3050; //高7endcaseendalways @(posedge clk_4Hz) //歌曲<<two tiger>> beginif(state ==260) state = 0;//计时,以实现循环演奏elsestate = state + 1;case(state)0,1: {high,med,low}=12'b000000010000;//mid1 2,3: {high,med,low}=12'b000000100000;//mid2 4,5: {high,med,low}=12'b000000110000;//mid3 6,7: {high,med,low}=12'b000000010000;//mid1 8,9: {high,med,low}=12'b000000010000;//mid1 10,11: {high,med,low}=12'b000000100000;//mid2 12,13: {high,med,low}=12'b000000110000;//mid3 14,15: {high,med,low}=12'b000000010000;//mid1 16,17: {high,med,low}=12'b000000110000;//mid3 18,19: {high,med,low}=12'b000001000000;//mid4 20,21,22,23: {high,med,low}=12'b000001010000;//mid5 24,25: {high,med,low}=12'b000000110000;//mid3 26,27: {high,med,low}=12'b000001000000;//mid4 28,29,30,31: {high,med,low}=12'b000001010000;//mid5 32: {high,med,low}=12'b000001010000;//mid5 33: {high,med,low}=12'b000001100000;//mid6 34: {high,med,low}=12'b000001010000;//mid535: {high,med,low}=12'b000001000000;//mid436,37: {high,med,low}=12'b000000110000;//mid338,39: {high,med,low}=12'b000000010000;//mid140: {high,med,low}=12'b000001010000;//mid541: {high,med,low}=12'b000001100000;//mid642: {high,med,low}=12'b000001010000;//mid543: {high,med,low}=12'b000001000000;//mid444,45: {high,med,low}=12'b000000110000;//mid346,47: {high,med,low}=12'b000000010000;//mid148,49: {high,med,low}=12'b000000100000;//mid250,51: {high,med,low}=12'b000000000101;//low552,53,54,55: {high,med,low}=12'b000000010000;//mid156,56: {high,med,low}=12'b000000100000;//mid257,58: {high,med,low}=12'b000000000101;//low559,60,61,62,63: {high,med,low}=12'b000000010000;//mid1//bell264: {high,med,low}='b000001100000;//中6 65: {high,med,low}='b000010000000;//中7 66,67,68: {high,med,low}='b000100000000;//高1 69: {high,med,low}='b000010000000;//中7 70,71: {high,med,low}='b000100000000;//高1 72,73: {high,med,low}='b001100000000;//高3 74,75,76,77,78,79: {high,med,low}='b000010000000;//中782,83,84: {high,med,low}='b000001100000;//中685: {high,med,low}='b000001010000;//中586,87: {high,med,low}='b000001100000;//中688,89: {high,med,low}='b000000000111;//中190,91,92,93,94,95: {high,med,low}='b000001010000;// 中596: {high,med,low}='b000000110000;//中397: {high,med,low}='b000000110000;//中398,99,100: {high,med,low}='b000000111000;//中4101: {high,med,low}='b000000110000;//中3102: {high,med,low}='b000000111000;//中4103,104,105: {high,med,low}='b000100000000;//高1106,107,108: {high,med,low}='b000000110000;//中3109,110,111: {high,med,low}='b000100000000;//高1112,113,114: {high,med,low}='b000010000000;//中7115,116,117: {high,med,low}='b000000111000;//中4118,119,120,121,122,123,124,125: {high,med,low}='b000010000000;//中7126: {high,med,low}='b000001100000;//中6127: {high,med,low}='b000010000000;//中7128,129,130: {high,med,low}='b000100000000;//高1131: {high,med,low}='b010*********;//高7132,133: {high,med,low}='b000100000000;//高1134,135: {high,med,low}='b001100000000;//高3136,137,138: {high,med,low}='b000010000000;//中7139,140: {high,med,low}='b000000110000;//中3 141,142,143: {high,med,low}='b000001100000;//中6 145: {high,med,low}='b000000000101;//中5 146,147: {high,med,low}='b000001100000;//中6 148,149: {high,med,low}='b000000000111;//中1 150,151,152,153,154,155: {high,med,low}='b000001010000;//中5 156: {high,med,low}='b000000110000;//中3 157: {high,med,low}='b000000110000;//中3 158,159: {high,med,low}='b000000111000;//中4 160: {high,med,low}='b000100000000;//高1 161,162,163: {high,med,low}='b000010000000;//中7 164,165: {high,med,low}='b000100000000;//高1 166,167: {high,med,low}='b001000000000;//高2 168: {high,med,low}='b001100000000;//高3 169,170,171,172,173,174: {high,med,low}='b000100000000;//高1 175: {high,med,low}='b000010000000;//中7 176,177: {high,med,low}='b000001100000;//中6 178,179: {high,med,low}='b000010000000;//中7 180,181: {high,med,low}='b000001010000;//中5 182,183,184,185,186,187: {high,med,low}='b000001100000;//中6190: {high,med,low}='b001000000000;//高2 191,192,193: {high,med,low}='b001100000000;//高3 194: {high,med,low}='b001000000000;//高2 195,196: {high,med,low}='b001100000000;//高3 197,198: {high,med,low}='b010*********;//高5 199,200,201,202,203,204: {high,med,low}='b001000000000;//高2 205,206: {high,med,low}='b000001010000;//中5 207,208,209: {high,med,low}='b000100000000;//高1 210: {high,med,low}='b000010000000;//中7 211,212: {high,med,low}='b000100000000;//高1 213,214,215,216,217,218,219,220: {high,med,low}='b001100000000;//高3 221,222: {high,med,low}='b000001100000;//中6 223,224: {high,med,low}='b000010000000;//中7 225,226,227,228: {high,med,low}='b000100000000;//高1 229,230: {high,med,low}='b000010000000;//中7 231,232: {high,med,low}='b000100000000;//高1 233,234: {high,med,low}='b001000000000;//高2 235,236,237: {high,med,low}='b000100000000;//高1 238,239,240,241,242,243: {high,med,low}='b000001010000;//中5 244,245: {high,med,low}='b001010000000;//高4 246,247: {high,med,low}='b001100000000;//高3 248,249,250: {high,med,low}='b001000000000;//高2 251,252: { high,med,low}='b000100000000;//高1 253,254,255,256,257,258,259,260: {high,med,low}='b001100000000;//高3 default : {high,med,low}=12'bx;endcaseendendmodule。

相关文档
最新文档