论文部分内容阅读
随着超大规模集成电路(VLSI)的日益进步,AISC(专有芯片)中可以集成越来越多的硬件功能模块。对一些需要快速,实时的处理数据的成熟软件算法进行硬件实现。使用硬件加速的算法需要满足以下两个条件:第一,此算法是很常用的,最基本的。因需要耗费硬件面积,即耗费产品成本,所以需要是比较常用的算法用硬件实现才能得到明显的好处。第二,此算法应该是已经稳定的,因为用硬件实现后,修改会变得比较困难。本课题研究的卡拉OK音效处理系统的硬件加速就符合上面两个条件。本文介绍了卡拉OK音效处理系统的硬件加速器的实现过程。本设计是来源于公司项目,首先从了解DVD系统卡拉OK音效软件处理的流程出发,通过学习软件代码,了解卡拉OK音效的算法。利用已有对整个DVD音频硬件系统的了解,结合软件的控制流程,了解软件和硬件相互合作的流程。通过前期对卡拉OK音效算法的学习,并根据公司对此硬件加速器系统的指标要求,设计出高效的实现卡拉OK音效的硬件架构,并明确此硬件架构各个子模块的功能。定义接口寄存器,以实现每种音效的数据处理流程的控制。最后从节省硬件消耗的角度寻找到一个最节省硬件面积的实现方法,其中创新的使用控制读写指针的方式实现,利用DRAM直接作为存储单元的方式,实现对声音数据的固定延时的读取和对声音数据变化延时的读取。利用线性插值理论和正弦函数性质,实现了通过256个正弦值扩展出224个点的正弦值。对麦克风的输入采取了自动增益控制和能量补偿机制,减少了麦克风输入的噪声。对各条声道的开关及其增益的控制,实现了各种卡拉OK音效算法。经过八个月左右的时间,完成此硬件加速器的设计,并通过了完整的软件仿真和FPGA验证测试。此硬件加速器消耗了极少的面积,就完成了与之前软件系统实现相同的功能。