1、通信技术毕业论文通信技术毕业论文题目: 基于NiosII的音频信号分析仪设计 专 业: 通信工程 目 录 摘要ABSTRACT1 引言11.1 SoC概述11.1.1 SOC技术发展11.1.2 SOC设计的关键技术11.1.3 SOC用途分类11.1.4 SoC与应用概念11.1.5 SoC的实现11.2 本文所做的工作12 FPGA开发技术概述22.1 FPGA技术特点22.1 FPGA开发流程22.3 quartus II软件及NiosII软件介绍52.3.1 quartus 软件介绍72.3.2 NiosII软件介绍92.3.3以数码管闪烁控制为例介绍quartus II软件及Nios
2、II软件103 语音信号处理113.1 数字信号处理123.1.1 傅里叶变换133.1.1.1连续时间非周期信号153.1.1.2连续时间周期信号193.1.1.3离散时间非周期信号193.1.1.4离散时间周期信号193.1.1.5快速傅里叶变换(FFT)193.2 语音信号处理214 音频信号分析仪设计244.1设计思想254.2 设计流程254.2.1系统具体设计与实现254.2.1.1前端可控增益放大电路及增益控制电路254.2.1.2混叠滤波254.2.1.3 A/D转换254.2.1.4 数字滤波及Nios实现方式264.2.1.4.1 Nios II软核配置过程284.2.1.
3、4.2 Quartus II综合284.2.2 理论分析与参数设计294.2.3 软件设计294.2.3 测试仪器2942.4指标测试结果306 参考文献307 致 谢31基于Nios 的音频信号分析仪设计摘要本系统基于Altera Cyclone II 系列FPGA嵌入高性能的嵌入式IP核(Nios)处理器软核,代替传统DSP芯片或高性能单片机,实现了基于FFT的音频信号分析。并在频域对信号的总功率,各频率分量功率,信号周期性以及失真度进行了计算。并在FPGA中嵌入了8阶IIR切比雪夫(Chebyshev)II型数字低通滤波器,代替传统有源模拟滤波器实现了性能优异的音频滤波。配合12位A/D
4、转换芯片AD1674,和前端自动增益放大电路,使在50mV到5V的测量范围下,单一频率功率及总功率测量误差均控制在1%以内。关键词:FPGA; IP核; FFT; IIR; AbstractThis system is based on IP core(Nios) soft-core processors embedded in the FPGA of Altera Cyclone II family. Instead of using DSP or microcontroller, we use Nios II to perform a low-cost FFT-based analysis
5、 of the audio signal.And we caculated the power of the whole signal,the power of each frequence point that componented the signal.By the way,we anlysised its periodicity and distortion.We also embedded an 8-order Chebyshev II IIR digital low-pass filter to replace the traditional analog Active Filte
6、r to perform an excellent audio filter. With 12bit A / D converter chip AD1674, and the front-end automatic gain amplifier, this systems single-frequency power and total power measurement error is below 1% in 50mV to 5V measurement range.Keyword: FPGA; IP core; FFT; IIR; 271 引言1.1 SOC概述片上系统(SoC:Syst
7、em-on-a-chip)指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器(CPU)、存储器、以及外围电路等。从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲, SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。国内外学术界一般倾向将SoC定义为将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品。SoC将系统的主要功能综合到一块芯片中,本质上是在做一种复杂的I
8、C设计。与普通的集成电路相比,SoC不再是一种功能单一的单元电路。而是将信号采集,信号处理,输入和输出等完整的系统功能集成在一起,成为一个专用功能的电子系统芯片。 1.1.1 SOC技术发展集成电路的发展已有40年的历史,它一直遵循摩尔所指示的规律推进,现已进入深亚微米阶段。由于信息市场的需求和微电子自身的发展,引发了以微细加工(集成电路特征尺寸不断缩小)为主要特征的多种工艺集成技术和面向应用的系统级芯片的发展。随着半导体产业进入超深亚微米乃至纳米加工时代,在单一集成电路芯片上就可以实现一个复杂的电子系统,诸如手机芯片、数字电视芯片、DVD 芯片等。在未来几年内,上亿个晶体管、几千万个逻辑门都
9、可望在单一芯片上实现。SoC (System - on - Chip)设计技术始于20世纪90年代中期,随着半导体工艺技术的发展,IC设计者能够将愈来愈复杂的功能集成到单硅片上, SoC正是在集成电路( IC)向集成系统( IS)转变的大方向下产生的。1994年Motorola发布的FlexCore系统(用来制作基于68000和PowerPC的定制微处理器)和1995年LSILogic公司为Sony公司设计的SoC,可能是基于IP( IntellectualProperty)核完成SoC设计的最早报导。由于SoC可以充分利用已有的设计积累,显著地提高了ASIC的设计能力,因此发展非常迅速,引起
10、了工业界和学术界的关注。 SOC是集成电路发展的必然趋势。1.1.2 SOC设计的关键技术 具体地说,SoC设计的关键技术主要包括总线架构技术、IP核可复用技术、软硬件协同设计技术、SoC验证技术、可测性设计技术、低功耗设计技术、超深亚微米电路实现技术等,此外还要做嵌入式软件移植、开发研究,是一门跨学科的新兴研究领域。 1.1.3 SOC用途分类SoC按用途的不同可以分为两种类型:一种是专用SoC芯片,是专用集成电路(ASIC)向系统级集成的发展;另一种是通用SoC芯片,将绝大部分部件(如MCU、DSP、RAM、I/O等)集成在单个芯片上,同时提供用户设计所需要的逻辑资源和编程所需要的软件资源
11、。SoC的出现是电子系统设计领域的一场革命,它对电子信息产业的影响将不亚于集成电路诞生所产生的影响。当今电子系统的设计已经不再是利用各种通用IC进行PCB板级的设计和调试,而是转向以ASIC或大规模FPGA为物理载体的系统芯片设计。1.1.4 SoC与应用概念1.系统功能集成是SoC的核心技术 在传统的应用电子系统设计中,须要根据设计要求的功能模块对整个系统进行综合,即 根据设计要求的功能,寻找相应的集成电路,再根据设计要求的技术指标设计所选电路的连 接形式和参数。这种设计的结果是一个以功能集成电路为基础,器件分布式的应用电子系统结构。设计结果能否满足设计要求不仅取决于电路芯片的技术参数,而且
12、与整个系统PCB版图的电磁兼容特性有关。同时, 对于须要实现数字化的系统,往往还须要有单片机等参与,所以还必须考虑分布式系统对电路固件特性的影响。很明显,传统应用电子系统的实现,采用的是分布功能综合技术。 对于SoC来说,应用电子系统的设计也是根据功能和参数要求设计系统,但与传统方法有着本质的差别。SoC不是以功能电路为基础的分布式系统综合技术。而是以功能IP为基础的系统固件和电路综合技术。首先,功能的实现不再针对功能电路进行综合,而是针对系统整体固件实现进行电路综合,也就是利用IP技术对系统整体进行电路结合。其次,电路设计的最终结果与IP功能模块和固件特性有关,而与PCB板上电路分块的方式和
13、连线技术基本无关。因此,使设计结果的电磁兼容特性得到极大提高。换句话说,就是所设计的结果十分接近理想设计目标。 2.固件集成是SoC的基础设计思想 在传统分布式综合设计技术中,系统的固件特性往往难以达到最优,原因是所使用的是分布式功能综合技术。一般情况下,功能集成电路为了满足尽可能多的使用面,必须考虑两个设计目标:一个是能满足多种应用领域的功能控制要求目标;另一个是要考虑满足较大范围应用功能和技术指标。因此,功能集成电路(也就是定制式集成电路)必须在I/O和控制方面附加若干电路,以使一般用户能得到尽可能多的开发性能。但是,定制式电路设计的应用电子系统不易达到最佳,特别是固件特性更是具有相当大的
14、分散性。 对于SoC来说,从SoC的核心技术可以看出,使用SoC技术设计应用电子系统的基本设计思想就是实现全系统的固件集成。用户只须根据需要选择并改进各部分模块和嵌入结构,就能实现充分优化的固件特性,而不必花时间熟悉定制电路的开发技术。固件基础的突发优点就是系统能更接近理想系统,更容易实现设计要求。 3.嵌入式系统是SoC的基本结构 在使用SoC技术设计的应用电子系统中,可以十分方便地实现嵌入式结构。各种嵌入结构的实现十分简单,只要根据系统需要选择相应的内核,再根据设计要求选择之相配合的IP模块,就可以完成整个系统硬件结构。尤其是采用智能化电路综合技术时,可以更充分地实现整个系统的固件特性,使
15、系统更加接近理想设计要求。必须指出,SoC的这种嵌入式结构可以大大地缩短应用系统设计开发周期。 4.IP是SoC的设计基础 传统应用电子设计工程师面对的是各种定制式集成电路,而使用SoC技术的电子系统设计工程师所面对的是一个巨大的IP库,所有设计工作都是以IP模块为基础。SoC技术使应用电子系统设计工程师变成了一个面向应用的电子器件设计工程师西叉欧。由此可见,SoC是以IP模块为基础的设计技术,IP是SoC应用的基础。1.1.5 SoC的实现 微电子制造工艺的进步为SoC的实现提供了硬件基础,微电子技术的近期发展成果又为SoC的实现提供了多种途径,而EDA软件技术的提高则为SoC的实现创造了必
16、要的开发平台。Soc可以采用全定制的方式来实现,即把设计的网表文件提交给半导体厂家流片就可以得到,但采用这种方式的风险性高,费用大,周期长。还有一种就是以可编程片上系统SoPC(System on a Programmable Chip)的方式来实现。 对于经过验证而又需要批量生产的SoC芯片,可以做成专用集成电路ASIC大批生产。而对于一些仅为小批量生产应用或处于开发阶段的SoC,若马上投入流片生产,需要投入较多的资金,承担较大的试制风险。近几年来发展起来的SoPC技术则提供了另一种有效的解决方案,即用大规模可编程器件FPGA来实现SoC的功能。 目前,大规模可编程器件FPGA的单片集成度,
17、已经由原来的数万门发展到数十万门甚至数百万门,芯片的I/O口也由原来的数十个发展到上千个,有的制造商还推出了含有硬核嵌入式系统的IP。因此,完全可以将一个复杂的数字系统集成到一片FPGA(即SoPC)中,从而使得所设计的电路系统在其规模、可靠性、体积、功耗、性能指标、上市周期、开发成本、产品维护及硬件升级等多方面实现最优化,为SoC的实现提供了一种简单易行而成本低廉的手段。1.2本文所做的工作 本论文要设计一个系统,本系统基于Altera Cyclone II 系列FPGA嵌入高性能的嵌入式IP核(Nios)处理器软核,代替传统DSP芯片或高性能单片机,实现了基于FFT的音频信号分析。并在频域
18、对信号的总功率,各频率分量功率,信号周期性以及失真度进行了计算。并在FPGA中嵌入了8阶IIR切比雪夫(Chebyshev)II型数字低通滤波器,代替传统有源模拟滤波器实现了性能优异的音频滤波。配合12位A/D转换芯片AD1674,和前端自动增益放大电路,使在50mV到5V的测量范围下,单一频率功率及总功率测量误差均控制在1%以内。通过本系统的设计,主要对Quartus和Nios 软件的用法有跟好的理解和掌握。更深一层的理解和掌握AD转换器、低通滤波器、快速傅里叶变换(FFT)。对音频信号和数字信号处理的方法进一步巩固2 FPGA开发技术概述2.1 FPGA技术特点 FPGA是英文Field
19、Programmable GateArray(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列LCA(Logic CellArray)这样一个 新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input OutputBlock)和内部连线(Interconnect)三个部分。用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通
20、过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA来实现。FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA是由存放在片内RA
21、M中的程序来设置其工作状态的,因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种
22、很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。FPGA可以用VHDL或verilogHDL来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。 2.2 FPGA开发流程 FPGA的设计流程就是利用EDA开发软件和编程工具对FPGA芯片进行开发的过程。FPGA的开发流程一般如图1所示,包括电路设计、设计输入、功能仿真、综合优化、综合后仿真、实现、布线后仿真、板级仿真以及芯片编程与调试等主要
23、步骤。图1 FPGA开发的一般流程1 电路功能设计 在系统设计之前,首先要进行的是方案论证、系统设计和FPGA芯片选择等准备工作。系统工程师根据任务要求,如系统的指标和复杂度,对工作速度和芯片本身的各种资源、成本等方面进行权衡,选择合理的设计方案和合适的器件类型。一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用EDA元件库为止。2 设计输入设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入给EDA工具的过程。常用的方法有硬件描述语言(HDL)和原理图输入方法等。原理图输入方式是一种最直接的
24、描述方式,在可编程芯片发展的早期应用比较广泛,它将所需的器件从元件库中调出来,画出原理图。这种方法虽然直观并易于仿真,但效率很低,且不易维护,不利于模块构造和重用。更主要的缺点是可移植性差,当芯片升级后,所有的原理图都需要作一定的改动。目前,在实际开发中应用最广的就是HDL语言输入法,利用文本描述设计,可以分为普通HDL和行为HDL。普通HDL有ABEL、CUR等,支持逻辑方程、真值表和状态机等表达方式,主要用于简单的小型设计。而在中大型工程中,主要使用行为HDL,其主流语言是Verilog HDL和VHDL。这两种语言都是美国电气与电子工程师协会(IEEE)的标准,其共同的突出特点有:语言与
25、芯片工艺无关,利于自顶向下设计,便于模块的划分与移植,可移植性好,具有很强的逻辑描述和仿真功能,而且输入效率很高。3 功能仿真 功能仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察各个节点信号的变化。如果发现错误,则返回设计修改逻辑设计。常用的工具有Model Tech公司的ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog以及NC-VHDL
26、等软件。虽然功能仿真不是FPGA开发过程中的必需步骤,但却是系统设计中最关键的一步。4 综合 所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。就目前的层次来看,综合优化(Synthesis)是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。真实具体的门级电路需要利用FPGA制造商的布局布线功能,根据综合后生成的标准门级结构网表来产生。为了能转换成标准的门级结构网表,HDL程序的编写必须符合特定综合器所要求的风格。由于门级结构、RTL级
27、的HDL程序的综合是很成熟的技术,所有的综合器都可以支持到这一级别的综合。常用的综合工具有Synplicity公司的Synplify/Synplify Pro软件以及各个FPGA厂家自己推出的综合开发工具。5 综合后仿真 综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。目前的综合工具较为成熟,对于一般的设计可以省略这一步,但如果在布局布线后发现电路结构和设计意图不符,则需要回溯到综合后仿真来确认问题之所在。在功能仿真中介绍的软件工具一般都支持
28、综合后仿真。 6 实现与布局布线 实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中最重要的过程。布局将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,并且往往需要在速度最优和面积最优之间作出选择。布线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。目前,FPGA的结构非常复杂,特别是在有时序约束条件时,需要利用时序驱动的引擎进行布局布线。布线结束后,软件工具会自动生成报告,提供有关设计中各部分资源的使用情况。由于只有FPGA芯片生产商对芯片结构最为了解,所以布局布线必须选择芯片开发商提供的工具。 7 时序仿真与验证 时序仿真,也称
29、为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。由于不同芯片的内部延时不一样,不同的布局布线方案也给延时带来不同的影响。因此在布局布线后,通过对系统和各个模块进行时序仿真,分析其时序关系,估计系统性能,以及检查和消除竞争冒险是非常有必要的。在功能仿真中介绍的软件工具一般都支持综合后仿真。 8 板级仿真与验证 板级仿真主要应用于高速电路设计中,对高速系统的信号完整性、电磁干扰等特征进行分析,一般都以第三方工具进行仿真和验证。 9 芯
30、片编程与调试 设计的最后一步就是芯片编程与调试。芯片编程是指产生使用的数据文件(位数据流文件,Bitstream Generation),然后将编程数据下载到FPGA芯片中。其中,芯片编程需要满足一定的条件,如编程电压、编程时序和编程算法等方面。逻辑分析仪(Logic Analyzer,LA)是FPGA设计的主要调试工具,但需要引出大量的测试管脚,且LA价格昂贵。目前,主流的FPGA芯片生产商都提供了内嵌的在线逻辑分析仪(如Xilinx ISE中的ChipScope、Altera QuartusII中的SignalTapII以及SignalProb)来解决上述矛盾,它们只需要占用芯片少量的逻辑
31、资源,具有很高的实用价值。2.3 quartus II软件及NiosII软件介绍2.3.1 quartus 软件介绍Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Q
32、uartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。2.3.2 Nios软件介绍Nios II系列软核处理器是Altera的第二代FPGA嵌
33、入式处理器,其性能超过200DMIPS,在Altera FPGA中实现仅需35美分。Altera的Stratix 、Stratix GX、 Stratix II和 Cyclone系列FPGA全面支持Nios II处理器,以后推出的FPGA器件也将支持Nios II。Nios II系列包括3种产品,分别是:Nios II/f(快速)最高的系统性能,中等FPGA使用量;Nios II/s(标准)高性能,低FPGA使用量;Nios II/e(经济)低性能,最低的FPGA使用量。这3种产品具有32位处理器的基本结构单元32位指令大小,32位数据和地址路径,32位通用寄存器和32个外部中断源;使用同样的
34、指令集架构(ISA),100%二进制代码兼容,设计者可以根据系统需求的变化更改CPU,选择满足性能和成本的最佳方案,而不会影响已有的软件投入。 特别是,Nios II系列支持使用专用指令。专用指令是用户增加的硬件模块,它增加了算术逻辑单元(ALU)。用户能为系统中使用的每个Nios II处理器创建多达256个专用指令,这使得设计者能够细致地调整系统硬件以满足性能目标。专用指令逻辑和本身Nios II指令相同,能够从多达两个源寄存器取值,可选择将结果写回目标寄存器。同时,Nios II系列支持60多个外设选项,开发者能够选择合适的外设,获得最合适的处理器、外设和接口组合,而不必支付根本不使用的硅
35、片功能。 Nios II系列能够满足任何应用32位嵌入式微处理器的需要,客户可以将第一代Nios处理器设计移植到某种Nios II处理器上,Altera将长期支持现有FPGA系列上的第一代Nios处理器。另外,Altera提供了一键式移植选项,可以升级至Nios II系列。Nios II处理器也能够在HardCopy器件中实现,Altera还为基于Nios II处理器的系统提供ASIC的移植方式。 Nios II处理器具有完善的软件开发套件,包括编译器、集成开发环境(IDE)、JTAG调试器、实时操作系统(RTOS)和TCP/IP协议栈。设计者能够用Altera Quartus II开发软件中
36、的SOPC Builder系统开发工具很容易地创建专用的处理器系统,并能够根据系统的需求添加Nios II处理器核的数量。 使用Nios II软件开发工具能够为Nios II系统构建软件,即一键式自动生成适用于系统硬件的专用C/C+运行环境。Nios II集成开发环境(IDE)提供了许多软件模板,简化了项目设置。此外,Nios II开发套件包括两个第三方实时操作系统(RTOS)MicroC/OS-II(Micrium),Nucleus Plus(ATI/Mentor)以及供网络应用使用的TCP/IP协议栈。 在FPGA中使用软核处理器比硬核的优势在于,硬核实现没有灵活性,通常无法使用最新的技术
37、。随着系统日益先进,基于标准处理器的方案会被淘汰,而基于Nios II处理器的方案是基于HDL源码构建的,能够修改以满足新的系统需求,避免了被淘汰的命运。将处理器实现为HDL的IP核,开发者能够完全定制CPU和外设,获得恰好满足需求的处理器。Altera公司推出的Nios嵌入式处理器软核,通过软件编程的方法可灵活地实现嵌入式处理器的功能,并且针对FPGA进行性能优化,可大大提高系统性能。它还具有片上调试功能,便于系统的设计和调试。Nios嵌入处理器软核在国外已广泛应用于通信、家电和控制等众多领域。2.3.3以数码管闪烁控制为例介绍quartus II软件及NiosII软件1.Quartus I
38、I 新建一个工程名,工程名DE2_SEG7。2.Tool SOPC Builder 打开SOPC Builder。3.System Name: nios2_system 选VHDL。一个包含“数码管控制器”的最小系统至少由3部分组成:CPU必不可少,RAM存储代码,还有刚才设计的seg7_avalon。4. 加入Nios II Processor,选Nios II/e,精简型够用了。5. 加入On-Chip Memory,类型选RAM,位宽默认32 bits,Total Memory选48Kbytes,等会儿软件要占用四十多K空间。6.加入seg7_avalon。7. 将这三个组件的名称改好看
39、点,然后设定RAM的基地址为0x00000000,再右键锁定基地址,如图: 8.由于刚才人为改动了地址分配,弄乱了,让系统自动再分配一次,当然被锁定的RAM基地址是不会变的。System Auto-Assign Base Addresses。最终系统组件列表如下: 9.点击Generate生成nios系统,回到Quartus II。10.新建一个顶层文件FileNewBlock Diagram/Schematic File,引入nios II系统,增加输入输出引脚。然后,AssignmentImport Assignment,添加引脚分配文件11.编译,查看编译报告12.硬件部分已经搞定,关掉
40、Quartus II,打开Nios II IDE,切换到工作目录下。 13.FileNewC/C+ Application,SOPC Builder System选择nios2_system.ptf”14.改动hello_world.c,代码的功能为:先初始化数码管,等待2秒钟,再进行0-9的循环,循环过程中穿插2秒钟的清屏。SEG7_BASE的宏定义在system.h中,实际上就是在SOPC Builder中的seg7_avalon的基地址0x00010800。15.ProjectBuild Project,得到编译报告.16.下载到DE2板上,运行,数码管不停地闪啊闪。3 语音信号处理3.
41、1数字信号处理数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。 数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。 数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。而使数字信
42、号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。3.1.1傅里叶变换傅里叶指出,一个任意的周期函数x(t)都可以分解为无穷多个不同频率正弦信号的和,这即是傅里叶级数。求解傅里叶系数的过程就是傅里叶变换。这是由法国工程师傅里叶1822年提出的。 根据信号的连续性、离散性、周期性、非周期性,傅里叶变换可以分为四种不同的形式。 3.1.1.1连续时间非周期信号连续时间周期信号x(t)在频域中得到的是连续非周期的频谱密度函数: 3.1.1.2 连续时间周期信号 连续时间周期信号x(t)当满足狄里克雷条件时在频
43、域中得到的是离散非周期的傅里叶级数,傅里叶变换的系数为x(k),是离散非周期函数。变换式为: 3.1.1.3 离散时间非周期信号离散时间非周期信号也称为序列,变换式为:3.1.1.4 离散时间周期信号离散时间周期信号又称为离散傅里叶变换:3.1.1.5 快速傅里叶变换(FFT)令,则长度为N的有限长序列x(n)的DFT为:1.基2时间抽取碟形运算的信号流程图2.基2时间抽取8点碟形运算的信号流程图3.2 语音信号处理语音信分析的目的就是在于方便有效地提取并表示语音信号所携带的信息,是语音信号处理的前提和基础,只有分析出可表示语音信号特征的参数,才有可能利用这些参数进行高效的语音通信、语音合成和
44、语音识别等处理。一般的,语音处理的目的有两种:1.对语音信号进行分析,提取特征参数。如:语音编码中需要判断语音的清浊音特征并提取浊音的基因周期;语音识别中需要提取符合人耳听觉特性的到普参数等。2.加工语音信号,如:语音增强中对含噪语音进行背景噪声抑制,以获得相对干净的语音;在语音合成中需要对分段语音进行拼接平滑,获得主观音质较好的合成语音。根据所分析出的参数的性质的不同可以分为:时域分析、频域分析、倒谱分析、线性预测分析等;根据分析方法的不同:模型分析方法和非模型分析方法不论是分析怎样的参数以及采用什么分析方法。在按帧进行语音分析,提取语音参数之前,有一些经常使用的、共同的短时分析技术必须预先
45、进行。如:语音信号的数字化、语音信号的端点检测、预加重、加窗和分帧等,这些是不可忽视的语音信号分析的关键技术。4 音频信号分析仪设计4.1设计思想本系统基于Altera Cyclone II 系列FPGA嵌入高性能的嵌入式IP核(Nios)处理器软核,代替传统DSP芯片或高性能单片机,实现了基于FFT的音频信号分析。并在频域对信号的总功率,各频率分量功率,信号周期性以及失真度进行了计算。并在FPGA中嵌入了8阶IIR切比雪夫(Chebyshev)II型数字低通滤波器,代替传统有源模拟滤波器实现了性能优异的音频滤波。配合12位A/D转换芯片AD1674,和前端自动增益放大电路,使在50mV到5V
46、的测量范围下,单一频率功率及总功率测量误差均控制在1%以内。4.1.1 方案选择1 整体方案选择音频分析仪可分为模拟式与数字式两大类。方案一:以模拟滤波器为基础的模拟式频谱分析仪。有并行滤波法、扫描滤波法、小外差法等。因为受到模拟滤波器滤性能的限制,此种方法对我们来说实现起来非常困难。方案二:以FFT为基础的的数字式频谱分析仪。通过信号的频谱图可以很方便的得到输入信号的各种信息,如功率谱、频率分量以及周期性等。外围电路少,实现方便,精度高。所以我们选用方案二作为本音频分析仪的实现方式。2 FFT计算方式选择方案一:使用VHDL 硬件实现。FFT的VHDL程序编写难度大,短时内不易实现。方案二:
47、在FPGA中嵌入Nios II处理器,通过软件实现。Nios II 支持C语言编程方式,普通的C语言版的FFT稍加改正即可应用到本方案中。用硬件实现的FFT算法太复杂了,因此我们选用方案二。3 采样电路与A/D芯片选择本设计中要求分析的信号峰峰值范围为100mVp-p5Vp-p,用8位A/D进行采样,不能满足题目的精度要求,采用12位的A/D芯片AD1674,其分辨率可达到1.2mV(相对于5Vp-p信号),满足了题目要求的5%误差范围。同时其100K的采样频率也满足本设计中的频率要求。4 信号调理方案AD1674信号输入满偏电压在双极性时为5V,即峰峰值10V。方案一:将输入信号放大2倍,以达到AD1674的满偏输入,以提高A/D的精度。但若输入信号都比较小时,采样精度就会下降。方案二:将前端信号放大调理电路分为几个档,针对不同幅度的信号选择合适的通道进行放大,放大倍数以当前信号中的最大峰值为选择基准。这样