- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(word)《数字逻辑系统设计》设计报告格式
JIU JIANG UNIVERSITY
数字逻辑系统
课程设计报告
设计课题: 简易电子琴
专 业: 电子信息工程
班级学号: 20
学生姓名: 陈长源
指导教师: 盛健
设计时间: 2012.12.24~2012.12.28
简易电子琴
1.设计任务与要求
1.1通过对一个简易的八音符电子琴的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤
1.2设计简易的八音符电子琴,它可通过按键输入来控制音响。
1.3演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲。
1.4能够自动演奏多首乐曲,且每首乐曲可重复演奏
2.方案设计及主要技术思路
2.1方案一、本设计可有两种方案实现,他们的程序一样,但是所利用逻辑 元件不同,其一是将产生的32M频率模块,自动|手动控制模块,音节产生模块,
分频模块依次连接。
2.2方案二、利用顶层设计将各个程序整合,再生成相应的图形文件,利用这个图形元件再接上外围即可实现功能。
2.3优劣分析及方案选定
方案一层次分明,逻辑元件连接清晰,易于理解。反观方案二,虽然结构简单,但是不易理解。
2.4 采用的硬件平台及主要技术
2.4.1 EDA技术是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
数控分频模块
(2)音调发生模块的仿真
1.自动手动模块符号图
3.1.5 A模块代码见附录,代码必须有注释。
自动手动控制
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity automusic is
Port ( clk,Auto : in std_logic; --系统时钟;键盘输入/自动演奏
index2 : in std_logic_vector(7 downto 0); --键盘输入信号
index0 : out std_logic_vector(7 downto 0)); --音符信号输出
end automusic;
architecture Behavioral of automusic is
signal count0:integer range 0 to 31;--change
signal clk2:std_logic;
begin
pulse0:process(clk,Aut0) --此进程完成对系统时钟8M的分频,得到4Hz的信号clk2
variable count:integer range 0 to 8000000;
begin
if Auto=1 then count:=0;clk2=0;
elsif clkevent and clk=1 then count:=count+1;
if count=4000000(4) then clk2=1;
elsif count=8000000 (8)then clk2=0;count:=0;
end if;
end if;
end process;
music:process(clk2) --此进程完成自动演奏部分曲的地址累加
begin
if clk2event and clk2=1 then
if count0=31 then count0=0;
else count0=count0+1;
end if;
end if;
end process;
com1:process(count0,Auto,index2)
be
文档评论(0)