摘 要:利用PWM可以简单方便地扩展语音功能。系统阐述了一种用于嵌入式SoC中的PWM IP核的功能和结构,采用Verilog硬件描述语言实现各子模块的设计,利用VCS工具进行仿真和验证,并详细介绍了录音回放模式的FPGA板级测试过程。该PWM IP核主要用于产生高质量的声音和音调,已经成功应用于一款嵌入式微处理器芯片中,并通过实际的流片和测试。
关键词:片上系统;IP核;脉冲宽度调制;回放;发音
中图分类号:TN41;TP33 文献标识码:B 文章编号:1004-373X(2008)02-071-03
Design and Implementation of PWM IP Core in Embedded System-on-Chip
ZHANG Yue
(Institute of Integrated Circuit,Southeast University,Nanjing,210096,China)
Abstract:It is simple and convenient to use PWM to add speech function.This paper presents the function and architecture of PWM IP core used in embedded system-on-chip.The sub-module circuit is implemented using Verilog hardware description language,simulated and verified with the EDA tools VCS.Then we introduce the FPGA board test course of playback mode in detail.The PWM IP core is mainly used to produce good sound and tone.It has been already applied in an embedded microprocessor chip.
Keywords:SoC;IP core;PWM;playback;tone
SoC的核心思想是IP复用。IP核是设计者提供的具有特定功能和正确接口信号以及相关参数描述的模块。随着EDA技术和半导体工艺技术的发展,集成电路的规模越来越大,设计越来越复杂,为了加快SoC芯片的设计速度,使用IP核是一个必然趋势。将已有的专用IP核在SoC设计中调用,可以简化设计,减少工作量。
PWM可以用来扩展语音功能,在对音质要求不太高的应用中,用PWM还原声音无需涉及数/模转换过程,这样能够节约设计成本,也使电路设计变得相对简单。
本文介绍利用Verilog语言设计的一个可复用的PWM IP核。该IP核的接口遵循AMBA规范的APB总线协议,主要用于产生高质量的声音(sound)以及音调(tone)。
1 功能特性
1.1 功能概述
当PWM工作在录音回放模式时,可以运用存储的声音文件的数据通过扬声器发出声音。为了能够较好地重现声音文件的内容,重建频率必须与最初记录声音的采样频率相同或者是采样频率的偶数倍。对于不变的频率,他能产生占空比变化的脉冲。脉冲的宽度必须跟某个特定的采样声音的模拟电压成比例。当PWM工作在发音模式时,能够对一个单一频率发出连续的音调。用户可以利用该功能播放MIDI等简单音乐。如果在PWM输出端加低通滤波器,过滤PWM输出的高频部分,保留低频的直流分量,即可得对应的D/A输出。在对相应的寄存器进行编程时,就能改变输出信号的占空比,从而产生不同的直流(DC),这样PWM就成了一个D/A转换器。PWM IP核的功能结构如图1所示。
由图1可见,其中主要包括计数器、采样寄存器、周期寄存器、控制寄存器等。PWM波形的输出、工作模式的选择、中断的控制等均受到控制寄存器的各个控制位作用。控制寄存器的具体作用如表1所示。
1.2 工作模式
1.2.1 录音回放(playback mode)
在录音回放模式下,PWM在采样周期的开始输出高电平,计数器从零开始计数。采样寄存器中的值不断地与计数器的值比较,当两者值相等时PWM的输出变为低电平,计数器继续计数,直到等于周期寄存器的值才自动清零并重新开始另一个周期的计数。如果设置了重复功能(REPEAT),则采样寄存器中的值被自动重复发送设定的次数。图2给出了此种模式下PWM的输出波形。
本设计中数据以16 b字的形式加载到FIFO中。4×16 b字的FIFO可以增加缓冲,提高效率。当FIFO不满,即FIFO中小于等于1个字时,会产生一个可屏蔽的中断申请,然后可以通过中断服务程序向FIFO中写入数据。
1.2.2 发音(tone)
在发音模式下,PWM能够以一个单一的频率发出连续的音调。周期计数器从零开始计数,当计数到周期寄存器的值时清零并重新开始计数。图3给出了此种模式下PWM的输出波形。可以看到每隔一定周期PWM的输出就翻转一次,如果保持周期寄存器不变,则可以输出周期方波。
2 模块设计
PWM IP核按照功能划分为APB总线接口模块、通道1计数器模块、通道2计数器模块、通道1 FIFO读写模块、通道2 FIFO读写模块,共5个模块,其中2个通道的计数器模块和FIFO读写模块设计都相同。
2.1 APB接口模块
APB接口模块提供PWM IP核对APB总线的接口,功能主要是连接2个PWM通道和APB总线,设计符合AMBA的APB规范。他将PWM内部的寄存器映射到统一的地址空间,使内核可以通过地址访问。
2.2 计数器模块
计数器模块主要用于计数控制,其将系统时钟按照prescaler值做分频处理,并按照分频后的时钟进行递增计数,分别产生录音回放和发音模式下的PWM输出脉冲信号。该模块包含2个计数器:抽样计数器和周期计数器。
2.3 FIFO读写模块
FIFO读写模块负责FIFO的读写操作,其产生FIFO的读指针和写指针信号,控制将APB总线上的pwdata信号线的低16位(采样值)写入FIFO,且将FIFO中的数据读出供其他模块使用。
该模块是基于memory的FIFO,FIFO的大小是4×16 b。模块主要分为控制逻辑以及存储模块。
3 仿真结果与测试
3.1 仿真验证
本文对于PWM IP核的验证工作是基于东南大学ASIC中心自主开发的SoC虚拟验证平台,主要验证以下内容:
(1) 所有寄存器的复位值以及寄存器读写功能的正确性;
(2) 录音回放模式工作的正确性:包括中断的屏蔽和清除、REPEAT功能、运行过程中disable以及重新使能;
(3) 发音模式工作的正确性;
(4) 多种模式下长时间的工作测试,检验PWM在长时间工作过程中的正确性和稳定性。
PWM IP核设计使用的硬件描述语言是Verilog,在系统中加入了内核仿真模型,以及AMBA总线和中断控制器等功能模块的RTL级Verilog代码,仿真和验证使用Synopsys公司的EDA工具VCS。录音回放模式和发音模式的仿真波形如图4和图5所示。
从仿真结果可以看出,该PWM IP核能够达到预计的功能要求,在录音回放和发音模式下都可以正确稳定的工作。3.2 流片与测试
该PWM IP核成功地应用于一款嵌入式微处理器芯片中,该芯片已经通过实际的流片和测试。对录音回放模式的FPGA板级测试具体过程如下:
首先,从WAV文件中提取声音采样数据。标准的WAV格式的声音文件含有声音的采样数据和文件头。在提取声音数据时,要注意采样频率、采样位数、存储容量与存储时间的关系。通常,11.025 kHz的采样频率和8位的采样位数可获得清晰的语音以及较好的音乐声,并且占有较少的存储空间。通过了解和分析WAV文件的格式,可以将文件中的声音采样数据分解出来,并转换为C语言格式的数组结构,以便与其他程序一并编译和下载到芯片中去。
其次,产生PWM波形以还原声音。这里的PWM IP核具有2个16位的PWM通道,可产生16位解析精度的PWM波形,这意味着可以使用16位的采样数据来产生PWM。整个测试平台连接有一定大小的SDRAM,能够存储一定时间的采样数据。产生PWM波形的步骤:
(1) 初始化PWM;
(2) 设置周期寄存器,以确定采样频率;
(3) 等待中断,在中断处理程序中取采样数据,设置PWM采样寄存器,一次最多可以向FIFO写入3个16 b;
(4) 判断声音数据是否播放完成,若完成,则停止PWM。
PWM输出后需通过低通滤波器滤波才能还原成人耳能识别的声音。低通滤波器的类型和参数取决于声音的采样频率和价格预算。最简单的是RC滤波器,这种滤波器的优点是仅需要2个元件;另一种是有源滤波器,滤波效果好,但相对复杂。滤波器截止频率的选择对于音频输出是非常重要的,推荐设置在采样频率的一半,如图6左边所示的滤波器。文中采用一种简单直接的接法,如图6右边所示:仅使用1个22 μF的电容用于低通滤波,驱动一个小扬声器。
4 结 语
本设计已经成功地应用于一款嵌入式微处理器芯片中,PWM能按照要求正确稳定的工作。FPGA板级测试结果表明:对于录音回放模式,PWM能够在输入采样值的控制下驱动扬声器进行声音的重放;对于发音模式,PWM也能驱动扬声器发出单一连续的音调,音调的高低随周期寄存器的设定值变化。
参 考 文 献
[1]AMBA总线规范.AMBATM Specification (Rev 2.0) [S]. ARM Limited, 1999.
[2]Motorola Inc.MC68EZ328 Integrated Processor User′s Manual.1998.
[3]罗光平,尤一鸣.利用PWM给单片机应用增加语音功能[J].单片机与嵌入式系统应用,2007(1):36-38.
[4]Microsoft Corp.Wave File Format.
[5]王宜怀.嵌入式应用技术基础教程[M].北京:清华大学出版社,2005.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
推荐访问: 嵌入式 设计 PWM SOC IP