ote_player的note_done(音符播放结束标志)产生脉冲信号时,音符标记note和音符持续时间duration会相应产生变化,且new_note(新音符播放标志)亦会产生脉冲信号。符合要求。主控制模块mcu设计主控制器mcu模块有响应按键信息,控制系统播放两大任务。根据要求,mcu的工作流程图如下:端口描述如下:设计出一段式状态机:modelsim仿真如下:由图可知1、上升沿有效2、当00曲播放完之后出现高电平脉冲song_done信号表示结束3、出现“下一曲信号”(next出现一个高电平脉冲)之后,歌曲信号变化发生变化(song即乐曲序号从01跳变至10);4、在“曲终”信号(即乐曲序号发生变化)出现之后,reset_player就会起用,用于复位note_player模块,符合要求。4.模块ac97_if和模块codec_conditioner的介绍模块ac97_if为fpga与音频硬件接口电路。要求每当new_frame变为高电平的同时必须给PCM_Playback_left、PCM_Playback_right提供新的样品,且样品保持不变直到new_fram再次变为高电平为止。模块codec_conditioner的任务就是满足ac97_if的这一要求。模块codec_conditioner采用双缓冲寄存器解决这一问题。首先,new_frame信号经同步化处理成为generate_next_sample周期信号,generate_next_sample脉冲宽度为一个时钟周期,在generate_next_sample高电平输出next_sample,而generate_next_sample低电平时锁定该样品。实验已经为我们提供了这两个模块的代码。5.music_player的顶层模块设计根据实验原理所述,其顶层模块代码实验已给出Modelsim仿真如下