《语音芯片ASIC设计.pptx》由会员分享,可在线阅读,更多相关《语音芯片ASIC设计.pptx(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、设计部分设计部分功能描述功能描述顺序播放功能:将所有歌曲顺序播放一遍。顺序播放功能:将所有歌曲顺序播放一遍。单曲循环播放功能:对指定的歌曲进行循环播放。单曲循环播放功能:对指定的歌曲进行循环播放。循环播放功能:所有歌曲顺序循环播放。循环播放功能:所有歌曲顺序循环播放。随机播放功能:随机选择歌曲进行播放。随机播放功能:随机选择歌曲进行播放。快进功能:对音乐进行快速播放。快进功能:对音乐进行快速播放。暂停功能:对播放中音乐进行暂停。暂停功能:对播放中音乐进行暂停。歌曲选择功能:选择播放哪首音乐。歌曲选择功能:选择播放哪首音乐。回放功能:可以对歌曲进行上一句或上一首的回放。(带记忆功能)回放功能:可
2、以对歌曲进行上一句或上一首的回放。(带记忆功能)快倒功能:可以对歌曲进行向后倒一段时间在播放。快倒功能:可以对歌曲进行向后倒一段时间在播放。I/OI/O端口优化:最少端口实现以上功能。端口优化:最少端口实现以上功能。歌曲自动加载刷新功能:歌曲自动加载刷新功能:(暂未实现暂未实现)。第1页/共30页顶层模块顶层模块信号描述信号描述信号信号I/O宽宽 度度功能描述功能描述rstI1全局异步复位信号(高电平有效)全局异步复位信号(高电平有效)clk2mhzI12MHz时钟信号时钟信号fastI1快速播放信号输入端(高电平有效)快速播放信号输入端(高电平有效)switchI1歌歌曲曲模模式式选选择择信
3、信号号(switch为为低低电电平平“0”选选择择“曲曲目目”,高高电电平平“1”选择选择“句子句子”)autoI1自自动动播播放放信信号号(auto高高电电平平时时按按顺顺序序循循环环播播放放全全部部歌歌曲曲,在在auto信信号号为为低电时低电时,根据根据switch和和mode信号选择相应歌曲模式播放)信号选择相应歌曲模式播放)haltI1暂停信号(高电平有效)暂停信号(高电平有效)spksO1音频信号输出(上升沿触发)音频信号输出(上升沿触发)passedI1上一句或者上一首跳转信号(上升沿触发)上一句或者上一首跳转信号(上升沿触发)modeI2模模式式选选择择信信号号“00”顺顺序序播
4、播放放 “01”随随机机播播放放 “10”单单曲曲循循环环“11”快进跳转快进跳转沿触发有效沿触发有效第2页/共30页顶层模块顶层模块整体框图第3页/共30页顶层模块顶层模块具体信号具体信号第4页/共30页模块关联模块关联内部框图第5页/共30页ADDR ADDR模块模块 信号信号I/OI/O宽度宽度功能描述功能描述clkI I1节拍发生器节拍发生器产生的产生的4Hz或或8hz时钟时钟信号信号 EnI I1使能端使能端LdI I1置数端置数端RstI I1异步复位信异步复位信号(高电平号(高电平有效)有效)Data_inI I9数据输入数据输入Addr_outO O9数据输出数据输出功能描述功
5、能描述:它的功能是按照音乐节拍输出相应音符。在正常播放模式下,该计数器的时钟频率为2Hz,快速播放模式为4Hz。当EN为高电平时,LD为低电平时,每来一个时钟上升沿,地址计数器加1,输出给乐曲数据存储器ROM。第6页/共30页ROMROM模块信号信号I/OI/O宽度宽度功能描述功能描述addraddrI I9 9当前音符在当前音符在ROMROM中中的地址的地址doutdoutO O5 5ROMROM输出的音符数输出的音符数据与据与indexindex端口端口相连接相连接功能描述:功能描述:ROM中存储的乐谱数据,以1/4拍来转化,ROM总共要存储437个数据,所以ROM的地址位宽为9位。因为乐
6、谱只用到21个音符,所以ROM的输出为5位。第7页/共30页RANDOM RANDOM模块 信号信号I/OI/O宽度宽度功能描述功能描述clkI I1节拍发生节拍发生器产生的器产生的4Hz或或8hz时钟信号时钟信号RstI I1异步复位异步复位信号(高信号(高电平有效)电平有效)RandomO O3输出随机输出随机数数功能描述功能描述:产生随机数传给状态机,由状态机决定播放第几首歌。第8页/共30页 音符解码模块音符解码模块 音频解码模块音频解码模块所示为音频解码模块,它的功能是将所示为音频解码模块,它的功能是将ROM输出输出的音符数据转换成该音符所对应的初始值,输出的音符数据转换成该音符所对
7、应的初始值,输出给数控分频模块,数控分频模块根据该初始值对给数控分频模块,数控分频模块根据该初始值对2MHz2MHz时钟进行分频。时钟进行分频。表表6 音频解码端口信号描述音频解码端口信号描述信号信号I/OI/O宽度宽度功能描述功能描述indexindexI I4 4ROMROM输出的音符数输出的音符数据据tonetoneO O1313音符所对应的初音符所对应的初始值始值第9页/共30页信号I/O宽度 功能描述toneI13音符所对应的初始值音符所对应的初始值clk2mhzI12mhz信号enoI1使能信号haltI1暂停信号rstI1全局异步复位信号全局异步复位信号(高电平有效)(高电平有效
8、)spksO1将信号放大发声数控分频模块数控分频模块数控分频模块数控分频模块所示为数控分频模块,它的功能是根据不同音符的初始值对所示为数控分频模块,它的功能是根据不同音符的初始值对2MHz2MHz的时钟进行相应的分的时钟进行相应的分频,产生该音符所对应频率的波形。分频后所得波形由频,产生该音符所对应频率的波形。分频后所得波形由spks端口输出。数控分频模块端口输出。数控分频模块由主分频模块和二分频模块组成。由主分频模块和二分频模块组成。第10页/共30页memomemo记忆模块记忆模块 memo记忆模块记忆模块信号信号I/OI/O宽度宽度功能描述功能描述rstrstI I1 1全局异步复位信全
9、局异步复位信号(高电平有效)号(高电平有效)ClkClkI I1 1节拍发生器产生节拍发生器产生的的4Hz4Hz或或8hz8hz时钟时钟信号信号addraddrI I9 9快进信号(高电快进信号(高电平有效)平有效)cnumcnumO O2 2记录当前曲目编记录当前曲目编码码pnumpnum0 02 2记录过去曲目编记录过去曲目编码码 memo记忆模块的作用是记忆记忆模块的作用是记忆当前播放地址。比如在顺序播放当前播放地址。比如在顺序播放模式下第一首歌曲到第二首歌曲,模式下第一首歌曲到第二首歌曲,passed信号在播放第二首歌曲有效,信号在播放第二首歌曲有效,歌曲播放第一首首地址。在随机歌曲播
10、放第一首首地址。在随机播放模式下,第一首歌曲随机播播放模式下,第一首歌曲随机播放到第三首歌曲,放到第三首歌曲,passed信号于第信号于第三首歌曲有效,歌曲播放第一首三首歌曲有效,歌曲播放第一首首地址。同理上一曲模式。首地址。同理上一曲模式。第11页/共30页验证规划验证规划通过提取项目中可能发生的各种情况来验证项目的正确性。通过提取项目中可能发生的各种情况来验证项目的正确性。第12页/共30页模式间跳转验证模式间跳转验证单曲循环模式,如图单曲循环模式,如图:正在进行模式间的转换,如图正在进行模式间的转换,如图:第13页/共30页模式间跳转验证模式间跳转验证由单曲循环跳转到了顺序播放模式由单曲
11、循环跳转到了顺序播放模式。第14页/共30页典型验证典型验证1.上一句功能连跳测试2.验证单曲循环下的各种模块功能(上一曲)3.随机播放模式下暂停信号测试4.第一首未放完进行上一首功能测试第15页/共30页连跳测试连续给passed1信号有效,测试如下Atuo=1时,switch=1,passed=1 1000ns1100ns有效Passed1在1000ns时歌曲跳到上一句,随后100ns再次有效,歌曲跳到当前上一句,实现连跳功能。连跳测试连跳测试第16页/共30页Atuo=0,mode=00,播放到第3首是mode=10,第3首歌循环。Passed1=1,第三首到第二首。单曲循环模块功能单曲
12、循环模块功能第17页/共30页随机模式暂停信号随机模式暂停信号Atuo=0,mode=01,passed1=1时,因为是随机模式,从第三首歌跳到第一首。第18页/共30页随机模式暂停信号随机模式暂停信号随机模式暂停信号有效随机模式暂停信号有效第19页/共30页第一首未放完进行上一首功能测试第一首未放完进行上一首功能测试Atuo=1时,将paseed1信号于第一首播放中加入,跳到第一首歌曲首地址,上一首功能实现第20页/共30页状态转换图状态转换图第21页/共30页状态机断言状态机断言define assert_clk(arg)assert property(posedge clk)disabl
13、e iff(rst)arg)a_fsm_asyn_rst:assert property(posedge clk)rst|-(state=Idle);a_fsm_state_coding:assert_clk($onehot0(state)=1);a_fsm_norm_trans1:assert_clk(state=S0)|=(state=S1);a_fsm_norm_trans2:assert_clk(state=S2)|(state=S3)|-($past(state=S1)=1);a_fsm_norm_trans3:assert_clk(state=S2)|(state=S3)|=(st
14、ate=S0);a_fsm_norm_trans4:assert_clk(state=S1)&$rose(accl)|-#1 state=S2#1 state=S0#1 state=S1);a_fsm_norm_trans5:assert_clk(state=S1)&$rose(passed)|-#1 state=S3#1 state=S0#1 state=S1);a_fsm_forbid_trans1:assert_clk($stable(rst)&(state=Idle)|-($past(state=S0)=0)&($past(state=S2)=0)&($past(state=S3)=0
15、);第22页/共30页状态机断言状态机断言断言通过率整体断言第23页/共30页状态机局部断言例一状态机局部断言例一局部trans2断言:正常状态下,当前状态是S2(0100)快倒状态,或者S3(1000)回放状态,上一个状态一定是S1(0010)播放状态。第24页/共30页状态机局部断言例二状态机局部断言例二局部trans4断言:当快倒信号有效时(mode=2b11),状态会从播放状态(S1)跳到快到状态(S2)再到置数状态(S0)再回播放状态(S1),如图0010-0100-0001-0010。第25页/共30页随机断言随机断言断言通过率整体断言第26页/共30页地址计数器断言地址计数器断言断言通过率整体断言第27页/共30页Rom表断言表断言断言通过率整体断言第28页/共30页项目总结项目总结 通过本次项目,我们了解了数字电路的设计流程,掌握了数字电路的编写与仿真,掌握了SVA断言的基本原理和语法,当然我们的设计还有很多不足,如没有实现自动加载刷新ROM表功能,信号发生冲突怎么处理等,我们会在今后完善我们设计。我们所收获的不仅仅是专业上的知识,更多的是能力上的培养。在项目的设计过程中了,我们进一步加强了自身的学习能力、团队合作能力和解决问题的能力。本次项目的设计为以后的学习、工作提供了重要的经验。第29页/共30页感谢您的观看!第30页/共30页
限制150内