前言:
此刻你们对“c语言实现fir滤波”大致比较看重,看官们都需要了解一些“c语言实现fir滤波”的相关文章。那么小编也在网摘上收集了一些关于“c语言实现fir滤波””的相关资讯,希望姐妹们能喜欢,我们一起来了解一下吧!IC 设计的重要约束之一是实现功率、性能和面积 (PPA) 的最佳组合。本文研究了当前量产的真无线立体声 (TWS) 耳机芯片的组件和设计,介绍了如何实现最终所需的 PPA 所做的工程权衡。特别是,我们还将研究 RISC-V ISA(指令集架构)扩展,它有助于显着降低功耗,同时无需额外成本即可实现所需性能。
TWS 芯片主要是蓝牙射频收发器。它包括一个 128 抽头有限脉冲响应 (FIR) 滤波器、128 抽头最小均方 (LMS) 自适应滤波器、一个有源噪声控制 (ANC)混合函数以及总线的资源。在这个设计中,四个元素中的前三个将需要最多的计算资源:FIR 滤波器需要 1,693 个指令周期,LMS 滤波器需要另外 1,820 个周期,而 ANC 功能需要高达 10,404 个周期。系统框图说明了 TWS 设计的主要组件,左侧为模拟功能,右侧为数字功能。蓝牙收发器(左上角)由一个 RF 基带控制器和 64kb 的存储器组成。下面的收发器和音频子系统很复杂,因为 TWS 设计有两个独立运行的扬声器和麦克风。每个的锁相环 (PLL) 必须同步,确保以相同的频率运行。
TWS 设计的关键组件,左侧具有模拟功能,右侧具有数字功能。 (图片:Andes)
更复杂的是蓝牙系统运行 16 位数据,而音频系统需要24位数据,因此需要计算密集型转换。主动噪声控制 (ANC) 功能对计算资源的需求最大。它需要大量的计算,例如乘法和加法。 ANC 元件与高精度 DAC 和低延迟 ADC 交互。实时模拟采样要求每输出一个样本时就输入一个样本。
右侧的数字部分是带有 P (DSP/SIMD) 扩展的 RISC-V CPU 和用于处理噪声控制和音频编解码器计算的独立 DSP。此外,该设计包含少量的 SRAM、硬件 DMA 和 AXI/AHB 总线矩阵。该设计具有消费类设备所需的通用 I/O 功能:GPIO、I2C、实时时钟、UART 等。
为了执行最复杂的 TWS 功能,混合有源噪声控制电路需要一个高抽头数滤波器,在本例中,需要一个 128 抽头 FIR 滤波器和 128 抽头最小均方滤波器。为了处理这些函数,每个样本总共需要 896 次加法和 896 次乘法。在本例中,ADC 和 DAC 以 192 kHz 运行,大约每 5.2 微秒采样一次。
在所示框图中,计算资源必须执行以下功能来处理 ADC 和 DAC 操作:加载样本的 DMA,然后是音频编解码器计算以及蓝牙和内部操作。接下来是 FIR 和 LMS 滤波器所需的繁重处理。除了这些操作之外,主动噪声控制还增加了相当多的计算需求,主要是大量的乘法和加法。
自定义 RISC-V 扩展减少指令周期
认识到对更多计算要求的需求,设计团队决定为专用于处理 FIR 和 LMS 滤波器的 RISC-V 处理器创建自定义扩展,并为每个处理器添加一条指令。开发了乘法器、加法器和存储器来处理 ANC 操作。这些扩展是使用 Andes Custom Extension (ACE) 和 CoPilot 工具创建的。这些工具消除了将自定义指令集成到设计和验证流程中的复杂度,从而最大限度地减少了设计团队实施修改所需的时间。
结果示于表中。纯 C 代码中的 128 抽头 FIR 滤波器将需要大约 1600 个指令周期。添加自定义指令将周期数减少到 128 个,加速了 12 倍。同样,计算 128 抽头 LMS 滤波器所需的周期从 1820 个周期下降到 128 个周期,加速了 14 倍。最显着的加速发生在 ANC 功能,从 10,404 个周期下降到 250 个周期,减少了 40 倍。应用于 TWS 平台的直接内存访问功能的 CPU 周期计数将取决于 SoC(片上系统)架构。通常情况下,它的总线流量越大,需要的周期就越多。 ACE 和 CoPilot 工具分配了添加的指令背景属性。因此,定制指令并行运行以确保最佳执行。因此,CPU 可以以较慢的 80 MHz 时钟频率运行,从而降低功率以延长电池寿命。
表格显示了自定义扩展启用的加速(在 ACE 周期列下)。最显着的加速发生在 ANC 功能上,减少了 40 倍。 (图片:Andes)
虽然我们无法评论这种专有设计的实际结果,但表中显示的数据是向设计添加自定义扩展可以产生明显改进。除了性能提升之外,使用自定义扩展的设计团队还受益于可以降低时钟频率,从而节省功耗,并节省硅面积。
使用自定义扩展的另一个显着好处是竞争对手无法轻松地对设计进行逆向工程。最后,对于担心定制指令将在设计验证中增加时间的设计人员来说,60% 的成功使用 ACE 工具的客户的经验证明这不是问题。通过这种特殊的设计,最终芯片成功流片,目前已导入 Razer 的 True Wireless Pro 耳塞。
标签: #c语言实现fir滤波