1、 基于 FPGA 的电子琴设计 草鱼 草鱼 草鱼 摘要 : 草鱼 文中介绍了电子琴系统的整体设计 ,并基于超高速硬件描述语言 VHDL在 Xilinx 公司的 Spartan 系列的 2sc200PQ208-5 芯片上编程实现 .草鱼 电子琴系统的设计包含四个模块 ,分别是控制输入电路 、 porkFPGA、 pork显示电路和扬声器电路 。 草鱼 其中 FPGA 模块的设计是整个电子琴系统设计的核心内容 。 草鱼 四个模块的有机组合完成了电子琴自动演奏的功能 。 草鱼 文中还详细介绍了 FPGA 功能模块的原理及其工作时序仿真图 。 草鱼 本产品的特点是成本较低 , 鲤鱼 性 能稳定 , 鲤
2、鱼 精度高 , 鲤鱼 有一定的开发价值 。 草鱼草鱼 关键词 : 草鱼 现场可编程逻辑器件 FPGA 草鱼 草鱼 草鱼 草鱼 草鱼 超高速硬件描述语言 VHDL 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 电子琴系统 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 自动演奏 草鱼 Design 草鱼 of 草鱼 Electronics_orgon 草鱼 system 草鱼 based 草鱼 on 草鱼 FPGA草鱼 草鱼 Abstract: 草鱼 It 草鱼 will 草 鱼 introduce 草鱼 the 草鱼 inte
3、grate 草鱼 design electronics_orgon 草鱼 system 草鱼based 草鱼 on 草鱼 FPGA. 草鱼 The 草鱼 design 草鱼 will 草鱼 be 草鱼 achieved 草鱼 in 草鱼 the 草鱼 2sc200 5pq208 草鱼 chipof 草鱼 Xilinx 草鱼corporation 草鱼 with 草鱼 the 草鱼 VHDL(Very 草鱼 High-speed 草鱼 Description-Language)草鱼 草鱼 草鱼 草鱼 The 草鱼 design 草鱼 of 草鱼 Electronics_orgon 草鱼 Syst
4、em 草鱼 consist 草鱼 of 草鱼 4 草鱼 parts, 草鱼 they 草鱼 are 草鱼 control 草鱼input 草鱼 circuit、 porkFPGA、 porkdisplay 草鱼 circuit 草鱼 and 草鱼 speaker 草鱼 circuit. 草鱼 The 草鱼 program 草鱼 design 草鱼 of 草鱼 FPGA 草鱼 is 草鱼 the 草鱼 core 草鱼 of 草鱼 the 草鱼 system 草鱼 design. 草鱼 Four 草鱼 parts 草鱼 combined 草鱼 to 草鱼 achieve 草鱼 the 草鱼auto
5、matic 草鱼 play 草鱼 electronics_orgon 草鱼 system. 草鱼 the 草鱼 article 草鱼 illuminates 草鱼 the 草鱼 detail 草鱼 of 草鱼the 草鱼 basic 草鱼 law 草鱼 of 草鱼 FPGA 草鱼 module 草鱼 and 草鱼 its 草鱼 working 草鱼 timing 草鱼 characteristics. 草鱼 Since 草鱼the 草 鱼 most 草鱼 specialty 草鱼 of 草鱼 the 草鱼 product 草鱼 is 草鱼 its 草鱼 low 草鱼 cost、 porkhig
6、h 草鱼 precision, 草鱼 its 草鱼 worth 草鱼 developing.草鱼 草鱼 Keyword: 草鱼 草鱼 草鱼 FPGA 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 VHDL 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 Electronics_orgon 草鱼 system 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 Automatic 草鱼 play草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼草鱼 目 草鱼 草鱼 草鱼 草鱼 草鱼 录 草鱼 草鱼 整体设计方案 草鱼 2 草鱼 草鱼 草
7、鱼 1.1 草鱼 草鱼 设计要求 草鱼 2草鱼 草鱼 草鱼 1.2 草鱼 草鱼 整体设计原理 草鱼 2草鱼 草鱼 草鱼 1.3 草鱼 草鱼 方案比较 草鱼 3草鱼 单元电路设计 3 草鱼 草鱼 草鱼 2.1 草鱼 草鱼 FPGA 模块的原理 草鱼 3草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼2.1.1 草鱼 草鱼 MHZ_generator模块的原理 草鱼 3草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 2.1.2 草鱼 草鱼 NoteTabs 模块的原理 4草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 2.1.3 草鱼 草鱼 ToneTaba 模块的原理 草鱼4 草
8、鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 2.1.4 草鱼 草鱼 Speakera 模块的原理 草鱼4 草鱼 草鱼 草鱼 2.2 草鱼 草鱼 其他模块的原理简介 草鱼 5草鱼 软件设计 草鱼 5 草鱼 系统测试 草鱼 6 草鱼 1 结论 草鱼 6 草鱼 附录 草鱼 7 草鱼 参考文献 草鱼 草鱼 11 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 第一章 草鱼 草鱼 草鱼 整体设计方案 草鱼 1.1 草鱼 草鱼 设计要求 草鱼 音乐是一种享受 ,人们的生活中无时无刻不充满着音乐的气息 ,电子 琴如今已成为一种时尚 .草鱼 设计要求 :用户设
9、计自己喜爱的乐曲输入电子琴 ,电子琴按照设定好的乐谱自动演奏 .草鱼 1.2 草鱼 草鱼 整体设计原理 草鱼 本设计主要为人们业余生活增添点乐趣 .草鱼 方案一 :草鱼 采用数字逻辑电路制作 , 鲤鱼 用 IC 草鱼 拼凑焊接实现 , 鲤鱼 这种电路很直观 , 鲤鱼 简单方便 。 草鱼 但应用数字逻辑电路制作的话 , 鲤鱼 使用的器件较多 , 鲤鱼 连接复杂 , 鲤鱼 体积大 , 鲤鱼 功耗大 。 草鱼 电路中焊点和线路较多会 ,使成品的稳定度和精度大大降低 。 草鱼草鱼 方案二 :草鱼 草鱼 草鱼 草鱼 草鱼 采用现场可编程逻辑器件( FPGA)制作 , 鲤鱼 利用 EDA 软件中的 VHD
10、L 硬件描述语言编程进行控制 , 鲤鱼 然后烧制实现 .采用 FPGA 来设计的原理图如图 1.1 所示 .它由控制输入电路 、 porkFPGA、p ork显示电路和扬声器电路组成 。 草鱼草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 图 1.1 草鱼 草鱼 采用 FPGA 设计的电子琴原理方框图 草鱼 草鱼 草鱼 草鱼 控制输入电路主要是为用户设计的 ,起到一个输入控制的作用 .FPGA 是现场可编程逻辑器件 ,也是本设计方案的核心内容 ,它是实现电子琴运作的主要控制模块 .由设计者把编好的VHDL 程序烧制到现场可编程逻辑器件 FPGA 中 ,然后通过控制输入电路把乐谱输入到 F
11、PGA,产生不同的频率驱动扬声器 ,发出不同的乐谱 .同时也把发出的乐谱符号通过显示器输出 .草鱼 控制输入电路 FPGA 显示电路 扬声电路2 方案三 :草鱼 草鱼 草鱼 草鱼 单片机现在已经达到很成熟的阶段了 ,它的应用也十分广泛 . 草鱼 采用单片机来实现电子琴 ,它的原理方框图与用 FPGA 来实现的原理方框图类似 ,如图 1.2 所示 .草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 图 1.2 草鱼 草鱼 采用单片机实现电子琴的原理方框图 草鱼 草鱼 草鱼 草鱼 草鱼 图 1.1 和图 1.2 的基本原理都相同 ,唯一不同的是一个是用 FPGA 来制作一个是用单片机来实现 .
12、采用单片机来实现电子琴 ,主要的核心是单片机的设计 .草鱼 1.3 草鱼 草鱼 草鱼 方案比较 草鱼 草鱼 草鱼 草鱼 对于电子琴的设计 ,三个方案均可以实现 ,但是第一个方案中采用的是数字逻辑电路来制作 ,该电路硬件所需的器材多 ,体积庞大 ,比较复杂 ,而且精度和稳定度都不是很高 .第二个方案采用的是现场可编程逻辑器件来实现 , 草鱼 它的优点是所有电路集成在一块芯片上 , 鲤鱼 此方案所需的外围电路简单 ,这样它的体积就减少了 , 鲤鱼 同时还提高了系 统的稳定度 。 草鱼 还可以用Modelsim 草鱼 XE 草鱼 5.3d 软件进行仿真和调试等 。 草鱼 设计人员可以充分利用 VHD
13、L 硬件描述语言方便的编程 , 鲤鱼 提高开发效率 , 鲤鱼 缩短研发周期 , 鲤鱼 降低研发成本 ; pork而且易于进行功能的扩展 , 鲤鱼 实现方法灵活 , 鲤鱼 调试方便 , 鲤鱼 修改容易 .方案三也有它的优点 ,但同时也存在缺点 .它对设计者的要求比较高 ,设计者对软硬件必须十分熟悉 .和方案二来比它的实验仿真没有方案二简单直观 ,调试也有一定的难度 .在外界环境相同的条件下 ,方案三设计出来的产品精度和稳定度要比方案二稍微差一些 .因此 ,电子琴的设计我们选择方案二来实现 .草鱼 草鱼 第二章 草鱼 草鱼 草鱼 单元电路设计 草鱼 2.1 草鱼 草鱼 草鱼 FPGA 的原理 草鱼
14、 草鱼 草鱼 草鱼 FPGA 的设计是整个系统的中心环节 ,具有举足清重的作用 .它的实现主要是由设计者用VHDL 硬件描述语言编程实现电子琴的功能 ,仿真调试成功之后 ,再烧到 FPGA 器件中去 .这样作出来的成品插上电源 ,便可脱机运行 .而 FPGA 模块的设计又重在 VHDL 语言的编程实现 .用VHDL语言编写的程序总的顶层模块映射原理图如图 2.1所示 . 草鱼 它是由分频器模块 、 porkSpeakera模块 、 porkNoteTabs 模块和 ToneTaba 模块组成 。 草鱼 标准时钟频率经分频器分频得到一个 12MHZ 的频率和一个 8HZ 的频率 , 鲤鱼 并分别
15、输入 Speakera 模块和 NoteTabs 模块 。 草鱼 从 NoteTabs 模块输出的是乐谱信号 , 鲤鱼 该乐谱信号作为 ToneTaba 模块的敏感信号输入并对其进行控制 。 草鱼 模块ToneTaba 的输出 Tone 作为 Speakera 模块的输入 , 鲤鱼 和 12MHZ 的频率共同作用与 Speakera 模块 。 草鱼 同时 ToneTaba 模块还有两个输出 , 鲤鱼 分别是 code 和 high, 鲤鱼 两个都 接外部的显示部分 , 鲤鱼只不过 code 显示的是乐谱 , 鲤鱼 high 显示的是该乐谱是高音还是低音 。 草鱼草鱼 控制输入电路 MCU(单片
16、机 ) 显示电路 扬声器电路 3 草鱼 图 2.1 草鱼 草鱼 顶层模块总映射原理图 草鱼 下面是顶层映射中各单元模块的介绍 .草鱼 2.1.1 草鱼 草鱼 MHZ_generator 模块的原理 草鱼 草鱼 草鱼 草鱼 分频器的输入是一个标准时钟频率 , 鲤鱼 输出是每秒 12MHZ 的频率和 8HZ 的频率 。 草鱼 其内部实际是一个计数器 , 鲤鱼 根据所需要的要求进行不同的分频设计 。 草鱼 本程序中已知标准频率为 32MHZ,鲤鱼 要得到 12MHZ 和 8HZ 的频率 , 鲤鱼 通过计算我 们可以确定它的分频系数 . 草鱼 MHZ_generator 模块的工作时序仿真图 (略 )
17、,它的程序见附录 。 草鱼草鱼 2.1.2 草鱼 草鱼 NoteTabs模块的原理 草鱼 草鱼 草鱼 草鱼 NoteTabs 模块其实就是一个乐谱预置器 ,可设置电子琴演奏的乐谱 .原理很简单即来一个脉冲输出一个已设置好的乐谱 .假定预先设计的乐谱为 3 草鱼 3 草鱼 3 草鱼 5 草鱼 5 草鱼 5 草鱼 6 草鱼 2 草鱼 1 草鱼 1 草鱼 3 草鱼 3 草鱼 3 草鱼 3 草鱼 3 草鱼 3 它的输出工作时序仿真图如图 2.2 所示 ,程序见附录 .草鱼 草鱼 图 2.2 草鱼 草鱼 NoteTabs模块的工作原理仿真图 草鱼 草鱼 2.1.3 草鱼 草鱼 ToneTaba模块的原理
18、 草鱼 草鱼 草鱼 草鱼 ToneTaba 模块是一个音阶发生器 ,实质是译码电路 , 鲤鱼 控制音调的预置数 .乐谱信号是该模块的敏感信号 , 草鱼 输入的每一个乐谱都将被译成与之相对映的频率从 Tone 端口输出去控制Speakera模块 ,让 Speakera模块发出不同的音调 .ToneTaba模块在将乐谱译成相映的频率的同时会将乐谱的符号从 codel输出到显示部分 ,并判断乐谱是高音还是低音 ,再从 highl端口输出去显示 .在 ToneTaba 模块的设计中 tone 的计算很重要 ,tone 是根据产生该音阶频率所对应的分频比获得的 .此值是通过查表和计算所到 ,查表我们可以
19、知道每个乐谱符号的频率 ,然后计算出要得到该乐谱的频率所需的分频系数 .例如音符 1 的发音 ,通过查表得它的频率是 785HZ 左右 ,我们要计算 tone 的值可由公式 :草鱼 音符频率 =振荡频率 /(16#7FF#-tone 的值 )草鱼 振荡频率是经过分频之后得到的 ,在此是 1MHZ,由公式可计算出 tone 的值为 :773.草鱼 4 为了进一步了解 ToneTaba 模块的工作原理 ,可假定一些参数 进行仿真 .设它的输入乐谱为 : 草鱼3 草鱼 3 草鱼 3 草鱼 3 草鱼 5 草鱼 5 草鱼 5 草鱼 2 草鱼 1 草鱼 1 草鱼 3 草鱼 12 草鱼 15 草鱼 3 草鱼
20、 草鱼 草鱼 则 ToneTaba模块的工作时序仿真图如图 2.3所示 ,程序见附录 .草鱼 草鱼 图 2.3 草鱼 草鱼 ToneTaba模块的工作时序仿真图 草鱼 草鱼 2.1.4 草鱼 草鱼 Speakera模块的原理 草鱼 草鱼 草鱼 草鱼 模块 Speakera 中的主要电路是一个数控分频器 ,它由一个初值可预置的加法计数器和两个分频器构成 .数控分频器的功能就是当输入端给定 不同的输入时 ,将对输入的时钟信号有不同的分频比 , 草鱼 Speakera 模块中的数控分频器就是用计数值可并行预置的加法计数器设计完成的 ,方法是将计数溢出位与预置数加载输入信号相接即可 .当模块 Spea
21、kera由端口 tone获得一个十进制数后 ,将以此值为计数器的预置数 ,对端口 CLK12MHZ 输入的频率进行分频 ,之后将输出再进行 2 分频 , 鲤鱼 将脉冲展宽 , 鲤鱼 以使扬声器有足够功率发音 ,最后由 SPKOUT 向扬声器输出发声 . 草鱼 Speakera模块的工作时序仿真图如图 2.4所示 ,程序见附录 .注 :为了能清晰的看到输入与输出 的关系 ,第一次分频系数设的是 2,第二次分频系数设的是 5,第三次是 2.草鱼 草鱼 图 2.4 草鱼 草鱼 Speakera模块的工作时序仿真图 草鱼 草鱼 2.2 草鱼 草鱼 其他外围电路的原理简介 草鱼 草鱼 草鱼 草鱼 控制输
22、入电路是为用户输入乐谱所设计的 ,主要就是从键盘进行输入 .宣示电路是用数码管显示器来实现 ,在 FPGA 中把要输出显示的数经过七段译码器进行译码 ,直接接至数码管显示器便可显示出数值 .扬声器电路的设计也很简单 ,只需接一个扬声器就可以了 ,顶多在接一个电阻进行分压控制 .草鱼 草鱼 第三章 草鱼 草鱼 草 鱼软件设计 草鱼 我们在 window98的平台上 ,用 Xilinx公司生产的 Xilinx4.2的软件进行 VHDL硬件描述语言5 编程实现交通灯的功能 ,VHDL 语言主要用来设计数字系统 .用来进行系统测试的是清华同方股份有限公司生产的 TPG FPGA 草鱼 草鱼 TPG1A
23、C0007 实验箱 ,选用的是 saprtan2 系列的xc2s200 5pq208 芯片烧置 .草鱼 下面介绍基于 EDA 软件的 FPGA 开发流程 (VHDL 是 EDA 软件中的一部分 ):草鱼 第一步 :安装 Xilinx4.2 软件和 modelsim 草鱼 XE 草鱼 5.3d仿 真软件 .草鱼 第二步 :在 Xilinx4.2 软件进行程序设计 ,新建一个工程 ,用硬件描述语言编程来完成所设计的实物功能 .草鱼 第三步 :综合和适配 .综合过程是把软件设计的 HDL 描述与硬件结构挂钩 ,是文字描述与硬件实现的一座桥梁 .综合就是将电路的高级语言 (如行为描述 )转换成低级的
24、,可与 FPGA 的基本结构相映射的网表文件或程序 .适配器也称结构综合器 ,它的功能是将由综合器产生的网表文件配置于指定的目标器件中 ,使之产生最终的下载文件 .草鱼 第四步 :仿真 .在编程下载前必须利用软件工具对结构综合器生成的结果进行模拟测试 ,就是所谓的仿真 .有两种不同级别的仿真测试 ,分别是时序仿真和功能仿真 .草鱼 第五步 :编程下载 .把适配后生成的下载或配置文件 ,通过编程器向 FPGA 进行下载 ,以便进行硬件调试和验证 .草鱼 第六步 :硬件测试 .将含有载入了设计的 FPGA 的硬件系统进行统一测试 ,以便最终验证设计项目在目标系统上的实际工作情况 ,以排除错误 ,改
25、进设计 .草鱼 草鱼 草鱼 从 FPGA(现场可编程门阵列 )的实验箱上可以知道所设计的程序是否能实现我们所要的功能 ,最后制作电路板作出实物 .草鱼 草鱼 草鱼 草鱼 程序设计的流程图如图 3.1所示 .草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 图 3.1 草鱼 草鱼 程序设计流程图 草鱼 草鱼 第四章 草鱼 草鱼 草鱼 系统测试 草鱼 草鱼 草鱼 草鱼 草鱼 系统测试用的是清华同方股份有限公司生产的 TPG FPGA 草鱼 草鱼 TPG1AC0007 实验箱 .设计者编好程序之后进行仿真无误 ,然后烧置到实验箱上 .测试结果
26、无杂音 ,演奏了一曲悦耳动听的音乐 . 草鱼 这表明用 FPGA 来实现电子琴的精度高系统稳定 .从系统的顶层映射仿真图中我们很清晰的看到这一 点 ,如图 4.1 所示 ,它的程序见附录 .注 :只显示音符 1 且它的频率分频系开始 等待用户输入乐谱 根据乐谱进行音阶频率的预置 根据频率的预置数输出相应的乐谱的频率 扬声器发音 显示乐谱和高低音标志 6 数是 50,频率 =clk 的频率 /50.草鱼 草鱼 图 4.1 草鱼 草鱼 电子琴系统顶层映射仿真图 草鱼 草鱼 第五章 草鱼 草鱼 草鱼 结论 草鱼 草鱼 经过对测试结果的分析 ,发现采用 FPGA 所设计的电子琴 ,系统设计趋于简单 、
27、 pork开发时间缩短 ; pork外围器件少 , 鲤鱼 体积小 ,抗干扰能力强 ,可靠性高 ; pork系统维护更方便 、 pork快捷 .尤其对于设计者来说 ,不需要考虑太多的硬件设计 ,只需要有自己的设计思路 ,编程实现再用烧到 FPGA 器件中进行测 试即可 .电子琴作为一种乐器 ,成本也不高 ,因此有一定的生产价值 . 草鱼草鱼 草鱼 草鱼 草鱼 草鱼 附 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 录 草鱼 MHZ_generator 草鱼 library 草鱼 IEEE;pork草鱼 use 草鱼 IEEE.STD_LOGIC_1164.ALL;pork草鱼 use 草鱼 IEEE.ST
28、D_LOGIC_ARITH.ALL;pork草鱼 use 草鱼 IEEE.STD_LOGIC_UNSIGNED.ALL;pork草鱼 entity 草鱼 MHz_generator 草鱼 is草鱼 草鱼 草鱼 草鱼 草鱼 Port 草鱼 ( 草鱼 clk 草鱼 : 草鱼 in 草鱼 std_logic;pork草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 clk_12MHz 草鱼 : 草鱼 out 草鱼 std_logic;pork草鱼 草鱼 草鱼 clk_8Hz 草鱼 : 草鱼 out 草鱼std_logic);p ork草鱼 end 草鱼 MHz_generato
29、r;pork草鱼 architecture 草鱼 Behavioral 草鱼 of 草鱼 草鱼MHz_generator 草鱼 is草鱼 begin 草鱼 草鱼 草鱼 草鱼 草鱼 process(clk)草鱼 草鱼 variable 草鱼 n12,n8:integer:=0;pork草鱼 草鱼 begin 草鱼 草鱼 草鱼 草鱼 草鱼 if 草鱼 rising_edge(clk)then 草鱼 草鱼 草鱼 草鱼 草鱼 n12:=n12+1;pork草鱼 草鱼 n8:=n8+1;pork草鱼 草鱼 if 草鱼 n12 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 Tone
30、Index 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼
31、ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼
32、 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneInde
33、x 草 鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 Ton
34、eIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼
35、 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 草鱼 ToneIndex 草鱼 = 草鱼