摘 要:利用DE2-70多媒体开发板,通过“MIC IN”“LINE IN” “LINE OUT”插接口,进行音频录放。
关键词:FPGA 音频录放
利用Altera公司的DE2-70多媒体开发板和“AUDIO_IF”“SEGS_IF”两个ip模块,通过“MIC IN”“LINE IN”插接口,记录麦克风或者音乐播放器通过线控输入的音频信号,从“LINE OUT”插接口利用耳机收听先前记录的信号。
一、利用Quartus II初建工程时,“Device family”栏里的“family”选择“Cyclone II”;“Available devices”栏里选择“EP2C70F896C6”器件,其它为缺省设置。
二、利用“SOPC Builder”工具初建硬件系统时,“Target HDL”项一般选择“Verilog”。
三、配置硬件。
1.定义时钟(clock):“SOPC Builder”工具页面的“Device Family”是“Cyclone II”, DE2‐70多媒体开发板默认显示的是50MHz,为了程序正常运行,需要把“clk_0”改为“clk_50”。
2.添加片上存储器(On-Chip Memory):“Total Memory Size”设置为80960Bytes,其他为缺省设置。
3.添加Nios II/s处理器(Nios Ⅱ Processor):选择“Nios II/f”,“Reset Vector”和“Exception Vector”都选“On-Chip Memory”,其他缺省设置。
4.添加调试接口(JTAG‐UART):使用缺省设置。
5.添加两个内部定时器(Interval Timer):使用缺省设置,把“timer_1”改写成“timer_stamp”。
6.添加系统ID(System ID):使用缺省设置,把“sysid_0”改写为“sysid”。
7.添加LED输出连接PIO:“Width”为26位的输出方式,其他使用缺省值,将名称改为“led_pio”。
8.添加按键和栓扣开关输入PIO:
(1)按键开关输入PIO的“Width”为4;“Direction” 为“input only”;“Edge capture register”栏的“Sychronously Capture”选择为“Falling edge”;“Interrupt”栏的“Generate IRQ”选择“Edge”,将名称改为“button_pio”。
(2)栓扣开关(switch)输入PIO的“Width”为18;“Direction”为 input;其他为默认值,将名称改为“switch_pio”。
9.添加PLL:(1)100MHz的C0,用于系统硬件;(2) 100MHz的C1,用于“sdram”;(3)18.518MHz的C2,用于“audio”。这里需要注意:用于“sdram”的c1的“Clock phase shift”设置为“-65ps”。
设置了PLL后,在“SOPC Builder”工具页面的“Clock Settings”栏下:“pll_0_c0”改名为“pll_ c0_cpu”;“pll_0_c1”,改名为“pll_ c1_memory”;“pll_0_c2”,改名字为“pll_ c2_audio”;
10.添加用于SSRAM的Avalon三态桥:使用缺省设置,将名称改为“tri_state_bridge_ssram”。
11.添加SSRAM:“Cypress CY7C1380C SSRAM”使用缺省设置,手动将“ssram_0”和“tri_state_bridge_ssram”连接上。
12.添加用于cfi_FLASH的Avalon三态桥:使用缺省设置,将名称改为“tri_state_bridge_flash”。
13.添加LCD显示驱动(Character LCD):使用缺省设置,将名称改为“lcd”。
14.添加两个“i2c”PIO:(1)“Width”设置成1位输出方式,其他使用缺省设置,将名称改为“i2c_sclk”。(2)“Width”设置成“1”;“Direction”选择为“Bidirectional(tristate) ports”;其他使用缺省设置;将名称改为“i2c_sdat”。
15.添加七段显示驱动(SEG7_IF):使用缺省设置,将名称改为“seg7”。
16.添加音频连接(AUDIO_IF):使用缺省设置,将名称改为“audio”。
四、产生硬件系统“.ptf”文件。
产生“.ptf”文件前需要修改硬件所用时钟“clock”。“pll_0”默认使用“clk_50”,“sdram_0”和“sdram_1”使用“pll_c1_memory”;“audio”使用“pll_c2_audio”;其他硬件都是用“pll_c0_cpu”。