实验9MP3音频录放Word文档下载推荐.docx
《实验9MP3音频录放Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验9MP3音频录放Word文档下载推荐.docx(57页珍藏版)》请在冰豆网上搜索。
鼠标左键单击“是”按钮,进入“AddFiles[page2of5]”页,如图9-5所示。
这里还没有建立任何文档,再加上后面可以添加,故鼠标左键单击“next”按钮。
鼠标左键单击“Next”按钮后进入“Family&
DeviceSettings[page3of5]”页面。
在“Family&
DeviceSettings[page3of5]”页面:
“Devicefamily”栏里的“family”选择“CycloneII”;
“Availabledevices”栏里选择“EP2C70F896C6”器件,其它为缺省设置,如图9-6所示。
鼠标左键单击“Finish”按钮,完成工程的初建。
新建的“QuartusII-E:
/demo/demo_MP3/demo_mp3-demo_mp3”工程页面如图9-7所示。
在“QuartusII-E:
/demo/demo_MP3/demo_mp3-demo_mp3”工程页面,“entity”栏下,可以看到“CycloneII:
EP2C70F896C6”和工程名字“demo_mp3”。
如果“entity”栏下可以看到的不是“CycloneII:
EP2C70F896C6”,比如是“StratixII:
AUTO”的话,请用鼠标左键双击“StratixII:
AUTO”,或者光标指着“StratixII:
AUTO”然后鼠标单击右键,在下拉菜单里点击“settings”,两种方法都能使“Settings-demo_mp3”的设置页弹出,在“Device”中,可以重新设置成如图9-6所示。
初建的“QuartusII-E:
/demo/demo_MP3/demo_mp3-demo_mp3”工程页面,会自动保存在路径“E:
\demo\demo_MP3”下。
任何时候想要完成工程后续设计,可以再次打开此路径下的工程文件夹“demo_MP3”,如图9-8所示。
鼠标左键双击工程文件夹中带有蓝色“Quartus”图标的“demo_mp3”文件,就可以打开“QuartusII-E:
/demo/demo_MP3/demo_mp3-demo_mp3”工程页面。
(二)拷贝IP到工程文件夹“demo_MP3”里
/demo/demo_MP3/demo_mp3-demo_mp3”工程页面内,鼠标左键单击“open”按钮弹出“打开”对话框。
在“打开”对话框的“查找范围”里,找到路径为“D:
/SOPC实验资料/MP3资料”中的ip核文件夹,把此ip核文件夹拷贝到路径“E:
\demo\demo_MP3”下,如图9-9所示,然后关闭“打开”对话框。
“SOPCBuilder”工具判断ip核模式正确的话,会自动把此ip核加到共用库中。
(三)利用“SOPCBuilder”工具初建硬件系统
/demo/demo_MP3/demo_mp3-demo_mp3”工程页面,鼠标左键单击Tools‐>
SOPCBuilder,弹出“CreateNewSystem”对话框。
在“CreateNewSystem”对话框里:
“SystemName”项后输入“nios0”;
“TargetHDL”项一般选择“Verilog”;
如图9-10所示。
鼠标左键单击“OK”按钮,完成硬件系统的初建。
“TargetHDL”项一般选择“Verilog”,表示“SOPCBuilder”会将你稍后所配置的IP核,以Verilog表示,若你熟悉VHDL,也可以选择VHDL。
这里的设定不是限制了以后只能用Verilog或VHDL写代码,因为QuartusII本来就允许Verilog与VHDL混合编程,也就是说Verilog的module可以使用VHDL的entity,VHDL的entity可以使用Verilog的module,最后都能顺利编译。
配置此工程硬件系统的“SOPCBuilder”工具页面如图9-11所示,由于已经把ip拷贝到工程文件夹“demo_MP3”中,“SOPCBuilder”工具页面的“SystemContents”栏里“ComponentLibrary”下,可以看到增加了“TerasicTechnologiesInc.”,此目录下面有两个新IP硬件核“AUDIO_IF”和“SEG7_IF”。
在“SOPCBuilder”工具页面,添加的硬件会在默认空白区出现,并且可以修改、删除,在默认空白区还显示硬件的主从连接。
这里需要注意:
如果配置硬件的过程中暂停设计,关闭“SOPCBuilder”工具页面会弹出一个问句,如图9-12所示。
鼠标左键单击“Save”按钮,建立的硬件系统信息就保存到路径“E:
/demo/demo_MP3”下的文件“nios0.sopc”中。
如果需要再次打开此工程的“SOPCBuilder”工具页面重续硬件配置的话,可以先打开“QuartusII-E:
/demo/demo_MP3/demo_mp3-demo_mp3”工程页面(方法如图9-8所示),鼠标左键单击工程页面的“open”按钮弹出“打开”页面。
在“查找范围”找到路径“E:
\demo\demo_MP3”下的“nios0.sopc”文件,鼠标左键双击“nios0.sopc”文件即可打开本工程的“SOPCBuilder”工具页面。
(四)配置硬件
1.定义时钟(clock)
确认“SOPCBuilder”工具页面的“Target/DeviceFamily”是“CycloneII”。
在如图9-13所示的“ClockSettings”栏里可以看到50.0MHz,代表NiosIICPU在DE2-70可以运行在50.0MHz,但这时CPU降频在跑,正常情況下,NiosIICPU在DE2-70可
以运行100.0MHz,所以可以用PLL将clk倍频成100.0Mhz。
2.添加用来保存“Nios”程序的片上存储器(On-ChipMemory)
“OnChipMemory”在FPGA芯片内,是DE2-70上所有存储器中存储量最小,但是速度最快的存储器。
在“SOPCBuilder”工具页面,鼠标左键单击SystemContents‐>
ComponentLibrary‐>
MemoriesandMemoryControllers‐>
OnChip‐>
OnChipMemory(RAMorROM)‐>
Add。
弹出“onchipmemory”设置页面,如图9-14所示。
在“onchipmemory”设置页面:
“TotalMemorySize”设置为80960;
其他为缺省设置,鼠标左键单击“Finish”按钮。
不用管状态框里的错误,添加Nios处理器后会自动消失。
“Totalmemorysize”与能使用的M4K存储器数量、FPGA、NiosIICPU和Megafunction(如fcfifo)都会影响“On-chipMemory”的size,本教程使用80k。
“OnChipMemory”会在“SOPCBuilder”工具页面默认空白区有显示如图9-15所示。
如果想修改“OnChipMemory”的设置,可以左键双击硬件名称,会重新弹出如图9-14所示的设置页面。
对于其他
硬件来说,方法类似。
把“onchip_memory2_0”改成“onchip_mem”。
3.添加NiosII/s处理器(NiosIIProcessor)
ComponentLibrary‐>
NiosIIProcessor‐>
Add,弹出“NiosIIProcessor”设置页面。
在“NiosIIProcessor”设置页面:
设置NiosII/f处理器,“ResetVector”、“ExceptionVector”都选择“onchipmemory”,如图9-16所示。
鼠标左键单击“Finish”按钮,把“cpu_0”改成“cpu”。
4.添加调试接口(JTAG‐UART)
InterfaceProtocols‐>
Serial‐>
JTAGUART‐>
Add,弹出“JTAGUART”设置页,如图9-17所示。
使用缺省设置,鼠标左键单击“Finish”按钮,把“jtag_uart_0”改成“jtag_uart”。
JTAGUART是PC与SOPC进行序列传输的一种方式,也是NiosIICPU标准的输出/输入设备。
如printf()通过JTAGUART,经过USBBlaster将输出结果显示在PC的NiosIIEDS上的console,scanf()通过USBBlaster经过JTAGUART将输入传给SOPC。
5.添加两个内部定时器(IntervalTimer)
Peripherals‐>
MicrocontrollerPeripherals‐>
IntervalTimer‐>
Add,弹出“IntervalTimer”设置页,按照图9-18所示设置,鼠标左键单击“Finish”按钮。
把“timer_0”改成“timer”。
按照相同的方法再增添一个“timer_1”,把名字改写成“timer_stamp”。
6.添加系统ID(SystemID)
在“SOPCBuilder”工程页面,鼠标左键单击SystemContents‐>
Peripherals‐>
DebugandPerformance‐>
SystemIDPeripheral‐>
Add,弹出“SystemIDperipheral”设置页面,如图9-19所示。
使用缺省设置,鼠标左键单击“Finish”按钮。
把“sysid_0”的名称改为“sysid”。
“SOPCBuilder”会使用SystemID为每个系统提供识别符号,NiosIIEDS可以识别符号防止使用者往FPGA上烧录了与“.ptf”不符合的“.sof”。
7.添加红绿两色LED连接PIO
PIO(ParallelI/O)‐>
Add。
弹出“PIO(ParallelI/O)”多项设置页面。
“Width”设置成26位输出方式,其他使用缺省值,如图9-20所示。
鼠标左键单击“Finish”按钮,将名称改为“led_pio”。
8.添加按键和栓扣开关输入PIO
MicrocontrollerPeripherals‐>
Add,弹出“PIO(ParallelI/O)”多项设置页面。
默认进入“ParameterSettings”的“BasicSettings”设置页面,如图9-21所示。
在此页设置:
“Width”为4;
“Direction”为input。
鼠标左键单击图9-21所示页面的“inputoptions”,进入“inputoptions”设置页面。
在“inputoptions”设置页面:
“Edgecaptureregister”栏的“SychronouslyCapture”前打勾,选择“Fallingedge”;
在“Interrupt”栏“GenerateIRQ”前打勾,然后选中“Edge”。
如图9-22所示,然后鼠标左键单击“Finish”按钮,将名称改为“button_pio”。
一定要选中“Edge”方式产生中断,否则按键按下后会连续不断地产生中断,导致CPU死锁。
默认进入“ParameterSettings”的“BasicSettings”设置页面,如图9-23所示。
“Width”为18;
“Direction”为input;
其他为默认值,将该硬件的名称改为“switch_pio”。
9.添加PLL
本实验需要三个时钟:
(1)100MHz的C0,用于系统硬件;
(2)100MHz的C1,用于“sdram”;
(3)18.518MHz的C2,用于“audio”。
用于“sdram”的c1的“Clockphaseshift”设置为“-65deg”。
PLL‐>
PLL‐>
在弹出的对话框里,鼠标左键单击“LaunchAltera’sALTPLLMegaWizard”,使按钮周框内侧出现虚方框,如图9-24所示。
鼠标左键单击“next”按钮,进入ALTPLL多项设置页面。
默认进入的页面是:
1parametersettings栏的“General/Modes”设置页,显示为:
1parametersettings为深兰色背景,“General/Modes”为General/Modes。
如图9-25左上角所示,此页缺省设置。
鼠标左键单击2outputclocks栏,默认转换到“c0-Core/Externaloutputclocks”的设置页面。
在“c0-Core/Externaloutputclocks”的设置页面:
2outputclocks为深兰色背景,“clkc0”为clkc0。
“clkc0”各参数按照图9-26所示页面设置。
鼠标左键单击2outputclocks栏下的“clkc1”,进入“c1-Core/Externaloutputclocks”的设置页,页面显示:
2outputclocks为深兰色背景,“clkc1”为clkc1,如图9-27左上角所示。
“clkc1”的设置按照图9-27所示。
鼠标左键单击2outputclocks栏下的“clkc2”,进入“c2-Core/Externaloutput
clocks”的设置页,此时页面里显示:
2outputclocks为深兰色背景,“clkc2”为clkc2,“clkc2”按照图9-28所示设置。
鼠标左键单击“Finish”按钮,并且单击所经过的所有页面的“Finish”按钮。
设置了PLL后,在本工程硬件系统的“SOPCBuilder”工具页面,“ClockSettings”栏下:
“clk_0”改成“clk_50”;
“pll_0_c0”改名为“clk_c0_cpu”;
“pll_0_c1”,改名为“clk_c1_sdram”;
“pll_0_c2”,改名字为“clk_c2_audio”;
如图9-29所示。
10.添加SDRAM控制器
DE2-70多媒体开发板上有两片容量为32Mbytes的SDRAM(IS42S16160B),按照4M*16*4分布,“Datawidth”只有16bit。
而NiosIICPU与其他ip都是32bit,由于Datawidth不同,传输数据时,Avalonbus会启动DynamicBusSizing机制,2个clk才能完成32bit传输。
以传输来说,既然NiosIICPU是32bit,所有的ip都是32bit,SDRAM的16bit反而是传输上的瓶颈。
此处,将2片16bitSDRAM合并成1个32bitSDRAM使用,可以让整个系统顺畅地以32bit运行,不再需要Avalonbus的DynamicBusSizing机制,充分发挥DE2-70两片SDRAM的优势。
在“SOPCBuilder”工具页面,鼠标左键单击SystemContents->
ComponentLibrary->
MemoriesandMemoryControllers->
SDRAM->
SDRAMController->
进入“SDRAMController”的多项设置页面,默认进入“ParameterSettings”的MemoryProfile设置页面,此页面的设置严格按照如图9-30所示。
“Datawidth”为32bits,注意页面下部的变化,“Memorysize”显示“64Mbytes”。
编写顶层文件时,必须让两个SDRAM同步工作。
图9-30所示页面完成后,鼠标左键单击“Timing”,进入Timing设置页面。
严格按照如图9-31所示设置各参数,设置完成后,鼠标左键单击“Finish”按钮。
将名称改为“sdram”。
11.添加LCD显示驱动(CharacterLCD)
ComponentLibrary‐>
Peripherals‐>
Display‐>
CharacterLCD‐>
Add,弹出“CharacterLCD”设置页面,缺省设置,鼠标左键单击“Finish”,把名字改为“lcd”。
12.添加两个“i2c”PIO
“Width”设置成1位输出方式,其他使用缺省值,如图9-32所示。
鼠标左键单击“Finish”按钮,将该硬件的名称改为“i2c_sclk”。
“Width”设置成“1”;
“Direction”选择为“Bidirectional(tristate)ports”;
其他为缺省值,如图9-33所示,将名称改为“i2c_sdat”。
13.添加七段显示驱动(SEG7_IF)
TerasicTechnologiesInc‐>
SEG7_IF‐>
Add,弹出“SEG7_IF”设置页,全部缺省设置,鼠标左键单击“Finish”,该硬件名字改为“seg7”。
14.添加音频连接(AUDIO_IF)
AUDIO_IF‐>
Add,弹出“AUDIO_IF”设置页,全部缺省设置,鼠标左键单击“Finish”,该硬件名字改为“audio”。
15.增加用于SSRAM的Avalon三态桥
DE2-70多媒体开发板的SSRAM芯片和FLASH芯片的数据端口是三态端口,需要用Avalon三态桥连接至AvalonnBus。
可以用一个Avalon三态桥连接所有的SSRAM和FLAASH芯片,也可以为SSRAM芯片和FLASH芯片分别使用Avalon三态桥,以提高数据吞吐性能,如图9-34所示。
BridgeandAdapters->
MemoryMappeed->
Avalon-MMTristateBridge->
Add,弹出“Avalon-MMTristateBridge”设置页面。
在“Avalon-MMTristateBridge”设置页面,所有参数取缺省值。
鼠标左键单击“Finish”按钮,将名称改为“tristate_bridge_ssram”。
这时,提示框里提示需要连接“SSRAM”,先不要管。
16.增加SSRAM
DE2-70多媒体开发板上有一片容量为512K×
36比特的SSRAM芯片,型号为“IIS61VPS512336”和“CY7CC1380C”兼容。
DE2-70开发板只使用了其中的512K×
32比特(2M字节)。
Memorieesa