ImageVerifierCode 换一换
格式:DOCX , 页数:76 ,大小:4.82MB ,
资源ID:11509079      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11509079.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验8WAV音频播放器.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验8WAV音频播放器.docx

1、实验8WAV音频播放器实验:WAV音频播放一、实验目的:1. 进一步了解SD卡的读写,播放SD卡上的WAV格式音频文件;2. 掌握Altera公司提供的“AUDIO_IF”“SEGS_IF”两个ip模块;3. 熟悉与本工程有关的顶层文件(.v)和C文件(.c)。二、实验步骤:(一)工程的初建:新建“demo_WAVplayer”工程鼠标左键双击桌面上的“Quartus ”快捷方式图标,耐心等待片刻,即可启动 “Quartus”设计页面,如图8-1所示。在“Quartus”设计页面内,鼠标左键单击File New Project Wizard,弹出“New Project Wizard:intr

2、oduction”,如图8-2所示。鼠标左键单击“next”按钮跳过此页,进入“New Project Wizard: Directory, Name, Top-level entity”页面:“the working directory for this project”(工程路径)可以任意填写,例如:“E:demodemo_WAVplayer”。“the name of this project”(工程名字)填写为“demo_wav”。“the name of the top-level design entity for this project”(工程顶层实体名称)会自动与工程名字相同

3、,也为“demo_wav”。如图8-3所示,这里需要注意:编写顶层文件时注意这个名字。鼠标左键单击“next”按钮,会弹出如图8-4所示的问句。鼠标左键单击“是”按钮,进入“Add Files page 2 of 5”页,如图8-5所示。这里还没有建立任何文档,再加上后面可以添加,故鼠标左键单击“next”按钮。鼠标左键单击“Next”按钮后进入“Family & Device Settings page 3 of 5”页面。在“Family & Device Settings page 3 of 5”页面:“Device family”栏里的“family”选择“Cyclone II”;“A

4、vailable devices”栏里选择“EP2C70F896C6”器件,其它为缺省设置,如图8-6所示。鼠标左键单击“Finish”按钮,完成工程的初建。新建的“Quartus -E:/demo/demo_WAVplayer/demo_wav-demo_wav”工程页面如图8-7所示。在“Quartus -E:/demo/demo_WAVplayer/demo_wav-demo_wav”工程页面,“entity”栏下,可以看到“Cyclone : EP2C70F896C6”和工程名字“demo_wav”。如果“entity”栏下可以看到的不是“Cyclone : EP2C70F896C6”

5、,比如是“Stratix : AUTO”的话,请用鼠标左键双击“Stratix : AUTO”, 或者光标指着“Stratix :AUTO”然后鼠标单击右键,在下拉菜单里点击“settings”,两种方法都能使“Settings-demo_wav”的设置页弹出,在“Device”中,可以重新设置成如图8-6所示。初建的“Quartus -E:/demo/demo_WAVplayer/demo_wavt-demo_wav”工程页面,会自动保存在路径“E:demodemo_WAVplayer”下。任何时候想要完成工程后续设计,可以再次打开此路径下的工程文件夹“demo_WAVplayer”,如图8

6、-8所示。鼠标左键双击带有蓝色“Quartus”图标的“demo_wav”文件,就可以打开“Quartus -E:/demo/demo_WAVplayer/demo_wavt-demo_wav”工程页面。(二)拷贝ip到工程文件夹“demo_WAVplayer”里在“Quartus -E:/demo/demo_WAVplayer/demo_wav-demo_wav”工程页面内,鼠标左键单击“open”按钮弹出“打开”对话框。在“打开”对话框的“查找范围”里,找到路径为“D:/SOPC实验资料/WAVplayer资料” 中的ip核文件夹,把此ip核文件夹拷贝到路径“E:demodemo_WAVp

7、layer”下,然后关闭“打开”对话框,如图8-9所示。 “SOPC Builder”工具判断ip核模式正确的话,会自动把此ip核加到共用库中。(三)利用“SOPC Builder”工具初建硬件系统在“Quartus -E:/demo/demo_WAVplayer/demo_wav-demo_wav”工程页面,鼠标左键单击Tools SOPC Builder,弹出“Create New System”对话框。在“Create New System”对话框里:“System Name”项后输入“nios0”;“Target HDL”项一般选择“Verilog”;如图8-10所示。鼠标左键单击“O

8、K”按钮,完成硬件系统的初建。“Target HDL”项一般选择“Verilog”,表示“SOPC Builder”会将你稍后所配置的IP核,以Verilog表示,若你熟悉VHDL,也可以选择VHDL。这里的设定不是限制了日后只能用Verilog或VHDL写代码,因为Quartus II本来就允许Verilog与VHDL混合編程,也就是说Verilog的module可以使用VHDL的entity,VHDL的entity可以使用Verilog的module,最后都能顺利编译。配置此工程硬件系统的“SOPC Builder”工具页面如图8-11所示,由于已经把ip拷贝到工程文件夹“demo_WAV

9、player”中,“SOPC Builder”工具页面的“System Contents”栏里“Component Library”下,可以看到增加了“Terasic Technologies Inc.”,此目录下面有两个新IP硬件核“AUDIO_IF”和“SEG7_IF”。在“SOPC Builder”工具页面,添加的硬件会在默认空白区出现,并且可以修改、删除,在默认空白区还显示硬件的主从连接。这里需要注意:如果配置硬件的过程中暂停设计,关闭“SOPC Builder”工具页面会弹出一个问句,如图8-12所示。鼠标左键单击“Save”按钮,建立的硬件系统信息就保存到路径“E:/demo/de

10、mo_WAVplayer”下的文件“nios0.sopc”中。如果需要再次打开此工程的“SOPC Builder”工具页面重续硬件配置的话,可以先打开“Quartus -E:/demo/demo_WAVplayer/demo_wav-demo_wav”工程页面(方法如图8-8所示),鼠标左键单击工程页面的“open”按钮弹出“打开”页面。在“查找范围”找到路径“E:demodemo_WAVplayer”下的“nios0.sopc”文件,鼠标左键双击 “nios0.sopc” 文件即可打开本工程的“SOPC Builder”工具页面。(四)配置硬件1. 定义时钟(clock)确认“SOPC Bu

11、ilder”工具页面的“Target / Device Family”是“Cyclone II”。在如图8-13所示的“Clock Settings”栏里可以看到50.0MHz,代表Nios II CPU在DE28-70可以运行在50.0MHz,但这时CPU降频在跑,正常情況下,Nios II CPU在DE28-70可以运行100.0MHz,所以可以用PLL将clk倍频成100.0Mhz。2添加用来保存“Nios”程序的片上存储器(On-Chip Memory)“On Chip Memory”在FPGA芯片内,是DE2-70上所有存储器中存储量最小,但是速度最快的存储器。在“SOPC Buil

12、der”工具页面,鼠标左键单击System Contents Component Library Memories and Memory Controllers On Chip On Chip Memory(RAM or ROM) Add 。弹出“on chip memory”设置页面,如图8-14所示。在“on chip memory”设置页面:“Total Memory Size”设置为80960;其他为缺省设置,鼠标左键单击“Finish”按钮。不用管状态框里的错误,添加 Nios处理器后会自动消失。“Total memory size”与能使用的M4K存储器数量、FPGA、Nios I

13、I CPU和Megafunction(如fcfifo)都会影响“On8-chip Memory”的size,本教程使用 80k。“On Chip Memory”会在“SOPC Builder”工具页面默认空白区有显示如图8-15所示。如果想修改“On Chip Memory”的设置,可以左键双击硬件名称,会重新弹出如图18-14所示的设置页面。对于其他硬件来说,方法类似。把“onchip_memory2_0”改成“onchip_mem”。3添加Nios II/s处理器(Nios Processor)在“SOPC Builder”工具页面,鼠标左键单击System ContentsCompone

14、nt LibraryNios II Processor Add,弹出“Nios Processor”设置页面。在“Nios Processor”设置页面:设置Nios II/f处理器, “Reset Vector”、“Exception Vector”都选择“on chip memory” ,如图8-16所示。鼠标左键单击“Finish”按钮,把“cpu_0”改成“cpu”。4添加调试接口(JTAGUART)在“SOPC Builder”工具页面,鼠标左键单击System ContentsComponent LibraryInterface Protocols Serial JTAG UART

15、 Add,弹出“JTAG UART”设置页,如图8-17所示。使用缺省设置,鼠标左键单击 “Finish”按钮。把“jtag_uart_0”改成“jtag_uart”。JTAG UART是PC与SOPC进行序列传输的一种方式,也是Nios II CPU标准的输出/输入设备。如printf()通过JTAG UART,经过USB Blaster将输出结果显示在PC的Nios II EDS上的console,scanf()通过USB Blaster经过JTAG UART将输入传给SOPC。5添加两个内部定时器(Interval Timer)在“SOPC Builder”工具页面,鼠标左键单击Syst

16、em ContentsComponent LibraryPeripherals Microcontroller Peripherals Interval Timer Add,弹出“Interval Timer”设置页,按照图8-18所示设置,鼠标左键单击“Finish”按钮。把“timer_0”改成“timer”。按照相同的方法再增添一个“timer_1”,把名字改写成“timer_stamp”。6添加系统ID(System ID)在“SOPC Builder”工程页面,鼠标左键单击System ContentsComponent LibraryPeripherals Debug and Pe

17、rformance System ID PeripheralAdd,弹出“System ID peripheral”设置页面,如图8-19所示。使用缺省设置,鼠标左键单击“Finish”按钮。把“sysid_0”的名称改为“sysid”。“SOPC Builder”会使用System ID为每个系统提供识别符号,Nios II EDS可以识别符号防止使用者往FPGA上烧录了与“.ptf”不符合的“.sof”。7添加红绿两色LED连接PIO在“SOPC Builder”工具页面,鼠标左键单击System ContentsComponent LibraryPeripheralsMicrocontr

18、oller Peripherals PIO(Parallel I/O) Add。弹出“PIO(Parallel I/O)”多项设置页面。 “Width”设置成18位输出方式,其他使用缺省值,如图8-20所示。鼠标左键单击“Finish”按钮,将名称改为“pio_red_led”。按照同样方法,设置“Width”为8位输出方式,其他使用缺省值,将名字改为“pio_green_led”8添加栓扣和按键开关输入PIO在“SOPC Builder”工程页面,鼠标左键单击System ContentsComponent LibraryPeripherals Microcontroller Periphe

19、rals PIO(Parallel I/O) Add,弹出“PIO(Parallel I/O)”多项设置页面。默认进入“Parameter Settings”的“Basic Settings”设置页面,如图8-21所示。在此页设置:“Width”为 4; “Direction” 为 input。鼠标左键单击图8-21所示页面的“input options”,进入“input options”设置页面。在“input options”设置页面:“Edge capture register”栏的 “Sychronously Capture” 前打勾,选择 “Falling edge”;在“Inte

20、rrupt”栏“Generate IRQ” 前打勾,然后选中 “Edge”。如图8-22所示,然后鼠标左键单击“Finish”按钮,将名称改为“pio_button”。这里需要注意:一定要选中“Edge”方式产生中断,否则按键按下后会连续不断地产生中断,导致CPU死锁。在“SOPC Builder”工程页面,鼠标左键单击System ContentsComponent LibraryPeripherals Microcontroller Peripherals PIO(Parallel I/O) Add,弹出“PIO(Parallel I/O)”多项设置页面。默认进入“Parameter Se

21、ttings”的“Basic Settings”设置页面,如图8-23所示。在此页设置:“Width”为 18; “Direction” 为 input;其他为默认值,将该硬件的名称改为“pio_switch”。9添加PLL本实验需要三个时钟:(1) 100MHz的C0,用于系统硬件;(2) 100MHz的C1,用于“sdram”;(3) 18.518MHz的C2 ,用于“AUDIO”。这里需要注意:用于“sdram”的c1的“Clock phase shift”设置为“-65ps”。在“SOPC Builder”工具页面,鼠标左键单击System ContentsComponent Libr

22、ary PLL PLL Add。在弹出的对话框里,鼠标左键单击“Launch Alteras ALTPLL MegaWizard”,使按钮周框内侧出现虚方框,如图8-24所示。鼠标左键单击“next”按钮,进入ALTPLL多项设置页面。默认进入的页面是: 1 parameter settings栏的“General / Modes”设置页,显示为: 1 parameter settings为深兰色背景,“General / Modes”为General / Modes 。如图8-25左上角所示,此页缺省设置。鼠标左键单击 2 output clocks栏,默认转换到“c0-Core/Exter

23、nal output clocks”的设置页面,如图8-26所示。在“c0-Core/External output clocks”的设置页面: 2 output clocks为深兰色背景,“clk c0”为clk c0。“clk c0”各参数按照图8-26所示页面设置。 鼠标左键单击2 output clocks栏下的“clk c1”,进入“c1-Core/External output clocks”的设置页,页面显示: 2 output clocks为深兰色背景,“clk c1”为clk c1,如图8-27左上角所示。“clk c1”的设置按照图8-27所示。 鼠标左键单击2 outpu

24、t clocks栏下的“clk c2”,进入“c2-Core/External output clocks”的设置页,此时页面里显示: 2 output clocks为深兰色背景,“clk c2”为clk c2,如图8-28所示。“clk c2”按照图8-28所示设置。鼠标左键单击“Finish”按钮,并且单击所经过的所有页面的“Finish”按钮。设置了PLL后,在本工程硬件系统的“SOPC Builder”工具页面,“Clock Settings” 栏下:“clk_0”改成“clk_50”;“pll_0_c0” 改名为“pll_ c0_cpu”;“pll_0_c1”,改名为“pll_ c1

25、_memory”;“pll_0_c2”,改名字为“pll_ c2_audio”;如图8-29所示。10添加SDRAM控制器 DE270多媒体开发板上有两片容量为4M*16*4比特的SDRAM(IS42S16160B)。在“SOPC Builder”工具页面,鼠标左键单击System ContentsComponent Library Memories and Memory Controllers SDRAM SDRAM Controller Add。进入“SDRAM Controller”的多项设置页面,默认进入“Parameter Settings”的 Memory Profile 设置页,

26、此页面的设置严格按照如图8-30所示。图8-30所示页面完成后,鼠标左键单击“Timing”,进入Timing 设置页面。严格按照如图8-31所示设置各参数,设置完成后,鼠标左键单击“Finish”按钮。 把名称改为“sdram_u1”。按照上面同样方法、同样参数再添加一个SDRAM控制器,把名称改为 “sdram_u2”。11. 添加LCD显示驱动(Character LCD)在“SOPC Builder”工具页面,鼠标左键单击System ContentsComponent Library Peripherals Display Character LCD Add,弹出“Character

27、 LCD”设置页面,缺省设置,鼠标左键单击“Finish”,把名字改为“lcd”。12. 添加两个“i2c”PIO在“SOPC Builder”工程页面,鼠标左键单击System ContentsComponent LibraryPeripherals Microcontroller Peripherals PIO(Parallel I/O) Add,弹出“PIO(Parallel I/O)”多项设置页面。“Width”设置成1位输出方式,其他使用缺省值,如图8-32所示。鼠标左键单击“Finish”按钮,将该硬件的名称改为“i2c_sclk”。在“SOPC Builder”工程页面,鼠标左键

28、单击System ContentsComponent LibraryPeripherals Microcontroller Peripherals PIO(Parallel I/O) Add,弹出“PIO(Parallel I/O)”多项设置页面。“Width”设置成“1” ;“Direction”选择为“Bidirectional(tristate) ports”;其他为缺省值,如图8-33所示,将名称改为“i2c_sdat”。13. 添加七段显示驱动(SEG7_IF)在“SOPC Builder”工具页面,鼠标左键单击System ContentsComponent LibraryTera

29、sic Technologies Inc SEG7_IFAdd,弹出“SEG7_IF”设置页,全部缺省设置,鼠标左键单击“Finish”,该硬件名字改为“SEG7”。14. 添加音频连接(AUDIO_IF)在“SOPC Builder”工具页面,鼠标左键单击System ContentsComponent LibraryTerasic Technologies Inc AUDIO_IFAdd,弹出“AUDIO_IF”设置页,全部缺省设置,鼠标左键单击“Finish”,该硬件名字改为“AUDIO”。15添加SD卡所用PIODE2-70多媒体开发板上,SD卡没有控制器,只需设置四个PIO即可。(1

30、) 添加“sd_clk”在“SOPC Builder”工具页面,鼠标左键单击Component Library Peripherals Microcontroller Peripherals PIO(Parallel I/O) Add,弹出“PIO(Parallel I/O)”多项设置页面,默认进入“Parameter Settings”的“Basic Settings”设置页面。在“Basic Settings”设置页面:“Width”设为 1;“Direction”设置为 “output ports only”;其它参数使用缺省值,如图8-34所示。将名字改为“sd_clk”。(2) 添加

31、“sd_cmd”、“sd_dat”和“sd_dat3”在“SOPC Builder”工具页面,鼠标左键单击Component Library Peripherals Microcontroller Peripherals PIO(Parallel I/O) Add,弹出“PIO(Parallel I/O)”多项设置页面,默认进入“Parameter Settings”的“Basic Settings”设置页面。在“Basic Settings”设置页面:“Width”设为 1;“Direction”设置为 “Bidrectional(tristate) ports”,如图8-35所示。鼠标左键单击“input options”,进入“input options”设置页面。在“input options”设置页面:“Edge capture register”栏的 “Sychronously Capture” 前打勾,选择 “either edge”

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1