版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 计算机组成原理计算机组成原理课程设计报告课程设计报告 简易电子琴的设计简易电子琴的设计 学学 院院 计算机与通信工程计算机与通信工程 专专 业业 班班 级级 学学 号号 学生姓名学生姓名 指导教师指导教师 课程成绩课程成绩 完成日期完成日期 课程设计任务书课程设计任务书 计算机与通信工程学院 计算机科学与技术专业 课程名称计算机组成原理课程 设计 时间20072008 学年第一学期 1920 周 学生姓名指导老师 题 目简易电子琴的设计 主要内容:本课程设计主要是利用硬件描述语言 VHDL 的设计思想,采用 自顶向下的方法,划分模块来设计简易电子琴中的几个模块。通过课程设计深 入理解和掌握计
2、算机的基本知识,并且掌握课堂上所学到的理论知识,达到课 程设计的目的。 要求: (1)通过对相应文献的收集、分析以及总结,给出相应课题的背景、意义 及现状研究分析。 (2)通过课题设计,掌握计算机组成原理的分析方法和设计方法。 。 (3)学按要求编写课程设计报告书,能正确阐述设计和实验结果。 (4)学生应抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相 应文献以及实现,给出个人分析、设计以及实现。 应当提交的文件: (1)课程设计报告。 (2)课程设计附件(主要是源程序) 。 课程设计成绩评定课程设计成绩评定 学学 院院 计算机通信工程计算机通信工程 专专 业业 计算机科学与技术计算机科
3、学与技术 班班 级级 学学 号号 学生姓名学生姓名 指导教师指导教师 课程成绩课程成绩 完成日期完成日期 指导教师对学生在课程设计中的评价指导教师对学生在课程设计中的评价 评分项目优良中及格不及格 课程设计中的创造性成果 学生掌握课程内容的程度 课程设计完成情况 课程设计动手 能力 文字表达 学习态度 规范要求 课程设计论文的质量 指导教师对课程设计的评定意见指导教师对课程设计的评定意见 综合成绩 指导教师签字 年 月 日 简易电子琴的设计简易电子琴的设计 摘摘 要要 本系统是采用 EDA 技术设计的一个简易的八音符电子琴,该系统基于计算机 中时钟分频器的原理,采用自顶向下的设计方法来实现,它
4、可以通过按键输入来控制 音响。系统由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。系统 实现是用硬件描述语言 VHDL 按模块化方式进行设计,然后进行编程、时序仿真、整 合。本系统功能比较齐全,有一定的使用价值。 关键字关键字 电子琴;EDA;VHDL;音调发生; 目录目录 1 引 言 .1 1.1 设计的目的 .1 1.2 设计的基本内容 .1 2 EDA、VHDL 简介.1 2.1 EDA 技术 .1 2.2 硬件描述语言VHDL .2 2.2.1 VHDL 的简介 .2 2.2.2 VHDL 语言的特点 .2 2.2.3 VHDL 的设计流程 .3 3 简易电子琴设计过程 .
5、3 3.1 简易电子琴的工作原理.3 3.2 简易电子琴的工作流程图.5 3.3 简易电子琴中各模块的设计.6 3.3.1 乐曲自动演奏模块.6 3.3.2 音调发生模块.7 3.3.3 数控分频模块.8 3.3.4 顶层设计.9 4 系统仿真 .10 5 结束语 .12 致谢 .13 参考文献 .14 附录 .15 1 引引 言言 我们生活在一个信息时代,各种电子产品层出不穷,作为一个计算机专业的学生, 了解这些电子产品的基本组成和设计原理是十分必要的,我们学习的是计算机组成的 理论知识,而课程设计正是对我们学习的理论的实践与巩固。本设计主要介绍的是一 个用超高速硬件描述语言VHDL设计的一
6、个具有若干功能的简易电子琴,其理论基础来 源于计算机组成原理的时钟分频器。 1.1 设计的目的设计的目的 本次设计的目的就是在掌握计算机组成原理理论的基础上,了解 EDA 技术,掌握 VHDL 硬件描述语言的设计方法和思想,通过学习的 VHDL 语言结合电子电路的设计 知识理论联系实际,掌握所学的课程知识,例如本课程设计就是基于所学的计算机原 理中的时钟分频器和定时器的基础之上的,通过本课程设计,达到巩固和综合运用计 算机原理中的知识,理论联系实际,巩固所学理论知识,并且提高自己通过所学理论 分析、解决计算机实际问题的能力。 1.2 设计的基本内容设计的基本内容 基于 MAX+PLUS 平台,
7、运用 VHDL 语言对简易电子琴的各个模块进行设计,并使用 EDA 工具对各模块进行仿真验证。本设计包含如下三个模块:乐曲自动演奏模块,音 调发生模块,数控分频模块,最后把各个模块整合后,通过电路的输入输出对应关系 连接起来。 2 EDA、VHDL 简介简介 2.1 EDA 技术技术 EDA 技术是在电子 CAD 技术基础上发展起来的计算机软件系统,有狭义与广义之分, 本设计讨论的是狭义的 EDA 技术。它是指以大规模可编程逻辑器件为设计载体,以硬 件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开 发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成软件方式设
8、计的 电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局 布线、逻辑仿真,直到对于特定目标芯片的适配编译、逻辑映射、逻辑下载等工作, 最终形成集成电子系统或专用集成芯片的一门新技术。利用 EDA 工具,电子设计师可 以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以 将电子产品从电路设计、性能分析到设计出 IC 版图或 PCB 版图的整个过程的计算机上 自动处理完成。现在对 EDA 的概念或范畴用得很宽。包括在机械、电子、通信、航空 航天、化工、矿产、生物、医学、军事等各个领域,都有 EDA 的应用。目前 EDA 技术 已在各大公司、企事业单位和
9、科研教学部门广泛使用。例如在飞机制造过程中,从设 计、性能测试及特性分析直到飞行模拟,都可能涉及到 EDA 技术。本文所指的 EDA 技 术,主要针对电子电路设计、PCB 设计和 IC 设计。 2.2 硬件描述语言硬件描述语言VHDL 2.2.1 VHDL 的简介的简介 VHDL 是一种用来描述数字逻辑系统的“编程语言”它的全名是 Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于 1982 年。1987 年底,VHDL 被 IEEE(The Institute of Electrical and Electr
10、onics Engineers)和美国国防部确认为标准 硬件描述语言。它源于美国政府于 1980 年开始启动的超高速集成电路计划,VHDL 主要 用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外, VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL 的程序 结构特点是将一项工程设计,或称设计实体(可以是一个元件、一个电路模块或一个 系统)分成外部(或称可是部分,即端口)和内部(或称不可视部分,既设计实体的内 部功能和算法完成部分)两部分。在对一个设计实体定义了外部界面后,一旦其内部 开发完成后,其他的设计就可以直接调用这个实体。这种将设计实
11、体分成内外部分的 概念是 VHDL 系统设计的基本点。应用 VHDL 进行工程设计的优点是多方面的。VHDL 的 应用必将成为当前以及未来 EDA 解决方案的核心,更是整个电子逻辑系统设计的核心。 2.2.2 VHDL 语言的特点语言的特点 (1)VHDL 具有更强的行为描述能力,从而决定了他成为电子工程领域事实上通 用的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述 和设计大规模电子系统的重要保证。 (2)VHDL 语句的行为描述能力和程序结构,决定了他具有支持大规模设计的分 解和已有设计的再利用功能。高效、高速完成符合市场需求的必须有多人甚至多个代 发组共同并行工作
12、才能实现的大规模系统设计。VHDL 中设计实体的概念、程序包的 概念、设计库的概念为设计的分解和并行工作提供了有利的支持。 (3)VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验 设计系统的功能可行性,随时可对设计进行仿真模拟,使设计者对整个工程的结构和 功能可行性做出判断。 (4)用 VHDL 完成的一个确定的设计,可以利用 EDA 工具进行逻辑综合和优化, 并自动的把 VHDL 描述设计转变成门级网表(根据不同的实现芯片)。 (5)VHDL 对设计的描述具有相对独立性。设计者可以不懂硬件的结构,也不必 管理最终设计实现的目标器件是什么,而进行独立的设计。正因为 VHD
13、L 的硬件描述 与具体的工艺技术和硬件结构无关,所以 VHDL 设计程序的硬件实现目标器件有广阔 的悬着范围。 (6)VHDL 具有类属描述语句和子程序调用等程序,对于完成的设计,在不改变 源程序的条件下,只需要改变类属参数量或者函数,就能轻易地改变设计的规模和结 构。 2.2.3 VHDL 的设计流程的设计流程 用 VHDL 语言设计电路的流程: 在用 VHDL 语言来设计电路时,主要的过程是这样的: (1)创建 VHDL 设计工程及使用文本编辑器输入设计源文件。 (2)使用编译工具编译源文件。VHDL 的编译器有很多,ACTIVE 公司, MODELSIM 公司,SYNPLICITY 公司
14、,SYNOPSYS 公司,VERIBEST 公司等都有自 己的编译器。 (3)目标器件的选择和源程序的编译及综合。 (4)编辑测试文件及器件引脚的锁定和适配。 (5)系统的功能仿真。对进入功能仿真,给测试向量赋值,再设置波形的观察格 式。作为一个独立的设计项目而言,仿真文件的提供足可以证明你设计的完整性。 (6)连接硬件测试系统,进行下载操作,再通过硬件系统进行测试。 (7)综合。综合的目的是在于将设计的源文件由语言转换为实际的电路。这一部 分的最终目的是生成门电路级的网表(Netlist) 。 (8)布局、布线。这一步的目的是生成用于烧写的编程文件。在这一步,将用到 第(7)步生成的网表并根
15、据 CPLD/FPG 厂商的器件容量,结构等进行布局、布线。这 就好像在设计 PCB 时的布局布线一样。先将各个设计中的门根据网表的内容和器件的 结构放在器件的特定部位。然后,在根据网表中提供的各门的连接,把各个门的输入 输出连接起来。 (9)后仿真。这一步主要是为了确定你的设计在经过布局布线之后,是不是还满 足 你的设计要求。 3 简易电子琴设计过程简易电子琴设计过程 3.1 简易电子琴的工作原理简易电子琴的工作原理 音乐产生原理及硬件设计由于一首音乐是许多不同的音阶组成的,而每个音阶对应着 不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了, 图 3.1 简易电子琴
16、的工作原理图 3.2 简易电子琴的工作流程图简易电子琴的工作流程图 开始 按键按下是否成功 TO 初始化并开中断允放 TO 中断 识别按键功能 根据按键功能,装入音符 T 到 TO 中 启动 TO 工作 按键释放是否成功? 停止 TO 工作 TO 中断入 口 重装 THO,TLO 初值 P1.0 取反 中断返回 图 3.2 简易电子琴的工作流程图 3.3 简易电子琴中各模块的设计简易电子琴中各模块的设计 为了更清楚的了解电子琴的工作过程,我们利用 EDA 工具(本课程设计 Max+plus)对各个模块实施时序仿真(Timing Simulation),由自顶向下的设计方式, 最后将三个模块进行
17、整合,做出简易电子琴整个系统的时序仿真图。 3.3.13.3.1 乐曲自动演奏模块 乐曲自动演奏模块的作用是产生 8 位发声控制输入信号。当进行自动演奏时,由存 储在此模块中的 8 位二进制作为发声控制输入,从而自动演奏乐曲。这段模块的原理 图如图 3.3 所示: CLK AUTO INDEX07.0 INDEX27.0 3.3 乐曲自动演奏模块原理图 乐曲自动演奏模块可以由 VHDL 语言来实现,下面是一段主要代码: BEGIN IF AUTO=0THEN CASE COUNT IS WHEN 0=INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0=; -2
18、 END CASE; ELSE INDEX0TONE0=773;CODE=;HIGHTONE0=912;CODE=;HIGHTONE0=1036;CODE=;HIGHTONE0=1116;CODE=;HIGHTONE0=1197;CODE=;HIGHTONE0=1290;CODE=;HIGHTONE0=1372;CODE=;HIGHTONE0=1410;CODE=;HIGHTONE=2047;CODE=;HIGH=0; END CASE; END PROCESS; 3.3.33.3.3 数控分频模块 在对计算机组成原理的学习中,我们知道数控分频器的功能是在输入端输入不同数据 时,对输入时钟产生
19、不同的分频比,输出不同频率的时钟,以改变输出信号的频率。 本设计中数控分频模块是利用并行预置数的减法计数器对时基脉冲进行分频,得到与 1、2、3、4、5、6、7 七个音符相对应的频率。 数控分频模块原理图如图 3.7 所示: CLK1 SPKS TONE110.0 图 3.7 数控分频模块原理图 其主要 VHDL 代码如下所示: BEGIN PROCESS(CLK1) VARIABLE COUNT:INTEGER RANGE 0 TO 8; BEGIN IF(CLKEVENT AND CLK1=1)THEN COUTNT:=COUNT +1; IF COUNT=2 THEN PRECLK=1;
20、 ELSE COUNT=4 THEN PRECLK=0;COUTN:=0; END IF; END IF; END PROCESS; PROCESS(PRECLK,TONE1) VARIABLE COUNT11:INTEGER RANGE 0 TO 2047; BEGIN IF(PRECLKEVENT AND PRECLK=1)THEN IF COUNT11TONE1 THEN COUNT11:=COUNT11 +1;FULLSPKS=1; ELSE COUNT11:=0;FULLSPKS=0; END IF; END IF; END PROCESS; 3.3.43.3.4 顶层设计 把以上设
21、计的各个模块进行整合,最后我们得到了系统的整个工作原理图,如图 3.10: 310 简易电子琴的工作原理图 完成整个系统顶层设计的主要 VHDL 代码如下: ARCHITECTURE ART OF DIANZIQIN IS COMPONENT AUTO PORT(CLK: IN STD_LOGIC; AUTO: IN STD_LOGIC; INDEX2:IN STD_LOGIC_VECTOR(7 DOWNTO 0); INDEX0:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END COMPONENT; COMPONENT TONE PORT ( INDEX: IN S
22、TD_LOGIC_VECTOR(7 DOWNTO 0); CODE: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HIGH: OUT STD_LOGIC; TONE0:OUT INTEGER RANGE 0 TO 2047); END COMPONENT; COMPONENT FENPIN PORT(CLK1: IN STD_LOGIC; TONE1: IN INTEGER RANGE 0 TO 2047; SPKS: OUT STD_LOGIC); END COMPONET; 4 4 系统仿真系统仿真 乐曲自动演奏模块由 VHDL 语言实现后,其仿真图如图 3.4 所
23、示。 图 3.4 乐曲自动演奏模块的仿真 音调发生模块由 VHDL 实现后,其仿真图如图 3.6 所示。 图 3.6 音调发生模块仿真图 数控分频模块由 VHDL 程序实现后,其仿真图如图 3.8 所示。 图 3.8 数控分频模块仿真图 最后进一步利用 VHDL 完成对整个系统的顶层设计,其仿真图如 3.9 所示: 图 3.9 简易电子琴整个系统的仿真图 5 结束语结束语 通过两个多周的紧张工作,终于完成了简易电子琴的设计,这个课程设计使我受 益匪浅,他使我了解了硬件设计的整个流程,并且加深了我对计算机组成原理这门的 课内容的理解,通过这个课程设计,不仅使我了解了组成原理的脊髓,而且使我对 V
24、HDL 语言从陌生到初步理解,扩充的我的知识面。 这个课程设计也培养了我们的耐心和毅力,一个小小的错误就会导致结果的不正 确,而对错误的检查要求我要有足够的耐心,由于这个课程设计也使我积累了一些经 验,相信这些经验在我以后的学习工作中会有很大的作用。此课程设计也使我了解了 VHDL 设计的方便灵活性,这是我们跨入计算机硬件行业很好的一次锻炼。 在课程设计的整个过程中,得到了肖晓丽老师的大力支持,在此感谢肖老师的精 心指点。 致谢致谢 此课程设计从构思到最后完成的这两个周内,周围的很多同学和朋友给予了我善意的 帮助,还有肖晓丽老师对我的不厌其烦的指导,使我对此类课程设计的设计流程以及 脊髓有了很
25、深的了解,通过你们的帮助,我把从计算机组成原理这门课上学到的理论 第一次用到了实际设计上。在此,我深深的表示感谢,没有你们,我无法完成此课程 设计。 参考文献参考文献 1 曹昕燕,周凤臣.EDA 技术实验与课程设计.北京:清华大学出版社,2006 2 张亦华,延明. 数字电路 EDA 入门.北京:北京邮电大学出版社,2003 3王爱英.计算机组成与结构.北京:清华大学出版社,2007 4 杨刚,龙海燕.现代电子技术VHDL 与数字系统设计.北京:电子工业出版社,2004 附录附录 1. 乐曲自动演奏模块的源程序如下所示: LIBRARY IEEE; USE IEEE.STD_LOGIC_116
26、4.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY AUTO IS PORT ( CLK: INSTD_LOGIC;-系统时钟控制信号 AUTO: INSTD_LOGIC; CLK2: BUFFER STD_LOGIC; INDEX2: INSTD_LOGIC)VECTOR( 7 DOWNTO 0 ); INDEX0: OUTSTD_LOGIC_VECTOR( 7 DOWNTO 0 ); END AUTO; ARCHITECTURE BEHAVIORAL OF AUTO IS SIGNAL COUTTO:INTEGER RANGE 0 TO 31; B
27、EGIN PULSEO:PROCESS(CLK,AUTO) VARIABLE COUNT:INTEGER RANGE 0 T0 8; BEGIN IF AUTO = 1 THEN COUNT: = 0;CLK2 =0; ESLE(CLKEVENT AND CLD = 1)THEN COUTN:=COUTN+1; IF COUTN = 4 THEN CLK2=1; ELSIF COUNT =8 THEN CLK2=0;COUNT:=0; END IF; END IF; END PROCESS; MUSIC:PROCESS(CLK2) BEGIN IF(CLK2EVENT AND CLK2=1)T
28、HEN IF(COUNT0 =31)THEN COUNT=0; ELSE COUNTINDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0=; -2 END CASE; ELSE INDEX0TONE0=773;CODE=;HIGHTONE0=912;CODE=;HIGHTONE0=1036;CODE=;HIGHTONE0=1116;CODE=;HIGHTONE0=1197;CODE=;HIGHTONE0=1290;CODE=;HIGHTONE0=1372;CODE=;HIGHTONE0=1410;CODE=;HIGHTONE=2047;CODE=;HIGH=0; END CASE; END PROCESS; END ART; 3. 数控分频模块的源程序如下所示: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖州事业单位考试题目及答案
- 钻井工程项目可行性研究报告
- 铝制品生产线项目投资计划书
- 2026年洛阳正骨医院骨科医院招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 电池级碳酸锂生产线项目投标书
- 2026年泉州黎明职业大学招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 2026年河南驻马店汝南县人民政府办公室招聘2人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年河南罗山县招聘事业单位工作人员(教育系统除外)笔试易考易错模拟试题(共500题)试卷后附参考答案
- 泰安市泰和电力X 射线实时成像检测系统应用项目环境影响报告表
- 2026年河南洛阳市栾川县招聘事业单位工作人员77人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年春季人教PEP版四年级下册英语Unit 1 Class rules 教案(共6课时)
- 2026广东汕头市公安局招聘警务辅助人员152人考试参考试题及答案解析
- 大学计算机基础-基于计算思维(Windows 10+Office 2016)(第2版)课件 聂哲 第5-10章 Excel基本应用- 算法思维与应用
- 荆州市国土空间总体规划(2021-2035年)
- 2024制冷系统管路结构设计指导书
- 真题6课件讲解
- 2024年细胞治疗项目实施方案
- 2024届广东省部分地区高三10月语文试卷汇编:文言文阅读(解析)
- 商业模式创新 PPT商业模式画布
- 混合痔中医护理方案效果总结分析报告
- 腹内疝的临床与影像分析
评论
0/150
提交评论