实验报告
课程名称: 数字系统设计实验1 指导老师: 成绩:__________________
实验名称: 音乐播放实验实验类型: 设计型同组学生姓名:_ 无
一、实验目的和要求(必填) 二、实验内容和原理(必填)
三、主要仪器设备(必填) 四、操作方法和实验步骤
五、实验数据记录和处理六、实验结果与分析(必填)
七、讨论、心得
实验目的和要求
1、掌握音符产生的方法,了解DDS技术的应用。
2、了解AC97音频接口电路的应用。
3、掌握系统“自顶而下”的设计方法。
实验内容和原理
i实验内容:设计一个音乐播放器
ii实验原理:系统划分为主控制器(mcu)、乐曲读取(song_reader)、音符播放器(note_player)、AC97音频接口(codec_conditioner)和ac97_if五个子模块。
系统图如下:
mcu接收按键信息,通知song_reader是否要播放(play)以及播放播放哪一首歌曲(song)。
song_reader模块根据mcu要求逐个取出音符{note,duration}送给note_player,乐曲播放完毕回复(song_done)给mcu。
note_player接收音符后以48kHz速率送出该音符的正弦波样品给AV97音频接口模块。当一个音符播放结束,向song_reader回复note_done。
codec_conditioner、ac97_if负责与AC97接口工作。
另外,按键处理模块完成输入同步化、防颤动和脉冲变换等功能。
主要仪器设备
带modelsim和ISE 的PC机,XUP Virtex-II Pro 开发系统一套
设计过程
音符播放器(note_player)的设计
主要任务有:
从song_reader模块接收所需播放的音符信息{note,duration};
根据note值找出DDS的相位增量;
以48khz的速率从sine rom取出正弦样品送给AC97接口模块;
当一个音符播放完毕,向song_rom模块索取新的音符。
Note_palyer的结构框图如下:
各个端口含义如下:
DDS设计
DDS的主要思想是,从相位的概念除法合成所需的波形,其结构由相位累加器,相位-幅值转换器、D/A转换器和低通滤波器组成。Sine ROM中存放一个完整的正弦信号样品,其映射关系为s(i)=(2^(n-1)-1)*sin(2*pi*i/2^n)。其中,m为Sine ROM的地址线位数,n为rom的数据线宽度,s(i)数据形式为补码。f为取样时钟clk的频率,k为相位增量。输出正弦信号频率fo=k*f/2^m。基本原理框图如下:
DDS的优化:为了减少硬件复杂性,降低芯片面积和功耗,提高芯片速度,对DDS进行了优化,利用正弦波的对称性,只需要存储四分之一的正弦信号样品就可以提供整个波形。需要注意的是:
Sine ROM存放的是四分之一的波形,因此一个完整的正弦波形存储容量需要多两位。
四分之一周期未给出地址为1024时的值,这一点取1023的值(1023时样品已经达到最大值)。
为了得到准确的正弦频率,本实验的相位增量为22位,其中小数部分为10位。
根据地址的高两位,我们可以把正弦信号分为四个区域,如右图所示
在每个区域的地址和数据的处理方法见下表
Sine_reader代码
(i)相位累加器full_adder :
module full_adder(in1,in2,adderout,co);
parameter N=1;
input[N-1:0] in1,in2;
output[N-1:0] adderout;
output reg co;
wire [N-1:0] in1,in2;
reg [N-1:0] adderout;
always @ (in1 or in2)begin
{co,adderout}=in1+in2;
end
endmodule
(ii)地址处理模块address_dealer:
module address_dealer(raw_addr,rom_addr);
input wire [21:0] raw_addr;
output reg [9:0] rom_addr;
always@(*)
begin
case(raw_addr[21:20])
2'b00:rom_addr<=raw_addr[19:10];
2'b01:
if(raw_addr[20:10]==1024) rom_addr<=1023;
else rom_addr<=(~raw_addr[19:10]+1);
2'b10:rom_addr<=
音乐播放器实验报告 来自淘豆网m.daumloan.com转载请标明出处.