数字电路课程设计《梁祝》乐曲 数字时钟 乒乓球游戏机 串并乘法

2019-03-29 17:10

数字电路课程设计

题目1:《梁祝》乐曲 题目2:数字时钟 题目3:乒乓球游戏机 题目4:串并乘法器

课程名称: 数字电路课程设计 学 院: 专 业: 班 级: 学 号: 学生姓名:

成 绩:

2010 年 月 日

(一)《梁祝》乐曲演奏

一:系统功能概述

① 演奏电路逻辑图有三部分:音乐节拍和音调发生器、简谱码对应的分频预置

数查表电路、数控分频与演奏发生器。

② 乐曲的每个音符的发音频率值及其持续的时间是乐曲能够连续演奏所需的两个基本要素,设计演奏电路的关键就是获得这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果。 二、系统组成以及系统各部分的设计

顶层设计(SONGER.VHD)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY Songer IS PORT ( CLK12MHZ : IN STD_LOGIC; CLK8HZ : IN STD_LOGIC;

LED8 : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); SPKOUT : OUT STD_LOGIC ); END;

ARCHITECTURE one OF Songer IS

SIGNAL QI : STD_LOGIC_VECTOR(5 DOWNTO 0); COMPONENT NoteTabs

PORT ( clk : IN STD_LOGIC;

ToneIndex : OUT INTEGER RANGE 0 TO 15 ); END COMPONENT; COMPONENT ToneTaba

PORT ( Index : IN INTEGER RANGE 0 TO 15;

Tone : OUT INTEGER RANGE 0 TO 16#7FF# ); END COMPONENT; COMPONENT Speakera

PORT ( clk : IN STD_LOGIC;

Tone : IN INTEGER RANGE 0 TO 16#7FF#; SpkS : OUT STD_LOGIC ); END COMPONENT;

SIGNAL Tone : INTEGER RANGE 0 TO 16#7FF#; SIGNAL ToneIndex : INTEGER RANGE 0 TO 15; BEGIN

u1 : NoteTabs PORT MAP (clk=>CLK8HZ, ToneIndex=>ToneIndex); u2 : ToneTaba PORT MAP (Index=>ToneIndex, Tone=>Tone);

u3 : Speakera PORT MAP(clk=>CLK12MHZ,Tone=>Tone, SpkS=>SPKOUT );

PROCESS(CLK8HZ) BEGIN

IF CLK8HZ'EVENT AND CLK8HZ = '1' THEN QI <= QI + 1; END IF; END PROCESS;

LED8(3 DOWNTO 0) <= QI(5 DOWNTO 2); LED8(7 DOWNTO 4) <= QI(5 DOWNTO 2); LED8(11 DOWNTO 8) <= QI(5 DOWNTO 2); LED8(15 DOWNTO 12) <= QI(5 DOWNTO 2); LED8(19 DOWNTO 16) <= QI(5 DOWNTO 2); LED8(23 DOWNTO 20) <= QI(5 DOWNTO 2); LED8(27 DOWNTO 24) <= QI(5 DOWNTO 2); LED8(31 DOWNTO 28) <= QI(5 DOWNTO 2); END;

音乐节拍和音调发生器(NOTETABS.VHD)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY NoteTabs IS

PORT ( clk : IN STD_LOGIC;

ToneIndex : OUT INTEGER RANGE 0 TO 15 ); END;

ARCHITECTURE one OF NoteTabs IS

SIGNAL Counter : INTEGER RANGE 0 TO 138; BEGIN

CNT8 : PROCESS(clk) BEGIN

IF Counter = 138 THEN Counter <= 0; ELSIF (clk'EVENT AND clk = '1') THEN Counter <= Counter + 1; END IF; END PROCESS;

Search : PROCESS(Counter) BEGIN

CASE Counter IS -- 译码器,查歌曲的简谱,查表结果为音调表的索引值 WHEN 00 => ToneIndex <= 3; -- 简谱\音 WHEN 01 => ToneIndex <= 3; -- 发4个时钟节拍 WHEN 02 => ToneIndex <= 3; WHEN 03 => ToneIndex <= 3;

WHEN 04 => ToneIndex <= 5; -- 简谱\音 WHEN 05 => ToneIndex <= 5; -- 发3个时钟节拍 WHEN 06 => ToneIndex <= 5;

WHEN 07 => ToneIndex <= 6; -- 简谱\音

WHEN 08 => ToneIndex <= 8; WHEN 09 => ToneIndex <= 8; WHEN 10 => ToneIndex <= 8; WHEN 11 => ToneIndex <= 9; WHEN 12 => ToneIndex <= 6; WHEN 13 => ToneIndex <= 8; WHEN 14 => ToneIndex <= 5; WHEN 15 => ToneIndex <= 5; WHEN 16 => ToneIndex <= 12; WHEN 17 => ToneIndex <= 12; WHEN 18 => ToneIndex <= 12; WHEN 19 => ToneIndex <= 15; WHEN 20 => ToneIndex <= 13; WHEN 21 => ToneIndex <= 12; WHEN 22 => ToneIndex <= 10; WHEN 23 => ToneIndex <= 12; WHEN 24 => ToneIndex <= 9; WHEN 25 => ToneIndex <= 9; WHEN 26 => ToneIndex <= 9; WHEN 27 => ToneIndex <= 9; WHEN 28 => ToneIndex <= 9; WHEN 29 => ToneIndex <= 9; WHEN 30 => ToneIndex <= 9; WHEN 31 => ToneIndex <= 0; WHEN 32 => ToneIndex <= 9; WHEN 33 => ToneIndex <= 9; WHEN 34 => ToneIndex <= 9; WHEN 35 => ToneIndex <= 10; WHEN 36 => ToneIndex <= 7; WHEN 37 => ToneIndex <= 7; WHEN 38 => ToneIndex <= 6; WHEN 39 => ToneIndex <= 6; WHEN 40 => ToneIndex <= 5; WHEN 41 => ToneIndex <= 5; WHEN 42 => ToneIndex <= 5; WHEN 43 => ToneIndex <= 6; WHEN 44 => ToneIndex <= 8; WHEN 45 => ToneIndex <= 8; WHEN 46 => ToneIndex <= 9; WHEN 47 => ToneIndex <= 9; WHEN 48 => ToneIndex <= 3; WHEN 49 => ToneIndex <= 3; WHEN 50 => ToneIndex <= 8; WHEN 51 => ToneIndex <= 8;

WHEN 52 => ToneIndex <= 6; WHEN 53 => ToneIndex <= 5; WHEN 54 => ToneIndex <= 6; WHEN 55 => ToneIndex <= 8; WHEN 56 => ToneIndex <= 5; WHEN 57 => ToneIndex <= 5; WHEN 58 => ToneIndex <= 5; WHEN 59 => ToneIndex <= 5; WHEN 60 => ToneIndex <= 5; WHEN 61 => ToneIndex <= 5; WHEN 62 => ToneIndex <= 5; WHEN 63 => ToneIndex <= 5; WHEN 64 => ToneIndex <= 10; WHEN 65 => ToneIndex <= 10; WHEN 66 => ToneIndex <= 10; WHEN 67 => ToneIndex <= 12; WHEN 68 => ToneIndex <= 7; WHEN 69 => ToneIndex <= 7; WHEN 70 => ToneIndex <= 9; WHEN 71 => ToneIndex <= 9; WHEN 72 => ToneIndex <= 6; WHEN 73 => ToneIndex <= 8; WHEN 74 => ToneIndex <= 5; WHEN 75 => ToneIndex <= 5; WHEN 76 => ToneIndex <= 5; WHEN 77 => ToneIndex <= 5; WHEN 78 => ToneIndex <= 5; WHEN 79 => ToneIndex <= 5; WHEN 80 => ToneIndex <= 3; WHEN 81 => ToneIndex <= 5; WHEN 82 => ToneIndex <= 3; WHEN 83 => ToneIndex <= 3; WHEN 84 => ToneIndex <= 5; WHEN 85 => ToneIndex <= 6; WHEN 86 => ToneIndex <= 7; WHEN 87 => ToneIndex <= 9; WHEN 88 => ToneIndex <= 6; WHEN 89 => ToneIndex <= 6; WHEN 90 => ToneIndex <= 6; WHEN 91 => ToneIndex <= 6; WHEN 92 => ToneIndex <= 6; WHEN 93 => ToneIndex <= 6; WHEN 94 => ToneIndex <= 5; WHEN 95 => ToneIndex <= 6;


数字电路课程设计《梁祝》乐曲 数字时钟 乒乓球游戏机 串并乘法.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:等差数列教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: