和弦音乐芯片项目设计报告.doc_第1页
和弦音乐芯片项目设计报告.doc_第2页
和弦音乐芯片项目设计报告.doc_第3页
和弦音乐芯片项目设计报告.doc_第4页
和弦音乐芯片项目设计报告.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

版 本:1.00分册名称:和弦音乐芯片的 ASIC设计方案 第1册/总1册和弦音乐芯片的ASIC设计方案专业:电子信息工程专业 本科班级:集成09002学号:09160500220 09160500201 09160500203姓名:陈盼 孙诗钰 于丽扬日期:2012/11/20大连东软信息学院 嵌入式系统工程系修改记录日期版本说明作者2012-08-21(星期四)文档的初步建立孙诗钰、于丽阳2012-09-12(星期一)文档的初次修改:更新细化一些内容;陈盼2012-11-20文档的再次细化修改,加入部分内容陈盼目 录一概述11. 功能简介12. 管脚图13. 典型应用电路14. SMIC .18工艺简介2二音乐知识21. 什么是和弦22. MIDI文件格式2三关键技术介绍51. 类MIDI音乐52. PWM53. 分时输出6四系统分析71. 数据通道72. 控制通道93. 上电复位124. 时钟产生12五系统设计141. 数字设计流程142. 模拟设计流程143. 混合设计流程16六数字部分结果161.前仿真162.布局布线后版图173.DRC、LVS最终版图18七总结19和弦音乐芯片的ASIC设计一概述1. 功能简介和弦音乐芯片是一款专业的一次性可编程(otp)和弦电子音乐处理芯片,拥有处理多和弦通道的能力,其支持目前通用的midi0格式以及midi1格式,高速的内部dsp处理器以及psg音质专用处理器,能逼真地还原电子乐器的音质效果。由于优美的音质和很高的性能比优势,已被大规模应用于电子琴领域。可以选择pwm输出,pwm输出可以直推0.5w的喇叭。2. 管脚图 3. 典型应用电路4. SMIC .18工艺简介一种适用于逻辑电路的0.18微米CMOS加工工艺,这种CMOS带有一个微型电池大小的嵌入式SRAM,它标志着带有电可擦除只读存储器(EEPROM)与复合信号、 射频(RF)以及转换脉冲起始(SoC)等功能的0.18微米系列产品,它已经将0.18微米逻辑技术用于批量生产,并使缺陷的密度与加工周期达到了极具竞争力的水平。利用VeriSilicon公司的0.18微米设计平台,SMIC能够在某些领域为用户提供设计支持,这些领域包括单、双接口静态存储器(SRAM)的存储编制以及标准输入/输出(I/O)单元库等。另外,SMIC还提供各种不同的数字与复合信号核心元件以及有关0.18微米CMOS的多晶片项目服务,使客户能够以较低的风险与成本进行原型产品的试验和高级设计。二音乐知识1. 什么是和弦和弦是乐理上的一个概念,指的是一定音程关系的一组声音。将三个和三个以上的音,按三度叠置的关系,在纵向上加以结合,就成为和弦。通常有三和弦(三个音的和弦)、七和弦(四个音的和弦)、九和弦等概念。在音频器材的工业设计方面,和弦也叫复音,指的是多个音源同时发音。2. MIDI文件格式MIDI文件属于二进制文件,这种文件一般都有如下基本结构: 文件头+数据描述,文件头一般包括文件的类型,因为Midi文件仅以.mid为扩展名的就有0类和1类两种。 在每个Midi文件的开头都有如下内容,它们的十六进制代码为:“4d 54 68 64 00 00 00 06 ff ff nn nn dd dd”。前四个是ASCII字符“MThd”是用来鉴别是否Midi文件,而随后的四个字节是指明文件头描述部分的字节数,它总是6,所以一定是“00 00 00 06”,以下是剩余部分的含义:每一个数据有着相同的结构:时间差+事件。所谓时间差,指的是前一个事件到该事件的时间数,它的单位是tick(MIDI的最小时间单位)。它的构成比较特殊,这里要用二进制来说明。一个字节有8位,如果仅使用7位,它可以表示0127这128个数,而剩下的一位,则用来作为标志。如果要表示的数在以上范围,则这个标志为0, 这时,一个7位的字节可以表示0127tick。如果要表示的数超出了这个范围(比如240),则把标志设置成1,然后记录下高7位,剩下的留给下一个 字节,在该例中240可以分解成128*1+112,这里的1就是第一个字节要记录的,加上标志位,应该为10000001,即十六进制的81;而112 是下一个字节记录的,它的十六进制为70:所以要表示240这个时间,要写成81 70。同理,如果要表示65535tick,则可以先计算出65535=1282*3+1281*127+1280*127,然后得出结果:83 FF 7F。由此,我们反过来也可以知道如何确定时间差:只要标志位为0,则表示结束读取时间差。比如82 C0 03表示1282*2+1281*64+1280*3=40963,如果基本时间为120,则有341:043个四分音符。事件大体上可以分为音符、控制器和系统信息这几个种类。对于这些事件,都有统一的表达结构:种类+参数。对于一个音符,由于它的有效范围是0127,所以直接用007F作为“种类”,可以认为是个音符,比如3C表示中央C。而一个音符的最重要的参数是力度(也叫速度:velocity)。比如,3C 64 表示一个力度为十进制100的中央C音符。因为一个字节有8位,所以剩余的一位如果置1,再联合其他的7位,则可以表示各种信息。我们暂且无视一个音轨到底是全局的还是用于记录音符的。它们归根结底都是用来记录各种事件的,只不过有些应出现在全局音轨比较合乎逻辑而已。既然这样,我们就可以从下面的表来看事件:下表中,x表示音轨0F,比如81表示松开第二轨的音符。下表详细地列出了FF的详细情况,对于字节数由数据决定的情况,表中以“-”表示。三关键技术介绍1. 类MIDI音乐 对MIDI格式文件的文件头删除,每一条音轨也只保留时间差,声道,音符,力度四种信息。2. PWM脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信到功率控制与变换的许多领域中。随着电子技术的发展,出现了多种PWM技术,其中包括:相电压控制PWM、脉宽PWM法、随机PWM、SPWM法、线电压控制PWM等,而在镍氢电池智能充电器中采用的脉宽PWM法,它是把每一脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。可以通过调整PWM的周期、PWM的占空比而达到控制充电电流的目的。具体过程:脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。控制方法:采样控制理论中有一个重要结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同.PWM控制技术就是以该结论为理论基础,对半导体开关器件的导通和关断进行控制,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所需要的波形.按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。目前主要有以下多种方法:等脉宽PWM法、随机PWM、SPWM法、等面积法、硬件调制法、软件生成法、自然采样法、规则采样法、低次谐波消去法、梯形波与三角波比较法、线电压控制PWM、马鞍形波与三角波比较法、单元脉冲调制法、电流控制PWM、滞环比较法、三角波比较法、预测电流控制法、空间电压矢量控制PWM、矢量控制PWM、直接转矩控制PWM、非线性控制PWM、谐振软件开关PWM。主要应用于的领域有:PWM软件法控制充电电流、推力调制以及LED多方面已普遍应用。3. 分时输出 即采用时间片轮转法对多个输出同时做出响应。分时操作系统把CPU时间分成若干个时间片,然后以时间片为单位轮流为多个输出提供服务,大多数输出会用到多个时间片才能完成输出任务,因此宏观上实现了多个输出端同时输出的功能,而微观上仍是依次输出功能。四系统分析1. 数据通道模块名模块功能输入端口输出端口地址计数器对存储在ROM中音乐数据的地址计数地址加1控制信号clk_en,复位信号rstROM地址addr12:0ROM存储音乐数据ROM地址addr12:0,clk ,rstROM数据7:0data时间差计算器算出时间差clk,rst,data_time7:0,clk_en状态机给出使能信号,time_latch状态机给出信号锁存读入时间差,rst_time状态机给出置位信号重新置位读入时间差时间差data_out23:0,msb最高位为是否为1时间计数器通过计算出的时间差对其进行计数clk , rst,time_c状态机给出在等待状态若为1时间计数器对time_out计数,若为0取声道;rst_time_c状态机对当前时间差计数计满后置位时间time_out23:0比较器1比较时间差和时间计数器两个时间data_out23:0,time_out23:0比较完成信号time_result声道寄存存储声道信息clk,rst,track_in7:0, track_latch状态机给出锁存声道信号track_out7:0比较器2比较声道信息track_in7:0,声道高4位是否等于max=9比较完成信号track_result声道选择选择声道track_in7:0en0,en1,en2,en3,en4,en5音符译码翻译音符note7:0note_initial_value16:0力度译码翻译力度数据power6:0,note_initial_value16:0,middle_value13:0power_c16:0Pwm0调节占空比clk,rst,power_c16:0,note_initial_value16:0,en0,note_latch状态机给出锁存音符信号f0Pwm1调节占空比clk,rst,power_c16:0,note_initial_value16:0,en1,note_latch状态机给出锁存音符信号f1Pwm2调节占空比clk,rst,power_c16:0,note_initial_value16:0,en2,note_latch状态机给出锁存音符信号f2Pwm3调节占空比clk,rst,power_c16:0,note_initial_value16:0,en3,note_latch状态机给出锁存音符信号f3Pwm4调节占空比clk,rst,power_c16:0,note_initial_value16:0,en4,note_latch状态机给出锁存音符信号f4Pwm5调节占空比clk,rst,power_c16:0,note_initial_value16:0,en5,note_latch状态机给出锁存音符信号f5扫描电路实现六声道同时输出clk,rst,f0,f1,f2,f3,f4,f5f分频产生不同频率clk,rst各种不同频率f_out 2. 控制通道状态控制信号判断条件idelget_time使能信号clk_enclk_en=1进入get_time状态empty1msb读入时间差的最高位,time_latch锁存读入时间差msb是否等于1,若为1则为动态字节,返回get_time继续取时间差,若为零则进入等待状态get_waittime_result读入时间差和时间计数器所计之数的比较结果,time_c控制时间计数器计数time_result=1,time_c=0进入get_track状态,time_result=0,time_c=1时间计数器计数至满为止get_track使能信号clk_enclk_en=1进入get_track状态empty2track_result读入声道的高四位是否为9,track_latch锁存读入声道track_result=1进入get_note状态,若为0则声道省略,当前即为音符,进入get_power状态get_note使能信号clk_enclk_en=1进入get_note状态empty3note_latch锁存读入音符get_power使能信号clk_enclk_en=1进入get_power状态empty4rst_time读入一个时间差后置位,rst_time_c时间差计数器计数计满后置位3.上电复位电路的复位电压点由通路的串联二极管(也可以是接成二极管方式的串联管)的导通电压和串联个数决定。随着电源电压的增加,电容上的电压增加到使反相器翻转后,通路会导通,从而加快对电容的充电,使复位信号边缘更加陡峭。同时,加入,使整个电路具有迟滞效果。这种改进型上电复位电路虽然改进了复位信号的边缘并增加了迟滞,但是,该电路的复位电压点还是由二极管的导通电压或者管的阈值电压决定,复位电压点和延迟时间会随工艺波动,而且取值范围只能为导通电压或阈值电压的整数倍,不利于低电源电压设计。4. 时钟产生交叉耦合环形时钟振荡电路:4偶数级接法:对于差分环形振荡器, 振荡器的频率为1 / (2NTD ) ,其中N为级数, TD 为单元延时,理论上二级VCO可以提供更高的频率。但是,传统振荡器每个延时单元只能提供一个极点,要实现振荡必须的90相移只能在频率无限大处。所以必须对电路进行改进,以引入新的极点,使延迟单元在有限频率处得到90相移。在这个压控振荡器中,引入了交叉耦合结构构成的负跨导,从而引入新的极点,使振荡器能够起振。这种负跨导由PMOS管构成,通过调节上端PMOS 的栅电压调节频率。但是由于PMOS管的寄生效应很严重, NMOS管的寄生效应相对要小,并且PMOS的空穴迁移率要大于NMOS的电子迁移率,在同等的电位条件下, PMOS管要消耗更多的功率。因此,上图采用了由NMOS管构成的交叉耦合负跨导。五系统设计1. 数字设计流程2. 模拟设计流程3. 混合设计流程六数字部分结果1.前仿真:addr_counter地址计数器输出addr12:0地址给rom_模块,让其输出数据data7:0,按照类midi音乐的四要素时间差、声道、音符、力度进行工作。状态机control给出使能信号clk_en=1时,进入get_time状态开始读入时间差;状态机跳入下一个状态empty1,time_caculator模块对读入的时间差进行计算,此时状态机给两个信号msb(读入时间差的最高位)和time_latch(锁存读入时间差),msb若为1即为动态字节,返回get_time继续取时间差,若为0则进入等待状态,输出data_out23:0;状态机跳入下一个状态get_wait,状态机给出time_c信号,若time_c=0进入get_track状态,若为time_c=1时间计数器time_counter开始计数,直到计满当前时间差所播放的时间为止,输出time_out23:0于此同时,状态机给出time_result(读入时间差和时间计数器所计之数的比较结果)信号,time_comparator模块开始对data_out23:0 和time_out23:0进行比较,输出比较值time_result,time_result=1进入get_track状态,为0则维持get_wait状态直至计数计满为止;使能信号clk_en=1时,进入get_track状态;状态机随即跳入empty2状态,状态机给出track_latch(锁存读入声道)信号,memory_track模块对输入的声道进行锁存,输出track_out7:0,状态机给出track_result信号,track_comparator模块对输入声道的高四位进行比较,输出比较值track_result,若track_result=1则进入get_note状态,若为0则说明声道省略,当前即为音符,进入get_power状态,mux_track模块对输入的六个声道进行选择;使能信号clk_en=1时,进入下一个状态get_note; note_decoder模块对输入的音符翻译成音符对应初始值,输出note_initial_value16:0,状态机随即跳入下一个状态empty3,状态机给出note_latch(锁存读入音符)信号;使能信号clk_en=1时,进入get_power状态,power_decoder模块通过对输入的力度进行计算,算出相应的比较值然后输出power_c16:0;状态机随即跳入下一个状态empty4,状态机给出两个信号rst_time(读入一个时间差以后置位)和rst_time_c(时间差计数器计数计满后置位),在第四个状态给出是因为要在读入下一个时间差以前分别让读入的时间差和时间差计数器对应所计的数置位,否则会在上一个基础上取时间差或者计数,导致错误,所以只能在empty4状态给出。之后pwm通过对选择的声道,锁存的音符,对应的音符所对初始值计数后与比较值比较输出f,然后scan_circuit模块对f0,f1,f2,f3,f4,f5,进行快速切换,输出f。2.布局

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论