VerilogHDL乐曲演奏电路设计


    
    XX学院


    Verilog HDL
    乐曲演奏电路设计




    专业:动化
    学号:
    姓名:






    设计目求
    1课程设计目:
    1)加深EDA技术理解掌握乐曲演奏电路工作原理
    2)解样控制音调高低变化音长完成乐曲动循环演奏
    3)培养学正确分析解决问题力
    2课程设计求:
    1)Verilog HDL设计乐曲演奏电路系统实现硬件描述语言Verilog HDL分频控制方式进行设计然进行编程时序仿真电路功验证奏出美妙乐曲
    2) 通控制输出扬声器激励信号频率高低持续时间扬声器发出连续乐曲声乐曲演奏完成时保证动头开始演奏
    3该方案实现功
    1)通蜂鸣器播放音乐
    2)通三位动态数码输出相应高中低音符
    3)通开关实现两首乐曲切换
    4)音乐播放时会led流水灯闪烁
    应工具介绍
    作流行计算机软件系统EDA技术计算机工作台融合应电子技术计算机技术信息处理智化技术新成果进行电子产品动设计EDA提供文输入图形编辑方法设计者意图程序者图形方式表达出常VHDL语言便编写源程序需常见硬件描述语言(HDL)
    21 EDA技术介绍
    EDA电子设计动化(Electronic Design Automation)缩写20世纪90年代初计算机辅助设计(CAD)计算机辅助制造(CAM)计算机辅助测试(CAT)计算机辅助工程(CAE)概念发展EDA技术电子CAD技术基础发展起计算机软件系统指计算机工作台融合应电子技术计算机技术信息处理智化技术新成果进行电子产品动设计[1]
    EDA技术计算机工具设计者EDA软件台硬件描述语言HDL完成设计文件然计算机动完成逻辑编译化简分割综合优化布局布线仿真直特定目标芯片适配编译逻辑映射编程载等工作典型EDA工具中必须包含两特殊软件包综合器适配器综合器功设计者EDA台完成针某系统项目HDL原理图状态图形描述针定硬件系统组件进行编译优化转换综合终获欲实现功描述文件综合器工作前必须定实现硬件结构参数功软件描述定硬件结构定方式联系起说综合器软件描述硬件实现座桥梁综合程电路高级语言描述转换低级目标器件FPGACPLD相映射网表文件
    天EDA技术已成电子设计普遍工具设计芯片设计系统没EDA工具支持难完成EDA工具已成设计师必少武器起着越越重作目前EDA技术发展趋势政府重视普应广泛工具样软件功强EDA技术发展迅猛完全日新月异描述EDA技术应广泛现已涉行业EDA水断提高设计工具趋完美步
    22 Verilog HDL语言介绍
    Verilog HDL种硬件描述语言算法级门级开关级种抽象设计层次数字系统建模建模数字系统象复杂性介简单门完整电子数字系统间数字系统够层次描述相描述中显式进行时序建模[2]
    作种通化硬件描述语言Verilog HDL语言具述描述力:设计行特性设计数流特性设计结构组成包含响应监控设计验证方面时延波形产生机制种建模语言外Verilog HDL语言提供编程语言接口通该接口模拟验证期间设计外部访问设计包括模拟具体控制运行[3]
    Verilog HDL语言仅定义语法语法结构定义清晰模拟仿真语义种语言编写模型够Verilog仿真器进行验证语言C编程语言中继承种操作符结构Verilog HDL提供扩展建模力中许扩展初难理解Verilog HDL语言核心子集非常易学数建模应说已足够然完整硬件描述语句足复杂芯片完整电子系统进行描述
    Verilog HDL语言已成种标准硬件描述语言具特点:
    (1)作种途硬件描述语言具易学性易性
    (2)Verilog HDL语言允许模块中进行抽象层次描述
    (3)数逻辑综合工具支持Verilog HDL成设计员选择
    (4)制造厂商提供Verilog HDL工艺库支持仿真
    (5)Verilog HDL程序语言接口拥强功允许户C语言部数结构进行描述[3]
    正优点Verilog HDL语言广泛流行
    面verilog设计流程


    Verilog设计流程图
    基原理
    乐曲演奏原理样:组成乐曲音符频率值(音调)持续时间(音长)乐曲连续演奏需两基数控制输出扬声器激励信号频率高低持续时间扬声器发出连续乐曲声[4]
    1 音调控制
    频率高低决定音调高低音乐十二均率规定:两8度音(简谱中中音1高音1)间频率相差倍两8度音间分12半音两半音频率12√2 外音名A(简谱中低音6)频率440Hz音名BC间EF间半音余全音[4]计算出简谱中低音1高音1间音名应频率表311示:

    表311 简谱中音名频率关系
    音名
    频率Hz

    音名
    频率Hz

    音名
    频率Hz
    低音1
    2616

    中音1
    5233

    高音1
    10465
    低音2
    2937

    中音2
    5873

    高音2
    11747
    低音3
    3296

    中音3
    6593

    高音3
    13185
    低音4
    3492

    中音4
    6985

    高音4
    13969
    低音5
    392

    中音5
    784

    高音5
    1568
    低音6
    440

    中音6
    880

    高音6
    1760
    低音7
    4939

    中音7
    9878

    高音7
    19755
    频率信号基准频率分频音阶频率非整数分频系数数必须计算分频数四舍五入取整基准频率低分频太四舍五入取整误差较基准频率高然误差变分频数变实际设计综合考虑两方面素量减频率误差前提取合适基准频率[4]例中选取6MHz基准频率6MHz基准频率先分频6MHz换新基准频率实际音名间相频率关系变演奏出乐曲听起会走调
    例需演奏梁祝乐曲该乐曲音阶频率相应分频表2示减输出偶次谐波分量输出扬声器波形应称方波达扬声器前二分频分频器表2中分频6MHz频率二分频3MHz频率基础计算出分频系数9102采14位二进制计数器分频满足需表2中出分频外出应音阶频率时计数器预置数分频系数加载预置数采加载预置数实现分频方法采反馈复零法节省资源实现起容易表312示:
    表312 音阶频率应分频预置数
    音名
    分频
    预置数

    音名
    分频
    预置数
    低音3
    9102
    7281

    中音2
    5111
    11272
    低音5
    7653
    8730

    中音3
    4552
    11831
    低音6
    6818
    9565

    中音5
    3827
    12556
    低音7
    6073
    10310

    中音6
    3409
    12974
    中音1
    5736
    10647

    高音1
    2867
    13516
    外乐曲中休止符分频系数设0初始值214116383时扬声器会发声
    2 音长控制
    音符持续时间必须根乐曲速度音符节拍数确定例演奏梁祝片段短音符4分音符果全音符持续时间设1s话需提供4Hz时钟频率产生4分音符时长[4]
    图32示乐曲演奏电路原理框图中乐谱产生电路控制音乐音调音长控制音调通设置计数器预置数实现预置数值计数器产生频率信号产生音调控制音长通控制计数器预置数停留时间实现预置数停留时间越长该音符演奏时间越长音符演奏时间025s整数倍节拍较长音符2分音符记谱时该音名连续记录两次

    乐曲演奏电路系统框图
    音名显示电路显示乐曲演奏时应音符3数码分显示高中低音音名实现演奏动态显示十分直观例中high[30]med[30]low[30]等信号分显示高音中音低音音符演奏循环进行需外设置时长计数器乐曲演奏完成时保证动头开始演奏
    方案实现
    系统框图方案分成8模块
    1)48MHz分频成12MHz波形分频器源代码顶层模块
    48mhz分成12mhz分频模块
    module div_clk12mhz(clk_48mhzclk_12mhz)
    input clk_48mhz
    output clk_12mhz
    reg clk_12mhz
    reg [210] cnt
    always @(posedge clk_48mhz)
    if(cnt<1) cntcnt+1 (48mhz12mhz4cnt<[4211])
    else begin cnt0 clk_12mhz clk_12mhz end
    endmodule

    2)12MHz分频成6MHz波形分频器源代码顶层模块:
    12mhz分成6mhz分频模块提供song模块
    module div_clk6mhz(clk_12mhzclk_6mhz)
    input clk_12mhz
    output clk_6mhz
    reg clk_6mhz
    reg cnt
    always @(posedge clk_12mhz)
    clk_6mhzclk_6mhz
    endmodule


    3)12MHz分频成4Hz波形分频器源代码顶层模块:
    12mhz分成4hz分频模块提供song模块
    module div_clk4hz(clk_12mhzclk_4hz)
    input clk_12mhz
    output clk_4hz
    reg clk_4hz
    reg [210] cnt
    always @(posedge clk_12mhz)
    if(cnt<1499999) cntcnt+1 (12mhz4hz3000000cnt<[3000000211499999])
    else begin cnt0 clk_4hz clk_4hz end
    endmodule

    4)12MHz分频成1mhz波形分频器源代码顶层模块:
    12mhz分成1mhz分频模块提供quma模块
    module div_clk1mhz(clk_12mhzclk_1mhz)
    input clk_12mhz
    output clk_1mhz
    reg clk_1mhz
    reg [210] cnt
    always @(posedge clk_12mhz)
    if(cnt<5) cntcnt+1 (12mhz1mhz12cnt<[12215])
    else begin cnt0 clk_1mhz clk_1mhz end
    endmodule







    5)12MHz分频成1khz波形分频器源代码顶层模块:
    12mhz分成1khz分频模块提供quma模块
    module div_clk1khz(clk_12mhzclk_1khz)
    input clk_12mhz
    output clk_1khz
    reg clk_1khz
    reg [210] cnt
    always @(posedge clk_12mhz)
    if(cnt<5999) cntcnt+1 (12mhz1khz12000cnt<[12000215999])
    else begin cnt0 clk_1khz clk_1khz end
    endmodule

    6) song模块源代码顶层模块:
    音乐产生模块
    module song(clk_6mhzclk_4hzspeakerhighmedlowk) 模块名song(端口列表)
    input clk_6mhzclk_4hz
    input k 定义两输入端口
    output speaker 定义输出端口
    output[30] highmedlow
    reg[30] highmedlow 定义34位寄存器
    reg[130] dividerorigin 定义214位寄存器
    reg[90] counter 定义110位寄存器
    reg speaker
    wire carry
    assign carry(divider16383) 连续赋值语句
    always @(posedge clk_6mhz)
    begin if(carry) divider else divider end
    always @(posedge carry)
    begin speaker<~speakerend 二分频产生方波信号
    always @(posedge clk_4hz)
    begin
    case({highmedlow}) 分频预置
    'b000000000011origin<7281 低音3
    'b000000000101origin<8730 低音5
    'b000000000110origin<9565 低音6
    'b000000000111origin<10310 低音7
    'b000000010000origin<10647 中音1
    'b000000100000origin<11272 中音2
    'b000000110000origin<11831 中音3
    'b000001010000origin<12556 中音5
    'b000001100000origin<12974 中音6
    'b000001110000origin<13347 中音7
    'b000100000000origin<13516 高音1
    'b000000000000origin<16383 休止符
    endcase

    end
    always @(posedge clk_4hz)
    if (k0)
    begin
    if(counter149) counter<0 计时实现循环演奏
    else counter case(counter) 记谱
    0 {highmedlow}<'b000000000011 低音3
    1 {highmedlow}<'b000000000011 持续4时钟节拍
    2 {highmedlow}<'b000000000011
    3 {highmedlow}<'b000000000011
    4 {highmedlow}<'b000000000101 低音5
    5 {highmedlow}<'b000000000101 发3时钟节拍
    6 {highmedlow}<'b000000000101
    7 {highmedlow}<'b000000000110 低音6
    8 {highmedlow}<'b000000010000 中音1
    9 {highmedlow}<'b000000010000 发3时钟节拍
    10 {highmedlow}<'b000000010000
    11 {highmedlow}<'b000000100000 中音2
    12 {highmedlow}<'b000000000110 低音6
    13 {highmedlow}<'b000000010000 中音1
    14 {highmedlow}<'b000000000101 低音5
    15 {highmedlow}<'b000000000101
    16 {highmedlow}<'b000001010000 中音5
    17 {highmedlow}<'b000001010000 发3时钟节拍
    18 {highmedlow}<'b000001010000
    19 {highmedlow}<'b000100000000 高音1
    20 {highmedlow}<'b000001100000 中音6
    21 {highmedlow}<'b000001010000 中音5
    22 {highmedlow}<'b000000110000 中音3
    23 {highmedlow}<'b000001010000 中音5
    24 {highmedlow}<'b000000100000 中音2
    25 {highmedlow}<'b000000100000 持续11时钟节拍
    26 {highmedlow}<'b000000100000
    27 {highmedlow}<'b000000100000
    28 {highmedlow}<'b000000100000
    29 {highmedlow}<'b000000100000
    30 {highmedlow}<'b000000100000
    31 {highmedlow}<'b000000100000
    32 {highmedlow}<'b000000100000
    33 {highmedlow}<'b000000100000
    34 {highmedlow}<'b000000100000
    35 {highmedlow}<'b000000110000 中音3
    36 {highmedlow}<'b000000000111 低音7
    37 {highmedlow}<'b000000000111
    38 {highmedlow}<'b000000000110 低音6
    39 {highmedlow}<'b000000000110
    40 {highmedlow}<'b000000000101 低音5
    41 {highmedlow}<'b000000000101
    42 {highmedlow}<'b000000000101
    43 {highmedlow}<'b000000000110 低音6
    44 {highmedlow}<'b000000010000 中音1
    45 {highmedlow}<'b000000010000
    46 {highmedlow}<'b000000100000 中音2
    47 {highmedlow}<'b000000100000
    48 {highmedlow}<'b000000000011 低音3
    49 {highmedlow}<'b000000000011
    50 {highmedlow}<'b000000010000 中音1
    51 {highmedlow}<'b000000010000
    52 {highmedlow}<'b000000000110 低音6
    53 {highmedlow}<'b000000000101 低音5
    54 {highmedlow}<'b000000000110 低音6
    55 {highmedlow}<'b000000010000 中音1
    56 {highmedlow}<'b000000000101 低音5
    57 {highmedlow}<'b000000000101 持续8时钟节拍
    58 {highmedlow}<'b000000000101
    59 {highmedlow}<'b000000000101
    60 {highmedlow}<'b000000000101
    61 {highmedlow}<'b000000000101
    62 {highmedlow}<'b000000000101
    63 {highmedlow}<'b000000000101
    64 {highmedlow}<'b000000110000 中音3
    65 {highmedlow}<'b000000110000 发3时钟节拍
    66 {highmedlow}<'b000000110000
    67 {highmedlow}<'b000001010000 中音5
    68 {highmedlow}<'b000000000111 低音7
    69 {highmedlow}<'b000000000111
    70 {highmedlow}<'b000000100000 中音2
    71 {highmedlow}<'b000000100000
    72 {highmedlow}<'b000000000110 低音6
    73 {highmedlow}<'b000000010000 中音1
    74 {highmedlow}<'b000000000101 低音5
    75 {highmedlow}<'b000000000101 持续4时钟节拍
    76 {highmedlow}<'b000000000101
    77 {highmedlow}<'b000000000101
    78 {highmedlow}<'b000000000000 休止符
    79 {highmedlow}<'b000000000000
    80 {highmedlow}<'b000000000011 低音3
    81 {highmedlow}<'b000000000101 低音5
    82 {highmedlow}<'b000000000101
    83 {highmedlow}<'b000000000011 低音3
    84 {highmedlow}<'b000000000101 低音5
    85 {highmedlow}<'b000000000110 低音6
    86 {highmedlow}<'b000000000111 低音7
    87 {highmedlow}<'b000000100000 中音2
    88 {highmedlow}<'b000000000110 低音6
    89 {highmedlow}<'b000000000110 持续6时钟节拍
    90 {highmedlow}<'b000000000110
    91 {highmedlow}<'b000000000110
    92 {highmedlow}<'b000000000110
    93 {highmedlow}<'b000000000110
    94 {highmedlow}<'b000000000101 低音5
    95 {highmedlow}<'b000000000110 低音6
    96 {highmedlow}<'b000000010000 中音1
    97 {highmedlow}<'b000000010000 发3时钟节拍
    98 {highmedlow}<'b000000010000
    99 {highmedlow}<'b000000100000 中音2
    100 {highmedlow}<'b000001010000 中音5
    101 {highmedlow}<'b000001010000
    102 {highmedlow}<'b000000110000 中音3
    103 {highmedlow}<'b000000110000
    104 {highmedlow}<'b000000100000 中音2
    105 {highmedlow}<'b000000100000
    106 {highmedlow}<'b000000110000 中音3
    107 {highmedlow}<'b000000100000 中音2
    108 {highmedlow}<'b000000010000 中音1
    109 {highmedlow}<'b000000010000
    110 {highmedlow}<'b000000000110 低音6
    111 {highmedlow}<'b000000000101 低音5
    112 {highmedlow}<'b000000000011 低音3
    113 {highmedlow}<'b000000000011 持续4时钟节拍
    114 {highmedlow}<'b000000000011
    115 {highmedlow}<'b000000000011
    116 {highmedlow}<'b000000010000 中音1
    117 {highmedlow}<'b000000010000 持续4时钟节拍
    118 {highmedlow}<'b000000010000
    119 {highmedlow}<'b000000010000
    120 {highmedlow}<'b000000000110 低音6
    121 {highmedlow}<'b000000010000 中音1
    122 {highmedlow}<'b000000000110 低音6
    123 {highmedlow}<'b000000000101 低音5
    124 {highmedlow}<'b000000000011 低音3
    125 {highmedlow}<'b000000000101 低音5
    126 {highmedlow}<'b000000000110 低音6
    127 {highmedlow}<'b000000010000 中音1
    128 {highmedlow}<'b000000000101 低音5
    129 {highmedlow}<'b000000000101 持续6时钟节拍
    130 {highmedlow}<'b000000000101
    131 {highmedlow}<'b000000000101
    132 {highmedlow}<'b000000000101
    133 {highmedlow}<'b000000000101
    134 {highmedlow}<'b000000110000 中音3
    135 {highmedlow}<'b000001010000 中音5
    136 {highmedlow}<'b000000100000 中音2
    137 {highmedlow}<'b000000110000 中音3
    138 {highmedlow}<'b000000100000 中音2
    139 {highmedlow}<'b000000010000 中音1
    140 {highmedlow}<'b000000000111 低音7
    141 {highmedlow}<'b000000000111
    142 {highmedlow}<'b000000000110 低音6
    143 {highmedlow}<'b000000000110
    144 {highmedlow}<'b000000000101 低音5
    145 {highmedlow}<'b000000000101 持续8时钟节拍
    146 {highmedlow}<'b000000000101
    147 {highmedlow}<'b000000000101
    148 {highmedlow}<'b000000000101
    149 {highmedlow}<'b000000000101


    endcase
    end
    else if( k1)
    begin
    if(counter149) counter<0 计时实现循环演奏
    else counter case(counter) 记谱
    0 {highmedlow}<'b000000110000 中音3
    1 {highmedlow}<'b000000110000 持续2时钟节拍
    2 {highmedlow}<'b000000100000 中音2
    3 {highmedlow}<'b000000100000 持续2时钟节拍
    4 {highmedlow}<'b000000110000 中音3
    5 {highmedlow}<'b000000110000 发10时钟节拍
    6 {highmedlow}<'b000000110000
    7 {highmedlow}<'b000000110000
    8 {highmedlow}<'b000000110000
    9 {highmedlow}<'b000000110000
    10 {highmedlow}<'b000000110000
    11 {highmedlow}<'b000000110000
    12 {highmedlow}<'b000000110000
    13 {highmedlow}<'b000000110000
    14 {highmedlow}<'b000000100000 中音2
    15 {highmedlow}<'b000000100000 持续2时钟节拍
    16 {highmedlow}<'b000000110000 中音3
    17 {highmedlow}<'b000000110000 发2时钟节拍
    18 {highmedlow}<'b000000100000 中音2
    19 {highmedlow}<'b000000100000 中音2
    20 {highmedlow}<'b000000010000 中音1
    21 {highmedlow}<'b000000010000
    22 {highmedlow}<'b000000010000
    23 {highmedlow}<'b000000010000
    24 {highmedlow}<'b000000010000
    25 {highmedlow}<'b000000010000
    26 {highmedlow}<'b000000010000
    27 {highmedlow}<'b000000010000
    28 {highmedlow}<'b000000010000
    29 {highmedlow}<'b000000010000
    30 {highmedlow}<'b000000010000
    31 {highmedlow}<'b000000010000
    32 {highmedlow}<'b000000000110低6
    33 {highmedlow}<'b000000000110
    34 {highmedlow}<'b000000010000 中音1
    35 {highmedlow}<'b000000010000
    36 {highmedlow}<'b000000100000 中2 6
    37 {highmedlow}<'b000000100000
    38 {highmedlow}<'b000000100000
    39 {highmedlow}<'b000000100000
    40 {highmedlow}<'b000000100000
    41 {highmedlow}<'b000000100000
    42 {highmedlow}<'b000000110000 中音3
    43 {highmedlow}<'b000000110000
    44 {highmedlow}<'b000000100000 中音2
    45 {highmedlow}<'b000000100000
    46 {highmedlow}<'b000000010000 中音1
    47 {highmedlow}<'b000000010000
    48 {highmedlow}<'b000000000110 低音6
    49 {highmedlow}<'b000000000110
    50 {highmedlow}<'b000000010000 中音1
    51 {highmedlow}<'b000000010000
    52 {highmedlow}<'b000000000101 低音5
    53 {highmedlow}<'b000000000101 低音5
    54 {highmedlow}<'b000000000101
    55 {highmedlow}<'b000000000101
    56 {highmedlow}<'b000000000101 低音5
    57 {highmedlow}<'b000000000101
    58 {highmedlow}<'b000000000101
    59 {highmedlow}<'b000000000101
    60 {highmedlow}<'b000000000101
    61 {highmedlow}<'b000000000101
    62 {highmedlow}<'b000000000101
    63 {highmedlow}<'b000000000101
    64 {highmedlow}<'b000000000101
    65 {highmedlow}<'b000000000101
    66 {highmedlow}<'b000000000101
    67 {highmedlow}<'b000000000101
    68 {highmedlow}<'b000000110000 中音3
    69 {highmedlow}<'b000000110000
    70 {highmedlow}<'b000000100000 中音2
    71 {highmedlow}<'b000000100000
    72 {highmedlow}<'b000000110000 中音3
    73 {highmedlow}<'b000000110000 中音3
    74 {highmedlow}<'b000000110000 中音3
    75 {highmedlow}<'b000000110000 中音3
    76 {highmedlow}<'b000000110000 中音3
    77 {highmedlow}<'b000000110000 中音3
    78 {highmedlow}<'b000000110000 中音3
    79 {highmedlow}<'b000000110000 中音3
    80 {highmedlow}<'b000000110000 中音3
    81 {highmedlow}<'b000000110000 中音3
    82 {highmedlow}<'b000000100000 中音2
    83 {highmedlow}<'b000000100000
    84 {highmedlow}<'b000000110000 中音3
    85 {highmedlow}<'b000000110000 中音3
    86 {highmedlow}<'b000000100000 中音2
    87 {highmedlow}<'b000000100000 中音2
    88 {highmedlow}<'b000000010000 中音1
    89 {highmedlow}<'b000000010000 中音1
    90 {highmedlow}<'b000000010000 中音1
    91 {highmedlow}<'b000000010000 中音1
    92 {highmedlow}<'b000000010000 中音1
    93 {highmedlow}<'b000000010000 中音1
    94 {highmedlow}<'b000000010000 中音1
    95 {highmedlow}<'b000000010000 中音1
    96 {highmedlow}<'b000000010000 中音1
    97 {highmedlow}<'b000000010000 中音1
    98 {highmedlow}<'b000000010000 中音1
    99 {highmedlow}<'b000000010000 中音1
    100 {highmedlow}<'b000000010000 中音1
    101 {highmedlow}<'b000000010000 中音1
    102 {highmedlow}<'b000000010000 中音1
    103 {highmedlow}<'b000000010000 中音1
    104 {highmedlow}<'b000000010000 中音1
    105 {highmedlow}<'b000000000110 低音6
    106 {highmedlow}<'b000000000110 低音6
    107 {highmedlow}<'b000000010000 中音1
    108 {highmedlow}<'b000000010000 中音1
    109 {highmedlow}<'b000000100000 中音2
    110 {highmedlow}<'b000000100000 中音2
    111 {highmedlow}<'b000000100000 中音2
    112 {highmedlow}<'b000000100000 中音2
    113 {highmedlow}<'b000000100000 中音2
    114 {highmedlow}<'b000000100000 中音2
    115 {highmedlow}<'b000000110000 中音3
    116 {highmedlow}<'b000000110000
    117 {highmedlow}<'b000000100000 中音2
    118 {highmedlow}<'b000000100000
    119 {highmedlow}<'b000000010000 中音1
    120 {highmedlow}<'b000000010000
    121 {highmedlow}<'b000000000110 低音6
    122 {highmedlow}<'b000000000110
    123 {highmedlow}<'b000000010000 中音1
    124 {highmedlow}<'b000000010000
    125 {highmedlow}<'b000000100000 中音2
    126 {highmedlow}<'b000000100000 中音2
    127 {highmedlow}<'b000000100000 中音2
    128 {highmedlow}<'b000000100000 中音2
    129 {highmedlow}<'b000000100000 中音2
    130 {highmedlow}<'b000000100000 中音2
    131 {highmedlow}<'b000000100000 中音2
    132 {highmedlow}<'b000000100000 中音2
    133 {highmedlow}<'b000000100000 中音2
    134 {highmedlow}<'b000000100000 中音2
    135 {highmedlow}<'b000000100000 中音2
    136 {highmedlow}<'b000000100000 中音2
    137 {highmedlow}<'b000000100000 中音2
    138 {highmedlow}<'b000000100000 中音2
    139 {highmedlow}<'b000000100000 中音2
    140 {highmedlow}<'b000000100000 中音2
    141 {highmedlow}<'b000000110000 中音3
    142 {highmedlow}<'b000000110000 持续2时钟节拍
    143 {highmedlow}<'b000000100000 中音2
    144 {highmedlow}<'b000000100000 持续2时钟节拍
    145 {highmedlow}<'b000000110000 中音3
    146 {highmedlow}<'b000000110000 发10时钟节拍
    147 {highmedlow}<'b000000110000
    148 {highmedlow}<'b000000110000
    149 {highmedlow}<'b000000110000
    endcase
    end

    endmodule 模块结束

    7)取码模块源代码顶层模块:
    取码模块song模块取数码显示部分位码段码
    module quma(highmedlowclk_1mhzdigduan)
    input [30] highmedlow
    input clk_1mhz
    reg[70] dig
    output [70]dig定义输出八位位码
    reg [70] duan
    output [70] duan 定义输出段码代码
    always @(posedge clk_1mhz)扫描highmedlow三寄存器值取出位码段码代码
    begin
    if (high0) 果high值0输出high值
    begin dig<8'b11111011
    case (high)
    1duan<8'b00000001
    2duan<8'b00000010
    3duan<8'b00000011
    4duan<8'b00000100
    5duan<8'b00000101
    6duan<8'b00000110
    7duan<8'b00000111
    endcase
    end
    else if (med0) 果med值0输出med值
    begin dig<8'b11111101
    case (med )
    1duan<8'b00000001
    2duan<8'b00000010
    3duan<8'b00000011
    4duan<8'b00000100
    5duan<8'b00000101
    6duan<8'b00000110
    7duan<8'b00000111
    endcase
    end
    else if (low0) 果low值0输出low值
    begin dig<8'b11111110
    case (low )
    1duan<8'b00000001
    2duan<8'b00000010
    3duan<8'b00000011
    4duan<8'b00000100
    5duan<8'b00000101
    6duan<8'b00000110
    7duan<8'b00000111
    endcase
    end
    end
    endmodule







    8)disp:显示模块位输出转换七段数码显示源代码顶层模块:
    动态数码显示模块
    module disp(duanclk_1khzseg)
    input [70]duan
    input clk_1khz
    output [70]seg
    reg [70]seg
    always @(posedge clk_1khz)
    begin
    case(duan)
    1seg8'b11111001
    2seg8'b10100100
    3seg8'b10110000
    4seg8'b10011001
    5seg8'b10010010
    6seg8'b10000010
    7seg8'b11111000
    default seg8'b11111001
    endcase
    end
    endmodule


    方案测试
    顶层图形文件建立系统进行仿真仿真时输入输出信号频率求先模块进行仿真
    1) 48MHz分频成12MHz波形模块仿真波形:

    2) 12MHz分频成6MHz波形模块仿真波形:



    3)12MHz分频成1MHz波形模块仿真波形:


    4)12MHz分频成4Hz波形模块仿真波形:


    5)12MHz分频成1khz波形模块仿真波形:


    6)音乐发生器模块仿真波形:

    7)取码模块仿真波形:

    8)显示模块仿真波形:


    引脚锁定:
    功模块波形仿真通画出原理图仿真完毕接开始引脚锁定:引脚锁定列表表示:
    端口名称
    引脚位置
    端口名称
    引脚位置
    clk_48mhz
    N2
    Dig[7]
    M4
    Speaker
    F18
    Seg[0]
    J8
    Dig[0]
    L6
    Seg[1]
    M3
    Dig[1]
    K5
    Seg[2]
    K6
    Dig[2]
    G3
    Seg[3]
    J6
    Dig[3]
    G4
    Seg[4]
    U10
    Dig[4]
    J3
    Seg[5]
    N9
    Dig[5]
    K4
    Seg[6]
    L10
    Dig[6]
    L3
    Seg[7]
    L9
    k
    L25



    引脚锁定载程序:
    安装usbblaster驱动程序配置JTAG文件载程序试验箱FPGA芯片中进行调试仿真修改直预期仿真结果

    附录:乐曲演奏电路设计原理图生成顶层文件


    原理图生成文文件源程序
    Copyright (C) 19912006 Altera Corporation
    Your Use Of Altera Corporation's Design Tools Logic Functions
    And Other Software And Tools And Its Ampp Partner Logic
    Functions And Any Output Files Any Of The Foregoing
    (Including Device Programming Or Simulation Files) And Any
    Associated Documentation Or Information Are Expressly Subject
    To The Terms And Conditions Of The Altera Program License
    Subscription Agreement Altera Megacore Function License
    Agreement Or Other Applicable License Agreement Including
    Without Limitation That Your Use Is For The Sole Purpose Of
    Programming Logic Devices Manufactured By Altera And Sold By
    Altera Or Its Authorized Distributors Please Refer To The
    Applicable Agreement For Further Details

    Module Block1(
    Clk_48mhz
    Speaker
    Dig
    Seg
    )

    Input Clk_48mhz
    Output Speaker
    Output [70] Dig
    Output [70] Seg

    Wire Synthesized_Wire_12
    Wire Synthesized_Wire_4
    Wire [60] Synthesized_Wire_5
    Wire Synthesized_Wire_6
    Wire Synthesized_Wire_7
    Wire Synthesized_Wire_8
    Wire [30] Synthesized_Wire_9
    Wire [30] Synthesized_Wire_10
    Wire [30] Synthesized_Wire_11
    Div_Clk12mhz B2v_Inst(Clk_48mhz(Clk_48mhz)
    Clk_12mhz(Synthesized_Wire_12))

    Div_Clk1khz B2v_Inst1(Clk_12mhz(Synthesized_Wire_12)
    Clk_1khz(Synthesized_Wire_4))

    Div_Clk1mhz B2v_Inst2(Clk_12mhz(Synthesized_Wire_12)
    Clk_1mhz(Synthesized_Wire_8))

    Div_Clk4hz B2v_Inst3(Clk_12mhz(Synthesized_Wire_12)
    Clk_4hz(Synthesized_Wire_7))

    Div_Clk6mhz B2v_Inst4(Clk_12mhz(Synthesized_Wire_12)
    Clk_6mhz(Synthesized_Wire_6))

    Disp B2v_Inst5(Clk_1khz(Synthesized_Wire_4)
    Duan(Synthesized_Wire_5)Seg(Seg))

    Song B2v_Inst6(Clk_6mhz(Synthesized_Wire_6)
    Clk_4hz(Synthesized_Wire_7)Speaker(Speaker)High(Synthesized_Wire_9)Low(Synthesized_Wire_10)Med(Synthesized_Wire_11))

    Quma B2v_Inst9(Clk_1mhz(Synthesized_Wire_8)
    High(Synthesized_Wire_9)Low(Synthesized_Wire_10)Med(Synthesized_Wire_11)Dig(Dig)Duan(Synthesized_Wire_5))
    Endmodule



    实训心
    2周实训深刻体会知识匮乏原学理知识通次实理知识升实践程时实践中加深理知识理解外次实仅verilog提高 学许方面知识提高动手力
    次实训中遇少问题中12mhz分频4hz时候仿真波形仿真出步步分析发现原设置endtime时间太长想仿真出波形便观察设置10s结果仿真百分49然仿真动调试设置05秒样十分钟仿真仿真波形调试出次编程时候程序综合出现错误song模块中阻塞非阻塞赋值时出现程序中显示模块中开始编写七位二进制阴数码结果硬件测试时候数码显示正常发现数点没赋值数码阳调试修改程序成功高中低音调音节显示出次想编译2首歌switch切换演唱歌曲时组成员研究歌谱例子进行午写出两蝴蝶程序修改song程序成功进行仿真点阵显示歌名时候发现芯片点阵输出引脚3老师分析讲解学会新程序an
    通次实仅学知识新认识提高考虑问题分析问题全面性动手操作力培养团队合作精神学致意识做事情规范认真态度综合力提高总课程设计学新知识巩固加深学课理知识程培养综合运知识力思考解决问题力仅加深电子技术课程理解感受设计电路乐趣怕麻烦反复设计绘图修改希次课程设计做说次课程设计非常意义









    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    veriloghdl电子琴课程设计

    XX学院课程设计报告 题 目 Verilog hdl课程设计专 业 自动化 学生姓名 指导教师 ...

    3年前   
    589    0

    论《查尔达斯》演奏技巧与演奏情感

    毕 业 论 文 题 目: 论《查尔达斯》演奏技巧与演奏情感 摘要手风琴是苏联最具代表性的键盘乐器,随着时代的变换,手风琴艺术也不断的革新发展着。《查尔达斯》是近代手风琴音乐的代表...

    1年前   
    347    0

    管弦乐曲《彩云追月》教案

    一、教学内容      赏:管弦乐曲《彩云追月》    认:切分音和切分节奏    唱:《彩云追月》    动:露一手   二、教材分析    《彩云追月》选自苏教版小学音乐...

    13年前   
    14059    0

    红外遥控电路设计

    摘 要 随着科学技术的飞速发展,信息的飞快传播,红外遥控在人们的生活中已经成为不可或缺的部分。本文重点介绍了利用单片机AT89S52和AT89C2051实现红外发射和接收电路的设计方法...

    5年前   
    1257    0

    郎朗演奏会观后感

    郎朗演奏会观后感     我期待已久的12月21日终于到来了,因为,这一天妈妈带我去看郎朗的演奏会。郎朗是全世界著名的钢琴家。     演奏会在晚上7:30正式演出。妈妈带我去了奥体中心东...

    11年前   
    9721    0

    郎朗演奏会观后感

    郎朗演奏会观后感第一篇:郎朗演奏会观后感郎朗演奏会观后感我期待已久的12月21日终于到来了,因为,这一天妈妈带我去看郎朗的演奏会。郎朗是全世界着名的钢琴家。演奏会在晚上7:30正式演出。妈妈带...

    11年前   
    487    0

    《月光奏鸣曲》的演奏技法研究

    摘 要 随着社会的发展,音乐日益普及化,被视为贵族艺术领域的钢琴音乐也走入了千家万户。被尊称为“乐圣”的贝多芬作品《月光奏鸣曲》是极具浪漫主义的典范,本文将对《月光奏鸣曲》的演奏技法进...

    3年前   
    470    0

    集成电路设计产业平台项目简介

    集成电路设计产业平台项目简介经开区集成电路设计产业平台项目简介一、项目申报单位基本情况**海恒投资控股集团公司作为国家级**经济技术开发区国有资产授权运营管理机构,截至目前总资产达130亿元。...

    11年前   
    693    0

    机器猫电路设计制作报告

                        单稳态触发器、声控、磁控和光控--机器猫电路设计制作报告 一.制作目的:        通过制作机器猫电路完成protel 99 SE 实践的全程训...

    13年前   
    14039    0

    学生个人钢琴演奏会主持词

    学生个人钢琴演奏会主持词  各位来宾,观众朋友们,晚上好:  很高兴和大家相约在金秋美好的夜晚。提到钢琴,相信您会情不自禁的想到贝多芬、想到莫扎特、想到《命运交响曲》。徜徉在美妙的音乐之中确实...

    9年前   
    358    0

    在自己的世界里演奏属于大海的音乐——《海上钢琴师》

    在自己的世界里演奏属于大海的音乐——《海上钢琴师》在自己的世界里演奏属于大海的音乐——《海上钢琴师》 这是只属于他的世界,是只属于大海的音乐。从出生到死亡,他怀揣着这份感情在自己的世界中演奏着...

    8年前   
    490    0

    试述演奏心理训练在钢琴教学的重要性

    试述演奏心理训练在钢琴教学的重要性摘要:钢琴演奏是一项技术,亦是一门艺术,钢琴演奏者水平的发挥、创造热情的激发不仅受到钢琴演奏技巧的影响,而且与演奏者的心理素质、心理状态、心理调适能力等息息相...

    1年前   
    322    0

    简析对钢琴演奏者影响的若干因素

      简析对钢琴演奏者影响的若干因素  摘要  本文通过对钢琴的演奏历史以及文化背景的调查和分析,了解到不同的演奏者对钢琴演奏有着不同的诠释,而且演奏者自身的素质对钢琴有着严重的影响,...

    11年前   
    9520    0

    学生个人钢琴演奏会主持词

    学生个人钢琴演奏会主持词  各位来宾,观众朋友们,晚上好:  很高兴和大家相约在金秋美好的夜晚。提到钢琴,相信您会情不自禁的想到贝多芬、想到莫扎特、想到《命运交响曲》。徜徉在美妙的音乐之中确实...

    11年前   
    468    0

    论巴赫钢琴作品的演奏风格

    巴赫是西方文化史上最重要的人物之一,是巴洛克时期的德国著名的作曲家,他的一生创作了800 多个作品,大合唱曲、赋格曲、前奏曲、大键琴乐曲和小协奏曲等多种类。本文主要是从巴赫及作品概述、巴赫钢琴作...

    4年前   
    921    0

    中小学生歌舞演奏比赛活动方案

    中小学生歌舞演奏比赛活动方案  一.活动介绍  本次活动是由株洲日报社和株洲市教育局共同主办,株洲网承办,针对株洲地区近200所中小学近十多万中小学生开展的株洲市规模最大的学生才艺比赛。比赛将...

    12年前   
    460    0

    合作能力在双钢琴演奏中的体现及价值

    双钢琴是现代演奏形式上的创新,这种起源于16世纪西方国家的演奏方式,经过时代的变迁,发展成为现代的双钢琴演奏,受到学术界的广泛关注。在双钢琴的演奏过程中,对两名演奏者的合作能力提出了很高的要求,...

    3年前   
    376    0

    北航电子电路设计数字部分实验报告

    电子电路设计数字部分实验报告学 院: 姓  名:实验一 简单组合逻辑设计实验内容描述一个可综合的数据比较器,比较数据a 、b的大小,若相同,则给出结...

    3年前   
    645    0

    八人抢答器电路设计电子课程设计报告

     (电子技术课程) 设计说明书 八人抢答器电路设计 起止日期: 2016 年 11月14日 至 2016年 11月 18 日 学生姓名 班级 电...

    5年前   
    1613    0

    电路设计师工作岗位职责说明

    电路设计师工作岗位职责说明1) 执行新产品设计开发流程,负责微波/毫米波部件、组件、系统的研发;负责新产品的方案设计、器件选型、工程设计、首样调试、资料归档等工作;任职要求:1) 电磁场与微波...

    2年前   
    741    0

    文档贡献者

    文***享

    贡献于2021-01-01

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档