一个音频编解码器的数字滤波器的自动硬件实现

联发科公司

工程专业的音频编解码器过滤器链需要的性能,功耗和尺寸的谨慎平衡。我们小组必须设计解决方案,不仅满足对信噪比(万博 尤文图斯SNR)和总谐波失真(THD)的严格标准,而且还最小化功耗和硅的芯片上所需的总面积。

我们的设计是通过手工编写寄存器传输级(RTL)代码来实现的。虽然这种方法产生了相对较小的芯片区域,但它导致了较长的开发时间,并且对需求的任何后续更改都可能导致实现的重大返工。从业务角度来看,这种方法也有一些风险:我们通常不知道放置和路由设计有多困难,直到设计过程的最后,当几乎不可能做出更改并且仍然满足我们的发布日期。

我们采用了一种新的方法,在MATLAB®中进行设计,并使用Filter design HDL Coder™生成可合成的RTL代码。通过将系统设计与硅相连接,该方法使我们能够快速地评估过滤结构和硅区优化。它将RTL代码开发周期从三个月缩短到不到两周。过去几乎需要一个月才能完成的系统修改现在只需三天就能完成。

设计一个音频编解码器

音频编解码器由两个独立的处理链(图1)。音频编码器提供接口,从麦克风到数字信号处理器(DSP)。音频解码器的工作方向相反,转换信号从DSP到数据发送到扬声器。

图1.高级别块中的音频编解码器的图。点击图片查看放大图。

我们设计的系统的一个关键技术挑战是,麦克风前置放大器后面的模数转换器(ADC)和扩音器功率放大器前面的模数转换器(DAC)必须在6.5 MHz的较高频率下工作。另一方面,DSP以48 kHz的普通速率处理数据。音频编解码器的数字部分通过应用一系列数字滤波器在这两个频率之间转换。例如,立体声编码器通道使用8个滤波器来抽取其输入信号,而立体声解码器使用9个滤波器来插值其输入信号。

在设计的体系结构相,我们使用MATLAB到编码器和解码器信道进行建模。使用我们的模拟设计师提供的参数,我们模拟数字 - 模拟和模拟 - 数字转换器和构建多速率数字滤波链。

接下来,我们使用MATLAB、Signal Processing Toolbox™和Filter Design Toolbox™对模型产生的结果进行后处理,通过计算快速傅里叶变换(FFTs)和估计信噪比(SNR)和THD。通过这种方式,我们可以在转移到实现之前制定出一个优化的架构。

使用有限状态机排序器实现

在我们以前的设计方法中,我们使用一个单一的乘法器 - 累加器(MAC)和有限状态机序列发生器来实现信号处理链(图2)。定序器负责处理的RAM和ROM和控制他们的行动。它还设置为MAC中的输入参数。ROM存储滤波器系数时,RAM存储中间乘法 - 累积结果,和MAC进行基于所述系数和数据样本的计算。

图2。一个传统音频编解码器设计的框图。点击图片查看放大图。

传统上,音序器使用铅笔和纸的过程是复杂和耗时的设计。手写RTL代码是如此不灵活,即使是小的修改难度相当大。有时,我们还发现,在序有限状态机RTL代码几乎是不可能的地点和路线。有大约2000家美国的有限状态机,在这些国家分配超过40个变量。此放置期间和门级网表的路由导致10%的非常低的面积利用率。换句话说,所提出的硅面积大10倍比预期的!它花了九牛二虎之力才合成序逻辑到定制的ROM内存。然而,仍然有大约2个区域判为序在我们的组合逻辑(自定义ROM通常需要更多的硅面积)初步预测。

自动化实现

在我们的新的设计方法,我们已经消除了复杂的序。相反,我们使用了一系列旨在与MATLAB和滤波器设计工具箱,并与滤波器设计HDL编码器(图3)实现的数字滤波器。每个数字滤波器块独立地进行操作,以便它可以容易地被修改,移除或添加到整个链。

图3.新的设计结构,其中,每个过滤器使用滤波器设计HDL编码器独立地实现。R1,R2,和R表示第一,第二和第n个链中的过滤器的速率变化(内插/分样)。点击图片查看放大图。

解码器链包括四个半带FIR滤波器和采样率转换器。由两个每个滤波器内插,取初始48 kHz的信号,以分别96千赫,192千赫,384千赫和768千赫。采样速率转换器然后直接从768千赫到目标频率,6.5兆赫转换。

编码器链包括两个级联积分梳状(CIC)抽取器,以及两个半带FIR滤波器。第一抽取器CIC从6.5兆赫的信道输入速率抽取由25至260千赫。其次是一个简单的,手写插值逐48零填充。在12.48 MHz的速率的内插数据,然后通过65第二CIC抽取器内进行抽取。这是在192千赫的第一半带FIR抽取×2过滤器内的速率后处理。最后,第二半带抽取滤波器从96千赫至48千赫的信道输出速率下采样的数据。在编码器通道的情况下,滤波器设计的工具箱,使我们能够快速评估多种设计选项,如位使用的数量简化了CIC设计。

生成RTL代码和优化区

在编码器和解码器链设计单个过滤器后,我们产生Verilog代码用于使用滤波器设计HDL编码器(图4)的每个滤波器。在这个阶段,我们就可以开始优化实施,以降低设计的硅面积。

图4.滤​​波器设计HDL编码器接口表示过滤架构的一部分和产生的代码的段。点击图片查看放大图。

我们尝试了RTL生成几个滤波器设计HDL编码器的优化和体系结构选项。例如,为了优化半带FIR滤波器,我们首先尝试产生一个完全并行架构,其中所述过滤器的时钟速率是一样的数据率的选项。然后,我们使用Synopsys®设计编译器合成上分配的区域代码和报告。在滤波器设计HDL编码器的分布式算术选项,这需要一个时钟速率比其数据速率高16至20倍,产生了一个设计,使用约完全平行设计的面积的25%。既然我们有足够高的频率时钟我们的芯片上已经上市,这是最好的选择。

验证实施

我们使用MATLAB脚本、RTL测试工作台和Verilog仿真来验证RTL实现。事实上,我们重用了在架构阶段开发的许多MATLAB脚本来生成刺激信号,并通过绘制FFTs和计算信噪比和THD对结果进行后处理。

在第一轮验证之后,我们将RTL代码传递给我们的同事进行合成。合成的地点和路由步骤在一个SDF(标准延迟格式)文件中产生定时数据。我们将此计时数据包含在另一轮的gate-level模拟中,以确保逻辑中不存在竞争条件。该设计随后被送去制造。

初始芯片运行的测试揭露没有任何问题与音频编解码器的数字部分。这意味着,我们的团队可以自由地伸出援助之手的设计的模拟部分和与测试工作的其余部分。

新型制造技术的影响

制造技术的变化正在改变我们所设计的芯片上模拟和数字元件的平衡。模拟晶体管必须保持一定的尺寸来驱动所需的负载,而数字晶体管在采用新的制造工艺时就会缩小。例如,当从0.25um的制作过程迁移到45nm的制作过程时,混合信号音频编解码器的整体面积从50%数字和50%模拟变成了25%数字和75%模拟。

虽然我们的新的设计方法需要比我们传统的方法更多的硅面积,在数字元件的新制造的小型化处理抵消这一增长同时允许我们保留大量节省开发时间。

在将来,它可能通过使用滤波器设计的HDL编码器提供的其它低区域结构,如部分串行架构,或者通过实现与自动生成的代码单序架构可以进一步优化我们的设计过程。

出版2009 - 91761v00


查看相关行业的文章