带有 VHDL 代码的 FPGA 上的声音发生器

Posted

技术标签:

【中文标题】带有 VHDL 代码的 FPGA 上的声音发生器【英文标题】:Sound generator on FPGA with VHDL code 【发布时间】:2015-04-21 16:56:13 【问题描述】:

我需要使用键盘作为音符的输入,并使用数字扬声器作为输出。 我打算只用一个八度。 我最有趣的问题是:

    如何在 VHDL 代码中表示音符。

    如何(或需要)实现一个使用 Spartan 3E Starter 的内置 DAC 的 DAC 模块?我在其他论坛上读到它无法实现。我需要使用它来将注释传输给扬声器。监督我和我同事项目的老师建议我为此研究 PWM(但我发现的都是电子方式解释的,没有附带代码,也没有关于实现的解释)。

    除了键盘控制器,一个处理模块(用于从音符向量返回与按下的键对应的音符)和 DAC,到目前为止我已经弄清楚我需要什么,我还需要什么。

【问题讨论】:

【参考方案1】:

有一个 DAC(见 cmets)

Spartan-3E 入门套件上没有 DAC。使用低通 PWM 信号是从数字输出生成模拟信号电平的常用方法。

您需要为 PWM 定义一个精度,比如说 8 位或 256 级。对于每个要输出的音频样本,需要从 0 到 255 进行计数。当计数器小于所需的样本电平时,输出 1,否则输出 0。当计数器达到 255 时,将其重置并转到下一个样本.

因此,如果您想要 8 位精度(256 级)和 8KHz 信号,则计数器必须以 256*8000 = 2.048MHz 运行。

对于您的其他问题,没有简单的答案。作为设计师,你的工作就是弄清楚这一点。

【讨论】:

怎么样(幻灯片 3)xilinx.com/products/boards/s3estarter/files/… 你说得对,我现在想起来了!我们有一个使用外部 DAC 的项目,所以我认为它没有。板载DAC的问题是不能和ADC同时使用。您必须对两者进行时间复用,这对我们来说是不可能的。很抱歉提供错误信息。

以上是关于带有 VHDL 代码的 FPGA 上的声音发生器的主要内容,如果未能解决你的问题,请参考以下文章

基于FPGA的TEA算法的VHDL实现

FPGA中使用vhdl核的DFT相位和幅度

EDA课设 FPGA开发板 VHDL实现串口通信

EDA课设 FPGA开发板 VHDL实现串口通信

FPGA纯vhdl实现MIPI CSI2 RX 4K视频解码输出,OV13850采集,提供工程源码和技术支持

FPGA学习笔记06-VHDL语法基础-生成语句(generate)