首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

G.726语音编解码在SoPC系统中(2)

G.726语音编解码在SoPC系统中(2)

3.2.1 编码器的顶层设计模型

  顶层模型提供了对外的PCM语音接口,同时也提供了对Avalon总线的接口,使得所设计的编码器模块可通过SOPC Builder集成为Nios II系统的一个外围设备。模型中的自适应量化器模块、逆自适应量化器模块、量化器比例因子自适应模块和自适应预测器模块均为HDL SubSystem。编码器的顶层设计模型如图3所示。







图3 ADPCM编码器模型







图4 自适应量化器模型
  其中SignalCompiler模块是DSP Builder的心脏。其主要完成的功能包括1)将Simulink设计转变成可综合的RTL级VHDL代码;(2)产生VHDL testbenches;(3)为LeonardoSpectrum、Synplify和Modelsim第三方EDA工具产生Tcl脚本文件;(4)为Quartus II的仿真产生仿真矢量文件(.vec);(5)产生PTF配置文件,用于将设计自动地输给SOPC Builder工具。SignalCompiler控制着设计系统的综合、编译和仿真的流程。

  根据G.726语音算法的需求,系统需要两个时钟,分别为8kHz和120kHz,其中120kHz用于自适应预测器子系统。因此需要在模型中利用锁相环模块PLL实现多时钟设计,产生所需的两个时钟,DSP Builder根据PLL输出时钟的上升沿工作。在Simulink设计图上不会显示时序模块的时钟引脚,而是当SignalCompiler将系统转化为VHDL文件时才自动地把时序模块的时钟引脚与相应时钟相连。

  3.2.2 编码器的自适应量化器子系统模型

  自适应量化器模型如图4所示。自适应量化在对数域内进行,在用量化比例因子对差分信号进行规格化处理后,通过查找量化器规格化输入/输出特性表,即得到ADPCM码。对数运算在Simulink中的实现是借助于查找表的方式,使用DSP Builder子库中的LUT模块;规格化输入/输出特性表的实现是采用ROM查表法的方式,用ROM EAB模块实现。

  由于ADPCM语音编解码算法最终要在FPGA上实现,Simulink的浮点值必须转换成定点值并能在目标硬件实现。硬件中表示定点值的位数以及小数点的位置不但会影响构成硬件系统的资源利用率,还影响系统的特性。本设计中根据信号的应用范围判定小数点的位置,并根据实际需要改变小数点右侧的位数,以节省硬件资源,灵活地应用总线控制库中的模块来对总线进行截位、增位、位提取或进行数据类型转换等操作,以达到所需求的精度。

  3.3 G.726算法模型的仿真过程

  利用MATLAB/Simulink和DSP Builder工具进行基于FPGA的DSP设计需要进行一系列的仿真。在Simulink中设计的模型首先要在Simulink中仿真,不仅是验证模型的正确性,而且因为用于ModelSim仿真的TestBench文件中的输入信号激励是由SignalCompiler根据Simulink的仿真结果产生,并且只有仿真后利用SignalCompiler转换产生的VEC文件才有效。在Simulink中完成仿真验证后,使用SignalCompiler将模型进行设计转换。

  对于设计转换后产生的VHDL文件,必须进行RTL级仿真。因为Simulink中模型仿真是算法级的,而生成的VHDL描述是RTL级的,两者描述的情况可能不完全符合,因此需要对生成的RTL级VHDL代码进行功能仿真。仿真可通过在ModelSim中运行转换过程所生成的Tcl脚本文件。最后可以利用转换过程生成的VEC文件,在Quartus II软件中进行时序仿真。本设计对上述建模的语音编码器完成了仿真,Simulink的仿真结果与ModelSim的仿真结果基本一致,表明两者描述相符合;Quartus II的时序仿真结果表明所设计的语音编码器达到了预期的结果。

  3.4 编解码器模块在SoPC系统中的综合

  编码器模型在Quartus II综合和编译后,可以使用SOPC Builder将其作为外围设备添加到Nios II系统中。SignalCompiler生成的PTF配置文件可用于将设计自动地输给SOPC Builder工具。所设计的编码器出现在SOPC Builder的模块池中,将其添加到所创建的系统中即可。所建SoPC系统元件页如图5所示,图5中只列出了语音记录系统的一部分组件。利用SOPC Builder即可生成一个完整的系统,最后生成编程文件,进行硬件的下载,完成G.726语音编码器在SoPC中的设计。








图5 SoPC系统元件页
  由于DSP Builder中的DSP基本模块以算法级的描述出现,而且采用Simulink图形化界面,因此设计非常直观,实现了自顶向下的开发流程。与传统DSP开发相比,大大缩短了创建DSP设计的硬件的开发周期。设计的编解码器可作为Nios II系统的外围设备,通过SOPC Builder很方便地综合到SoPC系统中。同时,由于设计是在基于FPGA的SoPC上实现,因此可以根据实际需求更改设计,对系统进行重配置,具有很高的灵活性。本G.726语音编解码器的性能基本上达到了设计要求。
继承事业,薪火相传
返回列表