EDN China > 设计实例 > 消费电子设计 > 音频处理 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) AC-Link数字音频VHDL编/解码的FPGA设计

来源:21IC中国电子网/作者:南开大学学报 廖日坤 张立民 金镇 沙立伟?? 2008年03月24日 ?? 收藏0

  3 AC-Link音频编/解码的VHDL设计

  FPGA中的AC音频编/解码设计是通过VHDL编程实现的.VHDL是一种应用非常广泛的硬件描述语言,它的语言覆盖面广,描述能力强;可以描述最抽象的系统级,也可以描述最精确的逻辑级、门级. AC-Link系统采用结构化VHDL进行设计的整个系统是一个VHDL语言文件,包括几个BLOCK语言.下面分别介绍各模块实现的功能。

程序

  程序中,S1用来为sreg模块作为并行输入允许端.该信号在每个时隙的第一个数据位时出现,在此时,该时隙的数据被置入sreg模块,然后该模块开始串行移位输出,以后的各个时隙也按此过程工作。

  (2)调用并行输入、串行输出模块,设计AC-Link.vhd.AC-Link的D/A转换控制器向编码器写数据,然后这些数据D/A转换成模拟信号,最后经功放输出

  程序中对时隙的分配是采用IF_THEN_ELSEIF_THEN_ELSE_ENDIF语句实现,当计数器小于16时是第0时隙,以后每隔20个计数为一个时隙.使用CASE语句在不同时隙,输出赋以相应的数据。

  对于AC-Link输入帧,如果控制器想从编码器读取数据或状态,就在bit_clk的上升沿把SYNC置高,编码器在bit_clk下降沿采样到 SYNC变化,然后在上升沿开始发送数据.控制器在每个bit_clk的下降沿采样数据,同时SYNC保持16个bit_clk周期的高电平。

  对于AC-Link输出帧,如果控制器要向编码器输出数据或命令时,则在bit_clk的上升沿先把SYNC置高,然后在每一个bit_clk的上升沿发送一位数据,SYNC与bit_clk的上升沿同步.编码器在bit_clk的下降沿采样到SYNC的变化,由此编码器知道控制器要与它通信,在下一个 bit_clk的下降沿编码器开始采样数据,此后每一个bit_clk的下降沿采样一位数据.控制器发送数据是在bit_clk的上升沿,而编码器采样数据是在bit_clk的下降沿.同时SYNC也要保持16个bit_clk周期的高电平。

  下列程序用于产生16个的bit_clk周期的高电平的SYNC信号,SYNC是bit_clk的256分频,有16个周期是高电平,其余时间是低电平。

程序

  进行VHDL设计时,最好各模块单独进行并及时仿真验证,以便尽早发现问题.系统中其它模块在此不再叙述.

AC-Link输出仿真图

图4 AC-Link输出仿真图

  AC-Link接口的仿真图如图4所示,实现了其D/A转换功能,仿真通过以后,可将程序下载到FPGA中实现,同时直接与通令机连接起来进行调试,并利用计算机进行调试获得成功,计算机的通信软件可用VB或Delpi等可视化软件来编制。

  4 结论

  AC-Link音频编/解码系统的是在FPGA平台上用VHDL设计的.AC-Link设计采用自顶向下的设计方法,通过建立VHDL行为模型和进行 VHDL行为仿真,可及早发现设计中潜在的问题,缩短设计周期,提高设计的可靠性和效率.实践证明,仿真结果和FPGA实现符合AC-Link控制和编码要求。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

数字音频? VHDL? FPGA? 编解码?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈